- •Математические основы теории систем учебно-методический комлекс
- •Предисловие
- •2. Теория графов (25 часов)
- •3.Теория автоматов(25 часов).
- •4. Математическое программирование (44 часов)
- •5. Теория игр (30 часов)
- •Заключение (1 час)
- •Задание на контрольную работу:
- •Задание на курсовой проект.
- •Методические указания синтез автомата с памятью общие положения
Задание на контрольную работу:
Студент выполняет вариант задания в соответствии с последними тремя цифрами зачётной книжки: a, b, c.
1. Решить симплекс-методом следующую задачу линейного программирования:
z = cx1 + bx2+ax3 + 6x:4→ max;
2x1 + 3x2+b x 3+cx4 ≤ 8;
x1 + 2х2+схя+5х4≤ 10:
xi
≥0, i
=
.
2. Методом динамического программирования решить задачу целочисленного программирования:
z = (а+1) x12+ x22→ max;
2х1+х2(b+с)/3≤10;
х1, х2 = 0, 1, 2, …
3. Методом ветвей и границ решить задачу целочисленного линейного программирования:
z = (a+1) x1 + (b+3) x2 → max;
xl + (2+c) x2≤ 7 + с;
(2+с) х1+х2≤ 7 + b;
х1, х2, = 0, 1,2,...
4.Графическим методом решить антагонистическую игру, заданную матрицей выигрыша первого игрока
φ =
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ
Выполняя контрольную работу, студент должен продемонстрировать умение грамотно, четко и кратко излагать суть процедур решения предложенных ему задач, давать необходимые пояснения и анализировать полученные результаты. Контрольная работа должна быть аккуратно оформлена, смысл всех используемых обозначений должен быть понятен, расчеты следует приводить, не опуская промежуточные выкладки.
Ниже кратко рассмотрены основные этапы решения задач, составляющих контрольную работу.
Задача 1. Решим симплекс-методом задачу линейного программирования
z = 2x1 + 3x2→ max;
x1 + x2 ≤ 5;
2x1 - х2 ≤ 4:
х1, х2 ≥ 0.
Прежде всего, введя дополнительные переменные х3 и х4, перепишем исходную задачу в нормальной форме, не содержащей неравенств:
z = 2x1+3x2+0x3+0x4→max; (1)
x1+x2+x3+0x4=5; (2)
2x1 - x2+0x3+x4=4; (3)
х1, х2 ≥ 0.
В качестве опорного плана x*=(x1*,x2*,x3*,x4*) возьмем начало координат исходной задачи, т. е. положим x1*=x2*= 0. Тогда из (2) и (3) получим , x3*=5, x4*= 4. Дли этого опорного плана запишем симплекс-таблицу (см. табл. 1 приложения), в которой С — строка коэффициентов при переменных в целевой функции (1), Вx — столбец базисных переменных, A0 — столбец свободных членов, А1, ..., A4 -столбцы коэффициентов в (2) и (3) соответственно при переменных x1,….,x4.
Элементы строки ∆ в табл. 2 вычисляются по формуле
∆j
=
- Cj (4)
где i, j — номера переменных и, соответственно, строк и столбцов в симплекс-таблице, Aij — элемент таблицы, стоящий на пересечении i-ой строки и j-го столбца. Согласно (4) имеем:
∆0 = С3A30 + С4А40-С0 =0*5 + 0*4 - 0 = 0,
∆1 = С3A31 + С4А41-С1 =0*1 + 0*2 - 2 = -2,
∆2 = С3A32 + С4А42-С2 =0*1 + 0*1 - 3 = -3,
∆3 = С3A33 + С4А43-С3 =0*1 + 0*0 - 0 = 0,
∆4 = С3A34 + С4А44-С4 =0*0 + 0*1 - 0 = 0.
Поскольку строка ∆ симплекс-таблицы содержит отрицательные элементы ∆1 и ∆2, то решение х* =(0, 0, 5, 4) не является оптимальным. Кроме того, столбцы j =1 и j = 2 симплекс-таблицы содержат положительные элементы. Последнее означает, что оптимальное решение существует и для его нахождения следует перейти к новой симплекс-таблице.
Сначала по формуле
∆k
=
∆j
отыскивается разрешающий столбец k, а затем по формуле
θr=
θi,
где величина θi= Ai0 / Aik и вычисляется только для тех i, для которых Aik>0, находится разрешающая строка r.
Согласно табл. 1,' ∆k = ∆2=--3, т. е. k = 2, а θг=θз = = 5/1=5, т. е. r=3. Следовательно, разрешающий элемент (в табл. 1 он заключен в квадрат) Ark=1. Зная разрешающий элемент, вычисляем элементы Aнij новой симплекс-таблицы по формуле:
Aнij
=
При этом новые элементы для i = 3 равны
A30н = A30 / A32 = 5/1 = 5, A31н = A31 / A32 = 1/1 = 1,
A32н = A32 / A32 = 1/1 = 1, A33н = A33 / A32 = 1/1 = 1,
A34н = A34 / A32 = 0/1 = 0,
а новые элементы строки i=4 равны:
A40н = A40 - A30 A42 / A32 = 4 – 5(-1)/1 = 9,
A41н = A41 - A31 A42 / A32 = 2 – 1(-1)/1 = 3,
A42н = A42 - A32 A42 / A32 = -1 – 1(-1)/1 = 0,
A43н = A43 - A33 A42 / A32 = 0 – 1(-1)/1 = 1,
A44н = A44 - A34 A42 / A32 = -1 – 0(-1)/1 = 1,
Введя в базис переменную х2 вместо х3 и заново вычислив строку ∆, получим новую симплекс-таблицу (см. табл. 2 приложения), которая соответствует оптимальному решению х0 = (0, 5, 0, 9). Следовательно, х10 = 0, х20 = 5 (дополнительные переменные х3, х4 не входили в формулировку исходной задачи и потому не должны указываться в ее решении). При этом целевая функция имеет значение z = ∆0 = 15.
Задача 2. Методом динамического программирования найдем
z = х12 +3х2 →max
3 х1 +2 х22≤ 10, (5)
х1, х2 =0, 1,2,...
Поскольку задача содержит две переменные, решение будет найдено за два шага.
Шаг /. На этом шаге основное рекуррентное соотношение динамического программирования для нашей задачи запишется в виде: x1€X1(ξ)
∆1(ξ)
=
f1(х1), (6)
причем f1(х1)= х12, X1(ξ) = {0, I, . .., [ξ /А1]}, где [X] означает «целая часть числа , X», a A1 = 3 — коэффициент при переменной х1 в неравенстве (5).
Воспользовавшись (6), вычислим ∆1(ξ) для всех возможных состояний вычислительного процесса ξ≤ В, где В — правая часть неравенства (5). Результаты сведем в табл. 3 приложения.
Шаг 2. На этом шаге основное рекуррентное соотношение динамического программирования имеет вид:
∆2(ξ) = [f2(х2) + ∆1(ξ – A2 х22)] (7)
где f2(х2) =3х2, A2 = 2, a ξ = В, так как данный шаг последний.
Результаты расчетов по формуле (7) сведем в табл. 4 приложения, в которой графа ∆1 заполнена на основании данных табл. 3. Из табл. 4 ясно, что ∆2(В)=9. Следовательно, z=9. Поскольку величина ∆2(В)=9 достигается при х2 = 0, то для переменной х2 оптимальное значение х20 = 0. При этом
∆1(10-2х22) = ∆1(10) = 9,
причем это значение, согласно табл. 3, достигается при х1=3. Следовательно, для переменной х1 оптимальным является значение х10=3.
Задача 3. Методом ветвей и границ найти:
z = 2х1+3х2→max; (8)
х1 + х2≤5; (9)
2 х1 - х2<4; (10)
l,5 х1 - х2 ≥—4; (11)
х1, х2 = 0, 1,2,... (12)
Шаг 1. Вычисление границы.
Пусть G — множество допустимых решений исходной задачи. Заменим в этой задаче условие целочисленности (12) на условие неотрицательности х1, х2 ≥0. В новой задаче множество допустимых решений обозначим через G*. Очевидно, что G G*. Поэтому максимум целевой функции (8) на множестве G* есть верхняя граница λ(G) этой функции на множестве G. Решив графически задачу линейного программирования (см. рис. 3), получим, что х1* = 0,5, х2* = 4,5, и потому
λ(G) = 2 х1*+3 х2* -= 14,5.
Шаг 2. Ветвление.
Поскольку в векторе х*=( х1*, х2*) обе компоненты не являются целочисленными, то ветвление можно осуществить по любой из них. Произведем ветвление по переменной х2. Тогда множество G* будет разбито на непересекающиеся подмножества
G1*= {( х1, х2) | ( х1, х2) € G*, х2 ≤ [х2*] = 4},
G2*= {( х1, х2) | ( х1, х2) € G*, х2 ≥ [х2*] +1 = 5}
Из рис. .3 ясно, что G2*=Ø и потому верхнюю границу следует вычислять только для множества G1 = G∩G1*.
Шаг 3. Вычисление границы.
Из рис. 4 видно, что максимум целевой функции (8) на множестве G1* достигается в точке х*=(1,4) с целочисленными координатами. При этом величина z* = 2 х1*+3 х2*= 14 является рекордом для множества G1 и, следовательно, для множества G = G1 U G2, где G2 = G ∩G2*. Поскольку найден рекорд для исходного множества допустимых решений G, то задача решена: z=z*=14, х10 = х1*=l, x20 = x2*=4.
Задача 4. Решим графическим методом антагонистическую игру, заданную матрицей выигрыша первого игрока
φ =
'Ожидаемые выигрыши первого игрока в ситуациях (х, j), где х= (х1, l-х1) - смешанная стратегия первого игрока, а j — чистая стратегия второго игрока, определяются выражениями:
M φ(х,1) = х1 φ11 + (1- х1) φ11 = 2 х1 + 4(1- х1)=4-2 х1,
M φ(х,2) = х1 φ12 + (1- х1) φ12 = 0 х1 + 3(1- х1)=3-3 х1,
M φ(х,3) = х1 φ13 + (1- х1) φ13 = 5 х1 + 1(1- х1)=1+4 х1,
которым на рис. 5 соответствуют три прямые. Нижняя огибающая этих прямых выделена жирной ломаной. Верхней точке этой огибающей соответствует абсцисса 0,29 и ордината 2,14. Поэтому оптимальная стратегия первого игрока х0= (0,29, 0,71), а цена игры V = Mφ(х0, 2) = 2,14.
Для оптимальной стратегии второго игрока y0=( y1°, y2°, y3°) величина y1°=0, так как высшая точка нижней огибающей на рис. 5 образована прямыми, соответствующими j = 2 и j=3. Поэтому y3°= 1— y2° и для определения y° достаточно найти точку пересечения прямых, описываемых уравнениями
M φ(1,y) = y2 φ12 + (1- y2) φ13 = 0 y2 + 5(1- y2)=5-5 y2,
M φ(2,y) = y2 φ22 + (1- y2) φ23 = 3 y2 + 1(1- y2)=1+2 y2,
.Абсцисса этой точки у2° определится из условия 5 — 5 y2° = — l+2 y2°, что дает y2° = 0,57. Следовательно, y0=(0, 0,57, 0,43).
ПРИЛОЖЕНИЕ
Таблица 1
C |
C0=0 |
C1=2 |
C2=3 |
C3=0 |
C4=0 |
Bx |
A0 |
A1 |
A2 |
A3 |
A4 |
→x3 |
5 |
1 |
1 |
1 |
0 |
x4 |
4 |
2 |
-1 |
0 |
1 |
∆ |
0 |
-2 |
-3 ↑ |
0 |
0 |
Таблица 2
C |
C0=0 |
C1=2 |
C2=3 |
C3=0 |
C4=0 |
Bx |
A0 |
A1 |
A2 |
A3 |
A4 |
x2 |
5 |
1 |
1 |
1 |
0 |
x4 |
9 |
3 |
0 |
1 |
1 |
∆ |
15 |
1 |
0 |
3 |
0 |
Таблица 3
ξ |
х1 |
f1(х1) |
∆1(ξ) |
ξ |
х1 |
f1(х1) |
∆1(ξ) |
|
0 |
0 |
0 |
0 |
7 |
0 |
0 |
|
|
1 |
0 |
0 |
0 |
|
1 |
1 |
|
|
2 |
0 |
0 |
0 |
|
2 |
4 |
4 |
|
3 |
о |
0 |
|
8 |
0 |
0 |
|
|
|
1 |
1 |
1 |
|
1 |
1 |
|
|
4 |
0 |
0 |
|
|
2 |
4 |
4 |
|
|
1 |
1 |
1 |
9 |
0 |
0 |
|
|
5 |
0 |
0 |
|
|
1 |
1 |
|
|
|
1 |
1 |
1 |
|
2 |
4 |
|
|
6 |
0 |
0 |
|
|
3 |
9 |
9 |
|
|
1 |
1 |
|
10 |
0 |
0 |
|
|
|
2 |
4 |
4 |
|
1 |
1 |
|
|
|
|
|
|
|
2 |
4 |
|
|
|
|
|
|
а |
3 |
9 |
9 |
|
Таблица 4
х2 |
10-2х22 |
∆1(10-2х22) |
f2(х2) |
f2(х2)+ ∆1(10-2х22) |
∆2 |
0 |
10 |
9 |
0 |
9 |
9 |
1 |
8 |
4 |
3 |
7 |
|
2 |
2 |
0 |
6 |
6 |
|
