I try to solve a "simple" logical problem with OR-Tools or clingo(ASP). It goes like this: I have a set of Persons like Person(Tony, Bob, Ann, Carl, Amber, Peter) I also have groups like Group1(Bob, Ann, Carl, Amber, Peter), Group2(Bob, Amber), and Group3(Amber). Now I want to select two persons from Group1, one person from Group2 and one person from Group3 - so in total four persons with all constraints fulfilled. Possible solutions would be Carl, Ann, Bob, Amber or Peter, Ann, Bob, Amber or Carl, Peter, Bob, Amber. How can I achieve that?
Edit: I tried this in ASP clingo:
person(tony; bob; ann; carl; amber; peter).
group1(bob; ann; carl; amber; peter).
group2(bob; amber).
group3(amber).
% rules
{select(X): person(X), group1(X)} = 2.
{select(X): person(X), group2(X)} = 1.
{select(X): person(X), group3(X)} = 1.
#show select/1.
But I only get:
clingo version 5.5.0
Reading from stdin
Solving...
Answer: 1
select(amber) select(carl)
Answer: 2
select(amber) select(peter)
Answer: 3
select(amber) select(ann)
SATISFIABLE
Models : 3
Calls : 1
Time : 0.004s (Solving: 0.00s 1st Model: 0.00s Unsat: 0.00s)
CPU Time : 0.000s
Thanks and regards