Одесская государственная академия строительства и архитектуры
Кафедра процессов и аппаратов технологии строительных материалов
Расчетно графическая работа
По основам системного анализа
Выполнил(а) ст. гр. ПСК-357
Расчет проверил
Доцент каф. ПАТСМ
ОГАРКОВ Б.Л.
Одесса - 2012
I. Решение задачи линейного программирования
Задача ЛП в стандартной форме с т ограничениями и п переменными имеет следующий вид: максимизировать или минимизировать Z = c1x1 + с2х2+ -... + cnxn
при ограничениях
Задачи ЛП в стандартной форме можно записать в компактных матричных обозначениях следующим образом:
максимизировать или минимизировать Z = cx при ограничениях Ах = b, х>=0, b>=0,
где А — матрица размерности т Х п, х —вектор-столбец размерности их 1, b— вектор-столбец размерности т Х 1, с — вектор-строка размерности 1 Х п.
Обычно А называется матрицей коэффициентов, х — вектором переменных, b — вектором ресурсов, с — вектором оценок задачи ЛП.
Основные шаги вычислительного процесса симплекс-метода
Основными шагами процесса вычислений в соответствии с симплекс-методом в табличной форме применительно к задаче максимизации являются следующие:
Шаг 1. Записать задачу в стандартной форме.
Ш а г 2. Заполнить первоначальную таблицу с использованием начального допустимого базисного решения. (Процедура отыскания такого решения описываются ниже.)
Шаг 3. Вычислить вектор относительных оценок (строки с) при помощи правила скалярного произведения.
Ш а г 4. Если все оценки c j неположительные, текущее допустимое базисное решение оптимальное. В противном случае необходимо ввести в базис небазисную переменную с наибольшим значением c j.
Шаг 5. Определить при помощи правила минимального отношения переменную, выводимую из базиса.
Ш а г 6. Применить элементарное преобразование для получения нового допустимого базисного решения и новой таблицы.
Шаг 7. Вычислить новые относительные оценки с использованием элементарного преобразования или правила скалярного произведения. Перейти к шагу 4.
Итерацией симплекс-метода называется выполнение шагов 4—7 описанного процесса. На каждой итерации получаются новая таблица и улучшенное допустимое базисное решение. Число допустимых базисных решений, просматриваемых при использовании симплекс-метода, представляет собой важную характеристику эффективности этого метода.
Условия задачи
Fmax=7x1-1x2
1x1+1x2>=3
5x1+1x2>=5
1x1+5x2>=5
1x1<=4
1x2<=4
II. Решить ТРАНСПОРТНУЮ ЗАДАЧУ
Транспортная задача (ТЗ) формулируется следующим образом. В m пунктах отправления А 1... A m сосредоточен однородный груз в количествах соответственно а 1... а m единиц. Имеющийся груз необходимо доставить потребителям В 1... В n, спрос которых выражается величинами b 1... b п единиц. Известна стоимость с ij перевозки единицы груза из i -го пункта отправления в j -й пункт назначения. Требуется составить план перевозок, который полностью удовлетворяет спрос потребителей в грузе, и при этом суммарные транспортные издержки минимизируются.
Для наглядности условия ТЗ можно представить таблицей (табл. 1.), которую будем называть распределительной. Распределительную таблицу называют иногда табличной или матричной моделью ТЗ.
Цель ТЗ — минимизировать общие затраты на реализацию плана перевозок.
Итерационный процесс по отысканию оптимального плана транспортной задачи начинают с опорного плана, который находят методом северо-западного угла.
Решение задачи осуществить методом потенциалов с помощью программы Optimal.
Представление транспортной задачи в матричной форме
Поставщик | Потребитель | Запас груза а i | |||||
B 1 | B 2 | ... | B n | ||||
Затраты на перевозку 1ед. груза | |||||||
A 1 | C 11 X 11 | С 12 X 12 | ... | C in X in | а 1 | ||
A 2 | C 21 X 21 | С 22 X 22 | ... | С 2п Х 2п | a 2 | ||
... | ... | ... | ... | ... | ... | ||
A m | С m1 X m1 | C m2 X m2 | ... | C mn Х тп | a m | ||
Потребность в грузе b j | b 1 | b 2 | ... | b п | |||
Исходная таблица:
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Транспортная задача имеет закрытый тип, так как суммарный запас груза равен суммарным потребностям.
Находим опорный план по правилу северо-западного угла:
Введем некоторые обозначения:
Ai* - излишек нераспределенного груза от поставщика Ai
Bj* - недостача в поставке груза потребителю Bj
Помещаем в клетку (1,1) меньшее из чисел A1*=130 и B1*=110
Так как спрос потребителя B1 удовлетворен, то столбец 1 в дальнейшем в расчет не принимается
Помещаем в клетку (1,2) меньшее из чисел A1*=20 и B2*=50
Так как запасы поставщика A1 исчерпаны, то строка 1 в дальнейшем в расчет не принимается
Помещаем в клетку (2,2) меньшее из чисел A2*=90 и B2*=30
Так как спрос потребителя B2 удовлетворен, то столбец 2 в дальнейшем в расчет не принимается
Помещаем в клетку (2,3) меньшее из чисел A2*=60 и B3*=30
Так как спрос потребителя B3 удовлетворен, то столбец 3 в дальнейшем в расчет не принимается
Помещаем в клетку (2,4) меньшее из чисел A2*=30 и B4*=80
Так как запасы поставщика A2 исчерпаны, то строка 2 в дальнейшем в расчет не принимается
Помещаем в клетку (3,4) меньшее из чисел A3*=100 и B4*=50
Так как спрос потребителя B4 удовлетворен, то столбец 4 в дальнейшем в расчет не принимается
Помещаем в клетку (3,5) меньшее из чисел A3*=50 и B5*=100
Так как запасы поставщика A3 исчерпаны, то строка 3 в дальнейшем в расчет не принимается
Помещаем в клетку (4,5) меньшее из чисел A4*=140 и B5*=50
Так как спрос потребителя B5 удовлетворен, то столбец 5 в дальнейшем в расчет не принимается
Помещаем в клетку (4,6) меньшее из чисел A4*=90 и B6*=90
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Целевая функция F=1400
Решаем задачу методом потенциалов:
Примем некоторые обозначения:
i - индекс строки;
j - индекс столбца;
m - количество поставщиков;
n - количество потребителей.
Этап 1
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 2
V2=C1,2-U1= 3
U2=C2,2-V2= -2
V3=C2,3-U2= 4
V4=C2,4-U2= 5
U3=C3,4-V4= -4
V5=C3,5-U3= 8
U4=C4,5-V5= -5
V6=C4,6-U4= 11
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,3 = c1,3 - (u1 + v3) = 2.
S1,4 = c1,4 - (u1 + v4) = 3.
S1,5 = c1,5 - (u1 + v5) = -6.
S1,6 = c1,6 - (u1 + v6) = -1.
S2,1 = c2,1 - (u2 + v1) = 8.
S2,5 = c2,5 - (u2 + v5) = -1.
S2,6 = c2,6 - (u2 + v6) = -3.
S3,1 = c3,1 - (u3 + v1) = 9.
S3,2 = c3,2 - (u3 + v2) = 5.
S3,3 = c3,3 - (u3 + v3) = 4.
S3,6 = c3,6 - (u3 + v6) = 1.
S4,1 = c4,1 - (u4 + v1) = 5.
S4,2 = c4,2 - (u4 + v2) = 10.
S4,3 = c4,3 - (u4 + v3) = 6.
S4,4 = c4,4 - (u4 + v4) = 1.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то из них выбирается клетка, имеющая наименьший тариф. Наиболее потенциальной является клетка (1,5). Для нее оценка равна -6.
Строим для нее цикл, помечая клетки цикла знаками "плюс" и "минус".
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 |
|
| |||||||||||||||||||||||
A2 |
|
| |||||||||||||||||||||||
A3 |
|
| |||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Перемещаем по циклу груз величиной в 20 единиц, прибавляя эту величину к грузу в клетках со знаком "плюс" и отнимая ее от груза в клетках со знаком "минус".
В результате перемещения по циклу получим новый план:
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Целевая функция F= 1280
Значение целевой функции изменилось на 120 единиц по сравнению с предыдущим этапом.
Этап 2
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 2
V5=C1,5-U1= 2
U3=C3,5-V5= 2
U4=C4,5-V5= 1
V6=C4,6-U4= 5
V4=C3,4-U3= -1
U2=C2,4-V4= 4
V2=C2,2-U2= -3
V3=C2,3-U2= -2
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = 6.
S1,3 = c1,3 - (u1 + v3) = 8.
S1,4 = c1,4 - (u1 + v4) = 9.
S1,6 = c1,6 - (u1 + v6) = 5.
S2,1 = c2,1 - (u2 + v1) = 2.
S2,5 = c2,5 - (u2 + v5) = -1.
S2,6 = c2,6 - (u2 + v6) = -3.
S3,1 = c3,1 - (u3 + v1) = 3.
S3,2 = c3,2 - (u3 + v2) = 5.
S3,3 = c3,3 - (u3 + v3) = 4.
S3,6 = c3,6 - (u3 + v6) = 1.
S4,1 = c4,1 - (u4 + v1) = -1.
S4,2 = c4,2 - (u4 + v2) = 10.
S4,3 = c4,3 - (u4 + v3) = 6.
S4,4 = c4,4 - (u4 + v4) = 1.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то из них выбирается клетка, имеющая наименьший тариф. Наиболее потенциальной является клетка (2,6). Для нее оценка равна -3.
Строим для нее цикл, помечая клетки цикла знаками "плюс" и "минус".
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 |
|
| |||||||||||||||||||||||
A3 |
|
| |||||||||||||||||||||||
A4 |
|
| |||||||||||||||||||||||
Потребность |
Перемещаем по циклу груз величиной в 10 единиц, прибавляя эту величину к грузу в клетках со знаком "плюс" и отнимая ее от груза в клетках со знаком "минус".
В результате перемещения по циклу получим новый план:
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Целевая функция F= 1250
Значение целевой функции изменилось на 30 единиц по сравнению с предыдущим этапом.
Этап 3
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 2
V5=C1,5-U1= 2
U3=C3,5-V5= 2
U4=C4,5-V5= 1
V6=C4,6-U4= 5
U2=C2,6-V6= 1
V4=C3,4-U3= -1
V2=C2,2-U2= 0
V3=C2,3-U2= 1
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = 3.
S1,3 = c1,3 - (u1 + v3) = 5.
S1,4 = c1,4 - (u1 + v4) = 9.
S1,6 = c1,6 - (u1 + v6) = 5.
S2,1 = c2,1 - (u2 + v1) = 5.
S2,4 = c2,4 - (u2 + v4) = 3.
S2,5 = c2,5 - (u2 + v5) = 2.
S3,1 = c3,1 - (u3 + v1) = 3.
S3,2 = c3,2 - (u3 + v2) = 2.
S3,3 = c3,3 - (u3 + v3) = 1.
S3,6 = c3,6 - (u3 + v6) = 1.
S4,1 = c4,1 - (u4 + v1) = -1.
S4,2 = c4,2 - (u4 + v2) = 7.
S4,3 = c4,3 - (u4 + v3) = 3.
S4,4 = c4,4 - (u4 + v4) = 1.
Если имеется несколько клеток с одним и тем же наименьшим значением оценки, то из них выбирается клетка, имеющая наименьший тариф. Наиболее потенциальной является клетка (4,1). Для нее оценка равна -1.
Строим для нее цикл, помечая клетки цикла знаками "плюс" и "минус".
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 |
|
| |||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 |
|
| |||||||||||||||||||||||
Потребность |
Перемещаем по циклу груз величиной в 60 единиц, прибавляя эту величину к грузу в клетках со знаком "плюс" и отнимая ее от груза в клетках со знаком "минус".
В результате перемещения по циклу получим новый план:
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Целевая функция F= 1190
Значение целевой функции изменилось на 60 единиц по сравнению с предыдущим этапом.
Этап 4
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения Ui+Vj=Ci,j(i=1..m, j=1..n), просматривая все занятые клетки.
Потенциалы Ui:
U1=0
V1=C1,1-U1= 2
V5=C1,5-U1= 2
U3=C3,5-V5= 2
U4=C4,1-V1= 0
V6=C4,6-U4= 6
U2=C2,6-V6= 0
V4=C3,4-U3= -1
V2=C2,2-U2= 1
V3=C2,3-U2= 2
Определяем значения оценок Si,j=Ci,j-(Ui+Vj) для всех свободных клеток:
S1,2 = c1,2 - (u1 + v2) = 2.
S1,3 = c1,3 - (u1 + v3) = 4.
S1,4 = c1,4 - (u1 + v4) = 9.
S1,6 = c1,6 - (u1 + v6) = 4.
S2,1 = c2,1 - (u2 + v1) = 6.
S2,4 = c2,4 - (u2 + v4) = 4.
S2,5 = c2,5 - (u2 + v5) = 3.
S3,1 = c3,1 - (u3 + v1) = 3.
S3,2 = c3,2 - (u3 + v2) = 1.
S3,3 = c3,3 - (u3 + v3) = 0.
S3,6 = c3,6 - (u3 + v6) = 0.
S4,2 = c4,2 - (u4 + v2) = 7.
S4,3 = c4,3 - (u4 + v3) = 3.
S4,4 = c4,4 - (u4 + v4) = 2.
S4,5 = c4,5 - (u4 + v5) = 1.
Так как все оценки Si,j >=0, то полученный план является оптимальным.
Транспортная задача решена.
Поставщик | Потребитель | Запасы груза | |||||||||||||||||||||||
B1 | B2 | B3 | B4 | B5 | B6 | ||||||||||||||||||||
A1 | |||||||||||||||||||||||||
A2 | |||||||||||||||||||||||||
A3 | |||||||||||||||||||||||||
A4 | |||||||||||||||||||||||||
Потребность |
Целевая функция F= 1190