Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исследование операций. Учебное пособие-1.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

8. ЦЕЛОЧИСЛЕННОЕ ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

План

8.1.Экономическая и геометрическая интерпретация задачи целочисленного программирования.

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

Многие задачи линейного программирования, если рассмотреть их содержательную постановку (экономическое значение), например, задача о производстве столов, шкафов и кроватей с максимальным доходом при ограниченных ресурсах, являются на самом деле целочисленными задачами линейного программирования (трудно ведь представить, что компания может произвести и продать 1/3 стола или 11/4 шкафа?).

Таким образом, мы берем обычные задачи линейного программирования (см. примеры на графический метод, симплексный метод, двойственные задачи) и всего лишь добавляем ограничение: все переменные должны принимать целые значения. Но, несмотря на такое, казалось бы, небольшое усложнение, само решение задачи становится куда более объемным. Если речь идет о задаче с двумя переменными, проще всего по-прежнему применить графический метод, если же переменных больше, приходится использовать специальные методы для этого класса задач: метод Гомори или метод ветвей и границ.

8.1. Экономическая и геометрическая интерпретация задачи целочисленного программирования

Постановка задачи целочисленного программирования.

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

Задача целочисленного программирования формулируется

следующим образом.

 

 

 

 

Найти такое решение план

 

 

 

при котором

линейная функция

принимает максимальное или ми-

= ( 1

, 2

, . . . , ),

 

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

 

 

 

нимальное значение = =1

 

 

 

 

89

= , = 1, 2, . . . , =1 > 0, = 1, 2, . . . ,

= целыечисла.

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

Понятия о методе ветвей и границ

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

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

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

Графический метод решения задач целочисленного программирования

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

Если оптимальное решение этой задачи является целочисленным, то оно и является оптимальным для исходной задачи.

Если же полученное оптимальное решение не целочисленное, то строится дополнительное линейное ограничение. Оно обладает следующими свойствами:

1)оно должно быть линейным;

2)должно отсекать найденный оптимальный не целочисленный план;

3)не должно отсекать ни одного целочисленного плана.

90

Алгоритм графического решения задачи целочисленного программирования1, 2

1. Построить систему координат и выбрать масштаб. 2. Найти область допустимых решений (ОДР) системы огра-

ничений задачи.

3. Построить целевую функцию, являющуюся линией уровня, и на ней указать направление нормали.

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

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

5.Найти координаты, точки экстремума и значение целевой функции в ней. Если полученные значения не целочисленные, то перейти к следующему шагу.

6.Выделить у этих координат область с целочисленными

значениями.

7.Определить новые координаты и построить граф.

8.Найти точки с целыми значениями искомых переменных,

подставить в уравнение целевой функции и найти её значение. Максимальное из полученных значений целевой функции и будет решением задачи.

Пример решения задачи целочисленного программирования

Решить методом ветвей и границ задачу, имеющую следую-

щую математическую модель= 7 1:+ 4 2 3 1 + 2 2 12, 2 1 +, 5 20.20,

1, 2 1целые2 числа.

Решение

1. Находим координаты точек каждого линейного уравне-

ния системы ограничений3 1 + 2 2 =и12,строим прямые

если , то

1 прямая1 =: 0 2 2 = 12 2 = 6, если 2 = 0, то 3 1 = 12,, 1 = 4.

91

если

 

 

 

2 ,1то+ 5 2 = 20,,

 

 

 

= 4,

 

 

 

 

 

 

еслиНаходим1 = 0, тоОДР5 2.

= 20,

2

 

 

 

 

 

 

2 прямая:

 

 

 

 

2 1

= 20

1

= 10.

 

 

 

 

2.

 

 

2

= 0

 

 

 

 

 

 

3.

и

 

Находим1, 2 координаты0

 

точек целевой функции и строим1

прямую2

целевой функции

 

 

 

 

 

 

 

 

 

 

 

 

Так как

 

 

 

 

 

 

, то область будет ограничена прямыми

и

 

построенными прямыми (см. рис. 8.1).

 

– первая точка

 

;7 1

+ 4 2 = 0

 

 

– вторая точка

1 = 0,

2

= 0 .

 

 

 

 

 

через4.

ОДР до тех

пор1 =,

пока4 2

=она(не7)

станет касательной к ней, и

 

 

 

Перемещаем прямую целевой функции по направлению

5.

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

0

 

 

ции в ней:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

находим точку .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Находим координаты точек

 

 

 

 

