Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_po_SR_po_dists_MOR_polnaya_ZO.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Глава 2. О многоцелевой задачей линейного программирования и теории матричных игр

§1. Многоцелевая задача линейного программирования

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

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

c11x1+c12x2+…+c1nxn  extr1,

c21x1+c22x2+…+c2nxn  extr2,

……………………………..

ck1x1+ck2x2+…+cknxn  extrk,

Здесь extri{min, max}, i=1, 2, …, k.

Решить многоцелевую задачу линейного программирования  это значит найти такое решение, при котором значения всех целевых функций будут наиболее близки к их экстремальным значениям. Назовём такое решение компромиссным. На сегодняшний день разработан целый ряд подходов и методов к решению многоцелевой задачи линейного программирования. Следует сразу отметить, что разные подходы и методы не дают однозначного ответа. Один из подходов к решению таких задач заключается в сведении задачи к одноцелевой. Мы рассмотрим два метода сведения задачи к одноцелевой.

1.2. Метод идеальной точки рассмотрим на примере задачи с двумя переменными и двумя целевыми функциями:

c11x1+c12x2  extr1,

c21x1+c22x2  extr2,

Алгоритм метода  следующий:

1. Найти область допустимых решений (ОДР) задачи (то есть в прямоугольной декартовой системе (ПДСК) Ox1x2 построить множество решений системы ограничений задачи). Допустим, многоугольник A1A2Al  ОДР.

2. Найти координаты вершин Ai ОДР.

3. В ПДСК OC1C2 изобразить образ ОДР при отображении C с матрицей C= . Для этого подставляя координаты ( , ) точки Ai в целевые функции, найти координаты (c11 +c12 , c21 +c22 ) образа при этом отображении. Многоугольник есть искомый образ ОДР.

4. Найти в ПДСК OC1C2 так называемую точку утопии U( , ), где =extr1(c11x1+c12x2), =extr2(c21x1+c22x2).

5. На многоугольнике … найти ближайшую к точке U утопии точку I. Это  так называемая идеальная точка.

6. Решив систему где  координаты идеальной точки, определить значения x1 и x2, при которых достигаются компромиссные значения и целевых функций задачи.

Пример 1. Решить многоцелевую задачу линейного программирования методом идеальной точки:

4x1+ x2  max,

x1+4x2  min,

Решение. Действуем по вышеописанному алгоритму:

1. Найдём ОДР задачи. ОДР задачи  треугольник ABC на Рис. 1 (подробности опускаем):

Рис. 1

2. Найдём координаты вершин A, B, C ОДР (подробности опускаем): A(0, ), B(0, ), C(1, 3).

3. В ПДСК OC1C2 изобразим образ ОДР при отображении C с матрицей C= . Для этого подставляя координаты точек A, B, C в целевые функции, находим координаты их образов A, B, C соответственно:

A=(40+ , 0+4 )=( , 6), B=(40+ , 0+4 )=( , ),

C=(41+3, 1+43)=(7, 13).

Треугольник ABC есть искомый образ ОДР (Рис. 2):

Рис. 2 Рис. 3

4. Найдём точку утопии U. Это точка, координаты которой равны экстремумам целевых функций, как если бы они рассматривались в отдельной одноцелевой задаче с данной системой ограничений. Из Рис. 3 видно, что максимум первой целевой функции равен 7 ( =7), а минимум второй целевой функции равен 6 ( =6). Поэтому U(7, 6)  точка утопии.

5. На треугольнике ABC найдём ближайшую к точке U утопии точку I  идеальную точку. Ясно, что она лежит на стороне AC и является основанием перпендикуляра, опущенного из точки U к прямой AC. Поэтому точку I находим по следующей схеме:

5.1. Находим уравнение прямой AC.

5.2. Находим уравнение прямой, проходящей через точку U перпендикулярно к AC.

5.3. Координаты I ищем как координаты точки пересечения прямых, найденных в п.п. 5.1 и 5.2.

Итак:

5.1. Находим уравнение прямой AC как уравнение прямой, проходящей через точки A и C:

.

После очевидных алгебраических преобразований полученного канонического уравнения прямой приходим к её общему уравнению:

14С111С2+45=0.

5.2. Находим уравнение прямой, проходящей через точку U(7, 6) перпендикулярно к AC: (С17)+(С26)=0, что равносильно .

11С1+14С2161=0.

5.3. Координаты I ищем как координаты точки пересечения прямых, найденных в п.п. 5.1 и 5.2:

6. Решив систему определяем значения x1 и x2, при которых достигаются компромиссные значения и целевых функций задачи. Решение системы  и .

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

1.3. Метод введения дополнительной переменной заключается в следующем:

  1. Задача решается для каждой целевой функции отдельно, то есть для каждого i=1, 2, …, k решается задача

ci1x1+ci2x2+…+cinxn  extri,

(1.1)

Пусть Ci=extri (то есть Ci  экстремальное значение целевой функции задачи (1.1))

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

xn+1  min,

(1.2)

где «»=«+» и «»=«», если Ci=extri=max, и «»=«» и «»=«», если Ci=extri=min.

  1. Решается задача (1.2) обычным образом (например, симплекс-методом или методом искусственного базиса; можно на компьютере в Excel, кому как нравится).

  2. Находятся значения целевых функций исходной задачи при найденном решении.

  3. Формулируется ответ, в котором указывается: решение , при котором достигается компромиссное решение, и значения всех целевых функций при данном решении.

Пример 2. Решить задачу Примера 1 введением дополнительной переменной.

Решение. 1. Решаем задачу для каждой целевой функции отдельно, например, в оболочке Excel в режиме поиск решения:

4x1+x2  max, x1+4x2  min,

Решения этих задач и их сценарии  следующие:

Решение первой: X1=(1, 3), Fmax=7.

Решение второй: X1=(0, 3/2), Fmin=6.

2. Составляем новую задачу линейного программирования:

x3  min,

  1. Решаем полученную задачу в оболочке Excel (в режиме «Поиск решения»). В отдельные ячейки вводим целевые функции. Сценарий и результаты решения  следующие:

В ячейках А1, А2, А3  значения соответственно x1, x2, x3, в ячейках D1 и E1  значения целевых функций, соответственно первой и второй.

Ответ: X0=(0,402439; 2,103659); C1=3,713415; C2=8, 817073.

1.4. Упражнение. Решить многоцелевую задачу линейного программирования методами идеальной точки введения дополнительной переменной:

а) 3x1+2x2  extr1 б) 2x1+5x2  extr1

x1+4x2  extr2 4x1+3x2  extr2

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