Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по математике для магистров.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
9.51 Mб
Скачать

24.1.2 Задача о рюкзаке.

Одной из наиболее распространенных задач целочисленного программирования является задача о рюкзаке (или о ранце).

Постановка задачи. Турист готовится к длительному переходу в горах. Он складывает вещи в рюкзак, который может включать n видов нужных предметов, причем предмет типа j имеет массу wj , . Для каждого вида предмета турист определяет його ценность Еj во время перехода. Максимальный вес груза в рюкзаке не может превышать W кг. Сколько предметов каждого типа он должен положить в рюкзак, чтобы суммарная ценность снаряжения была максимальной при ограничении на массу рюкзака?

Обозначим через xj — количество предметов j-го типа в рюкзаке. Тогда математическая модель задачи такова:

максимизировать                            (24.1.4)

при ограничениях

 ,                                  (24.1.5)

 ,          — целое, .

24.1.3 Экстремальные комбинаторные задачи

В данных задачах необходимо найти экстремум некоторой целевой функции, заданной на конечном множестве, элементами которого служат перестановки из n символов.

Одной из наиболее простых задач этого класса является известная задача о назначениях.

Найти такую перестановку  из чисел 1, 2, …, n, при которой достигается минимум  по всем перестановкам .

Каждая такая перестановка может быть представлена точкой в n2-мерном пространстве или в виде матрицы .

Введем переменные

Очевидно,

                                   (24.1.6)

Задача о назначениях заключается в нахождении таких чисел {xij}, при которых достигается  при ограничениях (24.1.6).

Хотя условия целочисленности в (24.1.6) в явном виде нет, оно выполняется, поскольку задача о назначениях является частным случаем Т-задачи.

24.1.4 Задача о коммивояжере.

Рассмотрим известную задачу о коммивояжере. Пусть имеется n городов: A1, A2, …, An... Задана матрица    расстояний между всеми городами. Выезжая из исходного города A1 коммивояжер должен во всех остальных городах побывать по одному разу и вернуться в исходный город A1. Требуется определить такой маршрут его движения, чтобы суммарное пройденное расстояние было минимально.

Математическая модель этой задачи имеет следующий вид:

минимизировать                      (24.1.7)

при условиях

                                 (24.1.8)

                                 (24.1.9)

                (24.1.10)

где ui, uj — произвольные целые и неотрицательные числа.

Условие (24.1.8 ) означает, что коммивояжер выезжает из каждого города один раз, а условие (24.1.9 ) — что он въезжает один раз в каждый город. Если ограничить задачу только условиями (24.1.8) и (24.1.9 ), то она эквивалентна задаче о назначениях, план которой не обязан быть цикличным. Иначе говоря, маршрут коммивояжера можно представить как ряд связных переходов или циклов, в то время как  его маршрут   в действительности состоит  из  одного  цикла. Чтобы  обеспечить  это  требование  и используется условие (24.1.10). Покажем,  что  действительно  для любого цикла, начинающего в пункте A1 , можно найти ui , удовлетворяющие условию (24.1.10). Пусть up, если коммивояжер посещает город Aі на p-м этапе. Отсюда следует, что  для всех i и j, и, таким образом, условие (24.1.10) выполняется, если xij = 0. При xij = 1 условие (24.1.10) выполняется как строгое равенство:

ui uj n xij = p – (p+1) + nn –1.