2016-12-24 5 views
1

Допустим, я хочу, чтобы подсчитать число 80 элементных подмножеств {1,2, .. 100}, что их сумма равна 3690.Подсчет общего количества решений с minizinc

У меня есть следующие модели:

array[1..100] of var 0..1: b; 

constraint (sum (i in 1..100) (i*b[i])) == 3690; 
constraint (sum (i in 1..100) (b[i])) == 80; 

solve satisfy; 

Чтобы подсчитать общее число решений, я бегу

$ ./minizinc --all-solutions ~/Documents/code/xmas.mzn > sol.out 
$ wc -l sol.out 

по существу, я распечатав все решения и их подсчета. Есть ли более простая инструкция minizinc вместо solve satisfy, которая позволяет мне считать решения вместо их поиска?

ответ

1

Нет Инструкция MiniZinc, которая позволит вам это сделать.

Однако многие решатели FlatZinc - такие как Gecode - показывают количество решений, когда установлен параметр статистики (обычно «-s»). Именно то, как эта статистика показана, не соответствует стандарту MiniZinc/FlatZinc.

Смежные вопросы