Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Метод аппроксимации (метод Фогеля).
Суть метода аппроксимации заключается в том, что на каждом шаге выбор очередной клетки, заполняемой ресурсом, осуществляется не на основе строго локальных оценок стоимостей Су, как в методе минимального элемента, а на основе расчетов так называемых штрафов1, позволяющих приближенно оценивать полезность данного шага с точки зрения скорейшего приближения к оптимальному решению с учетом состояния таблицы на следующем шаге. 'Таха X. Введение в исследование операций. Кн. 1. — М.: Мир, 1985. — С. 216. Схема метода аппроксимации для случая минимизации целевой функции такова. 1. По каждой строке и столбцу находят два минимальных значения Су. 2. Определяют их разности (штрафы) ц, -, /= 1,..., т (для строк) и ц/; }= I,..., п (для столбцов). 3. Из всех разностей выбирают наибольшую цтах. 4. По строке (или столбцу), к которой относится цтах, в клетку, где размещается наименьшее значение Су, записывают значение ху, равное наименьшей из соответствующих величин А-, и Ву 5. Определяют новые значения указанных величин А1 и В/. А\=А/ - Ху\ 2»у= В^ - ху. 6. Если Л/=0 и 2? у> 0, то из таблицы вычеркивают соответству величины А- и #у равны нулю, то вычеркивают только (!) строку или только столбец (но неодновременно столбец и строку). С оставшимся столбцом (строкой), имеющим нулевое значение В)(А1), далее работают, как с нормальным столбцом (строкой). 7. Далее операции повторяются до тех пор, пока в таблице все При решении задач на максимум приведенный алгоритм меняется только в двух пунктах: в п. 1 вместо минимальных находят два максимальных значения Су, а в п. 4 заполняют клетку не с наименьшим, а с наибольшим значением Су. При реализации приведенного алгоритма возможны некоторые осложнения (напоминаем, что мы рассматриваем случай минимизации целевой функции). Например, в п. 3 не одна, а несколько неличин |Я/ и цу могут иметь одинаковое наибольшее значение. В этом случае в качестве дальнейшей расчетной можно выбрать любую из них, однако опорное решение можно улучшить (приблизить к оптимальному), если в качестве дальнейшей взять ту из величин Ц./ или Цр для которой в соответствующих строках и столбцах находится наименьшее значение Су. Если при этом наименьшее значение достигается несколькими Су, то для решения берут ту клетку, которую можно заполнить наибольшим значением ху. Как уже отмечалось, в случае, когда 4'=0и6у=0, можно вычеркнуть либо /-ю строку, либоу'-й столбец. Для того чтобы приблизить опорное решение к оптимальному, целесообразно со- 1л> 4^ 87. Нахождение опорного решения задачи 15.5 методом аппроксимации*
© 0 © ® * Числа в кружках указывают последовательность вычеркивания столбцов и строк. Значения базисных переменных опорного решения выделены полужирным шрифтом. Звездочкой помечены максимальные на данном шаге значения ц. блюдать следующее правило: в /-и строке, исключая вычеркнутые и занятые клетки, а также рассматриваемую (/, у)-ю клетку, определяем наименьшее значение Су (обозначим его Су); в у'-м столбце, исключая вычеркнутые и занятые клетки, а также рассматриваемую (/, у)-ю клетку, определяем наименьшее значение Су (обозначим его Су); если Су < С[[, то вычеркиваем у-й столбец, в противном случае — /-ю строку. Если в ходе применения приведенного алгоритма на каких-либо шагах окажется, что одновременно Д'=0и5у=0, опорное решение будет вырожденным — некоторые клетки будут условно занятыми. Как правило, вырожденное решение может появиться, если выполняются какие-либо из равенств А{ = Вх; А\ = В2; Ах = Вх + В2; А1+А2 = В1 + В2и т. п. Необходимо подчеркнуть, что при использовании рассмотренного алгоритма (так же, как и алгоритма метода минимального элемента) наличие вырожденных решений не усложняет как получение опорного решения, так и улучшение его до оптимального. Никакие специальные приемы в операциях с вырожденными решениями не требуются. С условно занятыми клетками (занятыми нулями) необходимо работать, как с обычными занятыми. Определение опорного решения методом аппроксимации удобно проводить в таблице специального вида (табл. 87). Заметим, что опорное решение, полученное методом аппроксимации, не совпадает с решением, полученным методом минимального элемента. Значение целевой функции (2- 5730 руб.) в первом случае меньше, то есть данное решение ближе к оптимальному. 15.3. МЕТОД ПОТЕНЦИАЛОВ Основные понятия. Опорное решение, полученное любым из известных методов, как правило, не является оптимальным. Поэтому алгоритмы оптимизации основаны на его последовательном улучшении. Прежде чем изложить строго формализованный метод такого улучшения, рассмотрим циклическую процедуру преобразования любого (в том числе опорного) решения транспортной задачи. Суть ее заключается в перемещении части транспортируемого ресурса внутри некоторой замкнутой последовательности клеток (цикла), причем в каждом цикле одна клетка свободна, а остальные заняты. Тем самым происходит замена одного базисного решения другим. Замкнутый цикл (многоугольник) строится по следующим правилам: стороны многоугольника должны располагаться только вдоль строк и столбцов матрицы, то есть пересекаться только под прямыми углами; вершины многоугольника должны находиться в занятых клетках, кроме одной начальной, лежащей в выбранной свободной {испытуемой) клетке; пересечение несмежных сторон многоугольника вершиной не считается; начальной вершине приписывается знак «+», далее знаки чередуются. В теории линейного программирования доказывается, что при выполнении указанных правил для любой свободной клетки можно построить единственный цикл. Два примера построения циклов для свободных клеток (3, 5) и (2, 5) показаны в таблицах 88 и 89, где размещено опорное решение задачи 15.5, полученное методом минимального элемента. 88. Цикл испытуемой клетки (3, 5)
89. Цикл испытуемой клетки (2, 5) Преобразование решения осуществляется следующим образом (см., например, табл. 88). Среди клеток, помеченных знаком «—», находят клетку с наименьшим ресурсом (обозначим его хтт) и далее последовательно в клетках, помеченных знаком «+», ресурс увеличивают на хт1п, а в помеченных знаком «-» —уменьшают на хт[п. Очевидно, что при этом, как минимум, в одной из клеток ресурс уменьшится до нуля и в испытуемой клетке (/, /) появится ресурс ху = хт1п, то есть переменная ху будет введена в базис. При таком изменении решения значение целевой функции может уменьшиться (то есть достигается улучшение решения задачи на минимизацию) или увеличиться (то есть решение ухудшится). Чтобы выяснить, как изменится решение, вычисляют так называемую оценку испытуемой клетки (такую оценку иногда называют ценой цикла, или характеристикой клетки): (+) (-) (П-^ где (+) и (—) относятся к клеткам, помеченным знаками «+» и «—» соответственно. В силу единственности цикла для каждой испытуемой клетки оценку оу действительно можно рассматривать как характеристику именно этой клетки (а не конкретного цикла). Эта величина показывает, как изменится стоимость транспортировки ресурса в случае перемещения по циклу единицы ресурса. Полное изменение стоимости транспортировки ресурса (то есть изменение значения целевой функции) задается величиной Л^=ХтнАу- (15.7) На этой формуле основан также один из видов контроля значений целевой функции промежуточных решений транспортной задачи: 2'= 20 + А2 или 2/=ЪСуХу, где 2, '— значение целевой функции улучшенного плана, 2! 0 — значение целевой функции предыдущего плана. Значения Т, вычисленные по двум разным формулам, должны совпадать. Таким образом, в задачах на минимизацию положительное чначение ау означает, что соответствующее преобразование решения невыгодно, а отрицательное — что оно выгодно. Нетрудно видеть, что оценки а у незанятых клеток (соответствующие переменные ху не входят в базис) играют роль элементов индексной строки в симплекс-методе. По их знакам можно установить, достигнуто оптимальное решение или нет. Для примеров циклов, приведенных в таблицах 88 и 89, оценки свободных клеток составляют: а35 = С35 + С, 3 - С15 - С33 = -45 < 0; °" 25 = С25 + С\Ъ + С31 - С*15 - С33 ~ С21 = -5 < 0. Таким образом, преобразование решения с помощью обоих циклов выгодно. Рассмотренные особенности циклического преобразования решений транспортной задачи и лежат в основе распределитель- ного метода. Суть его заключается в построении на каждом шаге циклов для всех свободных клеток, вычислении оценок а, у, выборе одной из клеток с отрицательной оценкой (для задач на минимизацию) и преобразовании решения. Этот процесс повторяется до тех пор, пока оценки всех свободных клеток не станут неотрицательными. Распределительный метод — весьма трудоемкая процедура, поскольку требует построения циклов для всех свободных клеток. Существенно меньше вычислений требует метод потенциалов, позволяющий в результате небольшого числа операций сразу (без построения циклов) определить оценки свободных клеток. Полное обоснование этого метода потенциалов может быть получено в рамках общего метода решения задач линейного программирования — симплекс-метода и теории двойственности таких задач. Мы воспользуемся более простой, но также достаточно строгой схемой (Вентцель Е. С. Исследование операций. — М.: «Советское радио», 1972. — С. 99), хотя и опустим доказательство промежуточных теорем. Полезность схемы заключается в том, что она позволяет естественным образом выйти на экономическую интерпретацию потенциалов. Введем новые характеристики поставщиков и потребителей транспортируемого ресурса — потенциалы ос, - и р, соответственно. Придадим этим характеристикам следующий экономический смысл: при заданном решении транспортной задачи будем полагать, что: а, —это взятые с обратным знаком средние расходы /-го поставщика на транспортировку единицы продукции к потребителям; Ру- — это средние расходы /-го потребителя на доставку единицы продукции. Термин «средние» предполагает, что, например, значение а, характеризует всю продукцию /-го поставщика (предназначенную в общем случае для нескольких потребителей). При принятых предположениях- значение целевой функции должно быть равно: п т 2=Ъ$РгЪщА- (15.8) у' = 1 1 = 1 ' С другой стороны, по определению, должно быть: п т ^=Е ЪСуХу. (15.9) У=1/=1 Для всех занятых клеток (включая условно занятые, в которых ху = 0) положим: Сй—ру-а, -, (15.10) то есть потребуем, чтобы сумма средних расходов г'-го поставщика и /-го потребителя на транспортировку единицы продукции была равна заданной цене транспортировки Су. В (15.10) учитывается, что, по определению, величина а, - задает расходы поставщика с обратным знаком. Используя исходные ограничения на переменные Хц, можно показать, что подстановка (15.10) в (15.9) приводит к (15.8). Рассматривая равенства типа (15.10) как уравнения относительно неизвестных а, - и р/ получим (т+п—1) уравнений (по числу занятых клеток). Поскольку общее число неизвестных равно (т + п), то дополним эту систему уравнений еще одним: а! = сопз1, (15.11) где константа может быть выбрана произвольно. Обычно, чтобы обеспечить положительность потенциалов а, - и (3/, полагают: «^Ъ (15.12) Можно доказать, что введенные выше оценки свободных клеток могут быть рассчитаны по формуле ау=Су + а, -^. (15.13) Для иллюстрации покажем это на примере таблицы 88 для клетки (3, 5). В соответствии с первоначальным определением оценок (15.6) и соотношением (15.10), учитывая построенный цикл, запишем: СТ35 = С35 + С13 - С15 - С33 = С35 + (р3 - С^) - ((35 - «1) ~ (Рз ~ «3) = = С35 + Рз - < Х1 - Р5 + ос! - Рз + а3 = С35 + а3 - р5, го есть приходим к формуле типа (15.13). Таким образом, существует возможность определить оценки о, -,, минуя построение циклов для всех свободных клеток, что существенно упрощает процедуру получения оптимального решения. Заметим, что потенциалы, по определению, зависят от расположения занятых клеток и не зависят от величины стоящих в тгих клетках ресурсов. С учетом изложенного опишем оставшиеся этапы получения оптимального решения.
|