我不确定如何在clingo4(ASP求解器)中编写优化语句。
我想最小化每个答案集中某些文字的实例总数。
我在ASP中模拟火灾响应代理。代理可以选择在不同时间执行某些简单操作,例如:
0{call_fire_department(Area, Time, Time+1)}1:- [preconditions].
0{send_security_guard(Guard, Area, Time, Time+1)}1:- [preconditions].
0{activate_fire_suppression(Area, Time, Time+1)}1:- [preconditions].
代理人在特定时间有目标,需要混合使用上述操作。我想尽量减少上述每个实例的数量,同时仍然实现代理目标。
如何编写适当的优化声明? (我假设我需要一个'最小化'声明)。
感谢。
答案 0 :(得分:1)
怎么样
#minimize{
1, call, Area, Time : call_fire_department(Area, Time, Time+1) ;
1, send, Guard, Area, Time : send_security_guard(Guard, Area, Time, Time+1) ;
1, activate, Area, Time : activate_fire_suppression(Area, Time, Time+1)
}.
activate_file_suppression(foo, 20, 21)
和call_fire_department(foo, 20, 21)
将合并到集合中。