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

Пример 1.

Задача: Требуется определить максимум функции F = x1 + x2, при условии выполнения следующих ограничений:

x1 + 2 x2 £ 6;

2 x1 + x2 £ 3;

x1 - 2 x2 ≥ - 1.

Решение. Приводим ограничения-неравенства к одному виду

x1 + 2 x2 £ 6;

2 x1 + x2 £ 3;

- 1 x1 + 2 x2 £ 1.

Заменяем ограничения-неравенства уравнениями, вводя дополнительные переменные y, и полагаем свободный член в целевой функции равным нулю

 

x1 + 2 x2 + y1 = 6;

2 x1 + x2 + y2 = 3;

 - x1 + 2 x2 + y3 = 1;

x1 +    x2 + y4 = 0.

Выражаем значения дополнительных переменных y через основные x

y1 = 6 - (x1 + 2 x2);

y2 = 3 - (2 x1 + x2);

y3 = 1 - (- x1 + 2 x2);

y4 = 0 - (x1 + x2).

Находим разрешающий элемент в первом столбце коэффициентов (вторая строка) и меняем местами основную переменную x1 и дополнительную переменную y2

2 x1 = 3 - (y2 + x2)

или

x1 = 1,5 - 0,5 y2 - 0,5 x2.

Подставляем это значение в остальные уравнения

y1 = 6 - (1,5 - 0,5 y2 - 0,5 x2 + 2 x2);

x1 = 1,5 - (     0,5 y2 + 0,5 x2     );

y3 = 1 - (-1,5 + 0,5 y2 + 0,5 x2 + 2 x2);

y4 = 0 - (1,5 - 0,5 y2  - 0,5 x2 + x2).

Тогда система уравнений примет вид

y1 = 4,5 - (-0,5 y2 + 1,5 x2);

x1 = 1,5 - (0,5 y2 + 0,5 x2);

y3 = 2,5 - (0,5 y2 + 2,5 x2);

y4 = -1,5 - (-0,5 y2 + 0,5 x2).

Теперь находим разрешающий элемент во втором столбце (третья строка) и меняем местами основную переменную x2 с дополнительной переменной y3

2,5 x2 = 2,5 - (0,5 y2 + y3)

или

x2 = 1 - 0,2 y2 - 0,4 y3.


Подставляем это значение в остальные уравнения.

y1 = 4,5 - (-0,5 y2 + 1,5 - 0,3 y2 - 0,6 y3);

x1 = 1,5 - (0,5 y2 + 0,5 - 0,1 y2 - 0,2 y3);

x2 = 1,0 - (0,2 y2                 + 0,4 y3);

y4 = -1,5 - (-0,5 y2 + 0,5 - 0,1 y2 - 0,2 y3).

Тогда система уравнений примет вид

y1 = 3 - (-0,8 y2 - 0,6 y3);

x1 = 1 - (0,4 y2 - 0,2 y3);

x2 = 1 - (0,2 y2 + 0,4 y3);

y4 = -2 - (-0,6 y2 - 0,2 y3).

Так как коэффициенты перед дополнительными переменными y2 и y3 в строке целевой функции имеют отрицательные значения, то оптимальное решение имеется

x1 = 1           x2 = 1.

 


Пример 2.

Задача: Требуется определить максимум функции F = x2 при условии выполнения следующих ограничений:

x1 + 4 x2 £ 16;

x1  - 2 x2 ³ - 2;

x1 + 2 x2 £ 6;

x1       £ 3.


Решение. Приводим ограничения-неравенства к одному виду

x1 + 4 x2 £ 16;

- x1 + 2 x2 £ 2;

  x1 + 2 x2 £ 6;

x1       £ 3.

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

x1 + 4 x2 + y1 = 16;

- x1 + 2 x2 + y2 = 2;

x1 + 2 x2 + y3 = 6;

x1         + y4 = 3;

        x2 + y5 = 0.

Выражаем значения дополнительных переменных y через основные x

y1 = 16 - (x1 + 4 x2);

y2 = 2 - (-x1 + 2 x2);

y3 = 6 - (x1 + 2 x2);

y4 = 3 - (x1    );

y5 = 0 - (       x2).

