2015-06-15 4 views
0

Я не уверен, как написать инструкцию оптимизации в clingo4 (ASP solver).Как свести к минимуму количество экземпляров литерала, в clingo 4.5

Я хочу свести к минимуму общее количество экземпляров определенных литералов в каждом наборе ответов.

Я имитирую агент пожарной реакции в 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

Как подсчитывать около

#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) 
}. 
  • 1 означает 1 к тому,
  • Tag (позвонить, отправить, активизируют), охрана, площадь и время убедиться, что каждый факт учитывается. Например. без тега activate_file_suppression(foo, 20, 21) и call_fire_department(foo, 20, 21) будут объединены в набор.
Смежные вопросы