sga-help.ru

Демо (html) Моделирование систем



Моделирование решений транспортной задачи

П 1

П 2

П 3

П 4

П 5

Запасы

С1

4

5

2

3

1

680

С2

2

6

1

5

2

800

С3

5

1

2

6

7

400

С4

2

7

1

4

8

400

С5

3

3

5

6

9

340

Заявки

700

580

550

300

490



Вариант

Смоделировать оптимальный план, если известна транспортная таблица

П 1

П 2

П 3

П 4

П ф

Запасы

С1

3

4

4

1

780

С2

2

8

7

2

600

С3

10

2

3

15

400

С4

1

2

6

10

700

Сф

Заявки

600

580

500

650



Моделирование решений транспортной задачи

Все условия задачи отобразим в таблице (рисунок 1):

- пункты отправления и назначения,

- запасы, имеющиеся в пунктах отправления,

- заявки, поданные пунктами назначения,

- стоимости перевозок из каждого пункта отправления в каждый пункт назначения.

Таблица 1

А1

…

Аj

…

Аn

Запасы

В1

c11

…

Cj3

…

C1n

b1

…

…

…

…

…

…

…

Вi

ci1

…

ci3

…

cin

bi

…

…

…

…

…

…

…

Вm

cm1

…

cj3

…

cmn

bm

Заявки

a1

…

aj

…

an

Рисунок 1. Транспортная таблица

В этой таблице пункты назначения обозначены - A1,…, Aj, …,An, a B1, …, Bi,…,Bm – это пункты отправления, т.е. m пунктов отправления и n пунктов назначения.

Ячейки (клетки) таблицы, в которых мы будем записывать отличные от нуля перевозки, назовем базисными, а остальные (пустые) – свободными.

Решение транспортной задачи, как и всякой задачи линейного программирования, начинается с нахождения опорного плана. Проведем нахождение опорного плана методом «северо-западного угла».

Для чего создадим таблицу, показанную на рисунке 2.

А1

…

Аj

…

Аn

Запасы

В1

b1

B2

…

В3

bi

В4

…

В5

bm

Заявки

a1

…

aj

…

an

Рисунок 2. Таблица для определения опорного плана перевозок

Шаг 1. Если b1 < a1 , то из В1 вывозится полностью весь груз в А1, а недостающие (a1 - b1 ) единиц груза попытаемся довезти из следующего пункта отправки, т.е. В2. Если (a1 - b1 ) больше, чем имеющийся груз в В2, то переходим к Шагу 1( но уже рассматриваем пункт отправки В2 вместо В1) и т.д. После того как заявка А1 будет удовлетворена полностью, переходят к удовлетворению заявки следующего пункта назначения, т.е. А2. Причем эту заявку начинают удовлетворять грузом из первого по порядку пункта отправления с ненулевым грузом. Если (a1 - b1 ) < b2 , то переходим к шагу 2

Шаг 2. Если b1 > a1 , то из В1 вывозится a1 единиц груза в А1, и в В1 останется (b1 -a1) единиц груза. После этого заявка А1 будет удовлетворена полностью, а в В1 останется (b1 - a1) единиц груза. Этим остаточным грузом необходимо удовлетворить следующую заявку, т.е. заявку А2. Если этот остаточный груз в В1 меньше, чем заявка А2, то переходим к шагу 1, иначе переходим к шагу 2.

Шаг 3. Если b1 = a1, то груз из В1 полностью перевозится в пункт А1, удовлетворяя заявку А1. Затем начинают удовлетворять заявку А2 из пункта отправления В2 и выполняют либо шаг 1, либо шаг 2.

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



1233.01.01;ЭПТ2.01;1

План

1.Теоретическая часть

-Транспортная задача линейного программирования. Основные понятия

-Транспортная задача с неправильным балансом

-Алгоритм определения опорного плана транспортной задачи методом «северо-западного угла»

-Алгоритм нахождения оптимального плана методом наименьших затрат

-Алгоритм нахождения оптимального плана методом потенциалов

2.Моделирование решений транспортной задачи

-Моделирование опорного плана транспортной задачи методом «северо-западного угла»

-Моделирование оптимального плана транспортной задачи методом потенциалов

3.Контрольный пример

Цель: изучить на практическом примере процесс моделирования транспортной задачи линейного программирования.