Находим разрешающий элемент в первом столбце (четвертая строка) и меняем местами основную переменную x1 с дополнительной переменной y4

x1 = 3 - y4.

Подставляем это значение в остальные уравнения


y1 = 16 - (3 - y4 + 4 x2);

y2 = 2 - (-3 + y4 + 2 x2);

y3 = 6 - (3 - y4 + 2 x2);

y4 = 3 - (  x1     );

y5 = 0 - (             x2).

Тогда система уравнений примет вид

y1 = 13 - (-y4 + 4 x2);

y2 = 5 - (y4 + 2 x2);

y3 = 3 - (-y4 + 2 x2);

x1 = 3 - (y4      );

y5 = 0 - (       x2).

Теперь находим разрешающий элемент во втором столбце (третья строка) и меняем местами основную переменную x2 и дополнительную переменную y3

2 x2 = 3 - (-y4 + y3)

или

x2 = 1,5 + 0,5 y4 - 0,5 y3.

Подставляем это значение в остальные уравнения

y1 = 13 - (  - y4 + 6 + 2 y4   - 2 y3);

y2 = 5 - (   y4 + 3 + y4 - y3);

x2 = 1,5 - (-0,5  y4              + 0,5 y3);

x1 = 3 - (   y4                           );

y5 = 0 - (       1,5 + 0,5 y4 - 0,5 y3).

Тогда система уравнений примет вид

y1 = 7 - (  y4 - 2 y3);

y2 = 2 - (2 y4 -  y3);

x2 = 1,5 - (-0,5 y4+ 0,5 y3);

x1 = 3 - (  y4       );

y5 = -1,5 - (0,5 y4 - 0,5 y3).

Так как в строке целевой функции коэффициент перед дополнительной переменной y4 положительный, то решение x1 = 3 и x2 = 1,5 не оптимально.

Поэтому в столбце коэффициентов перед y4 (вторая строка) находим разрешающий элемент и относительно его меняем местами дополнительные переменные y2 и y4

2 y4 = 2 - (y2 - y3)

или

y4 = 1 - 0,5 y2 + 0,5 y3.

Подставляем это значение в остальные уравнения

y1 = 7 - (1 - 0,5 y2  + 0,5 y3  - 2 y3);

y4 = 1 - (       0,5 y2   - 0,5 y3         );

x2 = 1,5 - (-0,5 + 0,25 y2 - 0,25 y3 + 0,5 y3);

x1 = 3 - (1 - 0,5 y2  + 0,5 y3        );

y5 = -1,5 - (0,5 - 0,25 y2 + 0,25 y3  - 0,5 y3).


Тогда система уравнений примет вид

y1 = 6 - (-0,5 y2 - 1,5 y3);

y4 = 1 - (0,5 y2  - 0,5 y3);

x2 = 2 - (0,25 y2 + 0,25 y3);

x1 = 2 - (-0,5 y2 + 0,5 y3);

y5 = -2 - (-0,25 y2 - 0,25 y3).

Так как коэффициенты перед дополнительными переменными y2 и y3 в строке целевой функции отрицательные, то оптимальное решение найдено.

x1 = 2          x2 = 2.

 






Автоматизация решения задачи

 

Код программы на языке программирования Just BASIC.

 

‘ ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

‘ ВВОД ДАННЫХ

INPUT M

INPUT N

DIM A(M,N), B(M), C(M), X(M),Y(N)

FOR I=1 TO M

FOR J=1 TO N

   INPUT A(I,J)

NEXT J

INPUT B(I)

NEXT I

' Перестроение переменных

FOR L = 1 TO N

P = L

GOSUB [OpRazEl] ' Вызов функции замены переменных

FOR J = 1 TO N

   V = A(L, J)

   A(L, J) = A(K, J)

   A(K, J) = V

NEXT J

W = B(L)

B(L) = B(K)

B(K) = W

NEXT L

IF M <> N + 1 THEN

FOR L = 1 TO N

250 IF A(M, L) >= 0 THEN

       P = N + 1

       GOSUB [OpRazEl] ' Вызов функции замены переменных

       GOTO 250

   ELSE

   END IF

NEXT L

ELSE

END IF

