Задачи целочисленного программирования могут быть решены

Задачи смешанного целочисленного программирования (MIP)

Задача смешанного целочисленного программирования (MIP)-это задача. В которой некоторые переменные решения ограничены целыми значениями (т. Е. целыми числами, такими как -1, 0, 1, 2 и т. Д.) При оптимальном решении. Использование целочисленных переменных значительно расширяет область полезных задач оптимизации. Которые можно определить и решить.

Важным частным случаем является переменная решения X1, которая должна быть либо 0, либо 1 в решении. Такие переменные называются 0-1 или двоичными целочисленными переменными и могут использоваться для моделирования решений

Однако целочисленные переменные делают задачу оптимизации невыпуклойи, следовательно , гораздо более трудной для решения. Память и время решения могут расти экспоненциально по мере добавления новых целочисленных переменных.

Даже с очень сложными алгоритмами и современными суперкомпьютерами существуют модели с несколькими сотнями целочисленных переменных. Которые никогда не были решены до оптимальности. Это связано с тем. Что необходимо проверить множество комбинаций конкретных целочисленных значений переменных, и каждая комбинация требует решения . Количество комбинаций может расти экспоненциально с размером задачи.

Проблемы программирования ограничений (CP)

Термин Символические значения исходят из конечного набора возможностей. И эти возможности могут быть пронумерованы целыми числами.

Программирование ограничений определяет Наиболее распространенным и полезным ограничением более высокого уровня является ограничениеalldifferent . Которое требует. Чтобы набор из n переменных решения предполагал некоторую перестановку (неповторяющийся порядок) целых чисел от 1 до n.

Например, для набора из 5 переменных решения значения, такие как 1, 2, 3, 4, 5 или 5, 4, 3, 2, 1 для переменных, удовлетворяли бы этому ограничению, но любое присвоение одного и того же значения двум или более различным переменным (например, 1, 2, 3, 1, 4) нарушит ограничение alldifferent.

Таким образом. Присвоение должно быть упорядочением или перестановкой целых чисел от 1 до 5.

Классическим примером задачи программирования ограничений является задача коммивояжера: коммивояжер планирует посетить N городов и должен проехать между ними различные расстояния. В каком порядке он должен посещать города. Чтобы свести к минимуму общее пройденное расстояние. Посещая каждый город ровно один раз?

Проблемы программирования ограничений имеют все преимущества и недостатки (такие как непрямота) задач смешанного целочисленного программирования. И дополнительные требования. Такие как Все решатели Frontline поддерживают ограничение alldifferent. Но вы должны иметь в виду последствия для времени решения. Если используете такие ограничения.

Решение задач MIP и CP

Поскольку задачи МИП и СР невыпуклы, они должны быть решены с помощью какого-то систематического и потенциально исчерпывающего поиска. Ветвлением и связью Этот метод начинается с нахождения оптимального решения Если в этом решении переменные решения с целочисленными ограничениями имеют целочисленные значения. То дальнейшая работа не требуется.

Если одна или несколько целочисленных переменных имеют нецелочисленные решения. Метод Ветвления и привязки выбирает одну такую переменную и Эти подзадачи решаются. И процесс повторяется до тех пор. Пока не будет найдено решение. Удовлетворяющее всем целочисленным ограничениям.

Альтернативные методы. Такие как генетические и эволюционные алгоритмы. Случайным образом генерируют решения-кандидаты. Удовлетворяющие целочисленным ограничениям. Такие начальные решения обычно далеки от оптимальных. Но эти методы затем преобразуют существующие решения в новые решения — кандидаты с помощью таких методов, как

мутация с сохранением целых чисел или перестановок и кроссовер, которые продолжают удовлетворять целочисленным ограничениям. Но могут иметь лучшие объективные значения. Этот процесс повторяется до тех пор. Пока не будет найдено достаточно Как правило. Эти методы не способны