Разработка программы "Стохастического программирования"
Изучение подхода, позволяющего учитывать неопределённость в оптимизационных моделях. Разработка программы "Стохастического программирования" на языке программирования Visual Basic. Анализ требований к надежности, составу и параметрам технических средств.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.05.2012 |
Размер файла | 49,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru/
Размещено на http://allbest.ru/
ВЛАДИКАВКАЗСКИЙ КОЛЛЕДЖ ЭЛЕКТРОНИКИ
КУРСОВОЙ ПРОЕКТ
По дисциплине Математические методы
Тема: Разработка программы «Стохастического программирования»
Выполнил студент Карапетов А.В.
Руководитель Хубаева М.Г. .
2011 г. г. Владикавказ
СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- 1. ОБЩАЯ ЧАСТЬ
1.1 Цель разработки
1.2 Анализ использования разработки
2. СПЕЦИАЛЬНАЯ ЧАСТЬ
2.1 Постановка задачи
2.1.1 Назначение задачи
2.1.2 Технико-математическое описание задачи
- 2.1.3 Требования к программе
- 2.1.3.1 Требования к надежности
- 2.1.3.2 Требования к составу и параметрам технических средств
- 2.2 Описание алгоритма
- 2.3 Текст программы с описанием
- 2.4 Описание процесса отладки программы
- ЗАКЛЮЧЕНИЕ
- ПРИЛОЖЕНИЕ
ВВЕДЕНИЕ
Стохастическое программирование -- это подход, позволяющий учитывать неопределённость в оптимизационных моделях.
В то время как детерминированные задачи оптимизации формулируются с использованием заданных параметров, реальные прикладные задачи обычно содержат некоторые неизвестные параметры. Когда параметры известны только в пределах определенных границ, один подход к решению таких проблем называется робастной оптимизацией. Этот подход состоит в том, чтобы найти решение, которое является допустимым для всех таких данных и в некотором смысле оптимально.
Модели стохастического программирования имеют подобный вид, но используют знание распределений вероятностей для данных или их оценок. Цель здесь состоит в том, чтобы найти некоторое решение, которое является допустимым для всех возможных значений данных и максимизируют математическое ожидание некоторой функции решений и случайных переменных. В общем, такие модели формулируются, чтобы обеспечить полезную информацию для лиц, принимающих решения.
Наиболее широко применяются и хорошо изучены двухэтапные линейные модели стохастического программирования. Здесь лицо, принимающее решение, предпринимает некоторое действие на первом этапе, после которого происходит случайное событие, оказывающее влияние на результат решения первого этапа. На втором этапе может тогда быть принято корректирующее решение, которое компенсирует любые нежелательные эффекты в результате решения первого этапа.
Оптимальным решением такой модели является единственное решение первого этапа и множество корректирующих решений (решающих правил), определяющих, какое действие должно быть предпринято на втором этапе в ответ на каждый случайный результат.
1. ОБЩАЯ ЧАСТЬ
1.1 Цель разработки
Целью данной разработки является разработка программы «Стохастического программирования» на языке программирования Visual Basic. Она предназначена для нахождения распределения ресурсов.
1.2 Анализ использования разработки
Данная программа проста и удобна в управлении. Вывод результатов производится на экран в виде небольшой таблицы справа.
2. СПЕЦИАЛЬНАЯ ЧАСТЬ
2.1 Постановка задачи
Разработать программу «Стохастического программирования», которая будет производится как решение обычной задачи нелинейного программирования.
2.1.1 Назначение задачи
Программа носит вычислительный характер. Она имеет удобный интерфейс, позволяющий пользоваться ею любому человеку, который обладает минимальными навыками владения персональным компьютером.
2.1.2 Технико-математическое описание задачи
В задаче линейного программирования:
2.1
заданные величины сj, аij,,bi, dj, Dj. Часто на практике величины cj, aij bj, могут быть случайными. Так, если bi -- ресурс, то он зависит от ряда факторов. Аналогично, сj -- цены -- будут зависеть от спроса и предложения, aij -- расходные коэффициенты -- от уровня техники и технологии. Задачи, в которых сj, аij,,bi -- случайные величины, относят к задачам стохастического программирования. Переход от чистых стратегий к смешанным расширяет область определения задачи. Достижимый максимум целевой функции может при этом только увеличиться, а достижимый минимум -- только уменьшиться. Вычисление оптимальной смешанной стратегии иногда называют определением решающего распределения стохастической задачи.
Задача стохастического программирования предусматривает стохастическую постановку и целевой функции, и ограничений. В задачах стохастического программирования, отвечающих ситуациям, в которых решение следует принимать до наблюдения реализации случайных условий и нельзя корректировать решение при получении информации о реализованных значениях случайных параметров, естественно определять оптимальный план в виде детерминированного вектора. Так определяется класс стохастических задач, для которых естественные решающие правила -- правила нулевого порядка. Решение задач стохастического программирования в виде случайного вектора позволяет установить связь между компонентами оптимального плана, реализациями параметров условий задачи и их априорными статистическими характеристиками. Каждой реализации условий задачи соответствует, таким образом, реализация решения. Следовательно, решение задачи стохастического программирования в виде случайного вектора целесообразно определять в ситуациях, в которых решение может быть принято после наблюдения реализации условий задачи. Решающие распределения (смешанные стратегии) целесообразно использовать в стохастических задачах, отвечающих повторяющимся ситуациям, когда ограничены суммарные ресурсы, а интерес представляет только средний эффект от выбранного решения. Решение задачи в смешанных стратегиях, не зависящих от реализации случайных параметров, естественно проводить в повторяющихся ситуациях, в которых выбор оптимального плана должен предшествовать наблюдению. Решающее распределение, зависящее от реализации случайных параметров,-- условное распределение компонент оптимального плана -- рациональная основа управления в повторяющихся ситуациях, в которых выбор решения производится после наблюдения реализации параметров условий задачи.
Стохастическая постановка целевой функции может быть двух видов: М-постановка и Р-постановка.
При М-постановке случайная величина заменяется ее математическим ожиданием и задача сводится к оптимизации детерминированной целевой функции:
2.2
где сj -- математическое ожидание случайной величины сj.
При Р-постановке целевая функция будет иметь вид:
· при максимизации целевой функции:
2.3
обозначает максимизацию вероятности того, что случайная величина ? cj xj будет не меньше некоторого значения r;
· при минимизации целевой функции:
2.4
обозначает максимизацию вероятности того, что случайная величина ? cj xj будет не больше некоторого значения r.
Наиболее распространены СТП-постановки в вероятностных ограничениях вида:
2.5
где аi j , bi -- случайные величины; ai -- заданные уровни вероятности.
Так, ограничение (а) означает, что вероятность соблюдения неравенства
2.6
стохастический программирование технический оптимизационный
должна быть не меньше, чем ai. Аналогичный смысл и других ограничений.
Для случая, когда вероятностные ограничения представлены в виде типа (а), задачу СТП можно записать при М-постановке:
2.7
При Р-постановке:
· в случае максимизации целевой функции
2.8
в случае минимизации целевой функции
2.9
где cj , ai j , bi -- случайные величины.
Для остальных случаев ограничений (б, в, г) постановка задач стохастического программирования аналогична.
2.1.3 Требования к программе
2.1.3.1 Требования к надежности
Надежность программы зависит от надежности функционирования всей вычислительной системы, от правильности ввода данных, а также от условий хранения программы.
Удобнее всего записать программу на жесткий диск (винчестер). Необходимо также иметь копию программы на гибком носителе на случай выхода из строя самого компьютера с потерей всех данных.
Если программа записана на гибком диске, то ее надежность зависит от правильности хранения этого диска.
2.1.3.2 Требования к составу и параметрам технических средств
Так как программа выполнена на языке Visual Basic - это среда разработки программ, ориентированных на работу в Windows, то для функционирования программы с нормальным быстродействием необходим компьютер, отвечающий следующим системным требованиям:
процессор Pentium200 и выше;
оперативная память 8Mb и выше;
операционная система Windows 95/98/XP/Vista/7;
накопитель на жестком и гибком магнитном диске;
2.2 Описание алгоритма
Рассмотрим задачу распределения двух видов ресурсов для выпуска двух наименований изделий.
Ее модель:
где a i j , bi , cj -- случайные.
При М-постановке модель запишется:
где a1, a2 -- заданные уровни вероятности соблюдения каждого ограничения.
Для того чтобы решить задачу в М-постановке, необходимо перейти к ее детерминированному эквиваленту:
Исходные данные, необходимые для решения этой задачи, сведены в таблицах 2.1 и 2.2.
Таблица 2.1
Величина |
С |
d |
D |
|
X1 |
5 |
2 |
6 |
|
X2 |
8 |
3 |
9 |
Таблица 2.2
Ограничения |
Случайные величины |
||||||
ai1 |
ai2 |
bi |
|||||
1 |
10 |
2 |
15 |
3 |
100 |
9 |
|
2 |
20 |
6 |
14 |
4 |
150 |
12 |
Если задать уровни вероятности a1,2 = 0,6, для которых ta = 0,25, то получим после подстановки исходных данных детерминированный эквивалент:
Результаты решения этой задачи для детерминированного случая ж i = 0 и при a i = 0,6 (табл. 2.3), где
Таблица 2.3
Величина |
ж i = 0 |
a i = 0,6 |
Величина |
ж i = 0 |
a i = 0,6 |
|
x1 |
2 |
2 |
ж1 |
0 |
4,4 |
|
x2 |
5,3 |
5,04 |
ж2 |
0 |
5,8 |
|
L |
52,4 |
50,3 |
г1 |
0 |
4,4 |
|
в |
0 |
4 |
г2 |
0 |
5,1 |
Таблица 2.4
Величина |
a1,2 |
||||||
0,5 |
0,6 |
0,77 |
0,89 |
0,96 |
0,987 |
||
x1 |
2 |
2 |
2 |
3,71 |
3,07 |
2,165 |
|
x2 |
5,3 |
5,04 |
4,51 |
3 |
3 |
3 |
|
L |
52,4 |
50,3 |
46,1 |
42,6 |
39,3 |
34,8 |
|
в |
0 |
4 |
12 |
18,7 |
25 |
33,6 |
|
г1 |
0 |
4,4 |
12,3 |
17,9 |
24,3 |
33,3 |
|
г2 |
0 |
5,1 |
14,8 |
16,5 |
23,2 |
26 |
Рассмотрим теперь, как повлияют на результат решения задачи величины, определяющие ее вероятностный характер. К таким величинам относят заданный уровень вероятности ai, и дисперсий уij2 и иi2. Начнем с анализа влияния ai (табл. 2.4).
Из анализа решения этой задачи можно сделать следующие выводы: для обеспечения гарантированного (с вероятностью a = 0,6) выполнения плана необходимо иметь дополнительно около 5% каждого вида ресурса. При отсутствии дополнительного ресурса целевой функции может уменьшиться на величину (в = 4% вследствие возможного сокращения выпуска продукции х2 от 5,3 до 5,04.
Этот пример подтверждает тот факт, что в реальных условиях для гарантированного выполнения плана необходимы дополнительные ресурсы в размере ж i противном случае возможно уменьшение выпуска продукции.
При этом можно сделать выводы:
1) в целях повышения заданного уровня вероятности выполнения плана ai требуется увеличить дополнительные ресурсы гi. Так, для выполнения плана с вероятностью, близкой к 1 (а = 0,987), необходим дополнительный ресурс в размере гi = 26, ..., 33% от величины используемого без учета вероятностных характеристик;
2) отсутствие такого увеличения может привести к ухудшению целевой функции на величину в = 33,6%;
3) возрастание a отражается на номенклатуре продукции. При этом в интервале a = 0,5, ..., 0,77 значение х1 сохраняется неизменным, а х2 -- уменьшается. При дальнейшем увеличении а = 0,89, ..., 0,987 значение х2 = const, в то время как х1 сначала скачком растет, а затем постепенно уменьшается. Несмотря на то что при а = 0,89 значения x1,2 резко изменяются, целевая функция во всем интервале изменения а уменьшается плавно. Таково влияние заданного уровня вероятности соблюдения ограничений а на результат решения задачи.
Для большей реальности и выполнимости планов элементы модели должны постоянно уточняться по фактическим реализациям случайных величин
2.3 Текст программы с описанием
Текст программы в соответствии с ГОСТ 19.101-77 (СТ СЭВ 1626-79) представляет собой запись программы на языке Visual Basic с необходимыми комментариями, и в виде машинного листинга находится в приложении.
Общие сведения
Наименование программы: Course_work.exe
Объем исходных текстов программы - 68 Кбайт;
исполнимого модуля - 33 Кбайт
Язык - Object Pascal.
Вызов и загрузка
Вызов программы осуществляется путем запуска исполнимого модуля из той директории, в которой он находится.
2.4 Описание процесса отладки программы
Отладка программы заключается в том, чтобы сделать программу работоспособной. При создании программы программист иногда совершает ошибки. Возникновение ошибок может быть следствием неправильного составления программы. Ряд ошибок возникает из-за того, что программист неправильно поставил задачу или пользовался расчетными формулами, которые дают неверный результат. Еще одна группа ошибок обусловлена ошибками собственно программирования. К таким ошибкам относятся неоптимальное использование операторов цикла или ветвления, опечатки. Такие ошибки можно исправить, используя стандартные средства отладки, имеющиеся в трансляторах машинных языков высокого уровня.
Процесс отладки данной программы был проведен при помощи встроенного в систему Visual Basic компилятора. Если синтаксических ошибок в программе нет, компилятор создает исполняемый файл программы. который позже можно будет запустить из Windows. Имя исполняемого файла такое же, как и у файла проекта, расширение - xml.
ЗАКЛЮЧЕНИЕ
В данном проекте представлена программа “Стохастическое программирование ”. Она написана на языке Visual Basic. Эксплуатация программы не требует глубоких знаний компьютера и языков программирования.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1.«Математические методы в программировании » : / Агальцов В.П., Волдайская И.В. Учебник : - М . : ИД «ФОРУМ» : ИНФРА-М, 2006. - 224с. : ил. -(Профессиональное образование). - (Учимся программировать).
2. Лекции по дисциплине « Математические методы ».
3. «Математические методы: Учебник» / Партика Т.Л., Попов И.И. - М: ФОРУМ: ИНФРА, 2005.
4.Интернет сайт: http://ru.wikipedia.org/wiki/
5.«Математическое программирование» / Костевич Л., издательство «Новое знание», 2003.
ПРИЛОЖЕНИЕ
Sub Макрос1()
' Макрос1 Макрос
' Макрос записан 13.12.2011 (Студент)
' Сочетание клавиш: Ctrl+ю
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-30
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("H4").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-6]:RC[-1])"
Range("I4").Select
ActiveCell.FormulaR1C1 = "=STDEV(RC[-7]:RC[-2])"
Range("J4").Select
ActiveCell.FormulaR1C1 = "=RC[-1]/RC[-2]"
Range("B8").Select
ActiveCell.FormulaR1C1 = "=NORMDIST(R[-1]C,R4C8,R4C9,0)"
Range("B9").Select
ActiveCell.FormulaR1C1 = "=NORMDIST(R[-2]C,R4C8,R4C9,1)"
Range("B8:B9").Select
Selection.AutoFill Destination:=Range("B8:W9"), Type:=xlFillDefault
Range("B8:W9").Select
Range("W9").Select
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ChDir "C:\Documents and Settings\Студент\Рабочий стол"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\Студент\Рабочий стол\Книга4.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.SmallScroll Down:=-3
Range("A8:W9").Select
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("A8:W9"), PlotBy:= _
xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
ActiveSheet.Shapes("Диагр. 1").ScaleWidth 1.21, msoFalse, msoScaleFromTopLeft
ActiveSheet.Shapes("Диагр. 1").ScaleHeight 1.38, msoFalse, msoScaleFromTopLeft
Application.WindowState = xlMaximized
ActiveSheet.Shapes("Диагр. 1").IncrementLeft -93.75
ActiveSheet.Shapes("Диагр. 1").IncrementTop 108#
Application.WindowState = xlNormal
ActiveWindow.Visible = False
Windows("Книга4.xls").Activate
Sheets("Лист2").Select
ActiveSheet.Paste
Range("B5").Select
ActiveCell.FormulaR1C1 = "=STANDARDIZE(R[-1]C,R2C8,R2C9)"
Range("B6").Select
ActiveCell.FormulaR1C1 = "=NORMSDIST(R[-1]C)"
Range("B5:B6").Select
Selection.AutoFill Destination:=Range("B5:W6"), Type:=xlFillDefault
Range("B5:W6").Select
Range("V5").Select
ActiveWorkbook.Save
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A5:W6").Select
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("A5:W6")
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист2"
Windows("Книга4.xls").ScrollRow = 2
Windows("Книга4.xls").ScrollRow = 3
ActiveSheet.Shapes("Диагр. 1").IncrementLeft -65.25
ActiveSheet.Shapes("Диагр. 1").IncrementTop 39.75
Application.WindowState = xlMaximized
ActiveSheet.Shapes("Диагр. 1").ScaleWidth 1.13, msoFalse, msoScaleFromTopLeft
ActiveSheet.Shapes("Диагр. 1").ScaleHeight 1.24, msoFalse, msoScaleFromTopLeft
ActiveWorkbook.Save
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveWindow.Visible = False
Windows("Книга4.xls").Activate
Sheets("Лист3").Select
Application.WindowState = xlMinimized
Windows("Книга4.xls").Activate
Sheets("Лист2").Select
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveWindow.Visible = False
Windows("Книга4.xls").Activate
Sheets("Лист3").Select
Application.WindowState = xlNormal
Windows("Курсовая.xls").Activate
ActiveWindow.SmallScroll Down:=-12
Range("A1:N22").Select
Selection.Copy
Windows("Книга4.xls").Activate
ActiveSheet.Paste
Range("E3").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
Range("J19").Select
ActiveWorkbook.Save
Windows("Курсовая.xls").Activate
ActiveWindow.Close
Application.WindowState = xlMaximized
Range("D21").Select
End Sub
Размещено на Allbest.ru
Подобные документы
Исследование теоретических аспектов разработки программы посредством использования Visual Basic. Анализ достоинств и недостатков данного языка программирования. Изучение особенностей создания интерфейса приложения. Основные этапы реализации программы.
практическая работа [460,6 K], добавлен 22.01.2013Классификация систем программирования. Специализированные редакторы, программы-компиляторы и исполнимый код. Разновидности Visual Basic. Версии Паскаля и его использование. Приложения на языке Java. Разработка программы для вычисления предельной ошибки.
курсовая работа [34,0 K], добавлен 28.12.2009Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка.
контрольная работа [36,4 K], добавлен 23.07.2014Разработка программы "Виселица" с использованием программной среды Visual Basic и средств объектно-ориентированного программирования: программные требования, описание алгоритма, блок-схема программы и дополнительной процедуры. Листинг программы.
курсовая работа [188,2 K], добавлен 28.06.2009Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.
курсовая работа [2,9 M], добавлен 09.04.2012Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Сумма двух разреженных полиномов, заданных ненулевыми коэффициентами и их номерами. Разработка программ на языке программирования Visual Basic for Applications. Вывод справочной информации. Операционная система Windows. Хранение двоичных данных.
научная работа [390,2 K], добавлен 09.03.2009Создание программного модуля, выполненного на языке программирования VBA (Visual Basic for Applications) и позволяющего во введенном массиве символов удалить все повторные вхождения этих символов. Разработка пользовательского интерфейса. Код программы.
курсовая работа [317,4 K], добавлен 11.10.2012Аналоги текстовых редакторов с русскоязычным интерфейсом. Разработка и тестирование программного продукта, позволяющего работать с текстом и файлами в редакторе на языке программирования, основанным на русском языке. Алгоритм функционала программы.
дипломная работа [2,8 M], добавлен 21.07.2013Требования к функциональным характеристикам программы, составу и параметрам технических средств, программной совместимости. Особенности программирования в среде Access. Описание интерфейса программы, ввод и редактирование данных, добавление новых книг.
курсовая работа [1,5 M], добавлен 17.11.2010