Линейное программирование. 9
СОДЕРЖАНИЕ
Введение 4
1. ОБЩАЯ ЧАСТЬ 5
1.1 Общая задача линейного программирования, применение её для решения различных типов вычислительных задач. 5
1.2.Применение процессора Microsoft Excel для расчета задач линейного программирования 10
1.3. Использование технических и программных средств для решения задач линейного программирования 16
1.3.1.Microsoft Visual Basic 6.0 22
1.3.2 Microsoft Office 24
1.4. Алгоритм нахождения оптимального решения задач линейного программирования 26
2. СПЕЦИАЛЬНАЯ ЧАСТЬ 27
2.1. Задание для курсового проекта 27
2.1.1.Приведение задачи к каноническому виду 28
2.2. Нахождение начального опорного решения (НОР) 29
2.3. Нахождение оптимального решения 30
2.4. Алгоритмы и их описание 33
2.5. Описание программы 42
2.6. Описание процесса отладки программы обработка ошибок программы 44
2.7. Инструкция пользователю 48
3.Заключение 50
4. Приложения 51
Приложение №1. Внешний вид форм 51
Приложение №2. Программный код 54
Приложение№ 3.Таблицы Excel 66
Приложение № 4.Таблицы Excel с формулами 67
Список используемой литературы: 71
Введение
Данный курсовой проект предназначен для решения задач линейного программирования. Для этого было необходимо произвести расчеты, используя ручной метод решения задачи симплекс методом, табличный процессор MS Excel из пакета программ Microsoft Office, а также необходимо было написать программу в среде Microsoft Visual Basic.
Для решения задач линейного программирования симплекс методом в любом из вышеперечисленных способов возникает ряд неудобств, например: при решении задачи вручную при подсчетах таблиц можно ошибиться и неправильно решить задачу, при решении задачи в табличном процессоре Microsoft Excel существует необходимость переписывать формулы при составлении новой таблицы, написание программы в среде Microsoft Visual Basic очень утомительное и занимает слишком много времени.
Данный курсовой проект предполагает
решение индивидуального
1. ОБЩАЯ ЧАСТЬ
1.1 Общая
задача линейного программирования,
применение её для решения
различных типов вычислительных
задач.
Существует множество форм деятельности
предприятий, которые связаны с
распределением ресурсов. Эти ресурсы
включают труд, сырье, оборудование и
денежные средства. Иногда процесс
распределения ресурсов называют программированием.
Поскольку обычно размеры ресурсов
ограничены, возникают определенные
проблемы. Если компания выпускает
продукцию нескольких видов с
использованием одного и того же оборудования
и трудовых ресурсов, то ее администрация
должна решить, какое количество продукции
каждого вида производить. Принятое
решение будет направлено на удовлетворение
определенной цели администрации. Администрация
может задать цель наладить производство
таким образом, чтобы максимизировать
общий выпуск продукции за месяц,
максимизировать время
Аналогично, если компания обладает определенным
капиталом для инвестирования ряда
проектов, распределение денежных сумм
по каждому проекту будет
В общем случае цель состоит в определении наиболее эффективного метода такого распределения ресурсов по соответствующим переменным, которое оптимизирует некоторый результат функционирования системы. Очень часто полезным инструментом в процессе распределения ресурсов являются методы моделирования. Математическим программированием называется использование математических моделей и методов для решения проблем программирования. Существует ряд различных методов, основанных на идеях математического программирования, однако мы рассмотрим только один из них, который нашел наиболее широкое применение — линейное программирование.
Линейное программирование является подходящим методом для моделирования распределения ресурсов, если цель и ограничения на ресурсы можно выразить количественно в форме линейных взаимосвязей между переменными. Этот метод включает в себя ряд шагов:
- Необходимо осуществить математическую формализацию задачи линейного программирования. Это означает, что нужно идентифицировать управляемые переменные и цель задачи. Затем с помощью этих переменных цель и ограничения на ресурсы описываются в форме линейных соотношений.
- После завершения формулировки задачи линейного программирования рассматриваются все допустимые сочетания переменных. Из них выбирается то, которое оптимизирует целевую функцию задачи. Если исследуемая задача содержит только две переменные, ее можно решить графически. Однако в случае исследования задачи со многими переменными необходимо прибегнуть к одному из алгебраических методов решения задач линейного программирования, для использования которых существуют пакеты прикладных программ.
- Когда оптимальное решение получено, производится его оценка. Она включает в себя анализ задачи на чувствительность.
Решение задачи линейного программирования, как и любой иной математический инструмент, применяемый в теории принятия решений, является лишь одним из факторов, влияющих на конечное решение, принимаемое администрацией. Рассмотрение линейного программирования начинается с формулировки задачи.
Основная процедура является общей для формулирования всех задач линейного программирования:
Шаг 1. Определение переменных задачи, значения которых нужно получить в пределах существующих ограничений.
Шаг 2. Определение цели и ограничений на ресурсы.
Шаг 3. Описание цели через переменные задачи.
Шаг 4. Описание ограничений через переменные задачи
В своем курсовом проекте я рассчитывал задачу симплекс методом, о котором я расскажу далее.
Если задача линейного
программирования содержит более двух
переменных, то ее решение требует
применения некоторого алгебраического
метода. Принцип, лежащий в основе
решения задачи с множеством переменных,
достаточно прост. Предполагается, что
оптимальному решению соответствует
одна из крайних точек допустимого
множества. Следовательно, необходимо
провести оценку значений целевой функции
во всех крайних точках допустимого
множества и выбрать ту из них,
в которой достигается
В обычном симплекс-методе принимается предпосылка о максимизации целевой функции задачи линейного программирования в условиях системы ограничений со знаком " ". Это означает, что при реализации данного алгоритма в качестве начальной крайней точки может быть выбрано начало координат. Поиск оптимального решения всегда начинается со значения целевой функции, равного нулю.
Симплекс-метод можно
Базовую модель, с которой я работал в дальнейшем, формально можно представить следующим образом:
Максимизировать Z = с1х1 + с2x2 + ... + сnхn.
Здесь сi - константы. Данная функция максимизируется в условиях системы m линейных ограничений:
a11х1 + а12x2 + а13x3 + … + a1nxn b1
a21х1 + а22x2 + а23x3 + … + a2nxn b2
a31х1 + а32x2 + а33x3 + … + a3nxn b3
am1х1 + аm2x2 + аm3x3 + … + amnxn bm
x1 0
Данная система содержит
n переменных и m ограничений. Первая цифра
двойных индексов коэффициентов
в левой части системы
1.2.Применение процессора Microsoft Excel для расчета задач линейного программирования
Microsoft Excel — одна из программ
пакета Microsoft Office, представляющая собой
программируемый табличный
Область применения Excel широка:
- благодаря тому, что лист Excel представляет собой готовую таблицу, Excel часто используют для создания документов без всяческих расчётов, просто имеющих табличное представление (прайс-листы в магазинах, расписания);
- в Excel легко можно создавать различные виды графиков и диаграмм, которые берут данные для построения из ячеек таблиц (график снижения продаж на предприятии за указанный период);
- его могут использовать обычные пользователи для элементарных расчетов (сколько потратил за этот месяц, что/кому/когда дал/взял);
- Excel содержит многие математические и статистические функции, благодаря чему его могут использовать школьники и студенты для расчетов курсовых, лабораторных работ;
- Excel интенсивно используется в бухгалтерии - во многих фирмах это основной инструмент для оформления документов, расчётов и создания диаграмм. Естественно, он имеет в себе соответствующие функции;
- Excel может также работать как база данных.
Минимальные системные требования:
- Операционная система Microsoft® Windows® 95/98/Me/2000/XP/Vista/Seven
- Процессор Pentium® 200 МГц MMX
- 16 МБ оперативной памяти
- Разрешение экрана 800х600 с глубиной цвета 16 бит
- 16-битное звуковое устройство
- 8-скоростное устройство для чтения компакт-дисков или DVD-дисков
Excel - программируемый табличный калькулятор. Все расчеты в Excel выполняют формулы. Формулой Excel считает все, что начинается со знака «=». Если в ячейке написать просто «1+1», Excel не будет вычислять это выражение. Однако если написать «=1+1» и нажать Enter, в ячейке появится результат вычисления выражения - число 2. После нажатия Enter формула не пропадает, ее можно увидеть снова, если сделать двойной щелчок по ячейке, или если выделить ее и нажать F2 или просто нажать Ctrl + «Апостроф». Также ее можно увидеть в панели инструментов «Строка формул», если опять же выделить ячейку. После двойного щелчка, нажатия F2 или после щелчка в строке формул, можно изменить формулу, и для завершения нажать клавишу Enter.
В формуле можно использовать различные
типы операторов (арифметические и
т. п.), текст, ссылки на ячейку или диапазон
ячеек, круглые скобки, именованные
диапазоны. Естественно, в формулах
соблюдается приоритет
Ниже я представлю пример решения задачи линейного программирования в Microsoft Excel с использованием модуля «Поиск решения»
MS Excel содержит модуль «Поиск
решения» позволяющий
Постановка задачи осуществляется посредством задания ячеек для переменных и записи формул с использованием этих ячеек для целевой функции и системы ограничений. Например, на рис 1.1 приведена постановка задачи линейного программирования с целочисленным решением.
Математическая модель этой задачи, записанная в обычной математической форме:
Целевая функция
S = 60*x1+70*x2+120*x3+130*x4
Система ограничений
1*x1+1*x2+1*x3+1*x4 ≤ 16
6*x1+5*x2+4*x3+3*x4 ≤ 110
4*x1+6*x2+10*x3+13*x4 ≤ 150
x1, x2, x3, x4 ≥ 0 - целые
В Excel математическая модель может быть представлена, в лучшем случае, в виде таблицы чисел. Размещение данных в Excel оформляется в свободном порядке, формы ввода не предусмотрены.
Рис 1 Модуль «Поиск решения» программы MS Excel
Далее, переходим к решению. Выбираем в меню «Сервис | Поиск решения». Открывается диалоговое окно «Поиск решения». Здесь указывается ячейки целевой функции, переменных и устанавливаются ограничения исходя из системы ограничений. Можно начать решение, или установить «параметры» решения (рис.1.2).
Рис 2 Окно «Параметры поиска решения» модуля «Поиск решения»
Здесь устанавливаем «параметры» задачи - выбираем «линейная модель», «неотрицательные значения» и «показывать результаты итераций».
«Линейная модель» - служит для ускорения
поиска решения линейной задачи оптимизации.
«Показывать результаты итераций»
- служит для приостановки поиска решения
для просмотра результатов
По умолчанию выбран метод поиска «Ньютона», есть возможность выбрать «сопряженных градиентов».
«Метод Ньютона» - реализация квазиньютоновского метода, в котором запрашивается больше памяти, но выполняется меньше итераций, чем в методе сопряженных градиентов.
«Метод сопряженных градиентов» - реализация метода сопряженных градиентов, в котором запрашивается меньше памяти, но выполняется больше итераций, чем в методе Ньютона. Данный метод следует использовать, если задача достаточно велика, и необходимо экономить память, а также, если итерации дают слишком малое отличие в последовательных приближениях.
Причем здесь нет возможности выбрать ни графический симплекс-метод, ни симплекс-таблиц. Применение метода позволяющего найти целочисленное решение определяется лишь добавление условия на каждую переменную – «целое».
Такой подход к решению задач хорошо подходит для проведения практических расчетов, когда важен лишь результат решения, а не сам процесс получения оптимального решения.
Следует отметить, что некоторые задачи могут иметь несколько вариантов оптимального решения. Так, например, транспортная задача (частный случай задачи ЛП, и может быть представлена в виде целевой функции и системы ограничений) может иметь два (и более) оптимальных плана перевозок с одинаковой стоимостью.
1.3. Использование
технических и программных средств
для решения задач линейного
программирования
Данный курсовой проект был написан
на компьютере со следующими характеристиками
и использовался следующий
Микропроцессор. Самым главным элементом в компьютере является микропроцессор. Он осуществляет выполнение программ, установленных на компьютере, и управляет работой остальных устройств. Представляет собой небольшую электронную схему, Микропроцессор выполняет сотни различных операций и делает это со скоростью в несколько десятков или даже сотен миллионов операций в секунду. Микропроцессоры отличаются друг от друга типом (моделью) и тактовой частотой. Тактовая частота указывает, сколько элементарных операций микропроцессор выполняет за одну секунду, т. е. она характеризует быстродействие компьютера. Тактовая частота измеряется в мегагерцах (МГц). Тактовая частота на данном компьютере составляет 3.2 Ггц.
Оперативная память. Очень важным элементом компьютера является оперативная память. Именно из нее процессор берет программы и исходные данные для обработки, в нее он записывает полученные результаты. Содержащиеся в ней данные сохраняются пока компьютер включен. При выключении компьютера содержимое оперативной памяти стирается. Она состоит из двух частей: основная память и расширенная (дополнительная). Основная память имеет размер 640 Кбайт, а остальные Кбайты размещаются в дополнительной памяти. Оперативная память на данном компьютере DDRII PC64200 2048Мбайт.
Кэш – память. Для ускорения доступа к оперативной памяти на быстродействующих компьютерах используется сверхбыстродействующая кэш-память (в нашем случае 2048Kb), которая хранит копии наиболее часто используемых участков оперативной памяти. При обращении микропроцессора к памяти сначала производится поиск нужных данных в кэш-памяти. Поскольку время доступа к кэш-памяти в несколько раз меньше, чем к обычной памяти, среднее время доступа к памяти уменьшается.
Жесткие диски. Накопители на жестком диске (винчестеры) предназначены для постоянного хранения информации, используемой при работе с компьютером: программ операционной системы, часто используемых пакетов программ, редакторов документов, трансляторов с языков программирования и так далее. Из всех устройств для хранения данных жесткие диски обеспечивают наиболее быстрый доступ к данным, высокие скорости чтения и записи данных.
Для пользователя жесткие диски отличаются друг от друга следующими характеристиками:
- Емкостью, то есть тем, сколько информации помещается на диске (Емкость данного винчестера – 260 Гбайт)
- Быстродействием, то есть временем доступа к информации и скоростью чтения и записи информации (7200)
- Интерфейсом, то есть типом контроллера, к которому должен подсоединяться жесткий диск.(SATAII)
Мониторы: Монитор (дисплей) компьютера предназначен для вывода на экран текстовой и графической информации.
Существуют цветные и монохромные (в данном случае цветной), отличаются друг от друга по размеру. В зависимости от назначения мониторы оснащаются разными средствами регулировки, цветокорректировки и так далее. Различные мониторы могут поддерживать разные разрешения, то есть количества точек в выводимом изображении по горизонтали и вертикали.
Возможность изменения разрешения экрана определяется используемыми монитором и видеоадаптером.
Характеристики монитора:
Тип дисплея: ЖК-монитор Acer Al1511
Максимальный размер разрешения: 1280 x 1024
Видеокарта: Видеокарта это устройство для вывода графической информации на монитор, прямого кодирования видео сигнала со внешнего источника. (Видеокарта на данном компьютере – NVIDIA GeForce 8800 GTS)
Принтеры Принтер предназначен для вывода информации на бумагу. Обычно принтеры могут выводить не только текстовую информацию, но также рисунки и графики. Одни принтеры позволяют печатать только в одном цвете (черном), другие могут выводить также и цветные изображения.
В данном случае используется лазерный принтер. Лазерные принтеры обеспечивает наилучшее качество черно-белой печати. В лазерных принтерах используется принцип ксерографии. Лазерные принтеры обеспечивают самую высокую среди всех принтеров скорость печати и не требуют специальной бумаги.
Программы, работающие на компьютере, можно разделить на три категории:
- Прикладные программы, непосредственно обеспечивающие выполнение пользователям работ: редактирование текстов, рисование картинок, обработку информационных массивов и так далее: Системные программы, выполняющие различные вспомогательные функции, например создание копий используемой информации, проверку работоспособности устройств компьютера и так далее:
- Инструментальные системы (системы программирования), обеспечивающие создание новых программ для компьютера.
Среди всех системных программ, с
которыми приходится иметь дело пользователям
компьютеров, особое место занимают
операционные системы. Операционные система
(ОС) управляет компьютером, запускает
программы, обеспечивает защиту данных,
выполняет различные сервисные
функции по запросам пользователей
и программ. Каждая программа пользуется
услугами ОС, а потому может работать
только под управлением той ОС,
которая обеспечивает для нее
эти услуги. Таким образом, выбор
ОС очень важен, так как он определяет,
с какими программами Вы сможете
работать на своем компьютере. От выбора
ОС зависит также
На данном персональном компьютере (ПК) используется операционная система c Windows XP.
Windows XP - операционная система (ОС) Microsoft, основанная на технологии Windows NT. Это полностью 32-разрядная ОС с приоритетной многозадачностью и улучшенной реализацией работы с памятью.
В этой ОС реализована
поддержка современного оборудования,
в частности в состав операционной
системы включен
Но операционная система не работает
с так называемыми
В Windows XP два логически связанных модуля объединены в рамках одного, поэтому работать с сетевыми компонентами здесь, намного удобнее.
В сетях Windows XP существует целый ряд возможностей: групповые политики (GROUP Police), служба каталогов Active Directory (AD), система централизованной синхронизации данных, реализованная на базе технологии IntelliMirror.
Операционная система Windows XP получила сертификат безопасности Common Criteria. Это свидетельствует о том, что данная ОС является одной из наиболее безопасных и может использоваться для решения многих критически важных задач.
Эта операционная система обладает универсальной защитой, поскольку на локальном уровне использует файловую систему Encrypting File System (EFS), на сетевом уровне - протокол Kerberos, на уровне Internet - защитную инфраструктуру на базе открытых ключей (Public Key Infrastructure, PKI), а на физическом уровне - технологию интеллектуальных карт. Входящий в Windows XP Pro модуль System File Protection (SFP) обеспечивает защиту файлов .sys, .dll, .exe и .ocx. Эта очень полезная функция предотвращает перезапись приложениями ключевых системных файлов их устаревшими или модифицированными версиями и пользователям не приходиться периодически перезагружать компьютер.
Таким образом, Windows XP – самая подходящая операционная система
для студентов.
Для создания курсового
проекта был использован
- Microsoft Office;
- Microsoft Visual Basic 6.0;
1.3.1. Microsoft Visual Basic 6.0
в программной части курсового проекта использовался язык программирования Visual Basic, объектная модель ADO.
Среда программирования – позволяет выполнить весь комплекс операций, связанных с составлением программы, работы с ней, и включает:
- интерпретатор (система программирования Visual Basic включает и компилятор);
- программу-оболочку, позволяющую с помощью меню управлять работой среды;
- отладчик программ, предоставляющий в распоряжение пользователя специальные средства, позволяющие ускорить отладку программ.
Язык программирования – это инструмент для создания компьютерных программ.
Visual Basic – это программа, характерной
особенностью которой является
возможность создания и
- простота;
- быстрота и легкость создания приложений.
Рабочая среда в Visual Basic называется интегрированной средой разработки или IDE (Integrated development environment), потому что объединяет много различных функций, таких как разработка, редактирование, компиляция и отладка внутри общей среды, в то время как в традиционных средствах разработки программных продуктов каждая функция работает как отдельная функция со своим собственным интерфейсом.
Visual Basic предоставляет большие
Основой для создания интерфейса любого приложения является форма. На ней размещаются элементы управления. Они являются объектами, с которыми работает разработчик в процессе построения интерфейсной части приложения.
Формы – это объекты, свойства которых определяют их вид, методы – поведение, а событие – связь с пользователем. Задавая форме свойства и создавая код для реакции на действия пользователя, разработчик настраивает эти объекты так, чтобы они отвечали требованиям будущего приложения.
Элементы управления – это объекты, которые содержатся в формах. Каждый тип элемента имеет свой собственный набор свойств, методов и событий, которые делают его наиболее подходящим для определенной цели. Некоторые элементы управления лучше всего использовать для ввода или отображения текста, другие для доступа к приложениям и данным так, будто эти приложения (Word, Excel, и другие) являются частью вашего приложения.
Свойства реализуются
В процессе разработки приложения данного курсового проекта на форму были помещены следующие элементы управления:
1. Textbox – текстовое поле, которое служит для отображения, ввода и редактирования текста.
2. CommandButton – кнопка, которая служит для инициирования некоторых действий программы после щелчка на ней кнопкой мыши.
- Label – надпись, которая служит для отображения текста который пользователь не может изменить.
- Option – переключатель.
1.3.2 Microsoft Office
В процессе написания отчета я пользовался некоторыми приложениями пакета прикладных программ Microsoft Office 2003.

- Линейное программирование
- Линейное программирование
- Линейное программирование
- Линейное программирование
- Линейное программирование
- Линейное программирование
- Линейное программирование
- Линейная регрессия
- Линейная решетка стержневых диэлектрических антенн
- Линейная система автоматического управления
- Линейная структура управления
- Линейная ФАР с рупорными излучателями
- Линейное програмирование
- Линейное програмирование