‘ ВЫВОД РЕШЕНИЯ

FOR I=1 TO N

PRINT B(I)

NEXT I

END


' Процедура определения разрешающего элемента

[OpRazEl]

E = 0

FOR I = P TO M - 1

IF A(I, L) <> 0 THEN

   IF B(I) = 0 THEN K = I: EXIT FOR

   C(I) = A(I, L) / ABS(B(I))

   IF C(I) > E THEN E = C(I): K = I

ELSE

END IF


NEXT I

' Пpисвоение меток

FOR I = 1 TO M

IF I = K THEN

   Z = B(I)

   FOR J = 1 TO N

       IF J = L THEN

           S = A(I, J)

       ELSE

           Y(J) = A(I, J)

       END IF

   NEXT J

ELSE

   FOR J = 1 TO N

          IF J = L THEN X(I) = A(I, J)

   NEXT J

END IF

NEXT I

' Преобразование матрицы

FOR I = 1 TO M

IF I = K THEN

   B(I) = Z / S

   FOR J = 1 TO N

       IF J = L THEN

           A(I, J) = 1 / S

       ELSE

           A(I, J) = Y(J) / S

       END IF

   NEXT J

ELSE

   B(I) = B(I) - X(I) * Z / S

   FOR J = 1 TO N

       IF J = L THEN

           A(I, J) = -X(I) / S

       ELSE

           A(I, J) = A(I, J) - X(I) * Y(J) / S

       END IF

   NEXT J

END IF

NEXT I



Варианты задач линейного программирования

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

Задание №1

 

Задача 1.1

 

Задача 1.2

  4 x1   x2 12     4 x1   x2 12
  x1 + 4 x2 12     x1 + 4 x2 12
    x1 +   x2 = max       x1 +   x2 = min
                                 

Задача 1.3

 

Задача 1.4

  2 x1   x2 2     2 x1   x2 2
  x1 + 2 x2 2     x1 + 2 x2 2
    x1 +   x2 = max       x1 +   x2 = min
                                 

Задача 1.5

 

Задача 1.6

  4 x1   x2 24     4 x1   x2 24
    x1   x2 3       x1   x2 3
          x2 = max             x2 = min
                                 

Задача 1.7

 

Задача 1.8

  x1 +   x2 3     x1 +   x2 3
  x1 + 4 x2 24     x1 + 4 x2 24
    x1       = max       x1       = min
                                 

Задача 1.9

 

Задача 1.10

    x1   x2 6       x1   x2 6
  x1 + 4 x2 12     x1 + 4 x2 12
  2 x1 +   x2 = max     2 x1 +   x2 = min
                                 

Задача 1.11

 

Задача 1.12

  x1 +   x2 6     x1 +   x2 6
  4 x1   x2 12     4 x1   x2 12
    x1 + 2 x2 = max       x1 + 2 x2 = min

Задача 1.13

 

Задача 1.14

  2 x1   x2 8     2 x1   x2 8
  x1 + 2 x2 8     x1 + 2 x2 8
    x1 + 2 x2 = max       x1 + 2 x2 = min
                                 

Задача 1.15

 

Задача 1.16

  2 x1 +   x2 8     2 x1 +   x2 8
    x1 + 3 x2 9       x1 + 3 x2 9
    x1 +   x2 = max       x1 +   x2 = min
                                 

Задача 1.17

 

Задача 1.18

  2 x1 +   x2 8     2 x1 +   x2 8
    x1 + 2 x2 10       x1 + 2 x2 10
    x1 +   x2 = max       x1 +   x2 = min
                                 

Задача 1.19

 

Задача 1.20

    x1 +   x2 7       x1 +   x2 7
    x1 + 3 x2 9       x1 + 3 x2 9
    x1 + 2 x2 = max       x1 + 2 x2 = min
                                 

Задача 1.21

 

Задача 1.22

    x1 +   x2 7       x1 +   x2 7
    x1 + 2 x2 10       x1 + 2 x2 10
  2 x1 + 3 x2 = max     2 x1 + 3 x2 = min
                                 

Задача 1.23

 

Задача 1.24

  3 x1 +   x2 15     3 x1 +   x2 15
  2 x1 + 3 x2 24     2 x1 + 3 x2 24
    x1 +   x2 = max       x1 +   x2 = min
                                 