и значение целевой функ-

6.

 

 

Выделим= 7 1,8область+ 4 3,27относительно= 12,6 + 13,08точки= 25,68

Получен нецелочисленный1 = 1,8оптимальный; 2 = 3,27 план.

значения:

 

 

 

 

 

 

1 1 2;

3 2 4;

0, беря целые

Получим

 

 

 

 

 

 

18.(1;

3,6)Для точек2(2; 3)с целыми3(0; 4)

значениями4(1; 3) 5(0;их3)координат6(1; 0) 7((2;искомые0).

 

 

 

 

 

 

координаты точек по границе этой области:

7.

 

 

Строим граф (рис. 8.2)

 

 

 

 

 

 

 

 

 

Для

 

1 и 2

 

(2; 3),

2

= 7

 

2 + 4

 

3 = 26.

 

Для точки

2

 

 

 

значения

 

 

 

 

 

)находим значения целевой функции:

Для точки

3(0; 4), 3

= 7

 

0 + 4

 

4 = 16.

 

 

 

точки

4

(1; 3), 4

 

 

 

 

1 + 4

 

3 = 19.

 

Для точки

= 7

 

 

 

Для точки

5

(0; 3), 5

= 7

0 + 4

 

 

3 = 12.

 

Так как

 

 

 

7

(2; 0), 7

= 7

 

 

2 + 4

 

 

0 = 14.

 

Для точки

 

6

(

)

6

 

 

 

 

 

 

 

 

 

 

решением 2

(2; 3)

 

 

 

 

 

 

 

 

целевой0 = 7.

функции находится

для точки

максимальное1; 0 , =значение7 1 + 4

 

 

 

 

 

 

 

, то она и будет оптимальным целочисленным

Ответ:

= 26; 1 = 2; 2

= 3.

 

 

 

 

 

 

 

 

 

задачи.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

92

Рис. 8.1. Графическое решение задачи

Рис. 8.2. Граф возможных решений задачи

93

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

Имеется необходимость посетить n городов в ходе деловой поездки. Спланировать поездку нужно так, чтобы, переезжая из города в город, побывать в каждом не более одного раза и вернуться в исходный город. Определить оптимальный маршрут посещения городов и его минимальное расстояние.

Задана матрица расстояний между городами .

Сформулированная задача – задача

целочисленная. Пусть

 

= 1,,

если путешественник переезжает из i -го города в j-й и

если это не так.

 

= 0

 

 

Формально введем (n + 1) город, расположенный там же, где

и первый город, т. е. расстояния от (n + 1) города до любого другого, отличного от первого, равны расстояниям от первого города. При этом если из первого города можно лишь выйти, то в (n + 1) город можно лишь прийти.

Введем дополнительные целые переменные, равные номеру посещения этого города на пути u1 = 0, un+1 = n . Для того чтобы избежать замкнутых путей, выйти из первого города и вернуться в (n + 1) введем дополнительные ограничения, связывающие пере-

менные xij и переменные ui. (ui целые неотрицательные числа).

 

 

 

 

Математическая модель

, = 1 ÷ ,

 

min

=1

=1

 

 

= 1

= 1

 

=1

 

=1

, при = 1

+ ≤ − 1, = 2 ÷ + 1, = 1 ÷ ,

+ 1

 

 

0 ≤ ≤ +1 = 1

, = 2, … ,

 

Пример решения задачи.

 

 

Необходимо посетить 4 города в ходе деловой поездки. Спланировать поездку нужно так, чтобы, переезжая из города в город, побывать в каждом не более одного раза и вернуться в исходный город. Определить оптимальный маршрут посещения городов и

его минимальное расстояние.

Матрица расстояний между городами задана табл. 8.1.

94

 

 

 

 

Таблица 8.1

Номер

1

2

3

4

города

 

 

 

 

1

 

19

25

11

2

37

 

26

58

3

10

50

 

39

4

38

39

24

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

+ 10x31

 

 

Составляем математическую модель задачи.

 

Zmin = 19x12 + 25x13 + 11x13 + 37x21

+ 26x23 + 58x24

12

+ 13

+ 14

+ 50x32

+ 39x34 + 38x

 

+ 39x42

+ 24x43

 

= 1, 21

+ 31

+ 41

= 41

 

 

 

21

+ 23

+ 24

= 1, 12

+ 32

+ 42

= 1

 

 

 

41

+ 42

+ 34

= 1, 13

+ 23

+ 43

= 1

 

 

 

