Я использую GeCode для создания программного обеспечения для решения конкретной задачи. Я смоделировал свою проблему, используя переменные целочисленного набора и некоторые ограничения на эти переменные. Но что касается этого вопроса, давайте рассмотрим более простой случай.
Скажем, у меня есть три заданных переменных, домены которых являются [{}, ..., {1,2,3}], то есть {}, {1}, {2}, {3}, {1,2}, {1 , 3}, {2,3}, {1,2,3} и что мои единственные ограничения - пересечение (var_i, var_j) пусто для всех i и j, а i отличается от j.
Очевидно, если я хорошо понимаю свою логику, она должна давать как минимум var_1 = {1}, var_2 = {2} и var_3 = {3}. Но он также может дать var_1 = {1,2,3} и var_2 = var_3 = {}. Действительно, запуск GeCode с этими переменными и ограничениями дает только один результат: var_1 = var_2 = var_3 = все возможные подмножества {1,2,3}, предполагая, что существуют разные решения (предполагая, что я мог бы выбрать одно подмножество в var_1 и мог бы найти подмножества двух других переменных, удовлетворяющих ограничениям.
Мой вопрос в том, как я могу заставить GeCode перечислять различные комбинации. Потому что, очевидно, моя окончательная модель будет состоять из большего количества целых чисел в наборах и, следовательно, большего количества подмножеств. Таким образом, я не могу позволить себе делать выбор вручную, задавая переменные самостоятельно, поскольку я теряю все преимущества, которые может предложить решатель ограничений.
Есть ли возможность, которая могла бы помочь мне решить эту проблему?