Учи Кванты! → Курс → Язык QUBO
Кодирование с ограничениями: штраф
У настоящих задач есть ограничения, которые обязаны выполняться, а в языке QUBO для них нет места: он безусловный. Выход один: вписать ограничение в саму энергию штрафом. Сила штрафа A решает всё, и в этом уроке видны все три режима: слабый пускает минимум в недопустимое, достаточный работает, огромный слепляет хорошие варианты.
Круглый стол вместо двух столов
В прошлом уроке гости сидели за двумя столами, и любая строка битов была допустимым ответом: как ни раскрась вершины, какое-то разбиение на группы получится. Теперь обстановка сложнее. Четыре гостя, круглый стол на четыре стула и цепочка ссор: гость 0 не ладит с гостем 1, гость 1 с гостем 2, гость 2 с гостем 3. Задача прежняя по духу: рассадить всех так, чтобы ссорящихся рядом было как можно меньше.
Кодировка нужна другая. Бита «в какой группе гость» уже мало: надо сказать, на каком именно стуле он сидит. Заводим бит на каждую пару «гость и стул»: x_{i,t} равен 1, если гость i сидит на стуле t. Четыре гостя на четыре стула дают 16 бит, вся матрица на панели. И сразу видна беда: большинство строк битов теперь бессмыслица. Гость может «сидеть» на двух стульях сразу, стул может остаться пустым, а формула сама по себе этого никак не запрещает.
Это платный урок курса. Дальше — интерактив: виджеты, схемы и контрольные вопросы. Продолжение — в полном курсе «Учи Кванты!»: открыть полный курс.