Содержание Введение ..................................................................... Error! Bookmark not defined. 1 Теоретические основы метода ............................................................................ 5 2 Вырожденность .................................................................................................. 14 3 Метод потенциалов и метод последовательного улучшения планаError! Bookma 4 Алгорит метода потенциалов ............................ Error! Bookmark not defined. 5 Руководство пользователя ................................. Error! Bookmark not defined. Заключение ................................................................ Error! Bookmark not defined. Список литературы .................................................................................................. 33 Введение Транспортная задача линейного программирования получила в настоящее время широкое распространение в теоретических обработках и практическом применении на транспорте и в промышленности. Особенно важное значение она имеет в деле рационализации постановок важнейших видов промышленной и сельскохозяйственной продукции, а также оптимального планирования грузопотоков и работы различных видов транспорта. Кроме того, к задачам транспортного типа сводятся многие другие задачи линейного программирования - задачи о назначениях, сетевые, календарного планирования. Формальным признаком транспортной задачи является то, что каждая переменная входит лишь в два ограничения, причем с коэффициентами, равными единице. Если при этом критерий оптимальности (сумма расходов, общий пробег) прямо пропорционален значениям переменных (транспортных потоков), возникает линейная транспортная задача. В других случаях рассматривается нелинейная транспортная задача, решаемая другими методами. Метод потенциалов – первый точный метод решения транспортной задачи – был предложен в 1949 г. Л.В. Канторовичем и М. К. Гавуриным. По существу этот метод является детализацией метода последовательного улучшения плана применительно к транспортной задаче. Однако он был изложен вне связи с общими методами линейного программирования. Несколько позднее аналогичный алгоритм был разработан Данцигом, который исходил из общих американской литературе идей линейного программирования. В метод потенциалов принято называть модифицированным распределительным методом. Метод потенциалов позволяет, отправляясь от некоторого опорного плана перевозок, построить решение транспортной задачи за конечное число итераций (шагов). Цель курсовой работы: Освоить математическую постановку решения транспортной задачи методом потенциалов. 1. Теоретические основы метода Метод потенциалов позволяет, отправляясь от некоторого опорного плана перевозок, построить решение транспортной задачи за конечное число итераций (шагов). Общая схема отдельной итерации состоит в следующем. По данному опорному плану каждому пункту задачи сопоставляется число, называемое его предварительным потенциалом. Предварительные потенциалы выбираются так, чтобы их разность для любой пары пунктов Ai , Bj , связанных основной коммуникацией, была равна cij – стоимости перевозок между этими пунктами единицы продукта. Если разность предварительных потенциалов для каждой пары пунктов Ai , B j не превосходит cij , то данный план перевозок – решение задачи, а сами предварительные потенциалы – потенциалы задачи (или оценки ее условий). В противном случае указывается способ получения нового опорного плана, связанного с меньшими транспортными издержками. Через конечное число итераций процесс решения завершается построением оптимального плана и системы потенциалов задачи. Перед тем как начать детальное рассмотрение метода потенциалов, естественно вернуться к понятию потенциала. Пусть Õ xij m, n - произвольный план задачи T. Элемент матрицы транспортных издержек cij будем называть Х- существенным, если xij 0 , т.е. если Ai B j - основная коммуникация плана Х. Функция W, определенная на совокупности пунктов производства и потребления задачи T, была названа вектором потенциалов или просто потенциалом данной задачи, если W Bi W Ai cij , i 1, 2, , m, j 1, 2, , n, W Bi W Ai cij (1.1) (1.2) для всех Х-существенных элементов некоторого плана X. Будем называть план X потенциальным, если существует потенциал задачи T, связанный с этим планом условием (1.2). Между оптимальностью и потенциальностью планов задачи T существует тесная связь. Для оптимальности плана X необходима и достаточна его потенциальность. Заметим, что потенциал вовсе не следует считать зависящим от конкретного оптимального плана задачи T. Каждый потенциал задачи T связан условием (1.2) с любым ее оптимальным планом (естественно, что это утверждение имеет нетривиальный смысл лишь для транспортных задач с неединственным решением). Поэтому функция W может быть определена еще и так: W – потенциал задачи T, если W Bi W Ai cij , i 1, 2, , m, j 1, 2, , n, причем для тех cij , которые являются Х-существенными элементами некоторого оптимального плана X этой задачи, соответствующие неравенства переходят в равенства. Итак, функция W определяется множеством оптимальных планов данной задачи. Напомним, что значения потенциала W в пунктах задачи T были названы потенциалами этих пунктов. Выбор этого термина можно оправдать следующей аналогией. Представим себе, что некую единичную массу необходимо перенести из точки Ai в точку B j . Величина работы, которую необходимо совершить при переносе массы из Ak в Bl k 1, 2, , m, l 1, 2, , n , задана и равна ckl (работа, совершаемая при движении от Bl к Ak , предполагается равной - ckl ). Условимся, что непосредственное движение от Ak к Bl (или наоборот) возможно только в случае, если Ak Bl - допустимая коммуникация задачи T. Пусть движение от Ai к B j запланировано следующим образом: Ai Bi1 Ai1 Bi2 Ais B j . Тогда производимая при этом работа A вычисляется по формуле A cij1 ci1 j1 ci1 j2 cis js cis j . Используя теперь свойства потенциала задачи T, имеем A W ( B j1 ) W ( Ai ) W ( B j1 ) W ( Ai1 ) W ( B js ) W ( Ais ) W ( B j ) W ( Ais ) W ( B j ) W ( Ai ). Итак, разность W ( B j ) W ( A i ) совпадает с количеством работы, необходимым для переноса единичной массы из Ai в B j . При этом выполняется основное свойство движения в потенциальном поле: величина работы, производимой при перемещении некоторой массы, не зависит от формы возможного пути, связывающего рассматриваемые точки, а определяется лишь самими точками. Заметим, что в силу (1.1) непосредственное движение от Ak в Bl всегда связано с неменьшей работой по сравнению с движением между этими точками по любому из допустимых маршрутов. Метод потенциалов состоит из конечного числа однотипных итераций. Каждая итерация разбивается на два этапа. На первом этапе план, полученный в оптимальность. результате Если план предыдущих итераций, проверяется оказывается решением задачи, на процесс заканчивается. Если же это не так, осуществляется переход ко второму этапу. На втором этапе строится новый план перевозок, который в невырожденном случае связан с меньшими транспортными издержками. Опишем отдельную итерацию метода, ограничившись вначале невырожденным случаем. Итак, допустим, что уже проведено k итераций метода потенциалов и в результате получен опорный план X k xi(kj ) m, n . Разберем подробно очередную, (k 1) - ю итерацию. Этап 1. На этом этапе производится исследование плана X k на оптимальность. Обозначим через Rk совокупность X k - существующих элементов матрицы С, т.е. таких cij , которым соответствуют xi(kj ) 0 , и определим величины u (ik ) , i 1, 2, , m, v (jk ) , j 1, 2, , n (предварительные потенциалы), удовлетворяющие системе уравнений v (kj ) u (ik ) cij для всех cij Rk . (1.3) В силу предположения о невырожденности исследуемой задачи любые два пункта Ai , B j можно соединить маршрутом, состоящим из основных коммуникаций плана X k . Далее, из опорности плана X k вытекает, что отмеченный маршрут строится однозначно. Поэтому решение системы (1.3) осуществляется предельно просто. Зададимся значением одной из неизвестных систем (1.3), например положим u 1( k ) 0 . Допустим, что пункт A1 снабжает в соответствии с планом X k пункты B j1 , B j2 , , B js . Тогда из соответствующих уравнений системы (1.3) определяем v (jk ) c1 j , 1, 2, , s . Далее аналогичным способом определяем значения u (ki ) для тех Ai , которые снабжают один из пунктов B j , 1, 2, , s . Например, если Ait снабжает пункт B j1 , то ui( k ) v (jk ) cit j1 . t 1 Затем определяются v (kj ) для B j , снабжающихся за счет пунктов Ai с уже вычисленными значениями ) u (k i , и т.д. Таким образом, задавшись произвольными значениями u (kt ) , мы легко определим u (ki ) , v (ki ) для всех пунктов Ai , B j , которые можно соединить с A1 , маршрутами из основных коммуникаций плана X k . Но, как было отмечено, подобным маршрутом могут быть соединены любые два пункта рассматриваемой задачи и притом единственным образом. Следовательно, при заданном u 1(k ) величины u (ki ) , v (ki ) определяются однозначно для всех пунктов задачи T. Нетрудно усмотреть, что если бы мы задались произвольным значением любой из величин u (ki ) или ) (k ) v (ki ) , то получившиеся в результате числа u (ik ) , v (jk ) отличались бы от u (k i , vi , вычисленных в предположении u 1( k ) 0 , на некоторую постоянную. Отсюда, в частности, следует, что величина v (ki ) u (ki ) определяется однозначно для любых i, j. Если предварительные потенциалы u (ki ) , v (ki ) таковы, что для любой пары i, j имеет место неравенство v (ki ) u (ik ) ñij , то функция W, определяемая условиями W ( Ai ) u (ik ) , W ( B j ) v (jk ) - потенциал задачи T и, следовательно, X k , будучи потенциальным, является вместе с тем и оптимальным планом исследуемой задачи. Если же для некоторых индексов i, j v (ki ) u (ik ) ñij , то план X k не оптимален. Необходим переход к этапу 2, на котором этот план будет улучшен. Этап 2. Вычислим уклонения ) ñ(ikj1) cij ( v (ki ) u (k i ). По условию среди чисел ñ(ikj1) имеются отрицательные. Определим пару индексов i0 , j0 из условия ñ(ik j1) min c (ikj1) . 0 0 i, j Соединим пункты Ai0 , B j0 маршрутом из основных коммуникаций плана X k . Пусть построенный маршрут проходит последовательно через пункты Ai0 , B j1 , Ai2 , B j2 , , B js1 , Ais , B j0 . Рассмотрим перевозки по тем коммуникациям маршрута, которые при движении от Ai0 к B j0 проводятся в положительном направлении, т.е. от пункта производства к пункту потребления. Минимальную среди них обозначим через k . Таким образом, k min xi( kj) 1 s i0 i1 , j0 j s . Введем в план X k следующие изменения: величины перевозок из Ai в B j , 1, 2, , s 1 , увеличим на k . Кроме того введем новую перевозку между пунктами перевозок Ai0 , B j0 , равную является планом k . Очевидно, полученная совокупность исследуемой транспортной задачи. Действительно, все перевозки этой совокупности в силу определения числа k неотрицательны. Далее, для любого пункта задачи, через который проходит построенный маршрут, количество вывозимого (для пунктов производства) и ввозимого (для пунктов потребления) продукта не меняется. Для того чтобы убедиться в этом, рассмотрим один из пунктов Ai , 1, 2, , s . В соответствии с новой совокупностью перевозок количества продуктов, перевозимого из Ai в B j , уменьшается на k и одновременно на эту же величину увеличивается грузопоток из Ai в B j 1 . Подобные же рассуждения показывают, что общее количество продукта, ввозимого в любой из пунктов B j , также не меняется. Что касается остальных пунктов задачи, то условия транспортной задачи для них, естественно, не нарушатся, так как ни одна из перевозок, связанных с этими пунктами, не изменилась. Покажем, что реализация нового плана X k 1 приводит к меньшим транспортным расходам по сравнению с планом X k . Действительно, m n Lk 1 i 1 j 1 где под которые cij xij( k 1) (k ) I cij x i j s ci i 1 x (k ) i j k c s 1 1 i 1 j x (k ) i 1 j k ci0 j0 k , I понимается суммирование по перевозкам тех коммуникаций, не вошли в построенный маршрут. Совершая очевидные преобразования, получаем Lk 1 Lk k ci0 j0 ci0 j1 ci2 j1 cis js 1 cis j0 . Вспомним, что все элементы, стоящие в квадратной скобке, кроме ñi0 j0 , являются X k - существенными. Поэтому ñi j v (jk ) u (ik ) , ci 1 j v (jk ) ui( k ) . 1 Учитывая далее отрицательность уклонения ci(0kj01) и положительность k , имеем cij xij(k 1) Lk 1 Lk k ci j m n 0 0 i 1 j 1 v (jk ) ui( k ) v (jk ) ui( k ) v (jk ) ui( k ) 1 0 Lk k ci0 j0 v (jk ) ui( k ) Lk 1 0 s 1 ( k 1) k ci j 0 0 s 0 s Lk . Итак, составленный новый план перевозок X k 1 , соответствующий меньшему значению линейной формы транспортной задачи. Этап 2, а вместе с ним и k 1-я итерация закончены. Покажем, что вновь составленный план X k 1 обладает свойством опорности. Действительно, если это не так, то из основных коммуникаций X k 1 можно составить замкнутый маршрут . Очевидно маршрут должен содержать коммуникацию Ai0 B j (В противном случае план X k оказался бы не опорным). Коммуникации замкнутого маршрута , за исключением Ai0 B j0 , являются основными коммуникациями плана X k . Поскольку из таких коммуникаций можно составить единственный маршрут, соединяющий пункты Ai0 , B j0 (план X k - опорный!), приходим к выводу, что состоит из Ai0 B j0 и маршрута, построенного в процессе улучшения плана X k . Но в силу определения числа k одна из перевозок xi( kj1) , 1, 2, , s , xi( k 1j) , 1, 2, , s 1 , 1 (1.4) плана X k 1 равна нулю, и, следовательно, соответствующая коммуникация не будет основной для плана X k 1 . Итак, содержит по меньшей мере одну неосновную коммуникацию плана X k 1 . Полученное противоречие указывает на опорность плана X k 1 . Заметим, что в силу предположения о невырожденности только одна перевозка последовательности (1.4) равна нулю. Система основных коммуникаций плана X k путем замены одной коммуникации. Итак, отправляясь в невырожденном от некоторого случае метод исходного потенциалов опорного плана, позволяет, построить последовательность опорных планов задачи Т, которым отвечают монотонно убывающие значения транспортных расходов. Поскольку число таких планов заведомо конечно, то через несколько итераций продолжение последовательности окажется невозможным из-за того, что на первом этапе очередной итерации выявится оптимальность соответствующего плана. Конечность метода потенциалов для невырожденного случая доказана. 2. Вырожденность. До сих пор исследуемая задача T предполагалась невырожденной. В этом пункте мы освободимся от этого ограничительного допущения, распространив метод потенциалов на вырожденные транспортные задачи. Вырожденные опорные планы задачи Т содержат меньше чем n+ m – 1 положительных перевозок. Поэтому среди базисных перевозок вырожденного плана имеются нулевые перевозки. Это обстоятельство может в свою очередь привести к тому, что при переходе по методу потенциалов к следующему плану величина k окажется равной нулю и, следовательно, суммарные транспортные издержки не уменьшатся. Таким образом, монотонное убывание транспортных расходов может быть нарушено и для вывода о конечности метода не будет достаточных оснований. При построении базиса нового плана нам, как и в случае общей задачи линейного программирования, необходимо знать ответ на два вопроса: какой вектор необходимо ввести в старый базис, какой вектор (один!) необходимо из него вывести? При ответе на первый вопрос случай вырожденности не приводит ни к каким дополнительным трудностям. Что касается второго вопроса, то критерий, который использовался для ответа на него в невырожденном случае: нулевыми могут стать сразу несколько перевозок, отвечающих нечетным коммуникациям маршрута этапа 2. Можно было бы, конечно, выводить из старого базиса произвольный вектор коммуникаций из числа удовлетворяющих указанному критерию. Однако при таком подходе не исключен возврат через несколько итераций к старому базису, т.е. появляется возможность зацикливания. Необходимо иметь дополнительное правило исключения векторов из старых базисов, которое во всех случая застраховало бы нас от возможности зацикливания. Выводом этого правила мы сейчас и займемся. Рассмотрим произвольную транспортную задачу Т. Свяжем с ней семейство транспортных T , 0 , задач объемы производства и потребления которых выражаются через соответствующие величины задачи Т по формулам ai ai , jn b j , b j b j m , j n. Правило выбора перевозки, подлежащей исключению из числа базисных, основывается на двух утверждениях, формулировки которых приводятся ниже. . Существует такое число 0 , что при любом , удовлетворяющем условию 0 , (2.1) задача T обладает свойством невырожденности. . Существует такое число 0, что при любых и , удовлетворяющих условиям 0 , 0 (2.2) справедливы следующие утверждения: а) если X xij xij aij X xij xij aij - опорный план задачи T , то - опорный план задачи T ; б) если X - опорное решение задачи T , то X - оптимальный опорный план задачи T . Здесь под xij понимается матрица, составленная из нулей и коэффициентов разложения вектора P a1 , a2 , , am , b1 , b2 , , bn T по базису плана X . Матрица a ij строится аналогичным образом, исходя из вектора T Q 1, 1, , 1, 0, 0, , m . m n Доказывать эти утверждения мы не будем. Допустим теперь, что нам необходимо найти решение некоторой транспортной задачи T (быть может вырожденной!). Отмеченные свойства транспортных задач T при достаточно малых (точнее при , удовлетворяющих условиям (2.1) и (2.2)) позволяют применить для этой цели алгоритм метода потенциалов. В самом деле, будем решать вместо задачи T вспомогательную задачу T , предполагая достаточно малой величиной. Поясним последнее допущение. При решении задачи методом потенциалов необходимо сравнивать xi1 j1 xi1 j1 i1 j1 , между собой величины перевозок. Пусть xi2 j2 xi2 j2 i2 j2 - любая пара перевозок задачи T . Будем считать число удовлетворяющим условиям (2.1) и (2.2) и настолько малым, что неравенство xi1 j1 xi2 j2 оказывается эквивалентным соблюдению одного из следующих соотношений: либо xi1 j1 xi2 j2 , либо xi1 j1 xi2 j2 , но i1 j1 i2 j2 ; T при достаточно малом - невырожденная задача (утверждение . ). Поэтому метод потенциалов через конечное число итераций приведет к ее решению. Полагая в полученном оптимальном плане 0 , приходим к искомому оптимальному плану задачи T (утверждение для 0 ). В соответствии с утверждением любой план задачи T 0 при 0 , удовлетворяющим условию (2.2), порождает семейство планов задач T , где 0 0 . Все эти планы могут быть единственным образом представлены в виде xij xij ij , где xij , ij не зависят от . Это обстоятельство позволяет опускать при вычислении оптимального плана задачи T величину и оперировать лишь с составляющими плана X : и ij . X xij Введем предварительно несколько определений. Пару матриц X xij m,n , ij m,n назовем обобщенным планом задачи T, если при всех достаточно малых X X является планом задачи T . Обобщенный план удобно записывать в виде одной матрицы x11 / 11 X / xm1 / m1 x12 / 12 x1n / 1n . xm 2 / m2 xmn / mn Элементы матрицы X / будем называть обобщенными перевозками. Между двумя обобщенными перевозками введем соотношение «больше, меньше», полагая xi1 j1 / i1 j1 xi2 j2 / i2 j2 , если либо xi1 j1 xi2 j2 , либо xi1 j1 xi2 j2 , но i1 j1 i2 j2 . Очевидно, что xi1 j1 / i1 j1 xi2 j2 / i2 j2 условие эквивалентно равенствам xi1 j1 xi2 j2 , i1 j1 i2 j2 . В частности, обобщенная перевозка xi либо xi j 0 , либо xi j 0 , однако j / i считается положительной, если j . i j 0 Пусть X 1 / 1 , X 2 / 2 - два обобщенных плана задачи T. Будем говорить, что первый план соответствует меньшим транспортным издержкам по сравнению со вторым, если либо m n cij xij(1) i 1 j 1 m n cij xij(2) , i 1 j 1 либо m n cij xij(1) i 1 j 1 m n cij xij(2) , i 1 j 1 но m n cij ij(1) i 1 j 1 Обобщенным соответствует решением задачи минимальным T m n cij ij(2) . i 1 j 1 считается транспортным такой план, издержкам. который Вычисление оптимального обобщенного плана задачи T, первая составляющая которого является искомым решением этой задачи, можно привести, пользуясь методом потенциалов, если все встречающиеся при этом понятия (такие, как план, положительная перевозка и т. д.) рассматривать в обобщенном смысле. 3.Метод потенциалов и метод последовательного улучшения плана Пусть X xij - некоторый опорный план задачи T. Обозначим через K x совокупность векторов Pij , отвечающих основным коммуникациям плана X . Наши рассуждения будут вестись в предположении невырожденности задачи T. Поэтому K x состоит из m+n-1 векторов и является базисом опорного плана X . На первом этапе метода потенциалов вычисляются предварительные потенциалы u1 , u 2 , , u m , v1 , v2 , , vn , удовлетворяющие системе уравнений v j ui cij для i, j E x . (3.1) (Здесь E x - множество пар индексов векторов, составляющих базис K x плана X .) Переименуем векторы базиса K x и обозначим l-й вектор через Al a1l , a2l , , amn , l . Учитывая, что все компоненты вектора Al , кроме двух, равных единице, равны нулю, можно переписать систему (3.1) в эквивалентном виде n m At , M ail i i 1 Здесь cl , l 1, 2, , n m 1 . M 1 , 2 , , mn u1 , u 2 , , u m , v1 , v2 , , vn ; cl - стоимость единичной перевозки по коммуникации, соответствующей вектору Al . Таким образом, предварительные потенциалы составляют вектор оценок условий задачи относительно данного базиса ,который определяется во втором алгоритме метода улучшения плана. Если для любого вектора условий Pij Pij , M v j ui cij , То в соответствии с критерием оптимальности метода улучшения плана данный план X - решение задачи. Это же заключение следует из критерия оптимальности, используемого в методе потенциалов. Предположим, что при некоторых i,j v j ui cij . Тогда в соответствии с методом последовательного улучшения плана выбирается такая пара индексов i0 , j0 , на которой величина cij v j u i (оценка вектора условий Pij ) достигает минимума, и осуществляется переход к новому базису путем замены одного из векторов системы K x вектором Pi0 j0 . Та же операция осуществляется и в методе потенциалов (этап 2). Переход к новому базису связан с разложением вводимого вектора (вектора Pij ) по векторам базиса Kx , что эквивалентно решению системы линейных уравнений. Благодаря простой структуре векторов Pij решение этой системы существенно облегчается по сравнению с общим случаем. Согласно методу улучшения плана после разложения вводимого вектора (вектора Ak ) по векторам старого базиса разыскивается величина xio . xik 0 xik min (3.2) Здесь xio xik - коэффициент при i-м векторе базиса в разложении вектора ограничений (вводимого вектора) по векторам старого базиса; минимум берется по тем индексам i, для которых xik 0 . Если x ro , то из базиса x rk удаляется его r-й вектор. Базисные компоненты нового плана определяются по формуле xio xio xik , i r , , i r. (3.3) Для транспортной задачи коэффициенты xik равны нулю или 1 . При этом xik 1 1 в том и только в том случае, если i-й вектор базиса Kx соответствует коммуникации, которая занимает нечетную (четную) позицию в построенном маршруте. Поэтому формула (3.2) в случае транспортной задачи может быть заменена правилом: - минимальная нечетная перевозка маршрута, связывающего пункты Ai0 и B j0 . Это правило и используется в методе потенциалов. Формула (3.3) применительно к транспортной задаче превращается в правило изменения плана перевозок, употребляемое в методе потенциалов: перевозки, запланированные по нечетным (четным) коммуникациям, уменьшаются (увеличиваются) на величину , перевозка между Ai0 и B j0 полагается равной , остальные перевозки сохраняют свои значения. Итак, метод потенциалов является детализацией второго алгоритма метода улучшения плана, учитывающей специфику транспортной задачи. Отличие состоит только в том, что на каждом шаге метода потенциалов все параметры задачи (план, предварительные потенциалы, коэффициенты разложения вводимого вектора коммуникаций) вычисляются не по рекуррентным формулам, как в методе улучшения плана, а непосредственно. Это оказывается более выгодным из-за простоты условий задачи T, позволяющей легко решать соответствующие системы линейных уравнений. 4. Алгоритм метода потенциалов Алгоритм метода потенциалов складывается из предварительного этапа и конечного числа однотипных итераций. На предварительном этапе строится исходный опорный план X 0 задачи T и составляется матрица Ñ1 cij v (0j ) u (i0) m, n , где v (0j ) и u (i0) - предварительные потенциалы, отвечающие исходному плану X0. На каждой итерации рассматриваются и преобразуются две матрицы X k x (ikj) m, n и Ck c (ikj) m, n . Матрица X k представляет собой опорный план задачи T, построенный в результате k-й итерации. Матрица C k составлена из оценок векторов Pij относительно базиса плана X k 1 , т.е. Ck cij v (kj 1) u (ik 1) m, n где v (kj 1) и u (ik 1) - предварительные потенциалы, отвечающие плану X k 1 . Вначале будем предполагать задачу T невырожденной. Необходимые замечания относительно вырожденного случая будут сделаны ниже. Предварительный этап. С помощью метода северо-западного угла или метода минимального элемента определяется исходный опорный план X 0 исследуемой задачи T. Далее, согласно правилам, изложенным при описании 1-го этапа метода потенциалов, i 1, 2, , m, j 1, 2, , n , и вычисляем величины u (i0) , v (0j ) , составляем матрицу Ñ1 cij v (0j ) u (i0) m, n . Если все элементы C1 неотрицательны, то X 0 - решение задачи T. В противном случае переходим ко второму этапу, описание которго приводится ниже. Процесс вычисления предварительных потенциалов формализуется следующим образом. Пусть J 1 - номера тех столбцов матрицы С, которые содержат X 0 -существенные элементы в 1-й строке; I1 номера строк матрицы С, которые содержат X 0 -существенные элементы в столбцах с номерами J 1 . Если множества J и I для 1, 2, , r уже определены, то J r 1 объединяет номера тех столбцов матрицы С, не принадлежащих J r , которые содержат X 0 -существенные элементы в строках с номерами I r , а I r 1 состоит из номеров строк этой матрицы, не включенных в I r и содержащих X 0 -существенные элементы в столбцах с номерами J r 1 . Образование множеств J и I производится до тех пор, пока процесс не прерывается получением пустого множества. Если i I , то под j i будем понимать такой элемент множества J , что ñij (i ) - X 0 -существенный элемент С. Аналогично, для j J определим i j как элемент I 1 , при котором ñi ( j ) j является X 0 -существенным элементом С. Из опорности плана X 0 следует, что множества J , равно как и множества I , не пересекаются. Невырожденность плана X 0 приводит к тому, что объединение всех множеств J есть (1, 2, , n) , а объединение всех множеств I составляет (2, 3, , m) . Полагаем u (10) 0 и вычисляем v (0j ) ñij u (10) cij для j J1 . Далее определяем u (i0) v (j0(i)) ñij (i ) для i I1 . Аналогично вычисляются u (i0) для i I 2 и v (0j ) для j J 2 и т.д. Таким образом, последовательно определяются v (0j ) для j J1 , u (i0) для i I 2 , , v (0j ) для j J r 1 , u (i0) для i I r и т.д. до получения значений всех предварительных потенциалов. Каждая итерация алгоритмов состоит из двух этапов. Предположим, что уже приведено k итераций, в результате которых получен план X k и матрица Ck cij v (kj 1) u (ik 1) m, n . Целью k 1 - й итерации является формирование матрицы Ck 1 и либо установление оптимальности плана X k , либо построение нового, более экономичного плана X k 1 . Рассмотрим каждый из этапов k 1 - й итерации. Этап 1. На этапе 1 вычисляется матрица Ck 1 , необходимая для проверки плана X k на оптимальность. Процесс преобразования матрицы C k в матрицу Ck 1 состоит в следующем. Выбираем отрицательный X k (k ) существенный элемент матрицы C k . Пусть это ñ k 1 (такой элемент обязательно существует и единствен, остальные Xk - существенные элементы C k - нули). Выделим содержащую его строку и через G1 обозначим совокупность X k - существенных элементов этой строки, не совпадающих с k 1 . Затем выделим столбцы C k , содержащие элемент G1 и через G2 обозначим множество X k - существенных элементов, лежащих в этих столбцах и отличных от элементов G1 . Далее выделяются строки C k , содержащие элемент G2 , и аналогично предыдущему вводится множество G3 . Процесс выделения строк и столбцов матрицы C k продолжается до тех пор, пока очередное множество G , скажем Gl , не окажется пустым. Заметим, что, поскольку каждая строка (каждый столбец) не может быть выделена (выделен) более одного раза ( X k - опорный план!), l n m 1. Закончив выделение линий (строк или столбцов) матрицы Ck , приступим к построению матрицы Ck 1 . Для этого величину k 1 прибавим ко всем выделенным столбцам и вычтем из всех выделенных строк матрицы C k . Очевидно, что матрица, полученная после указанных преобразований, имеет вид cij i j m, n . Кроме того, все ее X k - существенные элементы – нули. Действительно, (k ) после вычитания k 1 из - й строки C k элемент ñ обращается в нуль, а все элементы G1 становятся равными - k 1 . После прибавления k 1 к столбцам элементов G1 эти элементы обращаются в нуль, а элементы G2 принимают значения k 1 . Заметим, что поскольку линии C k отмечаются не более одного раза, элементы G1 при дальнейших преобразованиях остаются равными нулю. Продолжая вычитать (из выделенных строк) и прибавлять (к выделенным столбцам) матрицы Ck величину k 1 , обращаем последовательно в нуль элементы G2 , G3 и т.д. После l – 1 шагов все ненулевые X k - существенные элементы C k оказываются принадлежащими Gl 1 . Пусть l – нечетное (четное) число. Поскольку Gl - пустое множество, все X k - существенные элементы матрицы, полученной после вычитания (прибавления) величины k 1 из строк (к столбцам) элементов Gl 1 , i , j , i 1, 2, , m, j 1, 2, , n , равны нулю. Итак, удовлетворяют величины системе (1.3), соответствующей плану X k . Следовательно, i u (ik ) , j v (jk ) - предварительные потенциалы, соответствующие плану X k , а Ñk 1 cij i j m, n cij v ( kj ) u (ik ) m, n . Как нетрудно заметить, описанное правило отыскания предварительных потенциалов u (ki ) , ) или, что то же самое, матрицы Ñk 1 , базируется на v (k j определении разностей u (ik ) u (ik 1) , v (jk ) v (jk 1) . Предварительные потенциалы, отвечающие плану X k , можно вычислять и непосредственно, решая систему (1.3). Формализация процесса решения этой системы была приведена при описании предварительно этапа (применительно к исходному плану X 0 ). Если все элементы матрицы Ñk 1 неотрицательны, X k - искомое решение. Если же среди величин Ñ (ik j 1) имеются отрицательные, необходим переход к этапу 2. Этап 2. На этапе 2 производится улучшение плана X k . Основой этапа является процесс составления цепочки из положительных элементов этого плана. Выберем наименьший элемент матрицы Ñk 1 , расположенный, скажем, на пересечении i0 - й строки и j 0 - го столбца, и обозначим его через k 1 . По условию k 1 0 . Переходим к поиску цепочки из положительных элементов матрицы X k , замыкающейся на элементе xi(0kj)0 (очевидно, xi(0kj)0 =0). Соединим стрелками xi0 j0 со всеми положительными элементами его строки, совокупность которых обозначим через G1 . Затем каждый из элементов G1 соединим стрелками со всеми положительными элементами, расположенными в его столбце. Совокупность всех таких элементов обозначим через G 2 . Процесс образования множеств Gk продолжается до тех пор, пока при некотором p (p – нечетное число) среди столбцов, содержащих элементы G p , обнаружится столбец с номером j 0 . Заметим, что в силу опорности плана X k множества G , G , , не пересекаются, ибо в противном случае существовала бы замкнутая цепочка из ненулевых перевозок плана X k . Это обстоятельство, а также то, что любые два пункта невырожденной задачи T могут быть соединены коммуникациями с ненулевыми перевозками, введенного выше числа служит p n m 1. доказательством существования Теперь уже нетрудно образовать искомую цепочку. От элемента xi(0kj)0 перейдем по столбцу к элементу xi( kj) G p . От xi( kj) 0 0 s 0 по строке перейдем к соединенному с ним стрелкой элементу xi(skj)s G p1 и т.д. Двигаясь таким образом вдоль намеченных стрелок по строкам и столбцам матрицы Xk , получим в конце концов последовательность положительных элементов этой матрицы вида xi( kj) , xi( kj) , , xi( kj) , xi( kj) 0 1 1 1 s s s 0 2s 1 p , (4.1) образующую цепочку, которая замыкается на элементе xi(0kj)0 . Построение цепочки (4.1) можно осуществить также с помощью метода вычеркивания строк. Для этого вводится множество Г, состоящее из положительных элементов матрицы X k и ее элемента xi(0kj)0 . Из матрицы Xk вычеркиваются строки, содержащие менее двух элементов множества Г. Затем из оставшейся части X k вычеркиваются столбцы, в которых содержится менее двух элементов Г. После этого снова возвращаются к строкам, затем к столбцам и т.д. Элементы матрицы X k , оставшиеся после процесса вычеркивания, составляют искомую цепочку. Построив цепочку (4.1), легко сформировать новый план X k 1 . Обозначим совокупность пар индексов i , j 1 , 0, 1, , s j s 1 j0 через I1 , а множество пар индексов вида i , j , 1, 2, , s через I 2 . Положим k 1 min xi( k j) 0 s 1 . (4.2) Новый план X k 1 определяется согласно правилу x (ikj1) i , j i0 , j 0 , k 1 , (k ) x ij k 1 , i, j I1 , (k ) x ij k 1 , i, j I 2 , (k ) x ij â îñòàëüíûõ ñëó÷àÿõ. (4.3) Другими словами, из нечетных элементов цепочки (4.1) вычитается k 1 , к четным элементам цепочки и к элементу xi(0kj)0 величина k 1 прибавляется, остальные элементы плана X k сохраняют свои прежние значения. Итак, в результате k 1 - й итерации мы перешли от плана X k и матрицы оценок Ck cij v (kj 1) u (ik 1) m, n к улучшенному плану X k 1 и к новой матрице Ck 1 cij v ( kj ) u (ik ) Из способа построения плана X k 1 m, n . следует, что среди существенных элементов Ck 1 лишь один ñi(0kj01) не равен нулю. Блок-схема алгоритма метода потенциалов. Предварительный этап Составление матриц X0 и С1 Проверка X0 на оптимальность да X0 - решение Стоп нет Построение X1 Преобразование Сk в Сk+1 Этап 1 Проверка Xk на оптимальность нет Этап 2 Построение цепочки из базисных элементов. Формирование Xk+1 Xk+1 да Xk - решение Стоп X k 1 - 5. Руководство пользователя. После запуска программы на экране появляется главное окно. Нажимаем на кнопку «Добавить». Вводим объемы производства и потребления. Нажимая на левую кнопку мыши, перетаскиваем пункты производства и потребления. устанавливаем связи Нажимая на правую кнопку мыши, между пунктами потребления и производства, устанавливаем тарифы. Если все введено верно, то нажимаем кнопку «Рассчитать». Заключение. Метод потенциалов позволяет, отправляясь от некоторого опорного плана перевозок, построить решение транспортной задачи за конечное число итераций (шагов). Общая схема отдельной итерации метода состоит в следующем. По данному опорному плану каждому пункту задачи сопоставляется число, называемое его предварительным потенциалом. Предварительные потенциалы выбираются так, чтобы их разность для любой пары пунктов была равна стоимости перевозки между этими пунктами единицы продукта. Если разность предварительных потенциалов для каждой пары пунктов не превосходит стоимости перевозки, то данный план перевозок – решение задачи, а сами предварительные потенциалы – потенциалы задачи (или оценки ее условий). Список литературы 1. Гольштейн, Е.Г. Линейное программирование./ Гольштейн, Е.Г., Юдин, Д.Б. Теория, методы и приложения. – М., Наука, 1969. – с. 424; 2. Грешилов, А.А. Прикладные задачи математического программирования: учебное пособие для ВУЗов./ Грешилов, А.А. – М., Логос, 2006. – с. 286; 3. Зайченко, Ю.П. Исследование операций./ Зайченко, Ю.П. – 2-ое издание, перер. и доп. – Киев., Высшая школа, 1979. – с. 392; 4. Таха. Введение в исследование операций./ Таха, Хэмди, А. – 6-е изд. М., Изд. дом «Вильямс», 2001. – с. 912.