Задача о рюкзаке
Контейнер оборудован m отсеками вместимостью , для перевозки n видов продукции . Виды продукции характеризуются свойством неделимости, т.е. их можно брать в количестве 0,1,2,... единиц. Пусть - расход i-ого отсека для перевозки единицы j-ой продукции. Обозначим через полезность единицы j-ой продукции. Требуется найти решение (план) перевозки, при котором максимизируется общая полезность набора видов продукции (это целевая функция задачи), загружаемых в контейнер.
Математическая модель задачи имеет вид:
,
при ограничениях на вместимости отсеков:
,
при условиях неотрицательности решения:
,
при условии целочисленности решения:
- целые числа .
Когда для перевозки используется только один отсек и каждый вид продукции может быть или взят или нет, то модель задачи примет следующий вид:
,
, .
Задача о коммивояжере
Коммивояжер должен посетить один и только один раз каждый из n городов, после чего вернуться в исходный пункт. Его маршрут должен при этом минимизировать суммарную длину пройденного пути.
Итак, математическая задача коммивояжера состоит в том, чтобы разработать такой маршрут обхода всех городов, для которого суммарная длина пройденного пути была бы минимальна.
Пусть cij – длина перехода из i-ого города в j-ый город, а xij - матрица переходов со следующими значениями:
xij = 1, если коммивояжер совершает переход из i-ого города в j-ый город;
xij = 0, если переход из i-ого города в j-ый город не совершается,
где i, j = 1..n и i j.
Математическая модель задачи может быть представлена в следующем виде:
,
,
.
Последние два условия означают, что коммивояжер из каждого города выезжает только один раз и только один раз въезжает в каждый город.
Условия неотрицательности и целочисленности
.
В формулировке задачи учтено условие прохождения маршрута по 1 разу через все из n городов, т.е. так называемое условие цикличности (иначе маршрут представляет собой просто замкнутую ломаную без самопересечений в городах-точках).
К задачам целочисленного линейного программирования приводят также многие оптимальные задачи теории расписаний, в которой рассматриваются методы оптимизации оперативно-календарного планирования. В качестве примера таких задач можно привести задачу определения оптимальной очередности обработки изделий на различных станках или других рабочих местах, задачу составления программы «диспетчер» для управления работой ЭВМ в мультипрограммном режиме и т.п.
Динамическое программирование
Динамическое программирование (ДП) определяет оптимальное решение n-мерной детерминированной (т.е. дискретной) задачи путем ее декомпозиции на n этапов, каждый из которых представляет собой подзадачу относительно одной переменной. Вычислительное преимущество такого подхода состоит в том, что мы занимаемся решением одномерных оптимизационных задач подзадач вместо большой n-мерной задачи.
Фундаментальным принципом ДП, составляющим основу декомпозиции задачи на этапы, является оптимальность.
(Более детально с методом ДП и соответствующими алгоритмами решения задач ДП можно ознакомиться по следующей книге: Вентцель Е.С. Исследование операций: задачи, принципы, методология. Москва, Изд-во «Дрофа», 2004 г.; стр.84-111)