Автор: Пользователь скрыл имя, 14 Декабря 2010 в 01:24, курсовая работа
Решение задачи целераспределения симплекс методом
Полагая
xn+1=xn+2=…=xm=0, получим:
Если окажется, что x1³0, x2³0, …, xm³0, то совокупность чисел (x1, x2, …, xn, 0, 0, …, 0) дает неотрицательное решение системы.
Рассмотрим
пример. Дана система уравнений
Нужно
данную систему разрешить относительно
переменных x1, x2, x3. Следовательно
свободными переменными будут x4,
x5, x6. Напишем таблицу, соответствующую
данной системе уравнений.
Решим
систему относительно x1 с помощью
первого уравнения. За разрешающий элемент
принимаем первый элемент первой строки,
и подвергнем таблицу S-преобразованию.
Получим новую таблицу, где первая строка
переписывается, в первом столбце записываются
нули, а остальные элементы вычисляются
по D-правилу.
Этой
таблице соответствует система уравнений,
разрешенная относительно x1 (x1
входит только в первое уравнение). Исключить
x2 удобнее с помощью третьего уравнения,
так как коэффициент при x2
в третьем уравнении равен единице. Принимаем
его за разрешающий элемент. Пишем новую
таблицу
Система уравнений, соответствующая этой таблице, разрешена относительно x1 и x2 (x1 входит только в первое уравнение, а x2 только в третье).
Для
разрешения системы относительно x3
за разрешающий элемент берем коэффициент
при x3 во втором уравнении. Новая
таблица имеет вид
Последняя
таблица соответствует системе,
решенной относительно базисных переменных
x1, x2, x3. Полагая свободные
переменные x4, x5, x6 равными
нулю, получим уравнения:
-3x1=-18, откуда x1=6
-3x2=-6, откуда x2=2
-3x3=3,
откуда x3=-1
Совокупность чисел x1=6, x2=2, x3=-1, x4=0, x5=0, x6=0 есть одно из решений данной системы. Оно не принадлежит к области допустимых решений, так как одна из координат x3 отрицательна.
Для
решения задачи линейного программирования
важно уметь находить неотрицательные
(опорные) решения данной системы уравнений.
Правило выбора разрешающего элемента при отыскании неотрицательного решения системы уравнений.
Пусть
дана система уравнений
(1.19)
В системе (1.19) свободные члены можно считать неотрицательными, так как в обеих частях уравнения всегда можно поменять знаки.
Если при выполнении симплекс преобразований при переходе от одной системы к другой будем следить за тем, чтобы разрешающие элементы были положительными, то на последнем этапе разрешения системы относительно базисных переменных получим систему вида (1.18) и по формулам найдем неотрицательные значения базисных переменных. Составляем отношения свободных членов bk к положительным элементам akj разрешающего столбца и среди чисел выбираем наименьшее значение. Если наименьшее значение достигается при k=i, то i-номер разрешающей строки, а разрешающим элементом будет aij.
Рассмотрим пример отыскания неотрицательных решений системы уравнений.
Пример.
Найти неотрицательное решение
системы уравнений
Пишем
таблицу, соответствующую данной системе
Пробуем
разрешить эту систему относительно
x1, т.е. переменную x1 будем
считать базисной переменной. Первый столбец
будет базисным столбцом. Составляем отношения
свободных членов к положительным элементам
первого столбца 10/2=5; 4/7. Наименьшее из
этих чисел 4/7. Числа 4 и 7 находятся во второй
строке. Следовательно разрешающей строкой
будет вторая строка и разрешающим элементом
число 7. Выполняя симплекс преобразование,
получим новую таблицу
Этой
таблице соответствует система
уравнений, разрешенная относительно
базисной переменной x1. Так как обе
части любого уравнения системы можно
умножать и делить на любое постоянное
число (система при этом будет эквивалентна
прежней), то если строки таблицы имеют
общий множитель, на него можно сократить.
Последняя строка предыдущей таблицы
имеет общий множитель 7; сокращая на него,
получим таблицу
Введем в базис переменную x3, т.е. примем за разрешающий столбец третий столбец.
Из
двух отношений 62/13 и 10/3 меньшим является
второе. Следовательно, разрешающим элементом
будет 3. Выполняя симплекс преобразование
получим таблицу
Первую строку сокращаем на 28, вторую на 21
Введем
в базис переменную x2. Разрешающим
элементом будет 5. Снова выполняя симплекс
преобразования, получим таблицу
Последнюю
строку сокращаем на 3
Эта таблица соответствует системе уравнений, разрешенной относительно базисных переменных x1, x2, x3. Свободными переменными здесь являются x4 и x5. Полагая свободные переменные равными нулю, получим:
5x1=12, x1=12/5; 5x2=2, x2=2/5; 5x3=18, x3=18/5;
Совокупность чисел x1=12/5; x2=2/5; x3=18/5; x4=0; x5=0
Дает неотрицательный ответ данной системы уравнений. Эти числа можно рассматривать как координаты угловой точки (вершины) множества (многогранника) допустимых решений.
Симплекс метод - универсальный метод для решения линейной системы уравнений или неравенств и линейного функционала.
Для привидения системы ограничений неравенств к каноническому виду, необходимо в системе ограничений выделить единичный базис.
Рисунок
2.1 Блок- схема алгоритма симплекс метода
Программа Решение задачи линейного программирования предназначена для решения задач линейного математического программирования. Программа состоит из двух вычислительных модулей, первый из которых предназначен для решения задач нецелочисленного линейного программирования, а второй – для решения задач целочисленного программирования. В основе модуля нецелочисленного программирования лежит симплекс-метод.
Программа выполняет следующие функции: ввод и редактирование (добавление, удаление, копирование, вставка, отмена и повтор последних действий) задач линейного программирования, содержащих целевую функцию и линейные ограничения, представленные в виде коэффициентов при соответствующих переменных, сохранение и загрузку с диска исходных данных задачи, вывод задачи и ее решения на печать, настройка главного окна и дочерних окон приложения, расчет как целочисленных, так и нецелочисленных задач линейного программирования и вывод результатов на экран, вывод справки по программе и применяемым методам вычислений.
Программа Решение задачи линейного программирования представляет собой многодокументное приложение Windows, реализованное с помощью аппаратных средств IBM PC ATX с операционной системой Windows XP и программных средств Borland Delphi 7.0.
Программа является 32 разрядным приложением и требует установленной 32 разрядной операционной системы Windows 9x/2000/Me/XP. Наличие принтера является необязательным.
Программа занимает 988 Кбайт дискового пространства. Для организации диалога с пользователем используется стандартный графический интерфейс Windows, построенный на основе библиотеке визуальных компонентов VCL (Visual Component Library), поставляемой вместе с пакетом Delphi. При разработке программы использовалась MDI-технология (Multiple Document Interface – многодокументный интерфейс), что позволяет пользователю работать сразу с несколькими задачами линейного программирования.
В программе существует возможность контролировать ход решения задачи, просматривая результаты итераций. Данная опция включается с помощью флага, выделенного на рисунке 3.1.
Встроенный модуль формирования начального базиса делает программу универсальной для любых невырожденных задач линейного программирования. Диалог с пользователем организуется посредством меню, содержащего команды, соответствующие вышеописанным функциям программы.
Рисунок 3.1 – Диалоговое окно программы
Исполняемый файл программы имеет имя Решение задачи линейного программирования.exe. Вычислительные модули нецелочисленного и целочисленного программирования встроены в программу и вызываются соответственно командами «Симплекс-метод».
Рисунок
3.2 Ввод параметров задачи
Входными данными программы является целевая функция, максимум или минимум которой требуется найти и система линейных ограничений. Для ввода коэффициентов используется редактор задачи, показанный на рисунке 3.1, позволяющий добавлять функцию и ограничения, изменять и удалять их. Окно параметров задачи содержит две вкладки: вкладка «Функция», служащая для изменения целевой функции и вкладка «Ограничения» рисунок 3.2, для редактирования линейных ограничений. Для удобства в программе не требуется кодирования входных данных. Обработка и машинное представление входных данных производится автоматически.
Выходными
данными являются оптимальный базис
и значение целевой функции при
найденных значениях
Результаты решения задачи показаны на рисунке 3.3
Рисунок
3.3 Ввод параметров задачи
Существует
возможность сохранить на диске
как входные данные, так и выходные
для последующего считывания. Эти
операции выполняются командами
«Открыть…», «Сохранить» и «Сохранить
как…» главного меню приложения. Диалоговые
окна сохранения и загрузки данных имеют
стандартный вид и позволяют совершать
файловые операции.