Результат обучения:

получить навыки построения модели транспортной задачи линейного программирования.

Список рекомендуемой литературы:

  • Бережная В., Бережной В.И. Математические методы моделирования экономических систем. 2-е изд., перераб. И доп. – М.: Финансы и статистика, 2006.
  • Васильев Л.Н., Деева Е.А. Моделирование микроэкономических процессов и систем. Изд-во КноРус, 2011.
  • Поршнев С.В. Компьютерное моделирование физических процессов с использованием пакета MathCad. –М.:, 2004.
  • Советов Б.Я., Яковлев С.А. Моделирование систем. Изд-во Высшая школа, 2009.

Используемые программы:

OpenOffice.org Calс

Табличный процессор OpenOffice.org Calс– программа, предназначенная для ввода и обработки данных.



Вариант

Смоделировать оптимальный план для заданной транспортной таблицы

П 1

П 2

П 3

П 4

П 5

Запасы

С1

8

9

2

1

1

680

С2

6

6

1

3

2

800

С3

2

4

5

7

7

400

С4

2

5

11

9

8

400

С5

4

3

8

8

9

340

Заявки

700

580

550

300

490



Вариант

Смоделировать оптимальный план для заданной транспортной таблицы

П1

П2

П3

П4

Запасы

С1

13

15

5

5

680

С2

17

12

11

1

800

С3

10

9

13

15

400

С 4

5

2

18

20

700

Заявки

350

580

550

350



Вариант

Смоделировать оптимальный план для заданной транспортной таблицы

П1

П2

П3

П4

Запасы

С1

9

15

1

5

780

С2

2

12

11

1

600

С3

10

9

3

15

400

С 4

11

2

6

10

700

Заявки

600

580

850

650



Вариант

Смоделировать оптимальный план, если известна транспортная таблица

П 1

П 2

П 3

П 4

П ф

Запасы

С1

4

3

1

3

150

С2

5

6

6

7

350

С3

4

2

6

6

170

С4

2

1

5

4

140

Сф

Заявки

350

230

120

250



Тестирование

___ в транспортной таблице назовем несколько клеток, соединенных замкнутой линией, которая в каждой клетке совершает поворот на 900. (Запишите прописными буквами).

- Циклом




Вариант

Выполнить расчет сетевого графика и ответить на вопросы

№ п/п

Работа аi

Опирается на работы

Продолжительность работы

1

а1

-

10

2

а2

-

6

3

а3

а2

а1

15

4

а4

а3

а2

18

5

а5

а2

а4

10

6

а6

а4

18

7

а7

а5

а6

8

8

а8

а7

а9

30

9

а9

а7

7

10

а10

а8

8



Вариант

Выполнить расчет сетевого графика и ответить на вопросы

№ п/п

Работа аi

Опирается на работы

Продолжительность работы

1

а1

-

10

2

а2

-

6

3

а3

а2

а1

15

4

а4

а3

а2

18

5

а5

а2

а4

10

6

а6

а4

18

7

а7

а5

а6

8

8

а8

а7

а9

30

9

а9

а7

7

10

а10

а8

8



Вариант

Выполнить расчет сетевого графика и ответить на вопросы

№ п/п

Работа аi

Опирается на работы

Продолжительность работы

1

а1

-

15

2

а2

-

12

3

а3

а2

а1

15

4

а4

а3

а2

18

5

а5

а2

а4

10

6

а6

а4

18

7

а7

а5

а6

8

8

а8

а7

а9

30

9

а9

а7

15

10

а10

а8

15



Вариант

Выполнить расчет сетевого графика и ответить на вопросы

№ п/п

Работа аi

Опирается на работы

Продолжительность работы

1

а1

-

15

2

а2

-

18

3

а3

а2

а1

15

4

а4

а3

а2

18

5

а5

а2

а4

35

6

а6

а4

24

7

а7

а5

а6

8

8

а8

а7

а9

12

9

а9

а7

7

10

а10

а8

11



Вариант

Выполнить расчет сетевого графика и ответить на вопросы

№ п/п

Работа аi

Опирается на работы

Продолжительность работы

1

а1

-

18

2

а2

-

12

3

а3

а2

а1

7

4

а4

а3

а2

5

5

а5

а2

а4

15

6

а6

а4

18

7

а7