21

+ 23

+ 24

= 1, 14

+ 42

+ 34

= 1

 

 

 

1

2

+ 4 12

 

3

 

 

 

 

 

 

 

 

1

3

+ 4 13

 

3

 

 

 

 

 

 

 

 

1

4

+ 4 14

 

3

 

 

 

 

 

 

 

 

1

3

+ 4 23

 

3

 

 

 

 

 

 

 

 

2

4

+ 4 24

 

3

 

 

 

 

 

 

 

 

3

2

+ 4 32

 

3

 

 

 

 

 

 

 

 

3

2

+ 4 32

 

3

 

 

 

 

 

 

 

 

3

4

+ 4 34

 

3

 

 

 

 

 

 

 

 

4

2

+ 4 42

 

3

 

 

 

 

 

 

 

 

4

3

+ 4 43

 

3

 

 

 

 

 

 

 

 

4

1

+ 4 41

 

3

 

 

 

 

 

 

 

 

3

1

+ 4 31

 

3

 

 

 

0

 

 

 

 

2

1

+ 4 21

 

3

 

 

 

 

 

 

 

где

 

минимальный

маршрут посещения городов;

 

 

 

= целые,

 

 

 

 

 

расстояние между городами ij;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

– номер посещения i-го города.

 

 

 

 

 

 

Строим

граф посещения городов с учётом возможных марш-

рутов движения коммивояжера.

95

Рис. 8.3. Граф посещения городов

где: --- расстояние между городами;

---расстояние, пройденное по маршруту;

---расстояние, пройденное по минимальному маршруту, 4 – номер города

Ответ: Минимальный маршрут: 1 --- 4 --- 2 --- 3 --- 1. Минимальное расстояние – 86 ед.

Вывод

Многие задачи линейного программирования, если рассмотреть их содержательную постановку (экономическое значение), например, задача о производстве столов, шкафов и кроватей с максимальным доходом при ограниченных ресурсах, являются на самом деле целочисленными задачами линейного программирования (трудно ведь представить, что компания может произвести и продать 1/3 стола или 11/4 шкафа?).

Таким образом, мы берем обычные задачи линейного программирования (см. примеры на графический метод, симплексный метод, двойственные задачи) и всего лишь добавляем ограничение: все переменные должны принимать целые значения. Но, несмотря на такое, казалось бы, небольшое усложнение, само реше-

96

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

Вопросы для самопроверки

1.Сформулируйте постановку задачи целочисленного программирования.

2.Математическая модель задачи целочисленного программирования, ее особенности.

3.Метод ветвей и границ и его применение.

4.Алгоритм графического решения задачи целочисленного программирования.

5.Как построить граф целочисленной области возможных решений задачи?

6.Как определить целочисленный план и экстремальное значение целевой функции?

7.Сформулируйте задачу о коммивояжере.

8.Какие экономико-математические модели могут быть сведены к задаче о коммивояжере?

9.Как построить математическую модель задачи о коммиво-

яжере?

10.Как называются переменные в математической модели задачи коммивояжере?

Литература и Интернет-ресурсы

1.Математические методы и модели исследования операций: учебник / под ред. В. А. Колемаева. М.: Юнити-Дана, 2015. 92 с. [Электронный ресурс]. URL: //biblioclub.ru/index.php?page=book &id=114719

2.Лемешко Б. Ю. Теория игр и исследование операций. Новосибирск: НГТУ, 2013. 167 с. [Электронный ресурс]. URL: //biblioclub.ru/index.php?page=book&id=228871

3.Гладких Б. А. Методы оптимизации и исследование операций для бакалавров информатики. Линейное программирование: учебное пособие. Томск: Изд-во «НТЛ», 2009. Ч. 1: Введение в

97

исследование операций. 200 с. [Электронный ресурс]. URL: //biblioclub.ru/index.php?page=book&id=200774

4.Грызина Н. Ю., Мастяева И. Н., Семенихина О. Н. Математические методы исследования операций в экономике: учебнометодический комплекс. М.: Евразийский открытый институт, 2009. 196 с. [Электронный ресурс]. URL: //biblioclub.ru/index.php? page=book&id=93167

5.Солдатова С. Э., Лукьянова Н. Ю., Чеглакова Л. М. Методы исследований в менеджменте: учебное пособие. М.: ДиректМедиа, 2014. 342 с. [Электронный ресурс]. URL: //biblioclub.ru/ index.php?page=book&id=235095

98

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]