gpt4 book ai didi

aggregate - Clingo 中的聚合计数

转载 作者:行者123 更新时间:2023-12-05 03:12:18 26 4
gpt4 key购买 nike

测试数据

addEmployee(EmplID, Name1, Name2, TypeOfWork, Salary, TxnDate)
addEmployee("tjb1998", "eva", "mcdowell", "ra", 55000, 20).
addEmployee("tjb1987x", "ben", "xena", "cdt", 68000, q50).
addEmployee("tjb2112", "ryoko", "hakubi", "ra", 63000, 60).
addEmployee("tjb1987", "ben", "croshaw", "cdt", 68000, 90).
addEmployee("tjb3300m", "amane", "mauna", "ma", 61000, 105).

我想根据工作类型和特定工作类型的员 worker 数对员工进行分组。例如:

ra 4
cdt 2
ma 1

下面是我要运行的查询

employee(TOW) :- addEmployee(_,_,_,TOW,_,_).
nmbrEmployeesOfSameType (N) :- N = #count { employee(TOW) }.

请指教,我是Clingo的初学者

最佳答案

试试这个:

addEmployee("tjb1998", "eva", "mcdowell", "ra", 55000, 20).
addEmployee("tjb1987x", "ben", "xena", "cdt", 68000, q50).
addEmployee("tjb2112", "ryoko", "hakubi", "ra", 63000, 60).
addEmployee("tjb1987", "ben", "croshaw", "cdt", 60000, 90).
addEmployee("tjb3300m", "amane", "mauna", "ma", 61000, 105).


getType(P, X) :- addEmployee(X, _, _, P, _, _).

type(P) :- addEmployee(_, _, _, P, _, _).

result(P, S) :- S = #count{ I : getType(P,I)}, type(P).

#show result/2.

输出将如下所示:

clingo version 4.5.3
Reading from test.lp
Solving...
Answer: 1
result("ra",2) result("cdt",2) result("ma",1)
SATISFIABLE

你也可以复制我的代码运行一下here看看它是否有效。

关于aggregate - Clingo 中的聚合计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34114375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com