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


На практике применяется несколько способов решения таких задач.
1. Решить эту задачу симплекс-методом, и если получится нецелочисленное оптимальное решение, то округлить до ближайшего допустимого целочисленного решения. Этот путь возможен тогда, когда значения X в оптимальном решении достаточно велики.
2. Найти точное решение целочисленной задачи линейного программирования (ЦЗЛП).
Важными методами нахождения таких решений являются методы отсечений нецелочисленных решений. Отсечения должны удовлетворять следующим условиям.
1. Они должны отсекать оптимальное нецелочисленное решение задачи, полученное на предыдущем шаге.
2. Они не должны отсечь ни одного допустимого целочисленного решения.
Разберем один из таких методов - метод отсечения Гомори.
Алгоритм решения ЦЗЛП методом Гомори
1. Решаем задачу линейного программирования без требования целочисленности симплекс-методом.
| X1 | Х2 | … | Хk | Хk+1 | … | Xn | ||
| X1 | … |
|
|
| ||||
| X2 | … |
|
|
| ||||
| … | … | … | … | … | … | … | … | … |
| Хk | … |
|
|
|
Х1*= 
Х2*= 
…………
Хk*= 
Хk+1*=0
…………
Хn*=0
Если все значения в оптимальном решении целочисленные, то получено решение ЦЗЛП. Если множество допустимых решений исходной задачи пусто или целевая функция на этом множестве не ограничена, то же самое будет верно и для ЦЗЛП.
2.Определение. Целой частью числа X называется ближайшее целое число, меньшее X. Обозначается [X].
Например, если х = 3,45; [x] = 3.
Определение. Дробной частью числа X называется разность
между X и целой частью этого числа.
Например, если x = 3,45; {x} =0,45.
На втором шаге всегда есть хотя бы одно нецелое среди
. Выбираем из нецелых
то, которое имеет наибольшую дробную часть, обозначим такое
через
.
Гомори доказал, что неравенство
определяет отсечение, удовлетворяющее всем сформулированным выше требованиям. Это неравенство добавляем к ограничениям задачи и возвращаемся на шаг 1, и так до тех пор, пока не получится оптимальное целочисленное решение. Если на каком-то шаге алгоритма все коэффициенты
- целочисленные, а среди
есть нецелые, то задача не имеет целочисленного решения.
Пример. Фермеры некоторого района решили оборудовать сортировочный ток. На закупку оборудования имеется 34 тыс.$, имеется площадь для тока размером 60 м2, имеется два типа сортировочных машин, которые можно закупить. Машина типа А стоит 3 тыс.$, занимает площадь 3 м2 с учетом проходов и сортирует 2 тонны зерна за смену; машина типа В стоит 4 тыс.$, занимает площадь 5 м2 с учетом проходов и сортирует 3 тонны зерна за смену. Поставщик сообщил, что машин тина В в наличии не более 8. Сколько и каких машин нужно закупить, чтобы обеспечить максимальную производительность тока за смену, не превысив имеющихся ресурсов?
Введём управляющие переменные. Обозначим x1 - количество купленных машин типа А, х2 - количество купленных машин типа В.





| X1 | X2 | Х3 | Х4 | х5 | ||
| Х3 | ||||||
| х4 | ||||||
| Х5 | ||||||
| F | -2 | -3 | ||||
| X3 | -5 | |||||
| X4 | -4 | |||||
| Х2 | ||||||
| F | -2 | |||||
| Х3 | -1 | -1 | ||||
| X1 | 1/3 | -4/3 | 2/3 | |||
| Х2 | ||||||
| F | 2/3 | 1/3 | 251/3 |
По условию задачи очевидно, что закупать 2/3 машины типа А бессмысленно. Если данное решение округлить до допустимого решения, то получим
х1 =0
х2 = 8.
F = 24
Найдём точное решение. Строим отсечение.

;



| X1 | Х2 | Х3 | X4 | X5 | X6 | ||
| -1 | -1 | ||||||
| 1/3 | -4/3 | 2/3 | |||||
| 1/3 | 2/3 | -1 | 2/3 | ||||
| Х3 | -1/2 | -3/2 | |||||
| X1 | -2 | ||||||
| х2 | -1/2 | 3/2 | |||||
| Х5 | 1/2 | -3/2 | |||||
| F | 1/2 | 1/2 |



Полученное решение целочисленно. Нужно закупить две машины типа А и семь машин типа В.
Вопросы для самоконтроля
1. Какая задача линейного программирования называется целочисленной?
2. Структура экономико-математической модели задачи
целочисленного программирования?
3. Какие существуют методы решения задач целочисленного программирования?
4. Пояснить суть метода Гомори.
5. Что называется сечением Гомори?
6. Пояснить принципиальную суть метода ветвей и границ.
7. Пояснить происхождение названия метода ветвей и границ.






