русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Практический блок


Дата добавления: 2015-07-09; просмотров: 1452; Нарушение авторских прав


Пример 1

Для двух предприятий выделено a единиц средств. Как распределить все средства в течение 4 лет, чтобы доход был наибольшим, если известно, что доход от x единиц средств, вложенных в первое предприятие, равен f1(x), а доход от y единиц средств, вложенных во второе предприятие, равен f2(y). Остаток средств к концу года составляет g1(x) для первого предприятия и g2(y) для второго предприятия.

a=1000, f1=3х, g1=0,1х; f2=2у; g2= 0,5y.

РЕШЕНИЕ. Процесс распределения средств разобьем на 4 этапа – по соответствующим годам.

Обозначим ak = xk + yk средства, которые распределяются на k –ом шаге как сумма средств по предприятиям.

Суммарный доход от обоих предприятий на k –ом шаге:

zk = f1(xk) + f2(ak xk) = 3xk + 2(ak xk) = 2ak + xk .

Остаток средств от обоих предприятий на k –ом шаге:

ak+1 =g1(xk)+ g2(ak xk) =0,1xk +0,5(ak xk) =0,5ak –0,4xk .

Обозначим z*k (ak) – максимальный доход, полученный от распределения средств ak между двумя предприятиями с k-го шага до конца рассматриваемого периода.

Рекуррентные соотношения Беллмана для этих функций

z*4(a4)= a4+ x4},

z*k(ak)= ak + xk + z*k+1(0,5ak – 0,4xk)}.

Проведем оптимизацию, начиная с четвертого шага:

Й шаг.

Оптимальный доход равен:

z*4(a4 )= a4+ x4}= 3a4 ,

т.к. линейная возрастающая функция достигает максимума в конце рассматриваемого промежутка, т.е. при x4= a4.

Й шаг.

z*3(a3)= a3+ x3 + 3(0,5a3– 0,4x3)}= a3– 0,2x3)}= a3

т.к. линейная убывающая функция достигает максимума в начале рассматриваемого промежутка, т.е. при x3= 0.

Й шаг.

z*2(a2)= a2+ x2 + 3.5(0,5a2– 0,4x2)}= a2– 0,4x2)}= a2 ,

т.к. линейная убывающая функция достигает максимума в начале рассматриваемого промежутка, т.е. при x2=0.

Й шаг.

z*1(a1)= a1+ x1+ 3.75(0,5a1– 0,4x1)}= a1– 0,5x1)}= a1,



т.к. линейная убывающая функция достигает максимума в начале рассматриваемого промежутка, т.е. при x1=0.

Результаты оптимизации:

z*1(a1)= 3,875a1, x*1 =0,

z*2(a1)= 3,75a2, x*2 =0,

z*3(a3)= 3,5a3, x*3 =0,

z*4(a4)= 3a4, x*4 = a4.

Определим количественное распределение средств по годам:

Т.к. a1=a=1000, x*1=0, получаем a2=0.5a1– 0.41x*1=500. Далее аналогично:

x*2=0, a3= 0.5a2–0.4 x*2=250,

x*3=0, a4= 0.5a3−0.4 x*3=125,

x*4= a4=125.

Представим распределение средств в виде таблицы:

предприятие год

При таком распределении средств за 4 года будет получен доход, равный

z*1(a1)= 3,875 ·1000= 3875 .

 

Пример 2

Строительный подрядчик оценивает минимальные потребности в рабочей силе на каждую из последующих пяти недель следующим образом, 6, 5, 3, 6, 8 рабочих соответственно. Содержание избытка рабочей силы обходится подрядчику в 300 долларов за одного рабочего в неделю. А наем рабочей силы на протяжении одной недели обходится 400 долларов плюс 200 долларов за одного рабочего в неделю. Каждому уволенному рабочему выплачивается выходное пособие в размере 100 долларов. Найти оптимальное решение задачи.

Решение.

1. Этап i представляется порядковым номером недели, i =1, 2, 3, 4, 5.

2. Вариантом решения на i-том этапе являются значения –количество работающих на протяжении i-той недели.

3. Состояние на i-том этапе является – количество работающих на протяжении (i-1)-й неделе.

Рекуррентное уравнение динамического программирования представляется в виде:

– затраты, связанные с содержанием избытка;

– затраты, связанные с наймом;

– затраты, связанные с увольнением.

,

,

,

,

.

 

Проведем оптимизацию, начиная с пятого этапа:

Этап 5.

Оптимальное решение
300*0+400+200*2+100*(-2)= 600
300*0+400+200*1+100*(-1)= 500
300*0+400+200*0+100*0= 400

 

Этап 4.

+ Оптимальное решение
= 6 = 7 = 8

 

Этап 3.

+ Оптимальное решение

 

Этап 2.

+ Оптимальное решение