а5

а6

25

8

а8

а7

а9

12

9

а9

а7

4

10

а10

а8

7



Построение и расчет сетевого графика комплекса работ

Для построения модели расчета сетевого графика заданного комплекса работ в OpenOffice.org Calс переименуем лист1 на <Сетевой график> и на этом листе, начиная с ячейки А1, заполним таблицу 1

Таблица 1.

A

B

C

D

E

1

№ п/п

Работа аi

Опирается на работы

Продолжительность работы

2

1

а1

-

10

3

2

а2

-

12

4

3

а3

а2

а1

15

5

4

а4

а3

а2

18

6

5

а5

а2

а4

42

7

6

а6

а4

18

8

7

а7

а5

а6

8

9

8

а8

а7

а9

30

10

9

а9

а7

30

11

10

а10

а8

8

Рисунок 3 . Таблица комплекса работ

Таблица 2

A

B

C

D

E

F

G

1

№ п/п

Работа аi

Опирается на работы

Продолжительность работы аi

Ранги

Новое обозначение работы

2

1

а1

-

10

1

b1

3

2

а2

-

12

1

b2

4

3

а3

а2

а1

15

2

b3

5

4

а4

а3

а2

18

3

b4

6

5

а5

а2

а4

42

4

b5

7

6

а6

а4

18

4

b6

8

7

а7

а5

а6

8

5

b7

9

8

а8

а7

а9

30

7

b9

10

9

а9

а7

30

6

b8

11

10

а10

а8

8

8

b10

Рисунок 4. Упорядочение таблицы комплекса работ

Таблица 3

I

J

K

L

M

№ п/п

Работа bi

Опирается на работы

Продолжительность t(i,j)

1

b1

-

10

2

b2

-

12

3

b3

b1

b2

15

4

b4

b3

b2

18

5

b5

b2

b4

42

6

b6

b4

18

7

b7

b5

b6

8

8

b8

b7

30

9

b9

b7

b8

30

10

b10

b9

8

Рисунок 5. Упорядоченная таблица комплекса работ

Построим таблицу 4 для расчета параметров сетевого графика работ в диапазоне О2:АС12. Введем моделирующие формулы в ячейки таблицы 4, начиная с ячейки U3. Формулы приведены в таблице 5

Таблица 3

Таблица 4 Расчет сетевого графика работ



1233.01.01;ЭПТ2.02;1

План

1. Теоретическая часть

- Задача планирования комплекса работ. Основные понятия

- Упорядочение структурной таблицы

-Сетевой график комплекса работ

  • Построение и расчет сетевого графика комплекса работ

- Временной сетевой график комплекса работ

- Алгоритм расчета сетевого графика

  • Контрольный пример

Цель: изучить на практическом примере процесс моделирования задачи управления комплексом работ

Результат обучения:

получить навыки расчета сетевого графика

Список рекомендуемой литературы:

  • Бережная В., Бережной В.И. Математические методы моделирования экономических систем. 2-е изд., перераб. И доп. – М.: Финансы и статистика, 2006.
  • Васильев Л.Н., Деева Е.А. Моделирование микроэкономических процессов и систем. Изд-во КноРус, 2011.
  • Поршнев С.В. Компьютерное моделирование физических процессов с использованием пакета MathCad. –М.:, 2004.
  • Советов Б.Я., Яковлев С.А. Моделирование систем. Изд-во Высшая школа, 2009.

Используемые программы:

OpenOffice.org Calс

Табличный процессор OpenOffice.org Calс– программа, предназначенная для ввода и обработки данных.



Построение и расчет сетевого графика комплекса работ

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

Основой сетевого графика являются два логических элемента: работа и событие. На сетевом графике стрелки обозначают работы, а кружки – результаты работ (события). Стрелки, обозначающие работы являются квазивекторами, т.е. векторами, длина и направление которых не имеют значения, поэтому сетевые графики могут вычерчиваться без масштаба, а исходя только из удобства пользования ими. Термин «работа» имеет следующие значения:

- действительная работа – трудовой процесс, требующий затрат времени и ресурсов;

- ожидание – процесс, не требующий затрат труда, но занимающий время;

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

