Табличный алгоритм обмена переменных

Содержание

ВВЕДЕНИЕ.............................................................................................. 2

ЛАБОРАТОРНАЯ РАБОТА № 1.......................................................... 3

ЛАБОРАТОРНАЯ РАБОТА № 2........................................................ 18

ВВЕДЕНИЕ

Данные методические указания являются описанием лабораторных работ по курсу «Исследование операций». Они имеют цель дать обучающимся возможность самостоятельной разработки и реализации наиболее популярных алгоритмов курса

При выполнении лабораторных работ используется язык программирования Турбо Паскаль либо другой по согласованию с преподавателем.

Методические указания предназначены для студентов факультета автоматизации и вычислительной техники, и могут быть использованы студентами других специальностей для выполнения лабораторных работ по курсу «Исследование операций» а также «Основы алгоритмизации и программирования».

ЛАБОРАТОРНАЯ РАБОТА № 1

Решение задач линейного программирования Симплекс-методом

Теоретические положения

Симплекс-метод применяется для решения основной задачи линейного программирования (ОЗЛП), которая ставится следующим образом.

Для ряда переменных Табличный алгоритм обмена переменных - student2.ru требуется найти такие неотрицательные значения этих переменных, которые удовлетворяли бы системе линейных уравнений:

Табличный алгоритм обмена переменных - student2.ru

и, кроме того, обращали бы в максимум называемую целевой (ЦФ) линейную функцию

Табличный алгоритм обмена переменных - student2.ru

Очевидно, случай поиска минимума ЦФ сводится к предыдущему, если изменить знак функции и рассмотреть вместо неё функцию

Табличный алгоритм обмена переменных - student2.ru

Условимся называть допустимым решением ОЗЛП любую совокупность переменных

Табличный алгоритм обмена переменных - student2.ru

удовлетворяющую уравнениям (1.1).

Оптимальным решением будем называть то из допустимых решений, при котором ЦФ (1.2) обращается в максимум.

Будем считать, что все уравнения нашей системы линейно независимы (т.е. никакое из них нельзя представить в виде линейной комбинации других). Тогда, если число уравнений ОЗЛП Табличный алгоритм обмена переменных - student2.ru меньше числа переменных Табличный алгоритм обмена переменных - student2.ru , то система линейных уравнений имеет бесчисленное множество решений. При этом Табличный алгоритм обмена переменных - student2.ru переменным мы можем придавать произвольные значения (так называемые свободные переменные), а остальные Табличный алгоритм обмена переменных - student2.ru переменных выразятся через них (эти Табличный алгоритм обмена переменных - student2.ru переменных мы будем называть базисными).

На практике ограничения в задаче линейного программирования часто задаются не уравнениями, а неравенствами.

Пусть имеется задача линейного программирования с Табличный алгоритм обмена переменных - student2.ru переменными, с ограничениями, заданными в виде неравенств. Т.к. ограничения со знаком неравенства " Табличный алгоритм обмена переменных - student2.ru " сводятся к ограничениям со знаком " Табличный алгоритм обмена переменных - student2.ru " простой переменой знака обеих частей, зададим все ограничения неравенства в стандартной форме:

Табличный алгоритм обмена переменных - student2.ru

Введём обозначения:

Табличный алгоритм обмена переменных - student2.ru

где Табличный алгоритм обмена переменных - student2.ru — некоторые новые переменные, которые мы будем называть "добавочными". Согласно условиям , эти добавочные переменные, так же, как и основные, должны быть неотрицательными.

Таким образом, перед нами в чистом виде основная задача линейного программирования (ОЗЛП): найти такие неотрицательные значения Табличный алгоритм обмена переменных - student2.ru переменных Табличный алгоритм обмена переменных - student2.ru ; Табличный алгоритм обмена переменных - student2.ru чтобы они удовлетворяли системе уравнений и одновременно обращали в максимум линейную функцию этих переменных:

Табличный алгоритм обмена переменных - student2.ru

Уравнения заданы в форме, уже разрешённой относительно базисных переменных Табличный алгоритм обмена переменных - student2.ru , которые выражены через свободные переменные Табличный алгоритм обмена переменных - student2.ru . Общее количество переменных равно Табличный алгоритм обмена переменных - student2.ru .

Таким образом, задача линейного программирования с ограничениями-неравенствами сведена нами к ОЗЛП, но с большим числом переменных, чем было первоначально.

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

Табличный алгоритм обмена переменных - student2.ru

где Табличный алгоритм обмена переменных - student2.ru ; Табличный алгоритм обмена переменных - student2.ru ; … ; Табличный алгоритм обмена переменных - student2.ru .

Форму записи уравнений будем называть стандартной. Приведём также к стандартной форме и целевую функцию:

Табличный алгоритм обмена переменных - student2.ru

где ; Табличный алгоритм обмена переменных - student2.ru ; … ; Табличный алгоритм обмена переменных - student2.ru .

Очевидно, вместо того, чтобы полностью записывать уравнения , (1.6), можно ограничиться заполнением стандартной таблицы, где указаны только свободные члены и коэффициенты при переменных:

Таблица 1.1.

  Свободный член Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru

Для дальнейшего удобства переобозначим коэффициенты:

Таблица 1.2

  Свободный член Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru
Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru Табличный алгоритм обмена переменных - student2.ru

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

1) отыскание опорного решения;

2) отыскание оптимального решения, максимизирующего линейную целевую функцию.

Оба этапа используют табличный алгоритм обмена переменных.

Табличный алгоритм обмена переменных

Пусть требуется произвести замену Табличный алгоритм обмена переменных - student2.ru , т.е. перевести переменную Табличный алгоритм обмена переменных - student2.ru в число базисных, а переменную Табличный алгоритм обмена переменных - student2.ru в число свободных. Будем называть столбец с заголовком Табличный алгоритм обмена переменных - student2.ru разрешающим столбцом, а строку с заголовком Табличный алгоритм обмена переменных - student2.ru — разрешающей строкой. Элемент, стоящий на пересечении разрешающей строки и разрешающего столбца ( Табличный алгоритм обмена переменных - student2.ru ), будем называть разрешающим элементом.

Для замены переменных следует выполнить следующие действия:

1. Меняются местами заголовки разрешающей строки и разрешающего столбца Табличный алгоритм обмена переменных - student2.ru .

2. Разрешающий элемент заменяется на обратную ему величину Табличный алгоритм обмена переменных - student2.ru .

3. Все элементы разрешающего столбца (кроме самого разрешающего элемента) меняют знак и умножаются на новый разрешающий элемент:

Табличный алгоритм обмена переменных - student2.ru .

4. Каждый из элементов, кроме принадлежащих разрешающей строке или разрешающему столбцу, подвергаются следующему преобразованию: к нему прибавляется произведение элемента, стоящего в разрешающей строке (пока это старое значение) на том же месте по порядку (т.е. в том же столбце), на элемент стоящий в новом разрешающем столбце на соответствующем месте (т.е. в той же строке, что и наш элемент):

Табличный алгоритм обмена переменных - student2.ru

5. Все элементы разрешающей строки (кроме разрешающего) умножаются на новый разрешающий элемент:

Табличный алгоритм обмена переменных - student2.ru

Наши рекомендации