= 5
300*0+400+200*(-1)+100+1500=1800
300*0+400+200*(-2)+200+1500=1700
300*0+400+200*(-3)+300+1500=1600

 

Этап 1.

+ Оптимальное решение

= 6 = 7 = 8

 

Оптимальное решение определятся последовательно таким образом:

Номер недели Минимум раб.силы Кол-во реально работающих Решение
Нанять 6 рабочих
Уволить 1 рабочего
Уволить 2 рабочих
Нанять 3 рабочих
Нанять 2 рабочих

 

Вывод: в результате решения задачи получилось, что на первой неделе надо нанять 6 человек, на второй уволить 1 рабочего, на третьей уволить 2 рабочих, на четвертой нанять троих рабочих и на пятой нанять двоих рабочих.

Пример 3

Компания по прокату автомобилей разрабатывает план по обновлению парка своих машин на следующие пять лет. Каждый автомобиль должен проработать не менее 2-х и не более 4-х лет. В следующей таблице приведена стоимость замены автомобиля в зависимости от года покупки и срока эксплуатации.

  Стоимость замены в зависимости от срока эксплуатации
Год покупки
-
- -

Решение

Сведем задачу к задаче нахождения кратчайшего пути в сети:

 

Получаем кратчайший путь 2000→2002→2005.

К наименьшим затратам приведет замена автомобиля в 2002 и 2005 годах.

 

 

Тесты

1. Какую особенность имеет динамическое программирование как многошаговый метод оптимизации управления:

а) отсутствие последействия;

б) наличие обратной связи;

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

2. Вычислительная схема метода динамического программирования:

а) зависит от способов задания функций;

б) зависит от способов задания ограничений;

в) связана с принципом оптимальности Беллмана.

3. Какую задачу можно решить методом динамического программирования:

а) транспортную задачу;

б) задачу о замене оборудования;

в) принятия решения в конфликтной ситуации.

4. Что из себя представляет динамическое программирование?

а) особый метод оптимизации решений, специально приспособленный к так называемым “одношаговым” (или “одноэтапным”) операциям;

б) особый метод оптимизации решений, специально приспособленный к так называемым “многошаговым” (или “многоэтапным”) операциям;

в) особый метод оптимизации состава предприятия;

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

д) все вышеперечисленное.

5. Что предполагает принцип динамического программирования?

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

б) шаговое управление должно выбираться дальновидно, с учетом всех его последствий в будущем;

в) выбор на данном шаге управления, при котором эффективность этого шага максимальна;

г) выбор на данном шаге управления, при котором эффективность этого шага минимальна;

д) все вышеперечисленное.

6. К какой задаче относится задача распределение средств по предприятиям и по годам?

а) задачи линейного программирования;

б) задачи целочисленного программирования;

в) задачи нелинейного программирования;

г) задачи стохастического программирования;

д) задачи динамического программирования.

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

а) задачи линейного программирования;

б) задачи целочисленного программирования;

в) задачи нелинейного программирования;

г) задачи стохастического программирования;

д) задачи динамического программирования.

8. Каким методом лучше всего решить экономическую задачу о распределении ресурсов?

а) методом линейного программирования;

б) методом динамического программирования;

в) методом целочисленного программирования;

г) методом нелинейного программирования;

д) методом стохастического программирования.

9. В чем метод динамического программирования отличается от метода линейного программирования?

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

б) оно может быть передано на машину только после того, как записаны соответствующие формулы, а это часто бывает не так-то легко;

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

г) содержание п. а и б;

д) содержание п. а, б и в.

10. Что необходимо делать, когда планировать операцию приходится не на строго определенный, а на неопределенно долгий промежуток времени?

а) необходимо рассмотреть в качестве модели явления бесконечношаговый управляемый процесс, где не существует “особенного” по сравнению с другими последнего шага (все шаги равноправны);

б) для этого, разумеется, нужно, чтобы функции выигрыша и функции изменения состояния не зависели от номера шага;

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

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

д) содержание п.а и б.

Ответы к тестам

1) а 6) д
2) в 7) д
3) б 8) а
4) б 9) г
5) в 10) д

Контрольные вопросы

1. Как поставить общую задачу динамического программирования?

2. Как формулируется задача динамического программирования и в чем ее отличие от задач линейного программирования?

3. В чем заключается особенности математической модели ДП?

4. Что лежит в основе метода ДП?

5. Сформулируйте задачу определения кратчайших расстояний по заданной сети. На сколько этапов разбивается задача? Сколько шагов содержится в каждом этапе и в чем суть этапа и шага?

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

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

8. Запишите математическую модель оптимального распределения инвестиций и рекуррентное соотношение Беллмана для ее реализации.

9. Что такое принцип оптимальности и как записываются уравнения Беллмана?



<== предыдущая лекция | следующая лекция ==>
Стохастическое динамическое программирование. | Задания и задачи


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.177 сек.