Задача 1.25

 

Задача 1.26

  3 x1 +   x2 18     3 x1 +   x2 18
  2 x1 + 3 x2 26     2 x1 + 3 x2 26
    x1 +   x2 = max       x1 +   x2 = min

Задание №2

 

Задача 2.1

 

Задача 2.2

    x1 + 2 x2

6

 

    x1 + 2 x2 6
  2 x1 +   x2

3

 

  2 x1 +   x2 3
  x1 + 2 x2

1

 

  x1 + 2 x2 1
    x1 +   x2 =

max

 

    x1 +   x2 = min
             

 

 

               

Задача 2.3

 

Задача 2.4

    x1 2 x2

2

 

    x1 2 x2 2
    x1 + 2 x2

6

 

    x1 + 2 x2 6
    x1      

3

 

    x1       3
          x2 =

max

 

          x2 = min
             

 

 

               

Задача 2.5

 

Задача 2.6

    x1 +   x2

6

 

    x1 +   x2 6
    x1   x2

0

 

    x1   x2 0
    x1      

5

 

    x1       5
  2 x1 10 x2 =

max

 

  2 x1 10 x2 = min
             

 

 

               

Задача 2.7

 

Задача 2.8

    x1 + 4 x2

12

 

    x1 + 4 x2 8
  x1 + 2 x2

2

 

  x1 + 2 x2 2
    x1 + 2 x2

6

 

    x1 + 2 x2 6
    x1      

6

 

    x1       4
          x2 =

max

 

          x2 = min
             

 

 

               

Задача 2.9

 

Задача 2.10

    x1 +   x2

6

 

    x1 +   x2 6
    x1   x2

0

 

    x1   x2 0
    x1      

5

 

    x1       5
  2 x1 +   x2 =

max

 

  2 x1 +   x2 = min
             

 

 

               
                                     

 

Задача 2.11

 

Задача 2.12

  3 x1 +   x2 15     3 x1 +   x2 15
  3 x1   x2 0     3 x1   x2 0
    x1   x2 1       x1   x2 1
  2 x1   x2 = max     2 x1 ­–   x2 = min
                                 

Задача 2.13

 

Задача 2.14

2 x1 +   x2 0   2 x1 +   x2 0
    x1 + 2 x2 10       x1 + 2 x2 10
    x1 +   x2 3       x1 +   x2 3
    x1 2 x2 5       x1 2 x2 5
    x1       6       x1       6
    x1 + 3 x2 = max       x1 ­     = min
                                 

Задача 2.15

 

Задача 2.16

2 x1 +   x2 0   2 x1 +   x2 0
    x1 + 2 x2 10       x1 + 2 x2 10
    x1 +   x2 3       x1 2 x2 5
    x1 2 x2 5       x1       6
    x1       6       x1 ­+   x2 = max
          x2 = max                  
                                 

Задача 2.17

 

Задача 2.18

    x1 +   x2 2       x1 +   x2 2
  x1 + 2 x2 4     x1 + 2 x2 4
    x1 + 2 x2 8       x1 + 2 x2 8
    x1       6       x1       6
    x1 + 3 x2 = max     3 x1 ­+   x2 = max
                                 

 


 

Задача 2.19

 

Задача 2.20

4 x1 + 3 x2 12   4 x1 + 2 x2 12
    x1 + 2 x2 8       x1 + 2 x2 8
    x1       6       x1       6
          x2 5             x2 5
  2 x1 5 x2 = max       x1 ­+   x2 = max
                                 

Задача 2.21

 

Задача 2.22

  10 x1 + 3 x2 30     10 x1 + 3 x2 30
  x1 +   x2 4     x1 +   x2 5
    x1 +   x2 10       x1 ­+   x2 10
          x2 2             x2 2
    x1 + 3 x2 = max       x1 ­     = max
                                 

Задача 2.23

 

Задача 2.24

2 x1 + 4 x2 8       x1 2 x2 0
  3 x1 2 x2 0       x1 + 2 x2 2
    x1 + 3 x2 3     2 x1 ­+   x2 10
    x1      



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: