
- •Ю.Ю. Герасимов, в.К. Хлюстов
- •Математические методы и модели в расчетах на эвм: применение в лесоуправлении и экологии
- •Часть 1. Вариационная статистика
- •Глава 1.
- •1.1. Общие положения
- •1.2. Основные понятия статистики
- •1.3. Основы теории вероятностей
- •1.3.1. Понятие случайной величины
- •1.3.2. Классическое и статистическое определения вероятности события
- •1.3.3. Основные теоремы теории вероятностей
- •1.4. Контрольные вопросы и задания
- •Глава 2.
- •2.1. Постановка задачи
- •2.2. Классификация и группировка вариант
- •2.3. Графическое представление вариационных рядов
- •2.4.1. Показатели центральной тенденции
- •2.4.2. Показатели вариации
- •2.4.3. Достоверность статистических показателей
- •2.4.4. Показатели скошенности и крутизны
- •2.5. Доверительный интервал
- •2.6. Контрольные вопросы и задания
- •Глава 3.
- •3.1. Постановка задачи
- •3.2. Нормальное распределение
- •3.3. Логнормальное распределение
- •3.4.2. Бета-распределение
- •3.5. Распределение Пуассона
- •3.6. Семейство кривых распределения Джонсона
- •3.7. Семейство кривых Пирсона
- •Контрольные вопросы и задания
- •Глава 4.
- •4.1. Постановка задачи
- •4.3. Сравнение эмпирического распределения с теоретическим (критерий "хи-квадрат")
- •4.5. Сравнение дисперсий двух эмпирических совокупностей
- •4.6. Сравнение частот взвешенных рядов по критерию
- •4.7. Использование пакетов прикладных программ
- •4.8. Контрольные вопросы и задания
- •Глава 5.
- •5.1. Постановка задачи
- •5.2. Однофакторный комплекс
- •5.3. Двухфакторный комплекс
- •5.4. Использование ms Excel для проведения дисперсионного анализа
- •5.4.1. Однофакторный дисперсионный анализ
- •5.4.2. Двухфакторный дисперсионный анализ без повторения
- •5.5. Контрольные вопросы и задания
- •Глава 6.
- •6.1. Постановка задачи
- •6.2. Коэффициент корреляции
- •6.3. Корреляционное отношение
- •6.4. Схема полного корреляционного анализа
- •6.5. Использование пакетов прикладных программ Вычисление коэффициента корреляции с использованием ms Excel
- •Контрольные вопросы и задания
- •Глава 7.
- •7.1. Постановка задачи
- •7.2. Статистический анализ одномерных моделей
- •Уравнение прямой линии
- •Уравнение гиперболы
- •Уравнение показательной кривой
- •Окончательный выбор типа уравнения регрессии
- •7.4. Множественная регрессия
- •7.5. Применение ms Excel для расчета регрессии
- •Часть 2. Исследование операций
- •Глава 8.
- •8.1. Общие положения
- •8.2. Основные понятия системного анализа
- •8.3. Основные понятия исследования операций
- •8.4. Постановка задач принятия оптимальных решений
- •8.5. Контрольные вопросы и задания
- •Глава 9.
- •9.1. Постановка задачи
- •9.2. Графическое решение задачи линейного программирования
- •9.3. Задача линейного программирования в стандартной форме
- •Преобразования неравенств
- •Преобразование неограниченных по знаку переменных
- •2.4. Основы симплекс - метода линейного программирования
- •9.5. Метод искусственных переменных
- •9.6. Анализ чувствительности в линейном программировании
- •9.7. Решение задач линейного программирования на эвм
- •9.8. Контрольные вопросы и задания
- •Глава 10.
- •10.1. Постановка задачи
- •10.2. Метод ветвей и границ
- •10.3. Рекомендации по формулировке и решению задач цп
- •10.4. Задачи оптимизации раскроя
- •XA 0, xB 0, k 0 - целые.
- •XA 0, xB 0, k 0 - целые.
- •10.5. Постановка задачи дискретного программирования
- •Решение задач целочисленного и дискретного программирования на эвм
- •10.7. Контрольные вопросы и задания
- •Глава 11.
- •11.1. Общие понятия
- •11.2. Практические рекомендации при постановке задач динамического программирования
- •11.3. Оптимальное распределение ресурсов
- •11.4. Оптимальное управление запасами
- •11.5. Оптимальная политика замены оборудования
- •11.6. Контрольные вопросы и задания
- •Глава 12.
- •12.1. Постановка задачи
- •12.2. Применение стохастического программирования
- •12.3. Метод статистического моделирования
- •12.4. Контрольные вопросы и задания
- •Глава 13.
- •13.1. Постановка задач нелинейного программирования
- •13.2. Безусловная однопараметрическая оптимизация
- •13.2.1. Методы исключения интервалов
- •13.2.2. Методы полиномиальной аппроксимации
- •13.2.3. Методы с использованием производных
- •13.2.4. Сравнение методов безусловной однопараметрической оптимизации
- •13.3. Безусловная многопараметрическая оптимизация
- •13.3.1. Постановка задачи
- •13.3.2. Методы прямого поиска
- •13.3.3. Градиентные методы
- •13.4. Нелинейная условная оптимизация
- •13.4.1. Постановка задач условной нелинейной оптимизации
- •13.4.2. Методы штрафных функций
- •13.4.3. Методы прямого поиска
- •13.4.4. Методы линеаризации
- •13.5. Решение задач нелинейной оптимизации на эвм
- •13.6. Контрольные вопросы и задания
- •Приложение 1 Значения t - распределения Стьюдента при доверительной вероятности р и числе степеней свободы k
- •Плотность вероятности нормального распределения
- •Приложение 3 Значения χ2 при доверительной вероятности р и числе степеней свободы k
- •Продолжение приложения 3
- •Значения -функции
- •Приложение 5 Значения - в распределении Джонсона
- •Продолжение приложения 5
- •Продолжение приложения 5
- •Продолжение приложения 5
- •Приложение 6
- •Продолжение приложения 6
- •Продолжение приложения 6
- •Продолжение приложения 6
- •Приложение 7
- •Продолжение приложения 7
- •Продолжение приложения 7
- •Продолжение приложения 7
Решение задач целочисленного и дискретного программирования на эвм
Ряд программных продуктов позволяет решать оптимизационные задачи в целочисленной постановке. В качестве примера рассмотрим решение задачи примера 9.1 в целочисленной постановке с использованием MS Excel. Для этого последовательность действий п. 9.7 необходимо дополнить вводом требования целочисленности содержимого ячеек B2 и B3 (на рис. 10.2). Одно из целочисленных решений представлено на рис. 10.3.
Аналогично могут быть решены рассмотренные выше задачи оптимизации раскроя.
Рис. 10.2.
Рис. 10.3.
10.7. Контрольные вопросы и задания
Приведите математическую формулировку задачи целочисленного программирования.
Изложите основную идею метода ветвей и границ.
Решите задачу примера 9.1 графически методом ветвей и границ.
Изложите алгоритм метода ветвей и границ.
Объясните суть задач раскроя и приведите примеры.
Приведите математическую формулировку задачи дискретного программирования.
Решите по вариантам задачи линейного программирования 9-19 раздела 9.8.
Глава 11.
динамическое программирование
11.1. Общие понятия
Все рассматриваемые в главах 9-10 задачи характеризуются тем, что в них не учитываются изменения оптимизируемых параметров во времени (процессы считаются статичными). Выбирается некоторый период времени и для него определяются проектируемые или планируемые значения показателей, например, объемы выхода ликвидной или деловой древесины, поставок лесопродукции потребителям, прибыль, приведенные затраты и т.д. При этом предполагается, что управляемые или неуправляемые параметры систем в течение всего планового периода не будут изменяться или, по крайней мере, не претерпят серьезных изменений, требующих пересмотра принятых решений.
Однако в лесной экономике, технологии и технике есть задачи, в которых необходимо учитывать изменения параметров систем во времени. Эти параметры могут меняться непрерывно или дискретно - от этапа к этапу. Например, из года в год меняется возраст машин и оборудования, изменяется производственная мощность и производительность труда на предприятиях, фондоотдача. Прирост древостоев в зависимости от породного состава принято отслеживать в пять - десять лет. Очевидно, что необходимо принимать оптимальные решения на год (или другой срок) и одновременно на весь рассматриваемый период в целом с учетом возможных изменений параметров. Для решения такого рода задачи, которые получили название многошаговые, разработан соответствующий математический аппарат, который получил название динамическое программирование.
Рассмотрим операцию, состоящую из m шагов. Некоторые расчленяются на шаги естественно, например, деятельность предприятия в течение нескольких месяцев, эксплуатация трактора в течение нескольких лет, прирост древостоя в течение 10 лет и т.д. В других случаях, разбивку приходится вводить искусственно, например, при прокладке лесовозной дороги и т.д.
На каждом шаге с целью улучшения результата операции в целом осуществляется распределение и перераспределение ресурсов, т.е. управление u. Эффективность операции в целом характеризуется показателем W, который зависит от всей совокупности управлений u и на каждом шаге операции
W = W(u) = W(u1, u2, ..., um). (11.1)
Управление, при котором показатель W достигает оптимума (максимума или минимума), называется оптимальным управлением u*, которое состоит из совокупности оптимальных шаговых управлений
u* = (u1*, u2*, ..., um*). (11.2)
Задача динамического программирования - определить ui* (ui* - не только число, а может быть вектором, функцией) на каждом шаге i=1,2,...,m и тем самым u* всей операции в целом.
Большинство практических задач имеет дело с одномерной задачей динамического программирования:
W
=
max (min), (11.3)
где
Wi - эффективность действий на i шаге.
Пример 11.1. Проектирование лесной дороги
Прокладывается участок лесовозной дороги между нижним складом леспромхоза и погрузочной площадкой лесопункта по пересеченной местности. Требуется провести дорогу, чтобы суммарные затраты на сооружение участка были минимальные.
Искусственно отрезок [L,U] между нижним и верхним складами разделим на m частей, проведем через точки деления прямые, перпендикулярные отрезку [L,U] и условимся считать на каждом шаге участок пути прямолинейным. Шаговое управление на i шаге представляет собой угол i. Управление всей операции состоит из совокупности шаговых управлений u = (1, 2,..., m ). Требуется найти такое оптимальное управление u*, при котором суммарные затраты W на сооружение участков минимальны, т.е.
W
=
min.
Метод динамического программирования был предложен и развит Р. Беллманом и его учениками в начале 50-х годов и состоит в нахождении оптимума целевой функции при ограничении общего вида на варьируемые параметры.
Рассмотрим подход к решению данной задачи. Характерным для динамического программирования является то, что переменные рассматриваются не вместе, а последовательно - одна за другой. При этом вычислительная тема строится таким образом , что вместо одной задачи с n переменными решается серия задач с небольшим числом, а чаще всего с одной переменной. Сам же вычислительный процесс производится на основе метода последовательных приближений в два круга:
от последнего шага к первому;
от первого шага к последнему или же, наоборот, в зависимости от исходных данных.
На первом круге ищется так называемое условное оптимальное решение. Оно выбирается так, чтобы все предыдущие шаги обеспечили максимальную эффективность последующего. Основу такого подхода составляет принцип оптимальности Беллмана, который формулируется следующим образом: нельзя получить оптимальное значение целевой функции i-шагового процесса , если для любого ui, выбранного на шаге i, значение целевой функции для оставшихся i-1 шагов не является оптимальным.
Такой процесс продолжается до тех пор, пока решение не потеряет свой условный характер, т.е. до первого шага или последнего. Для него решение просто оптимально. Поэтому второй круг начинают именно с этого шага и последовательно переходят от условных к оптимальным решениям, тем самым обеспечивается оптимальность операции в целом.
Другими словами, управление на i шаге выбирается не так, чтобы выигрыш именно на данном шаге был максимален (минимален), а так, чтобы была оптимальна сумма выигрышей на всех оставшихся до конца шагах плюс данный. Исключение - последний шаг. Поэтому процесс динамического программирования обычно разворачивается от конца к началу - прежде всего планируется последний шаг. А как его спланировать, если неизвестен предпоследний? Необходимо сделать разные предположения о том, чем завершится m-1 шаг и для каждого из этих предположений найти условное оптимальное управление и соответствующий ему условный оптимальный выигрыш на m шаге. Далее, двигаясь назад, оптимизируем управление на m-2 шаге и т.д., пока не дойдем до первого.
|
9 1
|
1 2
|
8 1
|
9 1
|
1 2 |
U 4 |
|
8 1
|
4 3 |
1 5
|
9 1
|
4 1 |
8 |
|
1 1
|
3 4
|
1 5
|
8 1 |
9 9 |
1 |
|
8 2
|
1 2
|
3 6
|
6 5 |
1 1 |
2 |
|
2 1
|
1 3 13 |
2 1
|
3 5 |
3 4 |
1 |
L |
4 |
3 |
2 |
1 |
3 |
|
Рис. 11.1. Сеть условно возможных вариантов прокладки лесовозной дороги |
После этого можно построить не условно оптимальное, а искомое оптимальное управление u* и найти искомый оптимальный выигрыш W*. Для этого достаточно, двигаясь от начала к концу, прочитать уже готовые рекомендации и найти u*, состоящие из u1*, u2*, ..., um*. Что касается оптимального выигрыша W* за всю операцию, то он нам уже известен - именно на его оптимальности выбрано управление на первом шаге.
Поясним вышесказанное, продолжая рассмотрение примера 11.1. Дадим графическую интерпретацию задачи (рис. 11.1), разделив отрезок от нижнего L до верхнего U складов в направлении сторон света, допустим, на 5 частей. В общем случае коэффициент дробления может быть каким угодно. В нашем случае трасса из L до U состоит из m=5+5=10 участков, направленных на север или восток. Проставим на каждом из отрезков число, выражающее затраты на строительство дороги на этом участке. Требуется выбрать такой путь из L в U, для которого сумма чисел, стоящих на отрезках, была бы минимальна.
Будем рассматривать сооружаемую дорогу как управляемую систему, перемещающуюся под влиянием управления из начального состояния L в конечное U. Состояние этой системы перед началом каждого шага будет характеризоваться двумя координатами: восточной (x) и северной (y), обе - целочисленные. Для каждого из состояния системы, т.е. узловой точки прямоугольной сетки, необходимо найти условное оптимальное управление: двигаться на север (), юг (), восток () или запад (). Выбирается это управление так, чтобы затраты всех оставшихся до конца шагов (включая данный) была минимальной. Эти затраты принято называть условным оптимальным выигрышем для данного состояния системы перед началом очередного шага.
4 |
1
|
U
4
|
|||
|
A2 |
|
|||
10
1
|
|||||
3
4 |
9
1
B2 |
1
2 |
U
4
|
||
12 |
9 |
4 A2 1 B3 |
8
|
||
|
|
9 |
|
||
Рис. 11.3. Второй шаг
|
1
роцедуру условной оптимизации будем разворачивать в обратном направлении - от U к L. Во-первых, произведем условную оптимизацию последнего, 10-го, шага. Рассмотрим отдельно правый верхний угол прямоугольной сетки (рис. 11.2). За один (последний) шаг можно попасть в точку U из точек A1 и A2. Из этих точек управление вынужденное - из A1 необходимо двигаться на восток (), что обойдется в 1 условную единицу, а из A2 - на север (), что приводит к затратам в 4 единицы. Таким образом, условная оптимизация последнего шага проведена, и условный оптимальный выигрыш для каждой из точек A1 и A2 найден и записан в соответствующем квадрате.Аналогично оптимизируем предпоследний, 9 шаг, который может быть сделан из точек B1, B2 и B3. Отличие данного шага от последнего 10-го шага заключается в том, что управление здесь уже не вынужденное. Например, из точки B2 возможно движение как на север с затратами до точки U в 2+1=3 единицы, так и на восток с затратами в 4+4=8 единиц. Следовательно, условное оптимальное управление из точки B2 - (), помечено на рис. 11.3 стрелкой. Найденные для B1, B2 и B3 условные оптимальные управления и условные оптимальные выигрыши также представлены на рис. 11.3, соответственно, в виде стрелок и
значений в квадратах.
Двигаясь от предпоследнего шага назад к L, найдем для каждой точки с целочисленными координатами условное оптимальное управление (), (), () или () и условный оптимальный выигрыш (затраты до конца пути), который записывается в квадрате. Вычисляется он так: затраты на данном шаге складываются с уже оптимизированными затратами, записанными в квадрате, куда ведет стрелка. Следовательно, на каждом шаге мы оптимизируем только этот шаг, а следующие за ним уже оптимизированы. Конечный результат процедуры оптимизации показан на рис. 11.4.
Итак, условная оптимизация выполнена - в какой бы из узловых точек мы ни находились, известно, куда двигаться (по стрелке) и во что обойдется прокладка трассы до конца (по числу в квадрате). В прямоугольнике при точке L записан оптимальный выигрыш на всем протяжении пути из L в U: W*= 21.
28
19
18
10
1
4
3
11
12
16
24 |
9 1
|
1 2
|
8 1
|
9 1
|
1 2 |
U 4 |
12
12
16
17
13 |
8 1
|
4 3 |
1 5
|
9
22
4 1
|
4 1 |
8 |
13
17
18
13
16 |
1 1
|
3 4
|
1 5
|
8
13 |
9 9 |
1 |
15
14
17
19
20 |
8 2
|
1 2
|
3
19
|
6 5 |
1 1 |
2 |
21
16
22
20
19 |
2 1
|
1 3
|
2 1
|
3 5 |
3 4
22 |
22
18 |
L |
4 |
3 |
2 |
1 |
3 |
|
Рис. 11.4. Оптимизация прокладки трассы. |
Теперь остается построить безусловное оптимальное управление - траекторию, ведущую из L в U самым дешевым способом. Для этого необходимо следовать указаниям стрелок. Такая оптимальная траектория отмечена на рис. 11.4 утолщенными линиями. В текстовом виде безусловное оптимальное управление запишется так:
u* = (,,, ,, , ,,,),
т.е. первые четыре участка трассы от нижнего склада необходимо вести на север, далее повернуть на восток, далее на север и остальные четыре участка - на восток. Задача решена.