Файл: пк для решения задач линейного программирования симплексным методом.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 56
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ТЕМА: «ПК для решения задач линейного программирования симплексным методом»
ВВЕДЕНИЕ
Симплекс-метод – алгоритм решения оптимизационной задачи линейного программирования путём перебора вершин выпуклого многогранника в многомерном пространстве. Метод был разработан советским математиком Канторовичем Л.В. в 1937 году.
Назначение метода состоит в следующем. В общем виде, когда в задаче участвуют N-неизвестных, можно сказать, что область допустимых решений, задаваемая системой ограничивающих условий, представляется выпуклым многогранником в n-мерном пространстве и оптимальное значение целевой функции достигается в одной или нескольких вершинах. Решить данные задачи графически, когда количество переменных более 3 весьма затруднительно. Существует универсальный способ решения задач линейного программирования, называемый симплекс-методом.
Идея симплекс-метода заключается в следующем. Сначала нужно найти некоторую (начальную) вершину многогранника допустимых решений (начальное допустимое базисное решение). Затем нужно проверить это решение на оптимальность. Если оно оптимально, то решение найдено; если нет, то перейти к другой вершине многогранника и вновь проверить на оптимальность. Ввиду конечности вершин многогранника (следствие конечности ограничений задачи ЛП) за конечное число "шагов" мы найдем искомую точку минимума или максимума. Надо заметить, что при переходе от одной вершины к другой значение целевой функции убывает (в задаче на минимум) или возрастает (в задаче на максимум).
Основная цель курсового проекта по дисциплине «Математические методы исследования операций» – получение навыков разработки интеллектуального программного продукта для решения задачи оптимизации (поддержки решения) в заданной предметной области.
Для выполнения курсовой работы я выбрала язык Object Pascal и среду разработки Delphi. Визуальное построение приложений в Delphi позволяет быстро и качественно создать интерфейс программы, среда разработки имеет низкие требования разработанного приложения к ресурсам компьютера, а также наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi.
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ «ПК ДЛЯ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ СИМПЛЕКСНЫМ МЕТОДОМ»
Линейное программирование представляет собой наиболее часто используемый метод оптимизации. К числу задач линейного программирования можно отнести задачи:
– рационального использования сырья и материалов; задачи оптимального раскроя;
– оптимизации производственной программы предприятий;
– оптимального размещения и концентрации производства;
– составления оптимального плана перевозок, работы транспорта;
– управления производственными запасами;
– и многие другие, принадлежащие сфере оптимального планирования.
Для большого количества практически интересных задач целевая функция выражается линейно – через характеристики плана, причем допустимые значения параметров подчинены линейным равенствам или неравенствам. Нахождение при данных условиях абсолютного экстремума целевой функции носит название линейного программирования.
Первым исследованием по линейному программированию является работа Л.В. Канторовича “Математические методы организации и планирования производства”, опубликованная в 1939 г. В нем дана постановка задач линейного программирования, разработан метод разрешающих множителей решения задач линейного программирования и дано его теоретическое обоснование.
Прямая задача линейного программирования является математической формулировкой проблемы составления такого плана использования различных способов производства, который позволяет получить максимальное количество однородного продукта при имеющихся в наличии ресурсах.
Математическое программирование – это прикладная отрасль математики, которая является теоретической основой решения задач оптимального планирования.
Существуют следующие разделы математического программирования: линейное, параметрическое, нелинейное и динамическое программирование. Наиболее разработанным и широко применяемым разделом математического программирования является линейное программирование, целью которого служит отыскивание оптимума (max, min) заданной линейной функции при наличии ограничений в виде линейных уравнений или неравенств.
Симплексный метод является универсальным, так как позволяет решить практически любую задачу линейного программирования
, записанную в каноническом виде.
1.1 Постановка задачи линейного программирования
Задача линейного программирования состоит в том, что необходимо максимизировать или минимизировать некоторый линейный функционал на многомерном пространстве при заданных линейных ограничениях.
Необходимо разработать программу, решающую базовую задачу линейного программирования симплекс-методом с помощью симплекс-таблиц. Свободные члены системы ограничений задачи могут быть произвольными.
Перед решением задачи линейного программирования симплексным методом ее нужно записать в канонической форме:
; (1)
; (2)
. (3)
Симплекс-метод включает в себя:
– определение одной из вершин многогранника (исходного опорного плана);
– упорядоченный перебор вершин (опорных планов), при котором на каждом шаге осуществляется приближение к оптимальному плану.
1.2 Алгоритм решения задачи линейного программирования симплексным методом
Симплексный метод позволяет, отправляясь от некоторого исходного опорного плана и постепенно улучшая его, получить через конечное число итераций оптимальный план или убедиться в неразрешимости задачи (Рисунок 1).
Определение 1. Допустимым решением (планом) задачи ЛП называется вектор X=(x1,x2,…,xn), удовлетворяющий всем ее ограничениям (2), (3).
Определение 2. План X=(x1,x2,…,xn) задачи (1) - (3) называется опорным (допустимым базисным решением), если векторы условий Aj=(a1j,a2j,…,amj)T, входящие в разложение вектора A0=(b1,b2,…,bm)T:
(4)
с положительными коэффициентами xj, линейно независимы.
Определение 3. Система m линейно независимых векторов условий {Asi}, , включающая все те Asi, для которых xsi>0, называется базисом опорного плана и обозначается через Бx.
Перед решением задачи ЛП симплексным методом ее надо записать в канонической форме. Решение начинается с известного опорного плана, которому отвечает единичный базис. Поэтому задача решается симплексным методом
, если матрица основных ограничений (2) содержит по крайней мере m различных единичных векторов, из которых можно составить единичную матрицу m-го порядка.
Таким образом, если X0=(xs1,xs2,…,xs0,0,…,0) – исходный опорный план задачи с единичным базисом As1,…,Asm и каноническая модель задачи, которая имеет следующий вид
(5)
Из системы (5) следует, что в исходном опорном плане X0 базисные переменные xsi=bi, . Алгоритм симплексного метода начинается с вычисления оптимального решения по такому опорному плану:
X0=(b1,b2,…,bm,0,…,0). (6)
Для исследования X0 на оптимальность необходимо разложить все векторы Aj по векторам базиса Asi:
(7)
и подсчитать разности:
j=Zj–cj. (8)
В равенстве (7) xij=aij, поскольку векторы Asi образуют единичный базис.
Записав всю исходную информацию о задаче в таблицу, получим исходную (нулевую) симплексную таблицу (Таблица 1).
Таблица 1 - Нулевая симплексная таблица
i | Бх | Сб | А0 | c1 | … | csr | … | ck | … | cn | t |
A1 | … | Asr | … | Ak | … | An | |||||
1 | As1 | cs1 | xs1 | xs11 | … | 0 | … | x1k | … | x1n | t0 |
2 | As2 | cs2 | xs2 | xs21 | … | 0 | … | x2k | … | x2n | |
… | … | … | … | … | … | … | … | … | … | … | |
r | Asr | csr | xsr | xr1 | … | 1 | … | xrk | … | xrn | |
… | … | … | … | … | … | … | … | … | … | … | |
m | Asm | csm | xsm | xm1 | … | 0 | … | xmk | … | xmn | |
m+1 | - | - | Z0 | | … | sr=0 | … | k | | n |