Событие определяет совокупность результатов выполнения одной или нескольких предшествующих ему работ и показывает возможность начала последующих работ. Оно не имеет продолжительности во времени, так как определяет состояние, а не процесс. Каждое событие характеризуется составом входящих и выходящих работ. Исходное событие не имеет входящих работ, а завершающее – выходящих. Продолжительность действительной работы и ожидание оценивается временем и характеризуется трудоемкостью, материальными ресурсами, необходимыми для её выполнения.

Взаимосвязь событий и работ в той последовательности, в которой их предстоит выполнить, образует сеть комплекса работ.

Названия обычно записываются в «Перечне работ»

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

Можно установить следующие шесть основных правил построения сети:

- Каждая работа должна иметь предшествующее и последующее события. Каждое событие может иметь одну или несколько предшествующих (кроме исходного события) или последующих (кроме конечного события) работ.

- Ни одна работа не может начаться, пока не свершилось предшествующее событие. Ни одно событие (кроме исходного события) не может свершиться, пока не выполнены все предшествующие ей работы.

- Не может быть двух или более работ, имеющих одинаковый шифр (общие конечные и начальные события).

- Для изображения в сети сложных и дифференцировано зависимых работ следует пользоваться расчленением этих работ и вводом фиктивных работ.

- В сети не может быть «петель» (замкнутых контуров), т.е.из каждого данного события не может исходить цепочка работ, возвращающаяся к этому событию.

- В сети не может быть тупиков, т.е. промежуточных событий, из которых не выходит ни одной работы и в которые не входит ни одна работа.


На рисунке показан сетевой график, где события обозначены А0, А1, А2, …, работы а1, а2, … .

Исходное событие А0 означает «начало работ» или «принятие решения о начале работ». Совместное выполнение работ а1 и а2 изображено дополнительным событием А1,2 в которое ведут пунктирные стрелки, не изображающие никаких работ, а означающие только логическую связь. Из события А1,2 исходит стрелка а4, изображающая работу а4, опирающуюся на работы а1 и а2 и в конце стрелки стоит событие А4, означающий выполнение работы а4.Завершающее событие А означает конец всего комплекса работ.

Существуют разные формы сетевых графиков. В одних стрелками графа обозначаются работы, а узлами – события, состоящие в выполнении одной или нескольких работ; в других – узлами обозначаются работы, а стрелками – логические связи между ними.



Ввод моделирующих формул

Таблица 5

Формулы для ввода в ячейки при построении модели расчета параметров сетевого графика работ

№ ячейки

Формулы

№ ячейки

Формулы

№ ячейки

Формулы

U3

S3

X3

0

AA3

AA5-S5

U4

S4

X4

0

AA4

MIN (AA5-S5;AA6-S6;AA7-S7)

U5

MAX (U4;U3)+S5

X5

MAX (X3+S3;X4+S4)

AA5

AA6-S6

U6

MAX (U4;U5)+S6

X6

MAX (X4+S4;X5+S5)

AA6

MIN (AA7-S7;AA8-S8)

U7

МАКС(U4;U6)+S7

X7

MAX (X4+S4;X6+S6)

AA7

AA9-S9

U8

U6+S8

X8

X6+S6

AA8

AA9-S9

U9

MAX (U7;U8)+S9

X9

MAX (X7+S7;X8+S8)

AA9

MIN (AA11-S11;AA10-S10)

U10

U9+S10

X10

X9+S9

AA10

AA11-S11

U11

MAX (U9;U10)+S11

X11

MAX (X9+S9;X10+S10)

AA11

AA12-S12

U12

U11+S12

X12

X11+S11

AA12

V12

V3

V5-S5

Y3

X3+S3

AB3

Z3-X3

V4

MIN (U5-S5;U6-S6;U7-S7)

Y4

X4+S4

AB4

Z4-X4

V5

V6-S6

Y5

X5+S5

AB5

Z5-X5

V6

MIN (V8-S8;V7-S7)

Y6

X6+S6

AB6

Z6-X6

V7

V9-S9

Y7

X7+S7

AB7

Z7-X7

V8

V9-S9

Y8

X8+S8

AB8

Z8-X8

V9

MIN (U10-S10;U11-S11)

Y9

X9+S9

AB9

Z9-X9

V10

V11-S11

Y10

X10+S10

AB10

Z10-X10

V11

V12-S12

Y11

X11+S11

AB11

Z11-X11

V12

U12

Y12

