Я использую clingo для решения flood-it проблем.Я использую предикат frontier([CELL], [COLOR], [TIMESTEP])
для отслеживания всех ячеек, которые являются соседями потока.Набор границ может выглядеть примерно так:
frontier(c(1,3),2,3) frontier(c(2,1),2,3) frontier(c(2,2),3,3) frontier(c(2,3),3,3) frontier(c(3,1),3,3) frontier(c(3,2),3,3) frontier(c(4,1),3,3)
Мы можем разделить этот набор на два подмножества.Один, где каждое значение цвета равно 2 или 3 соответственно.Что мне нужно, так это две вещи:
- . Определите, какое подмножество больше, т. Е. Если есть больше ячеек со значением цвета 2 или 3 (Кстати, количество цветов не фиксировано, поэтому решение должнобыть универсальным)
- Получить значение цвета члена наибольшего набора
Как я могу сравнить количество элементов n (n> = 2) в логике предикатов?
Заранее спасибо!