Предложение модели для графа для решателя ограниченного программирования (gecode)

Задача. Для заданного неориентированного графа с метками (1..n) создайте в Gecode модель для нахождения суперграфа с заданной степенью последовательности:

Трудности: основная трудность заключается в том, чтобы найти причудливую модель, чтобы точно выразить степень над ней:

Почему не матрица смежности? Поскольку граф имеет тенденцию быть большим и разреженным

Почему не список ребер? Мы собираемся добавить ребер, но не знаем, сколько их, CP требует предопределенного количества переменных (я прав?)

Почему бы не список смежности? задача моделирования в виде списка наборов, нам нужно ввести ограничение для всех i, j: (j в a[i] ‹=> i в a[j])


person Solon    schedule 25.11.2016    source источник


Ответы (1)


Возможности, которые вы предлагаете, использование «Списка смежности», вероятно, будет лучшим.

Вас беспокоит то, что вам придется использовать много пропагандистов между наборами; однако Gecode включает специальный распространитель каналов для связи между наборами: http://www.gecode.org/doc-latest/reference/classGecode_1_1Set_1_1Channel_1_1ChannelSet.html. Этот распространитель направляет точно так, как вы описали, и должен минимизировать усилия, затрачиваемые на поддержание согласованности наборов.

person Dekker1    schedule 30.11.2016