X12+S12

AB12

Z12-X12

W3

V3-U3

Z3

AA3-S3

AC3

AA3-Y3

W4

V4-U4

Z4

AA4-S4

AC4

AA4-Y4

W5

V5-U5

Z5

AA5-S5

AC5

AA5-Y5

W6

V6-U6

Z6

AA6-S6

AC6

AA6-Y6

W7

V7-U7

Z7

AA7-S7

AC7

AA7-Y7

W8

V8-U8

Z8

AA8-S8

AC8

AA8-Y8

W9

V9-U9

Z9

AA9-S9

AC9

AA9-Y9

W10

V10-U10

Z10

AA10-S10

AC10

AA10-Y10

W11

V11-U11

Z11

AA11-S11

AC11

AA11-Y11

W12

V12-U12

Z12

AA12-S12

AC12

AA12-Y12

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

Диапазоны ячеек

Назначение введенных формул

U3:U12

Ранний срок свершения события i

V3:V12

Поздний срок свершения события i

W3:W12

Резерв времени свершения события i

X3:X12

Раннее начало работы tр.н.(i,j)

Y3:Y12

Раннее окончание работы tр.о.(i,j).

Z3:Z12

Позднее начало работы tп.н.(i,j)

AA3:AA12

Позднее окончание работы tр.о.(i,j)

AB3:AB12

Резерв времени начала работы

AC3:AC12

Резерв времени окончания работы

После ввода формул мы получим рассчитанные параметры сетевого графика работ заданного комплекса.

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



Тестирование

В структурной таблице для каждой работы должно быть указано, выполнения каких работ она требует, или на какие работы она ___ . (Запишите прописными буквами).

- опирается




Вариант

5

4

9

14

22

16

9

4

12

9

5

7

6

4

10

7

12

7

11

8

3

7

13

3

4

8

6

24

13

2

8

6

5

18

11

12

999

8

17

999

13

6

9

5

8

10

12

5

7

6

2

10

4

9

12

12

8

5

11

18

15

3

5

999

4

999

3

4

18

26

5

4

13

9

2

6

6

10

20

5

2

4

8

13

5

3

5

8

3

8

10

4

7



Вариант

5

4

9

14

8

4

9

4

12

9

5

7

6

4

10

7

12

7

11

8

3

7

13

3

4

8

6

4

13

2

8

6

5

18

11

12

4

8

17

999

13

6

9

5

8

10

999

5

7

6

2

10

4

9

2

12

8

5

11

18

15

3

5

999

4

7

3

4

18

6

5

4

13

9

2

6

6

10

20

5

2

4

8

13

5

999

5

8

3

8

10

4

7



Вариант

5

4

9

14

8

4

9

4

12

9

5

7

6

4

10

7

12

7

11

8

3

7

2

3

4

8

6

4

13

2

8

6

5

18

11

12

4

8

17

999

13

6

9

5

8

10

999

5

7

6

2

10

4

9

2

12

8

5

11

18

15

3

5

999

4

7

3

4

8

6

5

4

13

9

2

6

6

10

20

5

2

4

8

13

5

4

999

8

3

8

10

4

7



Вариант

5

4

9

14

8

4

9

4

12

9

5

7

6

4

10

7

12

7

11

8

3

7

2

3

4

8

6

4

13

2

8

6

5

18

11

12

4

8

17

999

13

6

9

5

8

999

8

5

7

6

2

10

4

9

2

12

8

5

11

10

15

3

5

999

4

7

3

4

8

6

5

4

13

9

2

6

6

28

20

5

2

4

8

13

5

4

999

8

3

8

10

4

7



Вариант

5

4

9

14

8

999

9

4

12

9

5

7

6

4

10

7

12

7

11

8

3

7

13

3

4

8

6

4

13

2

8

6

5

18

11

12

4

8

17

999

13

6

9

5

8

10

999

5

7

6

2

10

4

9

2

12

8

5

11

18

15

3

5

999

4

7

3

4

18

26

5

4

13

9

2

6

6

10

20

5

2

4

8

13

5

999

5

8

3

8

10

4

7



Разработка модели определения оптимального маршрута

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

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

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

Метод динамического программирования может применяться только для определенного класса задач. Эти задачи должны удовлетворять таким требованиям:

- Задача оптимизации интерпретируется как n-шаговый процесс управления.

- Целевая функция равна сумме целевых функций каждого шага.

- Выбор управления на k-м шаге зависит только от состояния системы к этому шагу, не влияет на предшествующие шаги (нет обратной связи).

- Состояние sk после k-го шага управления зависит только от предшествующего состояния sk-1и управления xk (отсутствие последействия).

- На каждом шаге управление Xk зависит от конечного числа управляющих переменных, а состояние sk- от конечного числа параметров.

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

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

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

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

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

Таким образом, в процессе оптимизации управления методом динамического программирования многошаговый процесс "проходится" дважды:

первый раз — от конца к началу, в результате чего находятся решения на каждом шаге и оптимальный выигрыш (тоже условный) на всех шагах, начиная с данного и до конца процесса;

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

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



Разработка модели определения оптимального маршрута

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

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



1233.01.01;ЭПТ2.03;1

План

  • Теоретическая часть
    • Общая постановка задачи динамического программирования
    • Алгоритм решения задачи динамического программирования
    • Некоторые конкретные задачи динамического программирования
  • Разработка модели определения оптимального маршрута
    • Постановка задачи
    • Ввод моделирующих формул
  • Контрольный пример

Цель: изучить на практическом примере процесс построения модели решения задачи динамического программирования

Результат обучения:

получить навыки моделирования оптимальных решений

Список рекомендуемой литературы:

  • Бережная В., Бережной В.И. Математические методы моделирования экономических систем. 2-е изд., перераб. И доп. – М.: Финансы и статистика, 2006.
  • Васильев Л.Н., Деева Е.А. Моделирование микроэкономических процессов и систем. Изд-во КноРус, 2011.
  • Поршнев С.В. Компьютерное моделирование физических процессов с использованием пакета MathCad. –М.:, 2004.
  • Советов Б.Я., Яковлев С.А. Моделирование систем. Изд-во Высшая школа, 2009.

Используемые программы:

OpenOffice.org Calc

Табличный редактор OpenOffice.org Сalc – программа, предназначенная для ввода и обработки числовых данных.



Ввод моделирующих формул

При размещении расчетной таблицы (таблица 1), начиная с ячейки “B6”, формулы в желтых ячейках будут следующие:

Таблица 5

Адреса ячеек

Формула

B6

=C6+D6

Строка 6, желтые ячейки

Копируем ячейку B6 и вставляем поочередно в желтые ячейки строки 6, кроме R6 .

R8

=R7+R6

Столбец R, желтые ячейки кроме R6

Копируем ячейку R8 и вставляем поочередно в желтые ячейки столбца R, кроме R6.

P8

=IF(P7+P6>Q8+R8;R8+Q8;P7+P6)

Все желтые ячейки, кроме столбца R и строки 6

Копируем ячейку P8 и вставляем поочередно в желтые ячейки таблицы, кроме столбца R и строки 6.

При размещении графической таблицы, начиная с ячейки “B19”, формулы будут соответствовать следующим:

Адреса ячеек

Формула

B29

=IF(D16+C16=B16;">";"^")

C29

=IF(B29=">";">>>";" ")

Белые ячейки столбцов C, E, G, I, K, M, O, Q

Копируем ячейку C29 и вставляем поочередно в белые ячейки столбцов C, E, G, I, K, M, O, Q.

D29

=IF(B29=">";IF(F15+E16=D16;">";"^");" ")

F29, H29, J29, L29, N29, P29, R29

Копируем ячейку D29 и вставляем поочередно в указанные ячейки.

B27

=IF(B29="^";IF(D14+C14=B14;">";"^");" ")

B25, B23, B21, B19

Копируем ячейку B27 и вставляем поочередно в указанные ячейки.

D27

=IF(B27=">";IF(E14+F14=D14;">";"^");IF(D29="^";IF(F14+E14=D14;">";"^");" "))

Ячейки на пересечении строк 21, 23, 25, 27 и столбцов D, F, H, J, L, N, P, R

Копируем ячейку D27 и вставляем поочередно в указанные ячейки.

B28

=IF(B29="^";IF(D14+C14=B14;">";"^");" ")

Белые ячейки строк 20, 22, 24, 26, 28

Копируем ячейку B28 и вставляем поочередно в указанные ячейки.



Тестирование

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

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