Текст
                    

Ю. П. ЗАЙЧЕНКО ИССЛ Е ДОВАН И Е ОПЕРАЦИЙ ИЗДАНИЕ ВТОРОЕ, ПЕРЕРАБОТАННОЕ И ДОПОЛНЕННОЕ Допущено Министерством высшего и среднего специального образования, УССР в качестве учебного пособия для студентов университетов и технических вузов КИЕВ ГОЛОВНОЕ ИЗДАТЕЛЬСТВО ИЗДАТЕЛЬСКОГО ОБЪЕДИНЕНИЯ «ВИ1ЦА ШКОЛА» 1979
УДК 517.8(07) Зайченко Ю. П. Исследование операций: Учеб, пособие для студен- тов вузов. —2-е изд., перераб. и доп.—'Киев: Вища школа. Головное изд-во, 1979. 392 с. —30502. 1504000000. В настоящем учебном пособии излагаются основы исследования опе- раций — науки, которая ставит своей целью оптимизацию решений, при- нимаемых человеком в системах организационного управления и в пов- седневной практической деятельности. В. книге рассматриваются основные принципы операционного исследования, обсуждаются особенности при- нятия решений в условиях определенности, риска и неопределенности. Большое внимание уделено изложению современного математического аппарата исследования операций — методам линейного, нелинейного, дискретного и динамического программирования. По сравнению с пре- дыдущим настоящее издание дополнено изложением современных методов решения задач большой размерности, задач на транспортных сетях, элементов геометрического программирования; новых методов решения задач целочисленного программирования. Рассматриваются вопросы разработки моделей и применение имитационного моделирования в за- дачах исследования операций. Описание теоретических методов иллюст- рируется многочисленными примерами. Учебное пособие рассчитано на студентов специальностей «АСУ» и «При- кладная математика» технических вузов и университетов, а также на спе- циалистов, которые занимаются приложениями исследования операций при разработке и внедрении АСУ. Табл. 103. Ил. 86. Список лит.: 60 назв. Редакция литературы по кибернетике, электронике и энергетике Зав. редакцией А. В. Дьячков 30502—286 3 М211 (04)—79 199-79- 1504000000. ©Издательское объединение «Вища школа»# 1975. ©Издательское объединение «Вища школа», 1979, с изменениями.
ПРЕДИСЛОВИЕ XXV съезд КПСС в качестве одной из актуальных задач десятой пятилетки поставил задачу обеспечения дальнейшего развития и по- вышения эффективности автоматизированных систем управления и вы- числительных центров. В свете поставленных задач важное значение для подготовки спе- циалистов по автоматизации управления приобретают теоретические дисциплины, в которых изучаются научные основы управления про- изводством и разрабатываются методы повышения эффективности управления экономическими системами. Особое место среди этих дисциплин занимает исследование опера- ций. Возникшая в начале 40-х годов XX в. в области задач управле- ния боевыми операциями эта новая научная дисциплина быстро рас- ширила свои исследования, охватив многие сферы целенаправленной человеческой деятельности, внесла в традиционные задачи управления производством новую методологию, известную под названием «систем- ный подход». Следует особо подчеркнуть связь между задачами повышения эф- фективности внедряемых АСУ и методологией исследования операций. Целью исследования операций являются изучение и системный анализ систем организационного типа (организаций), отыскание в них опти- мизационных задач управления, постановка и внедрение которых могут оправдать затраты на создание АСУ. Важными этапами исследования операций являются: постановка оптимизационных задач, разработка математических моделей (формализация), нахождение оптимального решения и реализация его на практике. При этом реализация получен- ных решений рассматривается как самостоятельная операционная за- дача. Итак, исследование операций в отличие от чисто теоретических дисциплин имеет явно выраженную прикладную направленность. В настоящее время курс «Исследование операций» читается во мно- гих вузах нашей страны и за рубежом для специалистов по АСУ, ор- ганизации и управлению производством и стал одним из фундамен- тальных курсов будущих инженеров-системотехников. 3
Настоящее учебное пособие подготовлено на основе лекций по кур- су «Исследование операций», читаемых в Киевском политехническом институте для студентов специальности «АСУ». По сравнению с первым изданием пособия, вышедшим в 1975 году, во второе внесены сущест- венные изменения и дополнения. Во введении излагаются цель и задачи курса исследования опера- ций, дается краткая характеристика особенностей этой научной дис- циплины. В первой главе рассматриваются основные этапы операционного исследования, обсуждаются содержательные постановки основных классов задач исследования операций. Рассмотрены методы и крите- рии принятия решений в условиях определенности, риска и неопреде- ленности. Материал дополнен принципами разработки моделей в задачах исследования операций и имитационным моделированием си- стем организационного управления. Вторая глава посвящена изложению методов и моделей линейного программирования. Описаны вопросы теории линейного программи- рования, рассмотрены симплекс-метод, методы нахождения допусти- мых базисных решений, элементы теории двойственности. Содержание главы значительно расширено: излагаются вопросы исследования мо- делей задач линейного программирования на чувствительность, двой- ственный симплекс-метод, метод обратной матрицы. Излагается ме- тод решения ЛП-задач большой размерности, использующий идеи декомпозиции. В новой главе «Транспортная задача линейного программирования» помимо вопросов, освещенных в первом издании (метод потенциа- лов, венгерский метод), рассмотрены новые вопросы, в частности, эле- менты теории транспортных сетей, задача о нахождении максимально- го потока на сети, метод решения транспортной задачи в сетевой по- становке. Завершается глава изложением декомпозиционного метода реше- ния транспортных задач большой размерности. Четвертая глава посвящена изложению методов и моделей дискрет- ного программирования. Описаны метод отсекающих плоскостей Гомори, универсальный метод ветвей и границ. Применение метода вет- вей и границ иллюстрируется решением задачи целочисленного про- граммирования (ЦП) и популярной задачи о коммивояжере. Эта глава дополнена новыми параграфами, в которых рассматривается совре- менный метод решения задач ЦП — асимптотический метод Гомори. Заново написана глава «Нелинейное программирование». Описан классический метод условной оптимизации, метод множителей Лагран- 4
жа, методы решения задач выпуклого программирования на основе применения теоремы Куна-Таккера. Рассмотрены элементы теории двойственности в задачах оптимизации. Описаны модели и методы решения специальных классов задач нелинейного программирования: квадратичного программирования и геометрического программирования. Важное значение для решения разнообразных прикладных задач исследования операций, в частности задач управления запасами, рас- пределения ресурсов, календарного планирования, сетевого планиро- вания и управления, имеет метод динамического программирования (глава 6). На конкретном примере разбирается сущность вычисли- тельного метода динамического программирования, формулируется принцип оптимальности Веллмана, отмечаются особенности примене- ния метода динамического программирования при непрерывных переменных. Рассматриваются динамические задачи последовательно- го принятия решений и оптимального управления на основе дина- мического программирования. Рассмотрены многомерные задачи ди- намического программирования, отмечаются главные трудности ре- шения таких задач, описан метод снижения их размерности. Описаны различные модели задач управления запасами и методы их реше- ния, в частности динамические задачи управления запасами, для ре- шения которых используется аппарат динамического программиро- вания. Завершается книга краткой характеристикой некоторых перспек- тивных направлений и проблем исследования операций. Для понимания материала пособия достаточно знания обычного втузовского курса высшей математики, а также основ линейной ал- гебры. Вспомогательный материал, используемый при изложении эле- ментов теории линейного и нелинейного программирования, вынесен в приложения. Для лучшего усвоения материала и приобретения прак- тических навыков в применении теоретических методов при решении задач изложение методов иллюстрируется решением примеров с по- дробным описанием хода решения. Все примеры доведены до числовых ответов. В книге приведен подробный перечень литературы по исследова- нию операций и смежным вопросам, снабженный аннотированным указателем. Пособие рассчитано на студентов вузов специальности «АСУ» и «Прикладная математика». Будет также полезно'аспирантам, ин- женерам и научным работникам, работающим в области автоматиза- ции управления, которые желают самостоятельно пополнить свои 5
знания в области теории оптимальных решений и ее приложений сов- ременными методами оптимизации. Автор благодарен проф. В. И. Костюку, который был инициа- тором написания настоящего учебного пособия, просматривал ру- копись в ходе ее написания и дал ряд полезных советов, а также выражает свою признательность рецензенту проф. А. А. Волкову за критические замечания, которые способствовали улучшению содер- жания книги. Все отзывы и критические замечания относительно содержания учебного пособия просим направлять по адресу: 252054, Киев-54, Гоголевская, 7, Головное издательство издатель- ского объединения «Вища школа».
В В Е Д Е II И Е ОБЩАЯ ХАРАКТЕРИСТИКА ИССЛЕДОВАНИЯ ОПЕРАЦИЙ Научно-техническая революция вызвала появление нового объек- та исследований в области управления, получившего название боль- шие, или сложные системы. Поскольку общая теория управления боль- шими системами пока еще находится в стадии становления, любая попытка добиться практических результатов в управлении подобной системой вынуждает ограничивать области исследований конкретным классом систем. ' Одним из самых значительных классов «больших систем» являются системы организационного управления. К ним относятся промышлен- ные предприятия, производственные объединения, отрасли, экономика целого государства, а также глобальные системы (макросистемы), например группа государств Совета экономической взаимопомощи (СЭВ). Исследование операций представляет собой комплекс научных методов для решения задач эффективного управления организацион- ными системами. Корни исследования операций уходят в далекую историю. Резкое увеличение размеров производства, разделение труда в сфере произ- водства обусловило постепенную дифференциацию и управленческого труда. Появилась необходимость в планировании материальных, тру- довых и денежных ресурсов, в учете и анализе результатов труда и выработке прогноза на будущее. В управленческом аппарате начали выделяться подразделения: отдел финансов, сбыта, бухгалтерии и планово-экономический отдел и др., принявшие на себя отдельные управленческие функции. К этому периоду относятся первые работы по исследованию в об- ласти организации труда и управления — предвестники будущей науки. Как самостоятельное научное направление исследование операций оформилось в начале 40-х годов. Первые публикации по исследованию операций относятся к 1939—1940 гг., в которых методы исследования операций применены для решения военных задач, в частности для ана- лиза и исследования боевых операций. Отсюда и возникло название дисциплины. . • Позднее принципы и методы исследования операций стали приме- няться в сфере промышленно-финансового управления. С увеличе- нием масштабов производства, развитием и совершенствованием форм и методов организации управления экономическими системами рас- ширялись масштабы операционных исследований, круг решаемых задач, совершенствовались методы новой пауки. 7
Возникла необходимость в подготовке кадров специалистов по ис- следованию операций — операционистов. В ведущих университетах США и Англии впервые было начато систематическое преподавание курса исследования операций. Возникла необходимость в координации работы многотысячной армии операционистов, в регулярном обмене теоретическими исследо- ваниями и прикладными разработками. С этой целью в 1957 г. была создана Международная федерация обществ исследования операций — IFORS, в состав которой вошли национальные общества и комитеты по исследованию операций многих стран. Активным участником Международной федерации является Национальный комитет Советского Союза. Большой вклад в формирование и развитие новой науки внесли зарубежные ученые Р. Акоф, Р. Беллман, Г. Данциг, Г. Кун, Т. Саати, Р. Черчмен (США), А. Кофман, Р. Фор (Франция) и др. Важная роль в создании современного математического аппарата и развитии многих направлений исследования операций принадле- жит советским ученым Л. В. Канторовичу, Б. В. Гнеденко, Н. П. Бус- ленко, В. С. Михалевичу, Н. Н. Моисееву, Д. Б. Юдину, Ю. М. Ер- мольеву и др. Выдающийся вклад в создание аппарата линейного про- граммирования и его применение для решения практических задач экономики внес акад. Л. В. Канторович. В его работе «Математические методы организации и планирования производства» (1939 г.) были за- ложены основы линейного программирования. Важнейшее значение имело введение Л. В. Канторовичем понятия объективно-обусловленных оценок. Они составляют решение задачи, двойственной к задаче расчета оптимального плана. С помощью этих оценок можно в ряде случаев, учитывая изменения обстановки, варьи- рования ограничений на ресурсы, оперативно корректировать рассчи- танный оптимальный план. Объективно-обусловленные оценки, характеризуя эффективность использования ограниченных производ- ственных ресурсов, имеют большое значение при анализе проблем фор- мирования системы цен и других экономических показателей. За раз- работку методов линейного программирования и экономико-математи- ческого моделирования акад. Л. В. Канторовичу совместно с.акад. В. С. Немчиновым и проф. В. В. Новожиловым была присуждена Ле- нинская премия в 1965 году. В 1975 году Л. В. Канторовичу была присуждена Нобелевская премия по экономике за выдающийся вклад в разработку теории оптимального использования ресурсов в экономике. Большой вклад в разработку и использование аппарата имитационного моделирования для исследования сложных систем внес член-кор. АН СССР Н. П. Бус- ленко. Важная роль в разработке новых методов решения комбина- торных задач дискретной оптимизации принадлежит В. С. Михале- вичу и В. В. Шкурбе. Предложенные ими методы нашли широкое при- менение при решении задач теории расписаний. В последние годы интенсивно развиваются методы принятия оптимальных решений в условиях неполной информации, когда существенную роль играют случайные факторы. Соответствующее направление в теории оптими- 8
зации — стохастическое программирование развивается в работах Ю. М. Ермольева, Д. Б. Юдина и др. Наконец, разработке теории иерархических систем управления, численным методам в теории оптимального управления посвящены работы Н. Н. Моисеева. Широко используется при оптимизации непрерывных систем, опи- сываемых дифференциальными уравнениями, принцип максимума Л. С. Понтрягина. Поскольку исследование операций — это новая интенсивно раз- вивающаяся наука, вряд ли возможно дать сейчас ее исчерпывающее определение. Тем не менее для понимания предмета исследования опе- раций, ее содержания и целей такое определение необходимо. Исследование операций —- это наука, занимающаяся разработкой и практическим применением методов наиболее эффективного (или, оптимального) управления организационными системами. Итак, предмет исследования операций — это системы организа- ционного управления (организации), которые состоят из большого числа взаимодействующих между собой подразделений, причем инте- ресы подразделений не всегда согласуются между собой и могут быть противоположными. Целью исследования операций является количественное обосно- вание принимаемых решений по управлению организациями. Решение, которое оказывается наиболее выгодным для всей орга- низации, называется оптимальным, а решение, наиболее выгодное одному или нескольким подразделениям, будет субоптимальным. В качестве примера типичной задачи организационного управле- ния, где сталкиваются противоречивые интересы подразделений, рас- смотрим задачу управления запасами предприятия. Производственный отдел стремится выпускать как можно больше продукции при наименьших затратах. Поэтому он заинтересован в возможно более длительном и непрерывном производстве, т. е. в вы- пуске изделий большими партиями, ибо такое производство снижает затраты на переналадку оборудования, а следовательно и общие производственные затраты. Однако выпуск изделий большими партия- ми требует создания больших объёмов запасов материалов, комплек- тующих изделий и т. д. Отдел сбыта также заинтересован в больших запасах готовой про- дукции, чтобы удовлетворить любые запросы потребителя в любой момент времени. Заключая каждый контракт, отдел сбыта, стремясь продать как можно больше продукции, должен предлагать потреби- телю максимально широкую номенклатуру изделий. Вследствие этого между производственным отделом и отделом сбыта часто возникает конфликт по поводу номенклатуры изделий. При этом отдел сбыта настаивает на включении в план многих изделий, выпускаемых в не- больших количествах даже тогда, когда они не приносят большой прибыли, а производственный отдел требует исключения таких изде- лий из номенклатуры продукции. Финансовый отдел, стремясь минимизировать объем капитала, не- обходимого для функционирования предприятия, пытается уменьшить е
количество «связанных» оборотных средств. Поэтому он заинтересо- ван в уменьшении запасов до минимума. Как видим, требования к размерам запасов у разных подразделений организации оказываются различными. Возникает вопрос, какая стратегия в отношении запасов будет наиболее благоприятной для всей организации. Это типичная задача организационного управления. Она связана с проблемой опти- мизации функционирования системы в целом и затрагивает противо- речивые интересы ее подразделений. Теперь рассмотрим основные особенности исследования операций. 1. Характерной особенностью исследования операций является так называемый системный подход к анализу поставленной проблемы. Системный подход, или системный анализ, является основным методо- логическим принципом исследования операций, который состоит в сле- дующем. Любая задача, какой бы частной она не казалась на первый взгляд, рассматривается с точки зрения ее влияния на критерий функ- ционирования всей системы. Выше системный подход был проиллю- стрирован на примере задачи управления запасами. Глубокое изложение основ системного анализа имеется в [37]. 2. Для исследования операций характерно, что при решении каж- дой проблемы возникают все новые и новые задачи. Поэтому если сна- чала ставятся узкие, ограниченные цели, применение операционных методов не эффективно. Наибольший эффект может быть достигнут только при непрерывном исследовании, обеспечивающем преемствен- ность в переходе от одной задачи к другой. 3. Одной из существенных особенностей исследования операций является стремление найти оптимальное решение поставленной задачи. Однако часто такое решение оказывается недостижимым из-за ограни- чений, накладываемых имеющимися в наличии ресурсами (денежные средства, машинное время) или уровнем современной науки. Напри- мер, для многих комбинаторных задач, в частности задач календар- ного планирования при числе станков п > 4, оптимальное решение при современном развитии математики оказывается возможным найти лишь простым перебором вариантов. Однако даже при небольших п число возможных вариантов оказывается настолько велико, что пе- ребор всех вариантов при существующих ограничениях на быстродей- ствие ЭВМ и допустимое машинное время практически не мыслим. Тогда приходится ограничиваться поиском «достаточно хорошего», или субоптимального решения. Поэтому исследование операций один из его создателей — Т. Саати — определил как «искусство давать плохие ответы на те практические вопросы, на которые даются еще худшие ответы другими методами» [1, 10]. 4. Особенность операционных исследований состоит в том, что они проводятся комплексно, по многим направлениям. Для проведения такого исследования создается операционная группа. В ее состав вхо- дят специалисты разных областей знания: инженеры, математики, экономисты, социологи, психологи. Задачей создания подобных опе- рационных групп является комплексное исследование всего множест- ва факторов, влияющих на решение проблемы, и использование идей и методов различных наук.
Глава 1. ОСНОВНЫЕ ПРИНЦИПЫ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ § 1. ОСНОВНЫЕ ЭТАПЫ ОПЕРАЦИОННОГО ИССЛЕДОВАНИЯ При всем многообразии содержания конкретных работ по исследо- ванию операций каждое операционное исследование проходит после- довательно следующие основные этапы: 1) постановка задачи, 2) по- строение математической модели, 3) нахождение решения, 4) про- верка и корректировка модели, 5) реализация найденного решения на практике. Постановка задачи — это чрезвычайно ответственный этап опера- ционного исследования. Первоначально задачу формулируют с точки зрения заказчика. Такая постановка задачи обычно' не бывает окон- чательной. Во время анализа исследуемой системы, задача постепенно уточняется. На этом этапе роль операционной группы состоит в про- ведении тщательного обследования объекта, изучении множества фак- торов, влияющих на результаты исследуемого процесса. После сбора данных обследования и их анализа операционная груп- па выделяет совокупность существенных факторов, проводит консуль- тации с заказчиками и уточняет окончательно содержательную (сло- весную) постановку задачи. Для выяснения упущенных факторов и их взаимосвязей при необ- ходимости проводят дополнительное обследование объекта. Построение математической модели. Получив достаточно строгую и логически непротиворечивую, содержательную постановку задачи, нужно построить ее математическую модель. Этот процесс называется формализацией задачи. В самом общем случае математическая модель задачи имеет вид: найти тах£' = /(х, у) (1.1) при ограничениях gi (х, у) < bt, i = Т7т, (1.2) где Е = f (х, у) — целевая функция (показатель качества или эффек- тивность) системы; х — вектор управляемых переменных; у — вектор неуправляемых переменных; gt — функция потребления Его ресур- са; — величина j-го ресурса (например, плановый фонд машинно- го времени группы токарных автоматов в станко-часах). Нахождение решения. Для нахождения оптимального решения задачи (1.1) — (1.2) в зависимости от вида и структуры целевой функции и ограничений используют те или иные методы теории оптимальных решений (методы математического программирования)1. 1 Термин «математическое программирование» здесь неточен, его употребляют о учетом исторических причин и традиций. 11
1. Линейное программирование, если f (х, у), g{ (х, y)z=I^ — линей- ны относительно переменных х. , 2. Нелинейное программирование, если f (х, у) или gt- (х, у) — не- линейны относительно переменных х. 3. Динамическое программирование, если целевая функция f (х, у) имеет специальную структуру, являясь аддитивной или мультипли- кативной функцией от переменных х. Укажем, что f (х) = f (хъ х2...хп) — аддитивная функция, если / (хх, х2, хп) = S/z (xj, и функция f (хх, х2, ..., х„) — мультипли- i кативная функция, если f (х1г х2, ..., хп) — П (xj. i 4. Геометрическое программирование, если целевая функция f (х) и ограничения gk (х) представляют собой так называемые функции-по- зиномы gk (х) — Ъср^х^ ... xain. Математическая модель задачи в этом случае записывается в виде min У, срДДх^ ... . (1.3) »е/[0] при условиях gfe(X) = S <1, (1.4) k = 1, Р, (1.5) где / [0] = (т0, т0 + 1, ... , n0); I [£] = [mfe, mk + 1, ... , nJ; m/t-^i = nk 4-1; mn = 1; np — n. (1.6) 5. Стохастическое программирование, когда вектор неуправляемых переменных у случаен. В этом случае математическая модель задачи (1.1—1.2) будет иметь вид: max МуЕ = {/ (х, у)}, (1.7) при ограничениях {gt (х, у)} < bit i = \ ~т, (1.8) или вероятностных ограничениях Р {g)(x, у) < Ь^ > 1 — гр, i 1, т, (1.9) где Мр — математическое ожидание по у; Р {gi (х) < Ь] — вероят- ность того, что выполняется условие gi (х) < Ь. 6. Дискретное программирование, если на переменные х,- наложе- но условие дискретности (например целочисленности): X; — целое, / = 1, пх < и. 7. Эвристическое программирование применяют для решения тех задач, в которых точный оптимум найти алгоритмическим путем не- возможно из-за огромного числа вариантов. В таком случае отказы- ваются от поиска оптимального решения и отыскивают достаточно хорошее (или удовлетворительное с точки зрения практики) решение. При этом пользуются специальными приемами — эвристиками, поз- 12
воляющими существенно сократить число просматриваемых вариан- тов. Эвристические'!методы также применяют, когда оптимальное ре- шение в принципе может быть найдено (т. е. задача алгоритмически разрешима), однако для этого требуются объемы ресурсов, значительно превышающие наличные. Из перечисленных выше методов математического программирова- ния наиболее развитым и законченным является линейное программи- Рис.1.1. рование. В его рамки укладывается широкий круг задач исследова’ ния операций. Проверка и корректировка модели. В сложных системах, к которым относятся системы организационного типа, модель лишь частично от- ражает реальный процесс. Поэтому необходима проверка степени со- ответствия или адекватности модели и реального процесса. Проверку производят сравнением предсказанного поведения с фактическим при изменении значений внешних неуправляемых воздействий. Проверку и корректировку модели можно производить, например, по логической схеме, показанной на рис. 1.1, где X — вектор управ- ляемых переменных, Y — вектор неуправляемых переменных, Хвых.о — выходные параметры объекта, ХВЫх.м—выходные параметры модели. Величины Хвых.о и ХВЫх.м подаются на элемент сравнения ЭС, и вычисляется величина ошибки е (у) = | ХВЫх.о — XBbIx.M |. Если ве- личина к (у) превышает допустимое значение отклонения едоп (его вы- бирают, исходя из требуемой степени адекватности модели), то это сви- детельствует о том, что упущены некоторые важные факторы и взаи- мосвязи. В этом случае, производят корректировку модели. Корректировка может потребовать дополнительных исследований объекта, уточнения структуры математической модели, многочислен- ных изменений переменных модели. Таким образом, четыре названные выше этапа повторяют многократно до тех пор, пока не будет достиг- нуто удовлетворительное соответствие между выходами объекта и модели. 13
Реализация найденного решения на практике является важнейшим этапом, завершающим операционное исследование. Внедрение можно рассматривать как самостоятельную задачу, применив к ней систем- ный подход и анализ. Полученное предварительно математическое решение облекают в соответствующую содержательную форму и пред- ставляют заказчику в виде инструкций и рекомендаций. С точки зрения реализации оптимального решения на практике исследование операций занимает особое место в проблематике АСУ. Известно, что внедрение АСУ эффективно для решения таких задач управления, которые невозможно решить при сложившейся ранее практике управления. Академиком В. М. Глушковым был выдвинут так называемый принцип новых задач АСУ. Под этим принципом по- нимается поиск и постановка на производстве действительно новых задач оптимального управления, которые могут окупить затраты на создание АСУ. Исследование операций и является методологической основой для нахождения таких задач, разработки их математических моделей и алгоритмов решения, а также для практического внедрения найденных оптимальных решений. На производстве выполняют операционное исследование. На осно- ве материалов исследования проводят системный анализ объекта и определяют задачи управления, которые дают наиболее ощутимый эффект в результате автоматизации. Исходя из принципа системного подхода разрабатывают математические модели этих задач и алгорит- мы решения. Практическая же реализация указанных задач, т. е. их внедрение, будет осуществлена при создании соответствующих АСУ,. § 2. ТИПИЧНЫЕ КЛАССЫ ЗАДАЧ Накопленный опыт в решении практических задач исследования операций и его систематизация позволяют выделить по содержатель- ной постановке следующие типичные классы задач [1]: 1) управления запасами, 2) распределения ресурсов, 3) ремонта и замены оборудо- вания, 4) массового обслуживания, 5) упорядочения, 6) сетевого пла- нирования и управления, 7) выбора маршрута, 8) комбинированные. Рассмотрим краткие особенности каждого класса задач. Задачи управления запасами составляют самый распространенный и изученный в настоящее время класс задач исследования операций. Они обладают следующей особенностью. С увеличением запасов уве- личиваются расходы на их хранение, но уменьшаются потери из-за возможной их нехватки. Следовательно, одна из задач управления запасами заключается в определении такого уровня запасов, который минимизирует следующий критерий: сумму ожидаемых затрат по хра- нению запасов, а также потерь из-за их дефицита. В зависимости от условий задачи управления запасами делятся на следующие три группы: 1. Моменты поставок или оформления заказов на пополнение запа- сов фиксированы. Определить объемы производимых или закупаемых партий запасов. 14
2. Объемы производимых или закупаемых партий запасов фиксиро- ваны. Определить моменты оформления заказов на поставки. 3. Моменты оформления заказов и объемы производимых или за- купаемых партий не фиксированы. Определить эти величины, исходя из сформулированного выше критерия. Задачи распределения ресурсов возникают, когда существует опре- деленный набор работ (операций), которые необходимо выполнять, а наличных ресурсов для выполнения каждой работы наилучшим об- разом не хватает. В зависимости от условий задачи распределения ресурсов делятся на три группы: 1. Заданы и работы, и ресурсы. Распределить ресурсы между ра- ботами таким образом, чтобы максимизировать некоторую меру эф- фективности (прибыль) или минимизировать ожидаемые затраты (из- держки производства). Пример 1.1. Известны производственное задание и производственные мощности предприятия. При существующих различных способах получения изделий (например, обработка на разных станках) ограничение по мощности не позволяет для каждого изделия использовать наилучшую технологию. Какие способы производства надо выбрать для каждого вида изделий, чтобы вы- полнить задание с минимальными затратами? 2. Заданы только наличные ресурсы. Определить, какой состав ра- бот можно выполнить с учетом этих ресурсов, чтобы обеспечить мак- симум некоторой меры эффективности. Пример :.2. Задано предприятие с определенными производственными мощнос- тями. Какую продукцию следует производить, чтобы получить максимальный доход? 3. Заданы только работы. Определить, какие ресурсы необходимы для того, чтобы минимизировать суммарные издержки производства. Пример 1.3. Известно месячное расписание движения пассажирских самолетов по авиалиниям. Какое количество экипажей необходимо подобрать, чтобы выполнить план перевозок с минимальными эксплуатационными затратами? Задачи ремонта и замены оборудования появляются в тех случаях, когда работающее оборудование изнашивается, устаревает и со вре- менем подлежит замене. Изношенное оборудование подвергают либо предупредительно- восстановительному ремонту, улучшающему его технологические ха- рактеристики, либо полной замене. При этом возможная постановка задачи такова. Определить такие сроки восстановительного ремонта и момент за- мены оборудования модернизированным, при которых минимизирует- ся сумма затрат на ремонт и замену оборудования при его старении за все время эксплуатации. Существует и такое оборудование, в котором детали полностью вы- ходят из строя, не восстанавливают- я и подлежат замене (например, перегоревшие электронные лампы). Постановка задачи в этом случае следующая. Определить такие сроки профилактического контроля по обнару- жению неисправностей, при которых минимизируется сумма затрат па проведение контроля и ожидаемых потерь от простоя оборудования, 15
вследствие выхода из строя деталей в интервале между соседними про- верками (контролем). Задачи массового обслуживания посвящены изучению и анализу систем обслуживания с очередями заявок, или требований. С явле- нием образования очередей приходится сталкиваться как в производ- ственной практике, так и в быту. Типичными примерами являются очереди самолетов, ожидающих взлета или посадки, очереди клиентов в ателье бытового обслуживания, абонентов, ожидающих вызова на междугородной АТС, и т. д. Очереди возникают из-за того, что поток требований или клиентов на обслуживание неуправляем и случаен. Если количество приборов обслуживания (взлетно-посадочные полосы аэродрома, приемщики в ателье бытового обслуживания, каналы связи и т. д.) достаточно ве- лико, то очередь образуется редко, однако неизбежны длительные про- стои оборудования. С другой стороны, при малом количестве приборов создается значительная очередь и будут большие потери из-за ожида- ния в очереди. Поэтому возможна следующая постановка задач мас- сового обслуживания. Определить, какое количество приборов обслу- живания необходимо, чтобы минимизировать суммарные ожидаемые потери от несвоевременного обслуживания и простоев оборудования. Задачи упорядочения характеризуются следующими особенностя- ми. Например, имеется множество различных деталей с определенны- ми технологическими маршрутами, а также несколько единиц обору- дования (фрезерный, токарный и строгальный станки), на которых эти детали обрабатываются. Так как одновременно обрабатывать более одной детали на одном станке невозможно, у некоторых из станков может образоваться очередь работ, т. е. деталей, ждущих обработки. Время обработки каждой детали известно. Определить такую очеред- ность обработки деталей на каждом станке, при которой минимизиру- ется некоторый критерий оптимальности, например, суммарная про- должительность завершения комплекса работ. Такая задача называ- ется задачей календарного планирования или составления расписания, а выбор очередности запуска деталей в обработку — упорядочением. Критерии оптимальности, используемые в задачах календарного планирования, имеют различный вид. Наиболее часто встречаются следующие критерии: 1. Минимизация общей продолжительности работ, т. е. интервала времени между моментом начала первой операции и моментом окон- чания последней. 2. Минимизация общего запаздывания. Запаздывание определяет- ся как разность между фактическим и директивным сроком заверше- ния обработки по каждой -детали. Общее запаздывание представляет собой сумму запаздываний по всем деталям. 3. Минимизация максимального запаздывания, т. е. минимизация запаздывания по той детали, для которой эта величина является наи- большей. 4. Минимизация потерь, обусловленных запаздыванием. Задачи сетевого планирования и управления (СПУ). В этом клас- се задач рассматривается соотношение между сроком окончания круп- ен
кого комплекса операций и моментами начала всех операций комплек- са. Они актуальны при разработке сложных и дорогостоящих проектов. Для строгой постановки задач необходимы такие условия: должно существовать точно определяемое множество операций, которые надо выполнить для завершения всего комплекса, включаю- щего эти операции в качестве своих элементов; множество операций комплекса упорядочено так, что для каждой операции известно, какие операции непосредственно ей предшествуют, а какие следуют за ней; в пределах заданного отношения упорядочения операции можно начинать и заканчивать независимо друг от друга; известна взаимосвязь между величиной потребляемого ресурса и длительностью каждой операции. Комплекс операций в этом случае можно представить в виде сете- вого графика, состоящего из вершин (узлов) и ориентированных дуг. В этом случае операции изображают дугами, а вершины представляют собой некоторые события. Дуги, входящие в вершину, отвечают опе- рациям, которые должны быть закончены раньше, чем можно будет начать операции, изображенные исходящими дугами. Событию, соот- ветствующему началу выполнения комплекса, присваивают номер 0. Остальные события нумеруют так, что, если события t, j связаны не- которой операцией (i, /), то выполняется неравенство t„ (j) > /н (t) + + tij, где tH (i), t н(/) — моменты наступления событий i, j и — дли- тельность операции (г, /). Если выполняются вышеизложенные усло- вия и допущения, возможны следующие постановки задач сетевого планирования и управления. 1. Задана продолжительность всего комплекса. Определить сроки начала каждой операции, при которых минимизируется один из сле- дующих критериев: а) общие затраты на выполнение всего комплекса работ; б) среднеквадратичный показатель неравномерности потреб- ляемых ресурсов; в) вероятность невыполнения комплекса работ в ди- рективный срок; г) среднеквадратичное отклонение требуемых ресур- сов от наличных. 2. Заданы общие ресурсы. Определить сроки начала каждой опе- рации, при которых минимизируется продолжительность выполне- ния всего комплекса работ. Методы решения задач СПУ изложе- ны в [1J. Задачи выбора маршрута, или сетевые задачи чаще всего встре- чаются при исследовании разнообразных процессов на транспорте и в системах связи. Типичной задачей является задача нахождения некоторого маршрута проезда из города А в город В при наличии не- скольких маршрутов для разных промежуточных пунктов. Стоимость проезда и затрачиваемое на проезд время зависят от выбранного марш- рута. Определить наиболее экономичный маршрут по выбранному критерию оптимальности. На допустимые маршруты может быть наложен ряд ограничений. Так, вводят запрет на возврат к уже пройденному пункту (узлу сети) или требование обхода всех пунктов сети с условием, что в каждом пункте можно побывать только один раз (задача коммивояжера). 2 8-3164 17
В пунктах сети возможны задержки (например, на перекрестках шоссейных дорог). Эти задержки зависят от нагрузки на узел, занятос- ти исходящих коммуникаций, ограниченной пропускной способности пунктов сети или носят случайный характер. Среди сетевых задач наиболее распространенными являются за- дача выбора кратчайшего пути между произвольными пунктами сети, задача коммивояжера, задача о максимальном потоке [1]. Комбинированные задачи включают в себя несколько типовых мо- делей задач одновременно. Например, при планировании и управ- лении производством приходится решать следующий комплекс задач: 1) сколько изделий каждого типа необходимо выпустить и каковы оптимальные размеры партий изделий? (Типичная задача планирова- ния производства); 2) распределить производственные заказы по видам оборудования после того как определен оптимальный план производства. (Типич- ная задача распределения); 3) в какой последовательности и когда следует выполнять произ- водственные заказы? (Типичная задача календарного планирования). Так как эти три задачи нельзя решить изолированно, независимо друг от друга, то возможен следующий подход к решению данной ком- бинированной задачи. Сначала получают оптимальное решение задачи планирования производства. Затем в зависимости от этого оптимума находят наилучшее распределение оборудования. Наконец, на основе та- кого распределения составляют оптимальный график выполнения работ. Однако такая последовательная оптимизация частных подзадач не всегда приводит к оптимальному решению задачи в целом. В част- ности, например, может оказаться, что нельзя произвести все изделия в оптимальных количествах из-за ограниченности имеющихся ресур- сов. Пока еще не найден метод, позволяющий получить одновременный оптимум для всех трех задач, а возможно он не существует для кон- кретных задач. Поэтому для решения подобных комбинированных за- дач применяется метод последовательных приближений, позволяющий приблизиться к искомому решению комбинированной задачи доста- точно близко [1, 49]. Предложенная классификация задач исследования операций не является окончательной. Со временем некоторые классы задач объ- единяются и становится возможным их совместное решение, стираются границы между указанными классами задач, а также появляются но- вые классы задач. Следует также отметить, что ряд задач исследования операций не укладывается ни в один из известных классов и представляет наи- больший интерес с научной точки зрения. § 3. НЕКОТОРЫЕ ПРИНЦИПЫ ПРИНЯТИЯ РЕШЕНИИ В ЗАДАЧАХ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ Теория принятия "решений является фундаментом науки исследо- вания операций. В процессе принятия решений возникают такие труд- ности: 18
1. Большое число критериев, которые не всегда согласованы между собой. Например, при проектировании нового устройства часто вы- двигается требование максимальной надежности и минимальной стои- мости изделия. Эти критерии являются противоречивыми, поэтому возникает задача компромисса между ними; 2. Высокая степень неопределенности, которая обусловлена не- достаточной информацией для обоснованного принятия решений. Элементы процесса принятия решений и классификация задач Любой процесс принятия решений включает следующие элементы: 1. Цель. Необходимость принятия решений определяется целью или несколькими целями, которые должны быть достигнуты. 2. Лицо, принимающее решение, должно нести ответственность за последствия этих решений. 3. Альтернативные решения (различные варианты достижения целей). 4. Внешняя среда (совокупность всех внешних факторов, влияю- щих на исход решения). 5. Исходы решений. 6. Правила выбора решений (решающие правила). Эти правила позволяют определить наиболее предпочтительное в смысле выбранного критерия решение. Решающее правило отражает информированность лица, принимаю- щего решение, о возможных исходах выбранных решений, а также предпочтительность тех или иных исходов. Итак, основой для построе- ния решающих правил служит информация о предпочтении различных альтернатив для лица, принимающего эти решения. Теория принятия решений использует различные процедуры, поз- воляющие формализовать предпочтения, т. е. выразить их в единой количественной мере. Основой для таких процедур является теория полезности, разработанная Дж. фон Нейманом и О. Моргенштерном 135]. Ее математическая основа — система аксиом, в которых утверж- дается, что существует некоторая мера ценности, позволяющая упоря- дочить результаты решений. Эта мера называется функцией полезнос- ти решений или полезностью [43]. В зависимости от условий внешней среды и степени информирован- ности лица существует следующая классификация задач принятия решений: а) в условиях определенности, б) в условиях риска, в) в ус- ловиях неопределенности, г) в условиях конфликтных ситуаций или противодействия (активного противника). Принятие решений в условиях определенности Принятие решений в условиях определенности характеризуется однозначной или детерминированной связью между принятым реше- нием и его исходом. Основная трудность — наличие нескольких кри- териев, по которым следует сравнивать исходы. 19
Здесь возникает задача принятия решений при так называемом «векторном критерии» [12]. Случай 1. Пусть имеется совокупность критериев: Fx(x), F2(x), , Fn(x) xQX. Найти решение, которое окажется наилучшим в смысле выбирае- мого критерия. Если все критерии измеряются в одной шкале, то обобщенный кри- терий Fo (х) можно записать в виде взвешенной суммы этих критериев F0(x) = S w{Fdx), (З-i) Z=1 где wt — вес соответствующего критерия. В этом случае необходимо найти max Fo (х). X Если же эти критерии измеряются в различных шкалах, то необ- ходимо привести их к одной шкале. Для этого формируют критерий min Fo (х) = mm 2 wt-----—— --------, (3-2) где » Ft (x*) = max Ft (x). xi Следовательно, требуется свести к минимуму величину уклонения каждого критерия от его максимального значения. При таком формировании обобщенного критерия возникает неко- торое несоответствие, связанное с тем, что можно добиться высоких показателей по одним критериям за счет ухудшения показателей по другим. В этом случае значения некоторых частных критериев могут оказаться меньше предельно допустимых значений Ft (х) < Ftppa. Однако часто необходимо, чтобы выполнялось следующее условие: F/ (х) F/дОп. (3.3) Поэтому можно предложить еще один способ образования обобщенно- го критерия. Допустим, что по каждому критерию определены предельные зна- чения Ггдоп, i — 1, п. Если условие (3.3) выполняется, то можно принять Ft (х) равным его собственному значению. Если это условие не выполняется, то нужно принять Ft (х) = — оо. В таком случае задача сводится к нахождению max Fo = (x) (3.4) x при условии (3.3). Случай 2. Предположим, что критерии упорядочены в после- довательности Fx, F2, ..., F„. Тогда задача отыскания оптимального решения может быть запи- 20
сана как max Fj (х) (3.5) при ограничениях: F2 (я) F2доп> Рп (,х) Радоп* , Два варианта логического объединения критериев. Предположим, что критерии Fx, Fa, Рп могут принимать только два значения О или 1. Ft (х) = 1, если г-ая цель достигнута. В противном случае Ft (х) = = 0. Тогда обобщенный критерий может быть записан: а) в виде конъюнкции критериев F£, если общая цель операции состоит в выполнении всех целей одновременно, т. е. Fo = П F, (х); (3.6) <=1 б) в виде дизъюнкции критериев, когда общая цель операции -достигается, если достигается хотя бы одна частная цель, т. е. F0 = l -ri [1-Ff(x)l. (3.7) Z==l Методика определения полезности. Для принятия решений необ- ходимо установить предпочтительность различных критериев (меру полезности тех или иных исходов) для лица, принимающего решение. Методика определения полезности возможных результатов разра- ботана в [1]. Практическое применение теории полезности основывается на сле- дующих аксиомах [43]: 1) Результат х{ оказывается предпочтительнее X/ (это записывает- ся так: х{ > X/), тогда и только тогда, когда и (xz) > и (х/), где и (xj и и (Xj) — полезности результатов х, и х,- соответственно. 2) Транзитивность: если х,- > X/, а xz- > xfc, то и (xz) > и (хй). 3) Линейность: если некоторый результат х представлен в виде х — (1 — k) Xi + kx2, где 0 < k < 1, то и (х) = (1 — k) и (х5) + Ч- ku (х2). 4) Аддитивность: если и (хх, ха) — полезность от достижения од- новременно результатов хх и х2, то свойство аддитивности следующее: и (хь х2) = и (хх) + и (х2). Аналогично, если имеется п результатов, Х|, х2, .... хп, достигаемых одновременно, то и (хх, х2, ... , х„) = S и( (х{). ' (3.8) 1=1 Рассмотрим несколько вариантов методики определения полез- ности в различных случаях. I. Случай, когда имеются два результата. Методика определения полезности такова: 21
1. Определяем, какой результат более предпочтителен для лица, принимающего решение. Пусть хг > хг, т. е. хг предпочтительнее, чем х2. 2. Затем определяем такую вероятность а, при которой достиже- ние результата хх будет эквивалентно результату х2, получаемому с вероятностью 1. Таблица 1.1 1 Xj или х2 -|- • • + хп n -J- 1 Х2 или Х3 + ' • + хп-1 2 «X ИЛИ Х2 + • • +хл-1 п + 2 х2 или х3 + • • • + хп—2 3 Xj ИЛИ Х2 + • • + хп—2 п + 3 х2 или Х3 + • • • + хп—3 п Х2 ИЛИ х3 + • • • + хп N Хп—Ч или + хп 3. Оцениваем соотношение между полезностями результатов хх и х2. Для этого примем полезность и(х2) = 1. Тогда аи (xt) = и (х2), и (Xj) = -i-. II. Случай, когда имеются п возможных результатов xlt х2, ..., хп, между которыми установлено отношение предпочтения Xj > х2 > х$ ^> ... Хп. Для этого случая методика определения полезности следующая: 1. Определяем величину otj из условия atu (хг) = и (х2). 2. Аналогично определяем a2w (х2) = и (х3), a„_i« (хга_1) = «(х„). 3. Положив полезность наименее предпочтительного результата хп равной единице, находим м(х„) = 1, и (х„_1) = —— , ап—1 «(*1) = -7=1— П а/ 22
III. Случай, когда некоторые критерии являются качественными. Применяется методика, основанная на алгоритме, предложенном Р. Акофом и Р. Черчменом [1]. Предположим, что имеется п результатов xlt х2, ••> хп. Методика определения полезности состоит из следующих этапов: 1. Упорядочивают все результаты по убыванию предпочтитель- ности. Пусть хх — наиболее, а хп — наименее предпочтительный ре- зультат. Составляют таблицу возможных комбинаций результатов, дости- гаемых одновременно, и затем устанавливают их предпочтение отно- сительно отдельных результатов х1г х2, ..., хп (табл. 1.1). Эту информацию о предпочтительности результатов получают от экспертов. 2. Приписывают начальные оценки полезностям отдельных ре- зультатов ы0 (Xj), и0 (х2), ..., и0 (х„). Затем подставляют начальные оценки в последнее соотношение табл. 1.1. Если оно удовлетворяется, то оценки не изменяют. В противном случае производят коррекцию полезностей так, что- бы удовлетворялось данное соотношение. 3. После этого переходят к следующему соотношению. Процесс коррекции продолжается до тех пор, пока не образуется система оце- нок и* (Хх), и* (х2), и* (х„), которая будет удовлетворять всем ука- занным в таблице соотношениям. Коррекцию следует производить таким образом, чтобы по возможности изменять оценки для мини- мального количества результатов. Пример 1.4. Пусть эксперт упорядочивает пять результатов Xj, х2.х6, припи- сав им следующие оценки: и0 (хх) = 7; и0 (х2) — 4; и0 (х3) — 2;и0 (х4) = l,5;u0(x6) = 1. Рассмотрев возможные варианты выбора, он высказал следующее суждение отно- сительно ценности тех или иных комбинаций результатов: 1) х4 < х2 + х3 + х4 х6, 2) Xj < х2 + х3 -р х4, 3) х-J < х2 -|- х3 + хи< 4) Xj > х2 + х3> 5) х2 < х3 -f- х4 -J- хв, 6) х2>х3 + х4, 7) х3 > х4 + х5. Нужно произвести оценку полезности результатов так, чтобы удовлетворить всем неравенствам. Подставляем начальные оценки в неравенство 7): и0 (х3) = 2 < иа (х4) + и0 (хб) = 2,5. Следовательно, неравенство 7) не удовлетворяется. Изменяем полезность результата х3 «1 (х8) = 3 и проверяем неравенство 6): “о (*а) = 4 < их (х3) + «0 (х4) = 4,5. Это неравенство также не удовлетворяется. Примем «х (хг) = 5. При этом неравенство 5) удовлетворяется. 23
Обращаемся к неравенству 4): и0 (л-j) = 7 < Ю (х2) + ut (хз) = 8- Оно не выполняется. Поэтому примем (хр = 8,5. Теперь неравенства 3), 2), 1) удовлетворяются. Проверяем еще раз неравенства 6) и 7) при измененных значениях полезностей: 5>3 + 1,5 и 3 > 1,5 + 1. Оба неравенства выполняются. Выпишем окончательные оценки полезности результатов: (хх) = 8,5; их (х2)= = 5; иг (х3) = 3; «х (х4) = 1,5; их (х5) = 1. Такая методика определения полезности применима, когда коли- чество результатов п ограничено п < 6—7. В случаях, когда п > 7, авторами предложена следующая моди- фикация данной методики — способ коррекции оценок [1]. Множество результатов разбивают на подмножества, состоящие из 5—7 результатов и имеющие один общий результат, например, хг. Затем приписывают начальные значения полезностям для всех ре- зультатов, причем полезность общего результата х1 одинакова во всех подмножествах. Далее применяют способ коррекции оценок полезнос- ти независимо в каждом из подмножеств с ограничением и (хх) = const. В результате получают систему полезностей с единой мерой для всех подмножеств и (хх). Принятие решений в условиях риска Эта задача возникает в том случае, когда с каждой принимаемой стратегией хг связано целое множество возможных результатов Оъ О2, ..., От с известными вероятностями р (Ojlxt). Формально модель задачи может быть представлена в виде следую- щей матрицы: \О/ xi \ Oi 03 О/ . • • • • Offi. *1 4i 4а 4/ • .... 11т L = х2 4i 4а ..... /2у . • • • • hm XI 4i 4'2 ..... 4у • ее» /. чт • • • • . . хгг 41 4.2 • • • • •1щ 1 пт llj (О j, X;'), где l[f — полезность результата О/ при использовании решения хг-. Пусть заданы условные вероятности р (Oj/Xi), j = 1, tn, i = 1, n. Вводят ожидаемую полезность для каждой стратегии Е {и (х,-)} = S и (О/, х{) р (Oj/Xi), i = 1, ..., п. (3.9) /=1 24
Решающее правило для определения оптимальной стратегии х, записывают так: Е {и (xz)} = шахЕ {и (xk)}. (3,10) xk Принятие решений в условиях неопределенности Одним из определяющих факторов в таких задачах является внеш- няя среда или природа, которая может находиться в одном из состоя- ний Sj, Sk, которые неизвестны лицу, принимающему решение (наблюдатель). Тогда математическую модель задачи в условиях неопределенности можно сформулировать следующим образом. Имеется некоторая матрица L размерностью т X п. 01 XI \ 01 О2 . . . On hi hi . . . hm . . . . . . . . . . • • • • . о hn] С12 . . . ^mn Элемент этой матрицы l(j можно рассматривать как полезность результата О, при использовании стратегии xt hi = и (Oj, Xi), j — , п, i — 1, . .. , т. В зависимости от состояния среды результат Oj достигается с ве- роятностью р (Oj/xt, Sk). Кроме того, наблюдателю неизвестно распределение вероятностей р (SJ. Относительно состояния среды наблюдатель может высказы- вать определенные гипотезы/Его предположения о вероятном состоя- нии среды называются субъективными вероятностями р (Sft), k — = 1, 2...... К. Если бы величина р (Sk) была известна наблюдателю, то мы бы имели задачу принятия решений в условиях риска. В этом случае ре- шающее правило xt определяется следующим образом: п к шах £ u(Oh x^pkOjlxt, Sk)p(Sk) = maxE {н(х,)}. (3.11) *1 Z=1 4=1 xi На самом деле состояния среды неизвестны и неизвестно также рас- пределение вероятностей р (SJ. Как выбрать при этом оптимальную стратегию? Существует несколько критериев для выбора оптимальной стра- тегии. 25
Критерий Вальда (критерий осторожного наблюдателя). Этот кри- терий оптимизирует полезность в предположении, что среда находит- ся в самом невыгодном для наблюдателя состоянии. По данному кри- терию решающее правило имеет следующий вид: max min и (xt-, Sk), xt sk где «(xlt Sk) = i и (O/( Xi) p (0^Xl, Sk). (3.12) /=i По критерию Вальда выбирают стратегию, которая дает гарантиро- ванный выигрыш при наихудшем варианте состояния среды. Критерий Гурвица основан на следующих двух предположениях: среда может находиться в самом невыгодном состоянии с вероятностью 1 — айв самом выгодном — с вероятностью а, где а — коэффициент доверия. Тогда решающее правило записывается так: max [a max и (х;, Sk) -f- (1 — а) min и (xt, Sft)], (3.13) xi sk sk О < а < 1. Если а = 0, получаем критерий Вальда. Если а — 1, то приходим к решающему правилу вида max max и (xit Sk), так называемая стратегия «здорового оптимиста», xi $k который верит в удачу. Критерий Лапласа. Если неизвестны состояния среды, то все со- стояния среды считают равновероятными: Р (St) = Р (3/) = • • • Р (Sk). В результате решающее правило определяется соотношением (3.11) при условии р (SJ = Критерий Сэвиджа (критерий минимизации «сожалений»). «Сожа- ление» — это величина, равная изменению полезности результата при данном состоянии среды относительно наилучшего возможного реше- ния. Чтобы определить «сожаление», поступают следующим образом. Строят матрицу U = || uik ||, где uik = и (х£, Sk); i — 1, m; k = = 1, К. В каждом столбце этой матрицы находится максимальный элемент uk~ max и ik. (3.14) Его вычитают из всех элементов этого столбца. Далее строим матрицу «сожалений» С/с = || Uih с Uikc — llik ‘ 26
Искомую стратегию хг, которая минимизирует «сожаление», опре- деляют из условия max min «ас- (3.15) sk Этот критерий минимизирует возможные потери при условии, что состояние среды наихудшим образом отличается от предполагаемого. Рассмотрим частный случай предложенной выше модели задачи в условиях неопределенности. Предположим, что каждому возможному состоянию среды соответ- ствует один возможный исход: p(PjlSk) = б/ъ (3.16) ( 1, если / = k, где 1 , 1 ( 0, если ] =£= k. Таким образом, в данном случае математическая модель задачи принятия решений определяется множеством стратегий X — {х,}, множеством состояний среды S = а также следующей матрицей: s S2 . . . Sk 62 . . . llk . . . • . . . . . . . . , . . lm2 . . . где 1ц = и (xit Sj). Множество [р (S/)} предполагается неизвестным. В этом случае критерии для выбора оптимальной стратегии имеют следующий вид: Критерий Вальда max min и (xt, Sk). (3.17) xi sk Критерий Гурвица max [a max и (х(, Sk) + (1 — а) min и (xit S*)]. (3.18) xi sk sk Критерий Лапласа 1 к max-ft- £ и(х{, Sk). (3.19) xi Критерий Сэвиджа: max min uc (xlt Sk), (3.20) S 27
где «с (*/. sk) = и (xi> st) — max м (•*'> Sk)- f Рассмотрим использование данных критериев в условиях неопре- деленности для следующей практической ситуации [31]. Пример 1.5. Некоторая фирма решает построить отель в одном из курортных мест. Необходимо определить наиболее целесообразное количество мест или комнат в этой гостинице. Составляют смету расходов по строительству гостиницы с различным количеством комнат, а также рассчитывают ожидаемый доход в зависимости от количества комнат, которые будут сняты. В зависимости от принятого решения — количества комнат в гостинице х — 20, 30, 40, 50 и количества снятых комнат 3 = 0, 10, 20, 30, 40, 50, которое зависит от мно- жества случайных факторов и неизвестно фирме, получают следующую таблицу ежегодных прибылей: Таблица 1.2 XSfc Xi \ 0 10 20 30 245 40 50 20 —121 62 245 245 245 30 —168 14 198 380 380 380 40 —216 —33 . 150 332 515 515 50 —264 —81 101 284 468 650 Наиболее подходящее количество комнат в гостинице определяют по вышеприве- денным критериям. Критерий Вальда: max min lik = — 121; хопт = 20. xi sk Судя по результатам, критерий Вальда неприменим, так как в этом случае от по- стройки гостиницы следует отказаться. Критерий Лапласа: 1 6 max-g-У lik = max li = max {153, 198, 210, 193} =210; хопт = 40. xi ° fe=l xi Критерий Гурвица: max [a max lik -J- (1 — a) min k k Для разных а можно построить таблицу доходов по критерию Гурвица Н* = 11 где = [« max lik + (1 — “) min l{k]’. k ft 28
Таблица 1.3 а Xi 0,1 0,2 0,5 0,9 20 —84 —47 62 206 30 — 114 —59 108 325 40 — 143 —70 150 442 50 — 172 —81 193 560 Тогда оптимальное количество комнат в гостинице в зависимости ота: а 0,1 0,2 0,5 0,9 '"'"опт 20 . 20 50 50 Критерий Сэвиджа. Строят матрицу «сожалений»: Таблица 1.4 0 10 20 30 40 50 20 0 0 0 — 135 —270 —405 30 —47 —48 —47 0 . — 135 —270 40 -95 —95 —95 —48 0 — 135 50 — 143 —143 — 144 —96 —47 0 max min uikc — max {— 405, — 270, — 135, — 143} = — 135. Таким образом, предстоит сделать выбор между различными решениями: по критерию Вальда строить 20 комнат; по критерию Лапласа строить 40 комнат; по критерию Гурвица строить 20 комнат, если заказчик — пессимист и 50 комнат* если он оптимист; наконец, по критерию Сэвиджа следует строить 40 комнат. Какое- из возможных решений предпочтительнее? Это определяется выбором со- ответствующего критерия (Вальда, Лапласа, Гурвица или Сэвиджа). 29
Выбор критерия принятия решений является наиболее сложным и ответственным этапом в исследовании операций. При этом не суще- ствует каких-либо общих рекомендаций или советов. Выбор критерия должен производить заказчик на самом высоком уровне и в макси- мальной степени согласовывать этот выбор с конкретной спецификой задачи, а также со своими целями. В частности, если даже минимальный риск недопустим, то следует применять критерий Вальда. Если наоборот, определенный риск впол- не приемлем и заказчик намерен вложить в некоторое предприятие столько средств, чтобы потом он не сожалел, что вложено слишком мало, то выбирают критерий Сэвиджа. При отсутствии достаточной информации для выбора того или ино- го критерия возможен альтернативный подход, который связан с вы- числением шансов на успех и разорение на основе прошлого опыта. § 4. РАЗРАБОТКА МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ В ЗАДАЧАХ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ Важнейшим этапом всякого операционного исследования является формализация постановки задачи, т. е. разработка математической мо- дели операционной задачи. Под моделью понимают некоторый мате- риальный или абстрактный объект, находящийся в определенном объ- ективном соответствии с исследуемым объектом, несущий о нем опре- деленную информацию и способный замещать его на определенных этапах познания. Главным свойством модели является то, что она не- сет определенную информацию об исследуемом объекте. По степени соответствия оригиналу модели делятся на изоморфные и гомоморфные. Изоморфные модели находятся в строгом соответствии с оригиналом и дают о нем исчерпывающую информацию. Очевидно, изоморфные модели существуют только для простых систем, в част- ности механических. Для сложных систем оказывается возможным построить модель только после упрощающих предположений. Такие модели, отражаю- щие лишь некоторые определенные свойства оригинала, называются гомоморфными. В частности, большинство операционных моделей организацион- ных систем относится к числу гомоморфных. Их получают путем со- знательного огрубления исследуемого процесса, значительного сокра- щения числа факторов, отбора среди них наиболее существенных. Тем самым, модель оказывается значительно проще объекта, благодаря чему и ,становится возможным ее исследование и анализ. Классификация моделей г Классификация моделей многоаспектная. В частности, модели раз- личаются по степени соответствия оригиналу, по принципу моделиро- вания, назначению и т. д. По степени соответствия объекта и модели последние делятся на изоморфные и гомоморфные. 30
F(t) R mg Рис. 1.2. По основному принципу моделирования модели делятся на: физи- ческие (модели геометрического подобия); аналоговые; символические; модели на универсальных ЭВМ. Физические модели имеют ту же физическую природу, что иссле- дуемый объект, но отличаются от него размерами, формой и другими характеристиками. Создание физических моделей основано на теории подобия. Типичным примером такой моде- ли является аэродинамическая тру- ба. Здесь свойства летательного аппа- рата в полете отрабатываются на мо- дели той же физической природы. Другой пример физической моде- ли: действующая модель транспорт- ных средств (например, глиссер, вез- деход, планер и т. д.). В аналоговых моделях набор од- них свойств используется для ото- бражения свойств другой физической природы. Наиболее распростра- ненными моделями такого типа являются электрические аналоги, с по- мощ'ью которых удается смоделировать механические, гидравличе- ские, транспортные, экономические и другие системы. Например, пусть рассматривается объект, который представляет собой тяжелую мате- риальную точку, подвешенную на невесомой оси. Процесс движения маятника может изучаться как при непосредственном наблюдении за его колебаниями, так и при исследовании его электрического анало- га — колебательного контура, включающего катушку индуктивности, конденсатор и активное сопротивление (рис. 1.2). Символические модели — это абстрактные модели, в которых ис- пользуется язык математики. Символические модели задач исследования операций обычно имеют вид: найти maxf(x), при условии {gi(x~) < Ь{‘ I = 1, пт, х> 0). Символические модели наиболее удобны для исследования и коли- чественного анализа. Они позволяют не только получить решение для конкретного случая (задачи), но и (что чрезвычайно важно) опреде- лить влияние параметров системы на результат решения. Символической моделью маятника является уравнение движения его центра масс вида + + = (4.1) Сравнивая (4.1) с уравнением для колебательного контура I d2i । d di । 1 ; d(JW (4.2) 31
видим, что эти уравнения одного класса и совпадают с точностью до параметров {т = L, k — R, -у = е). Именно это и позволяет заменить рассмотрение механической системы ее электрическим аналогом. • Если решить дифференциальное уравнение (4.1), мы тем самым найдем решение символической модели. Итак, символическая модель — это абстрактно-математическая мо- дель объекта, заданная в виде формул, функций или функциональных отображений, уравнений и других математических соотношений. Сим- волические модели носят универсальный характер. Моделирование на ЭВМ является наиболее мощным средством мо- делирования сложных систем произвольной физической природы. Для применения этого метода необходимо получить первоначально симво- лическую модель. Если аналитические решения на модели получить невозможно или требуется провести глубокое исследование влияния варьируемых параметров на характеристики модели, прибегают к мо- делированию на ЭВМ. Моделирование на ЭВМ является основным сред- ством моделирования в исследовании операций. В зависимости от необходимости учета статистических факторов модели разделяются на детерминированные, где все параметры и воз- действия предполагаются причинно обусловленными, и стохастиче- ские, в которых важную роль играют случайные переменные. По свойствам в переходном режиме модели принято делить на ста- тические и динамические. В динамических моделях рассматриваются характеристики и взаимодействия системы, меняющиеся во времени, в отличие от статических систем, в которых эти параметры не зависят от времени. Наконец, в зависимости от того, содержат ли модели управляемые факторы или не содержат, они делятся на конструктивные и дескриптивные, или описательные. Описательные модели не включа- ют управляемых переменных и потому не позволяют решать задачу о нахождении наиболее эффективного управления. Конструктивные модели включают управляемые переменные й по- тому в принципе служат основным целям исследования операций.— отысканию наиболее эффективного управления организационной си- стемой. Описательная модель обычно играет вспомогательную роль и ча- ще всего предшествует созданию конструктивной модели на первом этапе формулировки задачи. Принципы построения моделей в исследовании операций Качество разрабатываемых моделей в значительной мере опреде- ляется опытом, интуицией, а также творческими способностями опера- циониста. Невозможно дать готовые рецепты, как строить математи- ческую модель в той или иной конкретной ситуации, и тем более, как написать учебник, как создавать модели. Даже если бы такой учебник и был написан, то, как справедливо заметили Р. Акоф и М. Сасиени, «он скорее всего привел бы к ограни- чению творческих способностей, а не к их развитию» [1]. 32
Тем не менее анализ накопленного операционистами опыта позво- ляет выявить рациональные принципы, которые облегчают и рациона- лизируют процесс построения моделей. Использование того или иного принципа определяется как степенью понимания структуры иссле- дуемой системы, так и возможностью проникновения в ее внутренний механизм. Ниже будут рассмотрены некоторые принципы построения моде- лей. Разумеется, что ими не исчерпываются все известные принципы разработки моделей, и опытный операционист может дополнить их перечень. Принцип 1. -Изучение и анализ причинно-следственных связей. . Этот интуитивно понятный принцип используется всегда, когда структура системы достаточно проста и может быть вскрыта путем не-, посредственного обследования системы и опроса лиц, вовлеченных в ее функционирование. Рассмотрим следующий пример. Имеется некоторая снабженческая контора, которая поставляет некоторый вид продукта своим клиентам. Хранение единицы продукта связано с постоянными расходами. Спрос на продукты ? случаен и неуправляем. Предположим, что на основе статистических исследований построе- на Оценка функции распределения спроса р (г), г = 0, 1, Nmax. Если спрос превышает запас, то контора платит штраф, пропорцио- нальный величине нехватки. За каждую единицу продукта, постав- ленного клиентам, контора получает прибыль. Требуется определить такой объем запасов, при котором миними- зируется сумма ожидаемых расходов по хранению запасов и потерь вследствие дефицита. Возможна и несколько другая постановка. Найти средний объ- ем заказа х, при котором максимизируется ожидаемый доход кон- торы. Структура причинно-следственных связей здесь оказывается яс- ной и можно непосредственно перейти к составлению математической модели. Введем следующие обозначения: х— число заказываемых единиц продукта в неделю; а—прибыль на каждую проданную единицу продукта; d— штраф за единицу де- фицита; s — стоимость хранения единицы продукта (s < п); г — спрос за неделю; р (г) — вероятность спроса г. Перейдем к составлению модели. Общий выигрыш системы за неделю —ах (при объеме заказа х); потери по хранению товаров — sx; вероятность дефицита р (г > х) = = X Р (О; потери из-за дефицита d X (г — х) р (г); общий ожи- даемый доход за неделю к ^max N max D (х) = а £ р (г) • г -ф ах р (г) — sx — d £ (г — х) р (г), (4.3) г=0 г=х+1 г=Щ-1 где Англах— максимально возможная величина спроса. .3 8-3164 33
Требуется найти такой объем заказа х, при котором максимизн руется доход/? (х). Как видим, в данной модели имеются управляе- мая переменная х, неуправляемая — г и неуправляемые константы: a, d, s. Принцип 2. Использование аналогии. В ситуациях, когда структура системы (задачи) достаточно очевид- на, но метод ее математического описания неясен, можно воспользо- ваться ее сходством с системой, имеющей более простую структуру либо более изученной. В этих случаях можно воспользоваться либо более простой аналогичной системой либо (что гораздо удобнее) ее ма- тематической моделью. Приведем следующий пример. Имеется т пунктов возникновения информации Alt ..., Ат, интен- сивность потока информации из пункта Аг равна i = 1, т. Имеется также п пунктов централизованной обработки информа- ции Въ В2, ..., Вп. Эти пункты могут представлять собой ВЦ коллек- тивного пользования Обозначим через Л/ производительность ВЦ в пункте В/. Пусть стоимость передачи информации объемом хц из пункта Аг в В,- определяется следующим соотношением: I CijXij + dij, если Xq > 0; cii (xii) = | g, если _ Q, (4.4) где cif — удельные затраты по передаче единицы информации по ка- налу (г, /); (1ц — фиксированные затраты, например, месячная аренд- ная плата. Пусть стоимость обработки единицы информации на ВЦ/ равна с/. Требуется определить наиболее экономичный вариант обработки информации, т. е. объемы информационно-вычислительных работ, вы- полняемых всеми ВЦ для всех абонентов, при которых суммарные затраты на передачу и переработку информации в сети ВЦ будут ми- нимальными. Обозначим через Л.г7 объем информации абонента А(, перерабаты- ваемый в ВЦ/. Тогда необходимо найти такие K°ij, при которых L (til,) = min £ £ сц (Ъц) A-YiCjYi Ц (4.5) {kij} < i i I при условии J]Z//= X/, (4.6) / S Klj < Л/. (4.7) Хотя по содержательной постановке эта задача не относится к транспортным, по структуре математической модели она аналогична ей. Поэтому для решения ее можно использовать соответствующий аппарат, разработанный для транспортных задач. Указанный выше принцип положил начало целому направлению в теории моделирования, известному под названием аналогового. 34
Принцип 3. Проведение экспериментов для выявления су- щественных переменных. В тех случаях, когда анализ данных не позволяет определить влия- ние отдельных переменных на показатели работы системы, возникает необходимость провести эксперименты с целью выявления существен- ных переменных и их влияния на эти показатели. Таким образом, отличительной особенностью этого принципа яв- ляется использование эксперимента. Приведем следующий пример [11. Нефтяную компанию интересовала прогностическая оценка ее до- ходов от новых автозаправочных станций, которые она хотела построить в ряде пунктов. Требовалось исключить такие пункты, где сооружение станций могло оказаться нерентабельным. Первоначаль- но эта задача была предложена группе специалистов по исследованию сбыта, которые опросили многих сотрудников и выяснили их мнение относительно того, какие параметры автозаправочной станции (АЗС) влияют на объем продажи бензина и других горюче-смазочных мате- риалов. Было выявлено около 65 переменных. Далее был проведен множественный линейный регрессионный ана- лиз статистических данных, собранных по функционированию не- скольких сотен станций. В результате этого анализа была отобрана примерно половина всех параметров, попавших в разряд «статисти- чески значимых». Однако полученная после отсева незначимых переменных модель, не обеспечивала требуемой точности оценок будущего сбыта. Впоследствии эта задача была поставлена перед операционной груп- пой. Операционисты были против учета столь большого числа факто- ров, так как были убеждены, что, как правило, степень понимания физики процесса обратно пропорциональна числу переменных, фигу- рирующих в его описании. Поэтому было принято решение выяснить,, насколько можно продвинуться в решении задачи, рассматривая сна- чала только одну переменную. Было высказано предположение, что, возможно, интенсивность движения является наиболее существенной переменной в забракованной модели регрессии. Была поставлена за- дача вскрыть механизм влияния этой неуправляемой переменной на объем продажи бензина для заправки. В связи с этим был разработан точный метод описания движения автотранспорта. Существует всего 16 возможных маршрутов, по кото- рым автомашина может проходить через дорожные пересечения, где обычно размещаются АЗС. Изучение движения показало, что лишь небольшое число маршрутов оказывает существенное влияние на объем продажи бензина. Упорядочение маршрутов движения по такому по- казателю, как процент автомашин, останавливающихся для заправки, навело на мысль, что по мере того, как время, затрачиваемое на оста- новку, возрастает, процент заправляющихся автомашин, следующих по данному маршруту, уменьшается. Эта гипотеза была затем прове- рена экспериментально. Была также найдена связь между потерями времени на. заправку и процентом останавливающихся на АЗС машин. .ч* Зб
Затем были подвергнуты испытанию и остальные переменные, при- знанные статистически значимыми в ходе регрессионного анализа. Требовалось выяснить, влияет ли какая-либо из этих переменных на время, затрачиваемое на заправку. Было установлено, что большин- ство из них оказывает такое влияние. В частности, к этим переменным относятся: число въездов и выездов, их расположение, число бензоко- лонок, численность обслуживающего персонала и т. д. Сначала влияние этих переменных было оценено теоретическим путем, а затем полученные оценки были проверены и подтверждены экспериментально. В результате была п встроена новая модель, которая давала значительно более точные прогнозы оценки продажи бензина для вновь строящихся АЗС. Этого удалось достигнуть благодаря вскрытию внутренних глубин- ных взаимосвязей между неуправляемыми и контролируемыми пере- менными и формулировке основной гипотезы о связи между потерями времени на остановку для заправки и объемом продажи бензина. § 5. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМ ’ ОРГАНИЗАЦИОННОГО УПРАВЛЕНИЯ В случаях, когда необходимо провести исследование сложных си- стем организационного управления, для которых отсутствуют аналити- ческие модели (методы описания), традиционные средства моделиро- . вания оказываются бессильными. В этом случае прибегают к так на- зываемому «имитационному моделированию». Имитационное моделирование (от латинского «имитацио» — по- дражание, копирование) обозначает процесс имитирования поведения системы на модели с целью получения информации о ней. Согласно Шеннону имитационное моделирование есть «процесс конструирования модели реальной системы и постановки эксперимен- тов на ней с целью понимания поведения системы либо опенки (в рам- ках ограничений, накладываемых некоторым критерием или совокуп- ностью критериев) различных стратегий, обеспечивающих функцио- нирование данной системы» [53]. X отя имитационное моделирование было известно до возникновения ЭВМ. однако только с развитием вычислительной техники оно стало универсальным и мощным инструментом исследования систем. Благодаря большому быстродействию современных ЭВМ оказыва- ется возможным за сравнительно короткое время «проиграть» поведе- ние сложной системы на модели и выполнить анализ ее функциони- рования. В достаточно сложных системах организационного управления всегда имеются некоторые случайные или неопределенные факторы, воздействующие на систему и вызывающие флуктуации характеристик ее поведения. Если этими колебаниями можно пренебречь) то разрабатывается детерминированная модель. Если же случайные факторы играют су- щественную роль в функционировании системы, то возникает необхо- димость в создании статистических моделей. Термин «имитационное 36
моделирование» является более широким, чем «статистическое моде- лирование», и включает в себя статистические модели как составную и неотъемлемую часть. Имитационное моделирование (ИМ) используется для следующих целей: а) описания поведения систем; б) построения теорий и гипотез, которые могут объяснить наблю- даемое поведение; в) предсказания будущего поведения системы. . ИМ нашло свое применение в самых различных сферах человече- ской деятельности, в частности: а) экономике, б) технике, в) биологии, г) социологии, д) на транспорте, е) в связи, ж) торговле, з) исследо- вании проблем экологии, эволюции и т. п. О широте использования ИМ при решении задач исследования операций дает представление следующая таблица, в которой пред- ставлены результаты проведенного Шенноном и Бэйлесом обследова- ния научной деятельности группы действительных членов Американ- ского общества исследования операций [53]. Полезность методов исследования операций в повседневной научной работе Таблица 1.5 № п.п Методы Относитель-• мая ценность метода 1 Теория вероятностей и статистические оценки 0,182 2 Экономический анализ (оценка эффективности затрат) 0,150 3 Имитационное моделирование 0,143 4 Линейное программирование 0,120 1 5 Управление запасами 0,097 6 Массовое обслуживание (теория очередей) 0,085 7 Сетевые модели (включая методы календарного планирова- 0,072 ния и СПУ) 8 Модели замены 0,042 9 Теория игр 0,040 10 Динамическое программирование 0,031 11 Методы поиска 0,020 12 Нелинейное программирование 0,018 Всего 1,000 Отметим условия, при которых может оказаться целесообразным использование имитационного моделирования: 1) не существует законченной математической модели данной за- дачи либо еще не разработаны аналитические методы решения сформу- лированной математической модели, к этой группе относятся, напри- мер, многочисленные модели массового обслуживания; 2) аналитические методы имеются, но соответствующие им мате- матические процедуры столь сложны и трудоемки, что имитационное моделирование дает более простой способ решения задачи; 37
3) аналитические решения существуют, но их реализация невоз- можна вследствие недостаточной математической подготовки имею щегося персонала. В этом случае следует сопоставить затраты на про- ектирование, испытания и работу модели с затратами, связанными с приглашением специалистов со стороны; 4) имитационное моделирование может оказаться единственной возможностью вследствие невозможности постановки эксперименталь- ных наблюдений в реальных условиях; соответствующим примером может служить изучение поведения космических кораблей в условиях межпланетных полетов; 5) кроме оценки определенных параметров желательно осущест- вить на имитационной модели наблюдение за ходом процесса в тече- ние определенного периода времени; 6) для долговременного анализа поведения систем или медленно протекающих процессов может понадобиться сжатие временной шкалы; здесь возможности имитационного моделирования чрезвычайно широ- ки, оно позволяет полностью контролировать время изучения процесса, замедляя или ускоряя его путем изменения масштаба времени моде- лирования. К этой категории задач относятся, например, исследова- ния процессов эволюции, развития городов, экологических систем и др. Несмотря на столь широкие возможности имитационного модели- рования как универсального инструмента исследования сложных си- стем, ему свойственны и определенные ограничения и недостатки. К их числу относятся следующие: 1. Имитационная модель в принципе неточна и мы не в состоя- нии измерить степень этой неточности. Это затруднение может быть преодолено лишь частично путем анализа чувствительности модели к изменению определенных параметров; 2. В отличие от аналитической модели, имитационная не позволяет непосредственно оценить влияние на поведение системы варьирования тех или иных ее контролируемых параметров, поскольку она дает чис- ленные результаты. Получение такой информации связано с дополни- тельными экспериментами, это затрудняет применение ИМ для оптими- зации систем; 3. Разработка хорошей имитационной модели часто обходится до- рого и требует значительного времени и наличия высокоодаренных специалистов. Дж. Форрестер, в частности, указывает, что для созда- ния хорошей модели внутрифирменного планирования может понадо- биться от трех до 11 лет [53). Указанные обстоятельства показывают, что хотя ИМ является чрезвычайно ценным и полезным методом для решения сложных задач управления, этот метод, конечно, не панацея для решения всех проб- лем управления. Разработка и применение ИМ все еще больше ис- кусство, чем наука. Следовательно, как и в других видах искусства, успех или неудача определяется не столько методом, сколько тем, как он применяется. Требования к хорошей модели. Определим ряд существенных черт, которыми должна обладать хорошая имитационная модель. Модель должна быть: №
1) связана с функционированием исследуемой системы; 2) ориентирована на решение проблем реального мира; 3) построена так, чтобы служить подспорьем тем, кто управляет системой или анализирует ее поведение. Поскольку имитация связана с решением реальных задач, мы долж- ны быть уверены в том, что конечные результаты точно отражают истинное положение вещей. Следовательно, модель, которая может дать абсурдные ответы, должна быть сразу взята под подозрение. Лю- бая модель должна быть оценена по максимальным пределам измене- ний величин ее параметров и переменных. Если модель дает нелепые ответы на поставленные вопросы, необходимо вернуться к этапу кон- струирования модели. Модель должна быть способна отвечать на вопросы типа, «а что если... (изменить параметры системы, характеристики входных воз- действий или управляемых переменных и т. п.)», поскольку это именно те вопросы, которые наиболее важны для исследователя или лица, принимающего решения. Исходя из вышесказанного, сформулируем основные требования, которым должна удовлетворять хорошая модель. Она должна быть: целенаправленной; простой и понятной пользователю; надежной в смы- сле гарантии от абсурдных ответов; удобной в управлении и обраще- нии; полной с точки зрения возможностей решения главных задач; адаптивной, позволяющей переходить к другим модификациям или обновлять данные; допускающей постепенные изменения или услож- нения. Основные этапы процесса имитации Процесс имитационного моделирования включает следующие эта- пы [53]: 1. Постановку проблемы. 2. Анализ системы — установление границ, ограничений и показа- телей эффективности системы, подлежащей изучению. 3. Конструирование модели — переход от реальной системы к не- которой логической схеме (модели). 4. Подготовку данных — отбор данных, необходимых для построе- ния модели, и представление их в соответствующей форме. 5. Трансляцию модели — описание модели на языке программи- рования. 6. Оценку адекватности — повышение до приемлемого уровня степени уверенности, с которой можно судить относительно коррект- ности выводов о реальной системе, полученных на основе обращения к модели. 7. Стратегическое планирование — планирование эксперимента, который должен дать необходимую информацию. 8. Тактическое планирование — определение способа проведения каждой серии испытаний, предусмотренных планом эксперимента. 9. Экспериментирование — процесс осуществления имитации а целью получения желаемых данных и анализа чувствительности. з»
Беспомны Рис. 1.3.
10. Интерпретацию результатов — т. е. построение выводов по данным, полученным путем имитации. 11. Реализацию — практическое использование модели и резуль- татов моделирования. 12. Документирование — т. е. регистрацию хода осуществления проекта и его результатов, а также процесса создания и использова- ния модели. Этапы процесса имитации в их взаимосвязи приведены на рис. 1.3. Поскольку многие из перечисленных этапов совпадают с соответ- ствующими этапами разработки моделей других типов, дадим харак- . теристику лишь некоторых специфических этапов имитационного мо- делирования. Проверка модели. Проверка модели представляет собой процесс, в ходе которого достигается приемлемый уровень уверенности в том, что любой вывод о поведении системы, сделанный на основе моделиро- вания, будет правильным. Проверка модели — этап чрезвычайно важ- ный, ввиду того что имитационные модели создают впечатление реаль- ности и как разработчики моделей, так и их пользователи легко про- никаются к ним доверием. Поскольку исходные допущения (предпо- ложения), на основе которых строилась модель, могут оказаться скры- тыми или непонятными для пользователя за массой деталей в описании функционирования, проверка, выполненная без должной тщательности, может привести к катастрофическим последствиям. Такого процесса, как «испытание» правильности модели, не существует. Вместо этого экспериментатор в ходе разработок должен провести серию проверок, чтобы укрепить свое доверие к модели. Применяя первую из них, мы должны убедиться в том, что модель верна в первом приближении. Например, следует поставить такой во- прос: не будет ли модель давать абсурдные ответы, если ее параметры будут принимать предельные значения. Необходимо убедиться также и в том, что результаты, которые мы получаем, имеют смысл. Для этого необходимо сравнить результаты на выходе имитацион- ной модели с данными, получаемыми на выходе реальной системы. Второй метод оценки адекватности модели состоит в проверке ис- ходных предположений и третий — в проверке преобразований ин- формации от входа к выходу. Последние два метода могут привести к необходимости использо- вать статистические выборки для оценки средних значений и диспер- сий, дисперсионный анализ, регрессионный анализ, факторный ана- лиз, методы статистической проверки гипотез. Таким образом, способы оценки имитационной модели делят на три категории [531: I) верификацию модели, используя которую, экс- периментатор хочет убедиться в том, что модель ведет себя так, как было задумано; 2) оценку адекватности — проверку соответствия между поведением модели и поведением реальной системы;3) проблем- ный' анализ — формирование статистически значимых выводов на ос- нове данных полученных путем машинного моделирования. Стоатегическое и тактическое планирование. Поскольку имитацио- нное моделирование представляет собой процесс экспериментирования 41
на модели о целью получения информации о реальной системе, необходимо позаботиться о планировании экспериментов на модели с целью извлечения максимально возможного объема информации при ограниченных затратах на выполнение экспериментов. При этом в зависимости от целей и содержания выделяют стратегическое и так- тическое планирование. Стратегическое планирование отвечает на вопрос, как планиро- вать эксперименты, которые дают желаемую информацию. Планиро- вание эксперимента широко используется в имитационном моделиро- вании систем. В любом экспериментальном исследовании можно вы- делить два типа задач: 1) определение сочетания параметров, которое оптимизирует переменную отклика (целевую функцию системы); 2) вы- яснение соотношения между переменной отклика и контролируемыми в системе параметрами. Для обеих этих'задач разработаны и могут быть использованы методы планирования экспериментов. Цель исполь- зования планируемых экспериментов двоякая: 1) обеспечение эконо- мии с точки зрения уменьшения числа необходимых экспериментов; 2) задание структурной основы обучения самого исследователя. Тактическое планирование связано с определением способов прове- дения испытаний, намеченных планом эксперимента. Тактическое планирование прежде всего связано с решением задач двух типов: 1) определением начальных условий в той мере, как они влияют на дости- жение установившегося режима; 2) возможно большим сокращением дисперсии получаемых оценок при одновременном сокращении необ- ходимых размеров выборки. Первая задача возникает вследствие искусственного характера функционирования модели. В отличие от реального объекта, который функционирует непрерывно, имитационная модель работает эпизоди- чески, экспериментатор запускает модель, делает свои наблюдения, а затем выключает ее. Всякий раз, когда начинается новый прогон модели, требуется некоторое время, чтобы модель пришла в установив- шийся режим, соответствующий режиму работы объекта. Таким обра- зом, начальный период работы модели искажается из-за влияния на- чальных условий в момент ее запуска. Следовательно, задача состоит в определении таких начальных условий, при которых время переход- ного процесса в модели было бы по возможности минимальным. Вторая задача тактического планирования связана с необходи- мостью оценить точность результатов эксперимента и степень надеж- ности заключений или выводов. Поскольку при имитационном моделировании мы оперируем реа- лизациями случайных процессов, все определяемые по результатам экспериментов характеристики представляют собой некоторые оценки случайных величин и процессов. Для уменьшения разброса характе- ристики предложен ряд методов, которые могут существенно снизить требуемый размер выборки и число повторений эксперимента [7, 53]. Экспериментирование и анализ чувствительности. Одним из наи- более важных понятий в ИМ является анализ чувствительности. Под ним понимается определение степени изменчивости (чувствительности) окончательных результатов моделирования к изменению значений 42
параметров модели. Анализ чувствительности состоит в том, что ве- личины параметров модели систематически варьируют в некоторых пределах 'и при этом наблюдается изменение исследуемых характе- ристик модели. , Поскольку многие параметры, задаваемые в модели, определяются на основе весьма недостоверной информации, знание чувствительности модели к вариациям значений этих параметров очень важно. Если в ходе экспериментов выясняется, что модель нечувствительна (или ма- лочувствительна) к изменению некоторого параметра, достаточно ограничиться в модели его средним значением. Если же при незначи- тельных вариациях величины некоторого параметра результаты модели- рования изменяются сильно, то это является основанием для затраты дополнительного времени или средств с целью получения более точных оценок этого параметра. Заметим, что имитационное моделирование как нельзя лучше под- ходит для анализа чувствительности благодаря тому, что эксперимен- татор может на модели варьировать любой параметр в желаемых пре- делах и наблюдать за изменениями в поведении модели, полностью контролируя весь ход эксперимента. Пример 1.6. В качестве иллюстрации применения имитационного моделирования Лв задачах исследования операций рассмотрим типичную производственную задачу обслуживания станков Д Среди практических задач массового обслуживания типичной и очень важной в практическом отношении является задача обслуживания станков. В самой простой форме ее можно продемонстрировать на примере наблюдения за рабочим-многоста- ночником. Закрепленные за ним станки время от времени останавливаются и простаи- вают до тех пор, пока рабочий не подойдет и не устранит неисправность. Если одно- временно остановятся два или более станков, то рабочий может подойти сначала к од- ному из них, и, следовательно, другие станки будут в ожидании ремонта простаивать и не давать продукции. Такая ситуация приводит к постановке задачи обслуживания станков. Производственные потери имеют место и в период ремонта, и в интёрвале ожи- дания обслуживания. Производительность каждого станка и каждого рабочего за- висит от частоты ремонта, его продолжительности и числа станков, обслуживаемых одним рабочим. Поэтому важно знать оптимальное число рабочих, требуемых для об- служивания данного количества станков. Постановка задачи. Опишем реальную производственную ситуацию, приведшую к задаче обслуживания станков. Имеется группа станков, причем в общем случае в связи с различной степенью износа станки обладают неодинаковыми характеристи- ками. Станок может находиться как в рабочем, так и в выключенном состоянии в связи с его ремонтом, наладкой. Каждый станок является источником заданий. Всего в результате анализа было выделено 5 типов заданий, например, установка новой заготовки, ремонт станка и т. д. Каждое задание характеризуется периодичностью появления, длительностью выполнения, резервом времени на выполнение, минимальным и максимальным размен ром бригады, которая может его выполнять. Периодичность (время между двумя по- следовательными появлениями одного задания) может зависеть как от времени работы станка, так и от реального времени. Например, моменты установки заготовок в станок определяются темпом работы станка, тогда как моменты занесения рабочим записей в журнал учета есть функция реального времени. Обычно предполагают, что интерва- лы между соседними появлениями одного и того же события (задания) подчинены экспоненциальному закону распределения или распределению Эрланга, или какому- то другому стандартному распределению. Такое предположение должно быть 1 Пример взят из монографии Р. Шеннона «Имитационное моделирование сис- тем—искусство и наука». Мир, М., 1978. 43
Пример описания характеристик заданий Метод планирования 03 « CD J > Л . ф 03 1 Ф я £ <4 Р S Ч g s к S И Е О О- Я1 Ф S 33 S. ч 2? е ф £< я ж ч & 5 Е й s * О о g 5 е | н й 5 g s » § § га g § | Э - В О я g я и В в о® § § ё I S g? § Is’gs о X ф d co UU н с H О x S' nUU ф d co ийенибо ими -ЯИХЯОффб 1НЭИПИфф£О>1 1,6 1,0 1,0 1,0 1,0 s wtfBJHdg qxooHireiroHh СЧ T— Закон распреде- ления времени вы- полнения задания математиче- ское ожидание (параметры) 2,5 (средне- квад. откло- нение 0,5) 4,0 -(преде- лы 3,0; 5,0) 2,0 (преде- лы 1,5; 2„5) 1,0 (преде- лы 0,5; 1,5) , ю,о т них ГС н н а. <Т> | Закон распреде- ления интервалов резервного времени математиче- ское ожидание (параметры) О °- °- О § О, г—х О О ГЛ f-t Q со сч Е г них Р4 Е[ Е( ' а, £4 Закон распреде- ления времени поступления 1 математиче- ское ожидание (параметры) 1 25,0 40,0 18,0 8,0 (пределы 3,0; 13,0) - 80,0 X иих CD CD 1-Х СХ CD OHeadadu чхгчр хэжоуу Ф Ф Ф 03 ф Ж ГС I t( £ виниДве aHjAdtf qxeaiqdodu хэжодо сз со ф ф 03 Ч Ч ГС X с( Требуемое состояние | станка S д ¥ я я 8 й S « о £Г Е и & г о v Й 5 2 2 ч Я ч и ч Ч я й М Л м и ® § о 3 са ca m ® й н m Специальность рабочего , sS , « \О S \О S » «о w S3 ЯфОЙ' ЯфО 5 и s .5« ®1=с'й л® ч Я- о га V Е ч о га S 2 в a Я S Йиа гаш Я W н-z q ZC . О О 2 2 Е ’5 о 'О 2S93 £ S Л Ud 03 н ч л д ф О О s д К а Окд U сх ьинвй'ее dswoH сч со -Ф ю между временем для наибольшей и для наименьшей численности. 44
обязательно проверено на реальных данных. Некоторые задания могут или должны выполняться не одним рабочим, а целой бригадой. В таком случае должно быть зада- но время для выполнения всех возможных вариантов задания. Кроме того, для некоторых заданий может вводиться резерв времени. Он означает, что задание может быть готово к выполнению и ожидать обслуживания в течение за- данного резерва времени и это не приведет к простою. Задания выполняются рабочими — операторами разных профессий, различной квалификации. Некоторые задания выполняются рабочими-подсобниками. Наконец, Данные озаданиях: Тип Периодичность Резерв времени Длительность выполнения Минимальный размер бригады Максимальный размер дригады Иыитаааошя t модель Статистические данные по станкам: Время работы Время ремонта Продолжительность вынужденных простоев Разряд j Типы обслуживаемых j станков Данные о станочниш: Статистические данные по станочникам: Производственная нагрузка Простои Перерывы поличным нуждам Статистические данные по заданиям: Время Выполнения частоты задержек Частота ‘простоев Рис. 1.4. имеются и такие задания, которые могут выполняться рабочими нескольких профес- сий. Время обслуживания задания представляет собой случайную величину с извест- ным законом распределения. Основные характеристики заданий и распределения дли- тельности их обслуживания приводятся в табл. 1.6. Вводятся приоритеты в обслуживании заданий. Каждое задание может иметь один из трех приоритетов: 1) мои;ет прерывать другие задания, но само не может быть пре- рвано; 2) не может прерывать и не может быть прервано; 3) не может прерывать, по может быть прервано. Кроме того, для несрочных заданий (т. е. таких, выполнение которых может быть отложено при отсутствии рабочей силы), вводится дополнительная категория. Эти за- дания не вызывают наложения операций обслуживания, но увеличивают рабочую нагрузку. Предположим, что предприятие начинает выпуск нового типа изделий. Имеется шесть станков, которые изготавливают эти изделия и требуют периодического обслу- живания со стороны рабочих-станочников. Некоторые виды заданий на обслуживание появляются по графику, тогда как другие возникают в случайные моменты времени. Станки обслуживаются рабочими трех специальностей — станочником, подсобным рабочим и слесарем-ремонтником, имеющими разную часовую тарифную ставку. Различия в уровне квалификации не позволяют каждому рабочему выполнять все опе- рации. Известны потери на производстве за единицу времени простоя станка. Требу- ется определить оптимальное число рабочих каждой категории, при котором миними- зируется сумма затрат на рабочую силу и потерь вследствие простоев станков от несво- евременного обслуживания. Выбор метода решения. Решение указанной задачи определения необходимого числа рабочих может быть получено одним из следующих традиционных методов. 1. Использование таблиц режимов обслуживания. Недостаток этого метода — не- обходимость в слишком упрощенной постановке задачи, так как при составлении таблиц действуют следующие ограничения: однотипность станков, одинаковая квали- фикация операторов, способность каждого из них работать на любом из станков, выполнение одного задания только одним оператором, недопустимость прерывания заданий низкого приоритета при появлении более приоритетны^ заданий. 45
' выполнения задания задания к выполнению Исключит выполненное задание из списка Б Обновить статстшеские данные Спланировать момент появления задания из списка / Подавить новое задание в список 5 в соответствии с заданными приоритета- ми НЕТ Ссрормировать признак остановки станка, изме- нить график при необходимости. Проверить список текущих заданий б Г
НЕТ Может ли текущее задание преры ать другое? Ад ожетли .. прерывание НЕТ обеспечить высвобождена ~ нужных рабо- '''Прервать соответствую- щее задание. Освободить рабочих , ' Внести изменения в списки Аид. Рис. 1.6.
Сводка результатов имитационного моделирования Статистические данные по станкам Таблица 1.7 Среднее время беспростойной работы 377,689 Минимальная граница 278,944 Среднее время простоев . 102,311 Среднее время ремонта 83,835 Минимальная граница 45,655 Среднее время ожидания 18,454 Минимальная граница 5,180 Процент времени беспростойной работы 78,685 Максимальная граница 408,563 Процент времени простоев 21’315 Процент времени ремонта 17,466 Максимальная граница 139,464 Процент времени ожидания 3,845 Максимальная граница 53,656 Статистические данные по станочникам. Номер станоч-j ника Раз- ряд Нагрузка? ч Нагрузка? % Личное время? ч Личное время? % Простои? ч Простои? % 1 2 4 6 1 1 2 3 3 287,95 255,71 263,38 208,59 173,57 90,67 56,46 50,14 51,84 40,90 34,03 17,78 90,00 90,00 90,00 90,00 90,00 90,00 17,65 17,65 17,65 17,65 17,65 17,65 132,03 164,27 156,60 211,39 246,41 329,31 25,89 32,21 30,71 41,45 48,32 64,57 Статистические данные по заданиям Номер задания С- Частота появления за смену Среднее время выполнения ' I Время на задание? % . ! Максимальный ин- тервал между заданиями i Процент заданий? i выполненных с 1 задержкой । : Максимальная дли- i тельность задержки Частота поступления заявок во время вы- полнения предыду- щего задания 1 2 4 \ 3 3 2 13,45 9,79 21,25 34,42 <62 2,30 3,99 2,00 0,79 9,52 18,90 20,74 22,60 14,37 23,38 3,90 4,97 2,46 1,49 50,82 32,61 17,45 44,90 30,99 18,92 6,86 4,33 18,17 17,52 39,74 4 0 1 3 0 Таблица 1.8 Результаты моделирования Состав бригады Относи- тельное время простоев Затраты на рабо- чую силу в рас- чете на час? ед. ст. Потери от простоев в расчете на час, ел ст Суммарные издержки в расчете на iac. ед. ст. Размер группы:' 6 станков 2 Ст, 2 П, 1 Сл 1 Ст, 2 П, 1 Сл 3 Ст, 2 П, 1 Сл 0,280 0,345 0,280 26,0 21,0 31,0 50,40 62,10 50.40 76,40 83,10 81.40 48
Продолжение табл. 1.8 Состав бригады Относитель- ное время простоев Затраты на рабо- чую силу в рас- чете на час., ед. ст Потери от простоев в расчете на час, ед. ст. Суммарные издержки в расчете на час, ед. ст. 2 Ст, 1 П, 1 Сл 0,320 22,0 57,60 79,60 2 Ст, 3 П, 1 Сл 0,280 30,0 50,40 80,40 3 Ст, 1 П, 1 Сл 0,325 27,0 58,50 85,50 1 Ст, 3 П, 1 Сл 0,300 25,0 54,00 79,00 1 Ст, 2 П, 2 Сл 0,290 29,0 52,20 81,20 2 Ст, 2 П, 2 Сл 0,213 34,0 38,34 72,34 2 Ст, 1 П, 2 Сл 0,286 30,0 51,48 81,48 1 Ст, 3 П, 2 Сл 0,280 33,0 50,40 83,40 3 Ст, 1 П, 2 Сл 0,261 35,0 46,98 81,98 3 Ст, 3 П, 1 Сл 0,255 35,0 45,90 80,90 3 Ст, 2 П, 2 Сл 0,205 39,0 36,90 75,90 2 Ст, 3 П, 2 Сл 0,203 38,0 36,54 74,54 3 Ст, 3 П, 2 Сл 0,195 43,0 35,10 78,10 Прогоны имитационной модели повторялись до получения устойчивой оценки для относительного времени простоев с точностью до 0,05. Затраты на рабочую силу в расчете на час, ед. ст.: Станочник (Ст) ' 5 Подсобный рабочий (П) 4 Слесарь-ремонтник (Сл) 8 Потери от простоев в расчете на станок за час — 30 ед. ст. 2. Теория очередей. В случае, когда потоки заданий являются пуассоновскими, время их обслуживания распределено по экспоненциальному закону, а принятая дис- циплина обслуживания — «первым пришел — первым обслуживается», для решения указанной задачи возможно применить аппарат теории массового обслуживания. К сожалению, большинство из этих предположений на практике не выполняются. Кроме того, такой подход не позволяет исследовать другие дисциплины обслуживания заданий. Указанные недостатки и ограничения не позволяют применить вышепере- численные методы для решения поставленной задачи. Однако они были использованы для получения первого приближения оценок численности рабочих. Описание моделирующей программы. Для решения задачи была разработана ими- тационная модель, входные и выходные характеристики которой приведены на рис. 1.4. Вход включает в себя данные о выполняемых заданиях и конфигурации человеко-машинной системы. На выходе определяются продолжительность работы, ремонта и вынужденных простоев для каждого станка, нагрузка и степень использо- вания каждого станочника и накапливаются статистические данные, получаемые при работе модели. На рис. 1.5 приведена структурная схема моделирующей программы. Модель работает в различных режимах, обеспечивающих различный уровень де- тализации выходных данных. В табл. 1.7 приведены все выходные параметры по результатам моделирования. Полученная на модели сводка по станкам содержит средние значения и диапазон из- менения времени работы, ремонта и вынужденного простоя станков за моделируемый период времени. Сводка по станочникам показывает рабочую нагрузку, время работы и время простоев каждого из них. Сводка по заданиям дает частоту появления, вре- менные задержки и вынужденные простои по каждому заданию. Приоритеты для обслуживания заданий назначались следующим образом. Отно сительные приоритеты определяются по данным о резервах времени моделирующей программой. Задание с минимальным резервом должно выдаваться оператору первым. Среди заданий с равными резервами времени первый приоритет имеет задание с 4 8-3164 49
наименьшим временем выполнения. При поиске путей сокращения времени выпол- нения заданий эти правила можно усложнить и проанализировать более сложные вы- ходные результаты. Данная имитационная модель была применена для решения задачи определения оптимального числа рабочих для обслуживания группы из шести станков. В результа- те анализа ожидаемого интервала поступления заданий и времени их выполнения была вывод о целесообразности использования от трех до шести рабочих для обслуживания этой группы станков. Применение теории массового обслуживания позволило най- ти оценку оптимального числа рабочих: три. станочника или три подсобных рабочих и два слесаря-ремонтника. При этом общее ожидаемое время, в течение которого стан- ки не работают, составило по оценке 51%. Для уточнения требуемой численнос- ти рабочих для обслуживания станков бы- ла использована имитационная модель. Имитационное моделирование выполня- лось для групп из трех и шести станков. Результаты анализа приведены в табл. 1.8. Легко видеть, что оптимальная числен- ность работников такова: два станочни- ка (Ст), два подсобника (П) и два слеса- ря (Сл), при этом относительное время простоя 21,3%, а суммарные издержки в час составляют 72, 34 ед. ст. Рис. 1.6. Имитационная модель позволила не только определить оптимальную численность рабочих, но и провести исследование различных факторов и организационных меро- приятий, влияющих на критерий эффективности системы. В частности, требовалось выяснить, какой эффект может быть получен, если снять ограничение, не позволяющее' ремонтникам помогать в работе станочникам. С этой целью в модель было введено условие, что ремонтник, не занятый непосредственно ремонтом станков, помогает станочнику. В результате простои снизились с 21,3 до 19,7% , а затраты уменьшились на 23 единицы в смену. Требовалось выяснить влияние изменения резерва времени на его выполнение. Очевидно,уменьшение резерва времени Г^может повлечь за собой увеличение време- ни простоев тпр, и наоборот. В имитационной модели были проведены прогоны при различных резервах времени. На рис. 1.6 приведен график соответствующей зависи- мости, из которого следует, что увеличение резервов времени свыше 3 мин уже почти не изменяет вынужденных простоев. Таким образом, использование имитационной модели в данном примере позво- лило не только ответить на основной вопрос задачи, но и провести анализ влияния различных факторов на результаты решения. Проведенные эксперименты подтвердили достаточно высокую гибкость имитационной модели. Данная модель может приме- няться и в задачах, непосредственно не связанных с обслуживанием станков, для анализа систем с конечным числом источников заявок и конечным числом приборов обслуживания. § 6. ДЕЛОВЫЕ ИГРЫ КАК МОДЕЛИ Особой разновидностью моделирования в исследовании операций являются так называемые операционные, или деловые, игры. Дело- вая игра представляет человеко-машинный процесс моделирования, где человек-руководитель или группа людей участвуют в процессе при- нятия управленческих решений, а последствия этих решений оцени- ваются путем многократного проигрывания на ЭВМ. 50
Деловые игры, таким образом, играют роль тренажа для отработки у будущих организаторов производства умения ориентироваться в сложной производственной обстановке и принимать своевременные и разумные решения в критических ситуациях. Конструктивными элементами любой деловой игры являются: 1) участники игры, выступающие руководителями структурных хозяйст- венных единиц, цехов, предприятий и других подсистем организа- ции, называемых «распорядительными центрами» (РЦ); 2) правила, ограничивающие и направляющие проявления интересов соответственно представлениям конструктора игры о моделируемом объекте; 3) информационные базы, или фонд, отражающий состояние и движение ресурсов моделируемой хозяйственной системы и стимулирующий проявление интересов у людей — участников деловой игры. Очевидно, что замена информационной базы на действительные ресурсы превратит любую игру в натуральный эксперимент со всеми вытекающими отсюда последствиями. Основными направлениями использования деловых игр являются следующие: для обучения управляющих и выработки у них умения принимать решения в сложных хозяйственных ситуациях; для аттестации кадров и проверки их компетентности; такие игры проводятся следующим образом. Подбирается группа участников^ выполняющая контрольную роль. С некоторого обусловленного мо- мента контрольные игроки начинают принимать заведомо неэффектив- ные решения. Проверяемый участник должен это заметить и высту- пить против них, добиваться перемены их политики в игре. Такие иг- ры очень полезны, например, на курсах резерва руководителей той или иной хозяйственной системы; для исследовательских целей. В этом случае участники игры и их интересы являются той средой, в которой варьируются правила взаи- модействия и стратегия распределения ресурсов между хозяйственны- ми единицами. В такого рода играх можно проверять и совершенствовать принци- пы хозяйствования, новые виды показателей, документов и т. п. Полезные результаты такая игра может дать лишь в том случае? если те же люди, которые участвуют в игре, потом на практике будут пользоваться проверяемыми предложениями для отработки игровых методов принятия решений, касающихся разработки плана. Каждое из перечисленных направлений использования деловых игр имеет свои особенности конструирования, предъявляет свои специ- фические требования к формированию команд участников, выбору игровой структуры, правил принятия решений, состава и содержания алгоритмов обработки данных. Для игр, применяемых в реальном планировании, наиболее суще- ственными элементами являются: игровая структура и правила распределения ресурсов и взаимодействия хозяйственных единиц; для игр на аттестацию — выбор участников и алгоритмов обработки данных; для игр исследовательского типа — детализация правил и 4* St
структура данных; для учебных игр — правила и алгоритмы обработ- ки сведений, используемых в принятии решений. В качестве примера рассмотрим следующую ситуацию. Имеется /некоторый производственный объект, который характеризуется сле- дующими особенностями: а) определены производственные мощности предприятия, причем динамика их изменения представляет некоторый неконтролируемый процесс вследствие выхода станков из строя; б) задан месячный план предприятия в виде объемов выпуска по заказам, при этом технологические маршруты деталей считаются из- вестными; в) длительности детале-операций представляют собой случайные величины, распределенные по известному закону с заданными статис- тическими характеристиками — средним, дисперсией и т. д. Процесс функционирования предприятия моделируется на ЭВМ в виде сложной вероятностной системы, причем результаты каждого цикла моделирования — итоги выпуска за день — выводятся на пе- чать и сопоставляются с плановыми показателями. В случае некоторой аварийной ситуации (например, длительной поломки станка) и рез- кого отставания от плана испытуемый руководитель должен принять некоторое организационное решение, например, о переброске менее загруженных станков на прорыв или об изменении очередности выпус- каемых заказов, перекомпоновке плана и т. д. Затем принятое решение реализуется в модели, после чего продолжается весь процесс модели- рования. Последствия принятых, решений в конечном счете оценивают- ся по окончательному результату — итогам выполнения плана за ме- сяц. Многократно проиграв процесс функционирования предприятия при участии человека — руководителя, можно дать оценку его про- фессиональной подготовленности. В операционной игре может участвовать не один, а несколько испы- туемых одновременно. Возможна постановка конфликтной операцион- ной игры, где интересы участников противоположны. В частности, весьма полезно применение операционных игр при моделировании боевых операций. Интересный опыт по использованию деловых игр для обучения управленческого персонала и исследовательских целей накоплен в Ленинградском финансово-экономическом институте. Здесь разрабо- таны и успешно используются на факультете повышения квалификации руководящих кадров такие деловые игры, как «ИМПУЛЬС», «ЭПОС», «АСТРА» [161.
Г л а в a 2. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ Большинство задач, решаемых методами исследования операций, может быть сформулировано так. Требуется найти шах / (ду, ... , хп) (1) при ограничениях вида й (х1; ... , хп) < g2 (%i, ... , хп) < &2; Sin (-Vb . • • > хп) Ьт1 где f (xlt хп) — целевая функция или эффективность системы (на- пример, доход от производства каких-то изделий, стоимость перево- зок и пр.); X = ху, ...,хп— варьируемые параметры; g1 (X),... ...,gm (X) — функции, которые задают ограничения на имеющиеся ре- сурсы. Среди известных разделов математического программирования наи- более развитым и законченным является линейное программирование (ЛП). Несмотря на требование линейности целевой функции и огра- ничений, в рамки линейного программирования укладываются задачи распределения ресурсов, управления запасами, сетевого и календар- ного планирования, транспортные задачи, задачи теории расписаний и т. д. Рассмотрим некоторые примеры задач линейного программиро- вания. Определение оптимального ассортимента. Имеется р видов ресур- сов в количествах alt а2, ..., а£, ..., ар и q видов изделий. Задана мат- рица А — [j aik [j, где a£k характеризует нормы расхода i-го ресур- са на единицу k-то изделия (k = 1, 2, ..., q). Эффективность выпуска единицы й-го изделия характеризуется показателем ck, удовлетворяющим условию линейности. Определить план выпуска изделий (оптимальный ассортимент), при котором суммарный показатель эффективности принимает наи- большее значение. Количество единиц /г-го изделия, выпускаемых предприятием, обо- значим хк. Тогда математическая модель задачи имеет такой вид: найти . шахи = (2) к 53
при ограничении И «=1,2, ... , р. (3) k Кроме ограничения по ресурсам (3), в модель могут быть введены дополнительные ограничения на планируемый выпуск продукции Ж/ > Xj0, условия комплектности для сборки xt : х, : xk — bt z Ь/ •. bk для всех i, j, k и т. д. Оптимальное распределение взаимозаменяемых ресурсов. Имеют- ся т видов взаимозаменяемых ресурсов ait а2, а{, ат, исполь- зуемых при выполнении п различных работ в объеме Ь2, Ьп. Заданы числа указывающие, сколько единиц /-й работы можно получить из единицы i-ro ресурса, а также сц — затраты при изготов- лении единицы /-го продукта из i-ro ресурса. Требуется распределить ресурсы по работам таким образом, чтобы суммарная эффективность была наибольшей (или суммарные затра- ты — наименьшими). > Данная задача называется общей распределительной задачей. Количество единиц i-ro ресурса, которое выделено для выполнения I работ /-го вида, обозначим хц. Математическая модель задачи такова: найти < min 2 S СцХр (4) i i при ограничениях ЕМ/>6/' /=1, ...,щ (5) , п Л xq = ah i = 1, .т. (6) /=1 Ограничение (5) означает, что план всех работ должен быть выпол- нен полностью, а ограничение (6) — что ресурсы должны быть из- расходованы целиком. В качестве примера такой задачи может служить известная задача о распределении самолетов по авиалиниям. Задача о смесях. Имеется р компонентов (i 1, 2, ..., р), при со- четании которых в разных пропорциях получают различные смеси. В каждый компонент, а следовательно, и в смесь входит q веществ. Количество k-ro вещества (k = 1, 2, ..., q), входящее в состав едини- цы i-ro компонента и в состав единицы смеси, обозначим соответствен- но aik и ak. Полагают, что ak зависит от а1к линейно, т. е. если смесь достоит из Xi единиц первого компонента, х2 — единиц второго ком- понента и т. д., то @k I . Задано р величин с{, характеризующих цену, массу или калорий- ность единицы i-ro компонента, и q величин bk, указывающих мини- мально необходимое процентное содержание й-го вещества в смеси. 54
Необходимо определить состав смеси, при котором суммарная ха- рактеристика (цена, масса или калорийность) окажется наилучшей, д Обозначим через х1г х2, хр величину компонента р-го вида, вхо- дящего в смесь. Математическая модель имеет такой вид: найти р min У, с£х{ (7) ;=1 при условии р U aikX£ ^Ьк (& = 1, 2, ... , q). (8) z=i Условие (8) означает, что процентное содержание k-ro вещества в единице смеси должно быть не меньше величины bk. К этой же модели сводится, например, задача определения опти- мального рациона кормления скота [26]. Задача о раскрое материалов. На раскрой поступает т различных материалов. Требуется изготовить из них k разных комплектующих изделий в количествах, пропорциональных Ьъ Ьг, ..., bk (условие ком- плектности). "Пусть каждая единица /-го материала (/ = 1,2, ..., tri) может быть раскроена п различными способами, так что при использовании z-ro способа раскроя (z = 1, 2, ..., ri) получится единиц k-ro изделия. Определить план раскроя, обеспечивающий максимальное коли- чество комплектов, если известно, что объем запаса /-го материала равен а£ единиц. Количество единиц /-го материала, раскраиваемых z-м способом, обозначим х(!, а количество изготавливаемых комплектов изделий — х. Математическая модель задачи такова: найти max х (9) при условиях (Ю) п т S У Xijatj = bkx. (11) »=i /=1 Условие (10) означает ограничение запаса /-го материала, а (11) — условие комплектности. Оптимальные балансовые модели. Рассматривают «-отраслевую балансовую модель с постоянными технологическими коэффициента- ми, задаваемыми матрицей затрат А || al£ || , где а£; — затраты про- дукции Ли отрасли на производство единицы продукции /-Й отрасли. Производственные мощности z-й отрасли ограничивают ее валовой вы- пуск величиной d( (i =» 1, ..., ri) и цена конечного продукта i-й отрас- ли составляет с£. Определить оптимальный валовой выпуск' продукции каждой от- расли, при котором будет достигнут максимальный суммарный выпуск конечного продукта в денежном выражении. 55
Обозначим вектор валовой продукции всех отраслей X = bq, х2, ... ..а вектор конечного продукта Y = [у1г у2, .... Уп1- Тогда у( — объем продукта г-й отрасли, идущего на накопление. Между векторами X и Y существует следующая связь; X = АХ + Y, (12) где АХ — продукт, расходуемый на потребление. Отсюда Y = X [Е — А], X = [Е — A]-1Y. Математическая модель задачи имеет следующий вид; найти maxCzY = ctz/(- (13) при условиях Х = [Е — A]—1Y<d, Y>0. Кроме того, в задаче могут быть дополнительно указаны следующие ограничения, налагаемые на конечные продукты, например: а) уг : : Уч уп — : b2 : ... : Ь,, — условие комплектности; б) dt > У[ > Ь/ — условие ограниченности выпуска конечного продукта. § 1. ПОСТАНОВКА ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ И ИССЛЕДОВАНИЯ ЕЕ СТРУКТУРЫ г3адачу линейного программирования можно сформулировать так. Найти max V ctxt (1.1) г=1 при условии: апх1 + Н~ '' ’ “Ь ainXn by, а21Х1 + а22Х2 + • • • + а2пХп < by, H/nlXi У Hm2^2 “И • • • Ч~ й-тпХп --С Ьт и хх>0, х2 >0, ... , хп >0. (1,з) Ограничения (1.3) называют условиями неотрицательности. В данном случае все условия имеют вид неравенств. Иногда они могут быть смешанными, т. е. неравенства и равенства: анх1 ~Ь ai2x2 ' “Ь ainXn Щ by, СУп1хх “К СУп2Х2 • * ' ' Пт4-1,1М ^т\-\,2Х2 ф- • • • 'г ЩгЩ./г : : Kn-JM. (1-4) Ч- Ч~ • • • -Ь — У,. 56
Если все ограничения задачи ЛП заданы в виде строгих равенств: ^11^1 ^12-^2 ~Ь * ’ * ~Е = •> ^21^1 ”Ь ^22-^2 Л" ’ * ’ 4“ &2пХп ~ &2, Л ,5j I ^т2^2 *Е * ' * I ОтцХц — ^nV то данная форма называется канонической. В матричной форме задачу ЛП записывают следующим образом. Найти тахсгх (1.6) при условии Ах < Ь; х >0, - (1.7) где А — матрица ограничений размером (tn X п), Ь<'"х1>—вектор-стол- бец свободных членов, х(,гх1) — вектор переменных, сТ — [щ, с2, .... сп] — вектор-строка коэффициентов целевой функции. Допустимым множеством решений задачи (1.1) — (1.3) называется множество R (х) всех векторов х, удовлетворяющих условиям (1.2) и (1.3). Очевидно множество R (х) представляет собой выпуклое много- гранное множество или выпуклый многогранник. Решение х0 называется оптимальным, если для него выполняется условие сгх0 > сТх, для всех х £ R (х). Отметим, что поскольку min f (х) эквивалентен max [—f (х)], то задачу ЛП всегда можно свести к эквивалентной задаче максими- зации j Г ^Геометрическая интерпретация задачи ЛП. Рассмотрим следую- щий пример. Найти max (2хх + 5х2) = г при условиях хг < 400, х2 < 300, Xj + -j— Х% Xi 500, Ху 0, х2 0. Каждое из этих неравенств- ограничений определяет полу- плоскости, пересечение которых дает многоугольник, который заштрихован на рис. 2.1. Этот многоугольник (выпуклый мно- гогранник) и представляет собой допустимое множество решений R задачи ЛП. Теперь рассмотрим целевую Рис- 2-р ФУНКЦИЮ / (х1; Х2) — ^Ху + 5х2. . Пусть /(х1; х2) = 1000 = Zy. График уравнения 2хг + 5х2 = 1000 представляет собой прямую с отрезками на осях хг = 500 единиц, а хг = 200 единиц. При f (Ху, х2) = 1500 получим прямую z2, имеющую уравнение 2ху 5х2 _ хх . х2 1500 "г 1500 750 + 300 57
Прямая z2 параллельна прямой zx, но расположена выше ее. Дви- гая прямую вверх параллельно самой себе, приходим к такому поло- жению zmax, когда прямая и множество Д будут иметь только одну общую точку А. Очевидно, что точка А (хг = 200; х2 = 300) — опти- мальное решение, так как она лежит на прямой с максимально воз- можным значением гтах. Заметим, что эта точка оказалась крайней точкой множества 7?.j При векторной форме записи ограничения задачи ЛП записывают так: смотрим допустимое множество R в пространстве данных векторов. Так как в формуле (1.8) х{ > 0 (i — 1,2, ..., ri), то все положительные комбинации векторов Аъ А2, ...,А„ образуют конус (см. приложение 1). Поэтому вопрос о существовании допустимого решения равнозначен вопросу о принадлежности вектора b к этому конусу. Поскольку Аъ А2, ..., А„ m-мерные векторы (п > т), то среди них всегда найдется m линейно независимых векторов, образующих базис m-мерного про- странства и содержащих конус, образованный векторами Ах, А2, ... ..., Ая. Поэтому справедливо следующее утверждение. Если задача ЛП содержит п переменных и т ограничений (п > т), записанных в фор- ме неравенств, не считая ограничений неотрицательности X/ >• 0, то в оптимальное решение входит не более, чем т, ненулевых компо- нент вектора х. Расширенная форма задачи ЛП. Для решения задач ЛП необхо- димо уметь переходить от ограничений в форме неравенств к равен- ствам. Для этого вводят свободные переменные хп^\ 0, хп+2 0,... ..., Хц.\.т 0, которые превращают неравенства в равенства. В таком виде задачу ЛП называют расширенной и записывают так: " найти max f (х1г хг, ... , хп) = ф % 4- • • • + + 0 • Хц^-1 -f- • • • -ф 0 • Хп^-т (Е9) при ограничениях Й11-Д + й12^2 4- • ’ • 4- О.\пХп 4- 1 • Х/г-l-I 4~ 0 • ^л+2 4* 4" • • • + 0 == а21х1 4~ 4~ • • • 4~ а2пхп 4- 0 Хп+1 4” I ' хп+2 4* • • • 4“ ® Хп+т ~ Ь2‘, 88
S'mlXi + Ят2Х2 4“ ' ’ * 4~ й-тпхп 4~ 0 ’ xn+l 4* 0 ’ xn+2 4* 4~ • • 4- I • Х„+т = bm. В матричной записи она имеет следующий вид. Найти шахсгх Рис. 2.2. Рис. 2.3. при ограничениях AmX% + Е"!Х'"х2 = Ь; Наконец, векторная запись расширенной формы задачи ЛП: найти max с7 х при ограничениях 4~ АгХ2 -р • • • А/гХ„ 4~ • °"" 4~ АлЦ-тХ/Н-т = Ь. (1.11) Пусть R и /?1 — допустимое множество решений соответственно исходной и расширенной задач. Тогда любой точке допустимого мно- жества соответствует единственная точка R и наоборот. Установим отношение между элементами этих множеств R и 7?1: исходная задача расширенная задача хг 4- х2 < 500 4- х-2 4* х3 =* 500. На рис. 2.2 и 2.3 графически изображены допустимые множества ре- шений обеих задач. Видно, что треугольник ОСА допустимого множе- ства R есть проекция допустимого множества на подпространство Хх0х2. В общем случае допустимое множество R решений исходной задачи есть проекция допустимого множества Rt решений расширенной зада- чи на подпространство исходных переменных (хх0х2). Пример 2.1. Рассмотрим задачу, для которой исходные ограничения и ограниче- ния в расширенной форме имеют соответственно вид: lxt -ф- lx2 sg 5; Ixi -р 1ха + 1х3 = 5j 59
-g- xt + lx2 < 6; xt -]- 1л'2 + 0-v3 + l-v4 — 6; xt Д 0; x2 0; xx, .v2, x3, x4 Ы 0. Обозначим Из векторов Ах, А2 можно составить шесть базисов: {Ах, А2); {Ах, А3}; {А4, А3) и т. д. Для каждой из этих матриц находим обратные матрицы В-1. Умножив В-"1 на Ао, получим базисные решения: [ 3 \ (хх = 2, х2 = 3); (хх = 4, х3 = 1); I хх = 5, х4 =-— ; (х2 = 6, х3 — — 1); (х2 = 5, х4 — 1); (х3 = 5, х4 = 6). 3 ^Допустимые базисные решения Пусть ограничения задачи ЛП заданы в форме равенств (112) Предположим, что т < п и ранг матрицы А равен tn. Выберем из матрицы А = [А1А2...А,Д т' линейно-независимых столбцов, которые обозначим через В<"!Хт>. Очевидно, матрица В образует базис систе- мы. Совокупность оставшихся столбцов матрицы А обозначим через D. Тогда А = [В, D]. Совокупность переменных, связанных с матрицей В, обозначим через хв, а связанных с матрицей D — через хд. Тогда Ах = Вхв + Dxn. (1.13) Так как В—невырожденная квадратная матрица, то существует обрат- ная к ней В-1. Умножив_обе части (1.13) на В-1, получим В^Вхд + B“’Dxn = B-1b. Отсюда Хд = 1Г'Ь — B^'Dx.o. (1.14) Переменные хБ — базисные, а хс — небазисные. Соотношения (1.14) определяют полное множество решений систе- мы линейных уравнений (1.12). В развернутом виде оно может быть записано так %. = ai0 — У) atjXj, i С /б 1 /бТнеб (1.15) Xj = ОС/, J где 1й — множество индексов базисных векторов; 7пеб — множество индексов небазисных векторов; ai0 — i-я — компонента вектора !В-1Ь; a{j (j С Леб)— i-я—'Строка матрицы B-ID. В (1.15) переменные ду. могут принимать произвольные значения су. 60
Если положить для всех небазисных переменных нулевые значе- ния, то получим базисное решение системы (1.12). Очевидно, в этом случае = ait), i Q /б. Если базисное решение удовлетворяет условию неотрицательности, то оно называется допустимым (или сокращенно д. б. р.). Если среди компонент х(- (г б 7g) пет нулевых, то базисное решение называется невырожденным,j Основные теоремы линейного программирования В этом разделе мы познакомимся с некоторыми важными теорети- ческими вопросами, которые лежат в основе методов решения задач линейного программирования. Справедлива следующая основная теорема линейного программи- рования, устанавливающая место нахождения оптимальных решений, у Д' е о р е м а 2.1. Если целевая функция принимает максимальное значение в некоторой точке допустимого множества Rx, то она при- нимает это значение в крайней точке Rr. Если целевая функция при- нимает максимальное значение более, чем в одной крайней точке, то она принимает это же значение в любой их выпуклой комбинации. Будем считать, что R± — выпуклый многогранник. Доказательство основано на следующей лемме: если Rt — замк- нутое ограниченное выпуклое множество, имеющее конечное число крайних точек, то любая точка х б Rt может быть представлена в виде выпуклой комбинации крайних точек (Доказательство леммы см. в приложении 1.) Обозначим крайние точки через х1( х2, ..., хт, а точку, в которой f (х) достигает максимума, через хопт. Предположим, что хопт — не крайняя точка множества. Тогда по лемме т т ___ Хопт ~ У. Mt-, У, kt = 1, kt >0, i = 1, т. i=i i=i Так как хопт — оптимальное решение, то с^Хопт > czx. Функ- / tn \ т ция / (х) — линейная, поэтому f I У fe,xf ] = У fez/(xz). Поэтому v=i / i=i т т. т СГХОПТ = У С1kp^i < У fc^X, = СТХГ У kL = с\, (1-16) 1=1 1=1 1=1 где через сТхг обозначено max {ст xt-}. Итак, 1 i tn С^Хопт < СТХГ. (1.17) Однако хопт — оптимальное решение, и потому ' с’хопт > СГХГ. (1.18) Сравнив (1.18) с (1.17), получим стхг = сгхопт, т. е. существует по крайней мере одна крайняя точка хг, где целевая функция принимает максимальное значение, 61
Итак, первая часть теоремы доказана. Перейдем к доказательству второй части. Допустим, что оптимальные решения находятся в край- них точках хх, х2, ..., xs. Тогда их произвольная выпуклая комбина- ция определится как х* = S хЛ, <1Л9) i=i тле S k( = 1, k{ > 0. 1=1 Найдем значения целевой функции f (х*) = сгх* = У, cTxz&z. (1.20) 1=1 ' Так как точки xz, I — 1, $ отвечают оптимальным решениям, то crxz = с7хОпт, для всех i = 1, s. (1.21) Подставляя (1.21) в (1.20), получим f (X*) = СГХопт S kt = СГХОПТ. (1.22) 1=1 Теорема 2.1 доказана. Из теоремы 2.1 следует, что при отыскании оптимального решения достаточно просмотреть только крайние точки допустимого множе- ства решений R,.' Докажем теперь, что всегда можно найти крайние точки, выделяя только допустимые базисные решения. Теорема 2.2. Если существует такое независимое множество т-мерных векторов Аъ А2, ..., Ал (7< < т), что Ар: ф-А2х2 + ... ... + А/<х/< — Ао (х{ >- 0, i — 1, 2, ..., m), то п-мерный вектор хТ — — (хъ х2, Хк, 0, ..., 0) есть крайняя точка допустимого множества Rb "п'—к другими словами, каждое допустимое базисное решение соответствует крайней точке Rt. Доказательство проводим от противного, т. е. предположим, что х — не крайняя точка Rv Тогда х = kxx ф- (1 — k) х2, 0 < k < 1, где xt и х2 — крайние точки Rx. Поскольку последние (п — R) компоненты х по предположению равны нулю, то эти же компоненты векторов х2 и х^ также равны нулю. Поэтому А1%ц + А2х21 4- ••• + A/<xki = Ао; (1.23) А]Х12 + А2Х22 -}- ••• + АдХ/<2 — Ао. (1.24) Вычитая из уравнения (1.23) уравнение (1.24), получим Ах (хп — х12) + А2 (х21 — х22) + • • • + Ак (хЛ1 — хЛ2) = 0. (1.25) Так как Aj, А2, ..., Ак — независимы, то хи — xis = 0, х21 —• х22 = »= 0, ..., Xki —Хк2 = 0, что возможно только в том случае, если 62
xi — х2- Это противоречит предположению, что хт и х2 — разные крайние точки множества Поскольку х не может быть представлена в виде выпуклой комби- нации двух других крайних точек множества то х является край- ней точкой множества /Д. Справедлива также следующая теорема, обратная к теореме 2.2. Теорема 2.3. Если хо = (х?\ х(20), •••> 0...0) — крайняя точка допустимого множества решений R, то соответствующее реше- ние х0 — является допустимым базисным решением системы ограниче- ний (1.12). Доказательство теоремы несложно и приводится в [24]. Следствие. Используя результаты теорем 2.1 и 2.2, мож- но сделать вывод, что для отыскания оптимального решения ЛП-задачи достаточно перебрать лишь допустимые базисные решения. Этот вы- вод лежит в основе многих методов решения задач линейного програм- мирования. Графический метод решения ЛИ-задач Если общее число переменных ЛП-задачи п — 2 или она может быть сведена к соответствующей задаче с числом независимых пере- менных k = 2, то такая задача может быть легко решена графическим методом. Итак, пусть ЛП-задача имеет вид max f (хг, х2) = max (с^ + с2х2); (1.28) й (Xi, х2) < bi; Л §2 (х1> хг) ^2> gm (xi. л'а) < Хх>0, Ха>0. (1.28) Графический метод решения заключается в следующем. 1. Строим допустимое множество решений R, определяемое (1.27) и (1.28). 2. Далее строим вектор нормали N к целевой функции f (хъ х2). Его проекция на осьОхх равна kclt а на ось 0х2 — kc2, где k — произ- вольный положительный скаляр. Заметим, что N указывает направление возрастания /(х1г х2). 3. Перемещаем прямую f (хъ х2) = const в направлении N так, что- бы она оставалась перпендикулярной N до тех пор, пока эта прямая не выйдет на границу множества R. - При этом возможен один из следующих случаев: a) f (xlt х2) и R будут иметь лишь одну общую точку (крайнюю“точ- ку R); эта точка определяет единственное оптимальное решение; б) f (х19 х2) и R имеют целое множество общих точек, это будет в том случае, когда вектор N окажется нормален к соответствующей грани * множества R, данное множество общих точек представляет собой мне- ' жество оптимальных решений задачи; Н . 33 11 лк
в) прямая f(xb х2) = const не выходит на границу множества R, сколько бы ее не перемещали (это будет в случае, если множество R — невграпиченно), тогда целевая функция /(xb *2) оказывается также не- соответствующие случаи иллюстрируются рис. 2.4, а, б, в. Заметим, что при решении задачи минимизации f (хх, х2) перемеща- ют в направлении, противоположном N. Рассмотрим теперь общий случай ЛП-задачи: п max У С/Х/; /=1 У atjXj = bL, i = 1, т; X/ > 0. i Если k = п — г — 2, где г — ранг матрицы А, то данная задача может быть также решена графически. Действительно, на основании общих соотношений (1.15) все базис- ные переменные хг могут быть выражены через две небазисные перемен- ные X/, и х/„: = Ф1 (х/„ xi2) 0; х2 = ф2(х/1( х/г)>0; (Ь29) хг = срг (хл, Х/2) > 0. Подставляя в целевую функцию выражения (1.29), мы придем к следующей задаче: шах/ (хг, х2, ... , xj = max / (ср£ (х£1, Х/2)(-е/(_, хА, х/г) (1.30) при условиях (1.29) и xh > 0, х1г > 0. (1.31) Как видим, задача (1.30) легко решается графически. ; § 2. СИМПЛЕКС-МЕТОД Симплекс-метод, известный в отечественной литературе под на- званием «метод последовательного улучшения плана», впервые был разработан Данцигом в 1947 г. [9, 24, 57]. Этот метод позволяет пере- 64
ходить от одного допустимого базисного решения к другому, причем так, что значения целевой функции непрерывно возрастают. В резуль- тате оптимальное решение находят за конечное число шагов. Алгорит- мы симплекс-метода позволяют также установить, является ли задача ЛП разрешимой. Запишем ограничения задачи ЛП в таком виде: "Ь А2х2 4~ ° • * “h А,г[..шх,?. j-m = Ао. Пусть Ах, А2, ..., Аш — множество линейно независимых векторов. Тогда уравнение Atxi 4- А2Хз 4- • • • -Т Ащх;п = Ао (2.1) определяет базисное решение х*, х*,х'т. Предположим, что это решение допустимо, т. е. х* > 0, ..., х‘т > 0. Базис {Ах, А2, ..., Ат} образует m-мерное пространство, а потому каждый из векторов Am+!, А/л+2, А,,,.(_„ единственным образом выражается через этот базис. Если Аг не входит в базис, то Аг = хцАх -f- %2гА2 4- • * • 4* хтг^т, (2.2) где xir — соответствующие коэффициенты (i = 1,2,..., m). Теперь предположим, что хотя бы одна из величин xir больше нуля. Решение уравнения Ал 4- А2х2 4* • • • 4- Amxm 4- Агхг — Ао (2.3) обозначим как [xlt х2, ..., хт, хг}. Тогда очевидно Ал 4- А2х2 4- • • • 4“ Amxm 4* А,.лр = Ао. (2.4) Умножив уравнение (2.2) на хг и вычтя полученное уравнение из уравнения (2.1), получим Ах (х{ — xrxi,-) 4- А;, (х) — хгх2г) 4- ... 4- А,„ (х*т — хгхтг) = Ао — хгХг. (2-5) Сравнив уравнения (2.5) и (2.4), находим связь нового решения хг, х2, хт, хг со старым базисным х\, х2, ..., х*т: = -^1 ' ^'2 - ^2 ' * • ’ > (2.6) Это решение (2.6), во-первых, не будет базисным, так как содер- жит т 4- 1 переменную, а во-вторых, будет допустимым не для всех значений хг. Чтобы новое решение оставалось допустимым, нужно выбрать хг таким, чтобы ни одна из величин х£ = x't — x,xlr (i = 1, 2, ... ..., m) не стала меньше нуля. Следовательно, максимальное значение переменной хг определяется соотношением [ х[ | Л,max = min —- , (2.7) i I ) где xir > 0. 5 8 3164 65
Чтобы сделать новое допустимое решение базисным, нужно удалить одну переменную х, из решения, а соответствующий вектор А/ из ба- зиса. В этом случае новый базис будет содержать также т векторов. Для этого выбираем хг в соответствии с (2.7). Тогда новое базис- ное решение имеет вид . * Лд Xf- max-^lrj Х% Хг maxXzr't Xj (опущен); X,-max, а новый базис (А1; А2, А/+!.....Am, Ar). Такой переход от одного базиса к другому позволяет находить ре- шения почти для всех задач ЛП. Найдя все крайние точки, можно вы- числить целевую функцию и найти экстремальное решение. Однако при больших тип это практически невозможно. Для перехода к та- ким допустимым базисным решениям, которым отвечают большие зна- чения целевой функции, предложен критерий симплекс-метода. Ново- му базисному решению (х\ — хрс-у, х*2 — х*т — хгхтг, хг} соответствует следующее значение целевой функции: = Cj (xi — XrXy) 4- с2 (хг — xrx2r) 4- • • • 4- сгхг = — (CjX| -f- С2Х2 -р ••• -р СтХт) + хг (Сг— ХуС{— • • • —СтХтг), (2.8) г» где zQ — значение целевой функции, отвечающее исходному базисному решению; сг — с-уХу — сгх2г — ... — стхтг -симплекс-разность для хг. Симплекс-разность вычисляют для каждой переменной, не входя- щей в базисное решение, и выбирают такую свободную переменную хг, для которой симплекс-разность максимальна и положительна. Таким образом, алгоритм симплекс-метода состоит из следующих этапов: 1) находят начальный базис и связанное с ним допустимое решение; 2) вычисляют симплекс-разность для каждой переменной, не вхо- дящей в базисное решение; 3) вводят в базис самую выгодную переменную, с максимальной симплекс-разностью, причем ее значение лУтах определяют из уело- {X* 1 —— > для всех i, для которых х(-г>0; х1г ) 4) выводят из базисного решения переменную xlt соответствую- { X 1 * —L-J ~. ; а из базиса — вектор А/-; xir J xjr 5) этот цикл повторяют до тех пор, пока симплекс-разности для всех переменных, не входящих в базис, не станут отрицательными — это признак оптимальности базисного решения. \ 66
Пример 2.2. Решение задачи симплекс-методом. Найта max (2хх + 5х2) при ограничениях х4 400, х2 < 300, хх + х2 < 500. ^1^2 Расширенная форма задачи: 1х4 + 0х2 + 1х3 + 0х4 + 0х5 = 400; ’ Ох, 4- 1х2 4~ 0х3 -j” lx4 -f- 0х„ = 300; lx, -j- 1х2 J- 0х3 4- 0х4 4- ^х5 = 500- Условия задачи запишем в виде табл. 2.1: Таблица 2.1 а2 А3 А., а5 А(, 1 0 1 0 0 400 0 1 0 1 0 300 1 1 0 0 1 500 Первый шаг. 1. Выбрав в качестве начального базиса {А3, А4, Ай}, находим первое допустимое базисное решение А3х4 4~ А4х4 4~ А6х5 — Ао, откуда xj — 400; х4 = 300; Xg = 500. 2. Представим каждый из векторов А4, А2 в виде линейной комбинации базисных векторов {Аэ, А4, А6): А4 = А3х31 + А4х41 4* А6х51; А3 = А3х32 4- А4х42 4* А5х52. Решая эти уравнения, получим'" х31 = 1; х41 = 0; х54 = 1; х32 = 0; х42 -= 1; х62 = 1. 3. Находим симплекс-разности соответственно для переменных х1 и х3: ci '4 ft: cAi сгА1 = <4=2; С2 С3Х3'2 CtX42 s^xm — с2 = 5. Так как с2 > с1( вводим переменную х2 в базис. 4. Определим, какая переменная выводится из базиса. Новые значения переменных следующие: х3 = х* — x2xS3 = Х3; х4 = х4 — х2х42 = 300 — 1х2; *г> — хо хгх52 — 500 1х2. . f хз х4 х5 1 / 400 300 .500 ] max х2 = min <---- , ------, -----> = < —7— ; —— ; —5—} = 300. I *32 *42 *Г,2 } I 0 1 ’ 1 J Итак, х2 вводится в базис со значением х‘2 = 300, переменная х, выводится из базисного решения, а вектор А4 — из базиса. Второй шаг. 1. Новый базис [А2, А3, Ав), соответствующее базисное решение: х2 = 300; х* — 400; Xg = 500 — 300 • 1 = 200. Представим каждый из векторов Aj,A4, не вошедших в базис, в виде линейной ком- бинации А2, А3, А6. Так как вектор А4 был выведен из базиса, рассмотрим только вектор Aj. Составим уравнение А2х21 4* А3х314- А5х51 = А4> откуда х24 = 0; х31 = 1; хи = 1. 6' 67
2. Находим симплекс-разность для х4: <?£ Г2Х24 ^3-^31 ““ ^5^51 ~ Q 0 0 = С-£ = 2 0. Итак, вводим переменную х, в базисное решение. 3. Определим, какую переменную следует вывести из базисного решения: х2 — х2 — хрс21 = 300 — 0х4; х., = х* — xvx3, — 400 — 1х4; Xg = X- Х4Х51 ” 200 lxr . f 300 400 200 1 Xj = max Xj = min j —q— ; —j-— ; —j— J = 200. Следовательно, выводим переменную x5 и вектор Д5 из базиса. Третий шаг. 1. Новый базис {А4, А2, А3}, соответствующее базисное решение: Xj = 200; х2 = 300; х3 = 400 — х4х31 — 400 — 200 • 1 = 200. Так как вектор А5 был только что выведен из базиса, то рассмотрим только век- тор А.р А4 = А4х14 + А2х24 + А3х34, откуда х24 = 1, х14 = —1, хг4 = 1. 2. Найдем симплекс-разность для переменной х4: с4 — с4х14 — с2с24 — с3х34 = 0 — 2 (— 1) — 5 - 1= — 3 < 0. Поскольку симплекс-разность отрицательна, то данное базисное решение — опти- мальное: xj' = 200; х2 = 300. Переменная х3 = 200 является свободной и потому в окончательном решении опущена. Рассмотренный выше симплекс-метод вполне пригоден для ручного счета, но плохо приспособлен для программирования и решения задач на ЭЦВМ. Потребовалась его рационализация как по форме представ- ления данных, так и в способе организации вычислений, чтобы сде- лать симплекс-метод пригодным для машинного счета. С этой целью разработан табличный вариант симплекс-метода, так называемый метод симплекс-таблиц. Вычислительной основой для метода явля- ется алгоритм полного исключения [57]. f Метод полного исключения. Пусть задана система линейных алгеб- раических уравнений п У ai/Xj = a®, i = 1, • • • , ni. В матричной форме данная система уравнений имеет следующий вид: Ах = Ао. Матрица Ар = [А, Ао] называется расширенной матрицей. Метод полного исключения Жордана-Гаусса состоит из конечного числа одно- типных шагов и заключается в проведении матрицы А к единичному виду. Он основан на следующих двух операциях: 1) одну из строк рас- ширенной матрицы умножают на число, отличное от нуля; 2) из каж- дой строки расширенной матрицы вычитают одну строку, умноженную на некоторое число. Каждое из таких элементарных преобразований, называемых пре- образованием Гаусса, приводит к новой системе линейных уравнений, которая эквивалентна исходной. 8S
Первый шаг метода полного исключения: 1. Среди элементов А выбирают произвольный элемент, отличный от нуля. Его называют направляющим элементом шага. Строку и столбец, содержащие направляющий элемент, называют направляю- щими. 2. Все элементы направляющей строки расширенной матрицы де- лят на направляющий'элемент. В результате получают направляющую строку с направляющим элементом, равным единице. Далее из каж- дой строки матрицы А вычитают новую направляющую строку, умно- женную на элемент, который расположен на пересечении преобразуе- мой строки и направляющего столбца. Матрицу, в которую преобразовалась расширенная матрица Ар после первого шага, обозначим Ар1’. В этой матрице все элементы на- правляющего столбца, отличные от направляющего элемента, стали нулями. Совокупность элементов первых п столбцов матрицы Ар, лежащих вне направляющей строки и столбца предыдущего шага, на- зывают главной частью матрицы Ар1’. Направляющий элемент второго шага разыскивают среди ненуле- вых элементов главной части матрицы Ар’. Второй и дальнейшие шаги метода проводят аналогично первому шагу, причем последовательные шаги проводят до тех пор, пока име- ется возможность выбора направляющего элемента. Если после й-го щага.главная часть матрицы Ар’ не содержит ни одного элемента или содержит только нули, то процесс исключения переменных заканчи- вается. Пусть процесс оборвался после шага I. Предположим вначале, что среди строк матрицы A<Z) есть такие, которые не были направляющими ни в одном из предыдущих шагов, к примеру, строка с номером i. Тогда, очевидно, а(7- = 0, j = 1, 2, ..., п. Поскольку для любой строки справедливо А(1)х = <2/о, (2.9) то уравнение для i-й строки имеет вид: Ox-j -Т- 0х2 Ч~ • • • Ол-л — (2.10) Если а<о 0, то уравнение (2.10) противоречиво, и исходная си- стема уравнений неразрешима. Если а(/о = 0, то уравнение (2.10) представляет тождество, и (-я строка может быть отброшена. Перебрав одну за другой строки матрицы А(/), которые не явля- лись направляющими, либо устанавливают неразрешимость системы уравнений, либо отбрасывают все нулевые строки. Таким образом, в системе окажется I уравнений. Примем для опре- деленности, что это первые (по порядку) I уравнений. Тогда полученная система уравнений может быть записана в виде п Е atjXi = ай’, (=1,2, ...,/. (2.11) 7=1 i • 69
Примем, что i-й направляющей строке соответствует i-й направляю- щий столбец (вследствие соответствующего выбора направляющего элемента). Тогда (И ( 0> 1'¥=/ . =| 1( / = /- /= 1, 2, ..., Z. (2.12) Следовательно, (2.11) можно записать в виде: Xi==a(io— 2 • xh i=l,2...........I, (2.13) /=Ж причем переменные xt (i = 1, 2, ..., Г) являются базисными, а перемен- ные (Х], j = I + 1, •••, п) — небазисными. При Xj — 0 (/ — I 4- 1, .... п) получим одно из базисных решений системы уравнений: xz = a®, i = 1, 2, ... , I; Xj — 0, j = I -f- 1, ... , n. Задавая для X/ произвольные значения а/, получим все множество решений, которое образует (п — /)-мерное подпространство решений. Если х(--1-я компонента этого решения, то Щ-о— Е аааь если i=l, I; М+1 (2.И) ah если i = i-f- 1, I + 2, ... , п. Пусть х0 = (й10, а2о> • • > 0, ... , 0) и X/ = (—aij, —a.2j, ... , —aij, 0, ..., 0, 1, 0, ... , 0), I < j < n, i _____________________________________ n тогда общее решение системы линейных уравнений определяется со- отношением, аналогичным (2.14): Л 1 Хобщ = Хо Е “Л, (2.15) п где х0— базисное решение исходной системы; Е а/х,- — полное решение соответствующей однородной системы уравнений, т. е. при | Ао = 0. Расширенную матрицу условий после fe-й итерации обозначим —— [а,о j di\, •.. , din j, i • • • ч wt* Пусть 4/’ — направляющий элемент преобразования на (k + 1)-й итерации. Тогда в результате (k 4- 1)-й итерации метода полного ис- ключения Гаусса получим матрицу А(р*+1>, элементы которой опреде- ляются следующими соотношениями: 70
1) для всех элементов направляющей строки 2) для элементов направляющего столбца = 0, г — 1, 2, ... , п, причем a(/j+l} — 1; (2.17) 3) для всех остальных элементов матрицы Ар+1) СЧ-11 _ (*) ail (k) J . . Ctrl — &rl &rj > ' =л /> =?= t. (2.18) a‘l Пример 2.3. Применим метод полного исключения Гаусса для исследования системы уравнений: xi + 2-^2 -I- -<з 4- х4 = 3, - -j- х% 4~ х3 4~ Зх4 == 3, 4л\ + 5х, + Зх3 + бх4 = 9. Расширенная матрица имеет вид Ai А2 А3 г 1 2 1 Ар= 2 1 I 14 5 3 а4 Ао 1 3 - 3 3 5 9. Первый ш а г. В качестве первого направляющего элемента возьмем ан = = 1. Умножив первую строку матрицы А на 2 и на 4, затем вычитая результаты из второй и третьей строк, получим Aj А2 А3 А4 Ао г 1 А<р» = О . О 2 1 — 3' — 1 — 3 — 1 1 3 - 1 —3 1 —3 . Второй шаг. Поскольку главная часть матрицы A*j* содержит отличные от нуля ,элементы, продолжим процесс исключения. Выберем элемент = —3. После аналогичных преобразований получим Ах А2 А3 А4 г 1 А® = О О О 1/з 17з I V» -% 0 0 о 1 - 1 о. Как видим, главная часть матрицы А®, состоящая из элементов а® и а$, содер жит только нули. Следовательно, процесс исключения заканчивается. Исследуем матрицу А®. Так как третья строка содержит только нулевые эле- менты, то она может быть отброшена. Тогда эквивалентная матрица системы уравне- ний имеет вид А4. А2 А3 А4 Ао А® = Г 1 0 1/„ Р/з 1 1 [О 1 Чз - J/3 11' 71
В соответствии с формулами (2.13) и (2.14) получим базисное решение: х* = 10 Ху = 1, х.. = 0, х4 = 0. Общее решение данной системы имеет вид: 12 II где а:1, а4 — произвольные скаляры. Решение задач линейного программирования методом симплекс-таблиц Основная идея симплекс-метода состоит в переходе от одного допу- стимого базисного решения к другому, так что значения целевой функ- ции при этом непрерывно увеличиваются (задача максимизации). Предположим, что ограничения задачи сведены к такому виду, что в матрице А имеется единичная подматрица и все свободные члены положительны. Другими словами, пусть матрица ограничений имеет, например, такой вид: &ixi + + ^пХгг + е1Хп + е1^ч+1 “Г ' " ’ ~Г = = А0 = До ДгО где е4 = i = 1, 2, - 1 ~ 0 _(Д ... , т. — единичный базис и а,о > 0 для всех Применим первый шаг метода полного исключения к расширенной матрице ограничений Ар = [А^ ..., А„, ех, ..., ет, Ао]. Пусть а(7- — направляющий элемент преобразования на данной итерации. Тогда в результате преобразований в соответствии с (2.18) получим новые значения свободных членов (/г-J-I) ai0 alj 1 , • i 1 n аю = ciio---------------------7b\~~> если * #= h I = 1, 2, ... , m, alj аЮ (2.19) Исследуем выражения (2.19) и выясним условия, при которых «zo+1) > 0 для всех I, т. е. повое базисное решение будет допустимым. По предположению, >• 0, I = 1, 2, ..., т. п (к) п (А-ГЛ) °/0 п Допустим, что а}/ > 0, тогда а}» = —т—> 0. 72
Если aff < 0, то, очевидно, аю+1) > 0, так как а1^ > 0, > 0. k / О*** д</г) \ Если а\-} > О, то «Й+1) = с$ (—------------будет больше нуля при \ aii aij ) всех значениях I = 1, 2, , т тогда и только тогда, когда aZ0 • _ • ( «/'> (к) J „W ~~ т.Ш | Akf аИ > Д • uij ‘ 1 аЦ } Таблица 2.2 4- (2.20) С «1 с-1 с3 С1 '-'п — Вх aiQ А, Аз А3 А/ С1 -Y1 «и «12 «13 «1, а1„ с2 х2 «20 «21 °22 а.. . . . а2,1 . . . — .¥• «ю «,1 «12 аа . . . аИ ain ст хт ат0 ат\ «m2 -атз amj атп — А аоа Аз Ад . . , Преобразование Гаусса называется симплексным преобразованием, когда направляющий элемент определяют по следующим правилам: а) направляющий столбец j выбирают из условия, что в нем имеет- ся хотя бы один положительный элемент; б) направляющую строку i выбирают так, чтобы отношение — - аИ было минимально при условии, что ait >0. Очевидно, при таком преобразовании в базис вводится вектор А, и выводится вектор А(-. Теперь надо определить, как выбрать вектор, вводимый в базис, чтобы при этом значение целевой функции увели- чилось. Для этого используют так называемые оценки векторов А,: А/ = <&Ц с, — аа/, j /6, (2.21) 73
где I6 — множество индексов базисных векторов; Хц — определяют из условий: Е h-iXii = А/.- (2.22) 'е/б Величины {А/} равны симплекс-разиостям для переменных (лу) в обратным знаком. Следовательно, для того чтобы значение целевой функции увеличилось, необходимо выбрать направляющий столбец А;- с наибольшей отрицательной оценкой, т. е. А/ = aOj = min {aQk/aok < 0}. k Для решения задачи симплекс-методом на каждой итерации запол- няют симплекс-таблицу 2.2. Последняя строка таблицы — индексная служит для определения направляющего столбца. Ее элементы А; определяют по формуле (2.21). Очевидно, для всех базисных векторов {A/}, i =1, 2, ..., т оценки А, = aw = 0. Значение целевой функции аов определяется соотношением m а00 = Ё i=i В столбце Вх записывают базисные переменные {Х(}, i — 1, .... tn. Их значения определяют столбцом свободных членов п10, т. е. х{ — ат, 1=1, .. • , т. Направляющие столбец А/ и строка А(- указываются стрелками. Если выбран направляющий элемент at/, то переход от данной таблицы к следующей задается соотношениями (2.16), (2.17) и (2.18). Итак, алгоритм решения задачи ЛП (задача максимизации) мето- дом симплекс-таблиц состоит в следующем: 1. Рассчитывают и заполняют начальную таблицу с допустимым единичным базисом, включая индексную строку. 2. В качестве направляющего столбца выбирают столбец А;, для которого aOj = min {aOi/aOi<Q}. 1^1 3. Направляющая строка А(- выбирается из условия: а‘° J аг° „ • — min ( О) • aij I ari J 4. Делают один шаг симплекс-преобразования с направляющим элементом ац, для чего используют соотношения (2.16), (2.17) и (2.18). В частности, элементы индексной строки новой таблицы вычисляют по формулам: ы*+1) __ м ат ао, (/н-1) __ (*) аи ао/ /—io «00 Про , По/ По/ 1 " 1,^-, ...,н. 74
Правильность вычислений контролируют по формулам непосред- ственного счета: «оо+1) = У САл+1); (2.23) /<+1) пш+1) = £ ct-an+1) — С[. - (2.24) с б В столбце Вх заменяют ху на X/, а в столбце с ct на cz. 5. Если все dot1 > О, I = 1, 2, ..., п, то новое базисное решение х. = attt /б+1> оптимально. В противном случае переходят к этапу 2 и выполняют очередную итерацию. 6. Второй, третий и четвертый этапы повторяют до тех пор, пока одна из итераций не закончится одним из двух исходов: а) все о® > 0, I = 1, 2, п. Это условие оптимальности базиса последней таблицы; б) найдется такой а0/ = Д, < 0, что все элементы этого столбца аг! < 0 (г = 1,2, ..., т). Это признак неограниченности целевой функ- ции г = У, CjXj на множестве допустимых решений. Особенности применения табличного симплекс-метода. 1. Если в качестве начального базиса выбирают базис из свободных переменных, для которых cL = 0, то оценки для всех небазисных пере- менных равны — ay = — Cj, а соответствующее значение целевой функции Ом — У ctxt = 0. ‘&б 2. Отсутствие векторов с отрицательными оценками (при решении задачи максимизации) является признаком оптимальности соответст- вующего базисного решения. 3. Если имеется хотя бы одна отрицательная оценка для небазис- ного вектора, а его столбец содержит только отрицательные элементы, то в области допустимых решений целевая функция не ограничена. 4. При решении задачи минимизации в базис вводится вектор с наибольшей положительной оценкой. Пример 2.4. Найти max 4хх + Зх2 при ограничениях Xj < 4000; х2 < 6000; 2 х^ 4--х2 6000; 3 xt, х2 > 0. Расширенная форма задачи имеет следующий вид: найти max 4xj + Зх2 1х^ -f- 0х2 4~ lx3 4- Ox, 4' 0x5 = 4000; Ox, 4“ 6c% 4- 0x3 4“ 1^4 4~ 0x3 = 6000; 2 Ixj 4“ “у” ^2 4~ 0х3 4~ OX4 4” ixg = 6000. О 75
Таблица 2.3 I 4 ci 4 3 0 0 0 вх аЮ А, 4 А., I д ! -1 Л 0 4000 □ 0 1 ! 0 1 . 0 0 *4 6000 0 1 0 1 1 0 0 6000 1 2/3 0 1 А 0 t —4 —3 0 0 i 0 Так как Ао > 0, а векторы А3, А4, А5 образуют единичный базис, то задачу мож-> но решать методом симплекс-таблиц. Направляющие столбец и строку укажем стрелками. Составляем исходную симплекс-таблицу 2.3. Так как —4 < — 3 < 0, то направляющий столбец — первый. Составив отно- [ ат 1 шение вида <-----У, определим направляющую строку. Для этого находим I аа ) ( 4000 6000 6000 ) min |j— ; —-— ; •—j—j = 4000. Итак, направляющая строка — первая, направляющий элемент ап —- 1.Выпол- нив первый шаг симплекс-преобразования, получим табл. 2.4. Направляющий столбец — второй, направляющая строка — третья, так как у Таблица 2.4 Ci 1 1 4 3 0 0 0 ai0 А. 4 А3 А. Аз 4 «1 4000 1 0 1 0 0 0 6000 0 1 0 1 0 Х5 2000 0 —1 0 1 А 16 000 0 —3 4 0 0 76
2000 6000 4000 2 " < ~ “0 ' 3 чаем табл. 2.5. Применив теперь шаг симплекс-преобразования, полу- Таблица 2.5 4 С- | 4 3 , 1 1 0 0 аю 4 4 V 4 X, 4000 1 0 L 0 0 0 -П 3000 0 0 1 -3/2 3 3000 0 1 -3/2 0 3/2 д 25 000 0 0 -’/3 ' 0 % Так как а03 = — — < 0, то направляющий столбец А3, направляющая строка — 3 вторая, направляющий элемент а23 = —. Выполнив очередной шаг, получаем табл. 2.6. Поскольку в индексной строке все оценки положительны, то найдено оптималь- ное решение; х1опт = 2000, х2опт= 6000, х3опт = 2000. Искомое значение целевой функции max (4хх + Зх2) = а00 = 26 000 = 4х1опт + Зх2опт. Таблица 2.6 4 3 0 0 0 Вх ^<0 X А, 4 X; 2000 1 1 0 0 -3/з 1 0 2000 0 0 1 2/з — 1 3 х2 6000 0 о 1 0 1 0 А 26 000 0 0 ’/3 4 77
§ 3. НАХОЖДЕНИЕ ДОПУСТИМЫХ БАЗИСНЫХ РЕШЕНИЙ Определение начального допустимого базиса в общем случае пред- ставляет значительные трудности. Поэтому для нахождения допусти- мых базисных решений разработаны специальные методы. i Метод искусственных переменных. Пусть ограничения имеют вид Ах < Ао. Если все bt >• 0, i = 1, 2, ..., т, то свободные векторы, образую- щие единичную подматрицу, составляют начальный базис, а соответ- ствующие им переменные — начальное базисное решение. В более общем случае, когда ряд неравенств имеет знак больше или равно, например, ацх-t + ai2x2 + ... + &inXn > blt i = 1, 2, .... т, то для приведения их к стандартной форме равенств свободные пере- менные надо вычесть. Тогда расширенная форма задачи имеет вид: Й1Л 4" ai2*2 4~ а{пхп — 1 хп+1 + 0хП4-2 + • • • 4~ 0х„4-т — bt; а21х1 4* а22х2 + • • • + й-2пХп 4- ОЛД-}-! — 1%п+2 4* • 4~ O.Xn_|_m = bz, ClmlX-L + й>т2Х2 4- • • • -]- dmnXn 4~ OXn-j-i 4“ • " * —• iXii-’rm — Ьт. Свободные переменные хп+2, .... хп+т} уже нельзя исполь- зовать в качестве начального базиса, так как лд-н < 0, хп+2 < 0, ... ..., Хп^т < 0. Поэтому в уравнения (3.1) дополнительно вводят искус- ственные переменные x„+m+i, хп+т+2, • xn+m+k- Эти переменные не имеют ничего общего с реальной задачей и должны быть выведены из базиса как можно скорее. Чтобы гарантировать их быстрое выведе- ние после начала итераций, искусственным переменным в целевой функ- ции приписывают очень большие по величине отрицательные коэффи- циенты (— М) для задач максимизаций, где М > с,- (i = 1, 2, ..., п). В случае решения задач минимизации искусственные переменные вводят в целевую функцию с большими по величине положительными коэффициентами (4- М). Знаки вводимых в ограничения искусственных переменных xn_|_m+b Хп+т+2, •••, xn+m+k должны совпадать со знаками соответствующих свободных членов. Искусственные переменные образуют начальное базисное решение. Применив симплекс-метод, необходимо вывести из базиса все искус- ственные переменные. Если доказано, что от искусственных перемен- ных избавиться нельзя, то это означает, что задача не имеет решения, т. е. ее ограничения противоречивы. : Пример 2.5. Найти min / (х) = min (15хх 4- 33х2) при ограничениях ' 3*14- 2х2 > 6; 6xi 4- х2 > 6; _ . х2 1; , Х|, х2 0. 78
Вводя свободные переменные х3, х4, х3, приходим к расширенной форме задачи; ' Эх, + 2х2 — х3 — 6; 6х, + х2 — х4 = 6; *2“ Х5=1- Переменные х3, х4, х6 образуют недопустимое базисное решение; х3 = — 6 < 0, х4 = — 6 < 0, х5 = — 1 < 0. Поэтому вводим в ограничения и в целевую функцию искусственные переменные •4* V- min {15xj + 33х2 + Mxe + + Mxs}; Зхх + 2х2 — х3 + хв — 6; 6х7 -J- х2 — х4 х- — 6; Х2 Х3 4“ х3 = 1 • Очевидно, начальное базисное решение: х* = 6; х7 = 6; Xg = 1. Так как Ао, А7, А8 образуют единичный базис, а все а/0 > 0. то для решения применим метод симплекс- таблиц (табл. 2.7). Таблица 2.7 с‘ J 15 33 0 0 0 М м м - ВХ аю А; а2 Аз Ад А6 А6 а7 А» м х6 6 3 2 — 1 0 0 1 0 0 м х7 6 и 1 0 — 1 0 0 1 0 м х8 1 0 1 0 0 — 1 О' 0 1 13М 9М—15 4М— 33 ;-М —м —м 0 0 0 Первая итерация. Элементы индексной строки вычисляем следующим образом: а0в = «07 ' «08 «01 = S с‘ха — С1 = S с‘х11 - ci == ЗМ + 6М 4- ом — 15 = 9М - 15; (С/б i—6 «02 = S Cixa — c2 = 2M + IM + IM — 33 = 4M — 33; г'€/б «оз= S с‘Л-з“сз = — M; a»4 = —M; «05 = —M; <едб a00 = У c/X; = 6M 6M 4- IM = 13M. leJ6 Поскольку это задача минимизации, то направляющий столбец определяют по наибольшему положительному элементу индексной строки; шах 7®
Направляющий столбец — Аг; направляющая строка — вторая. Выполним один шаг преобразования. Разделим направляющую строку на на- правляющий элемент а71 = 6. Умножив преобразованную направляющую строку на 3, вычтем ее из первой. Затем, умножив преобразованную направляющую строку на (9М — 15), вычтем ее из индексной. В результате получим табл. 2.8. Таблица 2.8 15 33 0 0 ' 0 м м М вх аЮ Ах А2 А3 А4 Ай Ав А, а8 М хъ 3 0 4 — 1 Д 2 0 1 __1 ~ 2 0 15 *1 1 1 1 6 0 1 6 0 0 1 “6 0 М х8 1 1 0 1 1 0 0 — 1 0 0 I 4M-J-15 1 0 1. м—зо-Ь —м М 15 2 —М 0 5 3 ЛЛ 2 2М 0 5 1 Вторая итерация. Так как а02 — М — 30—- > aQj (j 2), то направляю- щий столбец второго шага — А2. Направляющая строка — третья, направляющий элемент а82 = 1. Выполним шаг симплекс-преобразования. Умножив направляющую строку 1 1 на 1 вычтем ее из первой строки. Затем умножив направляющую строку на -уг, Z О вычтем ее из второй и, наконец, умножив направляющую строку на вычтем ее из последней строки. Получим табл. 2.9. V / £ 1 \ (|м-з°1), Таблица 2.9 — с. 1 15 33 0 0 0 М м М Вх ai0 А, Аз А3 а4 а5 А6 А, а8 м X 6 4 0 0 -1 1 11 2 2 1 _ Д 2 -4 15 Х1 5 6 1 0 0 _ 2. 6 1 6 0 £ 2 6. 33 1 0 1 0 0 —1 0 0 1 <м+94 2 Г 2 0 1 0 _м| 1 2 6 3 I - м - 2“ ”2 0 15 3JV 2 2 -|м + зо1 80
Третья итерация. Так как а0Ъ = — М—Ы — > aOf (/=И=5), направляющий столбец — А5. Направляющая строка—первая, направляющий элемент «в6 = 1 . Выполнив очередной шаг симплекс-преобразования, выведем из базиса послед- нюю искусственную переменную хв и введем х5. Таким образом, приходим к табл. 2.10. I Таблица 2.10 ci 15 33 0 0 0 м М м Вх Шо Aj Аа Аа а„ а5 А« А? Ая 0 *5 1 0 0 _2 3 ~Т 3 1 _2 3 _£ 3 — 1 15 А 6 1 0 _1_ 9 0 £ 9 1 + (О 0 33 *2 2 0 1 __2 ~ 3 3 - 0 _2 3 _ 1 3 0 76 0 0 -20 А 46 6 0 61 м 3~М 46 т-м —м Четвертая итерация. Обратим внимание, что в этой таблице все искусственные переменные выведены из базиса. Направляющий столбец — А4, направляющая строка — первая, направляющий элемент п51 = —. Таблица 2.11 С1 15 33 0 0 0 М М м Вх aio А, Д2 А3 а4 д5 А6 а7 А8 0 Х4 3 0 0 —2 1 3 2 —1 —3 15 хг £ 3 1 0 _ 1 3 0 2 . 3 £ 3 0 сч |со 1 33 ^2 1 0 1 0 0 —1 0 0 1 53 0 0 —5 0 —23 5—М —м —М+23 6 И 3164 81
Выполнив еще один шаг симплекс-преобразования, получим табл. 2.11. Поскольку в индексной строке все оценки а0;. < 0, то найдено оптимальное ре- шение: х, опт = у, х2 опт = 1, х4 опт = 3. Искомое значение целевой функции а00 = min г = 53. Проверим этот min (15хх -р 33х2) — 15х1опт -р 33х2опт = ^3. Метод Данцига для нахождения’ начального допустимого базиса [29]. Этот метод позволяет получить за конечное число шагов допусти- мый базис либо удостовериться в отсутствии допустимых базисных решений. Рассмотрим случай ограничений в виде строгих равенств: АхХх + ^2Х2 + • • • + ^пХп — Ао- Выбираем произвольный базис, образованный вектором Ао, и, на- пример, векторами А1; А2, ..., Ат_ь Тогда все остальные векторы мо- гут быть разложены по базису А/ = Уо/А0-р У1/Ах ~Р У2/А2--р ••• X У ij&b (3.2) i=0 где j — т, т -р 1, .... п. Условие уо/ < 0 для всех / = т, т -р 1, ..., п является достаточным для отсутствия допустимых базисных решений. Нахождёние~начального~допустимого базиса начинают с выбора произвольных величин > 0, w2 > 0, ..., wm_i > 0, р0 > 0. Образуем вспомогательный вектор G: G = ырА-| -р &у2А2 ~Р • S"P iAm_] — PqAq или 6 + РоАО = X М;А(. (3.3) i=l Для существования допустимого базиса необходимо, чтобы существо- вал такой вектор А;-, для которого yOj > 0. Выберем такой вектор и умножим (3.2) на 0. Затем вычтем резуль- тат из уравнения (3.3): 6 -р (р0 -р 0г/о/) Ао — 0А/ -р X (wt — ®Уу) Аг-. (3.4) <=1 По предположению р0 -р 0уо/ = р > 0. Если в уравнении (3.2) все уи < 0 (Z = 1, 2, ..., т — 1), то в уравнении (3.4) все коэффици- енты вида'(да, — Qy{j) будут больше нуля.. Решив тогда уравнение (3.2) относительно Ао, получим A0 = -LA/-pL-^-V1-pf-^A2+ ... Vol ’ \ У0! / 1 \ yOi ) \ %/ / (3.5) 82
Если все коэффициенты вида (----^-)>0 (й = 1, 2, ... , т — 1), \ Уо/ / то А/, Ар А2, ..., Ат_> образуют допустимый базис, причем базисные / * 1 \ * ^1/ \ решения определяются автоматически: =з — I, =* ——у и т- Д- Если по крайней мере один из ytj > 0 (i = 1, 2, .... т — 1), то со- ответствующий вектор А, должен быть выведен из базиса. Для этого выбирают 0О = min где минимум ищут по всем для которых уц > 0. Если принять 0 = 0О) то в соотношении (3.4) один из коэффициен- тов перед Аг обратится в нуль. Новый вектор Gi + piA0 находят из уравнения (3.4), причем pj = 0ог/о/ + Ро- Разложив по базису все векторы А/, описанный выше процесс по- вторяют. После конечного числа итераций приходят к одному из двух исходов: 1) если yoj < 0 для всех j = т + 1, ... п, тогда нет допустимых базисных решений; 2) если yoj > 0, a y(j < 0 для всех i = 1,2, ..., т, то в этом случае, решив уравнение (3.2) относительно Ао, получают искомое допустимое базисное решение. Итак, алгоритм нахождения допустимого базиса состоит из следую- щих этапов: 1. Выбирают произвольный базис вида {Ао, Ах, ..., Am_i}. В со- ответствии с уравнением (3.4) определяют z/17 (i = 0, 1,2, ..., tn — 1). 2. Выбирают произвольные положительные значения вспомога- тельных переменных р0, wL (i = 1, 2, ..., т— 1) и записывают выра- жение (3.4). 3. Используя уравнение (3.2), отыскивают вектор А/, для которо- го i/о/ > 0. Этот вектор должен быть введен в базис. 4. Отыскивают вектор, который должен быть выведен из базиса. Его индекс определяют из условия min <— 1 = 0О, где минимум I I УУ) ищут по всем I, для которых ylt > 0. т— 1 5. Образуют соотношение G -|- (р0 -ф 0ог/о,-) Ао = 0ОА/ + S (wi — — %Уи) А/, откуда получают новые значения переменных р' = р0 + + 0о^о/; w'i = wt — &оу{/. 6. Третий, четвертый, пятый шаги повторяют до тех пор, пока т—1 в равенстве А/ = z/0/A0 4- у//А( все yt! не станут отрицательными. В этом случае допустимое решение имеет вид: Уо, = А0. (3.6) Таким образом, нахождение допустимого начального базиса осу- ществляют одной из модификаций симплекс-метода. Ц 83
Пример 2.6. Найти допустимое базисное решение системы уравнений: З^ + ^з— х5 = 3; xi + хз — = — 12; = 4. Данная система уравнений л2 ~г л5 в матричном виде й шаг. Зададимся произвольным базисом Ао, А4, А3 и найдем зна- 4' _ 35~ ’ У12~ П е р в ы чения у,{. Решая уравнение А2 = Л„у02 + А^ + A3y3i, получим уа2 = 13 51 35~ " *32 35~ ’ ’ , g 3 Решая уравнение. А4 = А0уа4 А4г/14 + А3у34, получим yoi = — , ylt = —- , 00 ЗЭ 36 35" Ун ^"32 2 Наконец, решая уравнение А6 = Л0г/05 А^ + А3у35, получим у№ = — — , _ 24 Уи ЗЁГ ’ Сравнивая в базис должен Запишем уравнение для А4: 9 3 . 36 А< = Уо4^о + 1/14^1 + Уз4^3 = Ао Ч-Aj-------— Ад. оЭ uD о О Дадим следующие значения вспомогательным переменным:. р0 = .2, = 4, wa = 3. Образуем вспомогательный вектор + РоАо = a^iAj + w.jAg, G + 2А0 = 4А2 + ЗА3. Определим, какой вектор необходимо вывести из базиса: w-i 4 140 „ 3 Ун 3 3 у34 35 „ . „140 Следовательно, выводим Ао при этом 0о= — Отыскиваем новые значения для переменных р и (i = 1, ..., т — 1): 6 + (Ро+ Э'оУо/) Ао = (^4 — ОаНп) А^ + (ю3 — б0!/з;) А3 + б0А/^ г , L, Г40П хА с 140 . , Г 140 / 36 \1 g + ^2 + ^--3k) А»=-Т-А‘+р--з-Ч~“/] V/ G + 14А0 = д4 + 51А3. с О - <”i- Узь — 43 35 4 9 2 величины (/о2=— 35-. Ум^ gjp Ум = — 35’ устанавливаем, что быть введен вектор А4, так как у04 > 0. 36 35 35 12 Ад} .(р I
Отсюда Ро = 14, ш' = 51, а,'= — Второй шаг. Исходный базис {Ао, А3, А4). Разложим по базису небазисные векторы. ~ - >' Решив уравнение Ах = у01А0 +(/3iA3 + у41А4, получим у01 = —3.; у31 = 12, _ 35 "" з • Решив уравнение А2 + у02Д0 + у32А3 + у42А4, получим г/02=1, Узг = — 3, _ 13 --------- 1/42 “д' Наконец, решив уравнение А5 = ^oeAo + z/S6A3 + у45А4, получим у„ь ~ 2, у33 = = -7,1/45= -8. . , “ Так как у02 > 0 и г/0В>0, то в базис можно ввести как вектор А2, так и вектор А6. Введем в базис вектор А5: А6 = 1/о5 + </3бА3 + i/45A4 = 2А0 — 7А3 — 8А4. Поскольку t/35 = — 7 < 0 и г/48 = —8 < 0, то векторы А3, А4, А6 образуют jojiycTHMbiii базис. Чтобы выделить допустимое базисное решение, приведем послед- нее уравнений к^следующему виду: А() = — А6 — А3-------------- А4 = -у- А6 + -%- А3.+ 4А4. ^05 #05 #05 Z Z Следовательно, допустимое.базисное решение: ' ~ 7 1 х\ = 0, х2‘ = °- *3 = ’ *4 = 4, *5 = — • § 4. ДВОЙСТВЕННАЯ ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ Структура и свойства двойственной задачи Любую задачу максимизации ЛП с экономической точки зрения мож- но рассматривать как задачу о распределении ограниченных ресурсов bx, b2, ..., Ьт между различными потребителями, например, между некоторыми технологическими процессами, которые представляются столбцами Ах, А2, ..., А„ матрицы ограничений задачи. Любое допусти- мое решение задачи ЛП хъ х2, ..., хп дает конкретное распределение, указывающее ту долю каждого из ресурсов, которая должна быть ис- пользована при осуществлении соответствующего технологического процесса. Рассмотрим пример. Завод производит три вида продукции хъ х2 и х:1, каждый из которых требует затрат времени на обработку на токар- ном, фрезерном и сверлильном станках. Количество машинного вре- мени для каждого из станков ограничено. Пусть с4, с2, с3 — прибыль от реализации единицы соответствующего вида продукции. Необходи- мо определить, какое количество каждого вида продукции необходи- мо производить в течение недели, чтобы получить максимальную при- быль. Формально эта задача записывается так: найти шах (/уду + с2х2 + с3х3) (4.1) 85
при ограничениях + а12-^2 + «13Х3 O^X-l 4* О22Х2 4“ а23х3 ^2> (4-2) . ЯзЛ + «32^2 + о33х3 < Ь3, где alh a2j, a3j — время, необходимое для обработки единицы J-го вида продукции соответственно на токарном, фрезерном и сверлильном станках (/ = 1, 2, 3); Ьъ Ь2, Ь3 — недельный ресурс машинного времени соответственно для токарного, фрезерного и сверлильного станков. Обозначим уг, и z/3 — цену единицы времени работы на токарном, фрезерном и сверлильном станках. Тогда аиух 4- a21z/2 + а31у3 — мож- но трактовать как расходы на изготовление единицы продукции перво- го вида, а12г/1 + а22у2 + а23у3 — расходы на изготовление единицы продукции второго вида и т. д. Предположим, что цены ресурсов уг, у2, ..., ут выбраны так, что вы- полняются следующие соотношения: ОцУ1 + а21у2 4- а31у3 сх; а12У1 а22У2 + а32у3 С2-> О-13У1 "Ь а2зУ2 4* а33Х3 С3- (4.3) Поскольку blt b2 и Ь3 — использованный ресурс машинного време- ни для каждого из станков, то b.ijx 4- &2г/2 4- Ь3у3 — суммарные расхо- ды на производство. Требуется найти такие ylt у2ку3, удовлетворяющие условиям (4.3), при которых минимизируются суммарные расходы на производство: min g (#1, У2, Уз) = Ь1У1 + Ь2У2 + Ь3у3, (4.4) У1 > О, У2> 0, у3 > 0. Такую задачу называют двойственной задачей по отношению к за- даче (4.1), называемой прямой. Запишем теперь прямую и двойственную задачи в общем случае. Прямая задача п шах У сх, (4.5) {*/} /=1 при условиях п У, анх, ^b{, 1=1, т; (4.6) /=1 Д>0, /=1, О. (4.7) Двойственная задача т min S b(y{ (4.8) при условиях т —. ЦоуУ{>С,, (4.9) «=1 ^>0, /= 1, т. (4.10) 86
В матричном виде пара двойственных задач записывается следую- щим образом: шах сгх; (4.11) Ах < Ь; (4-12) х >0; (4.13) min Ьгу; (4-14) Агу > с; (4.15) у >0. (4.16) Сопоставляя формы записи прямой и двойственной задач, можно установить между ними следующие взаимосвязи: 1) если прямая задача является задачей максимизации, то двойст- венная будет задачей минимизации, и наоборот; 2) коэффициенты целевой функции прямой задачи с1г с2, сп ста- новятся свободными членами ограничений двойственной задачи- 3) свободные члены ограничений прямой задачи Ь1У Ь2, -,Ьт становят- ся коэффициентами целевой функции двойственной задачи; 4) матрицу ограничений двойственной задачи получают транспо- нированием матрицы ограничений прямой задачи; 5) знаки неравенств в ограничениях изменяются на обратные; \6) число ограничений прямой задачи равно числу переменных двой- ственной задачи, а число ограничений двойственной задачи равно числу переменных прямой задачи. Переменные z/i, у2, ..., ут двойственной задачи иногда называют «теневыми ценами». Двойственную задачу выгоднее решать, чем исходную прямую, если в прямой задаче при малом количестве переменных имеется боль- шое... количество ограничений (т > п). \ - Связь между оптимальными решениями прямой и двойственной за- дач устанавливают посредством следующих теорем теории двойствен- ности. Теорема 2.4. Если х0 и у0 — допустимые решения прямой и двойственной задач, т. е. если Ах0 < b и А7 у0 > с, то C^o^t/yo, (4.17) т. е. значения целевой функции прямой задачи никогда не превышают значений целевой функции двойственной задачи. Доказательство. Умножим выражение (4.12) на у о и получим уоАх0 < yob. (4.18) Аналогичным образом умножим (4.15) на хо xjA7’y0>Xoc. (4.19) Но уо Ах0 = (уоАх0)7' = хо Агу0, а кроме того хос = сТх0. 87
Поэтому, сравнив (4.18) с (4.19), получим уч уч уч уо ь > уо Ах0 > х0 с ил с х0 < b у0. Теорема доказана. Теорема 2.5. (основная теорема двойственности). Если х0 и у0 — допустимые решения прямой и двойственной задач и если сТх0 = = Ьгу0, то х0 и у0 — оптимальные решения пары двойственных задач. Доказательство. Согласно теореме 2.4 для всех допусти- мых решений хну справедливо неравенство (4.17). В частности, для всех допустимых решений х справедливо с?х < Ьгу0. Но из условия с7х(| = Ьгу0 следует сгх < с7'х0. Следовательно, х0 — оптимальное решение. Вторая часть теоремы доказывается аналогично. В силу теоремы 2.4 для всех допустимых у справедливо с7х0 < Ьгу. Но из условия Ло = Ь7у0 следует Ьгу > Ьгу0 для всех у > 0. Таким образом у0 — оптимальное решение. Теорема 2.6. Если в оптимальном решении прямой задачи (4.5) — (4.7) i-e ограничение выполняется как строгое неравенство, то оптимальное значение соответствующей двойственной переменной равно нулю, т. е. если п У ^/Д/°пт = А хопт <б bit то у/опт = 0, (4.20) /=1 где А' — I- я строка матрицы А. Смысл теоремы 2.6 состоит в следующем. Если некоторый ресурс bi имеется в избытке и i-e ограничение при оптимальном решении вы- полняется как строгое неравенство, то оно становится несущественным, и оптимальная цена соответствующего ресурса равна 0. :. Теорему 2.6 дополняет теорема 2.7, устанавливающая взаимосвязь между оптимальным решением прямой задачи и ограничениями двой- ственной. Теорема 2.7. Если в оптимальном решении двойственной зада- чи ограничение j выполняется как строгое неравенство, то оптималь- ное значение соответствующей переменной прямой задачи должно быть равно нулю, т. е. если АТуопт — Щ > 0, то Л/опт = 0. (4.21) Дадим экономическую интерпретацию теоремы 2.7. Поскольку величины yt (i = 1, m) представляют собой цены соот- т ветствующих ресурсов, то Afy = У, — это затраты на /-Й техно- i=i логический процесс, величина с, — прибыль от реализации на едини- цу изделия. Поэтому с экономической точки зрения теорема 2.7 озна- чает следующее: если у-й технологический процесс оказывается стро- го невыгодным с точки зрения оптимальных цен ресурсов уопт, то в оптимальном решении прямой задачи интенсивность использования данного технологического процесса х, должна быть равна 0. Таким образом, теорема 2.7 выражает принцип рентабельности оптимального организованного производства. 88
Из нее вытекает также, что если х;-0Пт > 0, то А^Уопт — С,- = 0. (4.22) Предположим, что среди переменных xlt х2, хп прямой задачи есть множество из т переменных, которые в оптимальном решении име- ют ненулевое значение. Пусть, например, таковыми оказались первые по порядку т переменных. Тогда на основании уравнения (4.22) получают т условий рентабель- ности: А1Уопт н “ 0; АзУопт С2 “ 0, (4.23). АтУопт Ст ~ 0, где А] = (йц, Й21, • • • ’ &т1)> ^т === (^1от» ®2т> • • • > &тт)- Доказательства теорем 2.6 и 2.7 проведем поочередно. Пусть Хопт и уопт — оптимальные решения прямой и двойствен- ной задач. В силу допустимости этих решений имеем Ах0Пт — b -Д 0, (4.24) АГу0ПТ—С>0. (4.25) Умножим неравенство (4.24) на уопт> а неравенство (4.25) на xJnT: УоптАХопТ УоПтЬ тД 0) (4.26) ХоптА Уопт Х0ПтС 0. (4.27) Так как в силу теоремы 2.5 уоПТЬ = х!птс и у1ПтАх0ПТ = ХоптАгуОПт, то выражения (4.26) и (4.27) строго равны нулю. Расписав левую часть неравенства (4.26), получим Уопт (Ахопт Ь) = )/1опт (А Хопт Ь.) -р "р У2опт (А Хопт ^2) “Р * * * ~Р У тот (А ХОпт Ь^ = 0. (4.28) Поскольку все у/опт > 0 и А(°хопт — bt < 0 для всех i = 1,2, ... ..., т, левая часть уравнения (4.28) может быть равна нулю только в том случае, если каждое слагаемое в отдельности равно нулю. Таким образом, для каждого г, при котором А(г>х0Пт — bt < 0, имеем уипт = 0, что и требовалось доказать в теореме 2.6. Рассмотрим теперь левую часть неравенства 4.27, предварительно расписав ее: ХоптА Уопт Х()|1ГС = ХОпт (А Уопт С) — = Х|опт (А] Уопт И) "Р ' " ‘ ”Р ^лопт (АзУопт Сп) — 0, (4.29)' где А = 1А1; А2, ..., АД. Так как все х/опт >0и А/у0Пт — ci >• 0 Для всех / = 1,2, ..., п, то уравнение (4.29) строго равно нулю, если для каждого /, при 89
котором А^уопт — Cj > 0, соответствующая переменная х/опт равна нулю. ‘ 7 Приведем еще две важные теоремы теории двойственности [24, 57]. Теорема 2.8 (теорема существования). Прямая и двойственная задачи имеют оптимальные решения тогда и только тогда, когда обе они имеют допустимые решения. Теорема 2.9 (теорема двойственности). Допустимый вектор х0 оптимален тогда и только тогда, когда в двойственной задаче имеется такое допустимое решение у0, что сгх0 = Аоуо. (4.30) Доказательство теорем 2.8 и 2.9 несложно и предлагается читателю. Между оптимальными решениями прямой и двойственной задач и элементами индексных строк симплекс-таблиц, соответствующих этим решениям, существует следующая взаимосвязь: Ад-рг = yionit Ат_ру = Л'/опт; (4.31) i = 1, 2, ... , m; j = 1, 2.........п, где п — количество переменных прямой задачи; т — количество ее ограничений; А/цЗ, Ат+; — соответствующие элементы индексной строки прямой и двойственной задач соответственно. При этом, если п + i (где < i < tri) больше числа векторов-столбцов матрицы ограничений рас- ширенной формы соответствующей задачи, то элементы А„+< (и А^-н) находятся путем циклической перестановки элементов индексной стро- ки, начиная с элемента Aj.; Пример 2.7. Рассмотрим следующую задачу ЛП: найти max f (xlt х2) =.clxl + с2х2 = 4х1 + Зх2 при ограничениях + 0х3 < 4000; Oxj 1х2 < 6000; 2 Ixj 4—— х, < 6000. Двойственная задача записывается так: найти min g (ylt у2, ys) — min (4000z/j + 6000y2 + 6000y3) при ограничениях 1У1 + 0i/2 + l*/3 > ci = 4; 2 0f/i + lj/2 + — ys > c2 = 3. В §2 настоящей главы было найдено решение прямой задачи: Х1 опт = 2000, х2 опт = 6000, х3 0П1 = 2000, max f = 26 000. Для решения двойственной задачи симплекс-методом введем свободные перемен- ные и4 и и5 и запишем ограничения в следующем виде: 11/1 + °Уи + 1Уз — У* = 4; 2 ®У1 + 1//г + Уз — У;> = 3. О 90
Решаем задачу табличным симплекс-методом, исходная задача записывается в табл. 2.12. Таблица 2.12 а 4000 6000 6000 0 0 Вл Ао А> Аг Ад Ад Аб 4000 У1 4 1 0 и —1 0 6000 Уз 3 0 1 2/3 0 —1 Д 34 000 0 0 2000 —4000 —6000 Так как Д3 = 2000 > 0, то в качестве направляющего выбираем столбец А3. Выполнив первую итерацию симплекс-метода с направляющим элементом а13 = 1, получим табл. 2.13. Таблица 2.13 а 4000 6000 6000 Вл Ао Ai А2- Ад Ад аб • 6000 6000 Уз Уз 4 1/3 1 —2/3 0 1 1 0 —1 2/3 0 —1 Л 26 000 —2000 0 0 —2000 —6000 Так как в индексной строке этой таблицы все оценки неположительны, то текущее базисное решение — оптимально. Итак, мы получили у{ = 0; у2 = -1.; (/Зопт = 4. Очевидно, min (4000 yt + О 4- бОООуа + 6000у3) = 26 000. Следовательно, min g (у) = max f (х) = 26 000, т. е. теорема 2.5 выполняется. Проверим теперь, будут ли выполняться теоремы 2.6 и 2.7 А1ХОПТ = | 1 0 | X j = 2000 1 + 6000 • 0 = 2000 < = 4000. Следовательно, р1опт = 0, что совпадает с полученным результатом. А2хОпт = а21х1опт + а22*2опт = Ох1опт + 1*2опт = 0 • 2000 + 1 • 6000 = 6000 = Ь2. Поэтому ^2опт Наконец, 2 АзХОПТ fl31XlonT "Ь ^32х2опт “ 1*4 ОПТ “I д" х2опт 6000 &3, КЗопт Как видим, теорема 2.6 выполняется полностью. Для проверки теоремы 2.7 выпишем ограничения двойственной задачи при опти- мальных значениях переменных: «иУюпт + а21У2опт + «311/зопт — Ci =1-0 + 0.—+1.4 — 4 = 0. Поэтому в силу теоремы 2.7 х10пт должно быть больше нуля. 91
Нами найдено решение (см. пример 2.4) х!опт = 2000 > 0. Аналогичным обра. зом для второго ограничения 1 2 а12^1опт + а22У2от + а32%ОПТ--- С2 = 0 Ц- 1 • —- -|- — • 4 - 3 = 0. и о В силу теоремы 2.7 х2опт должно быть больше нуля. Было получено %2опт = = 6000. Следовательно, теорема 2.7 полностью подтверждается. Проверим справедливость соотношений (4.31) для рассмотренной пары двойст- венных задач (см. табл. 2.6 и 2.13). Рассмотрим индексную строку табл. 2.6. Учтем, что и = 2; т = 3. Лопт = Д!г+1 = Д2+1 = дз =0; %о,п = ^!Ч =аГ' = 4; </2опт = Д^ = Аг = 4-. О Эти значения совпадают с найденным решением двойственной задачи в табл. 2.13. Рассмотрим теперь индексную строку табл. 2, 13. Согласно соотношений (4.31) имеем Лопт = - = - МДВ) = 2000, х2опт = - Д<$2 = - Д5 = 6000. %3опт ~—ДбАВ>’ и так как матрица ограничений табл. 2.13, состоит из 6 столбцов, то по правилу циклической перестановки ^Зопт = -4ДВ) = -Д(1да) = 2000. Это решение полностью совпадает с решением прямой задачи, Таким образом, пользуясь соотношениями (4.31), мы, решив прямую задачу симплекс-методом, одновременно находим и решение двойственной задачи, и наоборот. Этот вывод дает обоснование возможности перехода от прямой задачи к двойст- венной при и наоборот. Общий случай двойственности В предыдущем разделе были установлены основные соотношения для пары двойственных ЛП-задач при ограничениях в форме нера- венств. Обобщим теперь эти результаты на случай произвольных огра- ничений. Пусть прямая ЛП-задача задана в виде: найти п max У С/Х/ = max L (х), (4.32) l=i при условии п \ У aqXj i = 1, 2, ... , mL < <4-33) У aijXj = b(; i = т1 ф- 1, т1 ф- 2, . . . , tn, /=i ’ xt >°; / = i; 2, ..., < n. (4.34) 92
Тогда двойственная задача по отношению к (4.32) — (4.34) (или сопряженная с ней) состоит в минимизации линейной формы т 2<4-35> i‘=l при условии т > I / = 1, 2, ... , < /?, / = 1 т (4.36) £ аг7//г = ch 1=1 / == “I- . • в , /2, У1 > 0; i = 1, 2, ... , < т. (4.37) Таким образом, задача, сопряженная с задачей со смешанными условиями, составляется согласно следующим правилам: 1. Если переменная х, прямой задачи предполагается неотрица- тельной, то /-е условие системы ограничений (4.36) является неравен- ством. Если на х, не накладывается такое ограничение, то /-е ограничение двойственной задачи будет равенством. Аналогичным образом связаны знаки переменных двойственной задачи и соответствующие им ограничения прямой задачи. Заметим, что если положить т1 = т и пг = п, то получим частный случай пары двойственных задач с ограничениями в форме неравенств. Докажем справедливость соотношений (4.32) — (4.34) и (4.35) — (4.37), связывающих прямую и двойственную задачи. Свяжем с каждой ЛП-задачей вида (4.32) — (4.34) следующую за- дачу с ограничениями в форме неравенств. . Требуется найти max £ CjXj + £ с, (x] — xj+„2), (4.38) /=1 /=«1+1 при условии '£aiiXi+ £ di, (X,- — X/+„2)< bf, i = 1, tn, (4.39) /=1 /=«1-1-1 — £ ацх‘1 — £ ац (x'f — x'i+n2) < — bl, (4.40) /=1 /=«1+1 i = 1, my + 2, ... , tn, j = 1, 2, ... , n + n2, (4.41) где n2 = n — nx — число переменных задачи (4.32) — (4.34), на ко- торые не наложено условие неотрицательности. Установим соответствие между переменными задач (4.32) — (4.34) и (4.38) — (4.41). Непосредственным сопоставлением форм записи убеждаемся, что n-мерный вектор х = {х1э х2, ..., хп} и (п + п2)- 93
мерный вектор х' = {xi, Хг, х„+г} связаны соотношением: ( Xj, /—1,2, . • • , /ij! X- = { , , (4.42) ( Xj — Xj+n2, j = tlx + 1, + 2, .... n. Очевидно, каждому (n + «г)-мерному вектору x' соответствует един- ственный n-мерный вектор х, и вместе с тем любому n-мерному х соот- ветствует целое семейство (п + /г2)-мерных векторов х'. Таким образом, соответствие, устанавливаемое формулой (4.42), является однозначным только в одну сторону. Вместе с тем, из семей- ства векторов х', соответствующих х, всегда существуют векторы с неотрицательными компонентами. Пусть х'= {xi, хг, ..., х„+„2) план задачи (4.38)—(4.41). Используя соотношение (4.42), можно легко получить, что соответствующий вектор х является планом задачи (4.32) — (4.34). И наоборот, если х — план задачи, то существует целое семейство планов х' задачи (4.38) —- (4.41), среди которых имеются заведомо неотрицательные. Одним из них является вектор х', где Л7> max (0, хр, шах (0, —х/_„2), /= 1, Д, / = пх -ф 1, пг + 2, ... , п, (4.43) / = п + 1, и + 2, ... , п + п2. Неотрицательность всех компонентов х' очевидна, а соответствие векторов х и х' следует из равенства Xj Х1+п, = (х,- — 0 — х;, если Х/>0, = шах (0, Xj) — шах (0, — х,) = „ . . п " 10 — (— Ху) = Ху, если Ху < О, где / = д ф- 1, д + 2, ..., п. Рассмотрим теперь задачу (4.35) — (4.37), двойственную к задаче (4.32) — (4.34). Нетрудно показать, что она легко приводится к виду (4.32) — (4.34). Для этого достаточно положить Cj = — с;-; ац = — ад Ь{ — — bt. При этом задача (4.35) — (4.37) переходит в задачу максимизации линейной формы т S Ь(У{ (4.44) при условии m ^atji/i^Cj; /=1, 2, ...,д; (4.45) т S ещУс — О:’, ] = П1+ 1, п; (4.46) t=i ^>0; i = 1, /д. (4.47) 94
Поэтому задаче (4.35) — (4.37) соответствует следующая задача с ограничениями в форме неравенств: требуется обратить в минимум линейную форму Wj tn £ bitj'l + £ bt (уI — y'i+mi) (4.48) Z== 1 1=^+1 при условии m} m S + S a4 {y'l — / = 1,2’ . . . , П, (4.49) Z=1 mt m — X Uny'i — X aij (y'l — y'i+m2) > — C/; (4.50) Z=1 Z=m14-1 / == + 1, ... , tl, y'i> 0; i = 1, 2, ... , tn + m2, (4.51) где m2 = m — пц-— число переменных yt, на которые не наложено условие неотрицательности. Вектор y={z/!, У2, •••> Ут} и соответствующий ему (m+m2)-мерный вектор у' = {уъ у2, .... Ут+тг} связаны соотношением y'l, i = 1, 2, ... , тр, , , (4.52) yt — //z+m2. i = mt+ 1, mt + 2, ... , m. .Следовательно, каждому плану у' задачи (4.48) — (4.51) соответствует план у задачи (4.35) — (4.37), и наоборот, любой неотрицательный вектор у', соответствующий плану у задачи (4.35) — (4.37), является планом задачи (4.48) — (4.51). При этом, если у и у' — два соответст- вующих друг другу плана, то из оптимальности одного из планов сле- дует оптимальность другого плана. Запишем теперь задачу, двойствен- ную (4.38) — (4.41). Непосредственной проверкой можно убедиться, что получим задачу в форме (4.48) — (4.51). Таким образом, задачи (4.38) — (4.41) и (4.48) — (4.51) составляют пару двойственных задач с ограничениями-неравенствами. Отсюда следует, что соответствующие им задачи (4.32) — (4.34) и (4.35) — (4.37) с произвольными ограниче- ниями также представляют собой двойственную пару. Заметим, что все теоремы двойственности, доказанные для задач с ограничениями в форме неравенств, легко распространяются на общий случай задач с произвольными ограничениями. Рассмотрим для приме- ра теорему 2.5. Теорема 2.5 (основная теорема двойственности). Если х и у — допустимые решения прямой (4.32) и двойственной за- п т дачи (4.35) и если при этом решения этих задач. оптимальные Доказательство. Допустим, что задача (4.32) — (4.34) разрешима и х — ее допустимый план, а у — допустимый план зада- чи (4.35) — (4.37). Введем в рассмотрение вектор х = {х{ , .... хп+п2, }, 95
связанный с х соотношениями (4.42) с неотрицательными компонен- тами. По доказанному выше х является решением задачи (4.38). Воспользуемся тогда теоремой 2.5 двойственности для задач с огра- ничениями-неравенствами. Согласно этой теореме, если х и у — допустимые решения пары двойственных и имеет место равенство пх п тг т У Cjx'j + S Ci (x'j — х/+„2) = S bitj't + У y'i+,„2), (4.53) /=1 /=«1+1 1=1 l=mt+l то x' и y' — оптимальные решения этой пары. Используя соотношения (4.42), (4.52), связывающие соответствую- щие планы х и х', у и у', получим п п Xi c!%i -Г У Cj (Х/ = У CjX/', (4.54) 7=1 7=«i+l /=1 m, т m £ bty'i + S biiyt — y\+t!lj = S Ь{у{. (4.55) z=i ^=^4-1 i=l И, таким образом, соотношения (4.53) и (4.54—55) эквивалентны, и поэтому планы х' и у' — оптимальны. Но по доказанному выше каж- дому оптимальному х' соответствует единственный оптимальный план х, а каждому оптимальному плану у' соответствует оптимальный план у. Теорема доказана. Аналогичным образом могут быть доказаны остальные теоремы двой- ственности для произвольных ограничений. Исследование моделей задач линейного программирования на чувствительность Теория двойственности позволяет проводить анализ моделей задач линейного программирования на чувствительность. Рассматривается обычная задача ЛП в виде: найти п шах У, С/Х/ — max L (х), (4.56) /=1 при условии п У aijXj < bt-, i = 1, tn, (4.57) f=l Xj 0. (4.58) Напомним ее экономическую интерпретацию. Целевая функция L (х) — доход от реализации плана производства х; ац — интенсивность расходования i-ro ресурса при j-м способе про- изводства; Ь[ — имеющийся уровень г-го ресурса. Предположим, что величины ресурсов b = || bt || варьируются. Тогда возникают следующие вопросы. При каких вариациях правых частей ограничений найденный оптимальный план х0 не изменяется? Как эти вариации сказываются на величине максимального дохода 96
Tmax? Ответ, на эти вопросы дает анализ соответствующей ЛП-задачи на чувствительность. Пусть ограничения 6, получают некоторые вариации А6(-, что приво- дит соответственно к вариациям плана х0, х0 = х0 (Ь+АЬ), и функции Lmax (х0 (Ь АЬ)). Пусть эти вариации АЬ таковы, что план х0 (Ь + АЬ) остается допус- тимым (т. е. удовлетворяет условию неотрицательности). Найдем отно- шение приращения Lrnax (b) = Lmax (х0 (b + Ab))—Lmax (х0 (Ь)) к АЬ. Устремляя АЬ, 0, получим .. Abmax(b) dLmax (Ь) 1'^ А», ' где Ь — рассматривается как варьируемый параметр. Вспомнив, что в соответствии с основной теоремой двойственности (4.60) и подставляя (4.60) в (4.59), получим gLmax (b) дЬ{ (i = 1, 2, .... m). (4.61) = У°( Таким образом, оптимальные значения двойственных переменных y°i определяют вклад каждого ресурса в доход Lmax при оптимальном решении х0. Эта величина численно равна дополнительному доходу при увеличении i-ro ресурса bt на единицу и условии, что ресурсы используются оптимальным образом. Итак, величины £ служат показателями важности соответствую- щих ресурсов для системы. Чем больше значение y°t при некотором i, тем существеннее вклад i-ro ресурса в функцию максимального дохода Ттах И тем выгоднее его увеличение. Если для некоторого i у[ = 0, то i-й ресурс не является существенным ограничением для системы п (поскольку он имеется в избытке, то Ь( — a{!xoi > 0). i=i Заметим, что этот вывод хорошо согласуется с результатами теоре- мы (2.6) двойственности, которая связывает величины у° с ограниче- ниями прямой задачи. Величины y°i двойственной задачи часто называют «скрытыми» до- ходами [24] или маргинальными оценками ресурсов системы. Как мы выяснили, они могут рассматриваться как потенциальная возможность получения дополнительной прибыли за счет увеличения соответствую- щего ресурса при условии, что система функционирует оптимально. Варьирование целевой функции. Теперь рассмотрим случай, когда варьируются коэффициенты {с,}, / = 1, п. Попытаемся выяснить условия, при которых найденный ранее оптимальный план останет- ся оптимальным при таких вариациях. 7 к :ш>4 97
Пусть вариациям 6Сг подвергся коэффициент сг: с" = cr -j- 6Cfq Обозначим через /б, Леб множество индексов базисных и небазисных векторов в оптимальном решении х0. Найдем величины оценок Д“ после вариации сг для двух случаев: 1) Г С /неб, тогда Д/н) = Ду для всех j г\ И Д“ = Л ctair — (cr + 6J для j = г; , (4.62) /е/б 2) г С 1б Д/н) = S с^ац — Cj= S с^ц + 6С аг1 — о-; / £/неб. (4.63) 'е'б . Щ Очевидно, что для сохранения оптимальности прежнего плана при вариациях коэффициента сг необходимо и достаточно сохранения зна- ков оценок Ду11* для всех небазисных переменных. Поэтому из условий Дун) >• 0, определяемых через (4.62) или (4.63), можно определить допустимые вариации коэффициента 6Сг, при которых сохраняется преж- нее оптимальное решение. До сих пор мы рассматривали вариации лишь одного коэффициента целевой функции. Этот же подход можно применить, когда варьируются одновременно несколько коэффициентов сг. В таком случае получим соотношения, аналогичные (4.63), в которых оценки А/ будут функциями уже нескольких варьируемых параметров (6С1, 6С2, ..., 6Cf). Решая совместно систему неравенств вида Ду (6С1, <V, ..., 8Сг) > 0, / С Леб, получим искомые условия для вариаций 6сг, при которых прежний оптимальный базис сохраняется при указанных вариациях. Заметим, что данная задача относится к классу задач параметри- ческого программирования и для ее решения разработаны специальные стандартные программы на ЭВМ [18, 24]. Пример 2.8. Рассмотрим задачу ЛП при произвольных ограничениях max (5хх + Зх2 + 6х3) (1) при условии х4 —У 2х3 Ч- Х3 18; 2хх + lx2 + 3xs < 16; (2) х4 4~ x2 “1“ Xg = 10; >0, x2 > 0. (3) Составляем задачу, двойственную к (1) — (3), согласно общим правилам min (18#! + 16у2 + 10{/8) (4) при условиях У1 + 2р2 + Уз > 5; 2Pi + Уз + Уз > 3; (5) Vi + 3t/a + ys = 6; Pi >0; y2 > 0. (6) Найдем решение задачи (1) — (3). Так как на х8 не наложено условие неотрица- тельности, то заменим х8 на свободные переменные х3 = х4 — xs. (7) 98
Таблица 2.14 а 5 3 6 —6' —м В.¥ ! Ао А, А2 А4 А5 Ав А, Ад 0 Xg 18 1 2 1 —1 1 0 х7 16 н '1 3 —3 1 —м *8 10 1 1 1 —1 1 Д —М— 5 —М—3 — М—6 6+М 0 0 0 Таблица 2.15 Ci 5 3 6 —6 —М Вх Ао А, ^2 а4 Ай А6 А7 А3 5 х6 %1 10 8 0 1 3/2 1/2 -1/2 3/2 1/2 —3/2 1 -1/2 1/2 —М XS 2 0 |j/2| —1/2 1/2 -1/2 1 А 0 _М_ 1_ 2 2 М , 3 2 + 2 _М 3 2 2 0 М/2 0 Таблица 2.16 с/. 1 5 3 6 —6 —М Вх А» а4 а2 А4 А5 Ае А, А8 хв 4 0 0 1 —1 1 1 —3 5 хг 6 1 0 2 —2 1 —1 3 х2 4 0 1 —1 н —1 2 Д 42 0 0 1 —1 0 2 М + 1 Таблица 2.17 С7 5 3 6 —6 —м Вх Ао А» Л2 А4 л5 Ас А? А8 хе 8 0 1 0 0 1 0 —1 б Х1 14 1 2 0 0 0 —1 3 —6 «6 4 ° 1 —1 1 —1 2 А 46 0 1 0 ° 0 1 М + 3 9?
Подставляя (7) в (1) — (3), приходим к эквивалентной задаче max (5х4 + Зх2 + 6х4 — бл'5) при условиях , х± 4- 2х2 + Л-, — х3 < 18; 2xj — х2 + Зх4 — Зх3 16; xi + х2 + -Ч — Ч = Ю; х4, х2, х4, х6 > 0. (8) О) (Ю) Будем решать задачу (8) — (10) симплекс-методом, при этом вводим свободные переменные хв и х, в первое и второе ограничения и искусственную переменную х8 в третье ограничение (10) и целевую функцию. Составим начальную симплекс-таблицу 2.14. Результаты последовательных итераций приводятся соответственно в табл. 2.15, 2.16 и 2.17. Поскольку в индексной строке табл. 2.17 нет отрицательных членов, то найдено оптимальное решение х\ = 14, х5 = 4, х6 = 8, х2 = 0 = х4 = х7 = 0. С учетом, что х3 = х., — х3, получим окончательно х] = 14, х2 =0, х3 = —4. ^тах=46- Используя соотношения (4.31), найдем по индексной строке табл. 2.17 опти- мальное решение двойственной задачи. При этом учтем, что т = п — 3, а столбцы А4 и А5 нужно рассматривать как один столбец. Тогда ^1опт = Л(+з = Agp =0; у2опт = Л7 == 1; j/3opt = 3. Заметим, что при этом все ограничения (5) и (6) выполняются.a min (18z/x +16(/2-|- + 1(Ш= 46= А,пах. § 5. МЕТОД ОБРАТНОЙ МАТРИЦЫ Критерии оптимальности и разрешающие множители 1. Использование идей теории двойственности позволяет по-новому сформулировать критерий оптимальности плана ЛП-задачи. Этот при- знак использует так называемые разрешающие множители Л. В. Кан- торовича [57]. Пусть задана произвольная ЛП-задача со смешанными условиями вида: найти максимум ’ п L(x) с^ - (5.1) 1=1 при условии п £ atjXj f == 1, 2, ... , m4 < m; (5.2) r=l n S aiixi = bp, i = 1, + 2, ... , m; (5.3) /=1 > 0; / = 1, 2, ... , rtj < n. (5.4) Величины 2vj, 72, называют разрешающими множителями, если tn а) X /= 1, 2, ... , щ; (5.5) 100
б) X Щ’Д, — Cf, j = nl -J- 1> + 2, ... , n; (5.6) в) У >0; i=l,2, ..., mp, (5.7) г) для некоторого плана x = (xls x2, ..., xn) задачи выполняются условия: n X aijlt = Cj при Xj > 0 (1 </<«!), (5.8) z=i %t = 0 при YiaijXj<bi (1 < z < mx). (5.9) i Вектор A = (%1; ..., %m) — называют разрешающим вектором за- дачи. Покажем, что отыскание разрешающего вектора эквивалентно ре- шению задачи, двойственной к задаче (5.1) — (5.3), для чего рассмот- рим следующую теорему. Теорема 2.10. Совокупность разрешающих векторов задачи (5.1) — (5.4) совпадает с множеством оптимальных планов задачи (4.35) — (4.37), двойственной к ней. Доказательство. Пусть Л = (Лх, ..., Хот) — произвольный разрешающий вектор задачи (5.1) — (5.3), связанный с планом х усло- виями (5.8), (5.9). В силу условий (5.5) — (5.7) вектор А — план двойственной зада- чи. Остается доказать, что он является оптимальным. Обозначим через Е совокупность индексов /(/ = 1, 2, ..., щ), тля которых Xj > 0. Тогда п п X C,Xj = Х CiXi + X С:Х,. (5.10) i=i це /—и,+1 Учитывая равенство (5.8), а также условия (5.6) при j — щ + 1, п, получим п / т \ п X cixi = X X ]XS + X f X aijlh Xj. 1 lo, по предположению, X/ — 0, если j g E и 1 < j < n, и поэтому п n / tn \ tn n X = X X ai^i]xi = X К X ацХ;. (5.11) /=1 /=1 \Z=1 / Z=1 р=1 Принимая во внимание равенство (5.3) при i = -f- 1, т и условия (5.9) при 1 = 1, тх, получим т а т X Ч-Х aijXj = X Wi. (5.12) Z=I /«! zZl (Сравнив (5.11) с (5.12), приходим окончательно к соотношению п tn X С/Xj = X (5-13) /=1 Z—l 101
Но согласно теореме 2.5 двойственности соотношение (5.13) ука- зывает на оптимальность планов х и А. Теорема доказана. 2. Используя понятие разрешающих множителей, можно легко сформулировать признак оптимальности шпана задачи линейного про- граммирования. Теорема 2.11. Для оптимальности плана х = (xlt х2, ♦ .., хп) задачи (5.1) — (5.3) необходимо и достаточно существование разрешаю- щего вектора Л = (Хь Х2, Кт), связанного с этим планом условиями (5.8), (5.9). Доказательство. Необходимость. Предположим, что х = = (Хх, х2, ..., х„) — решение задачи (5.1) — (5.4). Тогда двойственная задача (4.35) — (4.37) разрешима. Пусть Л = (А.х, Х2, ..., А,т) — один из ее оптимальных планов. В таком случае согласно теореме (2.10.) вектор А является разрешающим вектором задачи (5.1) — (5.4), причем, как показано при доказательстве второй части теоремы, он связан соотношениями (5.8) и (5.9) с любым решением задачи (5.1) — (5.4), а следовательно, и с рассматриваемым. Достаточность. Допустим, что существует разрешающий вектор А = (Аг, А2, ..., Хт), связанный с данным планом х задачи (5.1) — (5.4) условиями (5.8), (5.9). В процессе доказательства теоремы 2.10 было получено равенство (5.13). Из этого равенства (если учесть, что х и А являются планами задач (5.1) и (4.35) — (4.37) соответственно) и вытекает оптимальность плана х (см. теорему 2.5). Установленный критерий позволяет легко проверить, является ли данный план оптимальным решением ЛП-задачи или нет. С этой целью составляют систему из уравнений (5.6, 5.8, 5.9), из которой определяют вектор Л — (А,х, А2, ..., Ат). Затем непосредственной подстановкой про- веряют, удовлетворяет ли этот вектор условиям (5.5) и (5.7) или нет. Если да, то вектор х — оптимальный план, в противном случае — неоптимальный план. Следует заметить, что определение разрешающих множителей экви- валентно решению двойственной задачи, что в общем случае оно отнюдь не проще отыскания решения прямой задачи. Основная роль разрешаю- щих множителей состоит в Том, что их использование позволяет форму- лировать новый признак оптимальности и построить иной вычисли- тельный метод линейного программирования. Рассмотрим теперь задачу ЛП в канонической форме (5.14) — (5.16), что является, очевидно, частным случаем задачи (5.1) — (5.4) при = = 0, щ = п. Найти п max У CjXf, (5.14) при условии п S 0щХ: =Ь{-, i = l, т, (5.15) /=1 ху>0; / = 1, п. (5.16) 102
Для задачи (5.14) — (5.16) вектор Л = (Х1э 72, .... Xm) называется разрешающим вектором, если т а) У j ~ 1, 2, .. . , п; (5.17) 7=1 б) для некоторого плана х задачи (5.14) — (5.16) выполняется условие т У, = с/, если Х/>0. (5.18) Критерий оптимальности в этом случае формулируется так. Для оптимальности плана х. задачи (5.14) — (5.16) необходимо и достаточ- но существование разрешающего вектора Л, связанного с х условием (5.17). .Итак, допустим, что ЛП-задача задана в каноническом виде, и пусть {As,, As2, ..., Asm} = {ASJ, i = 1> m образуют базис неко- торого опорного плана х*. Обозначим через 1Х множество индексов базисных векторов. Определим вектор А* = (Xi, АД) из системы уравнений: = ]£1Х. (5.19) i«=l Тогда опорный план х* — оптимален, если т ___ У, аДД, С:, j = 17 ri. (5.20) k=i При рассмотрении симплекс-метода мы получили достаточный при- знак оптимальности в виде А,- = У ЩХц — с, 0. (5.21) Покажем эквивалентность форм (5.20) и (5.21) для всех j = 1, п. Справедлива следующая цепочка равенств (т \ т У У У а^рсц = <3> ц=1 / ц=1 шх т У (5.22) ц=1 Равенство (1) вытекает из (5.19), равенство (2) получено переменой порядка суммирования, а равенство (3) следует из разложения неба- зисного вектора А/ через базисные: А- = У Azxz/. т Таким образом, из (5.22) следует, что условие 2 fluAn > с/ Для всех /= 1,2, п эквивалентно условию А/ >• 0 для j =»» 1, 2, ..., /г. юз
Метод обратной матрицы (Л-метод) Использование признака оптимальности во второй форме (5.20) позволяет сконструировать второй алгоритм симплекс-метода, или метод обратной матрицы [57]. Этот алгоритм был впервые применен Л. В. Канторовичем для решения одной из частных ЛП-задач, а затем для общей задачи линейного программирования в 1951 году. Пусть ЛП-задача задана в канонической форме и пусть х — опор- ный план задачи с базисом (Аг}г- i g 1Х, где Ix — множество индексов базисных векторов. Составим из векторов базиса квадратную матрицу. Очевидно, определитель матрицы Ах отличен от 0 и существует обрат- ная матрица АГ*. Покажем, как с помощью матрицы А?1 и условий задачи можно построить удобную компактную схему для вычисления параметров, необходимых для реализации симплекс-метода. Действительно, базисные компоненты текущего плана х опреде- т ляются из условия х = АГ1 b или х(0 = 2 ц=1 Оценки векторов условий А/ определяются по формулам А/ = Zj — С, == X — С/, j= \,n, (5.23) ^‘х где параметры удовлетворяют уравнениям £ at^i = с, при / $1Х , «=1 или в векторном виде ААХ — сх, (5.24) где сх — вектор-строка коэффициентов целевой функции, отвечающих базисным переменным. Следовательно, А = СЖАГ'. (5.25) Формулы (5.23) — (5.25) позволяют, если известны элементы обрат- ной матрицы А71 и условия задачи, вычислить оценки А/ векторов усло- вий. Коэффициенты xik разложения вектора А* по векторам текущего базиса вычисляются как элементы произведения (АГ’А*) матрицы АГ* на вектор условий Ak. Коэффициенты xik вместе с базисными со- ставляющими опорного плана определяют вектор, подлежащий выво- ду из базиса. Итак, для реализации метода достаточно уметь вычислять на каж- дом шаге матрицу А?1. Элементы столбцов матрицы А?' удобно рас- сматривать^ как коэффициенты е(7 разложения единичных векторов е/ (/ = 1, т) по векторам базиса, где ef = [0, ... , 0, 1, 0, ... 0]. / т При этом пересчет элементов {е,7} матрицы А7! при вводе очеред- ного вектора Аа производится по следующим рекуррентным формулам 104
метода исключения Жордана — Гаусса: при iФг е , е// - i ~ 1, 2, ... , tn ~Г 1 - ' Xrk п , ег/ = -; 7 = 0,1,..., т (5.26) ег/ при i = г xrk ’ j = 0, 1, 2, ... , т, где a) Xrk — направляющий элемент преобразования; б) et0 = xi0 — базисные компоненты опорного плана х0 = || xl01| i = 1, т; в) em+i,i — = К, — разрешающие множители (относительные оценки условий задачи), / — 1, от; г) em+i,o = L (х0) — значение линейной формы при плане Хо, А>, — вектор, вводимый в базис, Аг — выводимый из базиса. Для реализации метода обратной матрицы на каждой итерации используется основная таблица и вспомогательная. Основная таблица состоит из (т + 2)-х столбцов и (т + 1)-й строк. В столбце е0 записываются базисные компоненты текущего плана, столбцы е(, е2, ..., ет суть столбцы обратной матрицы АД1 текущего базиса; в столбце А,.е записаны коэффициенты Xtk разложения небазис- ного вектора Aft по векторам базиса; столбец 0 — вспомогательный, его I содержит величины 9г =------х^ >» 0. Столбцы е0, ех, ..., еш со- xik J ставляют главную часть таблицы, в (т + 1)-й строке основной табли- цы записывают величины {%/} j С Ц- Вспомогательная таблица содержит векторы А1( А2, ..., Ап исход- ной задачи, а также вектор с. В строке 0 записываются величины оце- нок А/, / = 1, п, отвечающие начальному опорному плану. В процессе каждой очередной итерации во вспомогательной табли- це дописывается очередная строка (/), содержащая величины А®. Опишем произвольную (/ + 1)-ю итерацию алгоритма обратной матрицы. Пусть уже проведено I итераций, в ходе которых вычислены мат- рица А?1 (/) и оценки A*Z), j = 1, п и еще не найдено оптимальное ре- шение. 1. Определяем вектор Aft, вводимый в базис из условия Alz> =min (A-z' I A® < 0). (5.27) I 2. Из вспомогательной таблицы выбираем компоненты вектора Aft. Определяем его коэффициенты разложения xik через базисные, используя обратную матрицу АД1: x\lk == £ (5.28) / и записываем величины Xik в столбец А/;. В (т + 1)-ю позицию столб- ца А* записываем оценку А*’ этого вектора. Просматриваем столбец 105
Основная таблица N сх 1 *0 ei е2 . . . ст Ak 0 1 С1 At Л1) е10 М) е11 е(/) е22 . . . xik 2 Ci а2 е(0 е20 P(Z) е21 е(0 е22 • . . р(0 е2т X2k Г Сг Аг ew '0 1 е(/? | Сг1 „(0 ег2 ♦ . . e(Z) сгт Xrk &r т Ст ^т e(Z) ^0 eml ^т.2 . . . е(1) стт xtnk (h) L Ь1 Х2 . . . 7-т Ak Вспомогательная таблица. N b = Ao Ax a2 . . . Ak . . . An-1 An 1 . . . 2 . . . . . . . . . . . . . . . , . . . . . . . . . . , . . . ci Ct . . . ck . . . cn~l cn A A® A<0’ . . . AW . . . A (0) an—l 1 д<1) A</> a2(1) . . . A<‘> . . . Лп—1 A<4 2 Д(2) a<2) A® . . . . . . A (2> e о . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 A<z> 1 A<Z) A« A? . . . A (l) 106
Afe. Если все x$ < 0, то задача неразрешима. Допустим, что имеется хотя бы один x(ik > 0. Переходим к п. 3. 3. Вычисляем отношения —— и определяем направляющую стро- xik ку г из условия: 0r = min I—— r i I *tk 4. Выполняем одну итерацию симплекс-метода с главной частью таблицы и направляющим элементом 5. Получим новую обратную матрицу А?1 (/ + 1), а также новые оценки i G 1Х. Заполним элементами АГ1 (I + 1) главную часть таблицы (/ + 1)-й итерации, при этом заменим индекс г вектора, выведенного из базиса на k в столбце В*, одновременно заменим сг на ck в столбце сх. Заметим, что для контроля величины (Z + 1) можно вычислить также и по’ формулам: М'+" - S (5.29) 6. Для всех небазисных векторов вычисляем оценки согласно соот- ношениям Af+1,= Е (5.30) Проверяем условие Д/+‘ >• 0 для всех / = 1, п. Если это выполня- ется, то конец, иначе переходим к (/ + 2}-й итерации. Все таблицы алгоритма заполняются по одним и тем же прави- лам. Некоторые особенности возникают лишь при составлении на- чальной основной таблицы. Здесь в столбец е0 записывают базисные компоненты исходного плана. Первые т позиций столбцов et, е2, .... ет получаются путем обращения матрицы векторов базиса исходного опорного плана. Последняя строка главной части таблицы 0 запол- няется произведениями столбца сх и столбцов е/ этой таблицы, т. е. ^0> = Е / = 1, 0, ... , т. (5.31) 1<ИХ Для контроля вычислений можно использовать две возможнос- ти для определения величин {A*z+i)}, j — 1, tn. В любой итерации эти параметры могут быть вычислены как по рекуррентным формулам (5.26) при переходе от таблицы l-й итерации к (I + 1)-й, так и непосредственно по формуле (5.29). Мультипликативная форма алгоритма обратной матрицы В рассмотренной выше вычислительной схеме метода обратной мат- рицы необходимо запоминать обратную матрицу А7* = || ez/-1|. В так называемой мультипликативной форме алгоритма требуется регистрировать значительно меньший объем данных. Рассмотрим ее идею. Пусть X и X' — два последовательных опорных плана задачи. 107
Обозначим соответствующие матрицы векторов базиса через Ал и А*,, Ах = [As,- Asp ...» A5f, ... , ASJ; Ax — [AS1, As2, , Aft, AS/.+1, AsJ. Легко проверить, что обратные матрицы Ал 1 и Ах'1 связаны соотно- шением: А71 = ЕГА7', (5.32) 1 0 ... у\ь ... О О 1 ... y2k ... О Ег = 0 0 ... yrk ... О О 0 ... Утк ••• 1 Г где Унг ~ , i = 1 > 2, ... , tn, i г, уг2 = —- . xrk xrk Соотношение (5.32) эквивалентно применению рекуррентных фор- мул (5.26) при i — 1, 2, ..., т и j — 1, 2, .... tn. Обычно решение задачи ЛП начинается с единичного базиса. Ему соответствует единичная матрица Е. Поэтому после первой итерации, когда вместо вектора Asr в базис вводится Аь обратная матрица бази- са полученного опорного плана X' может быть вычислена по формуле А71 = ЕГ1Е, а после l-й итерации: Ар1 = Е^Е^^.Е. (5.33) Матрица Ег определяется (т -ф- 1)-м числом (г, yik, у2ь... Уть). Следовательно, при I < т запись матрицы А?1 в форме (5.32) меньше загружает память, чем обычная запись, где на каждой итерации необходимо помнить т2 чисел ez/-. Опишем кратко схему вычислений в отдельной итерации мульти- пликативной формы алгоритма обратной матрицы. Пусть уже проведено / итераций, в результате которых установле- но, что х(/> — неоптимальный план. Определение вектора, подлежа- щего вводу в базис и выводу из него, производится по общим правилам симплекс-метода, а компоненты очередного опорного плана вычис- ляются по рекуррентным формулам (5.32). Вектор относительных оце- нок условий задачи Л на l-й итерации вычисляется по соотношению: Л;+1 = cxEr;Erz_] ... ЕЛ1Е. Вектор оценок А(/) определяется обычным способом А = ЛАХ — сх. 108
Наконец, коэффициенты xik разложения вектора А*, подлежащего включению в базис по векторам базиса, определяются из соотношения А//+1) = ЕГД_, ... ЕГЛ- (5-34) Как видим, мультипликативная форма алгоритма позволяет не толь- ко экономить память ЭВМ, но и сокращает объем вычислений на на- чальных итерациях алгоритма обратной матрицы. Пример 2.9. Решить методом обратной матрицы следующую задачу max (4х4 + 2х2), при условии Xj + 2х2 < 6; хг 4- х2 =$ 9; 3Xj ~~ х2 15, х4, х2 > 0. Приводим ее к расширенной форме и получаем max (4хх + 2х2) х4 -|- 2х2 + 1х3 = 6; х4 -f- х2 1х4 — 9; Зх4 — х2 + 1х5 = 15. В качестве начального базиса выберем единичный базис (1) (2) [А3, А4, А,] — А — 0 0 ' 1 0 0 1 Заполняем вспомогательную табл. 2.18 (начальную часть) и основную таблицу первой итерации — (табл. 2.19). Первая итерация. Заполнив главную часть (табл. 2.19), вычисляем ее индексную строку согласно соотношениям ?.<0) = 2сг е(9>. Так как ci — 0 при i = 3, 4, 5, то ^[0) = Ц0* = /.{ю = 0. Используя строку Д<°> табл. 2.18, выбираем вектор At, так как Д(|°' = min {Ду | Ду < 0} = —4. / Записываем вектор At в столбец Ak справа от главной части табл. 2.19 и его оценку в индексную строку, Столбец Ак направляющий. Находим направляющий эле- мент согласно общим правилам симплекс-метода и, выполнив итерацию, заполняем главную часть табл. 2.20. Итак, найден вектор относительных оценок Л(1) = 0 0 4- • Найдем оценки L I Д<» для всех небазисных векторов, используя соотношение (5.30) 0”- S — С/. и результаты записываем в строку Ду1’ табл. 2.18. Например, Д2 = 2лр ф- 11£) — IZ^ — с2 = — 1 • 4/3— 2 =------------------ Вторая итерация. Из индексной строки Д(Ч выбираем вектор /1а с наибольшей 10 3 отрицательной оценкой Aj ’ = — 0. Умножив матрицу [е4, е2, е3] табл. 2.20 109
Таблица 2.18 N В 4 4 4 4 4 1 6 —1 2 1 2 9 1 1 1 3 15 3 —1 1 Итерации с/ 4 2 0 0 0 0 д<°> —4 —2 0 0 о 1 д<}> О —10/3 0 0 4/3 2 Д<2> О 0 0 1 2-2 1/2 Таблица 2.19 сх Вх ео 4 е2 ез Ak 1 0 Аз 6 1 —1 2 0 9 1 1 3 0 As 15 1 и 0 0 0 0 —4 Таблица 2.20 N сх Вх ео ej е2 ез Ак 1 0 Аз 11 1 1 1 3 21 3 2 0 4 4 1 1_ 3 1 1 3 3 4 At 5 3 1_ 3 — — 20 0 0 4/3 10 3 ПО
на А2, получим Alz, который записываем в столбец Ак табл. 2.20. Например, а'12 — з = J] = 1 • 2 + 1 • 1 + 1/3 • (—1) = 22/8. Определив направляющий эле- /=! мент в столбце Ak (а24=11/з) и выполнив очередную итерацию симплекс-метода, при- Таблица 2.21 N сх вх ео е1 е2 ез 1 0 А3 3 1 —1 1 2 2 а2 3 0 3/4 -1/4 I 3 4 6 1/4 1/4 30 0 4 1/2 дем к табл. 2.21. Находим Л = |0 2у у|, и, вычислив оценки А<2), заносим их в табл. 2.18. Так как все > 0, то текущее базисное решение оптимально. Итак, Х]опт 6, х2опт 3, Хдопт 3. Оптимальные значения двойственных переменных равны i/tonT = = 0; У2опт “ ~ ^3опт = = V2. , § 6. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД Использование идей двойственности в сочетании с общей идеей симплекс-метода позволило разработать еще один метод решения ЛП-задач — так называемый двойственный симплекс-метод, или метод последовательного уточнения оценок [18, 24]. Впервые этот метод был предложен Лемке в 1954 году. Решение задачи ЛП методом последовательного уточнения оценок сводится к отысканию оптимального плана двойственной задачи по- средством перехода от одного ее опорного плана к другому. Задача ЛП в канонической форме имеет вид: п max L (х) = У, с,х/ (6.1) /=1 ' при условии п п у a^jXj « (р == 1, 2, ... , т); £ А^- = b (ц > т). (6.2) /=1 /в»1 X/ > 0, / = 1, 2, ... , п Предположим, что ранг матрицы А равен т. Двойственная задача записывается так: Д minL(y) » X Мн (6.3) ц—1 ill
при условии Afy>c.; (/ = 1, 2, ... , п). (6.4) u=i . Назовем сопряженным базисом, или базисом двойственной задачи, систему из т линейно-независимых векторов матрицы ограничений прямой задачи {At-)(g/6, базисное решение которой у, определяе- мое из условия АГу = Ср (6.5) удовлетворяет всем ограничениям „(6.4). Разложим вектор b по сопряженному базису: S A;-xz = b = Ао. (6.6) «ё 16 Решив (6.6), получим некоторое базисное решение {xio}iei6, кото- рое называется псевдопланом прямой задачи, так как здесь может быть нарушено условие неотрицательности. Таким образом, псевдоплан прямой задачи есть базисное решение относительно сопряженного базиса. Введем обозначение А/== S CiXij — Cj. (6.7) Псевдоплан можно найти и независимо от двойственной задачи. Пусть {AJ i g 7С— произвольная система линейно-независимых векторов прямой задачи. Выразим все небазисные векторы {А/} через базисные А, = S ^ч'Ар (6.8) i€/6 Ао — b = S Azxz. (6.9) /£/б Обозначим Хт — решение уравнения (6.9). Тогда можно дать дополнительное определение псевдоплана: n-мерный вектор х, для которого х,- = х>о при i £ /б и X/ = 0 при j g /б, является псевдопланом тогда и только тогда, когда все А/ > > 0 (/ = 1, 2, ..., п). Доказательство. Векторы {AJ i £ 16 линейно незави- симы. Поэтому можно вычислить такой у = {ylt у2, ..., ут}, для кото- рого А[у = S %,-г/ц = Q, г£/б. (6.10) |Л=1 112
Тогда т / пг \ mt \ Л/= £ сiX’i — Cj = £ (£ a^yAxtj — Cj = £ £ ОщХг/ z/ц —С/ = 1<иъ ;е/6 \и=| / n=i V£/6 / tn — £ ам,/Уи ci- Ц=1 С учетом (6.4) получим т А/ = £ аш'Уи ~с}^0, (6.11) ц.=| что и требовалось доказать. Рассмотрим некоторый сопряженный базис и соответствующий ему псевдоплан {xto}- Справедлив следующий признак оптимальности: если среди базис- ных компонентов псевдоплана х нет отрицательных, то псевдоплан х оказывается оптимальным решением прямой задачи, а опорный план у — оптимальным решением двойственной задачи. Доказательство. Имеет место цепочка равенств " (1) ™ / \ (2) (3) « ^дв (у) = £ = £ £ aii;x( Нщ = £ х( £ = £ срсс. Равенство (1) следует из (6.2), равенство (2) получено переменой порядка суммирования, равенство (3) следует из (6.10). Так как Xj = 0 При j /б, (6.12) ТО VI VI £ СА = £ сд, = L (х). (6.13) 'е-'б Таким образом, Ь№ (у) = L (х), что и является признаком опти- мальности планов х и у при условии, что х > 0 (см. теорему 2.5). Этот признак является необходимым и достаточным в случае не- вырожденности опорного плана у двойственной задачи [18]. Пусть известен некоторый сопряженный базис {AJ i £ 1б, кото- рому соответствует псевдоплан х. Очевидно, А/= £ Агх,.-; Ао = £ Агх£. При этом в зависимости от знаков \х(} и (лу-/) может иметь место один из трех случаев: 1) базисные компоненты хг — Хт > 0 для всех / £ /б; 2) среди х{ имеются отрицательные и для некоторого г хт < 0, а все х,у > 0 (/ = 1,2, ..., п); 3) псевдоплан содержит отрицательные компоненты xt < 0, но для каждой из них среди элементов [х4Д j = 1, 2, ..., п имеются отри- цательные. В первом случае, как следует из достаточного признака оптималь- ности, псевдоплан х — оптимальный опорный план. Во втором случае задача неразрешима. В третьем случае можно перейти к некоторому В а—3164 113
новому сопряженному базису и, следовательно, к новому псевдоплану Х/+1 с меньшим значением L. Итак, последовательные переходы от одного сопряженного базиса к другому производят до тех пор, пока не получат решение задачи или не установят ее неразрешимость. Каждый переход от одного псевдо- плана к другому составляет одну итерацию (один шаг) двойственного симплекс-метода. Каждая итерация содержит два этапа. На первом этапе выясняют, не является ли псевдоплан планом прямой задачи, и если нет, то раз- решима ли задача. Для этого необходимо вычислить (xj, i Q 16 и установить их знаки. Второй этап состоит в выборе и осуществлении элементарного пре- образования, приводящего к новому опорному плану сопряженной за- дачи с меньшим значением целевой функции. На этом этапе определя- ют направляющую строку г с отрицательной базисной компонентой хГо < 0 и вектор А, который должен заменить в сопряженном базисе исключаемый вектор Аг ? Описание алгоритма. Задачу линейного программирования пред- полагают заданной в канонической форме (6.1), (6.2). Отыскивают сопряженный базис двойственной задачи и обозначают (Аъ А2, ..., А,и}. Разлагая Ао по векторам {Ах, Л2, ..., Ат) в соответствии с (6.9), на- ходим псевдоплан {хдф i — 1, т прямой задачи. Исследуем знаки {хд>}. Если имеет место случай хт 0, Vi £ /б, то начальный псевдоплан х0 является оптимальным планом прямой задачи. При наличии отрицательных компонент (х10) вычисляем вели- чины (х/7) — коэффициенты разложения векторов А/ по сопряженно- му базису в соответствии с (6.8). Если для некоторого хг, такого, что хг0 < 0, все хг, > 0, / = 1, /г, то задача не разрешима (второй случай), и на этом процесс вычисле- ний заканчивается. Если имеет место третий случай (для каждого г, такого, что хл0 < 0 по крайней мере одна из компонент хг/ < 0), то переходим ко второму этапу. С этой целью составляют таблицу k-й итерации (аналогичную симплекс-таблице), которая состоит из (т + 2) строк и (и + 1)-го столбца (табл. 2.22). Столбец Вх таблицы, как обычно, содержит векторы {А.} базиса псевдоплана xft, а столбец Ао — базисные компоненты псевдоплана Но'}- Строку (т + 1) заполняют параметрами являющимися оцен- ками векторов А,-: А/ *= aOi = £ Сеха — с,-. iei6 Величина Ао — значение целевой функции при данном псевдо- плане: Ао = X Итерацию k завершают заполнением главной части таблицы (от первой до (tn + 1)-й строк). 114
Таблица 2.22 А„ ' А, А. А, . . . Ап 1 А. г(/г) х12 . . . хи? х(/г) х1п 2 С-2 А., х(к) х20 41 х22 . , . х(/г) х2/г х2п Г сг Аг - r<fc) *г/г Лгп т ст А,п М хтЪ 1 1 г1''1 . • н - , X тп т ф 1 А A<ft) ДО С . . . п т ф 2 9 На первом этапе (k ф- 1)-й итерации выясняют, имеет ли место первый, второй или третий случай. В третьем случае переходим ко второму этапу. Сначала определяют вектор Аг, который необходимо вывести из ба- зиса. Его индекс г определяют из условия: Xro = min {хю/Xio < 0}, (6.14) т. е. по максимальной по модулю отрицательной компоненте базисного решения. Затем заполняют элементы (т 4- 2)-й строки, которые вы- числяют по формуле: 0W = _Л_ Xri X,.j <Z 0. (6.15) В строке 0 заполняют лишь те позиции, для которых хг; < 0. Вектор А;, который должен быть введен в базис, находят из усло- ( А> 0Z = min {б,-} = min i---------------- xri < 0. Определив направляющую строку г и столбец I, вычисляют эле- менты главной части таблицы (й ф- 1)-й итерации по рекуррентным 1Г 115
соотношениям: x<ii} — ~WПРИ ' r #4-1) xri Xi< = (6.16) Jr при1=г, I xrl где xri — направляющий элемент преобразования. Вычислительная схема алгоритма двойственного симплекс-метода похожа на вычислительную схему симплекс-метода. Аналогичны и формы таблиц. Различие между методами заключается в том, что при симплекс- методе производят последовательный переход от одного опорного пла- на задачи к другому, а при двойственном симплекс-методе — переход от одного псевдоплана к другому. Формальное различие между вычислительными схемами этих мето- дов проявляется только в правилах перехода от одного базиса к сле- дующему и в признаках оптимальности плана и неразрешимости зада- чи. В симплекс-методе сначала определяют вектор, вводимый в базис, а затем вектор, исключаемый из базиса, а в двойственном симплекс- методе этот порядок оказывается обратным. Отметим некоторые важные свойства двойственного симплекс-ме- тода. 1. В отличие от прямого симплекс-метода для своего применения он не требует нахождения начального д. б. р. (опорного плана), а поиск начального псевдоплана часто может оказаться легче, чем поиск д. б. р. Рассмотрим, например, типичную задачу минимизации п min CjXj (6.17) i~i при п S 1= 1, иг; (6.18) •: /=1 Х/>0, /=1, Щ (6.19) и пусть ф>0, /=1, /г. (6.20) Для задачи такого вида найти сразу начальный опорный план нель- зя, и необходимо применить метод искусственных переменных и про- делать значительный объем вычислений. В то же время псевдоплан находится почти автоматически. Действительно, перейдем от (6.17) — (6.19) к эквивалентной задаче в расширенной форме, введя свободные переменные хп^\, хп+г, ... • ’ •» п max CjXf, (6.21) п Е aijXj— \хп+1 = Ь[„ i= 1, т. (6.22) /=1 а 16
Запишем ограничения двойственной задачи: т £ ацУс > ~ Q, / = 1, ti ; (6.23) г—1 . — Hi >0, i = 1, т. (6.24) Из (6.23), (6.24) видим, что, поскольку решение yl — 0,i= 1, т удовле- творяет всем ограничениям (6.23), сопряженный базис образуют век- тора A„+i, A„+2, Ая+m при свободных переменных. При этом начальный псевдоплан будет равен xn+i = — b(, i = 1, т. Итак, для задачи вида (6.17) — (6.19) при условии (6.20) примене- ние двойственного симплекс-метода оказывается предпочтительнее в сравнении с прямым., 2. Двойственный симплекс-метод позволяет в процессе итерации добавлять новые дополнительные ограничения к уже найденному не- которому промежуточному решению. Это важное его свойство будет использовано при решении задач целочисленного программирования. Пример 2.10. Решение задачи линейного программирования двойственным симплекс-методом. Найти max (хх + х2) при ограничениях 2xr -|- 11х2 < 38; хх 4- х2 7; 4xt — 5х2 sg 5; xi> хг 0 или в расширенной форме ' 2xj + 11х2 + 1х3 + 0х4 + 0х6 = 38; К + 1хг + 0х3 +- 1х4 + 0х5 = 7; 4х, — 5х2 ф- 0х3 + 0х4 1х6 = 5, хр х2, . . . , х6 > 0. Двойственная задача записывается следующим образом: min (38(/4 4-7у2 4-5г/3) при ограничениях 2</х 4* 1 (А); 1 l«/i + 1у2 — > 1 (Л2); У1 0 (А3); у% о (А4); Уз 0 (у!5). Выбираем в качестве базиса векторы {Ат, А3,Аб}. Тогда решением системы ли- нейных уравнений 2Уг + + 4у3 = 1! • Ут = 0; . Уз = ° является //1=0; у., = 1; ys = 0. Подставив это решение' в ограничения (А2) и (А4), замечаем, что они также удов- летворяются, а потому {Ai, А3, А5} —сопряженный базис двойственной задачи. Находим псевдоплан Хо прямой задачи. Для этого решим систему уравнений Ао = Ахх10 4- А3х30 4- А5х50. Отсюда х10 = 7; х30 = 24; хво = — 23. 117
Таблица 2.23 с, 1 1 0 0 0 4> А А А А, А. 1 Аг 7 1 1 0 1 0 0 А3 ' 24 0 9 1 о 0 0 V —23 0 13 0 —4 1 7 0 0 0 1 0 0 . 0 т Вычисляем коэффициенты разложения Аа = AiX13 -ф А3хза + А6х62> и нахо Ан Хц = ’ 11 1 _ — 5 JHM Х32 1, Хза — алогично ’ 0 _ 1 . Oj , *з4 = —2, хм = Г2 = 1 L 4 9, *52 — а4 = Г 2 = 1 L 4_ —4. *12 + —9. А 1*14 + / - *14 + 11 го 0 Х32 + 0 _ 0 J 1 _ ^3*34 + А5хи, ! 1 ГО 0 *34 + 0 X о J L 1 _ *52 54’ Таблица 2.24 с/ 1 1 0 0 0 вх 4 Аг А, А, Аг а5 1 Аг 40 / /9 1 0 0 % ч. е 0 Аз 1 0 0 1 —6 1 4 Аг 23/9 0 1 0 4/в А 7 0 0 0 1 0 118
Теперь можно составить симплекс-таблицу следующего вида (табл. 2.23). Первый шаг. Определяем направляющую строку. Это строка Л4. Находим направляющий столбец, для чего заполняем строку 0. Направляющий столбец А.2, так как = 0 < 0, = 4-. * 4 Следовательно, направляющий элемент х42 = —9. Выполнив первый шаг сим- плекс-преобразования, составляем следующую табл. 2.24. Так как все элементы столбца Ла xi0 0, то найден оптимальный план, причем _ 40 . _ 23 1с1опт = g > х2опт = "Tj ’ Целевая функция бтах = 7. § 7. ДЕКОМПОЗИЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ БОЛЬШОЙ РАЗМЕРНОСТИ Отличительной особенностью многих практических задач ЛП явля- ется их большая размерность. В частности, при решении задач опти- мального планирования на уровне страны матрицы ограничений достигают размерности tn ~ 104, п = 106. При такой размерности клас- сические методы ЛП, такие как симплекс-метод, двойственный симп- лекс-метод и др., оказываются малоэффективными. Это обусловило необходимость разработки специальных методов как точных, так и приближенных, предназначенных для решения задач высокой размер- ности. Большинство из этих методов использует идею декомпозиции, которая заключается в расчленении большой задачи на ряд задач меньшей размерности, нахождении независимых оптимумов для каж- дой из них и последующей увязке этих частных решений в общее реше- ние исходной задачи. Впервые эта идея применительно к задачам ЛП была реализована Данцигом и Вульфом, а позднее развита в работах Д. Б. Юдина и Е. Г. Гольштейна 118], М. Месаровича, Р. Крона, Л. Лэсдона [33] и др. Метод декомпозиции Данцига-Вульфа. Метод декомпозиции Дан- цига-Вульфа был разработан в 1960 г. применительно к решению ЛП-задач высокой размерности со специальной структурой матрицы ограничений [33]. Этот метод оказался наиболее эффективным для решения задач, матрица ограничений которых имеет блочно-диагональный вид с не- большим числом связывающих переменных. Однако, как показали дальнейшие исследования, метод применим также и для задач ЛП с матрицей общего вида. (Соответствующий метод носит название блочное программирование и предложен Д. Б. Юдиным и Е. Г. Гольштейном в [18]). Отличительной особенностью метода декомпозиции является ис- пользование так называемой «координирующей задачи», которая име- ет по сравнению с исходной небольшое число строк и большое число столбцов. Существенным обстоятельством является то, что для реше- ния координирующей задачи не требуется задания всех столбцов в явном виде. Они генерируются в процессе использования симплекс- метода. Такой подход называют методом генерации столбцов. 119
Сущность его состоит в следующем. Пусть имеется ЛП-задача вида _ п max z = У, CjXj (7.1) при ограничениях S А/Х/ = Ь, (7.2) /—1 х/> 0, j = 1, п, где Ау и b—m-мерные векторы (т < п). Допустим, что известен некоторый опорный план Хв, и соответствую- щая ему матрица из базисных векторов Ах. Допустим, что план хв был определен методом обратной матрицы. Тогда одновременно был найден и вектор относительных оценок Л = — {АД = с,-А71, где сх — вектор коэффициентов целевой функции для текущего базиса. Чтобы определить возможность улучшения опорного плана хв для каждого небазисного вектора Ар вычисляется величина оценки Д. = ЛА/ — С/ = S — с,-. (7.3) '«Л Если min А/ = As < О, то начальное решение хв может быть улуч- шено путем введения в базис переменной xs. Однако если имеется боль- шое число небазисных столбцов (n ;> 103), то нахождение min А/ путем вычисления А;- для всех небазисных векторов j = 1, п и последующего их сравнения практически невозможно. И что очень важно, оказыва- ется, что это и не требуется. Будем предполагать, что все столбцы А/ выбираются из некоторого выпуклого множества S, определяемого системой неравенств и ра- венств. Тогда вектор-столбец, подлежащий включению в базис, может быть определен в результате решения вспомогательной задачи вида min {ЛА/ — с (А/)}, (7.4) где с (А/) = С/ — некоторая заданная функция вектора А/. В зависи- мости от структуры множества S и вида функции с (А) выбирается наи- более эффективный метод решения указанной задачи. Такой прием и называют методом генерации столбцов, так как при решении задачи (7.4) фактически используется лишь небольшое число столбцов, гене- рируемых по мере надобности. При этом резко снижается требуемый объем памяти для хранения текущих результатов, что является очень существенным преимуществом при решении задач большой размер- ности. 120
Принцип декомпозиции Рассмотрим ЛП-задачу, матрица ограничений которой имеет блоч- но-диагональную структуру вида Aj А2 ••• Ар В, О О А= о В2 0 ' <’•=> _ О О В, Строка [А!, А2...Ар] носит название связывающей, так как она как бы связывает вместе все переменные задачи. Соответствующая ЛП-задача записывается в виде: найти р шах (7.6) {х;} 1=1 при условии р S A(.xt. = b0; (7.7) 1=1 B(xt = bt i = (7-8) xz > 0. Заметим, что к виду (7.5) Может быть приведена матрица любой ЛП-задачи при р = 1 в результате соответствующего разбиения огра- ничений на два подмножества. Действительно, произвольную задачу можно записать в виде: найти max f = сх . (7.9) при AjX = b( (//?! ограничений), (7.10) А2х = b2 (т2 ограничений), (7.11) Х>0. (7.12) Предположим, что выпуклое многогранное множество S2, опреде- ляемое условием (7.11), является ограниченным (это условие не явля- ется ограничительным, как показано в [331). Тогда справедлива сле- дующая лемма, доказанная в приложении 1. Пусть X = {х : Ах = Ь; х > 0} — непустое замкнутое ограничен- ное множество их, (1 = 1, г) — его крайние точки. Тогда любая точка х £ X может быть представлена в виде выпуклой комбинации край- них точек множества X, т. е. х = У б,х,-, б( >0, 1=1, г, £§,= 1. (7.13) i=l z=i Обобщение этой леммы на общий случай, когда множество X является неограниченным, формулируется так. Пусть X = (х : Ах = Ь; х > 0} — непусто. Тогда точка х принад- лежит множеству X тогда и только тогда, когда она может быть пред- ставлена как сумма выпуклой комбинации крайних точек и линейной 121
комбинации с неотрицательными коэффициентами направляющих век- торов неограниченных ребер множества, т. е. X = Е буХу, / (7.14) где ЕЛе/ = 1> 6z>0; sz = / 1, если О, если хг — крайняя точка X, Ху — неограниченное ребро множества X. В соответствии с леммой любой элемент Sa может быть представлен в виде х = Е 8/Х/, / где б/>- 0; Е 8/= 1; Ху— крайние точки многогранника S2. Исходная задача (7.9) — (7.12) может быть сформулирована таким образом. Из всех решений (7.11), (7.12) необходимо выбрать такое, которое удовлетворяет (7.10) и обращает в максимум функцию (7.9). Подставляя (7.14) в (7.9), получим новое выражение для целевой функции / = Е (СХ;) 8у, i (7.15) а подставив (7.14) в (7.10), получим Е (AjX;) бу = Ь-у. / (7.16) Обозначим Apt/ = Р/, СХ/ == Zj. (7.17) С учетом (7.15) — (7.17) мы приходим к следующей задаче. Найти max Е Z/б/ {е/} 1 (7.18) при ограничениях Е pa = ьг, (7.19) Еб/=1; / (7.20) б/> 0. (7.21) Эта задача, которая эквивалентна исходной (7.9) — (7.12), называ- ется координирующей задачей. Она имеет только (т. 4- 1)-строк огра- ничений, по сравнению с (гщ + т2) строками исходной задачи, и очень большое число столбцов N, равное числу крайних точек множества S2. Чтобы не хранить эти все столбцы в памяти ЭВМ, мы будем полу- чать их по мере необходимости, пользуясь методом генерации столб- цов. С этой целью для каждого небазисного вектора / вычислим вели- чину А(: Г М а/=а ; — г/. (7.22) 122
Представим вектор Л в виде Л = (3ix, А,о), где вектор соответствует ограничениям (19), а 70 — единственному ограничению (7.20). Исполь- зуя формулы (16, 17) для определения Р,- и zt, получим А/ = + 70 — г, = (XjAj — с) х,- + Zo. (7.23) В соответствии с обычными правилами симплекс-метода для опре- деления переменной 6S, вводимой в базис, необходимо найти min А/ = As = (XjAj — cz) xs + Xo. (7.24) i Но так как оптимальное решение ЛП-задачи (при условии, что допустимое множество S2 ограничено) достигается в крайней точке этого множества, то выполнение операции (7.24) эквивалентно решению подзадачи вида min (XiAj — с) х (7.25) х»0 при ограничениях А2х = Ь2, х > 0. (7.26) Найдя ее решение xs, проверяем условие As = (Z^Aj — с) xs + + Хо) < 0, и если оно выполняется, то вектор х. выгодно ввести в ба- зис. Далее определяем компоненты вектора Ps, который следует ввести в базис координирующей задачи (7.27) а также соответствующий коэффициент в целевой функции Zs = СХе. (7.28) Этот подход оказывается особенно эффективным, если р > 1, т. е. исходная задача записывается в виде: найти max f = CjXj + сах2 ф- • • • ф- срхр (7.29) при ограничениях AjX{ ф- А2х2 + • • • ф- Архр = Ьо; BjXj = bx; (7.30) В2х2 = Ь2; • , • • • Врхр = Ьр; (7.31) Хг >0, 1=1, р. (7.32) Для такой задачи подзадача (7.25) — (7.26) будет иметь вид: найти р min Д (kfit — сг) xz (7.33) при ограничениях В,Х; = Ьг, (7.34) Хг > 0, i = 1, р. (7.35) 123
В силу аддитивности целевой функции (7.33) и независимости огра- ничений (7.34) задача (7.33), (7.34) распадается на р независимых за- дач вида: min (XjAt- — с,) х; (7.36) при ограничениях В,:х,- = b£ (7.37} хг- > 0. Обозначим решение (7.36) через х?, а min (XjAf — с£) xz = fl. xi Если У, -J- <7 0, то вектор Хо = (х? (Z^^p- может быть введен в базис координирующей задачи. Если же У /° + Хо > 0, то текущее L решение оптимально. Описание алгоритма декомпозиции Дадим формальное описание алгоритма декомпозиции Данцига- Вульфа для решения задачи (7.29) — (7.32). Пусть уже имеется начальное допустимое базисное решение зада- чи (7.18) — (7.21), которому соответствует вектор разрешающих, мно- жителей А = (Xj, Хо). Каждая итерация алгоритма состоит из двух этапов. Первый этап: 1) Используя вектор оценок предыдущей итерации, сформируем и решим подзадачи (7.36), (7.37) и найдем опти- мальные значения целевой функции /°, а также соответствующие ре- шения х?^), г = 2) Вычислим минимальную оценку р min А, = У fi + >.п (7.38) 1 i=l Если У fl + %() > 0, то вычисления заканчиваются и определяем ис- комое решение задачи (7.29) — (7.32): " Хопт = У хД, (7.39) / где {6,} — предыдущее базисное решение координирующей задачи, а X/ — крайняя точка S2, соответствующая базисной переменной Если У fl + к0 < 0, то переходим ко второму этапу. Второй этап. Формируем столбец Р, который необходимо 124
ввести в базис задачи (7.18) — (7.21) р р = S (Ч)> i=i (7.40) Вводим Р в базис, выполняем 1 шаг симплекс-метода, после чего находим новоед. б.р.: {6(iH), бг'1, •••> и бо"’}, а также новый век- тор оценок Л(и) = {к{н), кон)]. На этом итерация заканчивается и переходим к первому этапу очередной итерации. Как видно из описания, алгоритм декомпозиции Данцига—Вульфа представляет собой двухуровневый алгоритм, где на первом уровне решаются подзадачи (7.36) — (7.37), а на втором уровне — координи- рующая задача (7.18)—-(7.21). Если координирующая задача явля- ется невырожденной, то на каждой итерации значение целевой функ- ции возрастает, и поскольку число базисов ее конечно и ни один из них не используется дважды, оптимальное решение находится за ко- нечное число шагов. Ограниченная координирующая задача. Как следует из приведен- ного описания алгоритма декомпозиции, оптимизационная задача в нем решается лишь на первом уровне, тогда как на втором фактически выполняется лишь одна итерация симплекс-метода. Однако возможна модификация этого метода, заключающаяся в решении оптимизацион- ных задач на двух уровнях. В этом случае решается так называемая ограниченная координирующая задача, которая получается из коорди- нирующей задачи (7.18) — (7.21) в результате отбрасывания всех столбцов, за исключением базисных и претендующих на включение в базис на текущей итерации. Такую ограниченную координирующую задачу можно представить в виде т max S zfit + z060 (7.41) (М при ограничениях РД+ Р2б2+ ••• +Р,Л. ф-Рб0=Ь„, (7-42) 2 + 60 = 1, 6; >- 0, t=l, /n; 6 > 0, (=1 где 6( (i — 1, /попеременные текущего базиса, а б0— переменная, вводимая в базис (для нее До < 0). Если текущий базис является не- вырожденным, то из него будет выведена переменная, для которой Д/ > 0, и полученное новое решение будет оптимальным. Заметим, что возможны случаи, когда использование ограниченной координирующей задачи по сравнению с обычной координирующей задачей дает эффект. Варианты декомпозиции прямой задачи Нетрудно увидеть, что существует много разных способов декомпо- зиции (разложения) прямой задачи, каждый из которых приводит к сво- ей форме координирующей и ограниченной координирующей задач.
Рассмотрим, например, вариант декомпозиции для матрицы блочно- диагонального вида. Обозначим решение системы В х, = Ь,, х, > О, ‘ (7.43) = Е 6ух{, i где - xj — крайние точки многогранника S{ — (х: В,х, — Ь,, хг->0) 8у>0. Тогда координирующая задача будет иметь вид: найти max S S (7.44) i i при ограничениях S S Мч = b01 (7.45) i i ^>ii >0; S 8y = i, t = i. p, (7.46) i где Zy = c£x(, Рц = A£x{. Координирующая задача (7.44) — (7.46) отличается от координи- рующей задачи (7.18) — (7.21) тем, что, во-первых, она имеет не одно, а «р» ограничений (7.46), а, во-вторых, решение для каждой подсисте- мы В£х£ = b£; х( > О самостоятельно выражается через переменные 8ij, тогда как в задаче (7.18) — (7.21) эти решения рассматривались совместно. Применим метод обратной матрицы с использованием процедуры генерации столбцов для решения (7.44) — (7.46). Пусть В — базисная матрица размерности (тг + р) X (mj + р), а А = {1, Л.м, Х,)2, ...Дор}—вектор относительных оценок для этого ре- шения (X — оценка ограничений (7.45), a XOl- — оценка для i-ro огра- ничения (7.46)). Вычисляем теперь оценки Ау для векторов, соответствующих пере- менным бу-: Ау = (XAZ -— с£) х{ + М- (7.47) Для определения min Ау при фиксированном i решаем подзадачу вида найти min (ХА, — с() (7.48) при ограничениях BZX,: = by Хг > 0. (7.49) Если min min (ХА£ — с£) xj + "кы ~ min (/? + Хог) >> 0, то текущее < / i решение оптимально, в противном случае в базис задачи (7.44) — (7.46) вводится переменная, для которой min (fi + ’Z0(-) < 0. i (7.50) 12S
Если этот минимум достигается при i = s, a xs (А) — решение под- задачи с индексом s, то в базис координирующей задачи вводится столбец A3xs (%)' . «s J’ где us — р-мерный вектор, все компоненты которого равны 0, за исклю- чением s-й компоненты, равной 1. Пример 2.11. Для иллюстрации метода декомпозиции рассмотрим следую- щую задачу. Найти шах г = Xj + х2 + 2xs + (1) при ограничениях Xi -р 2х2 + 2х3 -|- < 40, (2, х, Зх? < 30, (Si) (3) 2xj 4- х2 < 20, 1 ' f х3 < 10, х4< 10, (S2) (4) ____ х3 + -<4 15, Х/>0, . . . , i= 1, 4. Эга задача имеет общее одно связывающее ограничение и два независимых бло- ка. Области допустимых решений неравенств обеих подсистем представлены на рис. 2.5. Рис. 2.5. Разбиение условий задачи (2) — (4) может быть осуществлено разными способа- ми, и каждому из них будет соответствовать своя координирующая задача с опреде- ленным числом ограничений вида 6i;. = 1. Воспользуемся видом ограничений и по- / строим ограниченную координирующую задачу, которая будет иметь 2 ограничения. ( X, 1 ( Хэ ) Пусть х = < и у= 1 — допустимые решения неравенств блоков i и 2 I х2 J I j соответственно. Тогда справедливо соотношение х = £ ад; у = J] р(уi, I I где х(, yi — крайние точки множеств S1 и S2, определяемых ограничениями (3) и (4). Целевая функция (1) в векторном виде запишется z = с[х + с^у. 127
а связывающее ограничение aix + агУ + s = 40, где cf = (l. 1); 4(2,1); а, = (1,2); а2 = (2, 1), s > 0. Запишем теперь координирующую задачу. Найти max z = У, (сгхг) а/ + V (с2у(-) [ф, i i при условии У (aix;) at + у (а2У1) + s = 40; i i с i а( > 0; Pz>0. Выберем в качестве начального д. б. р. решение xt = (0, 0) Ут = (0,0), а1 = ₽1 = 1, s = 40. Будем решать задачу методом обратной матрицы. Начальная симплекс-таблица будет иметь вид Таблица 2.25 С ' Вх 4 -41 Аг 4 « si 40 , I 0 ai 1 1 0 ₽! 1 1 Л 0 0 0 0 В последней строке таблицы находятся переменные j)./}. Они равны: Ах - 0; Х01 = 0; Л02 = 0. Первая итерация. Первый этап. Составим и решим подзадачи, отвечающие начальному допустимому решению: 1) Найти min = (tali — сх) х = —qx = —при ограничениях х £ 2) Найти min z4 =(Ла2 — с2) у = — с2у = —2у, — х4 при ограничениях у g С 4- Оптимальные решения этих задач легко находятся графически и равны: х2 = (6, 8); г? = —14; у2 = (10, 5), г°2 = - 25. Определим минимальные оценки столбцов min fx = z, + Л01 = — 14; min = z2 + Х02 = — 25. 128
Оптимальные решения подзадач х2 и у2 образуют новые столбцы координирую- щей задачи, которые имеют вид Второй этап. Запишем теперь ограниченную координирующую задачу, используя ее текущий базис и эти столбцы. Найти max (14<х3 + 25р2). (6) При условии s + 22а2 + 2502 = 40, а1Н-а2=1, (7) Pl + Рз = 1 и условии неотрицательности. Для решения этой задачи используем метод обратной матрицы, как наиболее подходящий для реализации процедуры генерации новых столбцов, и вводим их в ис- ходные ограничения. Решая ее, получим серию основных табл. 2.26—2.28 и вспомогательную табл. 2.29, где приводятся оценки А, для векторов задачи. Решение, полученное в табл. 2.28 (цикл 2), оказывается оптимальным, так как для него все оценки А/ в табл. 2.29 будут положительными. В результате получено новое оптимальное решение задачи: СС| = V22’ ^2 z= ^/22 ” й 7 15 Г 90 120 х = а,х1 + а2х2 = —[0 0] + — [6 8] = [— ~ у = В2хг = [10, 5]. При этом значение целевой функции равно 36 Вторая итерация. Первый э т а п. Из последней строки табл. 2.28 находим 1 1-Г 14 А 200 ] вектор относительных оценок д = I Л A,Oj л021 = 0 . Используем X для формирования целевых функций подзадач. Подзадача 1. Найти Г 14 I 8 6 min (Ла- — сх) х = min —— [1 2] — [1 1] х = — —— ф- — х* при условии Подзадача 2. Найти (14 ) 16 6 min (Ха2 —- с2) у = min —- [2 1] + [ — 2 — 1] У = — —*3 + —ц, I J при условии (х3, х,) f S2. Решив эти подзадачи, получим оптимальные решения: х3=[10 0], г? = 80/22, у3 = [10 5|, г°2 = — 200/23, 9 8 — 3164 129
Таблица 2.26 (вводится fl2 и выводится [>,) с‘ Вх ео е1 е2 ез Р2 Цикл 1 1 ООО S «1 ₽1 40 1 1 1 1 1 25 0 Ы 0 1 Л 0 0 0 0 —25 Таблица 2.27 (вводится а2 и выводится s) ci Вх ео е1 е2 ез а2 ЦИКЛ ; 0 0 25 S a-L Рз 15 1 1 1 1 —25 1 |22| 1 0 '1 . | Л 25 25 — 14 Таблица 2.28 Сй В’: ео е1 es Цикл I 14 «1 15/22 1/22 —25/22 а2 7/22 1/22 1 25/22 2 25 Рз 1 0 1 1 I Л 36 22 14/22 0 200/22 1 1 Таблица 2.29 (Оценки векторов) Цикл 5 а1 Pt а2 ft. 0 0 0 0 —14 —25 1 0 0 25 —14 0 2 14/22 0 200/22 0 0 130
{-0 = которые отвечают следующим минимальным оценкам: 0 80 80 Ш1П/Л = ?! + Л01 =---— + 0 = - — min fy —г° + Я02 = 0, и столбцы -25] 0 L 25 __ Так как min fx < 0, то необходимо перейти ко второму этапу. Второй этап. Составим новую ограниченную координирующую задачу, которая включает базисные столбцы оптимального решения предыдущей координи- руют,ей задачи и новые столбцы. Найти при ограничениях шах 14а2 4~ 2502 + 10а3 + 25р3 22а3 + 2503 + 10а3 + 2503 = 40; а1 + а2 + аз’> ₽2 + Рз = 1- Решаем эту задачу методом обратной матрицы, использовав в качестве началь- ного базиса оптимальный базис предыдущей координирующей задачи (табл. 2.28). Результаты решения приводятся в табл. (2.30) — (2.32). Итак, в результате решения координирующей задачи мы нашли новое решение а, = 5/12; а3 = 7/12; ₽2 = 1. Ему соответствует следующее решение исходной задачи: х = а2х2-у- аях3 = 5/12 • [6 8[ —7/12 [10 0[ = значение целевой функции г = 110 3 ' Г 25^ L 3 ’ 3~ I; У = РгУ2 = [10 5[ 1) (rz-t вводится, а, выводится из базиса) Таблица 2.30 С1 IT, ео е1 е2 | 14 а2 15 И 1 22 _25 ~~ 22* 10 22 15 10 «1 7 *22 1 22 1 25 12 12 | 22 | 7/12 25 02 1 0 0 1 0 Л 36 —. н. 14 22 0 200 22 — 80 22 13!
Таблица 2.31 (проверка оптимальности) л- вх е0 6) . е2 ез 14 а-2 5 1 10 25 12 12 ~ 12 ~ 12 10 а3 7 1 22 2о 12 ~ 12 12 12 25 1 0 0 1 110 4 80 200 Л 3 12 12 12 Вспомогательная таблица 2.32 (приводятся только оценки векторов) Цикл “1 а, ₽3 0 0 0 80 0 0 80 ~ 22 . 1 12 0 0 0 0 Третья итерация. Первый этап. Вектор оценок А имеет вид (табл. 2.31) Л = - [ 1[ I 80 200 1 =- р, Л01 Л02— 12 12 ]• Составим подзадачи I) min гх — min (ajX — ct) х = (4 12 1 Пт [12wl 1] Г"ТХ1~Т' 2) min г2 = min (а2А. — с2) у = !—[2 1] —[2 1] 1у =----А- х3---— xit Д 1Л j о и решив которые, находим оптимальные решения о 20 л 50 х4 = [6 8]; y4=[10 5]; г? =------т- ; =-----— О о и значения минимальных оценок векторов п 20 80 min Ц- = г" + Ло] =----— + = 0; „ 50 200 min fy = г° + Л02 =----— + = 0; 4 min Сс = Т. =---> 0. s 1 12 Так как все они неотрицательны, то полученное решение на второй итерации 132
Вопросы для самопроверки 1. Что называется допустимыми базисными решениями? Каким точкам допусти- мого множества решений они соответствуют? 2. Сформулируйте основную теорему линейного программирования. Какой прак- тический вывод о возможном методе отыскания оптимальных решений следует из нее? 3. Как выбирается направляющий столбец при решении задачи линейного про- граммирования (ЛП) на .максимум и минимум табличным симплекс-методом? 4. Сформулируйте признак оптимальности д.б.р. при решении симплекс-методом задачи ЛП на максимум и минимум. ,5 . Каков смысл двойственных переменных и целевой функции двойственной зада- чи, если прямая задача максимизации? 6. При каких условиях выгоднее решать двойственную ЛП задачу, чем пря- мую? 7. Как найти оптимальное решение двойственной задачи, решая соответствующую пря^мую задачу, и наоборот? 8. Как связаны между собой оптимальные значения целевой функции прямой и двойственной задач? 9. Как связаны между собой компоненты оптимального решения прямой задачи и ограничения двойственной задачи и наоборот? 10. Дайте экономическую интерпретацию теорем 2.6 и 2.7 двойственности. 11. Как провести исследование моделей задач ЛП на чувствительность? Каков смысл оптимальных значений двойственных переменных? 12. Используя прием, описанный в книге, докажите справедливость теорем 2.6 и 2.7 (принцип рентабельности) для пары двойственных задач при произвольных ограничениях. 13. Как определить количество искусственных переменных, которые следует вводить в ограничения задачи ЛП? Поясните смысл коэффициентов +М (—М), с ко- торыми вводятся искусственные переменные в целевую функцию. 14. Как связаны между собой разрешающий вектор А для прямой задачи и опти- мальные планы (решения) двойственной. 15. Сформулируйте признак оптимальности текущего плана при использовании разрешающих множителей. 16. Дайте определение псевдоплана. Каким свойством обладают оценки векто- ров любого псевдоплана? Чем отличается псевдоплан от произвольного допустимого базисного решения? 17. Каким условиям должен удовлетворять произвольный сопряженный базис и как его найти? 18. Сформулируйте признак неразрешимости ЛП-задачи при'ее решении двой- ственным симплекс-методом и дайте его обоснование. 20. Укажите сходства и различия обычного симплекс-метода и двойственного симплекс-метода. 21. Поясните основную идею метода декомпозиции Данцига—Вульфа. На ка- ком свойстве множества решений ЛП-задач базируется этот метод? 22. Поясните смысл координирующей задачи в методе декомпозиции. 23. Почему метод декомпозиции использует метод обратной матрицы (модифици- рованный симплекс-метод)? 24. Сформулируйте признак оптимальности при решении ЛП-задач методом де- композиции и докажите его справедливость.
Глава 3. ТРАНСПОРТНАЯ ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ § 1. ПОСТАНОВКА И ОСНОВНЫЕ СВОЙСТВА ТРАНСПОРТНОЙ задачи Транспортная задача (Т-задача) является одной из самых распро- страненных специальных задач ЛП. Частные постановки задачи рас- смотрены рядом специалистов по транспорту, например, А. Н. Тол- стым [58]. Первая строгая постановка Т-задачи принадлежит Хичкоку, и по- этому в зарубежной литературе иногда ее называют проблемой Хич- кока. Первый точный метод решения Т-задачи разработан советскими учеными Л. В. Канторовичем и М. К. Гавуриным. Постановка Т-задачи. Пусть в пунктах Alt Л2, ..., Ат производят некоторый однородный продукт, причем объем производства в пункте составляет а(- единиц (i = 1, 2, ..., т). Допустим, что данный про- дукт потребляют в пунктах Въ ..., Brt, а объем потребления в пункте В/ составляет Ь, единиц (/ — 1, 2, ..., п).- Предположим, что из каждого пункта производства возможна транс- портировка продукта в любой пункт потребления. Транспортные из- держки по перевозке из пункта А(- в пункт В. единицы продукции рав- ны Ctj (i = 1, 2, m; / = 1, 2, ..., п). Задача состоит в определении такого плана перевозок, при котором запросы всех потребителей полностью удовлетворены, весь продукт из пунктов производства вывезен и суммарные транспортные издерж- ки минимальны. Условия Т-задачи удобно представить в виде табл. 3.1. Пусть хц — количество продукта, перевозимого из пункта А(- в пункт В/. Требуется определить множество переменных Хц > О (t = = 1, 2, ..., m; j — 1, 2, ..., п), удовлетворяющих условиям /2 У xij = Я/ (i == 1, 2, ... т), (11) 1=1 т (/= 1, 2, ... , п), (1.2) и таких, что целевая функция т п L (Xij) = ™ X CiiXij i-1 i^l (1.3) достигает минимума. 134
Условие (1.1) гарантирует полный вывоз продукта из всех пунктов производства, а условие (1.2) означает полное удовлетворение спроса во всех пунктах потребления. Т-задача представляет собой задачу ЛП с (т X п) числом перемен- ных Xij и (т + п) числом ограничений-равенств. Переменные Хц нумеруют с помощью двух индексов и потому на- бор {лу}, удовлетворяющий условиям (1.1) и (1.2), записывают в Таблица 3.1 виде матрицы: Х11 Х12 v __ II .. (Г _ X2i х22 Матрицу X называют планом перевозок Т-задачи, а переменные лу — перевозками. План Хопт, при котором целевая функция мини- мальна, называется оптимальным планом. Матрица С = || Сц || называ- ется матрицей транспортных издержек. Вектор Ру, компоненты которого состоят из коэффициентов при переменных ху в ограничениях (1.1) и (1.2), называют вектором ком- муникаций: Ру = [0, 0, ... , 0, 1, 0, ... , 0, 1, 0, ..., 0). 135
Вводят также вектор производства-потребления Ро, где Ро = (alt а2, ат, Ьг, ..., Ьп). Тогда ограничения (1.1) и (1.2) можно записать в векторной форме так: т п ЕХхг/Р^Ро. 0.5) 1=1 /=1 Графический способ задания условий Т-задачи показан на рис. 3.1. j A] I ’ * * j А( j ’ • • | j 100 i^ri |I • ® ® fceasnaBKtaseJs • • • ( гчн n. B Рис. 3.1. Отрезок A,B. называют коммуникацией. На всех коммуникациях ставят величины перевозок Хц. Свойства транспортной задачи 1. Для разрешимости Т-задачи необходимо и достаточно, чтобы выполнялось условие баланса: т п X at = S bp 0-6) i=i /=1 другими словами, объем производства должен быть равен объему по- требления. Доказательство. Пусть переменные xi;- (1 = 1, 2, ..., т; j — 1, ..., «) удовлетворяют условиям (1.1) и (1.2). Суммируя (1.1) по i, а (1.2) по /, получим tn т п п пт = Е хц-, Ё bs = у; S Ху. i=i 1=1 /=1 /=1 (=i j=i т п Отсюда у at — у 6/,. что и доказывает необходимость условия балан- 1=1 /=1 са Т-задачи. Пусть справедливо условие (1.6). Обозначим хц — где d — т п ' _ = S а‘ ~ S Нетрудно показать, что Ху составляет план задачи. <=1 /=1 Действительно Д x‘i = "Г Д (i=l,2, ... , т); т т £ Хц = (j = 1,2, ... , п). 136
Таким образом доказана достаточность условия баланса для Т-за- дачи. 2. Ранг системы ограничений (1.1), (1.2) равен г — т + п — 1. Доказательство. Так как количество уравнений (1.1), (1.2) равно т + п, то ранг этой системы г < m + н. Теперь пусть набор удовлетворяет всем уравнениям, кро- ме первого. Покажем, что он удовлетворяет также и первому уравне- нию. Очевидно, п !П п п S Хц = S Ё х'ц — Ё Е х'ц. j=.l 1=1 /=] 1=2 /=1 Так как п т Хц = ai (t = 2, ... , т) и X х'ц = bj (/=1,2,..., /г), М i=l ТО т п п т п т 1=1 1 = 1 /=1 i=2 /=1 1=2 Откуда п п т X Хц- =2 bj Xi at< i=l j=l i=2 Учитывая условие баланса (1.6), получим я т т 2 х'ц = X — X = а{, /=1 1=1 1=2 т. е. первое уравнение системы (1.1) тоже удовлетворяется. Таким об- разом, ранг системы уравнений г < т 4- п — 1. Теперь докажем, что ранг системы уравнений (1.1), (1-2) равен точ- но пг + п — 1. Для этого составим матрицу из первых (т + п — 1) компонент векторов P)n, P2fl, ..., Pm„, Pu, ..., Pi,„_i: “Рь р2„... рт„ ри р12... Pl,„_1 -1 1 0 ... 0 1 1 ... 1 t 0 1 ... 0 0 0 ... 0 0 0... 1 0 0...0 Е 4 1 С‘ • 0 0 010 0 0 0 0.0 0 1 m n—1 Очевидно, что эта матрица не вырождена. Поэтому векторы (Р1п, Ргп, ..., Рил, Рц, Pu, •••, Р1,л—1} образуют базис. Так как базис 137
системы состоит из (т + п — 1) векторов, то ранг системы г = т -+- + п — 1. Двойственная транспортная задача (Т-задача). Для Т-задачи, как и для любой задачи ЛП, существует двойственная к ней Т-задача. Переменные Т-задачи обозначим иь о2, vrl и (— щ), (— п2), ... ( UmT Теорема 3.1. Т-задача всегда имеет решение и если Хопт = = II ^"‘7 I! И WOnT =.{^1опт> ^2опт? ' П1опт, Пгопт, ..., — Umom} — оптимальные решения Т- и Т-задач соответственно, то Xj X Cj/Xj/опт — X ^Л/опт X Й(-И('опт. (1-7) . г=1 /=1 ;=1 (=1 Смысл этой теоремы состоит в том, что суммарные транспортные расходы при оптимальном плане перевозок равны приращению сум- марной оценки стоимости продукции при полном удовлетворении спроса. Переменные vt и и, называют потенциалами пунктов А. и В;- для Т-задачи. Таким образом, теорема 3.1 утверждает, что при оптимальных ре- шениях значения целевой функции прямой и двойственной Т-задач рав- ны между собой. Справедливость теоремы следует из основной теоремы двойственнос- ти ЛП (теорема 2.5). Сформулируем теперь необходимые и достаточные условия опти- мальности плана Т-задачи. Теорема 3.2. Для оптимальности плана Хо Т-задачи необхо- димо и достаточно существование vlt v2, .... vn и (— nJ, (— м2), ... ..., ..., (—uOT) таких, что Vj — Ui < ctj (i = 1, 2, ... , m; /=1,2, ...,«) (1.8) при этом, если о n Xjj > О, ТО Vj — Ui ~ Ctj. Эта теорема дает достаточные условия оптимальности плана X. Справедливость этой теоремы вытекает из общих идей теории двой- ственности линейного программирования (в частности, теорем 2.5 и 2.7). Дадим экономическую интерпретацию условий теоремы 3.2. Разность между потенциалами пунктов В/ и А;, т. е. величину Vj — Ui, можно рассматривать как приращение ценности единицы про- дукции при перевозке из пункта At в пункт Ву. Поэтому если vt- — щ < С/>, то перевозка по коммуникации A;BZ нерентабельна и х°ц = 0. Если Vj — u£ = Ctj, то такая перевозка рентабельна и х^ > 0 (сравните с теоремой 2.7, § 4, гл. 2).
Транспортная задача с ограниченными пропускными способностя- ми (Т^-задача). Важной в практическом отношении является Т-задача, в которой существуют ограничения на пропускные способности ком- муникаций. Пусть — пропускная способность коммуникации AtB/. Тогда Xij < dij. (1.9) Т-задача состоит в минимизации целевой функции (1.3) при условиях (1.1), (1.2) и (1.9). Даже в случае разрешимости Т-задачи Т^-задача может оказаться неразрешимой, поскольку величины пропускных способностей будут недостаточны для полного вывоза продукта из пункта Аг (i = 1, 2, ..., т) и его полного ввоза в пункт В (j = 1, 2, .... п). Поэтому для Tj-задачи вводят еще два условия: п Е dij > (г = 1, 2, ... , т) (1.10) т Е 1=1 (/ = 1, 2, ... , zi). (1.11) Но и при добавочных условиях (1.10), (1.11) Т^-задача не всегда разрешима. Для установления совместимости всех условий строят лю- бой план .Т^-задачи. Если план построить удается, то система уравне- ний (1.1), (1.2), (1.9), (1.10) и (1.11) совместна. В противном случае Т-задача неразрешима. Теорема 3.3. Для оптимальности плана Хо Та-задачи необхо- димо и достаточно существование таких vlt v2, ..., vnu(—wr), (—и2),... ... (—um), при которых Vj — Ut^ctj, если x’”’ = 0; (1-12) Vj — Ut = ctj, если 0 < xj°’ <.dtf, (1-13) V/— Ut^Cij, если x^ = dtj. (1-14) Смысл условий оптимальности (1.12) (1.13), (1.14) состоит в следую- щем. Если приращение стоимости продукта v, — щ при перевозке по коммуникации AZB- меньше транспортных расходов с(у (1.12), то такая перевозка убыточна, а потому х^ = 0. Если же приращение стоимости продукта v, — u,; больше транспорт- ных расходов ctj (1.14), то эта перевозка прибыльна и ее величина в оптимальном плане должна быть максимальной, т. е. хц’ = dij. Таким образом, теорема 3.3. по существу выражает принцип рен- табельности для Тdsada4u. Открытые транспортные модели. Существует ряд практических за- т гг дач, в которых условие баланса Е ai = Е Ь/ не выполняется. Такие 1=1 139
модели называются открытыми Т-моделями. Возможны два случая: i) b.-; 2) Sat->5^/- 1=1 /=1 i i В первом случае полное удовлетворение спроса невозможно. Та- кую задачу можно привести к обычной Т-задаче следующим образом. Обозначим через г, величину штрафа из-за неудовлетворения запро- сов на единицу продукта в пункте В,. Тогда требуется минимизировать суммарные затраты иг п п min X Е cijXij + S Wj (Мб) (=17=1 7=1 при условиях п ' т X Xij = at для всех i; У, xq ^bj, j — 1, . . . , п, i=i (=i где у/ = Ь/ — у Xtj — неудовлетворенный спрос. Z—1 Задачу (1.15) приводят к обычной Т-задаче введением фиктивного пункта производства Am+i с объемом производства a,n+i = V bj — у а, /=1 t=i и транспортными издержками cm+ij= г,, j = 1, п. В таком случае Т-задача будет иметь вид: найти /п-|-1 п S Е CijXij, {ХЧ} i=i ;=1 п /п4~1 Е ху = ас; X хц = Ь.. /=1 1=1 В найденном решении Хот полагаем все перевозки из фиктивного пункта Am+i равными нулю, т. е. Xm'+i,/ = 0, j = 1, п. Примеры задач, приводимых к транспортной модели Задача наилучшего распределения боевых средств (задачи целе- распределения). Пусть имеется система обслуживания, состоящая из п типов различных приборов. Обозначим N, (j = 1, ..., п) — количе- п ство приборов /-го типа, тогда общее количество приборов у Nj = fei = N. В систему обслуживания в определенные моменты времени прибы- вают заявки разных типов. Обозначим dp (1=1, ..., т) —- числе заявок i-ro типа, прибывших в систему в момент времени t. Общее число заявок равно т D = U d£. 140
Различные приборы имеют разную эффективность (производитель- ность) при обслуживании соответствующих типов заявок. Обозначим матрицу эффективностей М = || Ц/i = 1, т. j — 1, п Если предположить, что каждый прибор в любой момент времени может обслуживать не более одной заявки, то в данной задаче требует- ся распределить свободные приборы по заявкам так, чтобы интеграль- ная эффективность системы была наибольшей. Обозначим xi, (0 < х[7 < N,) — число приборов /-го типа, отве- денных для обслуживания заявок i-го типа. Тогда сформулированную выше задачу можно записать таким обра- зом: найти max£ S О-16) {ХИ) {=1 /=1 т п при ограничениях У, хц < М,; У, Хц < d^’; i = 1, ..., т; / = 1, ..., п. Г=! ' ;=1 Полученная модель является моделью открытой Т-задачи. Задача перевозки неоднородного продукта на разнотипном транспор- те. Выше была рассмотрена такая постановка Т-задачи, когда требо- валось перевозить однородный продукт на однородном транспорте. В данном случае при отказе от этих упрощающих предположений за- дача значительно усложняется, однако иногда ее удается привести к классической Т-задаче искусственным путем. Пусть для обеспечения перевозок используют S автохозяйств, в каждом из которых имеется г типов машин. Допустим, что разнотип- ные машины, обладая различными эксплуатационными характеристи- ками и разной скоростью, могут доставить любой из т видов грузов каждому из п потребителей. Вводим следующие величины, которые предполагаем известными: aik — количество машин k-vo типа в автохозяйстве I (I — 1, ..., s; .г = 1, ..., г); cq — количество i-ro груза, которое подлежит перевозке /-Му по- требителю (i — 1, ..., m; / = 1, ..., n); dij — количество i-го груза, которое перевозят /-му потребителю (определяют по известной грузоподъемности машин); tijik — время занятости одной машины k-ro типа автохозяйства I по перевозке i-ro груза /-му потребителю. Определить, сколько машин каждого типа из каждого автохозяй- ства следует направить для полного удовлетворения спроса при мини- мальных общих затратах автомобиле-часов. Количество машин k-ro типа из автохозяйства I, занятых перевоз- кой i-ro груза j-му потребителю, обозначим хщь. Найти т п S г ,min, SEES (ид {xijlk} i j Z=1 k=l 141
при условиях т п Е Е xijik < an', I =1, S’, k = 1, ... , r i=l J=1 и E E diixiilk — Ciji I k 0 < Xijik- Заменим пары индексов (i, /) и (Z, k) соответственно индексами X и р, по следующим формулам: k = i + m(j — 1); р = / + 5(й—1). Если индекс i принимает все значения от 1 до т, а индекс / — от 1 до п, то индекс X принимает все целые значения от 1 до тп. Аналогично при изменении значений индекса I от 1 до S, а индекса k — от 1 до г, индекс р принимает все значения от 1 до Sr. Введем для переменных следующие обозначения: — г?.м., с,- tijik = aik = &ц, а для отношения -у- = g%. аИ В новых обозначениях задача (1.17) имеет такой вид: найти тп Sr Е Е Х==1 ц=1 при условиях тп Е гхц < Ьц.; ц = 1, . •., Sr, 2v=] Sr Е Zxn == Л. = 1, тп-, > 0. Ц=1 Итак, это обычная Т-задача с размерностью inn X Sr. По компонентам оптимального плана г^цопт вычисляют составляю- щие решения исходной задачи Х/дяопт- При этом индексы I и j вычисли-- ют следующим образом: т, если X кратно т; i = остатку' от деления к на пг, если к не кратно пг, А. . — , если л кратно пг, / \ целой части I-----F 11, если к не кратно т. Аналогично вычисляются индексы I и k по значениям р. Опорные планы транспортной задачи Опорным планом Т-задачи называют любое ее допустимое базисное решение. Понятие опорного плана имеет наглядную геометрическую интерпретацию. . 142
Последовательность коммуникаций ЛК А^, ... , ABjf (1.19) называют маршрутом, соединяющим пункты AZ1 и B/s (рис. 3.2). Используя маршрут, составленный из коммуникаций, можно осу- ществить перевозку из пункта А(1 в пункт B,s, проходя через пункты Вд, At-2, Аг. В процессе движения коммуникации, стоящие на чет- Рис. 3.2. ных местах в (1.19), будут пройдены в противоположном направлении. Маршрут (1.19), к которому добавлена коммуникация A.tB/s, на- зывается замкнутым маршрутом, или циклом. Способ проверки произвольного плана Т-задйчи на опорность основан на следующих теоремах (прямой и обратной). Теорема 3.4. Система, составленная из векторов Т-задачи, является линейно независимой тогда и только тогда, когда из коммуни- каций, соответствуюш^х этим, векторам, нельзя составить замкнутый маршрут. .Доказательство, Докажем сначала необходимость. Пусть век- торы P>$/J линейно независимы. Если бы существо- вал замкнутый маршрут из коммуникаций А^В/,, А^Вд, АгВ^ и АЧВ/, то, очевидно, начиная движение из пункта А,-, и пройдя все пункты В/х ->• Als В;7 ... B/s по последней коммуникации AZiB/s, мы вернемся в начальный пункт А^. Тогда справедливо равенство Рь/1“Ру1+Р^+ ••• +%3-Рщ5 = 0, (1.20) которое указывает на линейную зависимость векторов {Р,, , Pi;-, ... М- Полученное противоречие доказывает необходимость условий тео- ремы 3.4. Перейдем к доказательству достаточности. J(опустим, что из коммуникаций, отвечающих векторам Pl7 систе- мы R, нельзя составить замкнутый маршрут. Докажем, что R — ли- нейно-независимая система. Если предположить противное, т. е. линейную зависимость векто- ров системы/?, то существуют такие числа ац, (i, j) £ Е, среди которых не все пули, для которых выполняется условие: U al7Pt/ = 0. (1.21) (г,/)6£ 143
Пусть, например, aitjl Ф 0. Перенесем тогда соответствующий вектор Pij, вправо и получим X ацР1/ = — ау,РУ1, (1.22) где Ех образуется вычеркиванием в Е пары индексов (Д, Компонен- та с номером Е в правой части векторного равенства не равна 0. Следо- вательно, это же относится и к левой части этого равенства, т. е. среди векторов Pt/-, (i, /') £ Е1; найдется хотя бы один вектор вида Р,;1/2 с коэффициентом аД1/-2 Ф 0, Перенеся его в правую часть равенства (1.22), получим: 5 а(/Рд7 = — atlj РД1/1 — ад/.Рдд, (1.23) где Е, = Ех — (Д, /2). Но поскольку /2 #= Д, компонента с номером т + /2 правой части (1.23) отлична от нуля. Поэтому среди векторов левой части (1.23) найдется хотя бы один вектор вида Р(г/-2, для которо- го Перенося его в правую часть (1.23), получим: V ад/Рд7 = — аД1/1РМ1 — aid2Pili2 — а,г,2Р,'2м (1-24) (i./)£Es где Е3 = Е2 — (Д, Д). Этот процесс переноса векторов в правую часть можно продол- жить аналогичным образом и дальше. Допустим, что уже проведено 2/г-— 1 шагов. Тогда имеет место соотношение к к— 1 S »<,₽<, = -£ %,£%'«-’• .<L25> где Ег/г-i = E2fe-2— (Д, ik)- Возможны 2 случая: 1. ik = Д, при некотором 1 < s < k — 1, 2. ik =Д= is. В первом случае процесс переноса заканчивается, причем из векто- ров в правой части (1.25) можно образовать замкнутый маршрут. Та- ким маршрутом является A(sB)s+i> Ад-5+)В?<.+1, Ai Во втором случае процесс переноса продолжается, и поскольку ik Д (1 s < k — 1), среди векторов Р7, где (Д /) £ Е^-ь обяза- тельно найдется вектор Ргу//г+1 с коэффициентом #=0. Описан- ный процесс не может длиться бесконечно, так как все вектора, пере- носимые вправо, различны. Поэтому через конечное число шагов мы обязательно столкнемся ео случаем 1, который, как показано, ведет к образованию замкнутого маршрута. Итак, допустив, что система век- торов Рд7 линейно зависима, мы пришли к противоречию с условием тео- ремы, согласно которому замкнутый маршрут из коммуникаций Р(7 системы R составить нельзя. Остается принять, что система R состоит 144
из линейно-независимых векторов. Достаточность условий теоремы доказана. Согласно определению план X — || Хц || называется опорным, если система векторов ?,/, отвечающих ненулевым перевозкам Хц, линейно независима. Назовем коммуникацию А,Ву Т-задачи основной коммуникацией плана X, если хц > 0. Тогда, используя теорему 3.4, можно сформулировать следующий признак проверки произвольного плана на спорность. План X. — || хц Т-задачи является опорным, если из его основных коммуникаций нельзя составить замкнутый маршрут. Теорема 3.5. Вектор Рм является линейной комбинацией век- торов системы R тогда и только тогда, когда из векторов этой системы можно составить маршрут, соединяющий пункты и В;. Если этот маршрут имеет вид АА„ АцВ(1, ... ,'АгВщ Аг-Вг, то == Pfe/,— + Р/,,-,— ••• —+ РцД (1.26) Доказательство этой теоремы основано на теореме 3.4. Пусть выражен в виде линейной комбинации векторов системы Д. Добавив к системе R вектор Р/е;, получим систему линейно зависимых векторов. Тогда в силу теоремы 3.4 появляется замкнутый маршрут у. Этот замкнутый маршрут должен содержать коммуникацию AfeB; и, следовательно, все остальные коммуникации должны соединить Afe и В,. Тогда Р/г/, — Р/./, + Pi,и — • • • Перенеся Ры в правую часть, полу- чим выражение (1.26), что и требо- валось доказать. Рассмотрим произвольную мат- рицу Х",х". Между позициями мат- рицы X и векторами Р,,- можно ус- тановить следующее соответствие. Вектор Рц соответствует элементу матрицы X на пересечении г-й стро- I.H и /-го столбца. Тогда можно за- дать произвольную систему из век- тиров । Р,-ф, выделив единицами со- 11пкч ствующие элементы матрицы X. Рассмотрим матрицу на рис. 3.3. Здесь единицами отмечена система векторов R: ^21> ^22» f*32> P33I P"i3, ^64> I (ри использовании матрицы X критерий проверки линейной неза- висимости формулируется так: для линейной независимости системы Id в nii.i 345
векторов {Pij} необходимо и достаточно, чтобы из ненулевых элемен- тов матрицы X, отвечающих этим векторам, невозможно было соста- вить замкнутый маршрут (цикл). Так как из выделенных единицами позиций нельзя составить замк- нутый маршрут, то данная система линейно независима и образует ба- зис (рис. 3.3). Рис. 3.4. Введем вектор Pie, отметив его знаком «+». Чтобы разложить Р16 по векторам системы R, составим цепочку из выделенных элементов, ко- торая замыкается на элементе х18: Р1в — Р11 ~~ Рг1 ~Ь ^22 ^32 ~Ь Р33 Р43 Р44 ^*64 ^бв- При большом размере матрицы X визуальное отыскание замкнутых цепочек в ней представляет значительные трудности. В таком случае прибегают к формализованному методу вычеркивания. Метод вычеркивания позволяет выделить в произвольном плане X Т-задачи замкнутую цепочку, если она существует. Этот метод состоит в следующем. Выделив в плане X некоторое мно- жество ненулевых элементов S, выясняют, существуют ли во множестве элементов S циклы. Просматривают одну за другой строки плана X и вычеркивают строки, не содержащие элементы S, и строки, которые содержат не более одного элемента 3. Просмотрев-все строки плана X, переходят к столбцам и вычеркивают те, которые содержат не более одного элемента S. При этом элементы, содержащиеся в ранее вычеркну- тых строках, в расчет не принимают. Далее повторяют весь процесс, просматривая сначала строки, а потом столбцы оставшейся после вы- черкивания строк и столбцов подматрицы. После конечного числа шагов процесс заканчивается одним из сле- дующих двух исходов: 1) все строки (столбцы) вычеркнуты; 2) получена подматрица, в каждой строке (столбце) которой содержится не менее двух элементов S. В первом случае из элементов S составить цикл невозможно. Во втором случае множество элементов S содержит циклы из невычеркну- тых элементов S. На рис. 3.4 показаны два плана Т-задачи: неопорный и опорный. Номера линий указывают порядок вычеркивания. Звездочками отме- чены элементы, которые вычеркнуть нельзя. Они образуют цикл. 146
Нахождение начальных опорных планов , Метод северо-западного угла используют для нахождения произ- вольного опорного плана Т-задачи. Основную идею метода рассмотрим на конкретном примере. Дана Т-задача с четырьмя пунктами производства (aj = 1, 2, 3, 4 и потребления j Ь,} =5, 1, 2, 2. Строим матрицу размером 4x4, причем Таблица 3.2 иля удобства вычислений снизу от нее выписываем неудовлетворенные потребности, а в столбцах справа — остатки невывезенного продукта (табл. 3.2): Заполнение таблицы начинаем с левого верхнего элемента хп, что и обусловило название — метод северо-западного угла. Сравнив — I с bt = 5, выбираем меньшее из них, п получим хи = 1. Так как выбор произведен по строке, то остальная часть первой строки должна 1Ч.ПТ. заполнена нулями. Во вспомогательном столбце записываем остат- ки невывезенного продукта, а в вспомогательной строке — иеудовле- гпоренпые потребности после одного шага заполнения. 11<'|>еходим ко второй строке и начинаем заполнение е элемента x2J. । 1>.||111пвая Й2* = 2 и Й1’ — 4, выбираем меньшее из них и потому иг 147
x2i = 2. Остальную часть второй строки заполним нулями. Процесс заполнения далее продолжаем аналогично. Полученный план является опорным, так как из его ненулевых пере- возок нельзя составить цепочку. Кроме того, он удовлетворяет услови- ям задачи, так как п т = ((=1,2, 3, 4) Xxv=&/ (/= 1, 2, 3, 4). f~l L~1 Формальное описание а л г о р и т м а. !. Определя- ют верхний левый элемент матрицы £: хн — min (аь Ь^. Возможны три случая: а) если аг < то хц = а1; и вся первая строка, начиная со второ- го элемента, заполняют нулями; б) если а{ > Ь1г то х71 = Ьъ а все оставшиеся элементы первого столбца заполняют нулями; в) если t?i = Ьъ то хп — ах — Ьг, и все оставшиеся элементы пер- вых столбца и строки заполняют нулями. На этом один шаг метода заканчивается. 2, Пусть уже проделано k шагов, (k + 1)-й шаг состоит в следую- щем. Определяют верхний левый элемент незаполненной части матри- цы X. Пусть это элемент х?.., + И = k 2), причем где и—i . 1 аГ’ = ах~ V. хк/ и бр = bu — S К*- г=1 Если ак’ < Ь^\ то заполняем нулями л-ю строку, начиная с (ц + + 1)-го элемента. В противном случае заполняем нулями оставшуюся часть ,и-го столбца. ; Метод минимального элемента позволяет построить начальный опорный план Т-задачи и является вариантом метода северо-западного угла, учитывающим специфику матрицы С = (| с17 у В отличие от ме- тода северо-западного угла данный метод позволяет сразу получить достаточно экономичный план, сокращая общее количество итераций по его оптимизации. Формальное описание метода. Элементы матрицы С нумеруют, начиная от минимального в порядке возрастания, а за- тем в этом же порядке заполняют матрицу Хо. Пусть элементом с минимальным порядковым номером оказался элемент хц = min (az, bj}. Возможны три случая: а) если min {czz, bj} — ah то оставшуюся 148
часть г-й строки заполняем нулями; б) если min (аЛ-, Ъб\ = bj, то остав- шуюся часть /-го столбца заполняем нулями; в) если at — bj, то оставшуюся часть строки и столбца заполняем нулями. Далее этот процесс повторяют с незаполненной частью матрицы. Пусть элементом с /г-м порядковым номером оказался 4ц. Тогда л\ц. = min {4*'; b'^}, |Л—1 где =ак— Е 4/, g = 1, • •. , {k — 1); . /=i С* = V- S < 1, , (й-1). Д=1 Возможны три случая: а) < Ь$\ тогда == 4/' и оставшуюся часть строки X заполняют нулями; б) 4;> > Ь\А, тогда = b\A и остаток столбца р заполняют нулями, а(^> = £>6" и тогда оставшуюся часть строки X и столбца ц заполняем нулями. '( Пример 3.1. Найти начальный опорный план методом минимального элемента для следующей задачи (табл. 3.3): Таблица 3.3 в. 1 а L i 1 2 3 4 Bi —а1 1 | 7(111) i 1 8(П) 5(7) 3(9 И 2 1 1 2(:i) 4(9 5(9 9(12) 11 1 3 | 6R I 3(9 1(4 2(9 8 1 Al < 1 5 9 9 7 bi Цифры в скобках указывают порядок заполнения элементов в матрице X габл. 3.4). 0 3 1 7 Таблица. 3.4. a-l 11 4 3 0 5 6 0 0 11 6 0 л0 = 0 0 8 0 8 0 bi 5 9 9 7 0 3 10 0 0 Соответствующее значение целевой функции равно L (Хо) = £ V с..А-(Д = 3 • 8 + 1 • 5 + 3 • 7 + 5 . 2 -Ц 6 • 4 -|-8 = 92. * / -
§ 2. МЕТОД ПОТЕНЦИАЛОВ1 Метод потенциалов позволяет, исходя из некоторого опорного пла- на перевозок, построить за конечное число итераций решение Т-за- дачи. Общая схема метода такова. В данном начальном опорном плане каждому пункту ставят в соответствие некоторое число, называемое его предварительным потенциалом. Предварительные потенциалы вы- бирают так, чтобы их разность для любой пары пунктов А(- и Bz, свя- занных основной коммуникацией, была равна су. Если окажется, что разность предварительных потенциалов для всех других коммуника- ций не превосходит с£/, то данный план перевозок — оптимальное реше- ние задачи. В противном случае указывают способ улучшения опорно- го плана Т-задачи. Описание алгоритма метода потенциалов. Алгоритм складывается из предварительного этапа и конечного числа однотипных итераций. На предварительном этапе строят начальный опорный план Хо и составляют матрицу Ci = ||Су — (о'0) — u{i)|]т, п, где ц,-0), — предварительные потенциалы пунктов A, U =1,2, ... ..., m) и В, (/ = 1, 2, ..., п). Предварительный этап. С помощью известного метода (например, метода северо-западного угла) определяют начальный опор- ный план Хо и вычисляют предварительные потенциалы О/0>, Ы/0). Вычисление предварительных потенциалов производят так. По най- денному плану Хо строят схему Т-задачи из основных коммуникаций плана. Далее образуют следующие множества: Jt— множество ин- дексов всех пунктов В/, которые связаны с пунктом Aj основными коммуникациями; /1 — множество индексов тех пунктов производства А£, которые связаны с множеством Jp, наконец, — множество индек- сов пунктов потребления, которые связаны основными коммуника- циями с множеством и т. д. Образование таких множеств продолжа- ют до тех пор, пока не получат пустое множество. Поскольку на выполнение условий оптимальности плана оказыва- ют влияние лишь разности v, — uh то за начало отсчета (нуль) можно принять потенциал любого из пунктов (см. теорему 3.2). Полагаем для определенности ы)0> — 0 и вычислим систему потен- циалов относительно Аг. Тогда vf} = ci, + ы)0’ = Су, где /g Jv По значениям V/0> (/ g J J определяют потенциалы пунктов Аг- (г £ ZJ: * = v\' (j g Jp i Q Д). 1 Метод потенциалов, называемый в зарубежной литературе модифицированным распределительным методом, впервые предложен советскими учеными Л. В. Канто- ровичем и М. К- Гавуриным в 1949 г. [58]. Позже аналогичный метод был предложен Данцигом, который исходил из общих идей ЛП. 150
Аналогично вычисляют потенциалы vf} (j g J2) и т- Д- После того как потенциалы всех пунктов найдены, строят матрицу “НС- Очевидно, позиции матрицы Сх, отвечающие базисным элементам плана Хо, будут заняты нулями. Если матрица Cj не содержит отрицательных элементов, то Хо — оптимальный план. В противном случае Хо — неоптимальный план, который может быть улучшен. Тогда переходят к выполнению одно- типных итераций? ’ .(/г + 1)-я итерация. Каждая итерация, кроме первой, где отсут- ствует первый этап, состоит из двух этапов. Предположим, что уже проведено k итераций (k = 1, 2, ...), в результате которых получен план Хк и матрица Ck. Цель (k + 1)-й итерации — построение матрицы C/;+i, а также либо установление оптимальности плана Xfe, либо нахождение более экономичного плана Х^ь Первый этап. Вычисляют матрицу С/г+ь Преобразование матрицы С/г в матрицу СА+1 состоит в следующем. Выбирают наи- больший по модулю отрицательный элемент матрицы Cfe. Пусть это элемент С}^ = ДА. Выделяют строку, в которой содержится элемент схц, а множество существенных элементов этой строки, не совпадаю- щих с данным элементом, обозначают GP При этом Хк-существенными элементами называют те элементы матрицы Ск, которые отвечают ба- зисным перевозкам плана Xft. Затем выделяют столбцы матрицы С/г, которые содержат элементы множества G,. Множество Хй-существенных элементов, которые на- ходятся в столбцах матрицы Cfe и отличны от Gt элементов множества, обозначают G2. Процесс выделения продолжают до тех пор, пока очередное мно- жество не окажется пустым. Поскольку каждые строка и столбец не могут быть выделены дважды, то весь процесс заканчивается за I •= т + п — 1 шагов. Далее строят матрицу Сй+ь Для этого величину Aft прибавляют ко всем выделенным столбцам и вычитают из всех выделенных строк матрицы Cft. При этом все выделенные Х^-существенные элементы мат- рицы Cft остаются равными нулю, а кроме того, в нуль превращается и. элемент с^. Если все элементы матрицы Cft+i окажутся неотрицательными, то Хк — оптимальный план, и на этом процесс заканчивается. В про- тивном случае переходят ко второму этапу. Второй этап. Производят улучшение плана X*. Выбирают наибольший по модулю отрицательный элемент матрицы С/е+ь Пусть по элемент — Aft+i < 0. Затем составляют, применив, напри- мер метод вычеркивания, цепочку из положительных элементов плана Х/;, которая замыкается на xt-o/-0. 11осле того как цепочка построена, в ней находят минимальный нечетный по порядку следования элемент: = min х^. . 11 g+ 151
Прибавляют 0/;+i ко всем четным элементам цепочки и к элементу и вычитают из всех нечетных элементов. Остальные элементы Хй оставляют без изменения. Новый план Хд,+1 построен. Он является опорным, так как число его ненулевых перевозок не изменилось. Пусть Lk — величина транспортных издержек, отвечающих плану ХА. Тогда новое значение целевой функции, отвечающее плану находят по соотношению — Lk + (2-‘) Так как 0/г+) > 0 и Л^+) < 0, то Lk+\ < Lk. Поэтому X<:+i является улучшенным опорным планом., Затем производят аналогично (k + 2)-ю итерацию. Пример 3.2. Решить методом потенциалов Т-задачу, условия которой заданы в табл. 3.5. 3 4 Проверим условие баланса = И + 11 + 8 = 30, Ь/ = 30. Ущ- = 1=1 /=1 i = поэтому задача разрешима. / При решении данной задачи используем следующие обозначения и приемы’ Xft — существенные элементы матрицы С* обозначаем чертой сверху; при вычислении матрицы С* помещаем (—Д/;) справа от выделенных строк матри- цы а Д/; (Д/, ДО) — под выделенными столбцами; минимальный элемент ДА матрицы обводим рамкой | [ элементы цепочки в плане X* отмечаем знаком *; после каждой итерации выписываем значения целевой функции Lk = -р О)гД/г. Предварительный этап, с помощью метода северо-западного угла: 5 6 0 0 0 3 8 0 0 0 17 0 9 9 7 0 3 9 7 0 9 7 1 7 0 7 Определяем исходный опорный план «г 116 0 11 11 11 8 0 8 8 8 8 7 Целевая функция L() = У, У/Д® = 150. Находим предварительные потенциал! новным коммуникациям опорного плана Х(, кации соответствующие величины транспортных издержек. 6 0 0 3 8 0 0 1 7 I задачи. Для этого строим схему по ос- (рис. 3.5). Наносим на основные коммуни- 152
Таблица З.л / 1 / 1 А; / 1 3 4 а1 1 1 7 2 I 2 3 | 6 8 4 5 1 3 9 2 11 и 8 А, Ь, | 5 9 9 7 7 Предварительные потенциалы вычисляем в таком порядке. Пусть и\0) = 0. Рассмотрев коммуникацию AxBj, находим = сп + — 7. Используя коммуни- кацию AxBg, определим = На + “i0) =8+0=8. Аналогично: ulf* = — - с22 =8-4=4; = с23 + uf = 5 + 4 = 9; uf = - с33 = 9 - 1 = = 8; = с34 + 40) == 2 + 8 = 10. Теперь вычисляем элементы матрицы С4 = || — (и'-®'1 — uf'1) II , например,, 4? = Ан ~ +1°’ — г40)) = 2 “ (7 — 4) = —1 !i т’ Л- 0 0—4 | — 7 — 1 0 0 3 7 3 0 0 Так как в С( есть отрицательные элементы, план Хо — неоптимальный. - Рис. 3.5. Первая итерация. Здесь первый этап отсутствует, так как матрица С4 уже опрс» делена. На втором этапе в матрице Сх находим наибольший отрицательный элемент At = = с = —7, Перейдя к плану Х9, строим цепочку из его базисных элементов, кото- рая замыкается на х14. Элементы цепочки отмечены звездочками. Нечетные элементы по порядку следо- вания х]9 = 6, +3 == 8, х34 = 7. Определив минимальный элемент в, = min {6, 8, 7} = 6, прибавим ко всем четным элементам, а также к х14 = 0 и вычтем из всех нечетных элементов цепочки. Х4 — опорный план, так как число ненулевых перево- зок в нем не изменилось и из них нельзя построить замкнутую цепочку. Получим 153
Целевая функция = Lo + Аф), = 150 — 7 6 = 108. Вторая итерация. Первый этап заключается в построении матрицы С2 по матри- це Cj. В матрице чертой сверху отметим Х1-существенные элементы. Вычерки- ваем первую строку, содержащую наибольший отрицательный элемент = —7 = = А1, и находим в ней существенный нуль (т. е. 0), принадлежащий первому столбцу. Поэтому вычеркиваем также первый столбец и просматриваем, нет ли в нем еще су- щественных нулей. Поскольку таковых нет, процесс вычеркивания заканчивается. Далее из вычеркнутой строки вычтем Дх = —7 (т. е. прибавим 7), а к выде- ленному столбцу прибавим Л, = —7 (или вычтем 7). Получим матрицу С2. Так как матрица С2 содержит отрицательные элементы, предыдущий план необходимо улучшить. .3-----9-------=4------- 0 0 3 3 о о -7 о ЕЗ о 3 о О 3 о о 7 0 3 На втором этапе находим в плане Xt элемент х21, соответствующий с21 = Д2 = = —8, и строим цепочку из базисных элементов этого плана, которая замыкается на х21. Нечетные элементы по порядку следования х23 = 2, х34 = 1, х'И =5. Вы- брав ®2 = min{2, 1, 5} = 1, прибавим 02 ко всем четным элементам, а также к х21 и вычтем из нечетных элементов цепочки. Получим новый улучшенный план Х2, Целевая функция Ь2 = Lt -ф- 02Д2 = 108—8 1 = 100. Последующие итерации проводим аналогично. Третья итерация. Первый этап. Второй этап. 154
Четвертая ите.рация. Первый этап. О о 5 И О 3 1 о о 04=min{8,3,9} = 3;Z.4 = 95~3’2 = 89. Все элементы 0. Следовательно, Х4— искомое решение задачи. Целевая функция Р4 = 89. Связь метода потенциалов с симплекс-методом. Пусть Х/; = || х’/’ || — некоторый опорный план Т-задачи. Множество, состоящее из базисных векторов Р.;-, которые отвечают основным коммуникациям плана X, обозначим Кх, т. е. Кх состоит из (т 4- п — 1) векторов. На первом этапе метода потенциалов вычисляют предварительные потенциалы u(i0), v20>, ..., v(„°\ и\0>, и{2\ и(т, которые удовлетворя- ют условиям: uJ0) — м’0) = с1;- для всех векторов Р(;- £ Кх. Величина С/ — (Vj —- u() имеет смысл симплекс-разности. Предположим, что с(/- — (v, — и,} > 0 для всех Р;/ К.х. Это озна- чает, что при введении любого из векторов Р(-;- уменьшить целевую функцию L (X) нельзя, а поэтому план X — оптимальный. Если же для некоторого вектора Р1о/-о величина vio — ut„ > цо/-0, то при вве- дении вектора Р;о;-0 в базис можно уменьшить значение целевой функ- ции L (X). Переход к новому базису, который включает вектор Р/„/о, связан с построением цепочки, которая замыкается на элементе лц/о. Чтобы опре- делить, какой вектор выводится из базиса, разлагают Pt-0/„ по векторам старого базиса. Далее отыскивают Qk = min !-----| — , (2.2) J ''Д/Цо/о * 155
где x,-kik — базисное значение переменной при векторе выводи- мом из базиса; х1 — коэффициент при выводимом из базиса век- торе Pikik в разложении для вектора PZo/o. Для Т-задачи всегда Xij.iajll = ± 1. При этом х^-,(о1в = + 1 (— 1), если вектор базиса Pi;- занимает нечетную (четную) позицию в маршру- те, который замыкается на элементе лу)/о. Новые базисные значения переменных в общем случае определяются по формулам Л'// = Л'(/ ’ -’Д.Ы/о’ (г> /) С ^<х „(н) _ п где lk, jk — индексы выводимого из базиса вектора. Поскольку Xij,iojo = ± 1, формулы (2.2) и (2.3) применительно к Т-задаче можно представить следующим правилом изменения перево- зок: перевозки, запланированные по нечетным (четным) коммуникаци- ям, уменьшаются (увеличиваются) на величину 9, перевозка между А,-о и В/о полагается равной 0, а остальные перевозки сохраняют свои значения, где 0 — минимальная нечетная по порядку следования пере- возка маршрута, который соединяет пункты А,о и В/о. Таким образом, метод потенциалов является частным случаем симплекс-метода, учитывающим специфику ограничений Т-задачи, Решение транспортной задачи при вырожденном опорном плане Опорный план называется вырожденным, если число его ненулевых перевозок k меньше ранга матрицы ограничений. В процессе построения начального плана или при его улучшении очередной план может оказаться вырожденным. Рассмотрим два случая: 1. Вырожденный план является начальным (Хо). Тогда выбирают некоторые нулевые элементы матрицы Хо в качестве базисных элемен- тов так, чтобы при этом не нарушалось условие спорности. - Далее данные элементы матрицы заменяют на s > 0 (где 8 — произвольное, бесконечно малое число) и рассматривают как обычные базисные элементы плана. Задачу решают как невырожденную, а в оптимальном плане вмес- то s пишут'нули. 2. Вырожденный план получается при построении если це- почка содержит не менее двух минимальных нечетных элементов. В таком случае в матрице Х/г+1 полагают равным нулю только один из этих.элементов, остальные заменяют на 8 и решают задачу как невырож- денную. Если на /г-м шаге б/г == е, то при переходе от > X*+i це- левая функция не изменяется, а в базис вводится элемент, для кото- рого перевозка станет равной 8. Пример 3.3. Решить Т-задачу со следующими условиями (табл.3.6), Проверим условие баланса з 4 Ea<- = S&/ = 24- /=.1 156
Таблица 3.6 ь. ! 6 • 8 6 а, 4 6 2(6) 2(4) 3(8; 4<10 8 6(12) 4(Ю) 3<9) | (3) 10 "" 2<б) 2(7) 1® Предварительный минимального элемента: этап. Строим начальный опорный план методом at Е0 6 0 0 6 0 хо= 0 S0 8 0 8 0 4 0 0 6 10 6 О 4 6 8 6 bj О ООО т + п — 1 = 6, k = 4. План оказался вырожденным. Два нулевых элемента делаем базисными так, чтобы не нарушить спорность плана. Выберем в качестве базисных элементов и и положим их равными в. Схема перевозок для плана Хо показана на рис. 3.6. Рис. 3.6. Для вычисления предварительных потенциалов выберем начальный пункт Аг и допустим, что «!=0. Потенциалы всех остальных пунктов вычисляем по формулам: <;==м°)~Сг/, а<«>=с,+е Для проверки оптимальности плана Хо строим матрицу (ц. Элементы матрицы вычисляем по соотношению ci = li C'q !' = !1 сц -- (vp — [| i = i, т I = 1, п, 0 0 2 2 (?!= 2 0 0 Рз] 0 12 0 157 -
Так как в матрице С, элемент с.31 — —3, то план Хо неоптимальный и, следовательно *» должен быть улучшен. Первая итерация. Второй этап В результате такого построения плана X, минимальный нечетный элемент обращает- ся в нуль и становится небазисным, а вместо него в базис вводим = я. План Х( является также опорным. План Х2 является вырожденным (два минимальных нечетных элемента). Один из нулевых нечетных элементов заменяем на е. Вторая итерация. Первый этап. О О- !! -2——g----- О 1 -3 2 4- 0 О ч 3 о 1 Е2 2 О о Второй этап. Третья итерация. Первый этап. 0 ° 3 п 2 0 0 | j -1 -1 Так как в матрице С3 нет отрицательных элементов, план Х2 является опти- мальным. 158
' § 3. ВЕНГЕРСКИЙ МЕТОД 1 Венгерский метод является одним из наиболее распространенных методов решения транспортных задач. Рассмотрим сначала основные идеи венгерского метода на примере решения задачи выбора или задачи о назначениях, которая является частным случаем Т-задачи, а затем обобщим этот метод для произволь- ной Т-задачи. Венгерский метод для задачи выбора Постановка задачи. Предположим, что имеется п различных работ Ax, А2....А„ и механизмов В1; В2, ..., Вл, каждый из которых может выполнять любую работу. Производительность механизма Bz при выполнении работы А, обозначим Сц (г = 1, 2, ..., п; /— 1, 2, ..., п). Требуется так распределить механизмы по работам, чтобы суммарный эффект от их использования был максимален. Такая задача называется задачей выбора. Формально задача выбора записывается так. Необходимо выбрать такую последовательность элементов ci/,, с2/2, ..., cnjn] из матрицы Сц С12 ... С\п ~| £ __ С21 С22 • • • Фя |_ спч . . . спп _ п чтобы сумма У, с/г/- была максимальна и при этом из каждой строки is столбца С был выбран только один элемент. Введем следующие понятия: 1. Нулевые элементы гь г2, ..., гк матрицы С называются неза- висимыми нулями, если для любого 1 < i < k строка и столбец, на пересечении которых расположен элемент г/, не содержат другие нули zk (для всех k г)- 2. Две прямоугольные матрицы С и D называются эквивалентны- ми (С ~ D), если Cij = d.j 4~ «/ + Р/ для всех i, j. Задачи выбора, определяемые эквивалентными матрицами, являются эквивалентными. 3. Элементы, расположенные в выделенных строках или столбцах, называются выделенными элементами. Описание алгоритма венгерского метода. Алгоритм состоит из предварительного этапа и не более чем (п — 2) последовательно про- водимых итераций. Каждая итерация связана с эквивалентными пре- образованиями матрицы, полученной в результате проведения преды- дущей итерации, и с выбором максимального числа независимых 1 1 Этот метод впервые предложен венгерским математиком Эгервари в 1931 г. Дли- н'лыюе время работа оставалась малоизвестной. В 1953 г. математик Г. Кун [58] перевел эту работу на английский язык, заново открыв ее для специалистов, раз- вил идеи Эгервари и усовершенствовал метод, который в честь первого автора и был ii.rm.-iii венгерским. 159
нулей. Окончательным результатом итерации является увеличение чис- ла независимых нулей на единицу. Как только количество независимых нулей станет равным п, проб- лема выбора оказывается решенной, а оптимальный вариант опреде- ляется позициями независимых нулей в последней матрице. Предварительный этап. Разыскивают максимальный элемент в /-м столбце и все элементы этого столбца последовательно вычитают из максимального. Эту операцию проделывают над всеми столбцами матрицы С(]</<«). В результате образуется матрица с неотрицательными элементами, в каждом столбце которой имеется по крайней мере один нуль. Рассматриваем i-ю строку полученной матрицы и из каждого ее элементу вычитаем минимальный элемент этой строки. Меняя i от 1 до п, получаем матрицу Сп с неотрицательными элементами, в каждом столбце и строке которой имеется по крайней мере один нуль. Отме- чаем произвольный нуль в первом столбце звездочкой. Затем просматриваем второй столбец, и если в нем есть нуль, рас- положенный в строке, где нет нуля со звездочкой, то отмечаем его звез- дочкой. Аналогично просматриваем один за другим все столбцы матрицы Се. Очевидно, что нули матрицы Со, отмеченные звездочкой, являются по построению независимыми. На этом предварительный этап заканчи- вается. (k 4~ 1)-я итерация. Допустим, что k-я итерация уже проведена и в результате получена матрица Cfc. Если в матрице Ск имеется ровно я нулей со звездочкой, то процесс решения заканчивается. Если же число нулей со звездочкой меньше п, то переходим к (k + 1)-й ите- рации. Каждая итерация начинается первым и заканчивается вторым эта- пом. Между ними может несколько раз проводиться пара этапов: третий — первый. Перед началом итерации знаком «+» выделяют столбцы матрицы Cfe, которые содержат нули со звездочкой. П е р в ы й э т а п. Просматривают невыделенные столбцы матри - цы Сй. Если среди них не окажется нулевых элементов, то пере- ходят к третьему этапу. Если же невыделенный нуль матрицы Ск обнаружен, то возможен один из двух случаев: 1) строка, содержащая невыделенный нуль, содержит также и нуль со звездочкой; 2) эта строка не содержит нуля со звездочкой. В первом случае невыделенный нуль отмечают штрихом и выделя- ют строку, в которой он содержится, постановкой справа от нее зиа ка «-{-». Затем уничтожают знак «Д-», обводя его кружком над тем столбцом, на пересечении которого с данной выделенной строкой- со- держится нуль со звездочкой. Далее просматривают этот столбец, отыскивают в нем невыделен- ный нуль (нули), не отмеченный звездочкой, отмечают его штрихом и выделяют строку (строки), содержащую такой нуль (нули). Затем просматривают эту строку (строки), отыскивая в них нуль со звез- дочкой. 160
Этот процесс за конечное число шагов заканчивается одним из следующих исходов: все нули матрицы Ck выделены, т. е. находятся в выделенных строках или столбцах. При этом переходят к третьему этапу; имеется невыделенный нуль в строке, где нет нуля со звездочкой. Тогда переходят ко второму этапу, отметив последний по порядку нуль штрихом. Во втором случае, отметив невыделенный нуль штрихом, сразу переходят ко второму этапу. Второй этап. Строят следующую цепочку из элементов матрицы Cfe: исходный нуль со штрихом, нуль со звездочкой, располо- женный в одном столбце с первым, нуль со штрихом, расположенный в одной строке с предшествующим нулем со звездочкой, и т. д. Итак, цепочка образуется передвижением от 0' к 0* по столбцу, от 0* к О' по строке и т. д. Можно доказать, что описанный алгоритм построения цепочки однозначен и конечен. При этом цепочка всегда начинается и закан- чивается нулем со штрихом. Далее над элементами цепочки, стоящими па нечетных местах (О'), ставим звездочки, уничтожая их над четными элементами (0*). Затем уничтожаем все штрихи над элементами мат- рицы Ck и знаки +. При этом количество независимых нулей будет увеличено на единицу, (k + 1)-я итерация закончена. Третий этап. К этому этапу переходят после первого, если псе нули матрицы Ck выделены, т. е. находятся на выделенных строках, пли столбцах. В таком случае среди невыделенных элементов матрицы С,. выбирают минимальный и обозначают его h > 0. Далее вычитают // из всех элементов матрицы Cfe, расположенных в невыделенных стро- ках, и прибавляют ко всем элементам, расположенным в выделенных • голбцах. Получают новую матрицу СдР, эквивалентную Cfe. Поскольку среди невыделенных элементов матрицы С/,11 появятся новые нули (согласно определению), переходят к первому этапу, а вме- сто матрицы Cft рассматривают матрицу Завершив первый этап либо переходят ко второму этапу, либо вновь возвращаются к третье- му этапу, если все нули матрицы С*? оказываются выделенными. В первом случае после проведения второго этапа итерация закан- чивается, а во втором — после проведения третьего этапа получают матрицу С*1 ~ Cl” ~ Cfti, В матрице С® будут невыделенные нули, и всю последовательность операций, начиная с первого этапа, надо повторить. После конечного числа повторений очередной первый лап обязательно закончится переходом на второй этап и количество петавпсимых нулей увеличится на единицу (k + 1)-я итерация за- копчена. Пример 3.4. Решить задачу выбора, которая определяется матрицей: С = 4 4 3 1 4 2 5 3 3 1 1 2 3 1 2 1 1 3 1 1 2 2 2 1 || П 'П(Ы 161
При решении задачи используем следующие обозначения: знак выделения + , подлежащий уничтожению, обводим кружком. Цепочку во втором этапе указываем стрелками. Предварительный этап. Максимальный элемент первого столбца матрицы С равен 4. Поэтому для получения первого столбца матрицы С' необходимо из 4 вычесть элементы первого столбца исходной матрицы. Аналогично, для получе- ния второго, третьего, четвертого и пятого столбцов вычитаем элементы этих столб- цов из 5, 3, 2 и 3 соответственно. Получим матрицу С/. Так как в каждой строке матрицы С' есть нуль , то С' = Со. Находим независимые нули Со и отметим их звез- дочкой. В результате получим два независимых нуля (в первом и в четвертом столб- цах). Отметим их звездочкой. Первая итерация. Выделяем знаком + первый и четвертый столбцы, которые содержат 0*. Просматриваем невыделенные нули матрицы Со. Отмечаем штрихом нуль, расположенный во второй строке и во втором столбце. Поскольку в этой строке имеется 0*, то строка подлежит выделению (ставим + справа от второй строки) и одновременно обводим кружком знак + над первым столбцом. Обращаемся к невыделенным нулям первого стобца. Отмечаем нуль этого столб- ца, лежащий в третьей строке, которая не содержит 0*. Следовательно, в этом случае необходимо переходить ко второму этапу. Второй этап. От последнего по порядку О' движемся к 0* (первый стол- бец, вторая строка), затем от 0*, расположенного во второй строке, переходим к О', расположенному в той же строке. Поскольку во втором столбце, где распо- ложен О', нет 0*, процесс образования цепочки закончен. Искомая цепочка состо- ит из элементов: 031; 021; 022. Для завершения второго этапа, а вместе с ним всей первой интерации, ставим звездочки над нулями, которые отмечены штри- хом, уничтожаем звездочку над единственным четным элементом и все знаки выделения. Итак, в результате первой итерации число независимых нулей увеличилось на единицу. Первая итерация Вторая итерация Первый, второй этапы Первый этап Третий этап Вторая итерация Первый этап Второй этап 162
Поскольку последующие итерации проводятся аналогично, выше приведены результаты без дополнительных пояснений. После третьей итерации количество независимых нулей (0*) стало равно размерности матрицы С и потому процесс выбора закончен. Искомые элементы матрицы соответствуют позициям независимых нулей матрицы С3 (т. е. нулей со звездочкой). Целевая функция Д = с12+с23+с31+с45+с64=4+3+4+2+2=15. Венгерский метод для транспортной задачи Рассмотренная выше задача выбора представляет частный случай Т-задачи с единичными объемами производства и потребления. По- этому венгерский метод, применимый для решения транспортной за- дачи специального вида, можно распространить на общий случай Т-задачи [57, 581. Пусть требуется решить Т-задачу следующего типа; найти min S S СцХц, i i при n m vj Хц = ah i = 1,2, .. . , tn', Хц = bf, j = I, 2, , n\ хц > 0. f— 1 1=1 Алгоритм решения Т-задачи, основанный на венгерском методе, состоит из предварительного этапа и конечного числа итераций (как и для задачи выбора). В результате предварительного этапа строят матрицу Хо= || х^ \\т,п , элементы которой удовлетворяют следующим условиям: У, хо’ < т; (3.1) /=1 т Ё 4°’ < bj, 1=1 / = 1, 2, ... п. (3.2) II 163
Если в условиях (3.1) и;(3.2) получены строгие равенства, то мат- рица Хо является решением Т-задачи. Матрицу, построенную в ре- зультате k-й итерации, обозначим Х/г = || Цт,п. Пусть т п т п Е Е 4*> = аа. (з.з) 1—1 /=1 1 = 1 /=1 Величина Дй называется суммарной невязкой для матрицы Xfc. Она характеризует близость матрицы Хй к опорному плану Т-задачи. Итерации проводятся до тех пор, пока величина А,; не станет при некотором k равна нулю. Описание алгоритма венгерского метода. Предваритель- ный- э т а п. В каждом из столбцов матрицы транспортных издер- жек С — || ctf || отыскивают минимальный элемент, который вы- читают из всех элементов этого столбца. Получают матрицу С'. Далее в каждой строке матрицы С' выбирают минимальный элемент и вычи- тают его из всех элементов рассматриваемой строки. Приходят к мат- рице Со, все элементы которой неотрицательны, причем в каждой стро- ке и столбце имеем по крайней мере один нуль. Далее строят матрицу Хо так, чтобы ее ненулевые элементы были расположены в позициях нулей матрицы Со. Пусть ik. — номер строки, в которой расположен й-й нуль /-го столбца матрицы Со. Тогда элементы первого столбца матрицы Хо определяют по рекуррентной формуле 0; t ii(i, й — 1, 2, ... , г Xi] — ' • ( < vi (0)\ . ’ • (3.4) mm ay, ; t = ikt \ 11=1 / . Все элементы первого столбца Хо, которым соответствуют ненулевые элементы в матрице Со, заполняют нулями, а остальные элементы этого столбца заполняют по методу северо-западного угла. Допустим, что столбцы матрицы Хо до (/— 1)-го включительно уже заполнены. Тогда элементы /го столбца определяют в соответствии с формулой 0; i ik* k = 1, 2, . .. , гj v<°) __ ( i—i 1 1 " = min k - £ < b, - £ 4 • <3-5> I u=i ц=1 J . Далее вычисляют невязку: tn n m n Ao = S at + S b,- — 2 S £ <. (3.6) I—I /=] l=i’/=l Если Ao = 0, to Xo — оптимальное решение Т-задачи. Если же Ао > 0, то переходим к первой итерации. (й + 1)-я итерация. Каждая итерация состоит из трех этапов. Итерация начинается первым этапом, а заканчивается вторым. Между первым и вторым этапами в общем случае могут быть не- сколько раз проведены первый и третий этапы. 164
Допустим, что уже проведено k итераций, причем Аа > 0. В этом случае необходимо, используя матрицы С/г и Хъ провести следующую (k + 1) итерацию. Перед началом итерации выделяют знаком «+» те столбцы матрицы Cfe, для которых невязки по столбцам равны т 4> = о. Первый этап. Если все нулевые элементы матрицы Cfc ока- жутся в выделенных столбцах, то переходят к третьему этапу. В про- тивном случае выбирают произвольный невыделенный нуль Cfe, рас- положенный, например, в i-й строке и /-м столбце, и вычисляют вели- чину невязки i-й строки: = ai - S < |Л= 1 При этом возможен один из двух случаев: 1) б(/г) = 0; 2) б'А)>0. В первом случае i-ю строку Cft отмечают знаком + справа от нее, а элемент матрицы с$, равный нулю, отмечают штрихом. Далее про- сматривают все выделенные столбцы матрицы С., по этой строке. Если р-й столбец матрицы СА выделен и элемент 4ц > 0, то знак «+» над столбцом уничтожают, а сам элемент с$ 1 (он обязательно равен нулю) отмечают звездочкой. Затем просматривают р-й столбец и отыскивают его нулевые эле- менты cril, расположенные в отличных от i-й строках. Если таковые имеются, то их выделяют штрихом. Далее процесс выделения нулей продолжают аналогично, завершая одним из следующих двух исходов: 1) обнаружен невыделенный нуль матрицы Cfc, для которого невязка > 0. В этом случае переходим ко второму этапу; 2) все нули матрицы Сй оказались выделенными, причем для каж- дого из нулей, выделяемых штрихом, невязка = 0. Тогда переходим к третьему этапу. Во втором случае, отметив этот нуль штрихом, сразу переходим ко второму этапу. Второй этап следует за первым, если 6г > 0, и состоит в построении цепочки из нулей матрицы Cft, отмеченных штрихами и звездочками, и в последующем переходе к новой матрице Х^ь Пусть для некоторого невыделенного нуля матрицы Cfe, располо- женного, например, в позиции невязка \ > 0. Начиная с этого элемента, строят цепочку из отмеченных нулей матрицы С/г в соот- ветствии со следующим правилом. В столбце рх матрицы Cft выбирают нуль со звездочкой 0х2Щ, в Х;>-й строке выбираем нуль со штрихом Далее от 0^ движемся но р2-му столбцу до нуля со звездочкой и т. д. Последовательный переход Пакой элемент cia называется существенным нулем. 165
от нуля со штрихом к нулю со звездочкой по столбцу и от нуля со звездочкой к нулю со штрихом по строке осуществляют до тех пор, пока это возможно. Можно доказать, что построение цепочки произ- водится всегда однозначно, цепочка не имеет замкнутых циклов и за- канчивается нулем со штрихом. После того как цепочка вида Олщ, Ох2ц, 0х,2ц2 • • • 0\.ns построена, осуществляют переход к матрице X^i от матрицы Хк по формуле Лб/ > если не входит в цепочку; 4+1 = Л'гу) + 0Л, если ДЭ — нечетный элемент цепочки; (3.7) хц} — 0ft, если ЛЭ ьч — четный элемент цепочки; где (ф = min {4^-!; С; бщ}; п т 0-8) 6? - Л, - £ \ i=l ' “ г=1 Таким образом, — минимальный элемент среди совокупности четных элементов цепочки, невязки строки, где начинается цепочка, и столбца, где она заканчивается. После выполнения второго этапа (k + 1)-ю итерацию заканчивают, причем невязка A/i+i = Kk — 20fe. Третий этап. Итак, допустим, что все нули выделены. Этот этап заключается в переходе от матрицы С/г к матрице С/г, в которой появляется один (или более) невыделенный нуль. . ! Пусть h = min {4/}, где минимум выбирают из всех невыделен- ных элементов матрицы Cft. Тогда из элементов матрицы С/г, принад- лежащих к невыделенным строкам, вычитают h, а к элементам выде- ленных столбцов прибавляют/г. Полученную при этом матрицу обозна- чают С*’. .............. / Далее переходят к первому этапу, а затем либо переходят ко вто- рому, либо снова возвращаются к третьему этапу. Если после второго этапа суммарная невязка A*+i равна нулю, to X/^.i оптимальный план. В противном случае переходят к следующей (k 4~ 2)-й итерации. Отметим некоторые достоинства венгерского метода. 1. Поскольку данный метод в отличие от метода потенциалов не использует опорных планов, то явление вырожденности для него от- сутствует. Это устраняет возможность зацикливания, связанного с вы- рожденностью планов, и облегчает машинную реализацию метода на ЭВМ. 2. На каждой итерации метод позволяет по величине невязке Ай судить о близости ХЛ к оптимальному плану, а также оценить верхнюю 166
границу числа оставшихся итераций Noeci ЛГОСТ<-^-. (3-9) Эта формула справедлива для целочисленных значений всех перемен- ных ___ _________ а(, i = 1, т, bj = 1, п. Обоснование венгерского метода Прежде всего докажем справедливость признака оптимальности, т. е. если А* = 0, то план Х/г — оптимален. Действительно, в силу построения Хй, если х{^~> 0, то с')’ = О (эти нули Cfc называют существенными). Поэтому план Xk оказывается оптимальным для задачи с матрицей Сй, так как гп п Мх*)-Е Е ==о. (3J0) Но матрица-С/г получена эквивалентными преобразованиями из ис- ходной матрицы С. Докажем, что Хк оптимален и для задачи с матрицей С. Матрицы С и С,,. как эквивалентные, связаны соотношениями .($ = Ci, — az— Р, для всех I, j. (3.11) Тогда значение целевой функции для плана Х/( при матрице С будет равно 4. оы - XS - S S + «, + м дг - I ! i j - S S + S «, S + S ₽, S 4'- <3.12, i i i i j i Но так как Afe — 0, то J} xtf = а, и E x{^ = bj, i = 1, tn, / — 1, n. i i (3.13) Подставляя (3.13) в (3.12), получим с учетом (3.10): Д (Xft) = LCk (Xfc) + E а,а( + E fijbj = S «А + EPA- (3.14) г / i j Ho EaA' + EPA = coiibt и не зависит от плана Х/г, поэтому план i i Xfc оптимален и для исходной задачи с матрицей С. Перейдем к обоснованию алгоритма венгерского метода. Предварительный этап. На предварительном этапе v (0) строят матрицу л0, элементы х}/ которой удовлетворяют условиям Е 4* < а/ Е 4 < ь. (зле: 1=1 z 16/
Если все условия (3.15) и (3.16) выполняются как строгие неравенства, то план Хо — оптимален, согласно только что доказанному. Первый этап. Цель первого этапа состоит в отыскании тако- го невыделенного нуля — 0, для которого невязка по строке 8$ > 0. Предположим, что такой нуль найден и мы перешли ко вто- рому этапу. Второй этап. Он состоит в построении цепочки из нулей со штрихами и звездочками и переходе к Х*+1. Пусть цепочка имеет вид: СЦц, 0/.=.и 0%2|Лг ’ ’ ’ ^SHS—1 „Ж __ - Элементы матрицы X*+i вычисляют по рекуррентным формулам X;/’ + 0А, если Су* — нечетный элемент цепочки, х$’ — 0ft, если 4/’ — четный элемент цепочки, х’-)’, в остальных случаях, где 0/г = min 6^, x^-J. (3.17) (3.18) Так как в каждом столбце и строке имеется как элемент О', так и 0*, либо они оба отсутствуют, за исключением строки и столбца p,s, где имеется лишь 0', то У г^+1) Zj хч i^i У Xz/\ если i / У X//’ + 0ft, если I ~ / S(i‘) , xij , .если /t^ps, i S Xz/’ + 0fe, если / = ps. (3.19) (3.20) Поэтому, если матрица Xk удовлетворяла ограничениям (3.15) и (3.16), то и Xft+i будет им также удовлетворять. Наконец, на основании соотношений (3.19), получим Ал+1 = У at + У bt ~ 2 £ £х$+1’ = S а, + £ - Ь / i / i j -2(Е Sx^+0fe) = Aft-20ft. \ i i I Третий этап. В соответствии с правилами перехода от Cft к С/г и при выборе элемента h невыделенные элементы Ck уменьшаются на величину h, появляются новые нули и можно снова перейти к пер- вому этапу. При этом по правилу выделения строк и столбцов все су- щественные нули Ck останутся нулевыми элементами и в матрице С*, 168
следующими условиями: Пример 3.5. Найти решение транспортной задачи со 7 8 5 3 а± = 11, а2 = 11, <'3 = 8 С = 2 4 5 9 = 5, Ь2 =9, Ь3 = 9; 6 3 1 2 *4 = 7. Проверим условие баланса Т-задачи: = ^Ъ/ = 30. t / Предварительный этап. Вычитаем из первого столбца 2, из второ- го — 3, из третьего — 1, из четвертого —2. Приходим к матрице Сх. Далее, вычи- тая минимальные элементы в каждой строке, получим матрицу Со. С1 = 5 5 4 1 0 14 7 4 0 0 0 4 4-30 0 14 7 4 0 0 0 -> Со = Строим начальную матрицу перевозок: at 6/ 0 0 0 7 11 4 х0 = 5 0 0 0 11 6 0 8 0 0 8 0 bj 5 9 9 7 6j 0 1 9 0 Невязки для столбцов 6j = {0, 1, 9, 0}, для строк <5,: = {4, 6, 0}. т п т п Суммарная невязка До = + 'У''2/ — = ~ 20 >0. i i i=l /=1 1=1 /=1 Первая итерация. Первый этап. Отмечаем знаком «+» сверху первый и четвертый столбцы, которым соответствуют нулевые невязки, а знаком «X» слева первую и вторую строки, которым отвечают ненулевые невязки. + + 4 4 3 0 0 14 7 О' 0 0 Выбираем нулевой элемент с32 матрицы С, расположенный в невыделенном столб- це. Так как 63 = 0, то выделяем третью строку знаком «+». Поскольку в матрице Со больше не осталось невыделенных нулей и все они расположены либо в выделенных столбцах, либо в выделенных строках, то переходим к третьему этапу. Третий этап. Среди невыделенных строк и столбцов матрицы Со находим минимальный элемент h = 1 и прибавляем его ко всем выделенным столбцам и вычи- таем из всех невыделенных строк. Получим матрицу Cv + + 4 4 3 0 /1=1 X со С°= X 0 14 6 у С1 = X 0 0 4 0 0 0 + 5 0 3 9 0 0 Переходим к первому этапу. Первый этап. Среди невыделенных столбцов находим нулевой элемент с,,.,, который расположен в строке с ненулевой невязкой, а потому переходим ко вто- рому этапу. 169
Второй этап. менту х22. Получим Определим Sj = min {1,6}= 1 и прибавим = 1 к эле- Xi= 5 4 5 0. 0 О о о 1 о 8 О 7 О О б/ = 0 0 9 О Вторая итерация. Первый этап. В матрице С3 отмечаем знаком «-}-» первый, второй и четвертый столбцы, которым отвечают нулевые невязки. Находим в третьем столбце элемент с38 и отмечаем его штрихом. - Так как невязка в третьей строке равна нулю, выделяем ее знаком «+». Просмат- риваем эту строку и находим в ней существенный нуль с32, расположенный в вы- деленном столбце. Отмечаем его звездочкой и уничтожаем знак выделения второго столбца. Далее просматриваем второй столбец и отыскиваем в нем невыделенный нуль с22. Так как невязка по строке 62 > 0, то, отметив этот нуль штрихом, переходим ко второму этапу. Второй этап. Скроим цепочку в матрице С3 вида 022 — 032 — 033, а за- тем аналогичную цепочку в матрице Xj. В результате получаем матрицу Х2. С,= + © + 4 3 2 0 О /0' 3 7 5 0" 0' 1 е2=з х,= + 0 0 0 7 5/1+5 0 0 о'8-5 0+5 0 0 0 0’7 5 6 0 0 0 3 5 0 8у~0 0 1 (Г S/ 4 0 0 02 = min {5, 8, 9} = 5. Третья итерация. Первый этап. В матрице С2 отмечаем знаком «+» первый, второй и четвертый столбцы, которым соответствуют нулевые невязки. Находим нулевой элемент с88 в третьем столбце. Так как ему соответствует нулевая невязка в третьей строке, то отмечаем этот нуль штрихом. Далее просматриваем ну- левые элементы,'отмеченные' сверху чертой в третьей строке. Выделяем звездочкой элемент с32 = 0 в уничтожаем знак «+» во втором столбце. Просматриваем второй столбец, находим в нем нулевой элемент с22 = 0 и отмечаем вторую строку знаком «+», а сам элемент — штрихом. Далее, просмотрев вторую строку, находим пулевой элемент с2] = 0 в первом столбце, выделяем его звездочкой и потому уничтожаем знак«+» над первым столбцом. На этом процесс выделения нулей заканчиваем. Так как больше невыделенных нулей не имеется, то переходим к третьему этапу. Третий этап. Находим минимальный элемент h = 2 в невыделенной час- ти матрицы С2, вычитаем h из невыделенных строк и прибавляем к выделенным столб- цам (т. е. прибавляем к третьему столбцу и вычитаем из первой строки). В результа- те увеличим число невыделенных нулей третьего столбца на единицу (элемент с13 = = 0). © 4 0* 5 © 3 О' о* 2 3 о' /I = min (4,3,2} = 2 + 2 с,= о + 5 О' о 3 9 0 3 о 7 1 1 0 О 170
Далее переходим к первому этапу. Первый этап. Выделяем в матрице С3 элемент с13, который расположен в невыделенном третьем столбце и первой строке. Так как Gj > 0, то переходим ко второму этапу. Второй этап. Вся цепочка состоит из одного элемента Поэтому 63 = = min (6j = 4, 63 =4} = 4. Прибавив 4 к приходим к матрице Х3. 8/ 0 0 О' 7 4 5 6 0 0 0 0 3 5-0 0 „_____.___________ I О/ 0 0 4 0 0 0 4 7 8/ 0 е3=4 5 6. 0 0 0 —— A'3=- 0 3 5 0 0 8 j 0 0 0 0 Так как все невязки стали равны нулю, то Х3 — оптимальный план перевозок. Целевая функция Lopl = У. У,= 89. (Сравни с результатами решения этой задачи методом потенциалов). Транспортная задача с ограниченными пропускными способностями Рассмотрим Т^-задачу, состоящую в минимизации линейной формы: tn п У У-i CijXij с=11=1 при условиях п у Xij = а(, i = 1, ... , т; /=1 т Ул'(7 = &-; /=1, . . . , п; Введем следующие определения: 1. Элемент Сц =- 0 матрицы С называется Х-неполным нулем, если в плане X решаемой 1^-задачи перевозка хц меньше величины dij. Если же Хц = dij, то элемент Сс, = 0 называется Х-полным нулем. 2. Х-сущгственным нулем матрицы С называется такой элемент Cij = 0, для которого xij > 0, а в противном случае этот элемент на- зывается несущественным нулем. Описание алгоритма венгерского метода. Алгоритм решения Т^-за- дачи, основанный на венгерском методе, состоит из предварительного этапа и ряда однотипных итераций. Предварительный этап. В каждом столбце матрицы С разыскивают минимальный элемент и вычитают его из всех элементов данного столбца. В результате получают матрицу С'. Далее из всех элементов каждой строки матрицы С' вычитают минимальный элемент этой строки и получают матрицу Со = || в каждой строке и столбце которой имеется нуль. 171
После этого формируют матрицу Хо == |[ i|, процесс построе- ния которой ведут по столбцам. Пусть уже заполнены первые (/ — 1) столбцы матрицы Хо. Перенумеруем нули /-го столбца матрицы Со сверху вниз и через i* (& — 1, 2, ..., Г/) обозначим номер строки, со- держащей k-й нуль /-го столбца. Тогда элементы /-го столбца опреде- ляются в соответствии с формулой О,.если i ф ik.-, min аг- — S bj—% djесли i = ikj, (. (.1=1 Ц=1 ) k = 1, 2, . . . , Г j. (3.21) Если для матрицы Хо суммарная невязка т п т п л«-2<., + £6,—2£^л1?'-о, 1=1 j—1 '-=! /=1 то Хо — оптимальный план Т^-задачи. Если же До > 0, то переходят к первой итерации. Каждая итерация алгоритма в общем случае включает три этапа: начинается первым этапом, затем несколько раз могут повторяться первый и третий этапы, а заканчивается итерация вторым этапом, либо установлением неразрешимости данной задачи. (/г + 1)-я итерация. Предположим, что уже осуществлено k ите- раций алгоритма, в результате которых получены матрицы Xfe и Ск. т п т п Пусть = У а(- + У bj — 2 У У >0 и еще не установлена г=1 /=1 <=i /=1 неразрешимость Тй-задачи. Целью (k + 1)-й итерации является построение матрицы XA+i и проверка ее на оптимальность или на установление неразрешимости Т^-задачи. Перед началом итерации знаком «+» выделяют те столбцы матрицы Ck, для которых невязки т в/ = 4’ = о- 1—1 Первый этап. Выбирают произвольный невыделенный Х/г- неполный'1 нуль матрицы Cfc. Если это элемент то . вычисляют не- вязку строки, его содержащей б/г) = at — У Хц>.. Ц=1 Тогда возможен один из двух случаев: б(*> = 0; б1/’ > 0. В первом случае знаком «+» выделяют i-ю строку матрицы Ск, а эле- мент отмечают штрихом. Если на пересечении р-го выделенного столбца и i-й строки матрицы С/г расположен Хк-сущес.твенный нуль матрицы Ск, то знак выделения этого столбца уничтожают, а элемент 172
W = 0 отмечают звездочкой. Далее просматривают столбец ц, оты- скивают в нем невыделенный Л^-неполный нуль (нули), который от- мечают штрихом. За конечное число шагов процесс выделения Xk-ne- полных нулей матрицы Ck заканчивается одним из следующих трех исходов: 1. Найден ^-неполный нуль в строке i, где > 0, тогда пере- ходим ко второму этапу, отметив этот нуль штрихом. 2. Все Х&-неполные нули выделены (для каждого из них $А> — 0), а среди невыделенных элементов матрицы Ck имеются либо положи- тельные, либо среди дважды выделенных элементов Cfe (т. е. элементы, расположенные на пересечении выделенных строк и столбцов) отри- цательные элементы. В этом случае переходим к третьему этапу. 3. Все X^-неполные нули выделены (для каждого из них = 0), все невыделенные элементы Ck — отрицательны, а дважды выделен- ные — положительны. Это означает неразрешимость Т^-задачи. Во втором случае, отметив невыделенный неполный нуль (с^‘ — = 0) знаком штрих, сразу переходим ко второму этапу. Второй этап состоит в построении цепочки из нулей матри- цы Ck, отмеченных штрихами и звездочками. С помощью этой цепочки осуществляют переход от к X/?+.i. Итак, пусть первый этап за- вершился таким образом (первый исход), что для некоторого невыде- ленного Х/г-неполного нуля, расположенного, например, на пересе- чении строки A.J и столбца ц1; невязка 6^ > 0. Этот элемент принима- ют за начало цепочки из отмеченных нулей матрицы Cfe. Цепочку строят так. В столбце Цл матрицы Cfe выбирают СЦщ, а в строке выбирают Ол,гц1и и т. д. Процесс построения цепочки, складывающийся звез- стро- из последовательных переходов от нуля со штрихом к нулю дочкой по столбцу и от нуля со звездочкой к нулю со штрихом ке, всегда начинается и заканчивается на нуле со штрихом. Пусть в результате образована цепочка вида 0л.1|ы1 0x2(tj Ол,2ц2 • • • 0\us_( 0,А. Элементы х^+1) матрицы муле со по X/f+i вычисляют по рекуррентной (3.22) фор- если 4+1) хр} + 0/г, если если 4? Cl? не входит в цепочку; — нечетный элемент цепочки; — четный элемент цепочки. (3.23) Параметр Qk определяют из соотношения 0ft = min{0fe, 01; (3.24) где 0/, = min {лЖХ-i) минимальный четный элемент цепочки; Qk = min [d-к^ — — минимальный резерв до насыщения для 1 S 173
п нечетных элементов цепочки^=аХ1— У 4*/ —невязка строки, откуда /=1 т начинается цепочка; 8g’s= b^s — У x^s — невязка столбца, где цепочка заканчивается. т п Если суммарная невязка А/;+1 = S + Е bt — 2 Е Е *и+1) = °, 1=1 j—\ i j то матрица Х/г+1 является решением Т^-задачи. Если же Afe+i > 0, то переходят к следующей итерации. Третий этап. На этом этапе производят преобразование матрицы Ck в эквивалентную матрицу СЛ (Cft ~ С'к). Пусть первый этап закончился вторым исходом. Обозначим ми- нимальный элемент h = min {h', h"}, (3.25) где h’ — минимальный среди невыделенных положительных элемен- тов матрицы С^; h" — минимальный среди дважды выделенных отри- цательных элементов матрицы Cft, взятых с обратным знаком. Вычитаем h из элементов матрицы Ck, расположенных в невыделен- ных строках, и прибавляем его к элементам Cfe, расположенным в вы- деленных столбцах. Получают матрицу С’к. Если дважды выделенный отрицательный элемент Ск становится нулем Сь то знак выделения над столбцом уничтожают, а сам элемент отмечают звездочкой. Осталь- ные знаки выделения, а также все отметки нулей переносят из матри- цы Ск в матрицу С;г. Далее снова переходят к первому этапу, заменив Cfe на С*. Если первый этап снова завершится вторым исходом, то опять возвращают- ся к третьему этапу. Циклы, состоящие из первого и третьего этапов, проводят до тех пор, пока последний из них не закончится первым или третьим исходом. При первом исходе переходят ко второму этапу, которым заканчивают итерацию, а при третьем исходе делают‘вывод о неразрешимости Т^-задачи из-за несовместимости ее условий. Пример 3.6. Решить венгерским методом ТДзадачу со следующими условиями: 1 4 2 1 3 2 5 1 3 аг а2 й3 bv Ьг Ь.л Р2" = [6; 3; 3; 4; 2; 4; 2]; 1 2 1 112 — матрица пропускных способностей коммуникаций. 1 1 1 Предварительный этап. Составляем матрицу Со! с = 14 2 5 2-141 3 2 13 ->С' = 0 3 14 10 3 0 2 10 2 = С' =с0 174
Затем строим матрицу Хо с учетом матрицы D: ai 5/ о о 1 о О 1 3 О О о 2 О Хо = 6 3 = min («р bt, du] = dlt_ = 3; 3 О = min {а2, b2, d22] = d22 ~ 1; 4/ 4 2 4 2 jr24 = min(o2—х$, b2, d2i} = d,, =2. 6/1130 Будем отмечать одной точкой сверху Х^-неполные нули матриц С^, а двумя точками — Х/г-полные нули этих матриц. Строки матрицы Cg, которым отвечают ненулевые невязки, отмечаем знаком «X»- Первая итерация. А, = 8. Первый этап. Знаком «+» выделяем четвертый столбец. Так как матрица Со не содержит ни одного Х0-неполного невыделенного нуля, то сразу переходим к третьему этапу. Затем снова переходим к первому этапу, отыскиваем Х0-неполный невыделенный нуль сЩ и отметив его штрихом, переходим ко второму этапу. Цепоч- ка, построенная на втором этапе, состоит из одного элемента Поэтому х(^2 ~ = х(0)+91=1. Вторая итерация + — 1 2 б!' 0—1 2 1 б' —1 3 0 2 0 ‘0102 0 110 б,Т“ 0 1 0 1 0 1 03 = 2 Д2 = 4. 175
Третья итерация — 1 2 б С2 = О 1 1 б 2 — 1 Х2 = 6/ 4 б* 2 3 О О' О 1 1 О 2 О 1 о 2 О • Й=1 1 О 1 б> = ->Ха 3 О 1 1 о б/ о состоит из — 2 б бф О 1 1 о 2 — 1 3 2 О 1 О 2 О о Д8 = 2. первого и третьего этапов при h = О б 1 О О 2 О — 2 1 Третья итерация вого и второго этапов, причем цепочка второго этапа содержит только один элемент J2) •’-31 • Четвертая П е р в 1, а также из пер- ы и итерация т р и е т и и этапы П е рвы й и тр етий этапы 2 3 -2 Сз” О р 2 О с3= о 2 О* -3 О' з . б* Первый Н2) С3 = б О •2 1 h =2 6 О -4 и т р ® и О 3 О О о О . о и э т а п ы П е Р в ы й этап X -3 -5 О' О " Л=1 С о о о + -5 о' В торой эта п О -5 О 2 О О 2 о о 3 2 о S; о о о о 2 О О 0j = l о о . 0 0-00 О; Поскольку . , „ Целевая функция Lmin = 3 1 + 1 4 + + 1-1= 25. суммарная невязка Д4 = О, то Х,4 —- оптимальный план. 2*2+1 - 4+ 2. 1+1 1 • 24- Обоснование венгерского метода для Т-задачи На предварительном этапе строят матрицу Хо, элементы которой удовлетворяют условиям: i = I, 2, ... , m; (3.26) 176
£ Xy ^bh i =1, 2, ... , n; (3.27) i=i О < Хц < dih (3-28) Первый этап здесь отличается от такого же этапа при ре- шении Т-задачи только тем, что выделению штрихом подлежат не все нули матрицы Cfe, а только Х^-неполные нули. Это изменение сделано для того, чтобы иметь возможность увеличивать элементы матрицы Xfe, отвечающие нулям матрицы Сй, не нарушая условий (3.28). Второй этап. В соответствии с формулами (3.23) элементы матрицы Xft, отвечающие 0*, уменьшаются на величину Qk, а элемен- ты матрицы Xfe, отвечающие О', увеличиваются на величину 9ft, при- чем 0fe не превосходит по величине наименьшего из уменьшаемых (/г) элементов и минимального уклонения увеличиваемых элементов xq от соответствующих значений d{). Следовательно, если элементы матрицы Xft удовлетворяли огра- ничениям (3.28), то и элементы матрицы Хй+/ также будут удовле- творять этим ограничениям. Если цепочка начинается на элементе и заканчивается на элементе О^ ц,, то справедливы следующие соотношения: , II +•-, Ху, если i X + еъ / t А/j, (3.29) если i = т к 11 i если / P's’ г=1 X(q + если / = Ps- Учитывая неравенство f)k < min {6х„ бц?}, получают, что если матрица Xte удовлетворяет условиям (3.26), (3.27), то и матрица Х*+| также удовлетворяет этим условиям. На основании соотношений (3.29) т п Aft+1 = £ + £ Ь, - 2 £ £ х!)+11 = \k - 20fe. (3.30) i=l /==1 . i i Третий этап. В соответствии с правилом перехода от Cfe к Ci дважды выделенные элементы матрицы С,; увеличиваются на h > 0; невыделенные элементы матрицы уменьшаются на h, а все остальные элементы этой матрицы сохраняют прежние значения, причем С* ~ Cfe. Покажем, что ( если су+1) > 0, то Хц+1> — 0; < ' (3.31) ( если Су+1) < 0, то Ху+1> = dq. 12 8-3164 177
При k = 1 утверждение (3.31) справедливо по правилам постро- ения Хо на предварительном этапе. Докажем это утверждение методом индукции. Предположим, что неравенства (3.31) справедливы для некоторого k и докажем, что они сохраняются и для (k + 1). Первая часть доказательства. Итак, пусть в мат- рице Сй’ элемент с^'1} > 0. Тогда, очевидно, элемент Сц] >• 0. Если Сц’ > 0, то по предположению x{tf = 0, а потому и хгу+1) = 0, так как сц не входит в цепочку. Если же с(ц = 0, то 4/Л) = + h и, следовательно, 4? на- ходится на пересечении выделенной строки и столбца. Это возможно тогда и только тогда, когда с{ц — несущественный нуль, т. е. х'ц = = 0. Таким образом, из условия 4/Л> > 0 следует = 0 — = Хц\ Вторая часть доказательства. Пусть теперь эле- мент <$’11 < 0.. Тогда по правилу определения параметра h элемент Cif < 0. Если 4/) <0, то по методу индукции х^} = dij. Если же 4/’ = 0, то этот нуль является невыделенным, так как при переходе к Ck он уменьшился. Следовательно, 4/} — полный нуль Хй, т. е. xff = di,. Таким образом, поскольку 4/Л) < 0, то ---- я . _ И ________ ui] _ Так как элементы 4/Л) < 0, то они не входят в цепочку, а потому не изменяются. Итак, утверждение (3.31) доказано. Докажем теперь, что при третьем исходе первого этапа условия задачи несовместны. Пусть E-i — множество выделенных (Е2 — множество невыде- ленных) позиций матрицы C*+i. Если X — произвольная матрица, элементы которой удовлетворяют неравенствам (3.26), (3.27), то т п t tn г п Ё X х‘! = X + X ха < Ё Ё + Ё Ё + Z-1 у=1 ((./)££, (С./Зек, ц=1 (=1 Х=1 /=1 / г + X X + X + X d4’ (3-32) (<./)ев. ц=Н X.=i где Zj, z2, ..., ir — номера выделенных строк в матрице С&+г, /ъ /2, ..., — номера выделенных столбцов в матрице C*+i. Если 4/+Ъ — дважды выделенный элемент матрицы Cfe+i, то +1) > >• 0 (условие третьего исхода). Покажем, что тогда х^ = 0. Для случая 4/+Ъ > 0 это уже доказано, а для случая сц+1} — 0 выражение xffl = 0 следует из правила выделения строк первого этапа. Итак, дважды выделенному элементу матрицы Cfe+i отвечает xff — = 0. 178
Следовательно, t т г п t г S S 4 + S S = S ч + s (3.33) ц=1 i=l Х=1 /=1 |Л=1 Х==1 Если с;/+1> — невыделенный элемент матрицы Cj.+1, то с^+1> < О (условие третьего исхода). Методом индукции доказано, что при С;|+1> < 0 Ху+1> = Если су+1) <0 и элемент р — не выделен, то это полный нуль» т. е. х^ = dij. Следовательно, S <= S d£l. (3.34) и>г>ев, алев, Соотношения (3.32) — (3.34) приводят к неравенству т п ,1* т П ihx S S хи < S < + S 4 = S S < (3-35) (=1 /=1 ((,/)££, (I'-DQE, 1=1 /=1 По условию V=1 i j * и в соответствии с неравенством (3.35) S S xd < S ai' (3-36) i=i /=1 i т. е. ни при каком плане X условия (3.36) не переходят в равенства. Здесь X = II хц || — любая матрица, удовлетворяющая условиям (3.26)—(3.28). Неравенство (3.36) указывает на несовместность условий ^-зада- чи, так как для любого плана X в выражении (3.36) должно быть строгое равенство. § 4. ТРАНСПОРТНЫЕ СЕТИ Основные понятия и определения Выше нами рассматривались транспортные задачи, в которых пред- полагалось, что имеются отдельно пункты производства и потребле- ния, причем перевозки от пунктов потребления к пунктам производ- ства невозможны. Графически такая задача представлена на рис. 3.7. Между тем, в большинстве практических задач имеются пункты, которые одновременно являются пунктами ввоза и вывоза продукта. Пример такой задачи приведен на рис. 3.8. Следовательно, возникает необходимость расширить введенные в § 1 основные понятия Т-задачи на такой, более общий случай. Такое обобщение приводит к понятию транспортной сети (Т-сети). 12* 179
Пусть Р — произвольное конечное множество пунктов pt, К — совокупность некоторых упорядоченных пар ky ~ (pit Pj), где р{, р> £ QP. Набор двух множеств Р и К будем называть транспортной сетью (Р, К) и говорить, что она задается или порождается множествами множества К — коммуникациями сети. связывает рг и р/, причем она начинается в р( и заканчивается в р,. Произвольная Т-сеть может быть задана графически (рис. 3.8). Направление коммуникации отмечается стрелкой. Т-сеть может задаваться с помощью матриц. Допустим, что сеть (Р, К) содержит N пунктов. Рассмотрим квадратную матрицу A[NxN\ элементы которой вычисляются по правилу: (1, если ki: Р К, а(1 = { (0, в противном случае. Матрица А однозначно определяет породившую ее сеть. Рассмотрим последовательность коммуникаций Ч/и ki2j2, • • • , ktsjs некоторой Т-сети. Если каждая пара коммуникаций стоящих рядом, имеет один общий пункт, а остальные пары коммуникаций не содер- жат общих пунктов, то такая последовательность коммуникаций на- зывается маршрутом. Если р,., = pj , то маршрут является замкнутым (рис. 3.9). Если в любом пункте маршрута /, не являющемся крайним, одна коммуни- кация начинается, а другая заканчивается, то маршрут называется направленным. Т-сеть называется связной, если любая пара ее пунктов может быть связана с помощью некоторого маршрута этой сети. Функции на сети Введем ряд функций, определенных на Т-сети. I Вводится функция производства — потребления q (р{), которая задается на множестве Р всех пунктов сети (Р, К). Если qt — q (Pt) > > 0, то пункт pt называется пунктом производства, если q (р{) <6. О, 580
то pi — пункт потребления, если q (р^ = 0, то р( — перевалочный пункт. 2. Вводится функция пропускных способностей d(kij) 0 для всех ktj £ Е; величина d (kij) называется пропускной способностью коммуникации k{!. Если сеть (Р, К) не содержит коммуникацию k^, то можно условно считать, что k^ £ К, но d^ = d (А^ц) = 0. 3. Рассмотрим сеть (Р, К) на множестве коммуникаций которой определена функция d (k^). Выделим два пункта сети рх и рм и назовем рх источником, a pN — стоком. Пусть E'i — множество коммуникаций, исходящих из pit a Ei — множество коммуникаций, входящих в р{. Введем следующее опре- деление. Функция Ху = х (kij), для которой имеют место соотношения: x(k^ — J] x(kj^ = Q для всех z =#= 1, N, (4.1) kl j&Ei kjiCEi == Szx(^l/)— 0 < x(kii) < d(kij) (4.2) *1/6£1 */х6И называется потоком на сети, направленным из рх в рм. Сложив (4.1), (4.2) и равенство (4.3) XN = S r Х (kNj) — S „ X (kjN), (4.3) kNjGEN kjN^Ei получим Xi + *№= X (kij) — J] X (kjt)\ (4.4) C=l \>Hj€El kjEEl ) Так как любая коммуникация исходит из одного пункта и заканчи- вается в другом, то все х (kij) дважды встречаются в правой части (4.4), один раз со знаком +, а другой раз со знаком —, и потому Xi + xN = 0. (4-5) Величина хг = —xn называется величиной потока на сети. Представим себе, что сеть (Р, К) является сетью каналов с един- ственным источником рг, стоком рм, и канал kij способен пропускать не более dij единиц жидкости в единицу времени. Тогда х (kij) — скорость протекания жидкости (газа) по ком- муникации kij, Xi — скорость притока, Хм — скорость отвода жид- кости. Условие Xi = —xn представляет собой условие стационарности потока. Введенная функция х (kij), kij £ К, очевидно, неотрицательна, и носит название арифметического потока. При выяснении различных свойств потока иногда необходимо от- казаться от свойства неотрицательности, для чего вводится понятие алгебраического потока. 181
Рассмотрим два пункта рг- и р/, положим для них величину х' (kq) равной х' (kij) = X (kt j) — X (kji). (4.6) Если kt, С К, kjt £ К, то х (kij) = О, х (kjt) > 0 и х' (kij) < 0. Расширим множество К, введя в него те коммуникации kij, для которых ktj £ К, для чего положим d (kij) = 0, обозначим его через К1. Тогда х' (kij) — — х' (kjt) (4.7) И х' (kij) < d (kij). (4.8) Учитывая (4.6), (4.7) и (4.8), условия 4.1, 4.2 и 4.4 можно записать в виде [О, если i^=l, N, У х' (kij) = • Xi>0, при i = 1, (4.9) k‘!eE‘ [хм = — Xt, при i — N, причем Et = E’i U Ei. Функция x' (kij), определенная на множестве К' и удовлетворяю- щая (4.6)—(4.8) и (4.9), называется алгебраическим потоком. Допустим, что на множестве Р пунктов сети заданы q (pj), а на множестве К' определены d (kij). Функция х' (kij), определенная на К', для которой справедливы соотношения S х' (ka) = q(pi), (4.10) Х' (k^ (kij), (4.11) называется планом перевозок, совместимым с функциями q (pt) и d (kij). Складывая соотношения (4.9) по I и учитывая, что каждая перевоз- ка х (kij) встречается дважды в левой части, получим N N £ / S X (ka) — X (kjt)) S Я (Pi) = 0. (4.12) (=1 kjiCE- УZ=1 Равенство (4.12) представляет собой условие баланса для сети и означает, что суммарный объем производства всех пунктов сети ра- вен суммарному потреблению этих же пунктов. (Сравните с анало- гичным условием баланса для обычной Т-задачи). Некоторые задачи на сетях Задача о кратчайшем пути. Пусть задана Т-сеть, состоящая из ро, ръ ..., pn+i и коммуникаций {ky}. Обозначим длину коммуникации ktj через с (kij) — Су. Если рг и р, не соединены, то полагаем Су = оо. Из всех возможных путей, соединяющих р0 и p„+i, требуется найти •путь наименьшей длины. Аналитически задача записывается следующим образом. 182 I
Поставим в соответствие каждой паре пунктов р£ и р,- переменную х _ Г 1> есяи используется в искомом пути, “ 10, в противном случае. Тогда требуется найти такие числа 0 < < 1, для которых линейная форма /г—{-1 п^-1 Е Е Ciix‘i = min> (4.13) ^=0 Г=0 при условии «+1 л-Н Е x‘i ~ Е ХИ = °> i = 1, 2, ... , /г; (4.14) /=о /=о ZZ-J-l ZI-J-1 Е —Е ^'о= 1; (4.15) ;=0 /=0 «4-1 «4-1 Е Хп+^~ 2 хм+] =—1, (4.16) /=0 /=0 где 0 < Хц- < 1 (г, / = 0, 1, ... , я + 1). Условие (4.14) означает, что для любого р£, не являющегося на- чальным или конечным пунктом, число исходящих коммуникаций равно числу входящих. Поскольку все с£/ > 0, для минимизации (4.13) необходимо, чтобы из каждого р£ выходило не более одной коммуни- кации. Условие (4.15) означает, что число коммуникаций, исходящих из ро, на 1 больше числа входящих. С учетом условия минимизации это значит, что из р0 исходит 1 коммуникация. Аналогично (4.16) означает, что в конечный пункт входит только одна коммуникация. Алгоритм решения задачи о кратчайшем пути находит довольно широкое применение в системах СПУ при отыскании критического пу- ти. Поскольку идея алгоритма основана на методе динамического программирования, решение данной задачи будет рассмотрено в гла- ве 6 при изложении основ динамического программирования. Задача о максимальном потоке. Пусть задана произвольная Т-сеть (Р, К) и функция пропускных способностей d (kij) >> 0, определенная на множестве К. Перенумеруем пункты {/4 так, чтобы источник был обозначен через plt а сток — через р#. Рассмотрим всевозможные потоки, совместимые с d (kij). Задача состоит в отыскании такого потока X* = || х (kij) ||, при котором xi = = max. Эта задача носит название задачи о максимальном потоке. Приведем дополнительно несколько простых, но полезных свойств потоков на сетях. Обозначим Е х (ka) =л (р, Р). Откуда величина хг= х (р1( Р) = —х (рн, Р). 183
Если Pl С р, ТО поскольку X (kij) = —X (kji), X {Pl, Р) — 0. Допустим, что множество Р разбито на 2 части : Р = Pf J Р", причем рг £ Р', pn е р" Тогда имеет место следующая цепочка равенств: Xi = х (pi, Р) = S х (pt, Р) = х (Р', Р) = PiGP' = Х(Р', Р') + х(Р', Р") = Х(Р', Р”). . (4.17) о Итак, при любом разбиении Р на Р' и Р" и произвольном потоке X = X (kij) справедливо соотношение Xi = X(pi, Р) = х(Р', Р"), (4.18) где Pi^P', Pn^P", (4.19) т. е. поток через сеть инвариантен к способу разбиения, лишь бы при этом выполнялось условие (4.19). Назовем множество Г коммуникаций, исходящих из Р' и закан- чивающихся в Р", разрезом Т-сети с источником рг и стоком pN. Тогда под пропускной способностью разреза d (Г) будем понимать суммарную пропускную способность всех коммуникаций, составляю- щих разрез Г: d(T)== '^id(k(j). (4.20) Пусть х (ktj), kp б К' — любой поток сети (Р, К), совместимый cd (ktj), а Г — произвольный разрез сети. Тогда имеет место неравен- ство хх < d (Г). Действительно, Xi = x(P', Р”) = J] х(М< S d(kij)=d(r). (4.21) fez/бГ ftl7gr Из (4.21) следует признак оптимальности потока: Если величина потока х* оказывается равной пропускной способности некоторого разреза Г, то xj — максимальный поток. Назовем разрез Г* сети (Р, К) минимальным, если d (Г*) < d (Г) для всех разрезов Г. Справедлива следующая теорема Форда — Фалкерсона [44]. Если существует максимальный поток на сети со значением Xi, то существу- ет также и минимальный разрез этой сети с пропускной способностью d (Г*), причем х* = d (Г*). Доказательство этой теоремы будет приведено в следующем раз- деле. Алгоритм Форда—Фалкерсона Алгоритм позволяет найти максимальный поток на сети, совмес- тимый с некоторой функцией d (А7) [44, 58]. Вводим следующие определения. Пусть X — х (kij), ktj а К — произвольный алгебраический поток с 184
функцией d (kij) = d^. Коммуникация fez/ £ К' называется насыщенной, если х (kij) = dij, если же х (kij) < dp, то она называется ненасыщен- ной. Алгоритм Форда состоит из однотипных итераций, на каждой из которых либо устанавливается максимальность имеющегося потока, Либо СТРОИТСЯ НОВЫЙ ПОТОК С ВеЛИЧИНОЙ Xj (г + 1) > хг (г). Каждая итерация заключается в последовательном построении некоторого множества отмеченных пунктов сети. Прежде всего отмечаем рг. В процессе проведения итерации в мно- жество отмеченных пунктов включаются все новые пункты. Назовем совокупность операций, в результате которых число отмеченных пунктов увеличивается на 1 либо фиксируется, что мно- жество отмеченных пунктов полностью определено, отдельным шагом итерации. Допустим, что проделано t шагов, в результате которых получено множество Pt отмеченных пунктов сети. Очередной (t + 1)-й шаг состоит в упорядоченном просмотре пунктов множества Pt и отыскании такого отмеченного рк, из которого выходит ненасыщенная коммуни- кация, которая заканчивается на некотором неотмеченном пункте. Если такой пункт рк находится, то неотмеченный пункт pv„ явля- ющийся концом ненасыщенной коммуникации k^, отмечается числом А и (t + 1)-й шаг заканчивается. При этом возможен один из двух случаев: а) р(1 не является стоком pn, б) Рц является стоком ры. В случае а) переходим к следующему шагу итерации, положив Л+1 = {Pt, рД. Может оказаться, что, просмотрев все пункты Pt, мы не найдем такого Рц, который связан ненасыщенной коммуникацией с неко- торым Рц £ (Р\ Pt). Назовем эту возможность случаем в). Случай в) означает, что Pt — полное множество отмеченных пунктов. Итак, каждый шаг итерации заканчивается одним из случаев а), б) или в). В случае а) продолжаем итерацию, а в случае б) и в) фиксируем построение полного множества отмеченных пунктов, которое обозна- чим через Р'. Поэтому через конечное число шагов итерации мы при- ходим к случаю б) или в). Рассмотрим каждый из этих случаев отдельно. Случай б). Он означает, что построено множество Р', которое со- держит сток p/у. Покажем, что это дает возможность построить поток X (г -f- 1), величина которого больше величины X (г). Образуем последовательность (р[(Х) пунктов множества Р по еле- дующему правилу. Положим рг, = pN. Если пункты р;,, рг2, ..., pis_j уже найдены, то индекс is, определяющий s-й пункт, положим равным числу, 185
с помощью которого был отмечен пункт pis_r Формирование последо- вательности проводим до тех пор, пока не приходим к рг. В результате получим следующий маршрут из рм в рр PN = PP, pis, , Л-5_.р P;S = P1- По правилу образования Р' (множества отмеченных пунктов) — ненасыщенные коммуникации при 1 < X < s — 1,. По- ложим (4.22) Тогда новый поток X (г + 1) определяется соотношением Xq + 0, если k(j = kiK+l,iK (1 < X < s— 1), (г) Хе/ — в противном случае. (4.23) Очевидно, что в силу'(4.22) новый поток X (r-f-1) также удовлетворя- ет ограничениям вида х (kij) < dp. При этом хГ4-0 = x{i} + 0, т. к. среди всех компонент х (kij) потока X (г+1) изменилась лишь одна х fesIs_j), увеличившись на 0. Случай в). Он имеет место, когда построенное множество не содер- жит сток pN, и, кроме того, оно не может быть расширено. Покажем, что это свидетельствует о максимальности потока, т. е. = Xlmax* Пусть Р" множество неотмеченных пунктов. Очевидно, Р' и Р" не имеют общих пунктов и, кроме того, Р' (J Р" = Р, рг g Р', а рм £ С Р". Поэтому множество Г коммуникаций, идущих от Р' к Р", есть раз- рез сети (Р, К.'). Если kij £ Г, то х (kij) = dij, (4.24) т. к. в противном случае можно было бы присоединить pj к множе- ству Pt. Учитывая (4.20) и (4.24), получим d (Г) = S d (kif) = £ х (k4) = х (Р', Р") = х15 (4.25) кц<гг kijPV откуда на основе признака оптимальности потока заключаем, что Xi = Ximax- Теперь можно доказать теорему Форда — Фалкерсона о максималь- ном потоке. Пусть Г* — разрез, который определяется множествами Р’ и Р", построенными на последней итерации, которая закончилась случаем в), a Xj — соответствующий максимальный поток. Тогда согласно (4.25) получим Xj = Xjmax ~ б/(Г*). Но, с другой стороны, для любого разреза сети Г справедливо соот- ношение (4.21) Xj < d (Г). 186
Используя это неравенство, приходим к соотношению: d(r*)^d(F) для всех разрезов в сети Г. (4.26) Таким образом, разрез Г* — минимален. Отметим, что задача нахождения минимального разреза двойственна задаче о максимальном потоке, а теорема Форда — Фалкерсона явля- ется аналогом соответствующей теоремы двойственности для транс- портной сети. Для удобства алгоритм Форда — Фалкерсона разбивается на 2 части: (вспомогательную) предварительную и основную. Такое разбиение сделано для того, чтобы в случае существования потоков, совместимых с функцией D и имеющих неограниченные зна- чения (тогда 0 = оо), неограниченность потока можно было бы уста- новить за конечное число итераций. Первая итерация проводится, отправляясь от нулевого потока. Каждая последующая итерация проводится, исходя из потока, построенного на предыдущей итерации. Сначала следуют итерации предварительной части. Перед началом каждой из них из сети удаляются насыщенные коммуникации. Итера- ции предварительной части проводятся до тех пор, пока одна из них не завершится исходом в) или исходом с) (т. е. когда 0 = оо). При исходе с) задача решения не имеет. При исходе в) необходимо перейти к основной части, перед началом которой восстанавливают все коммуникации, выброшенные на предыдущих итерациях. На протяжении всех итераций основной части алгоритма множество коммуникаций остается неизменным. (В случае, когда существование максимального потока гарантировано заранее, необходимость в раз- делении алгоритма на предварительную и основную части отпадает.) Способы усовершенствования вычислительной схемы алгоритма. 1. Порядок просмотра отмеченных пунктов играет определенную роль для повышения эффективности алгоритма. Можно предложить следующие варианты просмотра: а) каждому вновь отмеченному пункту присваивается номер, на 1 больше номера последнего просмотренного пункта; б) просматривать множество неотмеченных пунктов, пока не об- наружится некоторый неотмеченный пункт, связанный ненасыщенной коммуникацией с одним из отмеченных пунктов. Тогда он включается в состав отмеченных. 2. Иногда целесообразно строить маршрут, двигаясь от pN к р{. Тогда во множество Р' включаются последовательно пункты, из ко- торых исходит хотя бы одна коммуникация, заканчивающаяся в одном из уже отмеченных пунктов. 3. Наконец, можно отыскивать маршрут из pt в ры, состоящий из ненасыщенных коммуникаций, двигаясь из pt и рм навстречу одно- временно. При этом строится 2 множества Р' и Р" отмеченных пунк- тов, из которых одно содержит ри а второе р^. Как только обнаружен пункт, подлежащий включению в оба множества, искомый маршрут найден, и поток можно улучшить. Если же такой пункт найти нельзя, 187
а отмеченные множества нельзя больше расширить — то это свиде- тельствует об оптимальности потока. 4. После нахождения некоторого ненасыщенного маршрута нахо- дится величина 0, которую назовем степенью ненасыщенности марш- рута. В общем случае pi и pN могут быть связаны многими ненасы- щенными маршрутами. Поэтому разумно организовать такой процесс формирования ненасыщенного маршрута, который дает максимально возможное значение 0тах- Для этого достаточно лишь некоторое незначительное изменение алгоритма, состоящее в следующем. Каждый отмеченный пункт р(- (кроме р^ снабжается дополнитель- ным индексом 0;, который равен максимальной степени ненасыщен- ности маршрута, ведущего из pi в р{. Индекс 0г- вычисляется одновре- менно с присоединением pt к Pt. Это делается так. На каждом шаге итерации просматриваем все неотмеченные пунк- ты и среди них выбираем те, в которых заканчивается одна из ненасы- щенных коммуникаций. Для каждого такого р, вычисляется 6Z = шах {min (0Х; du — хи\\, 'к где максимум берется по всем из отмеченных пунктов р%, из которых выходят ненасыщенные коммуникации, заканчивающиеся в pt. Далее среди всех 6г- выбирается такой Г, для которого = шах {6г}. I Тогда пункт pt- включается в число отмеченных, причем Qf = Если шах {Ь(} достигается на нескольких индексах I, то отмеча- ются все соответствующие пункты, причем каждому из них приписыва- ется число, равное max 6Z. Маршрут, построенный таким образом, имеет максимальную сте- пень ненасыщенности, что позволяет снизить общее число итераций по определению максимального потока. Пример 3.7. Найти максимальный поток в сети, заданной на рис. 3.10. Первая итерация. Исходным является. 0-поток. В множество отмеченных пунктов включаются: plt р2 (1), р5 (2), ра. Здесь используем такой порядок просмотра, когда вновь отмеченный пункт по- лучает минимальный свободный порядковый номер (т. е. просматривается в первую очередь). 188
Итерация заканчивается исходом б). Переходим к потоку X (1), полагая: х12 = х25 = хб8 ~ m*n (3> 2> 6) = 2- Выбрасываем из К насыщенную коммуникацию k№. Вторая итерация. Множество Р'= (Pi> Ра (1), Рв(2), р8 (6)}. Переходим к потоку X (2), изменяя X (1) 0 = min {3, 2, 1, 2}= 1, %(i2 = xii +9 =2 +1 =3; х2в = ^8 = 1- Выбрасываем насыщенные коммуникации й12 и /г.м. Третья итерация Р' ~ {pt, р3, р6, р8}, 63 = min {d13, d36, des — x<§) = min (4, 2, 1) = 1. Тогда x% = xfe = 1, = Xg8 + 0 = 14-9=2, выбрасываем k№. Четвертая итерация P' — (р4, p9*, pS?\ p(g7)}. Поток =14-9; X37 = x^l = 6, где 9 — min {3, 2, 5} = 2, выбрасываем /г37. Пятая итерация Р' {р4, р4 (1), р5 (4), р8 (5)}. Снова имеет место случай б) и переходим к Х(5). 0 = min {5, 2, 4} = 2; х® = х® = 0; 41 = 24-0 = 5. Коммуникация fe4S также исключается из К. Шестая итерация. Строим множество отмеченных пунктов Р'. Последовательно отмечаем р4; р3 (1); р0 (3); р4 (1). Дальнейшее расширение множества отмеченных пунктов невозможно. Итерация заканчивается исходом в) (см. рис. 3.11). Переходим к основной части алгоритма, восстановив все удаленные коммуника- ции, при этом у насыщенных коммуникаций изменяем направление стрелок на про- тивоположное, так как поток по ним может только уменьшаться, а двойными стрелка- ми отметим ненасыщенные коммуникации с ненулевым потоком. Соответствую- щая Т-сеть приведена на рис. 3.12. Седьмая итерация. На рис. 3.12 приведена Т-сеть (Р, где №6) —мно- жество ненасыщенных коммуникаций kij f К' Построим множество отмеченных пунктов Р'. Р’ = {рг, Ps (1), Рв< Рз> Pi. Ps}- Имеет место исход б). Маршрут состоит из ненасыщенных коммуникаций /г|3, &36> ^62> ^27’ &78# , Поток Х(7) определяется следующими формулами: 0 = Ш1П [dj.f -"Нз. ^36 -Л'Зв> ^27 --"^27. ^"18 Х7в} === ПИП ( 1 , 1 , 1, lj 3} 1, = 34-0 = 4; 4е ~ 2> х2в = 9; х27 = 1; х78 = 2 9 = 3. 189
Восьмая итерация. Строим множество отмеченных пунктов P'—{Pi, Р^ pe, Ps}. Четвертый шаг заканчивается случаем в) (см. описание алгоритма). Дальнейшее продолжение процесса невозможно. Следовательно, х,(7) —макси- мальный поток: х,(7) = xlmax = 9.7 Минимальный разрез Г* сети состоит из коммуникаций (рис. 3.13) ^12 > &45> > ^62> &37- Очевидно, d (Г*) = d12 -J- d45 -|- deg + de2 4- d3, = 3 -}- 2 -f- 2 4- 0 -f- 2 — 9 = xlmax. § 5. ТРАНСПОРТНАЯ ЗАДАЧА В СЕТЕВОЙ ПОСТАНОВКЕ Рис. 3.14. Постановка задачи Пусть задана произвольная транспортная сеть (Р, К.). На мно- жестве Р пунктов сети определена функция производства и потребле- ния q (р(); на множестве К заданы функция d (ky) пропускных способ- ностей коммуникаций сети и функция транспортных издержек с (кц) 0. Рассмотрим транспортную задачу на сети, которая является обобщением обыч- ной Т-задачи. Транспортная задача на сети (Р, К) с функциями Q = II 7 (pz) ||, D = || d (kij) || и С = || с (kij) || может быть задана на ~~ множестве как арифметических, так и алгебраических планов. Напомним, что функция Х= )| х (й(7) ||, удовлетворяющая условиям X (pi, Р) = S X (kij) = q (Pi), 1=1, 2, N, kijQEi (5.1) ;-)<d(Az;-) k^K', х (k4) = — х (ku), (5.2) (5.3) называется алгебраическим планом, совместимым в функциями Q, D и С. Множество К' получается из К добавлением таких коммуникаций ki/ $ К., что kjt £ Д'. При этом полагаем х (kCi) = d (кц) = 0, если кц £ К- Образуем с помощью функции с {kCf) систему функций q>7 (xz/), определяющих стоимость перевозки Хц по коммуникации k^: m (r ч _ fcl7-xz/, если xz/>0; Ф«/ \хч) — < I — СцХ1}, если xti < 0. Функция <Pij (xii) в общем случае кусочно-линейная с одним изломом (рис. 3.14). Транспортная задача на сети (Р, К) с функциями потребления Q = Ц7 (pz)||, пропускных способностей транспортных издержек С состоит в построении такого плана пере- возок X = || х (kij) |, кц £ К.1, удовлетворяющего условиям (5.1) — выпуклая вниз производства — D = ||d(MII и 190
(5.3), для которого суммарные транспортные расходы Ф (X) = -^ ф‘7 (-М (5.4) kijf-K’ достигают минимума. Задача (5.4) не является задачей ЛП из-за нелинейности функций Ф (X), но может быть легко приведена к линейной. Для этого доста- точно перейти от алгебраических планов к арифметическим, и целевая функция становится линейной. Транспортная задача на сеть (Р, К) с функциями Q, D и С в терминах арифметических планов состоит в минимизации целевой функции Z. (X) — С(/Х {kij), (5.5) kijQK при условиях x{pl,P) — х{Р, pt)=q(Pi), i—1, 2, ... , N, (5-6) 0 < x (ka) < d (kij), ktfcK. (5-7> Если X = || x {ktj) [|, kij £ К — арифметический план, то У = у {кц) = = х {ktj) — х {kji), ktj Q К' — алгебраический план. Аналогичным образом каждому алгебраическому плану У = \]у (ktj)\\ отвечает ариф- метический план X = х (k. л = при у {ktj) > О, 4 (О, при y{ktj)<ZO. Легко проверить, что значения функций (5.4) и (5.5) на соответ- ствующих друг другу алгебраическом У и арифметическом X планах равны, если х {ktj) • х {kj]) = 0 для ktj g К. Поэтому задачи (5.1)— (5.3) и (5.5)—(5.7) эквивалентны. В дальнейшем для удобства транспортную задачу на сети с функ- циями Q, D и С будем обозначать Т {q, d, с). Для разрешимости задачи Т {q, d, с) необходимо и достаточно, чтобы существовал по крайней мере один план, удовлетворяющий условиям (5.2), (5.3) или (5.6), (5.7). Необходимое условие разрешимости задачи Т {q, d, с) — это обоб- щенное условие баланса для сети ^q{Pi) — 0. V tQ.P Произвольную задачу Т (q, d, с) можно легко свести к случаю, когда q {р() = 0 для всех р[г кроме источника и стока. Для этого до- статочно: 1) ввести два новых пункта р0 и p/-j+i; 2) из р0 направить ком- муникацию во все пункты производства; 3) из каждого пункта потреб- ления направить коммуникацию в 4) доопределить d {ktj) сле- дующим образом: d {kOi) = q {pf), d {kt, N+i) = —q {pt), где pt — пункты производства, a pt — пункты потребления, 5) поло- жить c {kaj) = с {kL,N+i) = 0. Рассмотрим транспортную сеть {Р, К) в функциями Q, D и С,где Р = {Р, рй, pN+i}\ К. = {К, kOi, kt,N+i}, D и С указанные 191
продолжения функций D и С на множество К; q (Pi) = И q (М <?(РХ)>0 S q(ps), <7(Ps)<0 о, если i = 0; если i = N + 1; для 1 С i < N. (5.8) Задача Т (q, d, с) эквивалентна задаче Т (q, d, с). Действительно, каждому плану X задачи Т (q, d, с) отвечает план X задачи Т (q, d, с), для которого q (р/), если i=0, q (pj) > 0; \~q(Pi)’ если / = Л? + 1, q(Pi)<Q; (5.9) .Хц, в остальных случаях, причем оба плана связаны с одинаковыми транспортными издержками. С другой стороны, для любого плана X задачи Т (q, d, с) xoj = doi = q (pj); q (pj) > 0, Xt,N+i = dt,N+i =*—q (Pj)', q (Pt) < 0. (5.10) Следовательно, система перевозок Ху = Ху (i 0, j N + 1) составляет план задачи Т (q, d, с), причем переход от плана X к плану X не изме- няет суммарных транспортных расходов, так как Со/ = с<л+1 = 0. Критерии оптимальности плана задачи Т (q, d, с). Сформулируем критерий оптимальности плана задачи. Свяжем с пунктом pt сети (Р, К) число и(, называемое его потен- циалом. Справедлив следующий критерий оптимальности арифме- тического плана задачи Т (q, d, с). Теорема 3.6. Для оптимальности плана X — х (ky), ktj g К задачи Т (q, d, с) необходимо, и достаточно существование чисел «ь «2, ..., uN таких, что и/ — и{ = с (kij), если 0 < х (kij) < d (kij); (5.11) и/.—ui<,c(kij), если x (ktj) — 0; (5.12) «у — ul^o(kij), если (kij) — d (kij). (5.13) Сравнив условия (5.11)—(5.13) с соответствующими условиями оптимальности опорного плана Т^-задачи, убеждаемся в их полной аналогии. Поэтому справедливость теоремы 3.6 может быть доказана аналогично теореме 3.3. Сформулируем теперь аналогичный критерий оптимальности для алгебраического плана задачи Т (q, d, с). Теорема 3. 7. Для оптимальности алгебраического плана X = х (k,j) kij £ К' задачи (5.1)—(5.4) необходимо и достаточно существование чисел щ, uz, ..., Un таких, что Uj — Ui = c(kij), если 0 <Zх (ky) <Zd (kq)‘, (5.14) Uj — ul = —c(kji), если ~d(kji)<. x (kij) <ZQ; (5.15) 192
Uj — u^o {kij), еели x {ktj) — d {ktj)', (5.16) tij — ut < — о (kji), если x(kij) = —d(kji); (5.17) — o(kji) < Uj ~-u{ < a (kij), если x (k£j) == 0. (5.18) Заметим, что в условиях (5.14)—(5.18) величина в (k£j) = оо, если ki} $ К. Опорные планы транспортной сети. Понятие опорного плана, введенное ранее при изучении Т-задачи, может быть легко распростра- нено на случай сети. Определение. Арифметический план X = х (kij), k£f g А называется опорным, если нельзя составить замкнутый маршрут из коммуникаций плана, для которых 0<x(kii)<d(kij). (5-19) Для алгебраического плана Т-сети признак опорности выглядит следующим образом. Алгебраический план X = х (kij), ktj Q К' называется опорным, если невозможно составить направленный замкнутый маршрут из коммуникаций kij g К1, для которых выполняется условие x(k{l)^dl!, Q,—dj(. (5.20) Отметим, что коммуникации, удовлетворяющие (5.19) для арифмети- ческого плана и (5.20) для алгебраического, называют основными. Поэтому опорный план можно определить как план, из основных ком- муникаций которого нельзя составить замкнутый маршрут. Объединим в множество Кх основные коммуникации опорного плана X. Опорный план X называется невырожденным, если сеть (Р, Кх) связана, т. е. если любые два пункта Р могут быть соединены маршру- том, состоящим из основных коммуникаций k£j £ Кх. Заметим, что в соответствии с определением основных коммуни- каций алгебраического плана пункты pL и р/ либо вообще не связаны коммуникациями множества Кх, либо соединены двумя противопо- ложными коммуникациями множества Кх. Справедлива следующая теорема. Теорема 3.8. Множество основных коммуникаций Кх состоит ровно из (N — 1) пар противоположных коммуникаций, где N — общее число пунктов сети. Назовем пункты Т-сети, связанные хотя бы одной коммуникацией, соседними. Введем следующие обозначения: Pi — множество пунк- тов сети (Р, Кх), соседних пункту pt, Pt (i — 1, 2...) — множество пунктов сети (Р, Кх), соседних одному из пунктов множества ь Очевидно, множества Р£ (i — 1, 2...) не имеют общих пунктов, ибо в противном случае неизбежно существовал бы замкнутый маршрут из основных коммуникаций Ау £ Кх, а это противоречит признаку спорности плана X. - Отсюда, в частности, вытекает существование числа t, начиная с которого (при i > t) множества Pt не содержат ни одного пункта. 13 8—3164 193
Из связности сета (Р, Л) вытекает, что t U Pt = Р, (5.21) где P0 = Pi; P{(\Pi=0- при Поставим в соответствие каждому пункту рк (p.f £ Pt) пару про- тивоположных коммуникаций k^, из Кх, где ц — номер пункта, соседнего с p.t, т. е. р$ g Pt—1. Множество всех таких коммуникаций обозначим через Кх. Учитывая доказанное равенство (5.21), получим, что состо- ит из (N — 1) пар противоположных коммуникаций. Поэтому доказательство утверждения сводится к проверке равенства Кх = Кх (5.22) Пусть ktj — произвольная коммуникация klf £ Кх. В соответ- ствии с правилом определения всегда существует некоторый мар- шрут I, связывающий пункты pt и рр Теперь -допустим, что kti $ К,х. Но тогда коммуникации маршрута I и коммуникация tip (£ I состави- ли бы замкнутый маршрут, что противоречит спорности плана X. Остается принять, что если kp g Кх, то ktj £ Кх. А так как это справедливо для всех kih то равенство (5.22) справед- Итак, состоит из (N — 1) пар коммуникаций, причем для любого пункта ps £ Р(, существует единственный соседний пункт Рц (Рн С Pi-1). Множества Pt могут быть использованы для нахождения направ- ленного маршрута из pf в произвольный пункт р g Pt. Действительно, находим последовательно пункт рС1, соседний с р1э Рр— соседний с pit и т. д., на i-м шаге приходим к p^Pj. Марш- рут, проходящий через пункты pt = pia, pilt pia....p<s, будет ис- комым. Метод потенциалов для транспортной задачи на сети Метод потенциалов, разработанный для обычной транспортной за- дачи, естественным образом обобщается на сетевую транспортную за- дачу. Процесс решения задачи Т (д, d, с) методом потенциалов состоит из предварительного этапа и конечного числа итераций. На предва- рительном этапе строится начальный опорный план. Каждая итерация состоит из двух этапов. На первом этапе проверяется на оптимальность ранее полученный опорный план. Если он не удовлетворяет условиям оптимальности, то на втором этапе строится новый, более экономичный опорный план. Будем сначала предполагать, что опорные планы задачи Т (q, d, с) — невырожденные. Необходимые замечания относительно общего случая сделаем позднее. 194
Описание (г + 1)-й итерации. Допустим, что уже проведено г итераций и получен невырож- денный опорный план X — х (kij), ktj G К. Первый этап. Выбираем произвольный пункт множества Р, например pi, и, начиная с него, рассчитываем предварительные по- тенциалы и£ = и (р{), Pi£ Р плана X согласно соотношениям (5.14), (5.15) ПР" <5.23) I— Cji = — с (ka) при X (fei7) < О, kij G кх. Предварительные потенциалы и£ вычисляются последовательно для пунктов, принадлежащих Ро, Pit ..., и т. д. в соответствии с пра- вилом: = и (pj = 0; прих(^)>0; \—c(ksi) при x(A:J<0, где ps £ Pit a pt G Pt-\, причем pt, ps — соседние пункты сети (P, Kx). Вследствие свойств множеств Р£, на основе соотношений (5.24) можно однозначно вычислить значения и£ для всех р( £ Р. Далее для каждой неосновной коммуникации ktj G К' составляем раз- ность потенциалов tij — и£. Если выполняются условия при x (kij) — 0; при xQtii) = dtf, при x (k{j) = — с1ц, cii cii Uj — И( Cij Uj — < — Cji (5.25) то в соответствии с критерием оптимальности (теорема 3.8) план X — оптимальный. Если же хотя бы для одной неосновной коммуни- кации условие (5.25) будет нарушено, то переходим ко второму этапу. Поскольку для алгебраического плана условия (5.25) либо одновре- менно соблюдаются для пары противоположных коммуникаций и kjt, либо не соблюдаются ни для одной из них, данные условия доста- точно проверять для одной из них (fe£;- или kj{). Второй этап. Рассматриваются пары пунктов сети, для ко- торых нарушены условия (5.25). Среди них выбирается некоторая пара рк, Ри- Критерием выбора может служить, например, величина не- вязки нарушенного требования системы (5.25). Дальнейшее течение этапа зависит от того, какое из условий (5.25) будет нарушено. Рассмотрим каждый из возможных случаев. а) Пусть нарушена правая часть первого неравенства (5.25), т. е. имеет место при х(&2щ) = 0. Тогда строим направленный маршрут I из р^ и рк, используя ком- муникации кц G Кх- Эта операция может быть осуществлена путем последовательного формирования множеств Р£, начиная с До = рц., до тех пор, пока пункт рк не попадет в множество Ps при некотором s. Пусть направленный маршрут / из ц в имеет вид kfxi,, kiti2, . . . , kis__iis , kjsk- 13‘ 195
Присоединив к маршруту I коммуникацию k^, получим замкнутый маршрут у. Тогда новый план X' образуется из текущего плана X путем измене- ния составляющих потока х вдоль замкнутого маршрута согласно соотношению: (ka) = х (k{j) + X (kij) —< 0, X (kij), если кц £ у; если ka £ у; во всех остальных случаях. (5.26) Параметр 0 выбирается максимально возможным, но так, чтобы не были нарушены пропускные способности d (k^) коммуникаций и ) не изменили знака. .составляющие х (kij) Таким образом, 0 = min б (kij), kii&t (5.27) где 6(М = показать. dtj — x(kij) при ~x(kt/) что х- = X- (k{j), X (kij) > О, x (k{j) < 0, kjj k^. определяемый соотношениями также опорным планом задачи Т (q, d, с), так при при (5.28) Нетрудно (5.26)—( 5.27), будет как при этом условия (5.1)—(5.3) будут выполняться. Переход к новому плану X' приводит к изменению суммарных издержек Ф на величину ДФ. ДФ = Ф (X') - Ф (X) = S Си (xr (ku) ~ х (kijj)~ S ~Сц (X’ (kij) - x(kij)>0 x(kij)<0 kuQi k^-ei ~~ X (kij)) + Щц (x' (kKll) — X (М) = S. 5/ — S Си + щJ• (5.29) ^/)>о х(/^-)<0‘" fit Но учитывая далее соотношения (5.23) для £ I, получаем Ф (X ) Ф (X) = 0 [ X, (и/ — и{) -J- = 0 [tijl ’— z/Lt ut, — Hi, + • [_/гйбг J ka С 1‘, kn £ /; ... +uis—uis_i+u}l, — Uis + cKV.)=e[CKV.~(uVL — u}.)]. (5.30) Но по предположению — нм а параметр 0 > О, как мини- мум среди положительных чисел. Поэтому Ф (X') — Ф (X) = 0 — (и;1 — ил)] < 0. Следовательно, план X' будет более экономичным, чем предыдущий, б) Допустим, что нарушено второе условие системы (5.25): Ыц — Щц, • (k^ji) = Фьц. В этом случае план X' образуется из плана X путем увеличения на 0 (0 > 0) перевозок вдоль коммуникаций замкнутого маршрута уь 196
состоящего из и маршрута 1Г из р>, в р^. Замкнутый маршрут у5 отличается от у только направлением. План X' вычисляется по форму- лам (5.26), (5.27), (5.28), в которых замкнутый маршрут у заменен на у3. Выполнив выкладки, аналогичные (5.29), (5.30), получим, что Ф (X') — Ф (X) = 0 [(пи — мх) — сли] < О, причем X' также является опорным планом задачи. Остальные 2 возможных случая нарушения условий (5.25) сводят- ся к уже рассмотренным случаям а) и б). Действительно, пусть не соблюдается левая часть первого нера- венства, т. е. —> «ц — при х (й^ц) = 0. Но путем элементарных преобразований это соотношение сводится к виду ик — — «и > Cia при х = 0, а это случай а) для коммуникации k^. Если наконец нарушено последнее условие (5.25), т. е. «и—«х> —с^ при х (kKfl) = —ЙцХ, то, переходя к коммуникации k^, приходим к случаю б), также рассмотренному выше: Их, Иц X (^цх) “ ^рХ* Таким образом, каждая итерация, содержащая второй этап, при- водит к уменьшению целевой функции Ф. Следовательно, в предполо- жении, что опорные планы X задачи невырожденные, оптимальный план Хопт может быть получен методом потенциалов за конечное чис- ло шагов. Определение начального опорного плана Рассмотрим один из возможных способов получения исходного опорного плана задачи Т (q, d, с). Приведем задачу Т (q, d, с) к эквивалентной задаче с одним пунктом производства рй и одним пунктом потребления px+i, где q (р0) “= = У q (р) — —q (pn+i), в соответствии с правилом, указанным в Ч(Р/)>0 начале § 5 на с. 191. Далее найдем максимальный поток х1П1ах на сети (PiK) с источником р0 и стоком pN+i. Возможны 2 случая: a) Xlmax = <7 (Pi)! <7(Pz)>0 6) Xlmax < А- Я (Plb <7(Pz»0 В случае а) компоненты потока X, отвечающие коммуникациям kq g С К', составляют план X задачи Т (q, d, с). Случай б) указывает на несовместимость условий задачи. План X, к которому приходят в случае а), может оказаться неопор- ным. В таком случае осуществляется переход от плана X к опорному плану Xi путем последовательного разрушения замкнутых цепочек. Процесс построения опорного плана Xi по произвольному плану X состоит в следующем. 197
Пусть у — замкнутый маршрут в плане Хь составленный из его основных коммуникаций. Введем план X (0), который связан с планом X соотношениями: х (kih 0)'= х (kif) + 0, если k(i б у. Поскольку значения перевозок х (kp), kp g у лежат внутри ин- тервалов линейности функций <pl7 (xi7), при малых абсолютных зна- чениях параметра 0 справедливо соотношение Ф (X (0)) = Ф (X) -ф р05 где 0 = const. Если р < 0, то будем 0 увеличивать до тех пор, пока одна из перево- зок маршрута у не станет равной своему граничному значению (dt7, О или —dp). Если р > 0, необходимо уменьшить 0, придавая ему отрицатель- ные значения до тех пор, пока опять одна из перевозок маршрута у не станет равной одному из своих граничных значений. В обоих слу- чаях приходим к новому плану X', в котором отсутствует замкнутый маршрут и число основных коммуникаций меньше, а значение сум- марных транспортных издержек не больше, чем в плане X. Если план X' не является опорным, то повторяем описанный выше процесс, исходя из нового замкнутого маршрута yj. Через несколько шагов мы обязательно придем к опорному плану X', для которого Ф (X') < Ф (X). Конечность числа шагов следует из того, что на каждом из них число основных коммуникаций сокращается. При построенки начального плана Хо полезно использовать аналог метода минимального элемента, используемый при нахождении опорных планов Т-задач, а именно: при выборе маршрута от источника р0 к стоку pn+i в первую очередь следует выбирать наиболее (выгодный) экономичный маршрут с минимальными суммарными издержками. Это позволяет найти более экономичный план Хо и сократить (в сред- нем) общее число итераций. Рассмотрим случай, когда опорный план оказывается вырож- денным. В таком случае к числу основных коммуникаций Кх добав- ляются в качестве базисных коммуникации, соответствующие нулевым перевозкам kp g так, чтобы сеть (Р, Кх U Ке) стала связной и не существовало бы ни единого замкнутого маршрута. Далее, применив s-метод, описанный для вырожденных планов Т-задач, решаем задачу как невырожденную. Заметим, что если число основных коммуникаций равно т (т < < N — 1), то число дополнительно вводимых базисных коммуникаций г будет равно г = N — 1 — т. Пример 3.8. Требуется решить транспортную задачу на сети, условия которой представлены на рис. 3.15. При этом на рисунке используем следующие обозначения: на каждой коммуникации в кружке число слева обозначает ср, а справа — dp. Примем, что матрицы С и D — симметричны, т. е. ср = ср, dp = dp. Объемы производства равны q = 5; g (р2) = 4, объемы потребления равны q (pj = —3, q (р6) = —6. Пункты р3 и р4 — перевалочные и для них q (р3) = q (р4) = 0. 198
Предварительный этап. Проверяем необходимое условие разре- 6 шимости J] q (pi) = 5 •-[- 4 — 3 — 6 = 0, т. е. условие баланса выполняется. Строим i=i начальный опорный план. Так как N = 6, то число базисных элементов плана равно N — 1=5. Построим на- чальный план Хо = || X;j ||, используя подход, описанный в алгоритме нахождения мак- симального потока. Найденные величины потоков приводятся на рис. 3.16. Так как x12=xM1=0, x25=d25 = 2 и xli—dli=2, то коммуникации kti, /г(|5, и не являются базисными (основными). Все остальные коммуникации плана X0{fe13, kSll, /г4(1, /г21, /г45} являются основными, и так как сеть, составленная из этих комму- никаций, не содержит циклов и связана, то план Хо — опорный и невырожденный. Первая итерация. Первый этап. Вычисляем предварительные потенциалы, используя схему Т-сети. Примем и4 = 0. Тогда получим и3 = + с13 = 3; “в = “з + сзв = 3 + 4 = 7, «4 = «в — е4в = 7 — 3 = 4> «5 = “4 + с4а = 1°> и2 = и4 —с24 = 4 —4 = 0. Составляем разности потенциалов для всех неосновных коммуникаций и проверяем условия оптимальности п2 — = 0 < с12 = 4, х12 = 0; и 5 и2 = 10 > с25 = 2, х28 = d2g = 2; и4 Wj = 4 <C c44 = 5, x44 = = 2*, ^65 ~ = 7 10 < £56 = 2, x56 = 0. Как видим, условия нарушены для коммуникаций /г14 и ke5. Следовательно, перехо- дим ко второму этапу. Второй этап. Выбираем коммуникацию й14 (х14 = d14). Строим направленный маршрут I из р4 в р4 из основных коммуникаций. Очевидно, он равен: I = (kl3, k33, fe64}. Добавив к маршруту I коммуникацию й14, получим замкнутый маршрут у = = (Z, ft14). Находим 0j = min {х4с, das — х:ю, d13— х13; х14} = min (4, 1, 2} = 1. Вычисляем новый план Х(1> согласно соотношениям (5.26): х(1) (kie) = х (kie) — 0j = 4 — 1 = 3; x{jl = х14 — 0, = 2—• 1 = 1; x(I> (fe13) = x (ki3) + 0j = 2 4- 1 = 3; х(,)№зв)=2+1=3; (^4«) = 4 — 0i = 3, 199
Так как = </зе1, а <dii, то новому опорному плану соответствуют основные ком* муникации /г^, /г13, kiit kVt, kM. Этот план Х(1) приведен на рис. 3.17 (основные ком- муникации указаны сплошными линиями, а в скобках — величины издержек с,-/). Вторая итерация. Первый этап. Рассчитываем потенциалы, отвечающие плану Х(1\ Полагая = 0, получим и3 = 3, = гг4 4- Сц = 5; ue = и4 с4б = 5 3 = 8; «s = “4 + с4б= и; u2 = «j — с24 = 5 — 4 = 1. Проверяем условия оптимальности для всех неосновных коммуникаций: а) для /*12 и2 — «j = 1 — 0 = 1 < с12 = 4, х12 = 0} ДЛЯ /*25 ; Z/g — W2 — 10 C2g = 2 Х2В = для &gg ,**g—-zz3=8 3 = 57> £35 = 4 x38 = d3e; для fe6B: и5 —«g= 11 — 8 = 3>c6g = 2 xe6 = 0. Условия нарушены для коммуникации /гс6. Следовательно, переходим ко второму этапу, у Второй этап. Строим маршрут из р6 в р1;. Он равен I = {kiit fe48). Тогда замкнутый маршрут у = {/г81, й4в, /г88}. Вычисляем 02 = min {х48, du — x4g, d86} — min {1; 6—3; 3} = 1. Определяем план X®, изменяя поток вдоль замкнутого маршрута I на величину Oji v(2) г<!) о л. у(2) а 1. *45 ~~ *45 — °2 —' и> *65 — О2 — 1, *46 = *46 + 03 = 3 1 = 4. Этому плану соответствуют схема перевозок и величины потоков, приведенные на рис. 3.18. Третья итерация. Первый этап. Рассчитываем новые потенциалы, соот- ветствующие плану Х<2>. Полагая и^ = 0, получим и8 =» 3, «4 = “14- си — 5, «в = ц4 4- с4в = 8, us = ив 4- св8 = 10, и2 = и4 —с24 = 5 — 4=1. Проверим выполнение условий оптимальности (5.14) — (6.18); и2 — Ui = 1 — 0 = 1 < <?i2 = 4, х12 = 0; **g — йд = 8 — 3=5 > сзб = 4, хзб = d38 = 3; **5 — w4 == 10 < C45 = 6, x4B = 0; w5 — *z2 = 10 — 1 = 9 > c26 = 2; x26 = d2g. Таким образом, все условия выполняются и потому план Х<2) оптимальный. ' 200
§ 6. АЛГОРИТМ ДЕКОМПОЗИЦИИ ДЛЯ РЕШЕНИЯ ТРАНСПОРТНОЙ ЗАДАЧИ Пусть имеется транспортная задача вида: найти min J] S сцХц «п xti 1 i при ограничениях S хи = ai> 1=1, т, (6.2) S хи = bj, j — 1, n, (6.3) Xit > 0. (6.4) Будем предполагать, что выполняется условие баланса у а( — i=i п = J] bj. Если число пунктов потребления значительно превышает число пунктов производства (п т), то появляется возможность учесть структурные особенности матрицы условий задачй и целесооб- разно применить метод декомпозиции для Т-задачи (он был предло- жен Вильямсом). При этом множество ограничений (6.3) соответст- вует ограничениям подзадачи, а ограничения (6,2) рассматриваются как связывающие ограничения. Следовательно, координирующая за- дача будет иметь только т ограничений, что значительно упрощает ее решение. Рассмотрим основную идею метода. Пусть х(ц—компоненты крайней точки множества ограничений (6.3), (6.4). Представим любое решение этой системы уравнений в виде Е - xtj = x{jl (6.5) k где 8k >0; S 6ft = 1. k Подставим выражение (6.5) в (6.1) и (6.2). В результате получим следующую координирующую задачу. Найти min J] zk8k (6.6) k при ограничениях S Pik • 6* = а{, i = ТГт, (6.7) k 6ft>0, (6.8) где zk = U СцХ^\ (6.9) i,i Pik S (6.10) 201
Заметим, что условие выпуклости 2^=1 нет необходимости вво- к дить в ограничения, так как оно учитывается через условие баланса. Действительно, т п /М /UV п 1> = дар^ЕЕ Е Л = Еб*ЕЕ^ = Еб*Е ь< i i k k t=l /=1 k / i k /=1 и в силу условия баланса получим 5 = 1. h Предположим, что координирующая задача решена и найден век. тор относительных оценок ограничений Л = [XJ i = 1, т. Чтобы со- ставить подзадачу, определим симплекс-разность для плана Xft = ([%У, fk = Ч — S KPtk = Е S (6.П) i i j Так как х$ — крайние точки множества (6.4)—(6.5), то нахождение min fk равносильно решению подзадач вида min Е £ (сг/-А) (6.12) xii 1 ' xif> при ограничениях ХИ > 0, £ Хц = Ь, j=Vn. (6.13) (=1 Так как функционал (6.12) аддитивен, а каждая переменная х^ на- ходится лишь в одном из уравнений (6.13\ задача (6.12) распадается на п независимых задач для каждого j min 2 (си — Xf) Хц, • (6.14) {хи} 1 при условиях (6.13). Решение задачи (6.12) чрезвычайно просто, для этого необхо- димо найти минимальный коэффициент (cf-/ — 2Q в каждом столбце. Если min (сц •— %{) = cSii — Ksl, i (k) [ Ь: при i = St, TO Xy= ' 1 1 --- (6.15) 10, в противном случае при i #= sz, / = 1, n, где х$ —компоненты оптимального решения Xfe задачи (6.12). Итак, искомое решение (6.15) характеризуется тем, что каждый пункт потребления j закрепляется за наиболее дешевым (в смысле затрат) пунктом потребления. Учитывая (6.15), найдем минимальную симплекс-разность по формуле = min fk = V bj [min (ct7 — X,)] = £ bj (cSij — Xsz). (6.16) xk i=i 1 i=i Если min < 0, то вектор Xft должен быть введен в базис. С этой ft целью находим координаты вектора Р& = согласно (6.10) и одно- 202
временно коэффициент zk, и вводим вектор Р& в базис координирующей задачи. Если же min Д = 0, (6.17) xk то это есть признак оптимальности текущего базиса {PSl, Рм PSm| координирующей задачи, так как введением ни одного из столб- цов в базис значение целевой функции уменьшить нельзя. Допустим, что выполняется условие (6.17), (6sJ/=— — текущее допустимое базисное решение координирующей задачи, и X5j— опорный план подзадачи (6.12), отвечающий переменной 6Si. Тогда оптимальное решение исходной Т-задачи (6.1)—(6.4) определит- ся соотношением т * Хопт = У, Xs.6sr (6.18) 1=1 Дадим теперь формальное описание алгоритма декомпозиции для Т-задачи. Алгоритм состоит из предварительного этапа и конечного числа однотипных итераций. На предварительном этапе определяют начальный базис координирующей задачи (Р^Ч Р20>, ..., Рт| и соответствующие ему относительные оценки. В частности, в качестве начального базиса можно выбрать си- стему из векторов {Pk}k=— с компонентами plk, определяемыми из условия ( S ai — X ? ПРИ 1’ = k, p(k = г ' ____ <6Л9> (0 при k i — 1, т. Такой набор векторов {PJ соответствует опорным планам Хь ... ..., Хг ..., Хт системы ограничений (6.3)—(6.4), компоненты которых вычисляются по формуле ей ( bi, при i = k\ Xij = ' 1 (6.20) ( 0, в противном случае. Для каждого Р/е находим коэффициент целевой функции zk согласно (6.9). С учетом (6.20) получим окончательно Ч = S X Cii^i = X ck!bj. (6.21) < i i Как известно, для базисных векторов Р/г справедливо соотношение Р[А = у pik\i = zk, k == 1, tn. (6.22) (=1 В общем случае для нахождения искомых значений {Л4О)} необходимо решать систему уравнений (6.22). Однако в силу условия (6.19) она 203
распадается на т независимых уравнений вида У, PikPi ~ PkbPk = Tkk = zki (6.23) f=l откуда к,, = , k = 1, т. На этом предварительный этап заканчивается и переходим на первую итерацию. Каждая итерация, кроме последней, состоит из двух этапов. Пусть уже проведено г итераций и найден базис координирующей задачи |PSj) i= 1, т и соответствующие ему оценки На первом этапе решается подзадача вида min S S (сц кР) xit (6.24) хи 1 i При УСЛОВИИ J] Xi) = bj. i Ее решение х^ определяется по формулам (6.15). Найдя Хь соответ- ствующее ему значение целевой функции вычисляем согласно (6.16). Если fh = О, то текущее базисное решение координирующей задачи i = 1, т оптимально, а оптимальное решение исходной задачи определяется по формуле (6.18) Хопт — У L Если fh < 0, то текущее д. б. р. координирующей задачи может быть улучшено и переходим ко второму этапу. Второй этап. Определяем компоненты вектора Pfe (соот- ветствующего плану Xk), который должен быть введен в базис коор- динирующей задачи по формуле (6.10), а его коэффициент в целевой функции zk — по формуле (6.9). Составляем новую координирующую задачу (6.6)—(6.8), в базис которой вводим вектор Р*. и новую переменную 6ft. Решаем ее методом обратной матрицы и определяем новый базис |Р^+1)| i = 1, т, а так- же новые значения оценок {х4г+1)}. На этом очередная итерация заканчивается. В заключение еще раз подчеркнем, что преимущества метода де- композиции по сравнению с обычными алгоритмами решения транс- портной задачи проявляются при т < п. В этом случае координирующая задача состоит только из т огра- ничений и решение ее нетрудоемко, что же касается решений подзадач вида (6.12), то, как было показано, их находят почти без вычислений. В частности, решение задачи размером 15 х 3000 на ЦВМ методом декомпозиции потребовало примерно в полтора раза меньше времени в сравнении с одним из классических методов [18, 33]. Пример 3.9. Решить методом декомпозиции транспортную задачу со следующими условиями: = 40, bi = 25, b2 = 15, bs = 18, о4 = 20, Z>5 = 12, = 10, а2 = 60. Ill 2 3 6 5 411 ||8 10 4 3 2 5|] 204
Проверяем условие баланса: X «г = X bj = 100 = Т. t i Предварительный этап. В качестве начального базиса координи- рующей задачи выберем , , ро° 0II ^Р1’ ~ I О 10011' 1125 15 18 20 12 1011 Тогда вектору Pt отвечает начальный план = I Q о 0 0 ОТ а векТ0РУ II 0 0 0 0 0 01! Ра — план = - i. 3 2 J25 15 18 20 12 10|| Компоненты планов вычисляются согласно (6.20). В соответствии с (6.21) определяем коэффициенты иг^ целевой функции для векто- ров Рг и Р2: 2 4 гт = X X сих(^ = 329; = X X сихи = 556- г=1 ;=1 i j Используя соотношение (6.24), находим вектор относительных оценок условий задачи А= Первая итерация. Первый этап. Определяем матрицу подзадачи Cj, ис- пользуя значения и А,2. 11—2,29 —1,29 —0,29 2,71 1,71 0,711] Ci ~!| Clj ~ 4 “ I 2,44 4,44 —1,56 —2,56 —3,56 — 0,56В Решаем подзадачу вида (6.12) при условии (6.13) с матрицей Cj и находим план Х3 согласно соотношению (6.15): 1125 15 0 0 0 011 3 || 0 0 18 20 12 1011' Отметим, что эта процедура сводится к нахождению минимального элемента в каждом j-m столбце матрицы Ср после чего в плане Х3 полагаем соответствующий элемент равным bj. Находим симплекс-разность для плана Х3: /з = X ™п 1С«7 — W = — 204,2, ;=1 £ Так как /3 < 0, переходим ко второму этапу. Второй этап. Определяем компоненты Р3 по формулам (6.10) Лз = Хх<1/,=4°: fe=X*® = 6°; / ! г3 = J] S сйхй -= Ь 25 + 15 2 + 18 * 4 + 20.3 + 12 . 2 + 10» 5 = 26L i i Вектор Ps необходимо ввести в базис координирующей задачи. Эту задачу будем решать методом обратной матрицы (см. § 5, гл. 2). С этой целью определяем начальную обратную матрицу В-1 1 |1 0|| В-1=^Р^=-1о^|О 1|=[е- е2] 203
и столбец свободных членов 1 Г1 ОТ Г401 ГО,401 Еп = В ХАО =------ = • 0 0 100 [о 1] [60j [0,60] Заполняем главную часть начальной таблицы для координирующей задачи (табл. 3.7) (и = 2). 2 Компоненты столбца Р'3 находим согласно соотношениям р'13 — У ^tiPii или в мат- /=1 ричном виде: Р3 = В 1 Р3. В строке т + 1 по столбцам е, и е2 записываем Х4, Л2, а по столбцу Р8: Д3 = —f3 — = 204,2. Выполнив одну итерацию метода, приходим к табл. 3.8. Итак, мы нашли новый базис {Р4, Р3}, соответствующее ему решение {6г = 0; £>2 = 1}- Заметим, что оно получилось вырожденным. Вторая итерация. Первый этап. Используя оценки, найденные в табл. 3.8, = 3,29, Ц1) = 2,16, находим матрицу С2.: _ id) п — Г-2,29 ~1,29 ~0,29 2,71 1,71 0,711 С2 —||ОД — г II — 5,84 7,84 1 84 0,84 _0>16 2,84] ’ Решаем подзадачу (6.12) с матрицей С2 и находим оптимальный план Х4г _ Г25 15 18 0 0 101 Х* [ 0 0 0 20 12 о] * 6 Определяем /° (Х4) = bj min (од — X,/) = —59,84. /=1 ' Так как f° (х4) < 0, то вектор Р4 необходимо ввести в базис координирующей задачи. Второй этап. Определяем компоненты Р4 в соответствии с (6.10): р4 = [!! ]; ч = X X сих<п =233- Находим компоненты разложения вектора Р4 по векторам базиса: 2 _____ Рм = X ецРИ> > = t 2- /=1 Заполняем главную часть табл. 3.9, для чего используем табл. 3.8. Выполнив итерацию метода Жордана — Гаусса, приходим к табл. 3.10. Итак, новый базис {Р4, Р3}, а соответствующее ему решение б, = 0; 62 = 1,0 и вектор оценок Л<2) = {^2> = 2,02; Х.^ = 3,0}. Третья итерация. Первый этап. Определяем матрицу С3 ||—1,02 —0,02 0,98 3,98 2,98 1,981; с1 = Ц,-1?’1 = | с,0 10 0 2>0|- Решаем подзадачу с матрицей С3 и находим план Х6 125 15 18 0 0 1011 116811 Xs II 0 0 0 20 12 о|| = ||з2|| * Вычисляем величину симплекс-разности для Х5:, /° (Х5) = £ bj min (од — zf ')= 0. 1 1 206
Таблица 3.7 N сх вх ео е1 е2 Рз 0 1 329 Р> 0,40 0,01 0,40 1 2 556 Рг 0,60 0,01 0,60 | 1 т + 1 465,2 3,29 5,56 204,2 Таблица 3.8 Сх Вх ео ej ег 1 2 329 261 Pt Р3 0 1,0 0,01 0,4 60 1 60 261 3,29 2,16 Таблица 3.9 N сх вх ео ei <? е2 Pl 0 1 2 329 261 Pi Р3 0 1,00 0,01 _ 0>4 60 1 60 м 32 60 т 0 60 32' 261 j 3,29 2,16 59,84 Таблица 3.10 N СЛ вх ео ei е2 1 2 233 261 Pt Ps 0 1,00 0,021' —0,011 —0,014 0,0242 261 2,02 3,0 207
Так как f° (Х6) = 0, то текущий базис координирующей задачи оптимален, 1>* = О, S3 = 1. Оптимальный план исходной Т-задачи вычисляется по формуле (6.18) Xopt-бзхз + б;х»-Х3_ о о 18 20 12 10| Вопросы для самопроверки I. Сформулируйте условие разрешимости транспортной задачи. 2. Назовите признак оптимальности плана Т-задачи и поясните смысл его усло- вий. 3. Что называется опорным планом Т-задачи? 4. Как проверить произвольный план на опорность? 5. Какой план называется вырожденным? Как установить, является ли опор- ный план вырожденным? 6. Дайте обоснование метода потенциалов, рассматривая его как вариант симп- лекс-метода. 7. Как решать Т-задачу методом потенциалов на максимум? Как при этом изме- нится правило выбора элемента ед, вводимого в базис, и признак оптимальности опорного плана? 8. В каком случае применение метода минимального элемента приводит к сокра- щению числа итераций по сравнению с методом северо-западного угла? 9. Почему при решении Т-задачи венгерским методом цепочка в матрице X стро- ится обязательно из нулевых элементов? 10. Как изменится предварительный этап венгерского метода при решении Т-за- дачи на максимум? 1'1 . В чем состоят особенности венгерского метода по сравнению с методом по- тенциалов? 12. Могут ли элементы ед оказаться отрицательными в процессе решения Т-за- дачи венгерским методом? 13. Дайте обоснование венгерского метода для решения Т-задачи. 14. Как свести открытую модель Т-задачи к закрытой? 15. Сформулируйте основные свойства потока на сети. 16. Как записывается условие баланса для транспортной сети? 17. Сформулируйте теорему Форда—Фалкерсона и докажите ее справедливость. 18. Сформулируйте признак оптимальности алгебраического плана транспорт- ной сети, сравните его с соответствующим признаком для Т-задачи. 19. Признак опорности алгебраического плана транспортной сети. 20. Как найти начальный опорный план для сети? 21. Когда целесообразно использование декомпозиционного метода для решения транспортных задач?
Глава 4. ДИСКРЕТНОЕ ПРОГРАММИРОВАНИЕ Многие задачи исследования операций, такие как распределения ресурсов, сетевого планирования и управления, календарного плани- рования, описываются математическими моделями дискретного про- граммирования. Рассмотрим общую задачу максимизации: найти тах/Цхц ха, , х„), (1) при условиях gi (хи х2, ... , хп) < О, ......................................... (2) gm (Xi, х2, ... , хп) < 0; и X = (х15 х2, ..., О) где D — некоторое множество. • Если множество D является конечным или счетным, то условие (3) — это условие дискретности, и данная задача является задачей дискретного программирования. Чаще всего условие дискретности разделено по отдельным пере- менным следующим образом: х,^ Д,-, / — 1, 2, ... , п, (4) где D/ — конечное (или счетное) множество. Если вводится ограничение х/ — целые числа (/ = 1, 2, ..., п), то приходят к задачам целочисленного программирования (ЦП), кото- рое является частным случаем дискретного программирования. В задачах дискретного программирования область допустимых решений является невыпуклой и несвязной. Поэтому отыскание ре- шения таких задач сопряжено со значительными трудностями. В част- ности, невозможно применение стандартных приемов, состоящих в замене дискретной задачи ее непрерывным аналогом, в дальнейшем округлении найденного решения до ближайшего целочисленного. Например, рассмотрим следующую задачу ЛП: Пример 4.1. Найти max (xf — Зх2 + Зх3) 1 2X1 + — х, < 4; ( 4х, — Зх2 < 2; — Зху Ч- 2х2 —х2 < 3, где х*, х2, х3 >0, х/ — целые числа (/ = 1, 2, 3). 14 8-3164 209
Игнорируя условие целочисленности, находим оптимальный план симплекс- методом: _ 1 _ 1 *1 опт 7Д > х2 опт ’ х3 опт = 4 ~~2 • Проверка показывает, что никакое округление компонент этого плана не дает допустимого решения, удовлетворяющего ограничениям этой задачи. Искомое целочисленное решение задачи таково: *1 опт — 2; х2 опт — 2; х3 опт — 5- Таким образом, для решения задач дискретного программирования необходимы специальные методы. Методы решения задач дискретного программирования по принци- пу подхода к проблеме делят на 3 группы: 1) методы отсечения или отсекающих плоскостей; 2) метод ветвей и границ; 3) метод случай- ного, поиска и приближенные эвристические методы [28]. § 1. МАТЕМАТИЧЕСКИЕ МОДЕЛИ ЗАДАЧ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ По структуре математической модели задачи дискретного програм- мирования разделяют на следующие классы: 1) задачи с недели- мостями; 2) экстремальные комбинаторные задачи; 3) задачи на не- связных и на невыпуклых областях; 4) задачи с разрывными целевыми функциями. Задачи с неделимостями Математические модели задач с неделимостями основаны на тре- бовании целочисленности переменных {xz}, вытекающем из физиче- ских условий практических задач. К таким задачам относится задача об определении оптимальной структуры производственной программы, где {х1г х2, хп} — объ- емы выпуска продукции. Эта задача заключается в отыскании max у CjXj, (1.1) при у alixl < bt, (i=l, 2, ., m), (1.2) /=1 х{ 0, х2>>0, хл>-0; Xj—щелые при j£j. (1-3) Если J — N — (1, 2, ..., га), то задача называется полностью це- лочисленной, в противном случае, если J =/= N — частично целочис- ленной. Задача о ранце. Одной из наиболее распространенных задач це- лочисленного программирования является так называемая задача о ранце. Постановка задачи. Турист готовится к длительному 210
переходу в горах. В рюкзаке он может нести груз, масса которого не более W кг. Этот груз может включать п видов предметов, каждый предмет типа /, массой к/ кг, j = 1, 2, ..., п. Для каждого вида пред- мета турист определяет его ценность Ej во время перехода. Сколько предметов каждого типа он должен положить в рюкзак, чтобы сум- марная ценность снаряжения была максимальной? Обозначим через X/ — количество предметов /-го типа в рюкзаке. Тогда математическая модель задачи такова: max у Ех/ при ограничениях п У WjXj < W, X/ — целое, ,=1 X/ > 0, j = 1, 2, ... , п. (1-4) (1.5) Экстремальные комбинаторные задачи В данных задачах необходимо найти экстремум некоторой целевой функции, заданной на конечном множестве, элементами которого слу- жат перестановки из п символов (объектов). Одной из наиболее простых' задач этого класса является задача о назначениях: найти такую перестановку {р{, р%, ..., рп) из чисел 1, 2, 3, ..., п, п при которой достигается min oipi по всем перестановкам (ръ р2> ••• г=1 .... р„). Каждая такая перестановка может быть представлена точкой в п2-мерном эвклидовом пространстве или в виде матрицы Хпх" = || хр||. Вводим переменные: [xz/ = 1, если t-й механизм предназначен для < /-й работы; 1Хг-/ = 0 в противном случае. Очевидно, у хг-/ = 1; j = 1, 2, ... , п, i=i £ хг7= 1; i == 1, 2, ... , п. (1.6) /=1 Тогда задача заключается в нахождении таких чисел {хг-/}, при ко- торых достигается min 22 СрХр при ограничениях (1.6). Хотя условия целочисленности {хр] в ограничениях (1.6) в явном виде нет, оно выполняется, поскольку задача о назначениях является частным случаем Т-задачи. Задача о коммивояжере. Имеется (п + 1) город. Задана матрица С = || Ср || расстояний между городами.- Выезжая из исходного го- рода Л о, коммивояжер должен побывать во всех остальных городах по одному разу и вернуться в город Ло. 14* 211
Определить, в каком порядке следует объезжать города, чтобы суммарное пройденное расстояние было минимально. Введем переменные хц — 1, если коммивояжер переезжает из в А/; .0 в противном случае. Математическая модель задачи имеет следующий вид: найти п п min 1=0 /=0 (1.7) при условиях S хи = 1 /=0 i = 1, 2, ... , n; (1-8) Е^/ = 1 1=0 /=1, 2, ... , n (1.9) — Uj + nXjj < ft*— 1 (Л / = 1, 2, , n, j), (1.10) где иь щ — произвольные целые и неотрицательные числа. Условие (1.8) означает, что коммивояжер выезжает из каждого города один раз, а условие (1.9) — что он въезжает один раз в каждый город, кроме начального. Если ограничить задачу только условиями (1.8) и (1.9), то она эквивалентна задаче о назначениях, план которой не обязан быть цик- личным. Иначе говоря, путь коммивояжера при этом можно предста- вить как ряд несвязанных подциклов, в то время как его путь в дей- ствительности состоит из одного цикла. Покажем, что для любого цикла, начинающего в Ао, можно найти и{, удовлетворяющие условию (1.10). Пусть = р, если коммивоя- жер посещает город At на р-м этапе. Отсюда следует, что щ — Uj < < п — 1 для всех i и /, и, таким образом, условие (1.10) выполняется при хр — 0. При хр = 1 условие (1.10) выполняется как строгое равенство: — Щ + nxif = р — (р + 1) + п = п — 1. Задачи о покрытии относятся к классу экстремальных комбинатор- ных задач на графах. Типичная задача о покрытии состоит в следующем. Дан граф Г. Требуется найти его минимальное покрытие, т. е. такую минимальную совокупность ребер, чтобы любая вершина графа была инцидентна некоторому ребру, входящему в покрытие. Обозначим вершины графа i (i = 1, 2, ..., m), а ребра / (/ = 1, 2, ..., п). Граф характеризуется матрицей инциденций вершин и ребер А = || ац ||, где (1, если вершина i инцидентна ребру /; (0, в противном случае. 212
Вводим набор переменных {х/} таких, чтс _ П, если ребро / входит в покрытие; Х1 ~ (0, в противном случае. Тогда нахождение минимального покрытия эквивалентно следующей задаче: найти п min £ X/ i=i при ограничениях S <№i > 1, /=1 1=1, 2, ... т. (1.П) (1-12) Задачи на несвязных и невыпуклых областях Данные задачи представляют собой модели линейного программи- рования, в которых к обычным условиям присоединены некоторые дополнительные условия, превращающие область допустимых решений в невыпуклую или несвязную. Пусть к задаче ЛП присоединено условие XjXi+i = 0 или более общее условие x(xi+i = 0 (р < п — Г). На первый взгляд кажется, 4=0 что добавление этих условий превращает задачу в нелинейную. В дей- ствительности, этими условиями допустимое множество решений раз- бивается на несвязные области. В частном случае при дополнительных условиях: XjX2 — 0, ху + + х2 > 1 получаем несвязную область, приведенную на рис. 4.1. Задачи на несвязных областях. Пусть переменная Xj0 задачи ЛП имеет ограничение сверху и, кроме того, ограничение: либо х,-0 < а, либо Х/„>&, 41-13) где kio. Задачи такого типа с дополнительными логическими условиями вида «или-или» будем называть дихотомическими. Вводим целочисленную переменную yjQ, принимающую значения 0 и 1. Дополнительная переменная у1а в целевую функцию не вклю- чается. Тогда , , Ч — 6 + Ьу1о >0; —xio + аУи + (1 — #/<,) > 0; j4) Система (1.14) эквивалентна ограничениям (1.13). Если yli: = 1, то 0 < X/ < а. Если у,0 = 0, то х>, > b\ Xj„ ^kj0. 213
Рассмотрим более общий случай. Пусть в задачах математического программирования с допустимой областью решений G имеется альтер- нативное ограничение: либо h (jq, х2. хп) 0, либо k (xt, х2, Хга)>0, (1.15) где h (Xi, x2.x„) и k (x^ x2, xn) — заданные функции. Предположим, что нам известны нижние границы функций h (X) и k (X) на области G, обозначаемые соответственно /imin и &min. ~0 Рис.4.1. Рис. 4.2. 4 / Введем вспомогательную переменную у = Jr и рассмотрим си- етему неравенств: & (Х^, Х2, . . . , Хи) — &min (1 У) 0. Эта система эквивалентна альтернативному ограничению (1.15). Итак, данная задача при введении вспомогательной переменной становится задачей дискретного программирования. Задачи на невыпуклых областях. Введение дополнительных диск- ретных переменных позволяет осуществить переход от задачи опти- мизации на невыпуклой области к задаче на области, представляющей 'собой сумму выпуклых множеств. Пусть имеется задача ЛП с дополнительным ограничением (рис. 4.2): Xt < ki, Х3 </г2, <1-17) причем либо Xi < at, либо х2 ^аг. fl. 18) Введя переменную' у, можно охарактеризовать эту область си- стемой неравенств: 0 Xi < Gi + (^ — ai) у- 0 < x2 < k2 — (k2 — aa) y- (1.19) В более общем случае при решении задач может быть задана си- стема множеств (Ti, Ti), (Т2, Т2), ..., (То, Тр), причем решение при- р р надлежит либо f] Tk, либо f] Th. fe=i fe=i Пусть для каждой пары множеств (Tit Т,) области 7\ и Тг описы- 214
ваются соответственно системами неравенств: ga (xit х2, , х„) > О, gzi -^2> • • • > Хп) gki (х<> х2, ... , х„) > 0; (xlt х2, ... , хп) 0, h2i (хь х2, ... , хп) 0, hki (хи х2, . .. , хп) 0. Кроме того, пусть известны числа {gki min}, {/iw min} — нижние границы для функций gkt (хь х2, ..., хп) и hkl (х1у х2.хп) соответ- ственно. Вводим дополнительную целочисленную переменную у = {0, 1). Тогда альтернативные ограничения: gli (х1> Х2’ • • • > хп gli min# 0> gki^X^ *2> хп) gki т1пУ 0> ^1/ (^1> Х2’ хп) hli rnin (1 у) 0, (1.22) h-ki (-^1> Х2> • • • > хп) min Теперь рассмотрим случай условных или логических ограничений. Пусть имеется логическое ограничение: если it (Ху, х2, . . . , хп) > 0, то k(xlt х2, . . . , хп) >0. (1.23) Запишем его в эквивалентном виде: а) либо hixlt х2, ..., х„)>0, k(Xi, х2, ..., хл)>0; б) либо h (х1; х2, . .. , хп) < 0. Введя переменную у — {0, 1}, приходим к следующей системе h (х1; х2, ... , хп) hminy, k (Xj, X2, . . . , Xfl) fernin^/i (1.25) h(Xi, x2, ... , О < h*(i —y), где h* = sup h, hm-m — inf [h (xly x2, ..., x„)}, femin = inf {fe (xit х2, ... G G G ..., xn)}, G — область определения h (xly x2, ..., xn) и fe (xb x2, ..., xj. Рассмотрим другой случай ограничений. Если h (Xj, х2, . . . , п) 0, то fe (Xj, х2, . . . , х„) > 0; (1.26) если h (х1У х2, ... , х„) <0, то I (хп х2, .. . , х„) >0. 215
Введем переменные ylt у2 и получим hmint/i < h (хи х2, , х„) < h*y2; Л (Хр Х2, . • • > Хл) ^minZ/i> I (Xj, Х2, . . . , Хп) 1тшУ2> (1.27) + У 2 = 1 > где yt = (°, I 1 (/ = 1, 2). Таким образом, при введении логических переменных задачи с логическими ограничениями сводятся к задачам дискретного програм- мирования. Задачи с разрывными целевыми функциями Наиболее изучена из этого класса задач У-задача с фиксированными доплатами [37]: найти min Е S сц (хц) i i при условиях " ™ , . . (0, если X/; = О S ХИ = ад £ ХИ = Ь<’ = „ (1-28) г=1 (CijXtj + дф если хг/>0, где ср — транспортные издержки по перевозке единицы груза; dp — фиксированная доплата за аренду транспортных средств. Вводим вспомогательные переменные ур следующим образом: [ О, ^/=(1 ХЧ < МИУ(Ь (1.29) где Мр = min {at, bj}. Тогда целевая функция имеет вид X £ СцХц + друц. (1.30) i i Задача (1.30) эквивалентна исходной. Действительно, при ур = 0 переменные Хр = 0; а при ур = 1 не- равенства (1.29) становятся несущественными, так как в любом опор- ном плане они выполняются. Таким образом, эта задача является задачей частично-целочисленного программирования. Теперь рассмотрим более общую математическую модель с разрыв- ной целевой функцией на примере задачи о смесях. Примем следующие обозначения: а(1 — содержание элемента i в единице компонента /; — ограничение снизу на содержание каждо- го элемента в смеси; с/— стоимость закупки единицы компонента, dj — фиксированная стоимость заказа /-го компонента; х/ — коли- чество /-го компонента смеси. 216
Требуется составить наиболее дешевую смесь, удовлетворяющую ограничениям по содержанию каждого компонента. п Формально задача сводится к минимизации у с, (х/) при условиях 3=1 (i = l, 2, ... , tri), (1.31) /=i где X/ > О, . , (0 При X: — О, С/(Х/)=( (1.32) (CjXj + dy при Xj > 0. Предположим, что в дополнение к условиям (1.31) задана для х/ верхняя граница: Xj < kj (/’=1, 2, ..., n). (1.33) Тогда запишем задачу минимизации в следующем виде: найти min £ (CjXj + djt)^ (1.34) / при условии (1.31) и дополнительных условиях У1 = {? (О < X/ < Эквивалентность частично-целочисленной задачи (1.34) и исходной задачи может быть проверена аналогично Т-задаче с фиксированными доплатами. Задачи, сводящиеся к целочисленным Некоторые задачи, формально не являющиеся целочисленными, имеют целочисленные решения при любых целочисленных исходных данных. К таким задачам относится Т-задача, которая формально не является целочисленной, так как отсутствует условие: {х^-} — це- лые числа. При анализе решений Т-задачи Данцигом установлена следующая теорема: при любых целых значениях alt а2, ..., ат и Ьх, Ь2, ..., Ьп Т-задача всегда имеет целочисленный оптимальный план, независимо от значений {с(7-}. Доказательство теоремы основано на двух положениях: существует исходный опорный целочисленный план; при переходе от одного опорного плана к другому целочисленность сохраняется. Действительно, из этих положений сразу следует целочисленность всех опорных планов, и в частности оптимального. Целочисленность планов Т-задачи связана со структурой ее мат- рицы ограничений и имеет место для всех ее частных случаев, важ- нейшими из которых являются задача о назначениях и задача о потоке на сети. Таким образом, Т-задача при целочисленных условиях сводится к задаче ЦП. 217
§ 2. МЕТОД ОТСЕКАЮЩИХ ПЛОСКОСТЕЙ' Для группы методов отсечения, или отсекающих плоскостей, ха- рактерна так называемая «регуляризация» задачи, состоящая в по- гружении исходной области допустимых решений в объемлющую ее выпуклую область, т. е. во временном отбрасывании условий дискрет- ности. Затем к получившейся регулярной задаче применяются стан- дартные методы оптимизации. Если полученное в результате решение удовлетворяет требуемым условиям дискретности, то задача решена. В противном случае необходим дальнейший переход к целочисленному решению, причем этот переход не может быть получен простым округ- лением компонент нецелочисленного решения. Впервые идея такого перехода описана в работах Данцига, Фулкерсона и Джонсона. Для задачи целочисленного программирования (ЦП) соответствую- щая идея, положенная в основу метода отсекающих плоскостей, вы- сказана Данцигом. Допустим необходимо решить задачу ЦП: найти п шах у С/%/ /=1 (2-1) при условиях S ацХ/ (i = 1, 2, ... , m); (2.2) /=i X;>0, Xj — целые числа (/ = 1, 2, ... , ri). (2.3) Отбросив на время условие целочисленности, найдем оптимальный опорный план. Если окажется, что он удовлетворяет также и усло- виям целочисленности, то данный план является искомым. В противном случае нужно сформировать дополнительное ограни- чение, которому заведомо удовлетворяет любой целочисленный план, но не удовлетворяет найденный оптимальный нецелочисленный план. Такое ограничение называют правильным отсечением. Геометрически правильное отсечение означает гиперплоскость, отсекающую от выпук- лого многогранника (или многогранного множества) соответствующей задачи ЛП некоторый многогранник, содержащий все целочисленные планы. Таким образом, исходную систему ограничений дополняют пра- вильным отсечением, после чего разыскивают оптимальное решение новой ЛП-задачи. Если дополнительное ограничение сформировано удовлетворитель- но. то можно полагать, что через несколько, итераций будет найдено искомое решение задачи ЦП либо будет зафиксирована несовмест- ность ее условий. Рассмотрим задачу (2.1), (2.2), (2.3) в предположении, что все {ay}, {bj} и {с,} — целые числа. 1 Метод отсечения, или отсекающих плоскостей, разработан Р. Гомори в 1957— 1958 гг. 218
Пусть (Aj, А2, ..., Am) — линейно независимые векторы ограни- чений. Очевидно, матрица А = [Ai, А2, .... Ат] невырождена, и по- этому существует обратная матрица А~’ — [Аъ А2, ..., А^-1. п Умножив ограничения задачи А/Х/ = b на матрицу А“ , по- 7=1 лучим А_1А/Х; = А-1Ь = Хо. (2.4) 1=1 Это соотношение в развернутой форме записи имеет вид: Х{+ У (i = 1, ... , tn), (2.5) j=m+t откуда X£ = X£o — J x£ix/, (2.6) /=m+l где Xi — базисная переменная, а x,0 определяют из соотношения (2.4). Подставляя выражение (2.6) в (2.1), получим: L (х) = J \х£0 — £ х£,х\с£ + £ CjXj = % с£х£0 — i—l \ t—1 — £ (£ — cAxj = Ao — J AyX/. (2.7) i=tn-\-l V=1 - / Теперь решим задачу (2.1), (2.2), (2.3) симплекс-методом или двойственным симплекс-методом. Допустим, что оптимальным оказался базис [AS1, AS2, ..., ASmJ. Элементы последней таблицы обозначим через xtj, причем А/ = х0/, а столбец свободных членов обозначим через х£0. Выберем один из них, например, х£0, и, начиная с г-й строки последней таблицы, составим дополнительное ограничение. Вводим обозначения: [х£/1 — целая часть, а у£/ — х££— 1x^/1 •—дроб- ная часть числа х££, причем х£/ [х£/]. " Пусть X — произвольный план задачи (2.1), (2.2), (2.3). Его ком- поненты связаны уравнением (2.6). Подставим Хц — [х£/1 + уг/ в вы- ражение (2.6) и после несложных преобразований получим: xt — [X/ol + Ё L^z/1 Х1 = Yfo — S УцХ/. (2.8) Соотношение (2.8) справедливо для любого плана данной задачи. Допустим, что X — целочисленный план. Тогда, учитывая цело- п численность левой части соотношения (2.8), имеем у£0 — у£/Х/ /=т-Н п — целое число или У, у£/х/ = у10 + g, где £ — целое число. /=т+1 219
Очевидно, дробная часть 0 < yif < 1, 0 < у10 < 1. Следовательно, п S Yi/X/ > 0. Если допустить, что целое число g < —1, то получаем =т+\ п неравенство у(/Х/ + 1 < уго, откуда yiQ > 1, а это противоречит /=/п4-1 условию 0 < у(0 < 1. Поэтому принимаем g неотрицательным числом, т. е. признаем неравенство S Уих/>Ую- (2.9) /=яг4-1 Нецелочисленный план X не удовлетворяет неравенству (2.9), поскольку yi0 > 0, а левая часть неравенства (2.9) равна нулю, так как х, = 0 для всех небазисных компонент j = tn + 1, т + 2, ..., п. В то же время любой целочисленный план удовлетворяет (2.9) как строгому равенству, так как у(0 = 0 для всех i. Итак, ограничение (2.9) является правильным отсечением. Его за- писывают в . эквивалентной форме хп+1 = — у10 + Y уи-хь Хп+1 > 0, (2.10) /=т+1 ИЛИ —yi0= S —Уих1 + х«+ь (2.11) i=m+l и добавляют к системе линейных ограничений задачи. После этого отыскивают новый оптимальный план, используя двойственный симплекс-метод. Переменные новой задачи {xlt х2, ..., x„+i}. Ее условия уже раз- решены относительно базисных переменных плана X = {xj, х2, ... ..., хт} и новой переменной х„+1, и, следовательно, имеем псевдо- плад с базисными компонентами; х(- = х(-0 (1=1, ... , т); xn+i = Yj0. Таблица данного псевдоплана образуется дописыванием к таблице, отвечающей найденному плану X; строки с элементами — Ук> при / = 0, __ — уц при / g J, (где J — множество индексов Xn+i,i небазисных векторов), (2.12) 0 в остальных случаях. Одновременно к таблице добавляют единичный вектор Ал+1 та- кой, что А^д = [0, 0, ... , 0, 1]. Л К этому псевдоплану применяют двойственный симплекс-метод. На первой итерации из базиса обязательно выводят вектор, отвечаю-' щий переменной хп+1, так как в столбце ал таблицы имеется один отрицательный элемент x„+i = —yi0 < 0. 220
Условимся называть большой итерацией метода отсекающих плос- костей несколько итераций алгоритма двойственного симплекс-метода, приводящих от псевдоплана с дробными компонентами в столбце а,0 к последующей оптимальной таблице. В зависимости от исхода большой итерации различают следующие три случая: 1. В столбце а(0 все х10 — целые числа, причем х(-0 > 0. Это усло- вие определяет оптимальность найденного плана. 2. Получен новый план, где все хео 0, но не все xzo — целые числа. Тогда необходимо сформировать новое правильное отсечение и перейти к очередной большой итерации. 3. Получен некоторый промежуточный псевдоплан, где имеется элемент xzo < 0 такой, что х£1- 0 для всех / = 1,2...п. Это при- знак неразрешимости задачи. Переменные xn+t, вводимые в задачу в начале' каждой большой ите- рации, называются дополнительными, а переменные х/ (1 < / < п) — основными. Если дополнительная переменная является небазисной для некоторого промежуточного псевдоплана, то уравнение хп+) = 0 входит в число соотношений, определяющих этот псевдоплан. Как толь- ко переменная xn+t снова становится базисной, ее значение оказывает- ся безразличным для основных переменных. Поэтому строку и стол- бец, отвечающие xn_|_z, в соответствующей таблице вычеркивают. С геометрической точки зрения это правило можно обосновать так. Если псевдоплан оказывается внутри полупространства xn+t 0, то дополнительное ограничение, определяемое гиперплоскостью xn-\-t — = 0, становится несущественным и потому опускается. Двойственный симплекс-метод является основой для метода Го- мори, так как он позволяет учитывать новые дополнительные ограни- чения (правильные отсечения) и переходить от текущего псевдоплана к новому оптимальному плану. Замечания. 1. При определенных условиях можно гарантировать конечность алгоритма Гомори. Достаточные условия конечности алгоритма Гомори установлены в следующей теореме [18]: п Если целевая функция задачи Т = У cixi ограничена снизу и сверху f=i на множестве решений, причем множество оптимальных решений представляет собой выпуклый многогранник, и правильное отсечение образуется по строке таблицы с нецелочисленной компонентой х[й, имеющей минимальный номер, а выбор вектора, вводимого в базис, определяют по величине Qk — min {-----<oj, tno алгоритм Го- мори является конечным. 2. Правильное отсечение можно формировать и по индексной строке. Пусть на k-м шаге элементы индексной строки таковы: До, Д*, ... Д*, причем До = L (ХА) — нецелое число. Тогда обозначим у0/ — 221
дробную часть элемента А,: = Ау — [А ], (/ = 0, 1, п), В этом случае правильное отсечение записывается так: ~ Too = — S То/*/ + *М-1- (2.13) i&J 3. В отличие от обычной ЛП-задачи задача целочисленного про- граммирования требует большого объема вычислений даже при малых т и п. Количество итераций существенно зависит от того, насколько удачно сформированы правильные отсечения. Пример 4.2. Решить методом Гомори следующую задачу: найти max (Xj + х2) при ограничениях <• 2х; + 11л'2 < 38; ( х^ хг < 7; I 4xj — 5х2 < 5, О < xlt у2, xlt х2 — целые числа. Для данной задачи при отброшенном условии целочисленности оптимальный нецелочисленный план найден двойственным симплекс-методом (пример 2.10). Здесь это решение задано в виде табл. 4.1. Образуем правильное отсечение по строке Ar (i — 1): — Т/о = ^„-1-1 ~ iQJ Допишем строку Л(; и столбец Л6 к данной таблице. Направляющая строка А6, направляющий столбец Л5. Выполнив один шаг двойственного симплекс-метода, приходим к табл. 4.2. Найдя в столбце Ао отрицательную компоненту х:!0 = —3 < 0, определим на- правляющую строку А3. Направляющий столбец А4. Выполнив один шаг двойствен- ного симплекс-метода, приходим к табл. 4.3. Так как в этой таблице все элементы 0, то первая большая итерация закон- чена, и найден новый оптимальный, но нецелочисленный план. Поэтому форми- руем правильное отсечение по индексной строке. - Добавим к табл. 4.3 строку А7 и столбец А7. Выбрав направляющий элемент а73 =----j-j- и выполнив очередной шаг, приходим к новой табл. 4.4. Так как в столбце Ао имеется отрицательный элемент х50= —1, то выполним сле- дующую итерацию с направляющим элементом х66 — —9. Вектор Ас должен быть снова введен в базис, но так как переменная х~ была использована для формирования предыдущего правильного отсечения, то это позволяет после соответствующего сим- плекс-преобразования вычеркнуть (или опустить) столбец А6 и строку А6 в следую- щей новой табл. 4.5. Закончилась вторая большая итерация. Так как в столбце имеются дробные компоненты, то формируем следующее новое правильное отсечение (строка А8) по строке Aj. Направляющий элемент aSB =-----Приходим к табл. 4.6. Выполним очередной шаг двойственного симплекс-метода с направляющим эле- ментом а37 — —11. Вектор А7 нужно снова ввести в базис. При этом соответствую- щую строку и столбец вычеркивают и опускают в табл. 4.7. Так как полученный план нецелочисленный, то формируем новое правильное отсечение по индексной строке, дописывая к табл.4.7 строку А9 и столбец Аа. Направ- ляющий элемент а93 = —j-р Выполнив один шаг двойственного симплекс-метода, приходим к табл. 4.8. 222
Таблица 4.1 I 4 С, 1 1 0 0 0 0 Вх 4 4, А 2 А. 4 ч 1 А. 40 - 0 (: ч Ч 0 А„ 1 0 0 1 —6 1 0 1. А., 'Ча (1 1 0 Ч., -Ч> 0 Л 7 0 0 0 1 0 0 А» 4/ — /9 0 0 0 -ч -ч 1 Таблица 4.2 J. с. 1 1 0 о 0 0 4 4 А, А? /4.. А, А. А(1 1 А, 4 1 0 0 0 0 1 0 А, —3 0 0 1 ы 0 9 1 А% 3 0 1 0 1 0 — 1 А 5 4 0 0 0 5 1 —9 Д 7 0 0 0 1 0 0 223
Таблица 4.8 • О' 1 1 0 0 С) 0 0 л 4 4 Л2 4 Л4 4 4 и _____ Д7 1 4 1 0 0 0 0 t. 1 0 0 Л4 3/11 0 0 —Vu 1 0 —®/11 0 1 Л2 30/и 0 1 Vu 0 0 . —2/<] 0 Д3 29/11 0 0 5/ц 0 1 -5% 0 0 А 74/ /11 0 0 1/ц 0 0 9/ /Ц «п 4 —8/11 f 0 0 0 0 —9/11 1 1/ц 1 0 1 L 1 1 Таблица 4-4, С1 - 1 1 0 0 0 0 0 Вх 4 Аг ^2 As Д4 4 Д6 4 1 4, 4 1 0 0 0 0 1 0 0 Д4 1 0 0 0 1 0 ' с 1 2 1 0 1 0 0 0 * 1 ^5 И -1 0 0 0 0 1 —9 5 ^3 8 0 0 1 0 0 9 —И А 6 0 0 о 0 0 0 1 224
Таблица 4.5 I * 1 1 1 0 0 0 0 0 1 4 д. л, До 4 Д4 А, 4 4 1 1 41 35 / / 1 0 0 0 5Л> О 0 g Л4 1 0 ) 0 1 —1 —1 О 1 А. 19/ / 9 0 ь 0 0 -*Л 4/9 О 1' А. 6 0 0 1 0 1 —6 О А 6 0 0 0 0 0 1 0 4 8/ /9 0 0 0 0 —‘/о 5 / А) 1 3 . 0 г . 1 1 Таблица 4.6 1 "' ' 1 с< 1 1 0 О О О О i 5 Вг До Д? А, Дд 4 д? □0 1 Д| 3 1 ч О 0 О О О 1 ° АЛ 1- ! ° О О 1 .0 —1 0 I 1 3 О 1 О 0 О 1 —-1 Ад . О О 1 О О 9 11 А. г Р 6 О О О О 1 1 ь — л 6 О О О 0 О к 1 ° j5 8-3164 225
Таблица 4.7 Таблица 4.8 226
В э1ой таблице получен искомый целочисленный план: опт ~ опт “ (х3спт 1°*> х4 опт “ % х5 ОПТ ™ 3 — свободные переменные). Целевая функция Lmax = опт + х2.опт) == 5. Анализ отсечений Гомори методами теории групп Эффективность метода отсекающих плоскостей зависит от того, насколько удачно работает правило формирования отсечений. Выше мы получили правило построения отсечений для метода Гомори," оп- ределяемое формулой 2.11. Заметим, что оно не является единствен- ным и могут быть построены и другие правила. Для поиска эффек- тивных отсечений, которые быстро приводят к целочисленному реше- нию, важно уметь определить все множество отсечений, которые связаны с данным оптимальным нецел очи сленным решением. Используя результаты теории групп (см. приложение 3), пока- жем, что множество отсечений, определяемых из условий типа (2.II), образует абелеву группу, и найдем число отсечений, входящих в ее состав. Для удобства введем следующее обозначение: ? A J — дробная часть А. Два вещественных числа А и В сравнимы по модулю 7, если равны их дробные части, тЛе. Для любого базисного решения х^ системы ограничений справедливо выражение хв = B"'b — B-'Nx/v, (2.14) где B(mX/,I) — матрица ограничений для базисных переменных; х^у — вектор небазисных переменных; N — матрица ограничений, связанных с небазисными переменными. Обозначим через [В]^1 Аю строку матрицы Тогда Ая строка уравнения (2.14) запишется в виде Xl = [В]Г1 ь — [В]г‘ Nx,v. (2.15) Для того, чтобы оптимальное решение было целочисленным, необ- ходимо, чтобы для всех i величины xL были целыми числами, т. е. Xi = целое число, i = 1, tn. В частности, из уравнения (2.15) следует, что каждый элемент Xi должен быть целочисленным, вне зависимости от того, какая ли- нейная комбинация приводит к тому, что коэффициенты уравнения (2.15) становятся целыми. Таким образом, если вектор-строка а -- [а£] состоит из целочис- ленных компонент i — 1, ту то должно выполняться требование У] a,xt: = ахв = целое число *е/б (2.16) 15* 227
Следовательно, для любого целочисленного а на основании (2.15) и (2.16) можно написать «хв = ссВ-1Ь—«B^’Nx.v = целое число. (2.17) Используя очевидное соотношение х = [х] + W, получим, что [аВ—*Ь] + аВ—'b — [aB-1N] хд — aB-1N ? x.v = целое число. (2.18) Учитывая, что по предположению [«В~' Ь], [аВ—1 N] являются матрицами с целочисленными компонентами, а хгу — целочисленный вектор, получим, что дробные части выражения (2.17) должны удов- летворять требованию «В-*Ь «В-*N j хд = g = целое число. (2.19) По определению дробной части вещественного числа имеем 0<JaB-а также L Поэтому с учетом неотрицательности вектора хд заключаем, что целое число g в (2.19) должно быть неположительным, так как в противном случае при £ > 1 мы бы получили ^aB-1b? > 1 + ^aB-1N^ хд, что противоречит определению дробной части. Таким образом, общее уравнение отсечений по Гомори имеет вид аВ— *Ь aB—1N хд < 0. (2.20) Вводя обозначения B-1b == || х(0 || i С 16, B-1N = || a(l- ||, i £ 16, j g JHe6 и подставляя в (2.20), получим следующее общее выражение для отсечений по Гомори S «Ло —ЕЕ X/ < 0. (2.21) { $ /67нед | i I Эта формула обобщает выражение (2.11). Два различных отсечения по Гомори соответствуют двум различным векторам и а2. Выбор компонентов вектора а произволен. Возьмем для иллюстрации отсечение из табл. 4.1 для ах = [10 0]. Из выражения (2.21) имеем ) , 40 | I , 5 ) I . 11 „ 4 Р ' 9 j р ' 9 р4 р ' 9 р5 ° 9 °" <2-22) Вычислим теперь отсечение, соответствующее а2 — [4 0 0]. Получим ) . 40 i L 5 i S . 1 ! п р • g р ’ “э” р4 р " ~9~ | 0, или 7 2 4 п -д---д- х4 — -д- Хв < 0. (2.23) 228
Сравнивая (2.23) с (2.22), убеждаемся, что, исходя из одного и того же ограничения и изменяя лишь вектор а, можно получать различные отсечения. Это объясняется тем, что отсечения по Гомори образуют группу, которая часто оказывается циклической. В этом случае все отсечения, входящие в одну и ту же циклическую группу, могут быть порождены одним и тем же ограничением. Покажем, что отсечения, определяемые соотношением (2.20), об- разуют абелеву группу по отношению к вводимой ниже операции х. Обозначим через I отдельное отсечение по Гомори или соответству- ющее ему неравенство: /г: ^<xB-!b^ < {ocB~1N{xw (2.24) и определим операцию * на множестве I отсечений по Гомори следую- щим образом. Пусть Д J ccjB^’b j < ^czjB-’N (хль (2.25) ' /2: ^a2B-Ib^ < }a2B-IN^хдь (2.26) Тогда Ц * /2: } («! + а2) B~'b: < (ocj + ос2) B^'n { х^. (2.27) Таким образом, реализация операции * есть построение нового отсечения (2.27), осуществляемое введением арифметической суммы векторов ocj и а2- Покажем, что множество отсечений I по отношению к операции * образует абелеву группу. Для этого достаточно показать, что множе- ство векторов А = {се/} образует группу по арифметическому сложе- нию. Для этого нужно доказать у множества А существование следу- ющих свойств: замкнутости, существование единицы, ассоциатив- ности, обратного элемента и коммутативности. 1. Замкнутость. Множество А замкнуто по арифметическому сло- жению, так как если а) Д Z и a} g Z, то и а} + a} g Z, i = = 1, m, где Z — множество относительных целых чисел. 2. Существование единицы. Единицей в А по арифметическому сложению является элемент 0 = [0, 0, ..., 0]. т Единицей в множестве I будет отсечение 0 < 0ГХуу. 3. Ассоциативность. Если а}2), а}3)QZ, i = 1, т, то (а}1) + а}2>) + а<3) = а'-1» + (а}2> + «П и (а'11 + а(2>) Д а<3> = а(1) + (Д2) + + а(3)). Отсюда же (Д * Д) * h = Д * (4 * 4)- 4. Существование обратного элемента. Имеем для каждого az С Z существует такой единственный |3(-, что аг + (Д = + а1 = 0 i = 1, т, откуда |Д = —az. 1) Определение и свойства абелевой группы рассмотрены в приложении 3. 229
Таким образом, каждому вектору а1 £ А соответствует век- тор [——се* ], который является его единственным обратным элементом. Тогда можно найти отсечение обратное к Ц. Имеем 7Х: ] атВ~1 < ^ахВ—'N xjv ; Л-1 d — ai ' b < j — осхВ—*N ? Xjv- 5. Коммутативность. Имеем для всех а}1’, <Х/ ) £ о,/) -Г ос/ ) ~ = а/2) + ос/1', i — 1, т и, следовательно, а(!> + а<2) = а(2’+ а(1), Va(”, а(\Д. Откуда 7Х * /2 = 7а ♦ /х. Таким образом (А, +) и (/, *), представляют собой гомоморфные по отношению друг к другу абелевы группы. Число элементов в группе отсечений по Гомори Используя полученные выше результаты, найдем число различных отсечений типа (2.21), которые можно построить из всех следующих векторов [ос] = [ах, а2, ... , ат] £ Zm. (2.28) Как известно (см. приложение 2), любая матрица B<mXm) может быть приведена к приведенной нормальной форме Смита A(mXm) _ д(тХт)> (2 29) где U(mxm), у<тХт) — невырожденные унимодулярные матрицы. Заметим, что если матрица B(mxm) невырожденная, то и матрица д<тхт) будет также невырождена. В этом случае матрица А(шХт) в приведенной форме Смита будет иметь вид “Sj о ...О'- Lo о ... 6J причем 6/ является делителем 6/+1. Умножая выражение (2.29) слева на U-1, а справа на V-1, получим В = U-’AV-1. (2.31) Найдем обратную матрицу для матрицы В: В”1 = УА-1и, (2.32) 230
(2.33) (2.34) где 'l/Si 0 ... О 1 д-1 = О 1/62 ... о О О ... l/6mJ Подставляя выражение (2.32) в (2.20), получим ^VA~'Ub J < \ aVA-,UN xN. Заметим, что матрица V, будучи унимодулярной, является целочислен- ной. Тогда р(1Хт, = а(1хт)у(тхт) (235) представляет собой матрицу-строку из целочисленных компонент Подставляя (2.35) в (2.34), получаем ' ^A~’Ub^ pA-’UNjXyy. (2.36! Положим Jjlmxmj^mxl) _ y(mxl) g-,.' ^х^х») (2.38) и подставим выражения (2.37), (2.38) в соотношение (2.36). Получим ^A~1TS<^A-1S^xF1). (2.39) Обозначим также J1 = р(1Хт)д-1 = [р1/б1> рз/б2> "" (2Л0) Тогда выражение (2.39) примет вид Jllj < JlS^Xjv. (2.41) Заметим, что Т(тХ1) и S(mX'1) являются матрицами с целочисленными элементами. Воспользуемся следующим легко проверяемым свойством сложения по модулю 1: если b —- целое число, то \ab\ — l\a \ b\. (2.42) На основании соотношения (2.42) неравенство (2.41) может быть записано в следующем эквивалентном виде: П Ji < Ц Ji \xn. " (2.43) Максимально возможное число отсечений соответствует числу раз- личных отсечений (2.43), которые можно получить для каждого векто- ра W РА-1 . (2.44) Другими словами, если имеется St значений величины ц J , 62 значений величины Pz/б» и> наконец, 6ет значений 231
величины р.от ? Pm/6m | , то вектор S рА 1 может иметь лишь 8t X X 62 х ... X бт различных значений и если исключить вектор , то существует | • б2 • ... • 8т | — 1 различных ненулевых векторов Рассмотрим выражение (2.29). Матрица А("гХт) — диагональная и невырожденная. Ее детерминант равен det А = 8Д ... бт. (2.45) Но поскольку det U == ±1 и det V = ±1, то [det А| = | det В|. Таким образом, число возможных отсечений по Гомори равно v = | det В | — 1. (2.46) Циклическая группа отсечений *. Если в матрице A 8j = б2 = = ... = 8т—1 = 1, то все множество векторов р(тХ1) может быть за- писано в виде Ы= [0 0 .. (2.47) В этом случае общее выражение (2.41) отсечений по Гомори примет вид И РпУ®т j । + HpjsJsJ^2+ ... +ПРЛтр-и^«- <2-48> Все отсечения (2.47) получают последовательным применением опера- ции сложения по модулю 1, начиная со следующего отсечения при рт = = 1 Smi/8m SmJ8m }хМг 4- ... + \ Smn/8,n \ XNn. (2.49) Отсечения, определяемые (2.48), образуют циклическую группу *, для которой отсечение (2.49) представляет собой порождающий эле- мент. Пример 4.3. Найдем полное множество отсечений по Гомори для оптимального нецелочисленного плана, приведенного в табл. 4.1. 1. Базис, отвечающий оптимальному решению (х,, х2, х3), равен ’2 И Г В = [AjAsAg] =1 10. |4 —5 0 Матрицу В необходимо привести к приведенной форме Смита. С этой целью умножим В на матрицу Р13 справа, что приводит к перестановке первого и третьего столбцов, и получим Г2 11 11 ГО 0 11 '1 11 2'1 В' = ВР13 = 1 1 0 X 0 1 0 — 0 1 1 4 5 0 1 0 0 0 — 5 4 Далее, умножая В' справа на матрицу вычитаний V! , получим Г1 11 2~ Г1 —11 -2' Г! 0 0' Dr = BP13Vt = 0 1 1 х 0 1 0 = 0 1 1 в О -5 4 0 0 1 0 — 5 4 * Определение циклической группы см. в приложении 3. 232
Умножая Dj слева на матрицу вычитаний Up, а справа на матрицу V2, денную форму Смита получим приве- D2 = UjDjV, U1 О 1 5 Таким образом б4 = 1, б2 О’ 1 4 '1 О О О' О 1. = 1, б3= 9. и = их, V = P13VtV2. V, о' 1 о О' — 1 1 ОТ = д. о о “1 О о Dj О 0 — 5 о о о о 9 Максимальное число отсечений, которые можно получить для'решения в табл. 4.1... равно: v = | det В | — 1 = | det А | — 1 = 9 — 1 = 8. 2. Для построения полного множества рицу отсечений находим вектор у(шх1) и мат- "1 У = иь = ихь = о О' О 1 '38' 7 . 5. '38' 7 , 40 (1) О О 1 5 ‘О О 1 О 5 1 где N = [Д4, А5] — матрица для небазисных переменных х4 их5в исходных ограни- чениях примера 4.2. Так как б, = Т, б2 = I, а б3 = 9, то вектор р будет равен где Р3 — произвольный целочисленный скаляр. Таким образом, варьируя [С, мы находим 8 ненулевых векторов ц: ^ = [0 0 1/9]; р2 = [0 0 2/9]; pi3 = [0 0 3/9]; ц4 = [0 0 4/9], ц5 =[0 0 5/9]; рц =[0 0 6/9]; pi7 = [0 0 7/9]; ц8 = [0 0 8/9]. (3) Подставляя значения jx, а также выражения (1) и (2) в уравнение отсечений по Го- мори вида и учитывая, что xN — [х4, х5], получим следующую полную группу из 8 отсечений по. Гомори: а) для pi = fij 40 1/9' < р/9 • + 1/9 • 1 или 4/9 sj 5/9 xt + 1/9 х8; б) для pi = pi2: 40 2/9 sc •: 2/9 • 5 2/9 • 1 [xR -> 8/9 < 1/9х4 + 2/9хв; в) н = Нз: Ln 3 I I 3 J И 3 J 33 , 3 40 • -g- I 1 -д- • 5 1 X4 -f- 1 -д- • 1 1 Х5 -g- < -д- Х4 -[- -д- Х5, г) fi = pi4: Ln 4 LI 4 J , | 4 J 7 2 ,4 40 'т p v ‘5 Г4 + v1Г6 v "д’x* тx*' 233
г) р. — р-. е) р = р(): Ж) р = р.,: з) р == р8: Lr, 8 г 8 ' _ I . , | 8 J 5 4 ,8 40 • g < ( g 5 S Х4 + j g • 1 5 ХБ —> g Q Q Заметим, что последнее отсечение совпадает с отсечением, которое формируется по строке А2 в табл. 4.1. § 3. АСИМПТОТИЧЕСКОЕ ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ Формулировка асимптотической задачи В последние годы усилия математиков были направлены на разра- ботку данных, более эффективных методов линейного целочисленного программирования (ЛЦП). Одним из таких методов является так называемый метод асимпто- тического целочисленного программирования, предложенный Гомори 132]. Рассмотрим задачу ЛЦП вида: max / (х) = сх, (3.1) наити х А(тХЯ)х < Ь, (3.2) Х/>0, j = 1, п, (3.3) Xj — целые. (3.4) Отбросив на время условие целочисленности (3.4), найдем оп- тимальное решение задачи ЛП. Обозначим через — базис оптимального решения задачи; хв — вектор базисных переменных оптимального решения; x.v— вектор небазисных переменных; N — матрица ограничений, соответст- вующая переменным х«; св, c,v — компоненты вектора с, отвечающие переменным хв и ху соответственно. Используя соотношение Хв = B-'b — B~’Nxw (3.5) и подставляя его в (3.3), получим шах стх = max (свхв ф- cTNxN) = cBB~‘b — (— с« ф- cBB~’N) xn, (з.б) при условиях XN > 0, (3.7) Хв = В“"‘ь — B“’Nx;v- (3.8) 234
Если составляющими вектора хв1Х1) являются целые числа, то он представляет собой оптимальное решение задачи (3.1)—(3.4). В про- тивном случае применяют метод асимптотического программиро- вания, излагаемый ниже. Отметим, что этот метод не гарантирует получения оптимального решения во всех без исключения случаях. Задача асимптотического программирования, порождаемая зада- чей целочисленного программирования, формулируется следующим образом: min g (х) = (— cl? ф- CbB-1N) xN', (3.9) хв + B~’Nx;v = B-1b; (3.10) хл->0; (3.11) XbGZ'”, x)VCZ”, (3.12) где Z — множество относительных целых чисел. Модель (3.9)—(3.12) отличается от модели (3.1)—(3.4) тем, что в ней составляющие вектора Хв могут принимать и отрицательные значе- ния. Представим теперь задачу (3.9)—(3.12) в другой форме, положив для упрощения см = — cn + clB~!N. (3.13) В этих обозначениях задача (3.9) приобретает вид min сд>хл; (3.14) B-1b — B~'Nxw > 0; (3.15) x(«xi)eH(«)( где н = {0, 1, 2 ... (з.1б) Пусть [xw/b] — оптимальное решение задачи (3.14)—(3.16). Это реше- ние остается неизменным для всех векторов b и b1 таких, что В-1Ь В-‘ь1 , (3.17) где знаком х обозначена дробная часть х. Это решение назовем периодическим. Положив х(т+л)Х1 Хв xN можем записать решение асимптотической задачи (3.9—3.12) в следую- щем виде: хв xn B-'bl Г —B-IN 0<ях1) + (1] X [xjv/bj. (3.18) Из соотношения (3.18) видно, что решение задачи асимптотическо- го программирования есть сумма решения ЛП-задачи (первый член) и периодического члена (второй член). 235
Решение асимптотической задачи Воспользуемся приведенной формой Смита А для матрицы В. Если матрица В — невырожденная, то справедливо соотношение: В-1 = VA-1U. (3.19) Справедливо следующее, легко проверяемое свойство сложения по модулю 1: если b является целым числом, то \ab\ = \\a\b\. (3.20) Так как по условию xn — целое, используя соотношение (3.20), огра- ничение (3.15) можно записать в виде: ?В 'b( = ^B ’Njxjvb (3.21) Учитывая, что матрица V состоит из относительных целых чисел, и используя свойство (3.20) после подстановки (3.19) в (3.21), получим U~!Ub } = Д-'UN >. (3.22) Используя обозначение Ub = Т = [//] и UN = S и учитывая, что 0 1/62 0 1/6х 0 о получим из соотношения (3.22) 5 , ; > с(1х«) > j .} Д_________ v(«xi)i Ф “ Ф \ N < А-1 = 1=1 ... т — 1, (3.23) 0 ' 0 Шт_ (3.24) j(mXn) г ? > 1 Q < v < г X г < < А $ > J vm I J j um j J где tt — i-я компонента вектора T; S( — i-я строка матрицы Допустим, что матрица А такова, что 6Т = б2= . . . =6m_j =1. В этом случае, учитывая, что элементы матриц Т и S так же, как и составляю- щие вектора xjv, представляют собой относительные целые числа, не- трудно убедиться, что условия. (3.23) будут выполняться для всех хлг, удовлетворяющих условию целочисленности. Таким образом, асимптотическая задача (3.9) может быть упро- щена и в случае, когда группа отсечений по Гомори является цикли- ческой (см. приложение 3), ее можно записать в виде: min g (xn) — min Сд/хд/ — d~ ^2^2 ~F • •" (3.25) при условиях тН = j V6m • Sm H xd , (3.26) i J H MJ x/v£H", H = {0,1,2...}. (3.27) Задача (3.25) при условиях (3.26)—(3.27) представляет собой извест- ную задачу о ранце, которая рассмотрена в § 1 данной главы. Ограни- 236
чение (3.26) имеет особый вид U x1 + f-x2+ ... +-^ J=J4-j, (3.28) J От От {),п | j ит где все at и b — целые. Это уравнение называют уравнением по модулю 1 [32]. Если оно имеет хотя бы одно допустимое решение, то оно допускает бесчисленное множество решений. Для решения асимптотической задачи (3.25)—(3.27) можно при- менить метод динамического программирования. Рассмотрим основные идеи этого метода. Запишем задачу (3.25)—(3.27) в следующем виде: min g (х„) = CjXt + с2х2 + ... + спхп, (3.29) при условиях + ... = (3.30) где 5 Q Н, xi £ Н, < б, i = 1, п. Пусть Лп-1 (|) представляет собой оптимальное решение следую- щей задачи: Лл_1 © = min (сххх + с2хг + ... + Cn-iXn-t), . (3.31) при условиях + ... = (3.32) £ Н, i = l,2 ... п — 1, где £ — переменный параметр. Учитывая соотношение (3.28), получим id, . d2 । । —1 г > 5 d„ .. > zq -g~ Xt 4-у Xj + ... 4 g— Х/г-l | ~g g- Xn | . (3.33) Обозначим через Лл g-) — оптимальное значение целевой функ- ции (3.25) при ограничении (3.28). Тогда, используя выражение для (g), получим следующее реккурентное соотношение для шага п: Л„ (4~) = min [спхп 4- Л„_1 ^4--------» (3-34) луСН, Н = {0, 1, 2, ... }. Это соотношение можно обобщить на случай произвольного k-ro шага: ЛА© = min xk ' Л/г-1 -------- (3.35) 237
при условии 1^-^+ ... +^Lxk^ + ^-xk^ = jgj. (3.36) Определим множество значений, которые может принимать g в (3.36). Так как at и хь — целые, то £ должно иметь вид ? = -у, где а — целое. Так как 5 не может принимать значений, отличных от •у, —у—, то а — О, 1, 6 — 1 и xk — 0, 1, ..., 6 — 1. Задачу асимптотического программирования (3.29)—(3.30) решаем следующим образом. Исследуя рекуррентное соотношение (3.35), находим последовательно Aj (£), Л2 (£), .... A*_i (g), Aft (§) и т. д. для всех возможных значений g = 0, -у, ..., —у—• При этом на каждом шаге k используем значение A*_j (£), вычис- ленное на предыдущем k— 1-м шаге. Наконец, на последнем шаге при k — п находим Л„ и искомые значения всех перемен- ных Хп, .... Х\. Условия, при которых решение асимптотической задачи является решением исходной задачи ЛЦП Рассмотрим условия, при которых решение асимптотической задачи, является решением соответствующей задачи ЛЦП. Для этого необхо- димо сформулировать необходимые и достаточные условия оптималь- ности. Теорема 4.1. Оптимальным решением задачи (3.25) является п решение, для которого у хн. < 8т — 1, где 8т = det В. Доказательство. Для доказательства используем некото- рые идеи теории графов. С этой целью сформулируем задачу о крат- чайшем пути на графе, решение которой позволяет получить решение асимптотической задачи. Положим равным р-му компоненту От вектора • Sm S из ограничения (3.26). $ > Построим граф с 8т вершинами, которые обозначим через 0, 1, ... • ••» 0™— 1). Этим вершинам поставим в соответствие элементы 0/бш, 1/6т ... (бга — 1)/Зот группы, являющейся циклической по отношению к сложению по модулю 1. Если существует р (1 < р п), удовлетворяющее условию Мт-i = //б- (з-з8> то соединим i-ю и /-ю вершины ориентированной дугой и припишем этой дуге длину ср. 238
Модель асимптотического программирования при таких условиях приводит к задаче о нахождении кратчайшего пути на графе от вер- шины 0 до вершины, соответствующей значению в левой части уравнения (3.26). В случае графа, длины дуг которого неотрицательны, кратчайший путь между двумя вершинами не содержит петель, т. е. у графа с 8т вершинами в этом случае не может быть более 8т — 1 дуг. Полагая %, = 1 каждый раз, когда при выборе кратчайшего пути используем дугу длиной сг, получим доказательство сформулированной теоремы. Следствие. Обозначим через | х^ | длину вектора х^ . Тогда | xn | < | det В | — 1. (3.39) Доказательство. Определим длину вектора хп | хп | = | Xn, -4* хщ ~Ь - - - ~Ь XNn | Поскольку хк/ 0 для всех i = 1, п, получаем I XN | = (Хд/1 -}- XN, -Ь XNn) XN, ~T XN, • • • ~f- %Nn — XyV;-. i Используя результаты теоремы 4.1, получим, что следствие справед- ливо. Теорема 4.2. Для того, чтобы оптимальное решение х'м асимп- тотической задачи (3.26) являлось также и решением исходной задачи целочисленного программирования, достаточно выполнения следующего условия B"'b > I шах (| det В | — 1) • 1(тх1) (3.40) где /max — длина наибольшего по норме из т векторов, формирую- щих строки матрицы B-1N, al — m-мерный единичный вектор. Доказательство. Запишем выражение В~xn в развер- нутом виде B-’Nxw = (В N)i xn (B-1N)2 x'n (3.41} (B-‘N)mxw Для любых векторов p и q всегда выполняется неравенство Шварца pq < I р 11 q I и, следовательно, B-1Nx;v < | (В ’N)j | X | xn I | (B— *N)2 i X | Xn I (3.42) I (B *N)m I X I Xn I. 239
Используя определение Zmax и учитывая следствие из выражения (3.39), получаем max •max max (| det В | — 1)’ (| det В | — 1) (| det В | — 1) = Zmax(detB — 1) • (3.43) Допустим теперь, что выполняется условие (3.40) теоремы 4.2, тогда « учетом выражения (3.43) получаем В-'Ь > Zmax (| det В | — 1) • 1 > B~‘Nx^. Таким образом, имеем хд = B~'b — B^’NXw > 0. (3.44) Откуда следует, что вектор [хв, х^] есть решение задачи (3.1)—(3.4), так как он удовлетворяет условию неотрицательности. Геометрическая интерпретация. Дадим геометрическую интерпре- тацию условий (3.40). Неравенство В~‘у >Zmax(|detB|— 1) • 1 (3.40) определяет конус, содержащийся в конусе (В~ l)(mxm) у >0. Именно в этом случае согласно теореме 4.2 решение асимптотиче- одновременно и решением исходной задачи ской задачи является Рис. 4.3. (3.1)—(3.4). Это означает, что вектор b(mXI), стоящий в правой части ограничений исходной задачи, должен лежать внут- ри конуса асимптотической задачи (3.40). При этом данный конус пред- ставляет собой множество точек, рас- положенных на расстоянииd 1тахХ X(det В |—1) от гиперплоскостей, об- разующих конус В~'у > 0 (рис. 4.3). Заметим, что образующие конической поверхности задаются при этом век- тор-столбцами матрицы В~’, а именно (В-\ и (В-1),. Описание алгоритма. Приведем формальное описание алгоритма •асимптотического целочисленного программирования Гомори. Пусть задача ЛЦП задана в виде (3.1)—(3.4). 1. Решаем соответствующую ей ЛП-задачу и находим базис В, отвечающий оптимальному решению. Если х,-; не удовлетворяет условию целочисленности, то проверяем условие (3.40) теоремы 4.2. Если оно выполняется, то можно перейти к решению асимптотиче- ской задачи ЛЦП. 240
2. Записываем асимптотическую задачу вида (3.25) при ограниче- ниях (3.26)—(3.27), где xjv — вектор небазисных переменных. 3. Решаем асимптотическую задачу (например, методом динамиче- ского программирования) и определяем ее оптимальное решение. 4. Используя соотношения (3.8), находим вектор базисных пере- менных хв. Искомое решение исходной задачи (3.1) определяется как х0 = [хв, xjy] В заключение подчеркнем основные преимущества перехода к ре- шению асимптотической задачи. Эта задача в отличие от исходной имеет лишь одно ©граничение вида (3.26) (вместо т ограничений исходной задачи), что может существенно упростить ее решение. Заметим, что ограничение вида (3.26) представляет собой своего рода обобщенное правильное отсечение. Пример 4.4. Проверим возможность перехода к асимптотической задаче для за- дачи ЛЦП, приведенной в табл. 4.1. Условие перехода к асимптотической задаче таково: B-'b > Zmax ( | det В | - 1) 1, где Z — длина наибольшего из т векторов, формирующих строки матрицы В 1 N. Заметим, что В 1 b — столбец Ао, а В 1 N — столбцы из небазисных векторов А4, А5 в табл. 4. 1. Таким образом, 1/9' 1 - 1/9 Кроме того, ранее мы нашли, что det В = det А = 9. Таким образом, /max = ™х (/(5/9)2 + (1/9)-=; /б* + Р; ]/'+ (- = = = /37 де 6,1. Так как ~g- < 6,1 (9—1), мы не можем гарантировать, что решение ской задачи будет оптимальным решением исходной задачи. Пример 4.5. Рассмотрим пример, когда решение асимптотической вается решением связанной с ней исходной задачи целочисленного асимптотиче- задачи оказы- программиро- вания. Найти при условиях: max (Зх, Ц- 4х2) I Зхг + 2х, < 24 I х г —4х2 < 27 (1) (2) xit х2 0; xi’ х2 — Целые (3) (4) 1. Решаем нецелочисленную задачу ЛП (1) — (3) симплекс-методом, резуль- таты последовательных итераций приводятся в табл. 4.9—4.11. 2. Проверим условие возможности перехода к асимптотической задаче. При этом используем результаты табл. 4.11: [4 21 ГЗ 21 ’ ; det В = =10; det В — 1 = 9; 5,7 11 4 . Г 0,4 —0,2 B->N = [A3Ad = [_0jl о>3 16 8—3164 241
Тогда /тах = max (/0,42+ (—0s2)2; /(0,1)2 + (0,3)2) = max (/0,2; /0,1) = == //2 да 0,45. Необходимо, чтобы выполнялось условие В—’ь > Zmax (1 det В1 — 1)-Т. (5) Таблица 4.9 Таблица 4.10 ci вх z40 А с 4 Д, А, 71з А* 0 0 х3 х4 24 27 3 1 2 н 1 0 0 1 0 4 х3 ‘4 27/4 1 1 1/2 1/4 | Ю/4 | 1/4 д 0 —3 —4 0 0 д 27 —2 0 0 Т Таблица 4.11 ct Вх Аа Д4 Аг 43 Д4 3 4 Х1 х2 4,2 5,7 1 1 0,4 —0,1 —0,2 0,3 Д 35,4 0 0 0,8 0,6 Подставляя в (5) найденные значения, находим, что Г4’2] L5.7J > 9 • 0,45 Г1 [1 Таким образом, можно перейти к решению асимптотической задачи. 3. Находим значения с/ для небазисных переменных х3 и х4 из индексной строки табл. 4.11. Они равны соответственно с3 = 0,8; с4 = 0,6. Г3 21 4. Матрицу В = I необходимо привести к приведенной форме Смита А. Используя метод, описанный в приложении, найдем такие унимодулярные мат- рицы U и V, что UBV = Д: и В V д 0 11 ГЗ 21 Г1 — 41 Г1 0 1 .1 — 3] Х [1 4J х L0 1] [о — 10J Таким образом, 6,= 1; 8$ = вектор Y(2xl) и матрицу S(2x2) ’ 10. Определив U, вычисляем вспомогательные у(2х1) = и х ь = Р S<2x2) = UN = Г 1 ~3 11 Г241 _ Г 271 — з] Х [27] ~ L—57J ’ ^3-^4 1 Г1 01 ГО 1] Iх [о 11 “11 — з] ’ (6) (7) 242
Найдем теперь компоненты ут и Sm, учитывая, что т = 2, у2 = —57, S2 = [1 — 3]. 4. Теперь можно составить асимптотическую задачу для задачи (1) — (4). Ис- пользуя ее общее выражение min cNxN при условиях . I 1 Ут№т ; — ; ; ~ё X Sm j X хд/ г • 1 1 1 om i i (») (10) и подставляя в (8) — (10) значения 62> у г и 8%, получим min (с3х3 + с4х4) = min (0,8х3 + 0,6х4) (10 при условии i Уг/^2 j — Ц U^m X ? х3 1/6т X | Xj -> 1U 5 > S 1U | Л-4 ? Откуда получим 7 _ Н 11 J з | д_зг 10 || 10 |*з+| 10 р|~| 10 %з + 10 4 Итак, асимптотическая задача записывается в виде min (с3х3 + с4х4) = min (0,8х3 + 0,6х4) при условиях: I 9 , 3 - 7 10 *з+ 10 ” 10 ° ^3» ^4 € н, 5. Решаем асимптотическую задачу методом динамического программирования. (15) (16) Первый ша при условии . n 1 2 где&=°, г. Составляем основное рекуррентное соотношение Л4 © = min 0,8х3 9 10 Хз 9 —. Результаты решения представлены в табл. 4.12, (13) (И) Таблица 4.12 S 0 1/10 2/10 3/10 4/10 5/10 6/10 7/10 8/10 9/10 Ат © 0 7,2 6,4 5,6 4,8 4,0 3,2 2,4 1,6 0,8 х3 0 9 8 7 5 5 4 3 2 5 16* 243
Заметим, что нахождение оптимального решения х3 © не составляет труда, оно > 9 1 находится из условия: minxg, где ха удовлетворяет условию ха — £ | = 0. Второй шаг. Основное рекуррентное соотношение имеет вид (I \ 3 СЛ + At g-------— х4 , \ ; {// t 7 где 5 = -jo- / 7 3 \ Обозначим с4х4 + Л4 I —---— х41 = П2 (xj. 7 Задавая х4 последовательно значения 0, 1.9 и используя значения для Л41 1-^— — Q $ \ ---—= Л4 © из табл. 4.12, вычисляем П2 (х4) и результаты заносим в табл. 4.13. Таблица 4.13 *4 0 1 2 3 4 5 6 7 8 9 V} 0 0,6 1,2 1,8 2,4 3 3,6 4,2 4,8 5,4 Л4 (х4) 2,4 4,8 7,2 1,6 4,0 6,4 0,8 3,2 5,6 0 Q2 (х4) 2,4 5,4 8,4 3,4 6,4 9,4 4,4 7,4 10,4 5,4 Из табл. 4.13 находим, что min Я2 (х4) = 2, 4 = Л2 достигается при х4 = 0. Но тогда X „ ^7 3^7 , „ » „ 1 ----jp- -х4 5 = —р— и из табл. 4.12 определяем, что х3 = 3. Итак, мы нашли оптимальное решение асимптотической задачи х3 = 3; х4 = 0. Определим теперь соответствующие значения базисных переменных х( и xai X = Г11 = B-'b — B—1N X — 0,21 Г31 0,з] х [о] ~ _ [4,21 Г 1,21 Г31 ~ [5,7] ~L—0,3] ~ [б] Таким образом, найдено искомое решение задачи (1) — (4) х° = 3; х® = 6; х® = •'= 3; х® = 0. При этом Lmax = max (Зх, + 4х2) = 33. Заметим, что при решении этой задачи методом отсекающих плоскостей пришлось бы несколько раз строить отсечения по Гомори и затратить значительно больше времени. 244
§ 4. МЕТОД ВЕТВЕЙ И ГРАНИЦ Метод ветвей и границ 1 относится к группе комбинаторных методов дискретного программирования и является одним из наиболее рас- пространенных методов этой группы. Рассматриваем задачу дискретного программирования в общей форме: минимизировать z = f (х) (4.1) при условиях х Q G, где G — конечное множество. В основу метода ветвей и границ положены следующие построения, позволяющие в ряде случаев существенно уменьшить объем перебора вариантов. Вычисление нижней границы (оценки) min г. Часто удается найти нижнюю границу (оценку) целевой функции на множестве планов G (или на его некотором подмножестве) £ (G) — такую, что для всех х °C G имеет место f (х) > £ (G). Ветвление (разбиение на подмножества). Реализация метода свя- зана с постоянным ветвлением множества планов G на дерево под- множеств. ' Ветвление происходит по следующей схеме. Нулевой шаг. Имеется исходное множество G = G(0). Некоторым способом его разбивают на конечное число подмно- жеств Gi(I), GV’, .... G^. й-й шаг (й > 1). Имеются множества , G^> , ..., G?\ еще не подвергавшиеся ветвлению. По определенному правилу (указанному ниже) среди них выбирают множество Gv(i.) и разбивают на конечное число подмножеств (рис. 4.4). Затем еще не подвергавшиеся раз- биению множества Gift), G^, ..., G^(k)4-i, ••• ..., Gp%), а также подмножества G^l),i, С^й),2, ..., GV(h),s переобозначают G*A+1>, G(2ft+2\ ..., Gp&+1). Пересчет-оценок. Если Gj ex G3, то min f (x) ;> min f (x). X e G, x 6 G2 Поэтому, разбивая в процессе решения множество Go на подмноже- S ства Gi, О2, ..., Gs (Go = (J GJ, всегда считают, что оценка для любого г=] 1 Впервые метод ветвей и границ был предложен в работе Лэнг и Дойг в I960 г. применительно к задаче целочисленного программирования. Однако эта работа ие оказала заметного влияния на развитие идей дискретного программирования. Второе рождение метода связано с работой Литтла, Мурти, Суини и Кэрел, 1963 г., посвящен- ной задаче о коммивояжере. 245
из них не меньше оценки для исходного множества Go, т. е. для всех множеств g (G() > £ (Go). В конкретных ситуациях это неравенство для некоторых i может оказаться строгим неравенством. Нахождение планов. Для конкретных задач могут быть указаны раз- личные способы определения планов в последовательно разветвляемых подмножествах. Любой такой способ опирается на специфику задачи. S Признак оптимальности. Пусть G = (J G, и некоторый план Хо £ 1 g Gv. Если при этом f (Хо) = £ (Gv) < % (G^ для всех i, то Хо — опти- мальный план (доказательство следует из определения оценки). Оценка точности приближенного решения. Пусть G = (J G(, Е — z=i ~ min Е (Gz). Если X — некоторый план задачи, то Е < min f (X) < 1=1, 2, .... s x₽G < f (X). Если разность Д — f (X) — Е, невелика, то X можно принять за приближенное решение, а Д будет оценкой его точности. Описание алгоритма метода Нулевой шаг. Вычисляют оценку Е (G) = Е (G<0>). Если при этом находят такой план Хо, что / (Хо) = £ (G(0)), то Хо — оптималь- ный план. Если оптимальный план не найден, то некоторым способом разби- вают множество G(0' на конечное число непересекающихся подмно- жеств G(0) = Gj1! U Ga* U ... U Gp1/ и переходят к первому шагу. Первый шаг. Вычисляют оценки £ (Ср) при i = 1, 2, ... ..., pj. Если удается найти такой план Хо, что Хо С Gp1’ (1 < р < pj и / (Хо) = g <>) < £ (GP) при i — 1, 2, ..., то Хо — оптималь- ный план. Если же оптимальный план не найден, то для дальнейшего разбие- ния выбирают наиболее перспективное множество Gv1} по следующему правилу: g(G<,”) = min E(GP>). (4.2) Z=l,2,...,p, Разбивают множество G^ на несколько подмножеств: Gy1 — = U Gy}. Еще не подвергавшиеся разбиению множества переобозна- <= 1 чают Gj2), G®, .... Gp2'’ и переходят ко второму шагу. fe-й шаг (/? > 2). Вычисляют оценки g (G,-fe)) при i = 1, 2, ... ..., pk. Если удается найти такой план Хо, что Хо g Gpl> (1 < р < < pfc) и f (Хо) = g (G^) < £ (G!:"’) для всех i = 1, 2, ..., рь то Хо — оптимальный план. Если же оптимальный план не найден, то снова выбирают наиболее перспективное множество Gy} по правилу: g(G^)= min £<’)• (4.3) <=1.2...чР& 248
Разбивают множество G^l) на несколько непересекающихся под- sk множеств <Xft) = j Gvl и переходят к (k + 1)-му шагу. Примечание. При реализации описанной выше общей схемы метода вет- вей и границ для отдельных задач дискретного программирования необходимо разра- батывать правила ветвления, способы вычисления оценок и нахождения планов, ис- ходя из специфики конкретных задач. Метод ветвей и границ для задачи целочисленного программирования Рассматриваем частично целочисленную задачу ЛП: минимизировать г = f (X) = S cjXj (4-4) z=i при условиях: S сщх/ Ь( (i = 1, 2, ... , m), (4-5) /=1 О < Xj < dj (j = 1, ... , n), (4.6) X] — целые числа (/=1,2, ... , nJ. (4.7) Как и в методе отсекающих плоскостей, процесс начинают с ре- шения непрерывной задачи ЛП. Если полученный при этом оптималь- ный план Хо не удовлетворяет условию (4.7), то значение целевой функции Ео = f (Хо) дает нижнюю оценку для искомого решения, т. е. min г = £0. * Пусть некоторая переменная х(-0(1 < i0 < nJ не получила в плане Хо целочисленного решения. В целочисленном плане значение xla следует либо уменьшить по крайней мере до U(„], либо увеличить по крайней мере до [хд] +1. Если границы изменения Хд заранее не заданы, то их можно вы- числить, решив для этого две вспомогательные задачи ЛП. Эти за- дачи состоят в максимизации и минимизации Xia при условиях (4.5) и (4.6). Теперь для каждого фиксированного целочисленного значения хд в найденном отрезке (хд min, Хг„тах) находят min z, решая задачу ЛП с ограничениями (4.5), (4.6) и с дополнительным ограничением хд < < kia — [хд] или ограничением х,а > йд + 1. Таким образом, все указанные выше возможности можно пред- ставить в виде некоторого дерева, в котором вершина 0 отвечает пла- ну Хо, а каждая из соединенных с ней ветвью вершин отвечает опти- мальному плану следующей задачи: минимизировать z при условиях (4.5), (4.6) и дополнительном условии, что переменной Хд дано зна- чение Хд < kio или хд > klo 4- 1, где kia — целое число. Каждой из таких вершин приписывают оценку § = § (г0, k), которая равна min г при указанных выше ограничениях. Очевидно, с0 <. g (i0> fe) для всех fe. 247
Если оптимальные планы полученных задач удовлетворяют усло- виям целочисленности, то план с минимальной оценкой g0 — = min g (i0, k) и будет оптимальным планом исходной задачи. В про- ft тивном случае возникает необходимость в продолжении ветвления. При этом каждый раз для очередного ветвления выбирают вершину с наименьшей, оценкой. Любой маршрут в дереве от начальной вершины 0 до некоторой вершины определяет допустимую последовательность выбора цело- численных решений для переменных. Процесс продолжают до тех пор, пока продолжение ветвления становится невозможным. Каждая конечная вершина отвечает некоторому допустимому це- лочисленному плану. Вершина с минимальной оценкой дает опти- мальный план. Описание алгоритма Нулевая итерация. 1. Задание множества Go. А4ножество Go опре- деляется условиями (4.5) и (4.6). 2. Находим оптимальный план Хо задачи (4.4) при условиях (4.5), (4.6). 3. Вычисляем оценку g (Go) = f (Хо). Если Хо удовлетворяет условиям целочисленности, то он является искомым. Иначе переходим к первой итерации. Первая итерация. 1. Ветвление. Выбираем некоторую неце- лочисленную компоненту х£ — хм, 1 < I < Множество Go разби- вают на два непересекающихся подмножества GP и GP следующим об- разом: G)1’ = {X : Х£в0 и < [xj}; (4.8) GP = (X : X £ Go и > [xj + 1} (4.9) 2. Решаем ЛП-задачу (4.4) на множестве Gp и находим опти- мальный план ХР. Соответственно решив задачу (4.4) на множестве GP, находим план Хр. 3. Вычисляем оценки g (Gp) = f (Хр) и g (G2’) = / (Х2 \ 4. Проверяем признак оптимальности. Если ХР — целочисленный и g(Gp) — min {g(Gp, |(Gp)}, то Хр — искомый план. В противном случае переходим к следующей итера- ции и выполняем процедуру ветвления. k + 1-я итерация. Пусть проведено k итераций, в результате которых построены подмножества G’ft), i = 1, rk> определены оценки £ (Gp) и еще не найдено искомое решение. Тогда выбираем наиболее перспективное подмножество Gp — такое, что I (Gp) = min g (Gp). (4.Ю) i 1. Производим ветвление Gv ’ на подмножества: Gp и GP так, что = Gp U GP 248
С этой целью выберем некоторую нецелочисленную компоненту плана Xtfe>, например, х® = xs0, 1 < s < пх. Тогда множества G(vkl и dfy определяются из условий: G^ = {X-Xe^v’ A xs^ fe]}, (4.11} G$= {X:X£G‘ft> fUs>fel +1}. 2. Решаем ЛП-задачи (4.4) на множествах G^| и Gfy и находим соответствующие оптимальные планы Х(,д и Х^2 и соответствующие им оценки g (Gv,i) = f (X^i); g (G^2) = f (X^2). 3. Если Х$д удовлетворяет условию целочисленности, то вер- шина G(vj — концевая и дальнейшему разбиению не подвергается. Если при этом также g (Gvj) < (g (G)ft))} для всех висячих вершин G/ft), то Xv}i — искомый целочисленный план (это признак опти- мальности). В противном случае необходимо продолжить процесс ветвления и дальше. Укажем некоторые особенности применения метода ветвей и границ для задач ЦП. 1. Если все коэффициенты с/ целевой функции — целые при 1 < < j < tii и равны нулю при / > пх, то оценку g (Gv >) можно заменить на более сильную оценку g- (Gv’) = ]f (Х$А))[, где Щ обозначено наименьшее целое, но не меньшее, чем а, т. е. округленное до ближай- шего целого с избытком. 2. Из описания алгоритма следует, что в применении метода вет- вей и границ для полностью целочисленных и для частично-цело- численных задач нет никакой разницы. Геометрически этот метод можно интерпретировать таким образом. Гиперплоскость, определяемая целевой функцией задачи, вдавливает- ся внутрь многогранника планов соответствующей задачи ЛП до встре- чи с ближайшей целочисленной точкой этого многогранника. 3. Вводимые на каждой итерации новые ограничения вида х(- > > fej + 1 или -< fej играют роль отсечений. 4. При вводе нового ограничения нет необходимости заново решать всю задачу (4.4), а можно использовать результаты предыду- щей итерации, непосредственно вводя в таблицу оптимального решения новое ограничение. 5. При решении ЛП-задачи максимизации методом ветвей и гра- ниц используют верхнюю границу: g (GV’) = max / (х). xPG(') Я При этом признак оптимальности формулируется противополож- ным образом. 249
Пример 4.6. Рассмотрим пример 4.2, pernei В эквивалентной форме записи задача имеет вид min — (Xj -f- х 2х, + 11х2 < xi “I- хз -7 7 4xj — 5ха < 5 9, xt, х2 — це, Нулевой шаг. Оптимальный план зада 1ный методом Гомори, в § 2,'гл. 4. 2) 38 Рис. 4.5. лые числа. п„ v I 40 ' 23 \ |ЧИ ЛП Хо = I —; —— ] . Тогда имеем g(G(0)) = ] f (Хо) [= = | — 7 [ = —7. Так как план Хо не удовлетво- ряет условию целочисленности, возьмем его нецелочисленную ком- поненту хх и разобьем множество G^0) на Gp и G^t G<”= {X : X €G(0) Л^«4}, G?? = {X: X£G® f)xi>5}. Первый шаг. Решаем две задачи ЛП, состоящие в минимиза- ции исходной задачи по множествам G<» и О<». Покажем, как можно найти min/ (х) на множествах G^ и OS,1! используя результаты предыдущей итерации. 1. Итак, пусть требуется найти min f (х) при X f Gj1’, где Gi(1) = 4 Л л?1 < 4. Воспользуемся таблицей оптимального плана Хо, которая приводится ниже (табл. 4.14). Таблица 4.14 С’(- 1 | I 1 0 0 0 Вх 4 Аз 4 А5 1 А> 40/9 1 0 0 5/9 1/9 0 A3 1 0 0 1 —6 1 I Аз 23/9 0 1 0 4/9 -1/9 7 0 0 0 1 0 Необходимо ввести в систему новое ограничение х1 < 4. Запишем его в эквива- лентном виде: хг + хв = 4. Допишем строку А1; к табл. 4.14 и приходим к следующей таблице: 250
Таблица 4.15 С1 Вх Ай А А А А А6 Ае А 40/9 1 0 0 5/9 1/9 0 А3 1 0 0 1 -6 1 0 Аз 23/9 0 1 0 4/9 -1/9 0 Ав 4 1 0 0 0 0 1 А' —4/9 0 0 0 —5/9 — 1/9 1 Так как столбец А, должен быть базисным, то вычтя из строки А6 строку А7, получим Ag, которую и используем в дальнейших операциях, а Ав вычеркнем. Обратим внима- ние, что строка Ag представляет собой правильное отсечение Гомори, составленное по строке Ар Следовательно, метод ветвей и границ для задачи ЛЦП представляет собой разновидность метода отсечений Гомори. Так как а^0 = —4/9 < 0, то столбец Ао табл. 4.15 представляет собой псевдоплан и потому применим двойственный симплекс-метод. Так как табл. 4.15 совпадает стабл. 4.1, то спустя две итерации мы найдем оптимальный план Хр, который при- веден в табл. 4.3 (см. § 2). Таким образом, хх = 4; х2= иФ = ШХ(1!)) [ = ] - 4г 1 = ~6- 2. Найдем теперь min / (х) на множестве G.-,''1 = Go Г) xt :> 5. Вводя свобод- ную переменную х7, ограничение > 5 запишем в виде х, — х7 = 5 или — х, -Т- х7 — —5. Запишем его в дополнительную строку А, в табл. 4.16, основная часть которой совпадает с табл. 4.14. Складывая А, и А1Я чтобы снова привести At к единичному виду, получим строку А7 (табл. 4.16). Таблица 4.16 ci вх А) А А2 А4 А, Ац А, Аг 40/9 1 0 0 5/9 1/9 0 А, 1 0 0 1 —6 1 0 а2 23/9 0 1 0 4/9 -1/9 0 А —5 —1 0 0 0 0 1 А1 —5/9 0 0 0 5/9 1/9 1 251
Но так как х)0 = —5/9 < 0, а > 0, для всех / = 1,7, то это есть признак неразре- шимости данной задачи. Следовательно, Gp = 0 и поэтому § (Gp) = оо. Разбиваем Gp на Gp и Gp2. где Gp = {X: X g Gp П хг =С 2), Gp •= = X: X £ Gp Л > 3}. ’ ’ Переобозначим Gp[ = Gp, Gp2 = Gp, Gp = Gp. Второй шаг. Решаем две задачи ЛП, состоящие в минимизации исходной задачи при дополнительном ограничении х2 < 2 и х2 > 3. Тогда Х(Р = {зА; 2} и g'(Gp)= ]-5-А [ = -5; Хр = {2-1-; з) и |'(G(22))= ] —5 — Б; V (GP) = со. СР = 0; Третья итерация Рис. 4.6 252
Производим разветвление множества G(2) = G(2) (j 0(2), где G<$ = (X : X £ G® Л *i =S 3}, G® = {X : X £ G<2) П x{ 4). Переобозначим G^\ = G(3\ G^= G^3), G® = g13>, G(32) = G^. Третий шаг. Решаем две задачи ЛП, состоящие в минимизации исходной задачи по множествам G(3) и G^- Находим = (3, 2) и I' (G1-^) = ]—5 [= —5; З''3> = 0 и g (G®) = оо; Х(3) = X® = (й -±- ; з) и g (О'3’) = - 5; Gf ’ = G^ = 0 и g (G<3>) = 00. Дерево решений приведено на рис. 4.5. На рис. 4.6 приведены графический способ решения данной задачи, а также гра- фическая иллюстрация влияния вводимых ограничений на допустимое множество решений. Итак, получен целочисленный план Х'3' = (3;2), причем g = min {g (G^3)); g (G?); g (G^>); g (G<3>)) = min {-5; co; —5; 00} = -5. План X<3> = {3, 2} — оптимальный, так как f (X) = —5 < min {g (G(j3)); I (G<3>); g (G<3’)}. Целевая функция Lmln = —5. Метод ветвей и границ для задачи о коммивояжере Постановка задачи о коммивояжере такова. Имеется п городов Alt А2, Ап. Задана матрица расстояний между ними С = || с(7- ||. Примем в общем случае, что cG с-и. Необходимо отыскать такой кратчайший замкнутый маршрут или цикл (ц, i2, ..., i„), проходящий через каждый город один раз, при ко- тором минимизируется суммарная длина пути: / ((’1, г2, •••, in) = СЦЦ + CGG + ••• + (4-12) Описание алгоритма. 1. Задание множества 6(0), которое состоит из всех циклов (замкнутых маршрутов). 2. Задание множеств G1^’ (v = 1, 2....... rk\ k = 1, 2), каждое из которых состоит из всех циклов, подчиненных одному из следую- щих дополнительных условий: а) из пункта i следует идти непосредственно в пункт j для всех упорядоченных пар (t, /), входящих в некоторое множество б) из пункта i запрещается идти непосредственно в пункт / для всех упорядоченных пар (t, /), входящих в некоторое множество Р^\ 3. Вычисление оценки для Gw. Рассмотрим некоторый цикл iit /2, ..., in- Пройденное расстояние / (1'1, in) — снЦ + Cl2G + ""° + с:п1<- (4-13) Пусть min Cq = 253
Тогда Сц = СЦ — /iz > О и п I (it, i2, •. • , *n) — X! hi + Citi2 4- сщ., 4- • • • 4- Cinie 1=1 Далее, пусть min с'ц = Я/. Тогда с"ц = Сц — Hj> 0 и n n l (jv i2, ... , in) = X ht 4- S H; 4- (c'hh 4- ... 4- cj j. (4.14) /=i /=i Описанное выше преобразование матрицы, позволяющее из исход- ной неотрицательной матрицы С получить матрицу С", называется приведением, а величина S hi 4- S Н, = /i2 (4.15) 1=1 /=1 суммой приводящих констант. Имеет место следующая теорема [28]. Оптимальный план задачи о коммивояжере с матрицей С" является оптимальным и для задачи о коммивояжере с матрицей С. Длина пути I (tb i2, ..., in), соответствующего матрице С, и длина пути Г', соответствующего мат- рице С", связаны соотношением I (h, С, • • > г\) = Р (Ч> z2> • • > О) + ? (G1 ’)> (4.16) где g = hs. Доказательство теоремы вытекает непосредственно из соотноше- ния (4.14). 4. Ветвление. Каждой вершине множества G^} дерева решений будет соответствовать своя оценка g (Gy’) и своя приведенная мат- рица Gv . Множество G(vft) при ветвлении разбивается на два подмножества. По некоторому способу (указанному ниже) выбирают пару пунктов (г, /и), не входящую в множества Ру’ и . После этого производят ветвление: Gy ’ = GZ U 0$. - Здесь Gv.\ получается из Gy’ при добавлении следующего условия: из пункта г следует идти непосредственно в пункт m; G$ji получается при добавлении условия: из пункта г запрещается непосредственный переход в пункт т. Следовательно, Р$ = Pv ’ U (г, т); Р^л = Р^', Р^л = Pv Ру.’2 = = Pv} U (г, т). Выбор пары (г, т) основан на следующих соображениях. Выбира- ют Gyi так, чтобы это множество с наибольшей вероятностью содер- жало оптимальный цикл, a — не содержало. Для этого выбирают 254
пару (г, т) так, чтобы выполнялось условие о<А> (г, т) = 0, (4.17) где 4Л> (G tn) — (/, /и)-й элемент приведенной матрицы Cv\ Затем необходимо выбрать пару (г, hi) при соблюдении условия (4.17) таким образом, чтобы циклам, входящим в множество G^L соответствовали как можно более длинные пути. По определению множества G$, путь по любому из этих циклов переходит из пункта г в некоторый промежуточный пункт / (/ т), а в пункт т попадают из некоторого пункта i (t г). Ясно, что длина этого пути будет не меньше чем 0 (г, т) = min c{vk) (г, /) + min (I, tri). (4.18) 1=£г Остается выбрать пару (г, tri) так, чтобы 0 (г, т) было максималь- но, т. е. 0 (г, т) — max0 (р, q) — max (minc^ (р, j) + min d? (i, <?)}. (4.19) p,<7 p,q b£p При этом необходимо выполнение условия Cv' (р, q) = 0. (4.20) 5. Преобразование матрицы расстояний при ветвлении. Пересчет оценок. Рассмотрим ветвление G(vfe) = G$ (J G^z- Сначала рассмот- рим множество 6$ и укажем правило перехода от С$й) к С$. Матрица содержит те же строки и столбцы, что и матрица С$й). Строим промежуточную матрицу С($ по правилу: Cv’ (i, j), если (i, j) (r, tri)', co, если (i, /) = (r, m). Применив к Cvft2 процедуру проведения, получают При этом сумма приводящих констант равна 0 (г, tri). Таким образом, &(G^) = §(G^)+'0(n/n). (4.21) Теперь рассмотрим множество 0$д и определим правило пере- хода от С™ к С),д. Так как по определению множество G$ заведомо содержит не- посредственный переход из пункта г в пункт т, то при переходе от матрицы Cv' к матрице С$д можно вычеркнуть строку г и столбец т. В результате получают С^д. Далее следует проверить, не состоит ли точно из одного цикла. Если это так, то к матрице применяют процесс приведения. Получив п п сумму приводящих констант hs = S пересчитывают i=i /=1 оценку ^(G^) = g(G'ft))(4.22) 255 С 42 (1, /) = I
При этом величина оценки £ (б$д) равна длине этого единствен- ного цикла. Если Оуд не содержит точно один цикл, то следует запретить воз- можность образования подциклов (замкнутых маршрутов), прохо- дящих через количество пунктов меньше п. Для этого необходимо найти все маршруты, которые включают переход (г, т). Обозначим 5уд — множество таких маршрутов, т. е. множество подциклов, со- держащих (г, т). Процесс запрещения образования подциклов выполняют следую- щим образом. В множество входит подцикл (г, т, г). Его запрещают, пола- гая Суд {т, г) = оо. Далее, если из элементов можно составить маршрут (ii, i2, .... ip, г), то в-множество входят циклы вида (г?, ^+1, ..., ip, г, т, где 1 < q < р. Запрещают эти маршруты, полагая с^д (т, i(]) = оо. Если же из элементов множества P[v} можно составить маршрут (m, Q, г2, ..., Д), то в 5уд входят циклы вида (г, т, ilt ..., i , г). Поэто- му запрещают эти маршруты, полагая c^l (ig, г) = оо, 1 < g < р. Все остальные элементы матрицы С$д остаются без изменений. Таблица 4.17 0 1 2 3 4 5 0 \/ 4 10 13 4 8 I 2 \/ 9 7 6 7 2 8 5 /\ 5 5 9 3 5 8 5 \/ 7 ю 4 6 4 4 9 /\ 4 5 5 1 4 8 3 \/ 256
Затем применяют операцию приведения к матрице С$д и, найдя сумму приводящих констант h$vi, получают матрицу С^д. Оценку | (ОЙ) определяют по формуле (4.23) Пример 4.7. Решить задачу о коммивояжере, определяемую матрицей С (табл. 4.17). Применив процесс приведения, приходим к матрице Со (табл. 4.18): Таблица 4.18 X / 1 \ 0 1 2 3 4 5 Д а. 0 /\ 0 6 9 0 4 4 0 0 0 \/ 7 5 4 5 9 4 2 3 0 /\ □ 0 4 5 0 3 0 3 0 \/ 2 5 О 4 2 0 0 5 \/ 0 4 0 5 4 () 3 7 2 //Ч\ 1 2 Н; 0 0 0 0 0 0 3/ 0 0 0 5 0 4 Нулевой шаг. E,(G™) = + SH/ = 21. Затем вычисляем величины а, и В, 1 а, = с> ., 8, = с, , , где с,- , — наимень- 1а /о го lo]i 1о Ч/e lo!i ший отличный от = 0 элемент строки <0, — наименьший отличный от = = 0 элемент столбца/0. Поскольку 023=^+ Рз= 5, ©10 ==04+ ₽о=4, ©45 = а4+ тах W “ Р,<7 = max {023; 01(1; 046) = 5 = 0 (2, 3), то в качестве пары, входящей в искомый цикл, нужно выбрать пару (2, 3). 17 8-3164 257
Первый шаг. Производим ветвление G® — Gj1' [J G^\ где Gp такое, что G'/’ = {2, 3}, a = {2ГЗ}. Вычисляем оценку g (G^1) = g (Go) + 023 = 21 + 5 = 26. Для вычисления § (0^) необходимо построить матрицу С^1. Вычеркнем в матрице Со вторую строку и третий столбец и, полагая элемент С32 = со, выполним процесс приведения. В результате получим матрицу Найдя = SA/ + SHj = 0, определим оценку для множества Gj'1 : § (Gp) = = I (Go) + АУ1 = 2l- Так как S (G?’) < § (G^’), то на следующем шаге разбиваем подмножество G^1’. Второй шаг. В качестве пары, по которой производим ветвление, исполь- зуем пару (4, 5), так как 0 (4, 5) = 4 = max 0 (г, и). Производим ветвление G^’ = Gj2) (J G^'1, где G((2> = {(2, 3); (4, 5)), G(22> = = {2, 3); (4, 5)}. Вычисляем оценку § (G^2>) ~ g (Gjjj) + 0 (4, 5) = 21 + 4 = 25. Затем строим матрицу C\2). Для этого вычеркиваем четвертую строку и пятый столбец и, полагая см = оо, выполним процесс приведения. Получим матрицу (табл. 4.20). 258
7 аблица 4.20 X. ( / 0 1 2 4 hi щ 0 /\ 0 3 0 0 0 1 й \/ 4 4 0 4 3 0 3 /\ 2 0 2 5 4 0 0 /\ 0 0 н. 0 0 3 0 3/ 0 0 3 0 Таблица 4.21 1 2 4 ai 0 \/ 3 0 0 3 3 1 /\ 0 2 1 5 0 0 \/ 0 0 И 0 0 0 R, 1 3 17 259
Находим = S/г^ + — 3. Тогда i (G<2)) = (0^)’+ = 21 + 3 = 24. Так как g (G+) < g (G(2)), то на очередном шаге производим ветвление множест- ва G^2). Третий шаг. На этом шаге выбираем пару (1,0), так как 0 (1, 0) = 4 = = max. 0(р, q) (см. табл. 4.20). Производим ветвление G([2> = G<3) (J G<3\ где G(3) = {(2, 3); (4, 5); (1,0)}, G® = {(2, 3); (4, 5); (Тб)}, g (G(3)) = g (G(2>) + 0 (1, 0) = 24 + 4 = 28. Строим матрицу C<3) (табл. 4.21): h%\ = 2; g (G(3)) = 24 + 2 = 26. Так как g (G(3)) > g (G2!|), то производим ветвление множества G22>. Четвертый шаг. Строим матрицу С<2), для этого в матрице Cj!) пола- гаем с4Г, = оо и выполняем процесс приведения: g(G‘2>) = g(Gf>)+M22> =21+4. 2S0
Таблица 4.23 С<4> = \ / i \ 0 1 4 5 II, С(,1 0 /\ 0 0 0 0 0 1 0 /\ 4 1 0 i о 0 3 \/ 1 0 1 5 4 IZI 2 /\ 0 2 н. 0 0 0 0 0 0 2 1 С® = Таблица 4.24 \ i i 0 4 5 hi СС; 0 \/ 0 0 0 0 1 н 4 \/ 0 4 3 0 \/ 1 0 1 н, 0 0 0 У/ 0 4 1 261
Таблица 4.25 \ / ( X 4 5 hi а/ 0 0 \/ 0 3 \/ 0 0 Н,‘ 0 1 р/ 1 Выбираем пару (4, 2). Производим ветвление G22) = Gp (J Gp, где G(4) = = [J (4, 2), Gp = Gp (J О- Рис. 4.7 g (Gp) = 25 + 3 = 28. Вычислим оценку g (G\4)), для чего строим матрицу Ср (табл. 4.23). Так как 2йг- + SZZ/ = 0, то g (GP) = = g (Gp) = 25. Поскольку g (Gp) < g (G^4>), то на следующем шаге производим ветвление g(4). Пятый шаг. Выбираем пару (5, 1). 0 (5, 1) = 2. Производим ветвление Gp = G<5) (J °®- Gp = G<4> (J (5, 1), Gp = G<4) [J О; g (Gf) = = & (О'1 ’) 4- © (5, 1) = 25 + 2 = 27. Строим матрицу С(р. Так как У hi + У Hj — 0, то g (Gp) = § (G(4)) = 25. «' / 262
Шестой шаг. Выбираем очередную пару (1,0), так как 0(1,0)= 4 = = max 9 (р, q). Производим ветвление G\5> = Gj6' (J G(26\ где G)s' = G^ □ Ud, 0); G<6> = G<5> и (О). Находим оценки для образованных множеств: g (О!>6)) = 25 + 4 = 29. Далее строим матрицу С)6' (табл. 4.25) g (G’j6)) = 25 + 1 = 26. Из матрицы С<6> выбираем две последние пары (0, 4) и (3, 5). Последние два шага выполняем аналогичным образом. Получаем цикл, отвечающий множеству О)8,:(2, 3), (4, 2), (5, 1), (1, 0), (0, 4), (3, 5). Длина цикла равна оценке для множества G)8' : I = g (G(8>) = 26. В этом мож- но убедиться непосредственной проверкой. Поскольку оценка g (G^) для множества G^ не превышает оценок для всех остальных вершин, которые отвечают отбро- шенным вариантам, то найденный цикл является искомым. Процесс построения дерева решений приведен на рис. 4.7, а искомый цикл — на рис. 4.8. Вопросы для самопроверки 1. Перечислите основные математические модели дискретного про- граммирования. 2. Что называется правильным отсечением, как оно формируется в методе отсекающих плоскостей? 3. Какой геометрический смысл имеет правильное отсечение? 4. Могут ли величины уг/ быть отрицательными, если, например, хц < 0? 5. Что представляет собой полное множество всех отсечений, формируемых по некоторой симплекс-таблице? Как найти мощность этого множества? 6. Почему в методе отсекающих плоскостей используется двой- ственный симплекс-метод? 7. Сформулируйте достаточные условия возможности перехода к асимптотической задаче при решении задачи ЛЦП методом Гомори и поясните их смысл. 8. Какова основная идея метода ветвей и границ? В чем состоят особенности его реализации при решении конкретных классов задач (моделей)? 9. Как производятся ветвления множества и вычисляются оценки при решении методом ветвей задачи линейного целочисленного про- граммирования (ЛЦП) на минимум и максимум? 10. Какая аналогия существует между методом Гомори и методом ветвей и границ применительно к задачам ЛЦП? 11. Как производятся ветвления множества и вычисляются оцен- ки при решении методом ветвей и границ задачи о коммивояжере? 12. Укажите основные достоинства и недостатки метода ветвей и границ при решении комбинаторных задач дискретного программиро- вания.
Глава 5. НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ Задача нелинейного программирования (НП-задача) в общем виде формулируется следующим образом. Найти шах / (хх, .... хп) при условиях ' gj (хи ... , х„) > 0; g2 (xlt х„) > 0; . gm (xv , хп)>0, где функции ft (х4, .... хп), gt (xt, хп) i = 1, tn в общем случае не- линейны. В отличие от задач линейного программирования (ЛП) для задач НП общего метода решения нет. В задаче ЛП допустимое множество R всегда является выпук- лым с конечным числом крайних точек. Используя аппарат симплекс- метода и перебрав только крайние точки, всегда за конечное число шагов возможно найти оптимальное решение. Напротив, в НП-за- дачах, если в ограничениях есть нелинейность, то выпуклость допус- тимого множества и конечность числа его крайних точек необяза- тельны. Из-за этих особенностей и возникают основные трудности решения НП-задачи. Рассмотрим следующие примеры: Пример 5.1. Допустимая область R определяется ограничениями (рис. 5.1): 8i РД х2) = 6 — Xj 0; 8ч (хр х2) = 6 — х2 > 0; £з (Хр хг) = 6 — х,х2 > 0; Xj > 0; х2 0. Допустимое множество решений является невыпуклым. Пример 5.2. §1 (хг, х2) = 4-Х|-x22J 0, %! 5=0; х2 > 0. Допустимое множество решений (рис. 5.2) хотя и выпукло, но имеет бесконечное число крайних точек. Пример 5.3. max (10хх + 20х2 -ф ххх2 — 2х) — 2х^ )= max f (х,. х2). 264
Рис. 5.1. Рис. 5.2. Рис. 5.3. При ограничениях gi (л-,, х2) = 7 — хг > 0; g2(X!, х2) = 8 — х, 0; ёз (*1> ха) = 10 — Х1 — х2 > °- Построим допустимое множество решений (рис. 5.3). Задаваясь f (xt, х2) = с, строим семейство эллипсов с общими осями. Из рисунка следует, что точка абсолютного максимума (х® =4, х° = 6) попала на границу множества решений. § 1. КЛАССИЧЕСКИЙ МЕТОД ОПРЕДЕЛЕНИЯ УСЛОВНОГО ЭКСТРЕМУМА Для определения условного экстремума (т. е. экстремума при ограничениях) могут быть использованы методы дифференциального исчисления, когда f (хъ ..., х„) имеет не ниже второй производной. Рассмотрим некоторые важные понятия и теоремы классического математического анализа, которые лежат в основе методов поиска условного экстремума. Теорема 5.1. Если f (xlt ..., хп)— непрерывная функция, определенная на замкнутом и ограниченном множестве R, то она достигает на этом множестве, по крайней мере один раз, максималь- ного и минимального значения (теорема существования экстремума). Следующая теорема определяет возможные местоположения макси- мума. Теорема 5.2. Если f (Xi, ..., хп) является функцией нескольких переменных, определенной на допустимой области R, то максимальное значение f, если оно существует, достигается в одной или нескольких точках, которые принадлежат одному из следующих множеств: 1) Sj — множество стационарных точек; 2) S2 — множество точек границы; 3) S3 — множество точек, где / (xi, .... хп) недифференцируема. Определение 1. Множество точек Si (х) функции f (xir Хг, ..., хп) называется множеством стационарных точек, если они удов- летворяют условию -^Д = 0; / = ТГй. ПО dxj ’ •' ’ 265
Определение 2. Функция f достигает относительного макси- мума в точке (х°, х°, • х°п), если для всех точек R, лежащих в малой окрестности точки (х°, х2, .... х„), имеет место неравенство f (х°, х°, ... , х°) > f (хх, х2, ... , хя). <’-2) Определение 3. Функция f достигает абсолютного максиму- ма в точке (х°, х°2, ... , х°), если для всех точек {хь ..., хп) £ 7? справед- ливо неравенство Для нахождения стационарных точек допустимой области R можно использовать теорему 5.3. Теорема 5.3. Пусть f (хх, х2, х„) — дифференцируема в некоторой области R. Если в некоторой внутренней точке (х°, х°, ... Хп) области R функция f имеет относительный максимум, то Пример 5.4. Пусть 7 (хх, х2) = 10xi + 20х2 + — 2х| — 2х| определена на множестве R X R (т. е. на всей плоскости ххОх2)- Для определения относительного экстремума этой функции имеем два уравне- ния: = 10 + х2 — 4х. = 0, dxt lai — = 20 -ф хх — 4.v2 = 0, дх2 решив которые, находим х) — 4, х2 = 6. Для того чтобы определить, являются ли найденные стационарные точки точками максимума или минимума,. необходимо исследовать f (хь х2, ..., хп) в окрестности стационарных точек и определить, явля- ется она выпуклой или вогнутой. Определение 4. Пусть R — выпуклое множество точек п-мерного пространства. Функция f, определенная на R, называется вогнутой (выпуклой вверх), если для любой пары точек хх, х2 С R 266
и произвольного 0 < k < 1 выполняется неравенство (рис. 5.4) f + (1 — k) х2] > kf (хх) + (1 —/г)/(х2). (1.4) Если / [Й (Xj) + (1 — Й)х2] < Й!/(хх) Н-(I — k)f(xz), ' (1.5) то функция называется выпуклой (рис. 5.5). Если в (1.4) или (1.5) есть строгие неравенства, то функция называется строго вогнутой или строго выпуклой соответственно. Критерий выпуклости и вогнутости функции п переменных может быть сформулирован в виде следующей теоремы. Теорема 5.4. Дифференцируемая функция f (х) строго вог- нута в некоторой окрестности точки х0 = (x°i, х2, ..., х°), если выпол- няются следующие условия: f 11 (хо) /и (х0) / 21 (х0) < О f 12 (Х0) /22 (х0) >0; /и (х0) /21 (х0) /з1 (Хо) /12 (Хо) /22 (х0) /з2 (Хо) /13 (Хо) /23 (Хо) /33 (х0) т. е. если знаки определителей чередуются, где '«w-wL- <,в> Функция / (х) строго выпукла в окрестности точки х0, если все опре- делители (выписанные выше) положительны. Имеет место следующая теорема. Т еорема 5.5. Для того чтобы в точке х0 достигался внутрен- ний относительный максимум, достаточно равенства нулю всех пер- вых частных производных и строгой вогнутости функций в окрест- ности х0. Для того чтобы в х0 был относительный минимум, достаточно, чтобы все частные производные обращались в 0 в точке х0, а сама функ- ция в ее окрестности была строго выпукла. Пример 5.5. t (*i, х2) = 10х1 + 20х, + хус2 — — 2х|. Стационарная точка х0 == [4,6]. Исследуем точку на относительный максимум или минимум: (и (xi* хд------4, /12 — 1> (21 — 1 • '22 (Xj, х3) — 4. Так как I 711(4,6) I /21 (4.6) /12(4’6)Ы-4 (22 (4,6)| | 1 -4| . (11 = ~ 4<0, то функция f достигает в точке xj = 4, х2 = 6 относительного максимума. Справедливо следующее утверждение. Если / (х) строго выпуклая (вогнутая) функция на всем множестве R, то f обладает только одним относительным минимумом (максимумом), который является и абсо- лютным. Теорема 5.6 (о выпуклости допустимого множества решений). Пусть gi (х), g2 (х), ..., (х) > 0 и х > 0 — ограничения задачи нелинейного программирования. Если функции gi, g2, gm вогнуты, 267
то допустимое множество R = {х : х > 0 и g( (х) > О (i = 1, 2,... т)} является выпуклым. Доказательство. Для доказательства достаточно показать, что множество R, = {х : g( (х) > 0; х > 0} при каждом i = 1, 2, ... ...,т будет выпуклым. Тогда R = Ri f| R2 П • • П Вт будет также выпуклым, так как пересечение конечного числа выпуклых множеств выпукло. Рассмотрим некоторую вогнутую функцию (х) > 0. Выбе- Рассмотрим некоторую вогнутую функцию gt (х) > 0. Выбе- рем две произвольные точки х, и х3 > 0 (рис. 5.6). Тогда х2 = %х1 + (1—Х)х3>0, 0<Х<1. Так как xf g Ri и х3 g R:, то и точка х2 при- надлежит R,. Из условия вогнутости g{ сле- дует, что gi [Z,X1 + (1 — К) Х3] > kg[ (хх) + (1 — Следовательно, множество 'Rt содержит отрезок X-g/xO + (1 — X) х X gi(x3), а поэтому Ri — выпукло (рис. 5.6). Справедливо следующее утверждение. Если функции ft (х), Д (х), .... fp (х) вогнуты (выпуклы) на множе- р стве R, то функция g (х) = У, (х) также вогнута (выпукла), 1=1 при условии, что kL > 0, i = 1, 2, ..., р. Его доказательство предо- ставляется читателю. Рассмотрим классический метод поиска условного экстремума. Он состоит в следующем. 1) Отыскивают множество всех стационарных точек St (х) функ- ции / (х) внутри допустимого множества R. Найденные точки далее исследуют на максимум (минимум) и определяют точку наибольшего максимума х0 g Si (х). 2) Переходят к исследованию точек границы S2 (х) и отысканию тех из них, где f (х) достигает максимума. Этот процесс состоит в сле- дующем. Выбирают произвольную границу, определяемую, например, условием gt (х) = 0. Если функция Si (У = gi (хь х2, .... х„) =0 (1.7) с разделяющимися переменными, то всегда можно, определив из (1.7) переменную Xi = <Р, ({X/}), / = ТГп, / #= l), (1.8) подставить ее в выражение для f (х). Тем самым задача сведется к поиску безусловного экстремума, для чего используется процедура, описанная в п. 1. Обозначим через х* точку границы gt (х) — 0, х* g R, в которой f (х) достигает максимума. Повторив вышеописанную процедуру по всем остальным границам, найдем соответственно экстремальные точки всех границ х*. i = 1, т. 268
3) Непосредственным сравнением значений f (х) для всех точек xj и стационарной внутренней точки х0 определяют точку абсолютного максимума xopt на множестве решений R. Такой прямолинейный подход требует больших вычислительных затрат и применим лишь в простейших случаях, при небольшом числе ограничений и если функ- ции gt (х) — о разделяющимися переменными. Поэтому ниже рас- сматриваются более эффективные методы решения задач условной оптимизации. § 2. МЕТОД МНОЖИТЕЛЕЙ ЛАГРАНЖА Метод множителей Лагранжа позволяет отыскивать максимум (или минимум) функции при ограничениях-равенствах. Основная идея мето- да заключается в переходе от задачи на условный экстремум к задаче отыскания безусловного экстремума некоторой специально построен- ной функции Лагранжа. Пусть требуется найти min f (xt, xz, .. . , x„) (2.1) при ограничениях (xn ... , хп) = О, » ^2 (Х1> • • • > Хи) = п, (2.^) hm (М* • • • » хп) ~ О* Предположим, что функции /, hi h2, ..., hm дифференцируемы. Введем набор переменных Х1; Х2, ..., Хт (по числу ограничений), которые называются множителями Лагранжа, и составим так называ- емую функцию Лагранжа следующего вида: L (Хр Х2, • • • 1 xni ^1» • • ! \п) “ т = f (xv Х2, . . . , Хп) + S (х15 Х2, . . . , Х„). (2.3) Z=1 Тогда для того, чтобы вектор х° = {х?, ..., х„) являлся решением зада- чи (2.1) при ограничениях (2.2), необходимо существование такого 2? — {^i> .... что пара векторов {х°, V} удовлетворяет системе уравнений: 9L (х°, V) п ----i—! — = О, 1=1,11, (2.4) dxj----------------------------------------’ 1 ’ ’ ---------- =0, 1=\,т. (2.5) Покажем необходимость условий (2.5) и (2.4) для следующего простого примера. Найти min f (Xj, х2, х3) (2.6) при условиях hx (х1; х2, х3) = 0, h2 (хъ х2, х3) == 0. (2.7) Ограничения (2.7) определяют собой допустимую область S, которая представляет собой кривую в 7?(3) и определяется пересечением hx (х) и h2 (х). 269
Уйх = I Допустим, что данная задача имеет точку минимума в Sx: х* ~ = (xt, х*2, •••, Хп), функции /, /гъ й2 обладают непрерывными произ- водными первого порядка на некотором открытом множестве и гра- диенты dhr dht dht 1г _ Г dh2 dh2 dh2 1г dxt дх2 дх3 ] ’ 2 [ дх1 dx2 дх., J линейно-независимы. Если две переменные в уравнениях (2.7) можно выразить через третью в виде х2 = и (хх) и х3 = v (хх), то, подставляя их в целевую функцию (2.6), преобразуем исходную задачу в следующую задачу без ограничений, которая содержит одну-единственную переменную Хр min/(x1, w(xr), а(хх)). (2.8^ Так как градиенты V7i; (хъ х2, х3), i = 1, 2 предполагаются непрерыв- ными и линейно-независимыми, то можно применить известную из анализа теорему о неявной функции и найти стационарную точку х*ь а затем и xt = и (xt) и xt = v (xt). Указанный подход можно в принципе распространить и на случай функций п переменных f (х), х — (хх, х2, ...,хп)т при наличии пг огра- ничений-равенств: йх (х) = 0, й2 (х) = 0, .... hm (х) = 0. (2.9) Если функции йъ ..., hm удовлетворяют условиям теоремы о неявной функции, то m из п переменных уравнений (2.9) можно выразить через остальные (и — т) переменных, подставить их в f (х) и таким образом преобразовать задачу минимизации с ограничениями в задачу безусловной минимизации с (п — пг) переменными. Однако такой подход очень трудно реализовать на практике, так как очень трудно разрешить уравнения (2.9) относительно некоторых пг переменных. Поэтому рассмотрим другой подход, использующий метод множи- телей Лагранжа. Пусть х\ — точка минимума, определяемого уравнением (2.8). Согласно известной теореме анализа о неявной функции можно запи- сать = _А_ + Л________= о (2.Ю). dxr дх, 1 дх2 дх, дх.. dx, Аналогичные соотношения получаем для ограничивающих уравнений: dh( dht du dht dv _______________„ .__ . „ дх, dx2 dx, ' dx3 dx, ’ 1 ’ ’ Запишем уравнения (2.10) и (2.11) совместно в виде (2.11) (2.12) 11V dxt 270
где А — [V f (х*) VAj. (х*) VTi2 (x*)J. Так как вектор р не является нулевым, то из (2.12) сле- дует, что det А = 0. Отсюда следует, что вектор-столбцы матрицы А линейно-зависимы. Следовательно, существуют три такие скаляра а, b и с, не все равные 0, что aN f (х*) + b V ht (х*) 4- с V/i2 (х*) = 0. (2.13> Постоянная а не может равняться 0, так как согласно предположению V/ix и V/i2 — линейно-независимы. Поэтому после деления (2.13) на а приходим к (2.14): V/ (х*) + V (х*) + Л2 V /г2 (х*) = 0. (2.14) Таким образом, для задачи минимизации с ограничениями (2.6) сущес- твуют такие Хх и Х2, для которых справедливо (2.14) и которые одно- временно не обращаются в 0. Итак, справедливость условий (2.4) для случая п = 3 показана. Следовательно, для отыскания минимума (2.6) при условиях (2.7) необходимо отыскивать критическую точку функции Лагранжа L (х,. Л) = f (х) 4- Xj/ij (х) 4- Х2/г2 (х). Для того чтобы найти искомые Х15. Х2 и х*, решается совместно система уравнений (2.5) и (2.14). С геометрической точки зрения условие (2.14) означает, что V/ (х*) лежит в плоскости, натянутой на векторы V/i£ (х*). Рассмотрим теперь общий случай произвольного п. Пусть задача нелинейного программирования задана в виде (2.1), (2.2), все функции f (х), h[ (х) i = 1, т (т < и) — вещественные функции на множестве R{n}, имеющие непрерывные частные производные. Пусть S — под- множества множества /?(п), на котором все функции ht (х) = 0, i '— — 1, т, т. е. S = (х : ht (х) = 0, i = 1, т). Тогда справедлива следующая теорема о множителях Лагранжа. Теорема 5.7. Допустим, что существует такая точка х*, в которой достигается относительный экстремум (2.1) при условиях (2.2). Если ранг матрицы ! — Г-4^-| ‘т в точке х* равен т, [ OXj J у = i, п то существуют т вещественных чисел лх, Х2, Хт, не все из которых равны нулю одновременно, при которых V / (х*) 4- S v hi (х*) = 0. (2.15) i=l т Заметим, что если ввести функцию Лагранжа L (х, Л) = f (х) 4-£ \ X 1=1 ХЙ£ (х), то данная теорема определяет необходимые условия, при кото- рых задача (2.1), (2.2) может быть сведена к нахождению решения урав- нения VL (х, А) =5 0. 271
На основании вышеизложенного метод множителей Лагранжа мож- но сформулировать следующим образом: 1. Составляют функцию Лагранжа L(x, X). <-> т т 3L (х, X) dL (х, X) . -j-------- 2. Находят частные производные: —,-------------------тт—— / = 1, п\ i = 1, т. 3. Решают систему 3L(x, X) , п . =-- —= й; W = о, I = 1, т и отыскивают точки х° = х°п}, удовлетворяющие системе (2.16). Найденные точки исследуют далее на минимум (или максимум). Пример 5.6. Имеется два способа производства некоторого продукта. Обозначим через у1( у2 количество продукта, произведенного первым или вторым способом со- ответственно. Издержки производства Н при каждом способе зависят от произведен- ных ytl у2 следующим образом: о Н 1 (У1) = ао + Й1У| + агУ\ a,,, Oj, > 0; Я2(у2) =Ь04-Мг + М2 bo’ 61’ &2>°- За некоторый промежуток времени необходимо произвести ровно с единиц про- дукции (т. е. ух + у2 = с)> распределив ее между двумя способами так, чтобы мини- мизировать общие издержки. Составим функцию Лагранжа для этой задачи X (Ух, у2, X) = + ЯхУх + а2у\ + b0 + bty2 b2y?2 + X (с — Ух — у2), откуда Х,;[ = ai + 2а2Ух — X = 0; Х^ = ь, + 2Ь2у2 = 0; Х^ = с У, У? ~ 0- Решая эту систему, находим искомые количества у®, y®s 11° — ^2 . I — ai yi а2 + Ь2 2 (а2 + Ь2) °— fl2 Ь1 --- а1 У2 ~ а2 + Ь2 С 2 (а2 + Ь2) § 3. ЗАДАЧА НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ ПРИ ОГРАНИЧЕНИЯХ-НЕРАВЕНСТВАХ Рассмотрим теперь случай задачи с ограничениями типа нера- венств: min/(x) (3.1) gjx) < 0, i — 1, tn. (3.2) 272
В точке минимума х* неравенства gz(x) могут выполняться как ра- венства либо как строгие неравенства. Ограничение gt (х) называется активным в точке х*, если оно выполняется в ней как строгое равенство, т. е. если gt (х*) = 0. Используя геометрические свойства допустимой области, найдем необходимые условия экстремума для задач минимизации с ограничи- вающими неравенствами. Для этого сначала рассмотрим слу- чай, когда все gz (х) линейны. Итак, пусть требуется найти при условиях min / (х) g{ (х) = — т/х + Ь\ < 0, z = l,m. (3.3) Здесь каждое ограничиваю- щее уравнение определяет полу- пространство в Rn. Допустимая область S задана пересечением т полупространств, определяе- мых т уравнениями (3.3) и, сле- довательно, является выпуклым многогранником. Вектор тр яв- ляется нормалью к гиперплос- кости, определяемой уравнени- ем g( (х) = 0, и направлен внутрь области S. Пусть х* является точкой минимума задачи (3.1) с ограничениями (3.3). Обозначим множество индексов активных ограничений 7 = {Z:gt-(x) = 0}. (3.4) Например, на рис. 5.7 приведен пример минимизации с линейными ог- раничениями при п = 2 и т — 3, I = {1, 3}. Выберем любую допустимую точку х из S. Вектор х—х* направлен из х* внутрь области S. Такой вектор будем называть входящим век- тором. Для этого вектора с учетом того, что = —Ngt (х*), можно записать следующее условие: т)Г (х — х*) > 0 или Vgf (х*) (х — х*) < 0 (3.5) для всех i £ I и х g 5. Таким образом, входящий вектор х определяет допустимое нап- равление перемещения из точки х*. Но так как f (х) минимальна в точке х*, то при любом х — х*, удовлетворяющем (3.5), будем иметь \Tf (х*) (х — X*) > 0. (3.6) Применим теперь лемму Фаркаша (см. приложение 1). Из условий (3.5) и (3.6) на основании леммы Фаркаша следует, что существует множество таких неотрицательных скаляров {АД, 18 8-3164 273
для которых v / (х*) = S М/ - — Е (х*). (з.7) Отметим, что уравнение (3.7) аналогично (2.15). Если принять, что ^-=0 при j $ I (т. е. для неактивных ограни- чений), то (3.7) можно переписать в виде т т v / (X*) = S хгт]( = — S Xi V gt (х*). (3-8) 1=1 /=1 Кроме того, получим т Е ^igi (X*) = 0, (3.9) 1=1 поскольку при ОД gt (х*) = 0, а при i (£ /, =5 0. Итак, уравнения ограничений могут быть включены в целевую функцию следующим образом: т <р(х) = /(х) + Е М(-(х), ^->о. (3.10) 4=1 Следовательно, х* удовлетворяет следующим условиям: Vф(х*) == V f (X*) + E^Vg,(x*) = 0, (3.11) i tn ____ E ^(x*) = 0, \.>0, z = l,m. (3.12) z=i При рассмотрении задачи минимизации f (х) при условиях (х) <0 может случиться так, что не существует таких Хг-, i = 1, tn, при кото- рых без дополнительных предположений о природе функций gt (х) были бы справедливы уравнения (3.11) и (3.12), где х* — оптимальное решение. Эти дополнительные предположения называют условиями регулярности ограничений. (В частности, в случае ограничений-ра- венств в качестве таких условий мы использовали линейную незави- симость векторов-градиентов ограничений). Теорема Куна — Таккера. Выше мы получили условия оптималь- ности (3.11) и (3.12) для НП-задачи с линейными ограничениями. Обобщим эти условия на случай задачи (3.1) — (3.2), когда все огра- ничения нелинейны. Условия оптимальности решения задачи нелинейного программиро- вания формулируются в следующей теореме Куна — Таккера, имею- щей исключительно важное значение для теории нелинейного прог- раммирования. ____ Теорема 5.8. Пусть f, gt(x), i = 1, tn обладают непрерыв- ными частными производными на некотором открытом множестве Rn, содержащем х*. Если х* является точкой минимума функции f (х) при ограничениях gt (х)<( 0, i = 1, т, удовлетворяющих условию регулярности в виде линейной независимости, то существуют такие 874
неотрицательные множители Лагранжа .... Ат, что г V / (х*) + S К{ V g (X*) = 0, (3.53) 1=1 S (х*) = О, > О. (3.34) 1=1 Определим функцию Лагранжа следующим образом: т + (ЗЛ5> /=1 Тогда теорему Куна — Таккера можно записать: Vxx, А) = 0, (3.16) N-Л. (х, A— L g (х) < 0, (3.17) VK L (х, X) = S \gl (х) = 0. (ЗЯ8) i=i Заметим, что множители Лагранжа Хг в НП-задаче с ограничениями- равенствами являются знаконеопределенными, тогда как в теореме Куна — Таккера они должны быть положительными. Доказательство. При достаточно малых t > 0s разлагав f (х* + fe) в ряд Тейлора, получим f (х* + fe) = f (х*) + fVfT (х*) Z + о (/), (3.19) где о (() — остаточный член 2-го порядка малости (/2). Пусть I — множество активных ограничений. Тогда gj (х* + fe) = g/ (х*) + / V gf (х*) z +«(() = t V gf (х*) z 4- о (/), так как gj (х*) = 0 при / g /. Заметим, что система уравнений f V f (х*) Z < О, (3.2С) (Vgf(x*)Z<0 (3.2'1) несовместна, так как в противном случае при достаточно малом t > 0 для некоторого z мы бы получили: /(x* + fe)</(x*), gt (х* 4- fe) < 0, /=1,т, что противоречит предположению об оптимальности точки х*. Дле доказательства используем лемму, являющуюся следствием леммы Фар- каша. Лемма. При любой матрице А выполняется одно из двух условий: 1. Либо выполняется следующая система, неравенств'. Ах < 0. (3.2211 27& 18‘
2. Либо выполняется следующая система равенств-. = О, X О, Z О. (3.23) Одновременно условия (3.22) и (3.23) выполняться не могут. Справед- ливость леммы следует из леммы Фаркаша (см. приложение 1). При- меним эту лемму к (3.20)— (3.21), приняв за матрицу А матрицу ' W (х*) 1 . . Vgjx*) ] Поскольку система 3.20—3.21 не имеет решений, то существуют такие Aq, •••> \п> ЧТО 4W (х*) + S Wgi (X*) = 0, (3.24) ’ /-о 1 где #= 0. т Если теперь положить, что Xz = 0 для i $ /, то получим S (х*) = 1=1 tn = 0. Условие У, rkigi (х*) = 0 называют условием дополняющей не- i=i жесткости. Покажем, что Х() в (3.24) не может быть равно 0. Действительно, если допустить, что %0 = 0, то получим S Wgi (х*) = 0- (3.25) 1&I Но (3.25) противоречит условию теоремы о линейной независимости векторов (х*). Остается принять Хо 0. Тогда, разделив обе части (3.24) на А,о, получим т V/ (X*) + S Kygi (X*) = 0. <=| Теорема доказана полностью. Понятие регулярности было введено впервые Куном иТаккером в 1951 году и имеет различные формы. В частном случае, когда f (х) и все g((x), i = 1, т являются выпуклыми функциями, то условие регуляр- ности имеет следующий вид: существует такой вектор х, что gt (х) < 0 для всех I = 1, т. Это условие называют условием регулярности Слей- тера [3, 24]. Седловая точка и задача нелинейного программирования Рассмотрим функцию L (х, X) от векторов х и X. Определение. Пара векторов (х*, £*) называется седловой точ- кой функции L (х, X), если при всех К Л 0 и х £ Rn выполняется 276
условие L (х*, X) < L (x*, X*) < L (x, X*). (3.26) Неравенство (3.26) называют неравенством для седловой точки. Очевидно, в седловой точке (х*, X*) выполняется условие L (х*, X*) = max min L (х, X) = min max L (x, %). (3.27) хбд,г Между понятием седловой точки функции Лагранжа L (х, X) = ш = f (х) + У Xjg'j- (х) и решением задачи НП имеется взаимосвязь, i=i которая устанавливается в следующей теореме. Теорема 5.9. Пусть f (х) и все g, (х) выпуклы и функции gj(x) удовлетворяют условию регулярности Слейтера. Вектор х* является решением НП-задачи (3.1), (3.2) тогда и толь- ко тогда, когда существует такой вектор X* > О, что L (х*, X) < L (х*, X*) L (х, X*) (3.28) и Х*^ (х*) = 0. (3.29) Доказательство. Докажем сначала достаточность условий теоремы. Пусть (х*, X*) — седловая точка функции L (х, X). Но тог- да из правого неравенства (3.26) получим т L (х*, X*) = f (х*) + У ^gl (х*) < L (х, X*) = f (х) + У (х), (3.30) i= 1 i так как X) > 0, a g( (х) < 0, то У, Xt’gz (х) < 0. Но, с другой стороны, УХ* g; (х) = 0 согласно (3.29). г Поэтому из (3.30) следует неравенство f (х*) < f (х) + У X’gz (х) < f (х) (3.31) I для всех х, удовлетворяющих ограничениям НП-задачи. Таким образом, х* — оптимальное решение НП-задачи. Перейдем к доказательству необходимости. Допустим, что х* — оптимальное решение задачи. нелинейного про- граммирования. Заметим, что система не имеет решения, так как х* — точка минимума НП-задачи. Отсюда следует также, что не имеет решения и следующая система: / (х) — f (х*) < 0, g (х) < 0. (3.33) 277
Тогда согласно теореме Фана (см. приложение 4) существуют такие Хо, X* > 0, что , [/ (х) — f (х*)1 + U Kgi (х) > 0. (3.34) L "Так как К > 0 и gt (х*) < 0, •то У (х) < 0 для всех х. ' (3.35) i Если же в (3.34) положить х = х*, то получим У ^igi (**) > 0- (3.36) Сравнив (3.35) с (3.36), получим S Kgi (х*) = 0. (3.37) i Но тогда из уравнений (3.34) и (3.37) получим, что iof (X*) + У X“g, (х*) < Хо/ (X) + У %'gi (X). (3.38) i I Таким образом, доказано правое неравенство для седловой точки. Так как g (х*) 0, то Хг g (х*) < 0 при любом X ;>0. Следовательно, Хо/ (х*) + Xrg (х*) < Хо/ (х*) = Хо/ (х*) + Xr"g (х*). (3-39) Разделив обе части (3.39) на Хо > 0, получим левое неравенство для седловой точки о т л т* / (х*) + g (х*) = L (х*, X) < / (х*) + 4^ g (х*) = L (х*, X*). Ло Ло Таким образом, теорема доказана. Чтобы обеспечить условие Хо > 0, необходимо предположить существование условия регулярности Слейтера. Действительно, пусть Хо = 0. Тогда X;' > 0 и выражение (3.38) примет вид У kigi (х*) = 0 < У X*g> (X). (3.40) i i В то же время условие регулярности Слейтера утверждает, что су- ществует такой х, что g (х) < 0 и, следовательно, У, Xjg( (х) < 0. Так как это противоречит уравнению (3.40), то предположения тео- ремы вместе с условием регулярности Слейтера обеспечивают ее спра- ведливость. Таким образом, при выполнении условий теоремы 5.9 задача нелинейного программирования оказывается эквивалентной задаче об отыскании седловой точки функции Лагранжа. 278
Применение теоремы Куна — Танкера для задачи вогнутого программирования Выше нами была рассмотрена НП-задача в виде (3.1), (3.2), когда на переменные {х/} не накладывались условия неотрицательности. Зачастую в задачах исследования операций приходится решать задачи, в которых переменные х, по физическим условиям должны удовлет- ворять условию Xj 0 для всех / = 1, п. Основные положения теории могут быть легко распространены на этот случай. Действительно, пусть НП-задача записана в виде: найти min/(x) (8.41) при условиях gl (х) < 0, i=\,m, (3.42) Х/>0, /=1,п. (3.43) Введем обозначения X/ = — h, (х,). Тогда ограничения (3.43) можно записать в общем виде hj (х) < О, / = 1, п. (3-44) Задача теперь оказывается заданной в каноническом виде (3.1) — (3.2). Применим к ней теорему Куна — Таккера, для чего составим функцию Лагранжа т - п L (х, к, u) = f (х) + U (х) + S «Л/ (х), (3-4S) !=1 /=1 где Uj >• 0 — множители, связанные с ограничениями h; (х) «С 0- Условия теоремы Куна — Таккера для (3.45) выглядят так: VA (х, к, и) = V/ (х) + 1] (х) + UjVhj (х) = 0 (3.46) г >' или a£(x,%,u) df(x) у. dgi(x) ,.^0 /и=1 „ -----d^j--------д^Г + У ‘ ’ 1 1 ’ П (ЗЛ7) UjXj = 0, Uj 0, (3.48) ^iSi (х) = °, > 0- (3.49) Условия (3.47), (3.48) и (3.49) можно записать в следующей экви- валентной форме: = м, > 0, (3.50) dxj...........................................dxj 1 (.±j 1 dxj > ’ = 0, /=Г^ <3-51) dxj 1 ’ J 9 Нетрудно увидеть, что условия (3.51) представляют собой условия дополняющей нежесткости для ограничений неотрицательности. Та- ким образом, мы получили необходимые условия для оптимального решения задачи НП вида (3.41) — (3.42), которые могут быть сформули- рованы в следующей теореме. 279
Теорема 5.10. Пусть НП-задача задана в виде (3.41) — (3.43), а функции f (х) и gt (х),..., gm (х) дифференцируемы и выпуклы по х. Вектор х°> 0 является оптимальным решением задачи тогда и только тогда, когда существует такой вектор Х° > 0, что пара (х°, 1.°) является седловой точкой функции Лагранжа L (х, >.), т. е. выпол- няются следующие условия: дь (х°, 2-°) п . -j— - ---— >0. 1 = 1, П, (3-52) dxj ’ 1 ’ х° = 0, (3.53) dxf ’ ’ = gi (х°) < о, (3.54) h°igi (х°) = 0, i — 1, т. (3.55) Задача (3.41) — (3.43) при условии, что f (х) и все gt (х) — выпук- лые функции, является задачей выпуклого программирования. Ограни- чения gt (х) < 0, i — 1, т определяют выпуклое множество, и требует- ся найти минимум выпуклой функции f (х) на выпуклом множестве решений R (х) = {х : х > 0; gi (х) < 0, i = 1, т}. Рассмотрим задачу так называемого вогнутого программирования: найти max f (х) (3.56) х^0 при условиях X > О, (3.58) где функции f (х) и все g( (х) вогнуты по х. Покажем ее эквивалентность задаче выпуклого программирования (3.41) — (3.43). Для этого обозначим f (х) =—f (х), g\ (х) = = —g{ (х), и так как max / (х) = min —/ (х), то мы приходим к задаче minf(x) (3.59) при условиях. gi (X) < О, (3.60) х>0. (3.61) Заметим, что все функции f (х), g\ (х) будут выпуклы по х, а потому задача (3.59) — (3.61) — это задача выпуклого программирования. Итак, эквивалентность задач (3.56) — (3.58) и (3.41) — (3.43) установ- лена. Нетрудно получить соответствующие условия оптимальности для НП-задачи (3.56) — (3.58), аналогичные условиям (3.52) — (3.55). Они формулируются следующим образом. Теорема 5.11. Пусть НП-задача задана в виде (3.56) — (3.58), а функции f (х), gi (х), i = 1, т дифференцируемы. Для того чтобы 280
х° являлся оптимальным решением этой задачи, необходимо, чтобы существовал такой вектор М 0, для которого выполняются ус- ловия: 5С(х°, Х°) п . ;-- я.>> —-ф—< О, z = 1, п; (3.62) dxj . 1 dL (*°гУ1_х? = о, /=Т^ (3.83) -L <х"’ .У-)- = g (Х) > о, г = 17^; (3.64) dL^’.^L.. = 0, i = \7т. (3-65) иА>1 Если функции f (х) и gt (х) вогнуты, то эти условия (3.62) — (3.65) оказываются и достаточными. § 4. ДВОЙСТВЕННОСТЬ В ЗАДАЧАХ ОПТИМИЗАЦИИ Задача линейного программирования как задача Лагранжа Использование понятия седловой точки позволяет установить глубокие взаимосвязи между прямой и двойственной задачами в мате- матическом программировании. Прежде чем рассмотреть общий случай нелинейного программирования, исследуем эти взаимосвязи для ли- нейного программирования. Пусть имеется пара двойственных ЛП-задач в виде: Задача 1 Задача 2 min b7x, (4.1) шах с7у, (4.3) х> 0; у>о; Ах > с; (4-2) А7у < Ь. (4.4) Для удобства запишем ограничения задачи 1 в виде g (х) = с — Ах < 0. Для исследования связи прямой и двойственной задачи введем функ- ции Лагранжа. Образуем функцию Лагранжа для задачи 1: Ф (х, X) = Ьгх ф- ‘кТ (с—-Ах), X >• 0. (4.5) Так как ограничения линейны, то выполняются условия регулярности Теоремы Куна — Таккера и, следовательно, имеем: Хо,(с —Ах0) = 0, х0>0, А,0>0. (4.6) Образуем функцию Лагранжа для задачи 2, предварительно преобра- зовав .ее в эквивалентную задачу минимизации (min сгу), для чего введем множители Лагранжа ц: Ф (У, Ц) = — сГУ + (А?У — Ь), р > 0. 281
Условия регулярности вновь, как и в первом случае, выполняются, и потому мы имеем P-о (Агу0 — Ь) = О, > 0, у0 > 0. (4.7) Заметим, что если положить 1 = у, a jx = х, то ф (х, у) = — ф (у, х). Таким образом, если переменные у трактовать как множители Лагран- жа в задаче 1, а х — как множители Лагранжа в задаче 2, то целевые функции обеих задач будут равны по величине и противоположны по знаку. Используя функцию Лагранжа <р (х, у), можно легко показать, что задача 1 может’быть записана в виде min [<р (х, у) — yrV ф (х, у)] (4.8) х5>0 у при условиях VyT (X, у) < 0, у > 0. Аналогичным образом задачу 2 можно записать в виде min [ф (х, у) — х^ф (у, х)] (4.9) УЭО при условии Vyip(y, х)<0. (4.10) Используя соотношения ф (х, у) = —ф (у, х), получим для задачи 2 _ min [— ф (х, у) + хгУжф (х, у)] —max [ф (х, у) — х^ф (х, у)] (4.11) у^о у>о при условии V/p (х, у)>0, х>0. (4.12) Используя соотношения (4.8) — (4.12), мы получаем следующее представление пары двойственных ЛП-задач с помощью функций Лаг- ранжа ф (х, у): Задача 1 Задача 2 min [ф (х, у) — yzV ф (х, у)] (4.13) шах [ф (х, у) — хг¥хф (х, у)] (4.15) у^о при условии ' при условии (х, у) < 0 (4.14) V/р (х, у) >0 (4.16) у > 0 х > 0 При этом для оптимальных решений (х0, у0) выполняются следующие условия, аналогичные (4.6), (4.7): Уо А^ф (х0, у0) = 0, xJVyp (х0, у0) = 0. (4.17) Справедлива следующая теорема, устанавливающая связь между оптимальными решениями двойственных задач ЛП и седловой точкой. Т е о р е м а 5.12. Вектор х0 является оптимальным решением ЛП-задачи 1 тогда и только тогда, когда существует такой вектор у0, что (х0, у0) является седловой точкой функции Лагранжа ф (х, у), 282
т. е. для всех х > 0 и у > О Ф (х0, у) < Ф (х0, уо) < Ф (х, уо). (4.18) Доказательство. Докажем сначала достаточность условий теоремы. Пусть (х0, у0) —' седловая точка, тогда левое неравенство (4.18) выполняется при всех у > 0 и, в частности, при у = 0. Но поскольку с — Ах9< 0, то левое неравенство Ф (х0, у = 0) = Ьгх0 < <р (х0, у0) = Ьгх0 + уо (с — Ах0) (4.19) будет возможно только в случае, если уо (с — Ах0) = 0. (4-20) Учитывая это, из правого неравенства получим ЬГх0 + уо (с — Ах0) = Ьгх0 Ьгх Д уо (с — Ах) < Ьгх. Таким образом, для всех допустимых х >• 0 Ьгх0 < Ьгх, что уста- навливает оптимальность вектора х0. Докажем теперь необходимость условий теоремы, т. е. что из оп- тимальности вектора' х0 следует существование такого вектора у0) что пара (х0, у0) будет седловой точкой функции ср (х, у). Согласно теореме 2.5 главы 2 из оптимальности х0 следует су- ществование такого у0, что Ьгх0 = сгу0, где у0 — оптимальное реше- ние двойственной задачи. Тогда согласно теореме 2.6 этой же главы должно выполняться равенство уо (с — Ах0) = 0. Но так как х0 — допустимое решение, то с — Ах0 < 0, откуда для любого у > 0 у1 (с — Ах0) < 0. Таким образом, справедливо, неравенство ЬГх9 Д уТ (с — Ах0) = <р (х0, у) < Ь'х0 + уо (с — Ах0) = ф (х0, у0). Левое неравенство для седловой точки установлено. Аналогично мо- жет быть получено и правое неравенство, и теорема доказана. Итак, приходим к выводу, что отыскание решения для пары двой- ственных задач ЛП эквивалентно нахождению седловой точки соответ- ствующей функции Лагранжа. Этот вывод справедлив и для некоторых классов задач нелиней- ного программирования. Задача нелинейного программирования . как задача о седловой течке Выше нами были получены соотношения (4.13), (4.14) и (4.15), - (4.16), связывающие пару двойственных ЛП-задач. Рассмотрим теперь НП-задачу в виде: найти minf(x) (4.21) при условиях gt (х) < 0 (г = 1, т). (4.22) 283
Введя функцию Лагранжа ф (х, у) =./ (х) + У Uigi (х), можно i записать эту задачу в эквивалентном виде: min [Ф (х, у) — уг¥^ф (х, у)] (4.23) при условиях V4,<p(x, у)< О, У>0- (4.24) По аналогии с линейным программированием назовем следующую за- дачу: шах [ср (х, у) — хт¥хф (х, у)] (4.25) УЗ» при условии ¥А.ф (х, у) > О, (4.26) двойственной к задаче (4.23) — (4.24). Справедлива следующая теорема, аналогичная теореме двойст- венности линейного программирования, впервые полученная Вул- фом [3]. Теорема 5.13. Пусть функции f (х), (х), i = 1, tn выпуклы и дифференцируемы в R'1 и выполняются условия регулярности. Если прямая задача (4.21), (4:22) имеет решение х0, то в двойственной за- даче (4.25) существует такой вектор у0, который является ее оптималь- ным решением, и при этом экстремумы пары двойственных задач равны между собой. Для иллюстрации этой теоремы рассмотрим задачу квадратичного программирования: найти max (Ьгх 4- хгСх) (4.27) х>0 при условии Ах < Ао, (4.28) где С — симметричная, отрицательно определенная матрица. Преобразуем (4.27), (4.28) в эквивалентную задачу минимизации и построим функцию Лагранжа Ф (х, у) = — (Ь7х + хгСх) + уТ (Ах — Ао). (4.29) Исходную задачу можно сформулировать в виде min [ф (х, у) — уг¥ m (х, у)] (4.30) л-^0 J при условиях ^Ф (х, У) < 0, у > 0. (4.31) Легко видеть, что задача (4.30), (4.31) эквивалентна задаче (4.27), (4.28). По аналогии с линейным программированием запишем двойствен- 284
ную задачу к задаче квадратичного программирования: max [ср (х, у) — xrVxcp (х, у)] (4.32) у^о при условии V/р (х, у) > о, х > 0. (4.33) Подставляя выражение для <р (х, у) из (4.29) в (4.32) и (4.33), получим следующую запись двойственной задачи: max (— Аоу + хгСх') -> min (Аоу — хгСх) (4.34) 1/5,0 уй-0 при условии — 2Сх + Агу — b > 0. (4.35) х^О Оптимальные решения х0 и у0 связаны между собой соотношениями: Хо V/P (х0, у0) = 0 (4.36) и . yoV,T(x0, уо) = О. (4.37) Используя выражение (4.29) и подставляя его в (4.36) и (4.37), полу- чим соответственно: хо (Ь + 2Сх0 — А^уо) = 0, (4.38) Уо (Ах0 — Ао) = 0. (4.39) Покажем, что действительно задачи (4.27) — (4.28) и (4.34) — (4.35) являются двойственными и выполняется утверждение теоремы о том, что max (Ьгх + хгСх) = min (Аоу — хгСх). (4.49) х>0 у5>0 Поскольку х0 и у0 связаны между собой соотношениями (4.38) и (4.39), то имеем АоУо = уГАх0 = xo'b + 2хоСхо или Аоу0 — хоСхо = Ьгх0 + ХоСх0. Тем самым устанавливаем справедливость соотношения (4.40) и теоремы 5.12. § 5. КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ К задачам квадратичного программирования относят специальный класс задач НП, для которых целевая функция f (х) — квадратич- ная, вогнутая, а все ограничения линейны. Применив к этой задаче теорему Куна—Таккера, получим условия для оптимального решения в виде системы линейных уравнений, ре- шить которые возможно симплекс-методом. В матричном виде задача квадратичного программирования запи- сывается так. 285
Найти max f (x) = brx + ~ xrCx = bpcj + S ctixlxi <5Л) при ограничениях Ax < Ao и x>(4 (5.2) где С = I) eq — симметричная, отрицательно определенная матри- ца; bi Ь, Ктхп = \\а^ Ао = b = «ю ®20 ^т0 _ Заметим, что если С — отрицательно определенная матрица, то квад- ратичная форма хгСх вогнута (выпукла вверх). Следовательно, задача (5.1) — (5.2) является задачей вогнутого программирования. Примеры квадратичных функций: f (Xi, х2) 5xj Н- 4xi хд, f (хх, х2, х3) — XjX2 + 2хах, — 3xi — Зх| — 4хз (это вогнутая функция). Будем предполагать, что f (х) — строго вогнута. Применив к задаче (5.1) и (5.2) теорему Куна—Таккера, получим необходимые и достаточные условия оптимальности решения в виде следующей теоремы. Теорема 5.14. Вектор х0 > 0 является оптимальным решени- ем задачи квадратичного программирования тогда и только тогда, когда существуют такие т-мерные векторы к > 0, w >• 0 и п-мерный v > 0, что выполняются следующие условия: 1) b + Cx —A^ + v^ 0; 2) Ао — Ах — w = 0; 3) vTx = 0; 4 ) w?A, = 0. Заметим, что условия 1 и 2 образуют относительно переменных х, X, v и w систему из п 4- т уравнений с 2 (т + п) неизвестными. Доказательство. Составим функцию Лагранжа для задачи (5.1) L (х, X) = Ь7х + хгСх + (Ао — Ах). (5.3) Заметим, что == Ь, (5.4) Ох д (^СХ)- = 2Сх (5-5) ОХ ' в чем можно убедиться непосредственной проверкой. 286
Применив теорему Куна—Таккера к функции (5.3) и используя (5.4) и (5.5), получим: а) ' — b + Сх — А7! < 0, причем, если < О, OX ОХ] то х° = 0; / = 1, ..., п; 5L (х, к) * » л SL А б) --тй—~ ~ Ао — Ах >• 0, причем, если — >• О, О i\i uA/i то X? = 0. Введем два вспомогательных вектора vT = (о1, п2, ...,»„)> 0 и wT = (ау1( ws, , wm) 0, причем выберем v£ ~> 0, если ——~ < < 0 и Vj = 0, если = 0. Аналогично выберем w( > 0, если —— > 0 и W; = 0, если = 0 (i = I, 2, ... , m). Прибавив вектор v к условию а) и вычтя w из б), получаем равенства: 1) b + Сх — А7"^ + v = О, (5.6) 2) Ао — Ах — w = 0. Сравнив компоненты векторов х и v, а также к и w, получим два условия дополняющей нежесткости: 3) x7v = 0; 4) — 0. Теорема доказана. Из условий 3) и 4) следует, что по меньшей мере п переменных из х, v, а также т переменных из набора k, те обращаются в нуль. Как уже отмечалось, ' система (5.6) состоит из уравнений с 2 (т + п) переменных. Таким образом, если существует оптимальное решение задачи (5.1), то оно должно быть одним из базисных решений (5.6). Поскольку для нахождения допустимого базисного решения может быть применен симплекс-метод Данцига, то этот метод (как, впрочем, и другие методы ЛП) вполне пригоден для решения задач квадратич- ного программирования. Перепишем (5.6) в виде: Сх — А7 X -у v = — Ь, „ Ах + w = Ао. Для нахождения начального базиса (5.7) можно применить метод искусственных переменных. Введем искусственные переменные z = = (zb ..., zn} и у = {yi, ..., t/m}. В результате приходим к следующей системе: Сх — ATk + v + z = — Ь, /г. 1 (5.8) Ах + w + у = Ао. 287
Выбрав компоненты векторов z и у одинакового знака со знаками соответствующих свободных членов — Ь, Ао, находим начальное ба- зисное решение. т п Составив псевдоцелевую функцию z ~ У Myt + У, Mz, (М > с), <=1 /==1 выводим из базиса искусственные переменные {уг} и {гг} и вводим х, X, v и w. При этом следует учитывать условия дополняющей не- жесткости xrv = 0;.Xrw = 0. Если удается вывести все искусственные переменные и при этом удовлетворяются условия 3) и 4) теоремы 5.13, то найденное базисное решение будет оптимальным. Пример 5.7. Найти max f (xv х2) = max (IO.v, 2O.r2 xtx2 — 2x| — 2xf; при ограничениях 8 — > 0, 1 10 — лу — x.2 5= 0, j xt js 0, x2 > 0. Так как в данном случае квадратичная форма / (xt, х./вогнута и ограничения линей- ны, то мы имеем задачу квадратичного программирования. Составим функцию Лагран- жа L (х1( х2, л2) = (Юлу + 20х, + лух2 — 2х^ — 2x1) + (8 — х2) + Х2 (10 — — лу — х2). Применив теорему Куна—Таккера, получим следующие условия для сед- ловой точки: dL ~ — 4ж1 — ''-г °; dL —щ-- = 20 -f- лу — 4х2 — Tij — К2 0; । I 8 — х2 > 0; 10 —лу — х2 > С; дд лу = (10 + х2 — 4лу — Х2) лу = 0; dL х2 = (20 + лу — 4х2 — ?ч — 12) х2 = 0; р! -^-^ = (8-x2)^ = 0; I -|^Л3=(10-х1-х2)Л2 = 0. | Требуется найти такое решение системы неравенств 1, которое одновременно удовлет- воряет и системе II. Для этого можно было бы, например, применить метод перебора, и перебрать все возможные варианты вида: 1) 0, 0, Xj =т^= 0, Х2 0; 2) х^ = 0, Xj 0, Xj 0, Х2 0; 16)x1 = 0J х2 = 0, Х1==0, Х2 = 04 288
Однако ,в данном случае этот подход не рационален, поскольку можно применить стандартный алгоритм линейного программирования. Перепишем систему I в виде 4х, —х2 +%2 Зг 10, •— X] -|- 4х2 4” ^1 4“ 4 20, х3 < 8, xi 4* х2 < 10. 15 а Таблица 5.1 0 0 0 0 0 0 м М 0 0 4 4 4 4 4 4 4 4 4 4 о — м А, 10 ш —1 0 ! —1 1 м Ае 20 —1 4 1 1 —1 1 0 4 8 0 1 0 0 1 0 4о 10 1 1 0 0 1 ЗОМ | ЗЛА зм м 2М —м _м 0 0 0 0 Таблица 5.2 0 0 0 0 0 0 м М 0 0 Вх 4 4 А2 А3 Ai 4 4 4 4 Д„ 4о 4 2± 2 1 £ ~ 4 0 £ 4 1 Т 0 £ 4 0 0 0 м 4 224 0 3 1 2±1 1 £ 4 _1 4 —1 £ 4 1 0 0 4 8 0 1 0 0 0 0 1 0 4.о 1 72 0 5 4 0 2 4 +4 0 1 4 0 0 1 45М 2 0 15М м 5М ~4~ _ м_ 4 —м ЗМ 0 0 0 4 4 19 8-3164 289
Вводим теперь свободные переменные vlt v2, wt, ш2, обращающие неравенства (I, а) в равенства. Эти переменные удовлетворяют дополнительным условиям = 0; у.2л2 — 0; = 0; w2K2 = 0. — x2 + K2 — = 10 , (1) — xi + 4x2 -f- Xj + Л2 — = 20 , (2) 111 »3 + ffi'i = 8. (3) Xt + x2 +w2 = 10- (4) Для нахождения допустимого базисного решения системы III применим метод искусственных переменных. Вводим переменные уг и у2 в ограничения 1) и 2) соответ- ственно и образуем псевдоцелевую функцию z = min Муг + Му2. Составим первую симплекс-таблицу (табл. 5.1). Выполнив первый шаг симплекс-преобразования, выводим из базиса А, и пере- менную У1- Приходим к табл. 5.2. Выполнив очередной шаг симплекс-метода, получаем табл. 5.3. Таблица 5.3 м м В. До А. А 4.» А До д7 д8 Дщ 0 4 1 0 1 пГ _1_ з" 16 ~ ж 1 16 60 1 15 0 0 0 а2 6 0 1 4 15 _1_ 3 1 15 4 ~ 15 2 3 4 15 0 0 0 До 2 0 0 4 " 15 2 ~ 3 1 " У 4 ~ 15 1 0 0 Ао 0 0 0 _ _1_ 3 1 ~ Т 2 3 +4 _ 2. 3 2_ _ 3 0 1 0 0 0 0 0 0 0 —м —м 0 0 Нами получено следующее допустимое базисное решение: Х]* = 4; х2 = 6; кф =2; w2 — 0; А,- = А.2 = = v2 = 0. Так как x^Vt — 0; x2v2 = 0; А,^ = 0; K2w2 = 0, то это решение является оптималь- ным. Итак, x°pt = 4; x®pt = 6. § 6. ГЕОМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Постановка задачи геометрического программирования и ее основные свойства Достаточно широкий и интересный в практической точки зрения класс задач НП составляют задачи геометрического программирова- ния. 290
Примером такой задачи служит, например, следующая. Пусть требуется переправить через реку 400 куб. м гравия. До- пустим, что гравий грузится в открытый ящик длиной шириной t2 и высотой t3. Боковые стороны и дно ящика изготовлены из материала, 1 кв. м которого стоит 10 руб., а передняя и задняя стенка из материа- ла, кв. м которого стоит 20 руб. Каждая перевозка ящика любых размеров с одного берега на другой и обратно стоит 0,1 руб., причем; после его использования ящик не будет иметь остаточной стоимости. Чему равняется минимальная суммарная стоимость транспортиров- ки 400 куб. м гравия? Очевидно, при линейных размерах ящика t2 и ts число рейсов, которые нужно выполнить для перевозки 400 куб. м гравия, состав- 400 п , 400 40 ляет tyt , а стоимость перевозок 0,1 -^ТТ~ ~ 111 ' Общая стоимость материала составляет 40/2/3 + 20/К3 + 10^2. Следовательно, суммарная стоимость перевозок с учетом стоимости материала составит g (t) = + 40^3 + 20/К3 + 10/Л- Заметим, что функция g (t) состоит из слагаемых иг- (t) вида нг- (t) = = с(-/“п/“г'2... Г™, где ct > 0; > 0; / = 1, т. Функции вида ut (t) носят название позиномов. Для исследования задачи минимизации позиномов мы используем известное неравенство о среднем арифметическом и геометрическом, которое называют геометрическим *. Для п переменных 0 оно выглядит так: 1 п 1 i 1 — S ...и". (6.1) " 1=1 Причем равенство в (6.1) будет в случае, когда = и2 = = = Ui = и. Более общим случаем является геометрическое неравен- ство для средневзвешенных арифметического и . геометрического: (6.2) п где все веса 6t->0 и выполняется условие нормализации J] = 1. 13 1 В частном случае при п = 2, = — ; б2 = -j- получим — + з J_ — + ~и?. и2 • Доказательство неравенства (6.2) дано в приложе- нии 5. Это неравенство может быть использовано для нахождения мини- мума позинома g (/). * Отсюда и проистекает название соответствующего класса методов. 19* 291
Пусть, например, q (fj, У = 4/х 4—+ ~2--. /22 Ч Чтобы найти оценку снизу для q (if) используем геометрическое неравенство (при х _ 1 х _ 1 < _ 1 \ 61 - ~, 62 - 68 - —j: 1 1 1 “ U-t 4- — 4 1 П 4 1 т , j, 4 у 2 • t<2 • Тогда л. I 4/, \ 4 г .(»)>(1ад4 • -4- \ 2~ _ g Ч / Таким образом, 8 является оценкой снизу для q (t) при Ч > 0 и t2 > 0. Более того, 8 является точной нижней гранью для q (t), так как q (6 = ts = = 8. Двойственная функция. Рассмотрим теперь общий случай гео- метрического неравенства (6.2). ^i + 62t/2+ • • • ... где все Ut > 0, а веса 6Z > 0 удовлетворяют условию нормализации 6j + 62 + ... + = 1. Для удобства произведем замену переменных в (6.2), полагая Ui = 6^!, иг = 62У2, •••> и т- Д- Тогда геометрическое неравенство (6.2) примет вид: •> “+“»+ • +»>4Л • • • • (-Е-Г *» Левая часть (6.3) представляет собой функцию-позином g (t). Назо- вем ее прямой функцией задачи геометрического программирования (ГП). Правая часть (6.3) называется преддвойственной функцией. Обо- значим ее через V. Тогда неравенство (6.3) можно будет записать ё > V- (6.4) Если исходная функция g = иг -j- и2 ф- • • • — позином, при- чем и{ = ... tmm, то подставляя выражения для ut в правую часть (6.4), получим выражение для V: V (6’*> = Ш6' (тг)”’.........М где - п O/==S6(-af7; (6.6) £==1 Допустим, что можно выбрать веса 6f так, чтобы все показатели Dj обратились в нули. Тогда преддвойственная функция V (6, t) не будет зависеть от переменных и назовем ее двойственной функцией о(6) = (-Д-)б‘(_Д_)62. ... (6.7) \ о, I \ б2 1 \ 6„ / , 292
Из неравенства (6.3) следует, что g (t) имеет положительную точную нижнюю грань М. Тогда мы можем записать, что g (t) > М > V (6). (6.8) Из (6.8) следует, что М является оценкой сверху для двойственной функции для любого выбора весов 8С, при котором все показатели Dt обращаются в 0. Используем полученные выше результаты для решения рассмотренной выше за- дачи. Для функции 40 g (t) = - + 40/./3 + 20^3 + запишем двойственную функцию: где веса 64, I = 1,4 удовлетворяют условиям: ©1 = — Si + 63 + 64 = 0; O2 = -6t + 62 + 64 = 0; (6.10) О3 = — 6j б2 + 63 = 0. Условия (6.10) называют условиями ортогональности. Кроме того, веса б/ должны удовлетворять условию нормализации: 6j + 62 4“ 63 + б4 = 1. (6.11) Решая систему уравнений (6.10), находим единственное решение: о .. 2 js* 1 о * 1 £. 1 (>!= — ; 02 = -g- ; 03 = -g- ; 04 = -g- . Подставляя эти значения в (6.9), получим min g (t) = v (б*) = 100. Таким образом, минимальная суммарная стоимость равна 100 руб. Максимум двойственной функции Докажем теперь, что существуют положительные веса удов- летворяющие условиям ортогональности, и максимум двойственной функции v (6) равен минимуму прямой функции g (t). Предполагаем, что позином g (t) имеет минимальное значение в некоторой точке (/*, й, tm), все координаты которой положи- тельны. В минимизирующей точке t* производные g (t) по каждой пере- менной обращаются в 0 и мы получаем т уравнений вида: = ,s-l2) 1 г=1 i-»l 293
Разделив эти уравнения (6.12) на g (t) 0 и полагая получим, что (**) _ Я* g(t*) S ^flu = 0, / = Vm. 1=] (6.13) (6.14) Таким образом, вектор 6*, задаваемый (6.13), удовлетворяет усло- виям ортогональности, а кроме того, очевидно, он удовлетворяет и условиям нормализации. Поэтому g (t*) = <g*)(g*)• • • (g*)б" = П (g*) i=l Но с другой стороны, согласно (6.13) g* — — , fiz и поэтому Тогда из (6.15) следует, что g(t*) = t>(8*). (6.16) Это соотношение вместе с (6.8) доказывает, что минимум прямой функции g равен максимуму двойственной функции и. Определение минимизирующей точки Как следует из (6.13) и (6.16), метод геометрического програм- мирования позволяет найти минимальное значение позинома g (t) без предварительного определения искомой точки t*. В этом методе первоначально находится точка (б], 62, ..., 8^), которая максимизирует двойственную функцию v при условиях ортогональности и нормали- зации. Остается теперь задача определения точки минимума t* = (/*, tz, .... tm)- Покажем, как найти искомую точку 1* при известных 8’, v (6*). Для этого воспользуемся соотношениями (6.13). Так как g(t*) — V (6*), то u( (t*) = v (6*) 8*, i = 1, п. (6.17) Решая систему (6.17), найдем искомые значения для неизвестных t* = (tl й....4). В качестве примера рассмотрим задачу 1, сформулированную выше, и покажем, как найти переменные t\, t2, tz. Мы нашли, что 8Г = 4; = s3=4; 6<=Т: М = р(6*) = 100, 294
а из (6.13) следует, что Z* удовлетворяет системе • 100 = Ui = \ (6.18) • 100 = и2 = 40^3{ \ о / (4-) . 100 = ^ = 20^; Ц-) . 100 = щ = 10^2. \ О / Решая уравнения системы (6.18), находим искомые значения переменных 1* = — 9- Г = 1 • /* = _2_ — z, г2 1, г3 2 . Непосредственной проверкой убеждаемся, что при оптимальном значении вектора t* выполняется равенство g (t*) = 100 = v (6*). Прямая и двойственная задача геометрического программирования (общая формулировка) и их свойства Выше были рассмотрены частные постановки задачи геометриче- ского программирования (ГП) и исследованы некоторые свойства и взаимосвязь прямой и двойственной задач ГП. В настоящем раз- деле рассматриваются постановки и элементы теории геометрического программирования, а также соответствие между прямой и двойствен- ной задачами геометрического программирования. В основе теории геометрического программирования лежит обобщенное геометрическое неравенство, а также теорема Куна—Таккера для задач нелинейного программирования. В наиболее общей постановке прямая задача ГП формулируется следующим образом [19]. Прямая задача А. Найти минимальное значение функции g0 (t) при ограничениях: ^>0,/2>0, ... , (т>0 (6.19) и gl (t) < К ga (t) < 1, • • • , gp (t) < 1, (6.20) где gfe(t) = S ... fmlm, fe~0, 1, ... , p, (6-21) I |/г] = {mk; m/j+i, ... , nk}; k == 0, I, ... , p, (6.22) m0= тг = n0+ 1; mk = nk~i 4-1; , nff — n. (6.23) Bee Ci > 0; i — 1, n, а показатели степени — вещественные числа. Следовательно, все функции g,, (t) — позиномы. Минимизируемая функция gQ (t) называется прямой функцией, ограничения (6.19) — условиями неотрицательности, а ограничения (6.20) — вынужденными 295
I — fl ограничениями. Матрица A = | ap | ; — называется матри- / = tn цей экспонент. Двойственная задача, соответствующая прямой задаче А, форму- лируется следующим образом. Двойственная задача В. Найти максимальное значение функции — произведения где о(8) = (6.24) м8) = X 8z. k = \, р, (6.25) а множества индексов 1 [&] определяются согласно (6.22) и (6.23). Множители Ct, как и выше, предполагаются положительными, а на переменные 8 = (бб2, ..., б,г) налагаются следующие ограничения: 8i > 0, б, > О, бй>0, (6.26) X 8i = 1 (6.27) *ещ>] И п X O;/8Z — 0, / — 1, 2, . . . , /П. (6.28) (=1 Функция v (8) называется двойственной функцией, а переменные 81, б2, ..., 6„ — двойственными переменными. Условие (6.27) — усло- вие нормализации, а соотношения (6.28) — условия ортогональности. Путем сопоставления форм записи прямой задачи (6.19) — (6.23) и двойственной (6.24)—(6.28) можно установить следующие соответ- ствия между ними. 1. Каждому члену позиномов прямой задачи вида ut ~ ... соответствует одна двойственная переменная и наоборот. 2. Каждый множитель (8)’"'г<6) функции v (8) определяется вынужденным ограничением gk (t) < 1. Заметим, что целевая функция g0 (f) не влечет появление такого множителя, так как по условию нормализации 70 (8) =. 1. 3. Условие нормализации (6.27) — это единственное условие, по которому различаются целевая функция g0 (t) и позиномы — ограни- чения gk (t). Связь между оптимальными решениями прямой и двойственной за- дач геометрического программирования устанавливается в следую- щей основной теореме [19]. Теорема 5.15. Пусть прямая задача А совместна и существует решение t' такое, что gh (t') <С 1, k = 1, р, а также оптимальное решение. Тогда: 1. Соответствующая двойственная задача совместна и существует точка, удовлетворяющая двойственным ограничениям, в которой достигается условный максимум двойственной функции v (8). 296
2. Максимальное значение целевой функции двойственной задачи равно минимальному значению целевой функции прямой задачи min g0 (t) = max v (6). 3. Если t* — минимизирующая точка прямой задачи А, то суще- ствуют неотрицательные множители Лагранжа р.*, k — 1, р, такие, что функция Лагранжа L (t, ц) = g0 (t) + £ (t) - 1] <6-29> s=i обладает тем свойством, что L (t*, ц) < L(t*, pi*) = gn (t*) < L (t, p.*) (8.30) ДЛЯ произвольных tj >0и произвольных > 0. Кроме задачи того, существует максимизирующий вектор б* двойственной с компонентами, определяемыми из условий 6- ;.«) ; -«'И' i6/w, (6.31) go (О t = t* и р = р*. где Далее Ч (8*) = • (6-32) к v ’ go (t) 4. Если 6* — максимизирующая точка двойственной задачи В, то любая минимизирующая точка t* прямой задачи А удовлетворяет системе уравнений С^...1а21т 6*о(Б*); /£/|0], 6* Ц (6*) ’ (6.33) где k пробегает все положительные целочисленные значения, для ко- торых (6*) > 0. Доказательство теоремы 5.15 приводится в приложении 5. Пользуясь результатами этой теоремы, зная решение прямой задачи, можно на основании соотношений (6.31) определить максими- зирующий вектор задачи 6*. Наоборот, если известно решение двой- ственной задачи 6*, то используя формулы (6.33), можно определить оптимальное решение прямой задачи 1*. Заметим, что система (6.33) путем логарифмирования обеих частей каждого уравнения оказывает- ся линейной относительно In /15 In t2, ..., In tm. Наконец, из (6.32) следует, что величины 'Kk (6*) с точностью до постоянного множителя оказываются множителями Лагранжа для прямой задачи. Одним из условий теоремы 5.15 является предположение о суще- ствовании точки, удовлетворяющей ограничениям прямой задачи, где достигается минимум ga (t). 297
Следующая теорема двойственности определяет достаточные усло- вия, при которых это предположение справедливо. Теорема 5.16. Если прямая задача А совместна и существует точка 6* с положительными компонентами, удовлетворяющая огра- ничениям двойственной задачи В, то существует точка t*, удовлет- воряющая ограничениям прямой задачи, в которой функция g0 (t) достигает своего минимума. Исследуем некоторые свойства задачи геометрического програм- мирования. С этой целью рассмотрим позином g (t) = У . t%m (6.34) i и произведем в нем замену переменных, полагая // = ег', / = 1, 2, ... , т. (6.35) Преобразованная функция, имеющая вид g(z) = 1сге/-’ , (6.36) называется положительной показательной функцией. Отметим, что переменные г,- преобразованной прямой задачи меняются на множестве всех вещественных чисел, тогда как переменные исходные прямой задачи должны удовлетворять условию неотрицательности. Итак, мы преобразовали прямую задачу А к следующему виду. Прямая задача Аг. Найти минимум положительной показательной функции g0 (z) при ограничениях gl (z) < 1, gi (z) < 1 ... gp (z) < 1, . (6.37) где „ 2 aipi gk(z)~ S , k = 0, 1, ..., p, (6.38) I [Л] — {mk, тщ.1, ... , nk} и m0 = 1, mx = n0 + 1, np = n. Очевидно, все функции gk (z) — положительные показательные функ- ции. Анализ преобразованной задачи Аг позволяет выявить многие важные свойства прямой задачи А. Например, из рассмотрения задачи Аг сразу следует, что любая прямая задача может быть сформулирова- на так, что ее матрица экспонент А = || ац || будет иметь ранг т. Действительно, задача Аг может быть представлена в бескоординатной форме: найти min функции У, с,еЛ‘при ограничениях «еяо] У CjpA1 <1, k = 1, р, где вектор X = (х1; х2, ..., хп) принадлежит пространству, натянутому на столбцы матрицы А = ||аг/||, xt = у aijZj. Если ранг А меньше .298
т, то векторы-столбцы матрицы А линейно зависимы, и из них можно выделить базисные векторы и небазисные, линейно зависящие от базисных. Такое выделение будет, естественно, не единственным. Однако при данном выделенном базисе переменным, не входящим в базис (небазис- ным), можно приписать произвольные значения, и потому их в сущ- ности можно не считать переменными, так как это не оказывает влия-' ния на минимальное значение задачи Аг. Таким образом, без потери общности можно считать, что ранг матрицы А всегда равен т. Если такая матрица квадратная (т. е. п — = т), то ее векторы-столбцы образуют базис для пространства Еп. В таком случае всегда существует последовательность векторов {z’}^=i, для которой Е ~—q, i = 1, 2, ... , п; q = 1, 2, .... (6.39) i Тогда из соотношения (6.39) следует, что lim gk (zw)) = О, А = 0, 1, (6.40) оо Но это означает, что задача Аг совместна и gn (z) имеет минимум, равный 0. Кроме того, ясно, что задачи этого типа вообще не имеют условного минимума. Соответствующая двойственная задача в этом случае всегда несовместна, поскольку нулевой вектор будет единст- венным решением, удовлетворяющим условиям ортогональности, но он не удовлетворяет условию нормализации. Итак, мы приходим к выводу, что любая нетривиальная прямая задача может быть сформулирована так, что ее матрица-экспонент будет иметь ранг т, равный числу переменных прямой задачи, где т — строго меньше общего числа членов п. Целое число п — т — 1 называется степенью трудности такой задачи. Степень трудности совпадает с числом независимых переменных, по которым максимизируется двойственная целевая функция. Так, решение задачи с нулевой степенью трудности легко получается из решения двойственной задачи, поскольку ограничения для нее будут иметь единственное решение. Более того, нахождение этого решения 6* очень несложно, так как все двойственные ограничения линейны. Вследствие того, что вектор б* является единственным решением двойственных ограничений, то он является также и мак- симизирующим вектором для двойственной задачи. Если же степень трудности больше нуля, то для нахождения б* требуются дополнитель- ные усилия. Однако, как мы покажем, даже не определяя б*, из двой- ственной задачи можно извлечь много полезной информации. Двойственная задача В имеет линейные ограничения двух видов: в форме неравенств б4 >0, ..., 6, >0, ..., б(1 > 0 и в форме равенств. Ограничения-равенства выражают условия ортогональности и норма- лизации. Все решения условий ортогональности образуют подпро- странство пространства Еп, которое называется двойственным 299
пространством и является ортогональным дополнением прямого про- странства, представляющего собой пространство векторов-столбцов матрицы А. Условие нормализации определяет гиперплоскость в Еп, которая называется гиперплоскостью нормализации, условия неотри- цательности определяют первый ортант пространства Еп\ пересечение двойственного пространства с гиперплоскостью нормализации и пер- вым ортантом и определяет допустимое множество решений, называе- мое двойственной областью. Для задачи геометрического программирования с нулевой сте- пенью трудности двойственная область содержит не более одной точки. Для задачи с положительной степенью трудности d можно построить базисные векторы b(/>, j = 0, 1, ..., с!так, что общее решение двойствен- ных ограничений будет иметь вид 8 = Ь(0) 4- U Г;Ь(Л, (6.41) /=1 где Г) — произвольные вещественные числа, удовлетворяющие усло- виям неотрицательности вида d = + £ rfblD >0. (6.42) Вектор b(0), удовлетворяющий условиям нормализации п Ё № == 1 (6.43) 1=1 и условиям ортогональности £ а{$0} = 0, / ==17т, (6-44) 1=0 называется вектором нормализации. Векторы b<;), j — 1, ..., d образуют базис пространства решений линейной однородной системы уравнений: S Ус = 0; (6.45) <ецо] S ас1Ус = 0. 1 = 1, 2, ... , т. 1 Их называют векторами невязки, а переменные rjt связанные с векто- рами Ь(,),— базисными. Выразив двойственную функцию v через базисные переменные, получим v = (ri СЬ°>+ ,£IП ПЧ (8)^б)- (6.46) 11=1 J v=i / /г=1 Пусть п btf> /<С = Псс‘, / = 0, 1........d. (6.47) 1=1 300
Тогда v = /с0(п W/ri бгбА п >.к (б)^<6). (6-48) \/=i \ v=i / k=i Отметим, что постоянная Ко имеет размерность двойственной функции, а постоянные Кр j = 1, d — безразмерные величины. Эти постоянные называют базисными, так как они зависят от базиса {ЬД, / = 0, 1, Таким образом, мы привели двойственную задачу В к следую- щему виду. П реобразованная двойственная задача Вг. Найти максимум функции (d \ / п \ р П Kr:i) П 8{ (г)~б*(г) П Kk (г)^(г), (6.49) /=1 / V=1 / k—1 где d 6(- (Г) = № + Е rfiT, (6-50) 1 и d ____ Mr) = M0) + S k=1,p, (6.5D (=1 n № /СУ = П с/ ; / = 0, 1, 2, ... , d, (6.52) l—l и № = E = E iGim ienk} На вектор г наложены условия неотрицательности вида d 6(. (Г) = b(°} + Е г,ЬТ > 0; 1= 1, 2, ... , п. (6.53) /=1 Заметим, что единственными ограничениями преобразованной двойственной задачи Вг являются ограничения, вытекающие из ус- ловий неотрицательности (6.53). Все векторы, удовлетворяющие ограничениям преобразованной двойственной задачи Вг, образуют выпуклое множество, так как они являются линейными. Если бы функция и (г) была вогнутой, то для отыскания максимума v (г) можно было бы применить методы вогнутого программирования. Однако это условие для функции v (г) в общем случае не справедливо. Но в то же время функция In v (г) всегда вогнута, даже если v (г) не обладает этим свойством. (Доказа- тельство этого факта приводится в [19]). А так как логарифмическая функция является монотонно возрастающей, то v (г) и In v (г) имеют одно и то же множество максимизирующих точек. Таким образом, решение преобразованной двойственной задачи Вг сводится к опти- мизации вогнутой функции, полученной заменой v (г) на In v (г) на вы- пуклом множестве допустимых решений. Воспользуемся этими свойствами для нахождения условий опти- мальности для искомого решения. 301
Допустим, что г — точка, в которой 6Z (г) >0, i = 1, 2, ..., П’ Логарифмируя v (г) и дифференцируя по rt в точке г, получаем д^’ = Ь К, — S In 8Z (г) + In \ (r). (6.54) Значит, точка г является стационарной точкой для In v (г) тогда и только тогда, когда ". р In К, = S ln (r) ~ X № In 4 (r)> 7=1,2, • • •, d, Z=1 k—1 что эквивалентно Ki = ri (Г)6<(/ ri Kk (r)-^(/). (6.55) 1=1 fe=l Если г удовлетворяет этим уравнениям, то после несложных пре- образований выражение для и (г) может быть приведено к виду « _6(0) Р v (г) = /<0П 8i (г) 1 П \ (Г)М\ (6.56) Использование соотношений (6.55) и (6.56), а также свойства, что для вогнутой функции всякая стационарная точка является максимизиру- ющей, доказывают следующую теорему [19]. Теорема 5.17. Если 8 удовлетворяет ограничениям двойст- венной задачи В и все компоненты б положительны, то 8 является максимизирующей точкой двойственной задачи тогда и только тогда, когда Kj = (ri (г)) fl (8 (г))~%*(/), 7=1,2, ... , d, (6.57) V=i ) fe=i где Ki = п /=1,2, ... , d. (6.58) 6=1 При этом, если 6 удовлетворяет соотношениям (6.57), то V (8) = ко (ri 8~bim (Г)) ri (8)^(0>. • (6.59) V=1 / fe=l Уравнения (6.57) называются максимизирующими уравнениями. Они образуют систему, состоящую из d нелинейных уравнений относи- тельно d базисных переменных г,- (/ = 1, d). Решив эту систему, можно определить максимизирующую точку двойственной программы В. Формула (6.56) задает максимальное значение двойственной задачи В для такой максимизирующей точки. Заметим, что базисные постоянные Kj и двойственные переменные 6Z (г) входят в разные части максими- зирующих уравнений, такое разделение переменных и постоянных облегчает исследование зависимости оптимальных точек двойственной задачи В и прямой задачи А от коэффициентов с(. 302
Описание алгоритма На основании вышеизложенного можно сформулировать следующий алгоритм геометрического программирования. Пусть задана прямая задача в виде (6.19)—(6.23). 1. Составляем задачу, двойственную к ней, (6.24)—(6.28). 2. Находим решение ограничений ортогональности (6.28) и нор- мализации (6.27) — 6*. Если степень трудности задачи d — п — т — — 1 = 0, то это решение единственно. 3. Используя значение 8* = {б/} i = 1, п, составляем систему уравнений (6.33), которую решаем относительно неизвестных t* — = {tj}j = 1, tn. При этом для искомого решения v (6*) = g0 (t*). 4. Если же степень трудности задачи d > 0, то общее решение системы уравнений (6.27) — (6.28) будет иметь вид; 8{ (г) = &!0) + S г$} > 0; i = 1, n; j=i где г — вектор произвольных параметров. 5. Используя условия оптимальности теоремы 5.17, составляем и решаем систему нелинейных уравнений (6.57) относительно неиз- вестных г/5 j = 1, d. Найдя ее решение г* и подставляя в (6.53), опре- деляем оптимальные значения двойственных переменных бг = 8г- (г*), а подставляя 6* в (6.59), определим оптимальное значение двойствен- ной целевой функции v (8*) = max v. 6. Переходим к прямой задаче и, используя соотношения (6.33), решаем систему уравнений относительно искомых значений ..., tm при уже найденных значениях переменных {б*} j = Т7"й7 Пример 5.9. Пусть требуется минимизировать позином g0 (t) = 40^2 + 20уз, (П при ограничении g(t)=_p?V’+4 Заметим, что в данной задаче число членов п = 4, а число переменных т = 3. Следо- вательно, степень трудности задачи d = п — т — 1 = 0. Таким образом, решение двойственных ограничений единственно. Двойственная задача к задаче (1) запишется в виде: max о (6) = ( « f • (68 + (3> \ Oj / \ 02 / \ о3 / \ О4 / при условиях 4- ^2= 1; Sj — б3 = 0; (4)' бт + 62--1-63 —64 = 0; (б) 303=
s2----1-64 = 0; О 6t > 0, 62 0, 63 >0, 64 0. (6) Условия (4), (5) образуют систему из четырех уравнений с четырьмя неизвестными и имеют единственное решение: 6* = 4-; б2 = ^; «з^; «; = 3/4. Из выражения для g (t) видно, что выполнены условия теорем 5.15 и 5.16 и прямая задача совместна. Применим эти теоремы для нахождения искомого решения t*. Находим значение двойственной функции у(6*) = ц(1/2, Ч2, Ч2, 8/1) = 40. Следовательно, по теореме двойственности 5.14 g»(4.4><з) = 40- Используя четвертое утверждение теоремы двойственности и соотношение (6.33), составим следующую систему уравнений: * 1 40/4/2 = 6t v (6*) = -А- • 40, (7.а) 20уз = 63 v (6*) = А. . 40, (7.6) WV’ = А" = "А IT ' = 4 ’ (7>е) Л 0g ~г“ О4 Чтобы решить систему (7), прологарифмируем обе части соотношений (7, а) — (7, з). Получим систему линейных уравнений относительно In^, ln^2,1 п/3. Она имеет единст- венное решение 1п/4 = —1п2; 1п/2 = 0; 1п/3 = 0, откуда искомое решение имеет вид ; /2 = 1; t3 = 1. Нетрудно убедиться непосредственно, что g (1/2, 1, 1) = 40. Пример 5.10. Пусть требуется минимизировать позином g0 (t) = 40/y1/~1/Vi + 20/^., + 20^2/3, (1) при условии g (t) = -у- z~2^~2 + 4 L (2) Соответствующая этой задаче двойственная программа состоит в максимизации (-£Г • (£Г • (£)“ при ограничениях 61+S2 + 63= 1; — 61 + 62 + б3 — 26,, — 0; -1/261 + 63 - 264 + 1/265 = 0; (5) — 61 + 62 + — 65 = 0; 64 >0, S2 > 0, 63 >0, 64 > 0, 65 > 0. (6) 304
Степень трудности программы равна п — т — 1 = d = 5—3 — 1=1. 1. Решаем систему (4) — (6) методом Гаусса; результаты последовательных ите- раций приведены в табл. 5.4 — 5.8. Отсюда получаем следующее базисное решение: = = 63* = i/j, б4*=0, S*=0. Полное множество решений системы равно при б4 = г 61 = v2 —Г, 62 = 1/i 4- !/2г; 64 = г; 66 = 2г. Из этих уравнений, используя условия неотрицательности, получаем, что г должно удовлетворять неравенству О « г < 1/а. (7) 2. Записав общее решение системы в виде: б = Ь(0> + определяем, что ь<0> = [4' тт 00]: (8) Ь(1) = [— 1 V2 1 2]. (9) 3. Используя условия оптимальности (6.57) теоремы 5.17, определяем искомое значение г*, при котором ® (6 (а*)) = шах v (г). Г п ь(1) Вычисляем Kt = П с;! = 40“1 . 20*'« • 20‘^ • (V41(«/s)2 = 20/40. 1/3 • 16/9 = z=i = 8/27. Но в силу (6.57) с учетом d — 1 и р = 1 получим 5 b(V> 7Ci=n S? (г) %ГМ(1) (г), (10) <=1 где 6/ (г) определяется из (6), б,11 определяется из (9), (г) = 64 (г) 4- (г) = г 4“ 2г; Х<1> = £><’> 4- = 1 4- 2 = 3. Подставляя эти значения в (10), получим , / 1 I \VS / 1 1 V/2 , 8 Ki^U-r)-1. 4-+4-Г • 4 + 4-r) •W1(2r)2(r4-2r)-3 = -^-. (11) Откуда (4-+40^’ s И \ 27 или 1/44-1/8г = 2(1/2-г). (12) Из (12) определяем искомое значение г* = 0,3. 20 8—3164 305
Таблица 5.4 61 А А 6ь А □ 1 1 1 -1 1 1 —2 0 -1/2 1 —2 1/2 0 —1 1 1 —1 0 Таблица 5.5 л «2 А 64 | Л 1 г 1 I 1 0 0 2 —2 1 ' 0 1/2 1% —2 1/2 | 1/2 0 2 2 —1 | 1 Таблица 5.6 А А 63 А А Ло 1 0 1 1/2 0 1 1 —1 1/2 0 0 1 -14 1/4 0 0 0 2 —1 0 Таблица 5.7 А А А «4 А Л» 1 0 1 1/2 1 1 —1 1/2 2 -34 1 1/2 IZ —1 0 1/2 Таблица 5.8 А А А А А А 1 0 1 1/2 1 0 -1/2 1/4 0 —2 1 0 1 -1/2 1/4 306
Заметим, что это значение удовлетворяет неравенству (7)., Подставляя г* = 0,3 в (6), находим оптимальные значения двойственных переменных: 61= 1/2 — г* = 0,2; 6* = i/4 + i/2r = 0,4; 6*=52 = 0,4; 6* = 0,3; 65=0,6. Тогда максимум двойственной функции будет равен: составить уравнения относительно неизвестных прямой задачи tlt /2, ts: 40/“ = 6*0 (6*) = 0,2-100 = 20; 20уз = 5'Jo (6*) = 0,4 • 100 = 40; 20/^g = 63O (6*) = 0,4 • 100 = 40; 1 ,-2,-2 _ 64 _ 0,3 _ 1 3 1 2 0,3 + 0,6 3 ’ Разделив уравнение (16) на (15), получим t*2 = 40/40 = 1. Подставляя t*„ = 1 в (17), получим 1/3 tT2 — 1/3, откуда /t = 1. = 2ОО0,2 • (5О)0’4 • (5О)0,4 • (-^)°’3 • • (О,9)0’9 • 20>6 = 40'2 • 50 • 40’3 = 100. Итак, v = (6*) = 100. Теперь, используя соотношения (6.33) из теоремы двойственности 5.15, нетрудно (14) (15) (16) (17) И наконец, подставив /'] = 1 в (15), находим = 2.Итак, мы нашли следующее оптимальное решение прямой задачи tj — 1; = 1;£ 3 = 2; g (t*) = v (6*) = 100. Вопросы для самопроверки 1. Укажите основные трудности, возникающие при решении задачи нелинейно- го программирования. 2. При каких ограничениях можно применять метод множителей Лагранжа? 3. Какой смысл имеют множители Лагранжа? 4. Сформулируйте теорему Куна —Таккера. В чем состоит ее значение для ре- шения НП-задач? 5. Поясните смысл условий регулярности. Какой вид они могут принимать? 6. Поясните смысл условий дополняющей нежесткости. 7. Запишите условия теоремы Куна—Таккера для НП-задачи при дополнитель- ных ограничениях неотрицательности. 8. Как связаны между собой оптимальные решения пары двойственных ЛП-за- дач и седловая точка соответствующей функции Лагранжа? 9. Какая связь существует между оптимальным решением задачи нелинейного программирования и седловой точкой функции Лагранжа для этой задачи? 10. Какое свойство геометрического неравенства лежит в основе методов геомет- рического программирования? 11. Сформулируйте основную теорему геометрического программирования и по- кажите ее связь с теорией двойственности. 12. Какой смысл имеет условие «существует такое решение t, что gi(t)<0., i = 1, р», используемое в этой теореме? 13. Что такое степень трудности задачи геометрического программирования? 20: 307
Глава 6. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Динамическое программирование — это вычислительный метод для решения задач определенной структуры. Динамическое программи- рование возникло и сформировалось в 1950—1953 гг. благодаря рабо- там Р. Веллмана и его сотрудников. Первые задачи, которые привели к появлению вычислительного метода динамического программирова- ния, являлись динамическими задачами управления запасами. § I. СУЩНОСТЬ ВЫЧИСЛИТЕЛЬНОГО МЕТОДА Сущность вычислительного метода рассмотрим на следующем при- мере. Найти max z = £ fi (xf) (1.1) жи хп 1=1 при условиях У! ал, < Ь; а, >0, X/ > 0. (1-2) (=1 Целевая функция задачи является суммой функций от одной пере- менной. Такая функция называется аддитивной. Если все /г (xz), г = = 1,2, ..., п — выпуклые (вогнутые), то для решения может быть при- менен метод множителей Лагранжа. Однако, если имеется много локальных максимумов, то этот метод дает лишь одно из таких решений. В случае, если требуется найти глобальный максимум, метод множи- телей Лагранжа неприменим. Рассмотрим метод, обеспечивающий решение задачи. Считаем все (a/), j = 1, ..., п и b целыми числами. Предположим также, что в за- даче все переменные {х/} могут принимать только целочисленные зна- чения. Введем следующие значения. Через z* обозначим абсолютный мак- п симум г, при условии. Yiaixi < Выбираем значение хп и, зафикси- /==1 ровав его, максимизируем z по всем остальным переменным xi, х2,... xn—i. Предположим, что такая максимизация проведена'для всех возможных значений хп. Тогда г* будет наибольшим из всех возможных значений г. Формально этот процесс записывается так: max f £ fj (xf)] = fn (хп) + max | £/, (%/))> ' (1.3) 1 (/=si J XliX2i-'>Xn-1 = l J 308
причем п—1 £ < b — апхп. 1=^1 п—1 Так как шах У (х,) для неотрицательных целых чисел, удовлетворя- /=1 п—1 ющих условию У ajXj < b — апхп, зависит от b — апхп, то обозначим /=1 - п—1 max у fjtXj) — An—i(b — апхп). (1.4) —1 /—1 Допустим, что мы вычислили Лл_1 (Ь — апх„) для всех допустимых целых значений х„ = (о, 1, .Г— |\, где [—1 обозначает целую I L ап j j L J ь часть —. ап Очевидно, что z* = max [/„ (х„) + A„_i (b — a„xn)]. (1.5) УН0 - Для вычисления (1.5) определяем значения fn (хп) и Л„_1 (Ь — апх^ для всех допустимых значений хп и выбираем максимальное. Одновре- менно находим и Хп- Таким образом, если бы была известна функция Лп_1 (Ь — апхп), то вся задача свелась бы к задаче с одной переменной. Покажем, как можно вычислять Л„_[ (Ь — апха). Очевидно, Лп_1 © = max £ /=, (XjY, у ajXj < g. /=i р Рассуждая, как выше, получаем Л„_1 (£) = max [/„_i (x„_i) + Лп_2 g — an-iXn_i)], (1.6) хп—1 где п—2 Лп_2 g — n«_iXn_i) = max у//(Ху), (1.7) х1—1 у=1 причем максимум берем по всем неотрицательным целым xj, ..., хя-^ п—Ч удовлетворяющим условию ; ап—\хп^. i—^ Далее вычисляем Л„_2 (g), Л„_з(^)и т. д., пока на последнем шаге не придем к A!(g)= max /Jxj). (1.8) L “> J Чтобы решить задачу, процесс вычислений необходимо вести в об- ратном порядке, начиная с Лх (g). Зафиксировав начало интервала и 308
изменяя верхний его конец g, вычисляем Л1 @ = шах Д (лу), 0 < X]. < Ц- для всех значений g = 0, 1, Ь. Оптимальное решение первого шага обозначим через лу®. Строим таблицу динамического программирования следующего вида (табл. 6.1). Таблица 6.1 Вычислив Aj (Е), найдем Л2 (g), используя соотношение Л3 (g) = max [Д (х2) + Лх (| — аах2)]. Г 1 Вычисляем последовательно Л2 (Е) /для всех g = 0, 1, ..., Ь, используя при этом результаты табл. 6.1. Обозначим <р2 (0; g) = f2 (0) At (Е). Тогда Наибольшее из этих чисел и есть Ла (Е). Одновременно находим и ха (g). Затем строим таблицу, аналогичную табл. 5.1, для Л3 (g) и х2 (?) (? = 0, 1, ..., Ь). Так продолжается до вычисления Л,г_1 (g) для g — 0, Функцию Ля (g) табулировать не нужно, так как до- статочно определить лишь Л„ (Ь) = г*. Одновременно находим и опти- мальное значение для переменной Дг (/?). Для нахождения значений всех остальных переменных лу_1, хп_2, ... xi следует использовать уже вычисленные таблицы (п—1)-го; (п — 2)-го и т. д. шагов. Из предыдущей таблицы п — 1-го шага находим xn_i — xn_i (£> — 310
Для этого берем g = Ъ — апХп. Аналогично определяем С_2 = хп_.2 (Ь — апх\ — ап_^. Как видим, динамическое программирование представляет собой направленный последовательный перебор вариантов, который обя- зательно приводит к глобальному максимуму. Для применения метода динамического программирования необходимо табулировать функции Л] (§), ..., Л„_] (g) для всех допустимых значений g. Сравним по числу необходимых операций динамическое програм- мирование с простым перебором. Для упрощения расчета примем, что все — а2 ... : При простом переборе число возможных вариантов решенийДпри условии целочисленности всех переменных) равно числу способов, ко- торыми можно разместить b одинаковых шаров в п урн. Оно составляет гь — (п + Ь— 1)! ^n+b-l — ь\(п— 1)1 ‘ При п — 5, Ъ — 20 имеем C-L = Ю 626. Оценим число операций, требуемых для решения этой задачи мето- дом динамического программирования. Для вычисления kk (?) при фиксированном g необходимо провести (g + 1) вычислений. Поэтому для заполнения одной таблицы Л/е (g) не- обходимо проделать V /т- , 1 К + 1) {Ь + 2) + 1) = —- ...2р- операции. _г. Следовательно, для вычисления всех функций Л3 (g), Л2 (£), « -V- х , I, (Н1)(Н2) ., Лл,_1 (g) неооходимо (п — 1) -—!~—!—— операции. С учетом вычисления функции Л„ (6) общее число операций Подведем итоги. Рассмотренную задачу можно трактовать как за- дачу распределения с одним ограниченным источником сырья S «Л < Ь, i=i где лу — количество сырья, используемое в /-м способе производства. Тогда /у (%/) — доход от переработки /-м способом х, единиц сырья. Поэтому ЛЛ (§) можно рассматривать как максимальный доход от пер- вых k способов производства, когда общее количество сырья равно g единиц. Потому данная задача представляет собой n-шаговый процесс принятия решений, где на /-м шаге принимается решение, какое ко- личество сырья из общего его объема следует направить на переработку -по /-му способу. Как видим, структура задачи не изменяется от числа шагов, т. е. задача инвариантна относительно и. Решение для зп
^-шаговой задачи получается из решения для (k — 1)-шаговой задачи путем добавления k-vo шага и использования результата, полученного для всех предыдущих шагов. Следовательно, сущность динамического подхода состоит в замене решения данной и-шаговой задачи последовательностью задач: одно- шаговой, двухшаговой и т. д. Отметим основные необходимые свойства задач, к которым возмож- но применить этот подход. 1. Задача должна допускать интерпретацию как «.-шаговый про- цесс принятия решений. 2. Задача должна быть определена для любого числа шагов и иметь структуру, не зависящую от их числа. 3. При рассмотрении ^-шаговой задачи должно быть задано неко- торое множество параметров, описывающих состояние системы, от ко- торых зависят оптимальные значения переменных. Причем это мно- жество не должно изменяться при увеличении числа шагов (в рассмот- ренной задаче таким параметром было g — количество сырья). 4. Выбор решения (управления) на &-ом шаге не должен оказывать влияния на предыдущие решения, кроме необходимого пересчета пе- ременных. Пусть | — вектор параметров, описывающих состояние процесса (вектор состояния). Тогда Ak (|) — оптимальное значение целевой функции для ^-шагового процесса при условии Ak (|) будем называть функцией состояния. Пусть X — вектор переменных управления, подлежащих выбору на &-м шаге. Тогда для задач, к которым можно применить метод дина- мического программирования, должно выполняться следующее основ- ное рекуррентное соотношение: Ak (|) = шах (Xfe; |) + [Т (g; Xft)]}, (1.«) где Т (|; Xfe) — вектор состояния предыдущего (k — 1)-го шага, при условиях | и ХА. Сформулируем теперь принцип оптимальности Р. Веллмана, ко- торый обосновывает это рекуррентное соотношение. Оптимальная стра- тегия обладает следующим свойством: каковы бы ни были начальное со- стояние^, и начальная стратегия Хх, последующие стратегии (решения) должны быть оптимальны по отношению к состоянию Т (g; XJ, полу- чающемуся в результате предыдущего решения, т. е. по отношению к текущему состоянию системы. Таким образом, принцип оптимальности утверждает, что оптималь- ное управление системой на каждом шаге не зависит от предыстории процесса, т. е. как система пришла в текущее состояние, а определяет- ся только самим этим состоянием. Системы (процессы), для которых справедливо это свойство, называются марковскими. ; Задача о выборе траектории Основной принцип динамического программирования можно про- демонстрировать на следующем примере [11]. 312
Пример 6.1. Самолет (или другой летательный аппарат), находящийся в точке So и имеющий скорость Vo и высоту должен быть поднят на заданную высоту Нкон, а скорость его доведена до значения VKOII. Известен расход горючего, необходимый для подъема с любой высоты И, на высоту Н2 при постоянной скорости V, и расход горючего, необходимый для изменения скорости от Vj до Vg (Vg > +) при неизменной высоте И. Найти оптимальный режим набора высоты и скорости, при котором общий расход горючего будет минимальным. Предположим, что весь процесс набора высоты и скорости можно разделить на ряд последователь- ных шагов (этапов) и за каждый шаг самолет уве- личивает только высоту или только скорость. Изо- бразим состояние самолета точкой на плоскости VOH, где абсцисса отвечает скорости V, а ордина- та — высоте Н. Процесс перемещения точки S из начального состояния So в конечное SK0H изобразит- ся тогда на плоскости’ VOH некоторой ступенчатой ломаной линией (рис. 6.1). Эта траектория и будет характеризовать управление набором высоты и ско- рости. Из всех траекторий нужно выбрать такую, на которой выбранный критерий — расход горючего <2 — будет минимальным. Для решения задачи методом динамического программирования разделим высо- ту Дкон — Но на rij равных частей, а скорость Укон — на яа равных частей. Таким образом, за один шаг процесса происходит либо изменение высоты на „ ,, ^КОН ^0 , „ ^КОН ^0 величину ап =------—-----, либо изменение скорости—Ди =-------~, Суммарное число шагов процесса по переводу самолета из So в SKOH равно т = = + rig. ff Нк 20 18 16 15 14 17 &ен — — Ю17 *14 1313 1310 7<7 \317 । 910 813 912 10ю *8 % М 12 712 613 8 12 710 811 & ^15 \20 9 ——.— 810 7 в 8в 9 8 910 1 7713 Г 15 7 Ю11 8 7 f°8 I 10Т 1113 *14 К 9 11 \Ч2 9.. I 11 I *3 ав *14 14 \12 17 Г20 10 г —*— I— L J . _ .... I I и Л/ Рис. 6.2. УкОН С каждым шагом связан определенный расход горючего. Запишем на каждом из отрезков соответствующую величину расхода горючего (в условных единицах). Тогда условия задачи представлены на рис. 6.2, а траектории, отмеченной стрелка- ми, соответствует расход горючего Q= 12+ 11 + 10 + 8+ И + 8+ 10+ 10+ 13+ 15 + 20 4-9+ 12 + 14 = == 163 у. е. т. 313
Число всех возможных траекторий достаточно велико, а потому простой перебор неприемлем. Поскольку конечное состояние£кон известно, то построение оптимальной траектории начнем с конца. В концевую точку SKOB можно переместиться только из двух соседних (Bj и В2), причем из каждой только одним способом (рис. 6.3), а поэтому выбора оптимального Рис. 6.3. Рис. 6.4. управления на последнем шаге нет,— оно единственно. Если на предпоследнем шаге мы находились в Blt то перемещение в <$кон происходит по горизонтали и тратится 17 у. е. т., если же находились в В2, то движемся по вертикали и тратим 14 единиц. Эта минимальные величины расходов обводим кружками и ставим у точек В, и В2. Рис. 6.5. Таким образом, число в кружке у данной точки всегда означает минимальный рас- ход горючего для перемещения самолета из данной точки в конечную, а оптимальная траектория указывается стрелками. Переходим к планированию предпоследнего шага. Для этого рассмотрим пункты, из которых можно попасть в В, и В2 за один шаг. Такими точками являются С1г Сг 314
и С3. Для каждой из них необходимо найти оптимальный путь вЗк0Ы и соответствую- щий ему расход горючего. В частности, для С, выбора нет, нужно двигаться по гори- зонтали и тратить 15 + 17 = 32 у. е. т Этот оптимальный путь пометим стрелкой. Для точки С2 выбор есть: из нее можно идти в5кон через Вг или через В3. В первом слу- чае израсходуется 13 + 17 = 30 единиц, а во втором — 17 + 14=31 единица. Итак, оптимальный путь из С2 в Зкон лежит через В,. Для точки С8 путь в Зкон единственный — по вертикали, ему соответствует расход в 12+ 14= 26 единиц горючего; эту величину обводим кружком при С», а стрелкой укажем оптимальное движение (рис. 6.4). Таким образом, переходя от точки к точке справа налево и сверху вниз, для каж- дой узловой точки находим оптимальную траекторию, ведущую bSK0H, и соответству- ющую ей величину минимальных расходов. Эту величину будем обводить кружком. В конце концов этот процесс заканчивается, приведя к начальной точке So. Двигаясь теперь от нее в направлении стрелок, мы последовательно проходим искомую траекто- рию от начала в конец. На рис. 6.5 приведен окончательный результат. Оптимальная траектория отме- чена дополнительными стрелками. Число 139 означает минимальный расход горюче- го, отвечающий этой траектории. Поскольку в данной задаче фиксированы и начальная, и конечная точки, то процесс построения оптимальной траектории можно было бы провести и в противо- положном направлении, от начала в конец. Тогда числа в кружках означали бы ми- нимальный расход горючего при перемещении самолета из начала — точки So в точку, соответствующую числу в кружке. Очевидно, что окончательный результат — опти- мальная траектория — при этом не изменится. Задачи последовательного принятия решений Структура рассмотренной задачи распределения ресурсов такова, что по мере построения процесса переменные xt (i = 1, ..., ri) могли определяться в произвольном порядке. Однако существует много задач, где решения должны определяться в строгой временной последова- тельности, и потому переменные xt и х, нельзя менять местами. Подоб- ные задачи называют задачами последовательного принятия решений. Для этих задач имеется выбор между двумя разными схемами решения: ” 1) решение задачи в прямом направлении, когда первый шаг схе- мы динамического программирования соответствует первому по вре- мени принимаемому решению; 2) решение в обратном направлении, когда последний шаг схемы от- вечает первому фактически принимаемому решению. Для объяснения этих двух схем решения рассмотрим такую задачу. Задача об использовании рабочей силы. Производителю работ нужно определить оптимальное число работников в каждый из п месяцев. Про- изводственные задания для каждого месяца известны. Допустим, что в у-й месяц идеальное число рабочих — nij. Если бы производитель работ мог увольнять и принимать новых рабочих без дополнительных затрат, то он мог бы в /-й месяц принять ровно т,- рабочих (/ = 1, 2, ..., ?г). Предположим, что работа /-го месяца может быть выполнена и мень- шим числом рабочих при сверхурочной работе. Пусть х, фактическое число рабочих в /-й месяц. Затраты по изменению численности рабо- чих при переходе от (/ — 1)-го месяца к /-му определяются функцией Д (Xj — Х/—1). 31а
В зависимости от знака величины X/ — функция fj(Xj — X/_i) определяет затраты по найму или увольнению. Очевидно, fj (0) =s 0. Отклонение численности рабочих от nij приводит к расходам gj (Xj — rtij), причем gj (0) = 0; / = 1, 2, п. Считаем, что в началь- ный момент число рабочих составило т0. Целевая функция задачи z определяется соотношением 2 = S [fj (xi — Xf-i) + gj (x, — тД], <1-10) 7=1 где x0 = m0. Очевидно, это задача с фиксированным началом х9. Выведем основное рекуррентное соотношение: z= min k (хх — т0) + gr (хх — mx) + ...хп I + S {fj (.Xj — хН1) + gj (Xj — m>)Y, i~2 min £ {fj (Xj — x;_0 + g (Xj — mj)} = x?..xn 7=2 = min {(f2 (x2 — Xi) + g2 (x2 — m2)l + X2 + min V fj(Xj — Xj_i) + gj(Xj — mj)}. (1.11) x*--xn j=3 Данную задачу удобно решать в обратном направлении. Обозначим Л„ Q) = min [f„ (хп — $ + gn (хп — m„)], (1.12) хп где — Хп—\. Основное рекуррентное соотношение имеет вид Aft (£) = min [ffe (xk — g) + gk (xk — mk) + Afe+! (xfe)], <1.13) xk где Л/г (g) — минимальные затраты за месяцы от &-го до н-го включи- тельно, если количество работников в (k — 1)-й месяц равно g. На последнем шаге определяется оптимальное число рабочих в пер- вый месяц при условии, что на начало месяца их численность составля- ла т0. Определив х*, последовательно находим Хг — х2 (х*), х3 = х8 (х2) и т. д. Здесь решение в обратном направлении удобно, так как ничего не известно о числе рабочих на (п + 1)-й месяц, тогда как в начале процесса задано т0. Рассмотрим теперь случай, когда кроме т0 задано тп+1. На этот раз будем искать целые числа, обращающие в минимум выражение 2 =; S [// (х, — Xj-i) + gj (Xj — ntj) + fn+1 (mn+i — x„^. U-14) 7=1 316
Здесь можно записать г = min \fn+i (mn+i — хп) + min £ [/, (х, —• X/_i) + gj (ms — x,-)]| . Xn I 'Xn.~ 1 j—l J Поскольку теперь задано конечное состояние системы тп+ъ то будем решать задачу в прямом направлении. Определим последовательность функций состояния Л6 (|) == min k+I (g — xk) + gk+i (g — mk+i) + xil...lxk [ k 1 + S fi (xi — */-1) + gi (fn, — x,-)|, k = 1, 2, .... n, где минимум находят по целым и неотрицательным хь xk. Тогда Лх (g) = min {/2 (g — хг) + g2 — т2) + Д. (хх — та) + gy (тг — хг)}. X, Основное рекуррентное соотношение ДП (динамического программи- рования) Л* (5) = min {fk+i (g — Xki + (g — rrik+\) + Ak-i (xft)}. (i.15) xk Функция Afe (g) есть минимальные затраты в течение первых k месяцев при условии, что численность рабочих в (k + 1)-й месяц равна g. На последнем шаге при k = п, положив g = приходим к со- отношению Л„ (/n„+i) = min {Д+1 (mn+i — хп) + A„_j (х„)}. (1.16) хп Определив из (1.16) оптимальное значение хп, по таблице предыду- щего (и — 1)-го шага найдем искомые значения всех остальных пере- менных Xn-i, Xn-г, ...,x*i (для этого необходимо подставить значение g = x*J). Подведем некоторые итоги. Пусть имеется задача последо- вательного принятия решений на п периодов. Если задано начальное состояние системы, то задача решается методом динамического програм- мирования в обратном направлении. Если задано конечное состояние системы — то в прямом направлении. Наконец, если заданы как на- чальное, так и конечное состояние, то можно решать как в прямом, так и в обратном направлении. Результаты решения по обеим схемам совпадут. Пример 6.2. Рассматривается задача об использовании рабочей силы на четыре периода: /= 1, 2, 3, 4; /я* = 2; т2 = 5; т3 = 3; mi=l; т0—2. Пусть функции fj (xf) и gj (xf) имеют следующий вид: [10 (Xj — X,]), если 1 ' f/(0)=0; если х/-_1 > X/ если Xj > т, ' gi (0) = о. если Xj 317
Таблица 6.3 Таблица 6.2 Е ^4 Й (g, х4) 0 0 И 1 10 2 28 1 0 18 1 0 2 0 25 1 7 2 8 3 0 32 I 14 2 ТК 4 0 39 1 21 2 22 5 0 46 1 28 2 29 Е Л4 © xt 0 1 2 3 4 5 10 0 7 15 21 28 1 1 1 1 1 1 Так как зафиксировано начало (х0 = та = 2), то задачу будем решать в обратном на. правлении. Основное рекуррентное соотношение Afc (g) = min {fk (xk — g) + gk (xk — mk) + Afe+1 (xft)}, xk An (g) = min {fn (xn — Q + gn (x„ — mn)}, n = 4. xn Первый шаг A* (g) = min {f4 (xt — g) + g4 (x4 — m4)} = min Q4 (x4, g). %A %4 Для отыскания Aj (g) составляем таблицу значений Й4 (х4, g) (табл. 6.2). Значения min Й (х4, g) = Л4 (g) для всех g выбираем из табл. 6.2 и записываем в табл. 6.3. 1. g = 0; х4 = 0; Й = 0 + 11 (1 —0) = 11; g = 0; х4=1; Й = 10 (1 — 0) + 0 = 10; g = 0; х4 = 2; 2. g= 1; х4 = 0; й = 7 (1 — 0) + 11 (1 = 0) = = 7+11 = 18; g=i; х4 = 1; й = о + о = о. 318
Таблица 6.4 Таблица 6.5 £ — у <э — х2 х3 Й3 0 0 40 1 32 2 38 1 0 50 1 22 2 28 2 0 57 1 29 2 18 3 24 3 0 64 1 36 2 25 3 4 2 32 3 21 4 29 5 2 39 3 28 4 36 5= «2 Л3 х3 1 Xi 0 1 2 3 4 5 32 22 18 14 21 28 1 1 2 3 3 3 1 1 1 1 1 1 Й = 10 (2 — 0) + 8 (2 — 1) = 28. 3. = 2; л:, = 0; Й4 = 7 (2 — 0) + 11 (1 — 0) = 25; 4 = 2; х4 = 1; Й4 = 7 (2 - 1) + 0 = 7; G — 2; х4 = 2; Й4 = 7 • 0 + 8 (2 — 1) = 8. 5. g = 4; • х4 = 0; Q = 7 (4 — 0) 4- 11 (1—0) = 39; £ = 4; х4=1; Й4 = 7 (4 — 1)4-0 = 21;. g = 4; х4 = 2; Й4 = 7 (4— 2)-|-8 (2 — 1) = 22. 4-5 = 3; х4 = 0; й4 = 7 (3 — 0) + 11 (1 — 0) = 32; В = 3; х4=1; й4 = 7(3 — 1)4-0= 14; й = 3; х4 = 2; Й4 = 7(3 — 2) 4-8 (2— 1)= 15. 6. g = 5; х4 = 0; й4 = 7 (5 — 0) 4- П (1 — 0) = 46; 5 = 5; х4=1; й4 = 7 (5 — 1) 4- 0 = 28; g = 5; х4 = 2; й4 = 7 (5 — 2) 4- 8 = 29. 319
Таблица 6.6 Таблица 6.7 х3 х2 Й2 0 0 87 • 1 76 2 71 3 66 4 72 1 2 61 3 56 ' 4 62 2 2 51 4 52 3 2 58 3 36 4 42 4 2 65 3 43 4 32 5 4 39 5 28 £= Х1 Л2 х3 х4 0 66. 3 3 1 1 56 3 3 1 2 46 3 5 1 3 36 3 3 1 4 32 4 3 1 5 28 3 1 Таблица 6.8 Лг (Хо) = 46 х*! = 2 Второйшаг. Выполняется аналогично первому. Вспомогательные результаты представлены в табл. 6.4, итоговые — в табл. 6.5. Л3 (g) = min [f3 (xs — g) 4- gs (x3 — m3) 4- A4 (x3)}. x3 Третий шаг Л2 (g) = min {/2 (x2 — g) 4- g:? (Xi — m2) + лз (хг)}- X2 Четвертый шаг At (х0) = min {ft (xt — x0) 4- gt (x3 — mJ 4- Л2 (xt)}. Xt Из табл. 6.7 третьего шага по значению Xj = g == 2 находим оптимальные зна- чения остальных переменных xj = 3; = 3; х% = 1. Динамическое программирование при непрерывных переменных В отличие от других вычислительных методов динамическое про- граммирование больше всего подходит для задач, где переменные —- дискретны. В то же время оно может быть приспособлено к задачам 320
g непрерывными переменными. Для этого непрерывные переменные квантуют, причем шаг дискретизации выбирают из конкретного со- держания задачи. Рассмотрим, как решается задача о распределении ресурсов при непрерывных переменных. Определим последовательность, функ- ции состояния k Л* (?) « max s fj (х/) (1.16) при условии k cijX] < £, k = 1, 2, ..., n. t=i Основное рекуррентное соотноше- ние имеет вид: = max~ \fk(xk) + ^k-id — a^Y, k =* 2, 3, ..., п. (1.17) Главное отличие, по сравнению со случаем дискретных переменных х1} ..., хп, возникает в ходе вычисления максимума по xk и способе построения таблицы значений Л/; (?). Рассмотрим задачу определения Afe (?) при фиксированном 1. Обозначим ^fe (xk> I) — fk (xk) + Afe-l (I — &kxk)- (1.18) Тогда Aft(g)= max ^k(xk-, ?). Если Afe_i (?) известна, то значения функции (xk, ?) определены для всех xk. Предположим, что график Qk (xk\ ?) такой, как на рис. 6.6. Для определения Л7; (?) следует отыскать все относительные максимумы и выбрать абсолютный (глобальный). Для этого функцию Qfe'(xft; ?) табулируют. При табулировании целесообразно сначала применять сетку с более грубым шагом, а в окрестности «подозрительных» точек перейти на более мелкий шаг. Функции Aft (?) приходится табулировать при всех допустимых значениях ?, так как заранее неизвестно, какое из них может пона- добиться при вычислении Afe+, (?). Задача вычисления Л.к (?) значительно упрощается при условии, что все Д (xz) — выпуклы или вогнуты. Можно показать, что из вы- пуклости (вогнутости) всех Д (xz); i — 1, 2, ..., п следует выпуклость (вогнутость) (?). Случай 1. Все функции Д (xz) — выпуклы. Поскольку Afe_i (?) — выпуклая функция по х, то и A*_i (? — akxk) выпуклая относительно xk и, следовательно, Qft (хк; ?) = fk (xft) + Afc_, (? — akxk) также выпукла no xk. Нас интересует max (xk- ?) при фиксированном ?. Как известно, максимум выпуклой функции на замкнутом ограничен- 21 8-3164 321
ном множестве достигается в одной из крайних точек. В данном t случае такими точками являются xk = 0 и xk = —. Итак, в случае выпуклости всех Д- (xj, i = 1, п для нахождения max Qk (xk; 1) достаточно проверить только крайние точки xk = ak g =s О И Хь = — . Rak Случай 2. Все функции /г (х(-) — вогнуты. В таком, случае Qk (xk; g) при каждом фиксированном % есть во- гнутая функция от xk и, следовательно, всякий ее относительный мак- симум является также и глобальным. Отыскать относительный максимум Q/; (xk- £) можно одним из известных методов, например градиентным. § 2. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ДЛЯ ЗАДАЧ С НЕСКОЛЬКИМИ ОГРАНИЧЕНИЯМИ И ПЕРЕМЕННЫМИ Рассмотрим задачу о распределении ресурсов, но уже при двух ограничениях [5]: п п aijXj blt cc^jXj b%. /=1 i=i Поскольку в задаче имеется два вида ресурсов (Z4 и Ь2), то необходимо ввести два параметра состояний и ^2. Обозначим через У = тах У h (хг) (2.1) ч..xk 1=1 при условиях /г k S а^х, xf>0 (I = 1, 2, ..., k). (2.2) (=1 7=1 Запишем основное рекуррентное соотношение Ba) = max {fk {xk 4- Л*_| (g — a\kxk\ g2 — a2kx^)}, °^xk^6k где Одновременно c Ak (gn g2) определим и оптимальное решение xk (gt; На zi-ом шаге определяем А„ (by Ь2) и одновременно х° (by, bz). Оптимальные значения остальных переменных х“_2, ..., х; можно получить из таблиц предыдущих шагов при помощи соот- ношений: Xn-i = xn-i <bi — атх°п; Ь2 — а2пх°п); ^п—я = %п—2 я1л—1^_р Ь% а2пхоп а2п_ и т. д. 322
Как видим, функции Aft (^; £2) и xk g2) являются функциями двух переменных. Если каждая из переменных g2 может принимать 102 значений, то функцию Л* (^; g2) приходится табулировать в 104 точках. В случае трех параметров £1( g2 и g3 при тех же предположениях требуется вычислять 108 значений функции Aft (^; Е2; g3). Без специаль- ных преобразований задачу, содержащую более трех параметров со- стояния, невозможно решить методом динамического программиро- вания даже на сверхбыстродействующих ЭЦВМ из-за огромного объе- ма вычислений. Итак, наиболее серьезным препятствием для практического при- менения динамического программирования оказывается число пара- метров задачи. Это в свое время заставило Р. Веллмана заявить о так называемом «.проклятии многомерности-» [4, 5]. Задача с двумя переменными управления Рассмотрим предыдущую задачу в несколько иной постановке, когда имеется две переменные управления х£, yL и два типа ресурсов, а доход f i (х£; г/() есть функция количеств обоих типов ресурсов, рас- пределяемых на данном шаге. Итак, требуется найти \Хх>ог== SAte уд х^О.у^О £=1 при условиях £ auxt < Ьр S a2iyt < 62. <=i (=1 . Чтобы описать состояние системы, имеющей k шагов, на этот раз требуется два параметра gi и g2. Определим функцию состояния k Ak (?i! = тах £ ft (-41 у() У к—>yk при условиях п k <21/.V/ U2iyi <=1 (=1 Основное рекуррентное соотношение имеет вид ^-k Сэр ?2) ШаХ [Д (Х^, У)д -f- —0 (?1 &ikXk, ^2кУк)]^ (2.3) xk^k k = 2, 3, ..., п, где максимум по xk и yk находят перебором всех возможных ком- бинаций. Например, если xk и yk могут принимать по 100 значений, то для нахождения (gt; j2) при фиксированных и 12 следует перебрать 21* 323
101 значений функции ®Чг (xk> Уь> ?1> £2) = \-fk(xk> Ук) + Aft—1 (Ij, ga)] = fk (xk, yk) + + A*_[ (gj — CtlkXk, — а2кУкУ Применение метода множителей Лагранжа для понижения размерности задачи Метод, широко применяемый при решении задач нелинейного про- граммирования, может быть применен для понижения размерности задач динамического программирования [45]. Рассмотрим такую задачу. Найти max z= (X;) (2-4) при условиях S auXi = blt (2.5) £=1 S a^Xt = 62. (2.6) «=1 Заметим, что пока мы рассматриваем ограничения-равенства. От задачи (2.4) перейдем к задаче с одним ограничением. Найти . max ?! = max £ ft (х()~К £ a2lXi (2.7) Л) м i=i при условии У alfx{ = Ьг; Xt > 0. (2.8) 1=1 Задача (2.7) имеет только один параметр состояния и потому несравнен- но проще исходной. Параметр ' А — множитель Лагранжа; он играет роль цены на второй ресурс (&2). Априори величина А неизвестна, и потому задачу (2.7) приходится решать при нескольких произвольных значениях А. Оптимальное решение задачи (2.7) будет зависеть от А: *<опт = х°W (* = 1> •••>«)• Если найденное решение х° (А) удовлетворяет ограничению (2.6), которое было отброшено, то оно является искомым решением задачи (2.4). В противном случае значение А нужно скорректировать. В част- п ности, если окажется, что У а% x°t (А) > Ь2, то следует увеличить А i=i (так как по второму ресурсу имеется перерасход, то цену на него не- обходимо увеличить). В противном случае значение А требуется умень- шить. 324
Для быстрого определения искомого X применяют метод последо- вательных приближений, который основан на интерполяционной фор- муле (2.9). Если уже опробованы два значения А,1( и для них най- дены оптимальные решения х* (A,j), х2 (%2), то на следующем шаге оценивают из формулы + (2-9) где ftjj == S a2ix* (А,2); Е а21Х* (Xj). (2.10) t=i z=i Покажем, что если оптимальное решение задачи (2.7) х* удовлетво- ряет условию (2.6), то х * — оптимально и для задачи (2.4). Предположим, что это неверно, и обозначим через х° решение задачи (2.4). Тогда п п г (х°) = g h (ty > S Л (хр = z (х*). Но, так как х * — оптимальное решение для (2.7), то z (х*) z (х*) — X £ «2/х* > z (х°) — X S я2,х°г /=1 1 /=1 1 1 А поскольку п п а2/х/ “ X й2//’ то должно быть п п i=i 1 1=1 ' Основное рекуррентное соотношение для задачи (2.7) имеет вид: Aft (© = max (xfe) — + Aft_i (В — a2kxk)]. (2.11) xk п Можно показать, что при возрастании X от 0 до оо величина EjH2/^/(^) убывает монотонно [5, 45]. Это важное свойство значительно облег- чает поиск X при решении конкретных задач. Теперь рассмотрим более общий случай ограничений. Найти {*/} 5>0 /==1 при условиях \ Л aijXj «С Ci, i == 1, 2, ..., М\ x/^Q (/==1,2,..., N). i=i 325
Вводя k < М множителей Лагранжа, можно так сформулировать но- вую задачу максимизации функции max I £ ffXj - £ £ а{/х\ , (2.12) {xi) \/=i <=1 /=1 / при остальных М — k ограничениях У. at;Xj < ct, t = fe+l, ,М. (2.13) /=1 Таким образом, задача сводится к определению функций от (И — k переменных вместе с поиском по fe-мерному пространству переменных А.г, удовлетворяющих первым k ограничениям. Исходная многомерная задача заменяется последовательностью задач значительно меньшей размерности, что позволяет существенно снизить требования к объему памяти ЦВМ. Решение транспортной задачи методом динамического программирования Рассмотрим транспортную задачу с двумя пунктами производства Ai, Аг и п пунктами потребления Bi, ..., Вп. Как обычно, Ху—количество продукта, перевозимого из Ai в В/, Xz, — количество продукта, перевозимого из А2 в В,, j = 1, ..., п. Обозначим через gCi (х^) стоимость перевозки по маршруту A ft/. Тогда транспортная задача формулируется так. Найти min У (2.14) при условиях = (г =1,2), (2.15) 2 = (/= 1, ..., П). (2.16) <==1 Очевидно, если g^ (xij) = а^х^, то задача легко решается методом линейного программирования. Однако здесь мы рассмотрим случай, когда g( (x,;Z) — нелинейные функции, и потому применим метод ди- намического программирования. Покажем, что, несмотря на большое число ограничений, функ- цию состояния процесса можно описать одним параметром. Так как X2j = Ь/ — xij, то ясно, что, определив ху, мы однозначно найдем и x2j. Рассмотрим случай, когда количество продуктов в пунктах At и 11 А2 составляет и |2 единиц. Поскольку £i + £2 = то iz = /=| п = Yibj — £1, и потому — есть единственный параметр состояния. /=1 326
Введем последовательность функций (gi) = min V gi, (хр) + g2i (x2{), (2.17) {*</} ,=i где минимум берут по всем {хц}, удовлетворяющим условиям: k k k Хц = I*; J] ~ S 51» ^2/ / ” 1, 2, ,.., k. /-j a=i /=i Основное рекуррентное соотношение тогда преобразуется: A* (li) = min [gift (x^) + gik (bk — Xift) + Afc-i — Xife)], (2.18) x\k где X\k — удовлетворяет условию 0< X\k < min {gp, bk}. При проведении вычислений функция Afe (g4) должна табулировать- п ся для всех gi = 0, 1, ..., Е^/. На последнем шаге (при k = п) на- » /=I ходим х*\п и х*2п = Ь„ — х*1п- Остальные хц находим последовательно из соотношений / I—1 \ Х1,п—1 — х1,п— 4а1 ^J xt,n—uj> 1=1, . • • , п 1. \ и—0 / Рассмотрим теперь ту же задачу, но с тремя пунктами производ- ства Ai, А2, А3 и п пунктами потребления. Функция состояния на этот раз определяется так: 3 п Aft(glr = min Е Е gij (хц), k=\, 2, ..., п, (2-19) 1=1 /=i где минимум берут по всем неотрицательным Ху, удовлетворяющим условиям k k kk Е ХУ = gi; Е Х2/ = g2; S х3/ = S bj - - g2, (2.20) /=1 /=1 (=1 /=1 X\j + Х2/ + Х3; = bj (j =1, 2, . . . , k). (2.21) Рекуррентное соотношение записывается так: Aft (g1( g2) = min {gife (xife) + g2fe (x2k) + gik (bk — xik — x2fe) + xlkx2k Ф Ai.—1 (gi Xjh, g2 X2fe)}, (2.22) минимум в (2.22) берут по х^ и х^, удовлетворяющим условиям 0 < xik < min (g1; bk)-, 0 < x2k < min (g2, bk)-, Xik + X2k b^, k X3k==bk — x2k~ Xik^ ^bj — h — ^ ИЛИ Xlk + X2k> 1=1 k—1 £1 + Sa — E i=-l 327
п Область, в которой отыскивается мак- симум, показана на рис. 6.7. Функции (li, 12) должны табулиро- ваться для всех целых li н 12> таких, что k li +12 < S bj. /=1 Для сокращения размерности задачи применим метод множителей Лагранжа. Допустим временно, что нет ограничений на количество продукта, отправляемого из пункта Л 2, а вместо этого каждой отправ- ляемой отсюда единице продукции припи- сана цена к. Решаем задачу вида п min z = min £ [gt/ (xt/) + g2/ (x2/) + gas (x3j)l + A S x2h xn = ai> y«a=] (2.23) при условиях Xij + x2j + Xaj *= bj (/ = 1, 2, ..., ft), xz/>0 для различных значений X, пока не будет найдено такое, что оптималь- п ное решение удовлетворяет ^х2/ = аг. Тогда автоматически удовле- П творится и третье ограничение $}хз/ = а3. i=l Для решения задачи вводим функцию состояния й \ (1) =® min У [ёГ1/ (хц) + §2/ (х2/) + Хх2/ + gai (*з/)]» (2.24) {*//} /=1 где k £хц»1; х^ + x2j + x3/ =* bh j = 1, 2, n. Основное рекуррентное соотношение динамического программиро- вания можно записать: \ (1) = min [gift (Xi*) + g2ft (x2ft) + Ax2ft + g3k (bk — xik — xlk‘x2k — X2ft) + Aft_! (g —Xift)], fe==2, 3, n, (2.25) где Xu и x2ft удовлетворяют неравенствам Xu > 0; x2* > 0; Xi* + + x2ft bk. Таким образом, Т-задача с тремя пунктами производства и п- пунктами потребления может быть сведена к последовательности п- шаговых задач с единственным параметром состояния. 328
Метод последовательных приб лижений Одним из способов уменьшения трудностей, связанных с размер- ностью задачи, является метод последовательных приближений. Схема метода состоит в следующем. Для заданного функционального уравне- ния угадывается начальное приближенное решение. Если предполагаемое решение не является истинным, то делается поправка, которая дает лучшее приближение. Пусть необходимо ре- шить уравнение Т (и) — 0 и пусть уравнение S (и) легче решить, чем исходное. Тогда исходное уравнение записывается в виде S («) = S (и) — Т (и). Пусть за первое приближение и0 взято решение уравнения S (и) = = 0. Тогда следующее приближение и1 определяется так: S (ut) = S (w0) — Т (и0), а (п + 1)-приближение находят из соотношения S (и„+1) = S (u„) — Т (ип). Если S (и) выбрано правильно, а Т (м) обладает соответствующими свойствами, то последовательность {ип} будет сходиться к решению урав- нения Т (и) = 0. Функциональное уравнение динамического программирования записывается так: A (g) — max [f (х, g) + A (Г {х, §})], (2.26> X где g — параметр состояния, х — решение (стратегия). Если найти точное аналитическое решение х (g) невозможно, за- даются начальной функцией Ао (g), а затем определяют последователь- ность функций Ai (g), Л2 (g), ..., А„ (g) с помощью рекуррентного со- отношения: Ал+1 (g) = max [/ (х, g) ф- A„ {Т (х, g)}](„=i(2,...). (2.27) Заметим, что в (2.27) входят фактически две неизвестные функции A (g) и х (g). Рассмотрим так называемый метод приближений в про- странстве стратегий [5]. Он начинается с произвольного выбора начальной политики (решения) х0. Тогда соответствующая функция состояния Ao (g) определяется как решение уравнения Ло (g) = f (х0; g) + Ло [Т (х0; g)J, где хо = -*о (?)• (2.28) Для получения следующего приближения определим х4 — х4 (g) как функцию, максимизирующую выражение max (/ (g; хх) + Ло [Т (g; xt)]}. (2.29) Xj Затем определим Л4 (g) g помощью соотношения (g) = f (g; + Ло (g, Х1)]. (2.30) 329-
Продолжая таким образом, получаем две последовательности {хп (£)[ и (Л„ (£)}. Во многих случаях можно доказать монотонную сходимость этих функций к искомым: Ап (В) -> Л (В); хп (В) -> х (В). В качестве примера применения этого метода рассмотрим задачу с двумя переменными управления. Требуется найти N max / (х, //) = S (xt, у{) (2-31) t=i при условиях W N ^Хс = х; Xi > О, X yt = у, у > 0. (2.32) Z=1 Z=1 Пусть Хо = {х°} — начальное приближение в пространстве решений. N Определяем максимум функции JJ/z (х°; z/z) по всем yt, удовлетво- i=i ряющим (2.32). Вводим последовательность функций состояния Aj (В); Л2 (В), ••., Лп (Q. Основное рекуррентное соотношение тогда преоб- разуется: Ak (В) = max [fk (х£, yk) + Afe—i (В — yk)], £ (2.33) Л1(В) = /1(х?> В); k = 2, 3, Этот процесс для каждого значения В дает множество значений {у°} = = Yo. Используя эти значения z/°, переходим к задаче максимизации k функции Y>fi (ХА У°д- Решается она с помощью рекуррентного соотно- 1=1 шения, аналогичного (2.33): Ak (В') = шах [Д (хь z/°) + Л*_1 (В' — Xfe)]. (2.34) <4x^6- Многократное повторение этого процесса дает две последовательности [х"}; {уп}, п=\, 2, ..., которые при некоторых общих условиях сходятся к оптимальным- х*, у*. Пример 6.3. Вернемся теперь к транспортной задаче и решим ее методом после- довательных приближений. Число пунктов производства или складов равно трем (/I,, Л2, Л3), а пунктов потребления — десяти. Схема вычислений такова. Продукты из пунктов А3 произвольно распределяются по всем потребителям при п единственном условии, что x3f. = а3 и х3/. = &/. В данном примере распределяли /=1 его равномерно. Затем вычитаем из величин спроса всех потребителей полученные ими количества и для остатков решаем задачу с двумя складами А1,А2. Полученное решение {х1;.} используем на второй итерации, где решается Г-задача для другой пары складов Л3 и Л3. На следующей итерации фиксируем решение {х2-} предыдущего шага и решаем задачу для пары Аг, А3. Процесс продолжается до тех пор, пока не получится устой- чивое распределение для всех трех вариантов пар. Условия задачи приведены в табл. 6.9, а результаты после каждой итерации — в табл. 6.10. 330
Таблица 6.9 | Потребители [ Л2 А, Спрос организаци- онные расхо- ды X X2 организаци- онные расхо- ды X х2 организаци- онные расхо- ды X X2 1 2 3 4 5 6 7 8 9 10 +1,0 + 10,0 +8,0 +1,0 +2,0 +3,0 +1,5 +2,5 +5,0 +3,0 +6,0 +6,0 +6,0 +0,01 —0,01 —0,05 +2,0 +5,0 +3,1 +4,1 +2,1 + 1,1 +2,6 +3,0 + 1,0 +2,0 +2,0 +5,0 +0,10 +0,20 +0,01 +5,0 +6,0 +7,0 +3,0 +9,0 + 1,0 +1,0 +2,0 +4,0 +3,0 +5,0 +6,0 25 40 60 30 20 30 35 30 25 40 335 Функции стоимости перевозок: 8а W = ацх + 'V' 4- сц W, где cZ/. (х) — фиксированные издержки, так называемые организационные расходы. Коэффициенты приведены в столбце х (табл. 6.9), а — в столбце х2; хг — запас на складе 1 = 100, х2 — запас на складе 2 = 80, х3 — запас на складе 3 = 155. Результаты, полученные методом последовательных приближений, приведены в табл. 6.10. Результаты трех последних итераций полностью совпадают. Это свидетельствует о сходимости процесса. Для сравнения в табл. 6.10 приведено точное решение, най- денное другим методом. Итерация 1 Итера- ция 2 Итера- ция 3 Итера- ция 4 1 10 и 15 10 15 0 10 15 0 25 0 0 2 25 0 15 25 0 15 40 0 0 40 0 0 3 5 40 15 5 55 0 5 55 0 0 60 0 4 15 0 15 15 0 15 0 0 30 0 0 30 5 5 0 15 5 015 0 0 20 0 0 20 6 0 15 15 0 0 30 0 0 30 0 0 30 7 20 0 15 20 0 15 35 0 0 35 0 0 8 0 15 15 0 0 30 0 0 30 0 0 30 9 0 10 15 0 10 15 0 10 15 0 10 15 10 20 0 20 20 0 20 10 0 30 0 10 30 Затра- Затра- Затра- Затра- ты — ты = ты = ты — = 1126.25 = 966,00 = 921,25 = 874,00 Таблица 6.10 Итерация 5 Итера- ция 6 Итера- ция 7 Точное решение 1 25 0 0 25 0 0 25 0 0 25 0 0 2 40 0 0 40 0 0 40 0 0 40 0 0 3 0 60 0 0 60 0 0 60 0 5 55 0 4 0 0 30 0 0 30 0 0 30 0 0 30 5 0 0 20 0 0 20 0 0 20 0 0 20 6 0 0 30 0 0 30 0 0 30 0 0 30 7 35 0 0 35 0 0 35 0 0 30 0 5 8 0 0 30 0 0 30 0 0 30 0 0 30 9 0 20 5 0 20 5 0 20 5 0 25 0 10 0 0 40 0 0 40 0 0 40 0 0 40 Затра- Затра- Затра- Затра-. ты = ты = ты = ты = = 853,00 = 853.00 = 853,00 = 847,75 331
§ 3. ЗАДАЧИ УПРАВЛЕНИЯ ЗАПАСАМИ Общие сведения Задачи управления запасами составляют один из наиболее много- численных классов экономических задач исследования операций, ре- шение которых имеет важное народнохозяйственное значение. Особен- но повышается значение этих задач в период массового внедрения АСУ. Правильное и своевременное определение оптимальной стратегии уп- равления запасами, а также нормативного уровня запасов позволяет вы- свободить значительные оборотные средства, замороженные в виде за- пасов, что в конечном счете повышает эффективность используемых ресурсов. Приведем основные характеристики моделей задач управления запасами [39]. Элементами (системы) задачи управления запасами являются: 1) система снабжения; 2) спрос на предметы снабжения; 3) возмож- ность пополнения запасов; 4) функции затрат; 5) ограничения; 6) при- нятая стратегия управления запасами. Рассмотрим подробнее каждый из этих элементов. Системы снабжения бывают: децентрализованные однокаскадные; цен- трализованные многокаскадные. Спрос на предметы снабжения бывает: стационарный или не- стационарный; детерминированный или случайный. Различают такие способы пополнения запасов: мгновенная поставка; задержка поставок на фиксированный интер- вал времени; задержка поставок на случайный интервал времени. Функции затрат составляют в совокупности критерий эффективности принятой стратегии управления запасами и учитывают расходы на хранение, стоимость поставок, затраты, связанные с за- казом каждой новой партии, затраты на штрафы. Приведем возможные варианты составляющих функции затрат. Расходы на хранение бывают: пропорциональные среднему уровню положительного запаса за период времени сущест- вования положительного запаса; пропорциональные остатку к концу периода. Стоимость поставки бывает: пропорциональной объему поставки; постоянной; пропорциональной числу номенклатур; пропорциональной необходимому приросту интенсивности производ- ства. Штрафы бывают таких видов: пропорциональные средней по- ложительной недостаче за период; пропорциональные положительной недостаче к концу периода; постоянные; нелинейные функции от сред- ней недостачи и продолжительности ее существования. Ограничения в задаче управления запасами бывают: на максималь- ный объем запасов; максимальный вес; максимальную стоимость; среднюю стоимость; число поставок в заданом интервале времени; объем поставки; вероятность недостачи. 832
Простейшие модели управления запасами Детерминированный стационарный спрос. Рассмотрим простейшую модель управления запасами с постоянной интенсивностью спроса р и поставок X. График изменения запасов показан на рис. 6.8, Полный цикл работы системы имеет продолжительность Т. Обоз- начим через Y предельный запас на складе. Считая расходы на хра- нение (штрафы) пропорциональными среднему запасу (дефициту) и уУ)11 Рис. 6.9. времени их существования соответственно, получим для функции за- трат за цикл следующее выражение: ц-К т Lr = g4-s j у (/) dt — р У у (3-1) о у+1г где g — фиксированные расходы, связанные с запуском или заказом партии; s — удельные расходы на хранение единицы продукта в еди- ницу времени; р — удельный штраф за дефицит единицы запаса в те- чение единицы времени. Очевидно, что (К — ц) t при 0 < t < у (0 = Y — ft (/ — (х) при tA < t < tt + t2 + t3, (3-2) — Рд + (L — ц) (t — tt —12 — /3) при + t2 + t3 < t < T. Максимальный дефицит Ya выражается через Y как (3.3> Y Y Подставив ==* -a---г- и /2 == -— , получим Л |Л Ц Уд==^[(Х--И)Т-У]. (3.4) Перепишем функцию затрат с учетом линейности изменения уров- ня запаса: Lt = g + -о- + - о i йг ft — И) Т- (3.5) 6 1 2ц (к —ц) 1 2ц (X — ц) I X к r/ J v ' 333
откуда затраты в единицу времени j ___ __ 1 rt । (Р 4~s) । pp н\ т гу. ^ср- т --у- g + ~2И(X_и) +-2Г(Л — P)T~pY, ^ср дУ -Sp±s)±y _р = о- 7V(X— и) ' v’ (3.6) (3.7) 9^СР РЦ /л ..\ 1 . (р + s) У2\ п /ч W----Г-|^ + “2^-ц) ] = 0- (и,8) Решение системы (3.7) и (3.8) приводит к выражениям для опти- мальных /0 и 7°: - "и / ^И1—Иг) уо = 1/ —г—Л2-; (3-9) г s(1 + v) Т° = l/^" -1 + р • (зло) У При этом достигается минимум затрат в единицу времени --------LL. (3.11) +V Из полученных соотношений при различных допущениях полу- чаются следующие известные формулы теории запасов: а) недостачи (дефицит) полностью исключаются (рис. 6.9). Тогда, положив р -> оо и подставив — = 0 в (3.9) — (3.11), получим = ]/” 2pgs(l-tj; (3.12) б) высокая интенсивность восполнения запаса, случай мгновенной поставки (рис. 6.10). Положив А. -> оо, = 0, в (3.9) — (3.10) получим т2= V2d‘...+J); л°2=-./_а^_; из I/ 1 _±_ р (3.13) 334
Рис.6.11. в) дефицит не допускается, заказы выполняются мгновенно (рис. 6.11). ПодставивX->• оо, роо, получим Fo = j/2E£. = L0=1/2^. (3.14) Равенства (3.14) называются формулами. Уилсона, а величина У0 — экономическим размером партии [39,461. Детерминированная модель при переменных издержках производства (переменная цена товара) В приведенной модели предполагалось, что, кроме постоянных затрат на подготовку производства g, производственные издержки не учитываются. В более общем случае можно предположить, что из- держки производства или приобретения запасов являются неубываю- щей функцией времени, т. е. вводим функцию О, g + сгу, Я + с2у, Ш = если у = 0; 0 < У < у*; У>У*- (3.15) Иногда вводятся скидки при закупках товаров в определенных количествах, т. е. стоимость 1 единицы продукции зависит от приоб- ретенного объема товара. Так, предположим, что при закупке партии до 1000 шт. стоимость = 1 руб./шт.; а при закупке партии свыше 1000 шт. стоимость с2 = 95 коп./шт. При таких условиях иногда выгоднее превысить оптимальный раз- мер партии, чтобы воспользоваться преимуществами скидки. Итак, пусть р — интенсивность спроса; s — затраты за хранение единицы продукции; g — постоянные расходы на заказ; р — штраф за дефицит единицы запаса в 1 единицу времени. Примем функцию издержек производства в виде /(К) — 0, g + сху, Я + сау, если у = 0; если 0 < у < у*; если у >• у*. (3.16) Общие издержки за период L(y) = s~yT + f (у), 335
а издержки в единицу времени Lt (у) = sy+~f(y) = Здесь использовано соотношение Т « и ~ (рис. 6.11). Следовательно, функция LT (у) терпит разрыв в точке у =s у*, и, оче- видно, минимум LT (у) достигается либо в точке, где ==• О, либо в точке разрыва. Определим эти точки: SLT 1 gP _ А ду "2s г/2 отсюда Рассмотрим случаи, когда у° > у* и у0 < у*. Если уа у*, то оптимальное значение Lt достигается при у = у° и тогда = Cjp + /2sgp. (3.18) С другой стороны, при заказе товара в количестве у* единиц по более низкой цене затраты в соответствии о (3.16) составят । да , 1 * сар + -yk + -у~ 8У (3.19) У * Сравнивая (3.18) с (3.19), видим, что выгодно заказывать товар пар- тией у* тогда и только тогда, когда L (у°) > L (у*) (рис. 6.12), т. е. если Сар + -#• + -у- 2У* < CiP + (3.20) У z или —с2 > 4- +4- &у*—у • М- у у & f 336
Задача управления многономенклатурными запасами при ограничении на емкость склада Рассмотрим задачу создания многономенклатурных запасов при ограничениях на суммарную емкость складов. Пусть для i-ro вида продукта (запаса) затраты на заказ составляют g(, на хранение единицы продукта — s(, спрос детерминированный с интенсивностью р( (i = 1, п). Предположим, что поставки заказов осуществляются мгновенно и дефицит не допускается, причем заказы по разным продуктам вы- полняются независимо. Тогда общие затраты по всем номенклатурам в единицу времени (при замене = —) определяются соотношением ^ = 2 4^+44 (3-2,) где у{ — размер заказа по i-й номенклатуре. Если на запасы наложено ограничение и средний суммарный уро- вень запасов не должен превышать емкости складов С, то необходимо искать min L при ограничении ^P=4j4<c- (3-22) Сначала определим оптимальный размер заказа по каждой номен- клатуре по формуле Уилсона: Y°i = , i = 1, ..., п. (3.23) Если J] Y° < С, то ограничение (3.22) выполняется и (3.23) определяет искомые значения {У®}. В противном случае, необходимо 1 VI искать минимум (3.21) при ограничении -у- >, yt = С. Для этого при- меним метод множителей Лагранжа. Составим функцию п / \ / п \ = 2 4s^+44 +ч2^-2С • <з-24> (=1 \ / V=j / Оптимальные значения ..., у*п определяются решением следую- щей системы уравнений: (3.25) 2С — Hi = О, i=\ отсюда //* = V , i = 1, • • •, П, (3.26) r + 2A,* ’ ’ причем К* является решением системы (3.25). 22 8—3164 33?
Модель управления запасами при вероятностном спросе и мгновенных поставках Рассмотрим некоторые задачи управления запасами при вероятност- ном спросе. Простейшим случаем управления запасами при вероятностном спросе является однократное принятие решения на пополнение за- пасов. I вариант. Рассмотрим следующую модель управления запа- сами при вероятностном спросе и мгновенных поставках. Пусть z — запас материальных средств к началу операции; у — запас после пополнения (у > z); х > О — случайный спрос за время операции Т; f (х) — плотность распределения спроса; с (у — z) — расходы на пополнение запасов. Предполагаем, что заказ на пополнение выполняется мгновенно. Если к концу операции на складе остается часть невостребованного запаса (у — х) > 0, то система снабжения несет избыточный расход sj- (у — х) по хранению. При х >• у s? (у — х) = 0. При неполном удовлетворении спроса х > у система платит штраф рт (х — у). Тогда математическое ожидание суммарных расходов си- стемы 9 OQ Lt (у, z) = J [sr (у — х) f (х) dx + рт § (х — у) f (х) dx + с (у — z)]. (3.27) ° у Найдем, при каких значениях у >• z величина Lt (у, г) будет ми- нимальной. Для этого определим dL У ¥ z) = J [Sr (у — х) f (х) dx — J р'т(х — у) f (х) dxс' (у — z) 0 v ' (3.28) dLT (здесь учтено, что sT (0) = рт (0) == 0) и положим -.== 0. В общем случае функция Lt (у, г) при фиксированных z может иметь несколько минимумов. Обозначим через уг абсциссу абсолютного минимума Lt (у, г), а через у3, у5, у7 — следующие за ним относительные минимумы, при- чем L (yj < L (у3) < ... < L (У2П-1) (рис. 6.13). Пусть далее у2, у& Ун — точки, удовлетворяющие следующим усло- виям: ух < у2 < уз < у4 LT (у2) = LT (у3), LT (у4) = LT (ys) и т. д. 338
В этом случае оптимальная стратегия управления. будет выгля- деть так: а) при г < ух заказывать (у1 — z); б) при уг < г < у2 ничего не заказывать; в) при у2 < z < у3 заказывать (у3 — г) и т. д. Приведем достаточные условия, при которых оптимальная стра- тегия имеет более простую форму, отвечающую одному минимуму LT (у, г) [35]: a) Lt (0, г) — не является относительным минимумом, и L't (0, z) = — J р'т (х) / (х) dx 4- с' (0) < 0; dLT б) уравнение (у> г) = 0 имеет не более одного вещественного (3.29) корня; в) LT (у, z)->oo; у->оо. Обозначим через у* решение уравнения dLT = 0 (рис. 6.14). Тогда оптимальная стратегия единственная и будет следующей: 1) при z < у* заказывать у* — z\ 2) при z > у* ничего не заказывать. Поясним физический смысл условий: а) — экономическая целесо- образность создания положительного запаса; в) — неэффективность чрезмерно больших запасов. Условие б) может быть заменено менее жестким условием, если ограничиться некоторым классом распределений. Так, если правый крайний относительный минимум в точке у* является и абсолютным, то оптимальная стратегия будет иметь вид: а) ничего не заказывать при г >• у *; б) при г < у * заказывать у * — г. II вариант. Допустим, что стоимость пополнения запасов равна g + с (у — г) при у > г и 0 при у — z. Как видим, в этом ва- рианте в сравнении с вариантом I добавился член g (плата за заказ). В таком случае заказ целесообразно производить лишь при условии LT (z, z) — LT (у, z) > g. (3.30) Если уравнение (3.30) имеет одно единственное решение у, то опти- мальная стратегия, как видно из рис. 6.15, имеет вид [39]: а) при г < у заказывать у* — z\ б) при г > у ничего не заказывать. В литературе эта стратегия называется .стратегией двух уровней или (S, $)-стратегией [39, 45]. Определение оптимальных уровней запасов у* при вероятностном спросе и мгновенных поставках. Рассмотрим частный случай модели, когда функции рт (и)’ s (ц) и с (м) — линейны. В этом случае величину у * можно определять аналитически. Итак, рассмотрим функцию зат- рат за период Lt (у, г) при условиях, что с (и), st (и) и рт (и) линейны. 339
Тогда /7 00 LT (у, z) = sT § (У — x)f (x) dx + pT § (x — y) f (x) dx + c (y — z), 0 V = St $ f (x) dx — PT $ f (x)dx + c = sTF (y) — pT [1 — F (z/)] + * о у Откуда для отыскания оптимального у* получаем рт — с F (У) = VTT • (3.32) Р'р ~г * f В частности, для спроса распределенного по закону Рэлея, имеем Отсюда гш^. у С S? Для показательного распределения спроса f (х) = -~г е получим _ v F (у*) = 1 — е = Рт~^с Рт 4" st* откуда у* = рТ In Рт 4" st С -|- Sy 340
Рассмотрим теперь случай дискретного распределения спроса LT(y) — sT УЛу — х) р (х) + рт S (х — У)р(х) + с(у — г). (3.33) х=0 х—у Соответственно Ьг z/4- 1) = st S (У~ х+ 1)р(х) + рт S (х — у— 1) X я=0 х=(/~р X р(х) + С (у — Z + 1). (3.34) Вычислим приращение У 00 &LT (у) = LT (у + V) — LT (у) = St £ р (х) — рт Е ’ (х) + с = х=0 х=у-Н = (р + St) S Р (х) — Рт + С. (3.35) х=0 Докажем существование и единственность оптимального решения у *, для чего исследуем знак приращения ДЛу (у). При у = О \LT (у) = ~рт + с < О, при у -> оо \LT (у) = с + ST > 0. (3.36) Итак, монотонность функции &Lr (у) * обеспечивает однократность смены знака приращения. Очевидно, выбор у * должен производиться из условий ALT (у* — 1) < 0 и АЛу (у*) 0, (3.37) которые можно свести к системен <з-> Определим теперь расходы за период так же, как и в детермини- рованном случае (т. е. с учетом положительности запаса и наличия дефицита) (рис. 6.16): а) при х < у* средний положительный запас равен у+ = = [У* + (У* — х)] = у* —y , а время существования запаса Tt = Т; б) при х >• у* получим средний положительный запас у+ = у*, средний дефицит t/_ —-i-(x — у*)\ время существования запаса Т+= -У—Т, а время дефицита Т_ = х~у Т. X х 341
Общие расходы в единицу времени Со = z) = s^{y* ~р (х) 4-s 2 -т^г~Р^ + х=0 ' ' х=й*^-1 2 + z)- х=^*4-1 Модель управления многономенклатурными запасами при вероятностном спросе и мгновенных периодических поставках Выше была исследована модель системы управления однономенк- латурными запасами при вероятностном спросе и мгновенных постав- ках. В этом разделе мы рассмотрим систему хранения многокомпонент- ных запасов, состоящих из N номенклатур, при условии, что запасы возобновляются периодически одновременно по всем номен- клатурам. Известно распределение спроса Д- (х), i — 1, ..., N по каждой номенклатуре за время периода Т (период между поставками), а также расходы по хранению избыточного запаса sz (Yi—х), где {Ц}, 1=1, ..., N — искомый оптимальный уровень запаса по каждой номенклатуре на начало периода. Предположим, что затраты на во- зобновление нормативных запасов по всем номенклатурам i = rl, N определяются по формуле N (3.39) 1=1 и задержкой в поставках можно пренебречь (мгновенные поставки). Затраты на хранение следует, естественно, принять пропорцио- нальными остаткам (Yt — хс) на конец периода. Штраф за недостачу запаса система несет по г-й номенклатуре, для которой имеется мак- симум взвешенного ожидания потерь вследствие дефицита: сю max pt J (х — Y () f( (х) dx. (3.40) 1 У/ Целевая функция — сумма затрат на период Т определится из (3.41) N ' = 2 ci(Yi~ ?i) ЬтФь Yz, Yt + J (Yi~x)fi(x)dx 0 + max pt J (x — Y^ ft (x) dx, (3.41) где Ylt YN— нормативные уровни запасов по номенклатурам. Из (3.41) следует, что для всех номенклатур /, удовлетворяющих 342
условию оо ©о ' рД (х—Yj}fj{Xj}dx< vwxpi § (х — Y{)ft(x)dx, (3.42) Yi 1 Yi транспортные издержки с{ (У г — гг) и издержки хранения з( (у( — х() можно сократить до выполнения равенства в (3.42). Предположим, что оо оо max рД (x~Y{) ft (х) dx = pt § (х — Ух) /у (х) dx. (3.43) г' Y{ Y, Дифференцируя Lt (г/х, ..., уп), получаем в оптимальной точке d Pi $ (x — Y^fi (x) dx = ~pi dYt f{ (х) dx dYt ^~Pi § f (x) dx dYlt откуда Pi § fl W dx dYj Yt dYt о» (3.44) Найдем оптимальные уровни запасов У?,.... У®. Для этого вычислим N dL dL , “ ~дУГ’+ dY, ~3Y~ И3 dY± dYf ay; Подставляя (3.44), а также V dL dY; dL учитывая, что -gyy (3.45) + s; j fj(x)dx, получаем о " r Yt Pi fi W dx „ =2 C' + S J W dx -------------------------------?! J W dx °' <8Л6> 1 г=1 0 J Pi J fi W dx y’ Yt Итак, мы пришли к следующей системе уравнений относительно неизвестных Ylr ..., У^: Cj+Sj Sl — 1 =5 0; fl (X) dx 843
Pi $ U — Уг) fi (х) dx — Pi j (x — Yf) fi (X) dx; i == 2, ..., N. (3.47) Необходимым условием существования решения этой системы в области Ух....Yи > 0 является Л/ У < 1, так как ------------------sz > ——-------->с,. Решение системы {У/} отыскивается методом Ньютона [47]. Пусть дана система нелинейных алгебраических уравнений вида V (Y) — 0. (3.48) Предположим, что известно т-е приближение Y(m) корня Y *. Тогда • Y* = Y<m) + A(m). (3.49) Подставив (3.49) в (3.48) и разложив V (Y<m> + A(m>) в ряд Тэй- лора в окрестности Ym, получим V (Ym + Am) = V (Ym) + V' (Y) Am = V (Ym) + W (Y) Am = 0, где Если Тогда dv± rjvL dv1 Ж7 ’ ’ • • • ’ ~dyN W (Y) = ctojy dvN dvN dyi ’ dy2 ’ • * ’ ’ dyN det W (Y) #= 0, TO A(TO = — W~‘ (Ym) V (Ym). (3.50) ym+’ = ym ] дт __ Y',n’’_______________________(Y”1) V (Y"1). ' В качестве начальных приближений У? можно использовать вычисленные из соотношения, выведенного для модели с одним видом запасов (3.32) F (у?) == ^-.СЕ , i= 1, .... У. ‘ Pi + Если по некоторой номенклатуре i величины и хгср малы, то создавать запасы по ней нецелесообразно. Критерий для проверки этого условия получим в виде следующего равенства: СО ОФ PiXicp = pt J xft (x) dx< pA(x — yj (x) dx. ° Vi (3.51) 344
Таким образом, алгоритм отыскания Y'i, состоит в следу- ющем: 1. Производится проверка условия N У^-<1. (3.52> S Р1 Если оно выполняется, то переходим к решению системы нелиней- ных алгебраических уравнений (3.47). В противном случае исключа- ем ем номенклатуры, по которым запас не выгоден, т. е. для которых > > 1. Этот процесс устранения производится до тех пор, пока не ста- нет выполняться (3.52). 2. Решаем систему нелинейных уравнений (3.47), и определяем оптимальные уровни запасов по всем номенклатурам Y\, Y2, ..., YN, § 4. ДИНАМИЧЕСКИЕ ЗАДАЧИ УПРАВЛЕНИЯ ЗАПАСАМИ Выше были рассмотрены статические задачи управления запасами, где рассматривалось функционирование модели за один период. В ряде таких задач удалось получить аналитические выражения для оптимального запаса у0. В случае, если рассматривается функционирование системы за п периодов, причем спрос непостоянен, приходим к динамическим мо- делям управления запасами. Эти задачи, как правило,не поддают- ся аналитическому решению, однако оптимальные уровни запасов по периодам могут быть определены, используя метод динамического программирования. Нестационарный детерминированный спрос (конечношаговая модель) Рассматривается задача управления запасами на п периодов, когда спрос за г'-й период (г =1, ..., п) определяется величиной Вводим следующие обозначения: yk — остаток запаса от (k —1)-го периода; dk — суммарный спрос за k-u период; xk — запас, созда- ваемый в k-u период (или заказ в k-м периоде). Предположим, что заявка на пополнение запаса исполняется мгно- венно, причем расходы на выполнение заказа величины х обозна- чим через ck (xk, yk). Пусть sk (xk 4- yk — dk) — расходы по хранению избыточного за- паса в &-ом периоде. Тогда суммарные расходы по снабжению за п периодов п LnT = s ck (yk, xk) + sk (xk + У k~ dk), <4-1 > *=i причем xk 4- yk — dk — yk+i, k = 1, 2, ..., n. Требуется найти такие {xk} и {yk}, при которых (4.1) обращается в минимум. Для минимизации Lnr воспользуемся методом динамиче- ского программирования. Будем последовательно минимизировать 34а
затраты за 1, 2,..., п периодов, при условии, что на начало (k + 1)-го периода имеется запас %. Определим последовательность функций состояния k Aft (g) = min у С; + Sj (Xj + yt — dj) (4.2) {*/} /=i при условии, что xk + Ук — dk = g. Тогда основное рекуррентное соотношение таково: Ak (g) = min [fk (xk, yk) + Aa_i (g — xk + dk)] =; xk = min [fk (xk, g + dk — xk) + Ak_t (g — xk + dk)]. (4.3) xk Иа первом шаге при /г = 1 A1(g)=^min/1(xI, yj - min [сг (xb yt) 4- sx (xk + yk — dt)l (4.4) xi xt при условии g — xt + yx — d-L. Вычислив последовательно Лг (gj, Л2 (g2), ..., на последнем шаге определим Ап (g = уп+1) и х'п (yn+i). Оптимальные хк находим по.формуле (п \ У п+1 + Е Ф — X* • ' (4-5) f=fe+l / Рассмотрим частный случай, значительно упрощающий вычисли- тельную схему. 1. ДОПУСТИМ, ЧТО ВСе фуНКЦИИ С/ (Ху, У/) —ВОГНуТЫ ПО X/ и yz. 2. Будем считать функцию S/ линейной. Тогда s/ (xi + У/ — dj) — s/ (у/+1) = Sjyi+i. Общее выражение для функции затрат будет LnT = min у Cj (xj) + szy/+l = min V fj (х1г y/+!) (4.6) {*i} /=i xi p=i при условии X, + У! ~ y,+\ = dj. (4.7) Предположим, что ух и yn+i заданы, закупки производятся лишь в начале периодов, а все требования в каждый текущий период долж- ны быть удовлетворены. Нужно отыскать последовательность {х/} и {у/}, минимизирующую функцию суммарных затрат Lnr (4.6). Рассмотрим процедуру решения. Так как ищется минимум суммы вогнутых функций ft (Xj, y/+t), то оптимальным решением (4.6) является одна из крайних точек допустимого множества решений, определяемых ограничениями (4.7). Так как число ограничений равно п, а общее число переменных {х,-} и {у/} равно 2п, то оптимальное решение содержит не более чем п 346
ненулевых значений переменных. Ввиду того, что X/ и у/ не могут быть равны нулю одновременно (иначе не будет выполняться (4,7). Опти- мальное решение (х9) и {у9} обладает следующим свойством: хЭД = 0. (4.8) Условие (4.8) эквивалентно следующей паре условий: если у° = 0, то х? > 0; ' л on (4.9) если > 0, то х°, = 0. Поясним смысл условий (4.8) и (4.9). Заказ на изготовление новой партии X/ не поступает, если в нача- ле периода / имелся запас yj > 0. (Временем выполнения заказа пре- небрегаем). Отсюда следует, что X/ = 0 или X/ — dt, илих° = dj 4- dj+i и т. д., т. е. заказ равен спросу за целое число периодов. Поскольку yn+i = 0, решаем задачу управления запасами в пря- мом направлении. Пусть Aft (S) — минимальные затраты в течение k периодов, если запас на начало (k + 1)-го периода равен £. Основное рекуррентное соотношение Ak© = mm[fk(xk, l) + ^k-i(l + dk~xk)], (4.10) xk причем g = t/fe+i = xk + yk — dk, k—\, .... n. Но так как x^y® = 0, то минимум (4.10) в силу вогнутости гается в одной из крайних точек xk = 0 или xk = § 4- dk. Поэтому . . f fk (I + dk; I) + Aft_i (0) Ak © - min (0. + Afe_i + Аналогично . f fk—i (1 4- dk -f- dk—i', § + dk) Aft_2 (0) Afe_, (g + dk) = min | (0; g + + Лй_2 g + dk + ДОСТН- (4.11) (4.12) Выписав выражения, аналогичные (4.12), для Aft_2, Afe_3, ..., получим © = min gk (i), (4.13) где (k k \ § + S dn; | + X d J tl=d Д=ав^-|-1 / k f k \ + ,E M0; ?4- S dn , (4.14) gk (0 — расходы за k периодов, при условии, что последний заказ сделан в начале периода I. Рассмотрим частный случай вида функции производственных за- трат с (X/)- Пусть 1 » 0, Xj = 0 ci (хд — | д, х_ > Q. 347
Тогда п п п п п * U Cj (Xj) = £ АД 4- С £ X - = U АД + С £• (у i+i ~У/ + dj) = 1=1 ;=1 /=1 /=1 /=1 = X + с [ X dj + (уп+1 - г/J ~ х Aj8j, (4.15) /—1 \/=1 / 1=1 const причем 8j — 1, если х, > 0; 6/ = 0, если х,- — 0. В этом' случае задача упрощается и сводится к задаче линейного программирования. Найти п min V (Л/б + ш+1) (4.16) (-W /=1 при условиях Xj + Уj — yt+i = dj-, xiyj = 0, (4.17) причем 8j — 1, если Xj > 0; 6/ = 0 при X/ = 0. (4.18) Используя (4.17), (4.18), а также условие, что В = 0, получим следующее выражение: к—1 к gk (i) = Az_i (0) + A, + S Sj S dn (4.19) /=< «=/4-1 и Afe (0) = min gk (z). (4.20) Дальнейшее упрощение в вычислительной схеме может быть полу- чено, если учесть следующее обстоятельство. Если при вычислении Л/г—i (0) оказалось, что заказ, с помощью которого удовлетворялся спрос (k — 1)-го периода, должен поступить в начале периода v, то за- каз, удовлетворяющий спрос k-vo периода, должен поступить также не ранее периода V. Следовательно, при вычислении Aft (0) достаточно рассматривать Aft (0) = min gk (t). k Пример 6.4. Некоторое предприятие планирует поставку продукции в течение 7 месяцев в таких объемах: d, = 90 шт.; d2 = 125; d3 = 140; d_, = 100; d5 = 45; ds = 60; d7 = 130. Стоимость хранения 1 единицы продукта в течение месяца состав- ляет 2 руб./месяц. Стоимость наладки (или переналадки) оборудования А, = 300 руб., i = 1, 2, ...,7. Наладка проводится в начале только тех месяцев, когда изготовляется продукция; временем на выполнение заказа мы пренебрегаем. Требуется определить периоды времени, когда производится заказ, а также размер заказа. Допустим, что на начало первого месяца не было никакого запаса, т. е. у± = 0. Итак, требуется найти 6 7 min г = min 300 V 6; + 2 V у< , {*/) {»/}[ h А где 6/ = 1, если xj > 0; 6j = 0, если xj =0, 348
при ограничениях + У? ~ “ 90» X/ + У! — = dj, + = 125, ds = 140, d4=100, d5 = 45, ds = 60. xi + Vi — d7 — 130, Таблица 6,11 Периоды k 1 2 3 4 5 6 7 Спрос dk 90 125 140 100 45 60 130 gk^ 1 2 3 i 4 5 6 7 300 550* 660 1100 880 850* 1050* 1150 1230 * 1240 1350 1590 1480 1470* 1530 1990 1790 1770* Afe(0) 300 550 850 1050 1230 1470 1770 (1) (1. 2) (1, 2) (3) (1, 2) (3, 4) (1.2) (3,4,5) (1, 2) (3, 4) (5, 6) (1. 2) (3, 4) (5, 6) (7) Из соотношений (4.19) и (4.20) следует, что Л4 (0) = А, = 300. Л2 (0) = min (а2 + л4 (0) = зоо + зоо = 6001 _ 550 Uj + 2d2 = 300 + 2-125 = 550) Таким образом, только при двух периодах и нулевом запасе в конце периода выгодно иметь одну поставку, удовлетворяющую потребностям обоих периодов. Далее + Л2 (0) = 850, 1 Л3 (0) = min J А2 + 2 • ds + Л4 (0) = 880, > = 850. U1 + 2 • d„ + 2 (da + ds) = 1100) Результаты остальных вычислений приведены в табл. 6.11. В последней строке таблицы в скобках указаны номера тех периодов, для которых спрос удовлетворяется вначале первого из них. Звездочки над gk (0 указывают на то, что данное значение минимально по i и равно Л* (0) (min gk (t) = Л* (7); § = 0). i Оптимальное решение, согласно табл. 6.11, таково: г* = Л, (0) = 1770, я, = 90 + 125 = 215, = 0, х* = 140 + 100 = 240, х4 = 0, Xg = 45 + 60 = 105, Xg = 0, Х7 — 130. Такая модель называется динамической моделью выбора объема партии. 349
Рис. 6.17. Детерминированная задача управления запасами с бесконечным числом шагов Ранее была рассмотрена упрощенная задача управления запасами. Основное упрощающее предположение сводилось к следующему. Зака- зы на изготовление очередной партии могли поступать только в начале текущего периода, причем временем изготовления партии мы прене- брегали. Рассмотрим теперь более реальную задачу [45]. Пусть время между сделанным заказом и его выполнением равно т. Будем считать, что ско- рость спроса Л. постоянна и не мо- жет быть потребности в двух едини- цах продукта одновременно. Таким образом, время между последую- щими требованиями есть А^ = Пусть эта система может фун- кционировать бесконечно долго и после каждого очередного требова- ния следует решить, делать или не делать заказ. При этом потребуем, чтобы спрос удовлетворялся пол- ностью. Обозначим через Д — фик- сированные затраты на заказ (за- траты на наладку), через с — сто- имость изготовления единицы продукта. Затраты на хранение, как и выше, считаем пропорциональными ве- личине запаса с коэффициентом пропорциональности k. Предполага- ем, что величины А, с, k и т не зависят от времени t. Задача заклю- чается в определении моментов заказов и объемов заказов, которые минимизируют затраты на заказ и его хранение на все будущее время. Заметим, что поскольку заказ, сделанный в момент t, не может быть выполнен ранее момента t + т, то и затраты на его хранение не долж- ны включаться в общее выражение затрат на момент t. Пусть | — имеющееся перед принятием решения количество единиц продукта. Через х > 0 обозначим величину заказа. Тогда § + + х — величина запаса плюс заказанное количество, после того как заказ был выполнен. В связи с тем, что все требования выполняются из запаса, а все заказанное количество в момент t выполняется не ранее момента t 4- 4- и, то величина запаса в момент t 4- т? составит (| 4- х — /и) единиц, IT 3 дТ = [Л/r] (знаком [Лт] обозначена целая часть Ат). Следующее требование (спрос) поступит в момент (т + 1) At, т. е. спустя [(т 4- 1) At — т] единиц времени после выполнения за- каза, который поступил в момент t. Следовательно, в интервале вре- мени между t 4- т? и t 4- (т 4~ 1) At величина запаса равна ? 4~ х — т, а в интервале t 4* (tn 4- 1) At и t 4- и 4- At она составляет S, 4- х — — т — 1 единиц. 350
Таким образом, затраты на хранение / (S + х) в интервале (I + т), U 4- ’S 4- ДО выражаются соотношением: f(l + x)=*k{(£ + x-m) [(/п+ 1)Д/-т)]4- 4~ (§ 4- х — т — 1) [т — тДО) =! k (I 4* х — т) Ы — k (т — mA(). (4.21)< Для полного удовлетворения спроса необходимо выполнить усло- вие g 4* х > т + 1. Для этого предположим, что f (х 4- £) = оо при ъ 4* х < т 4- l.-На рис. 6.17 представлена динамика изменения за- пасов. Заметим, что затраты на хранение в интервале t + т, t 4- т 4- Дг зависят только от величины х + £• Пусть а, как и обычно, коэффициент приведения затрат в момент t + Д/ к моменту t. Обозначим через Л, (с) суммарную величину всех будущих затрат, приведенных к моменту t, при использовании опти- мальной стратегии управления запасами, начиная с момента времени I,. на весь последующий (бесконечный) отрезок времени (сюда не включе- ны затраты на хранение за интервал времени до t 4- т). Аналогично через Лм-де (?) обозначим приведенную к моменту t 4- Д/ величину всех последующих затрат, начиная с этого момента, если принимают- ся только оптимальные решения. Пусть у, — величина запаса в момент t 4- /Д/, X/ — размер за- каза, f (Xj + у/) — затраты на хранение в интервале между t 4- W и t 4- /Д/ 4- т; уо = I; х0 = х. Тогда оо Л, (g) = min U а' [Абу 4- сх/ 4- f (х, 4- #/)] (4-22> xL,x.,, ... i—0 И ОО А/+д^ (Ю ~ min X а/-1 [Абу 4- сху + f(xt + z//)]. (4-23) ХцХ^ ... /=1 Следовательно, Лу (|) = min {Аб 4- ex 4- / (х 4- ?) 4- X 4- a min V а/-1 [Абу 4- сх,- + f(xi + У/)], (4.24) {*Л ...} где х 4- I '— 1 есть величина запаса плюс заказанное количество до принятия решения в момент t 4- At Используя выражение для Лу+д# (£), получаем Лу (£) = min [Аб 4~ сх 4~ / (х 4~ S) + ссЛ^д/ (% 4~ х — 1)]. (4.25) X С другой стороны, если в (4.22) принять i = / — 1, то получим вы- ражение (4.23), т. е. At(£) — А/+дД5) = ••• — Ау+уД/(^), /= 1,2, ... (4.26) Это означает, что если наличный заказ равен | и начиная с момента времени t все последующие управления оптимальны, то величина всех 351
будущих затрат не зависит явно от t. Причина этого в том, что рас- сматривается бесконечный интервал времени. Подобные процессы называются бесконечношаговыми и поэтому индекс t в выражении для Л/ (|) можно опустить. В результате соотношение (4.25) преобразуется: Л(g) = min {А8 4- сх -Н (I + х) + аЛ(г, + х — I)}. (4.27) Уравнение типа (4.27) называют функциональным. Отметим, что уравнение содержит неизвестную функцию Л (£) в обеих частях с разными значениями аргумента. Аналитическое решение этих урав- нений удается получить в исключительных случаях. Однако для данной задачи оказывается возможным, исследовав (4.27), не только получить информацию о структуре оптимального решения х0Пт, но и найти его явное решение. Введем для удобства изложения обозначение F (£ + х) = с (х 4- £) 4- f (£ + х) + аЛ (£ 4- х — 1). (4.28) Тогда (4.27) можно переписать в виде Л © - - d + min (Л6 + Г(Е + х) = -^ + min { т,п + (4.29) Пусть абсолютный минимум F (у) достигается при у = R, и пусть г (г < R) есть наибольшее целое число, для которого еще выпол- няется F (г) > А 4* F (F). Тогда из соотношения (4.29) следует, что если £ лежит между г < с < R, то оптимальная стратегия состоит в следующем: ничего не заказывать, пока сумма ранее заказанного и имеющегося в наличии запаса не достигнет величины г. В этот момент заказывают (R — г) единиц цродукта. Таким образом, при оптимальном управлении наличный запас вместе с заказом всегда будет лежать между г и R. Система управле- ния запасами, обладающая таким свойством, называется устойчиво управляемой [45]. Приведенный выше анализ в общем случае не дает метода отыска- ния неизвестных г и R. Однако в данной задаче величину г можно определить довольно просто. Вспомним, что / (g 4" х) — оо при £ 4~ 4- х < m 4- 1. Поэтому, если г < т (г — £ 4- х — 1), то f (г 4- 1) = = оо; другими словами, если г < т, то к моменту выполнения заказа, сделанного в момент t, одно (или больше) требований окажутся неудов- летворенными. С другой стороны, если г > т, то затраты можно уменьшить, по- ложив г — т. Таким образом, г = т и очередной заказ следует делать сразу пос- ле поступления требования, снижающего суммарное количество за- казанного и наличного продукта до величины т. Покажем, как можно вычислить величину R. Если предположить, что числа г и R известны, то функциональное уравнение (4.29) можно решить в явном виде относительно Л (х). 352
Выпишем соотношения г < g R — 1: Л (R — 1) = f (R — 1) + аЛ (R — 2); A(R — 2) = /(R — 2) + «A(R — 3); (4.30) А (г) = A 4-c(R — г) + f'(R) + <xA(R— 1). Начав с последнего уравнения и подставив его последовательно во все предыдущие, исключим все неизвестные Л (г), Л (г + 1), Л (R — 2). Окончательно получим A(R-1) = /(R-l)4-af(R —2) + «7(R —3).+ ••• + + f (r + 1) + aR—r~1 [A + c (R — r) + f (r)] + aR~rA (R — 1), откуда r R-r-1 A(R-—1)=——a«-r-i[C(R_r) + A]+ a/-V(R-/) + 1 — a1' I /=1 + aR~r-lf (R)|. (4.31) Выражению (4.31) можно дать интересную интерпретацию. Отметим, что система приходит в прежнее состояние через каждые (R — г) А/ единиц времени. Поэтому (R — г) А( — период цикла. Рассмотрим ситуацию, когда цикл начинается через время А/ после выполнения заказа, т. е. немедленно после того, как поступит требование, которое снижает суммарный запас до R — 1. Следующий заказ будет сделан через время (R — г — 1) А/ после начала цикла. Поэтому выражение в фигурных скобках правой части (4.31) — затраты на цикл, приве- денные к началу цикла, а Л (R — 1) — приведенная сумма затрат по всем циклам за бесконечный интервал времени. Есть несколько способов вычисления R или R — г. Например, си- стему с бесконечным числом шагов можно аппроксимировать системой с конечным числом шагов и по мере их добавления вычислять непо- средственно минимум из (4.25). После того, как взято достаточно большое число шагов га, хп (g) перестанет изменяться в зависимости от п. Тогда R — г есть величина скачка, на который изменяется х (g). Другой способ, позволяющий точно определить R — г, состоит в подстановке (4.31) в (4.27) при g = г и последующем отыскании минимума (4.29) по х — R — г при g = г. Вопросы для самопроверки 1. В чем сущность вычислительного метода динамического программирования? 2. Сформулируйте принцип оптимальности Веллмана и поясните его смысл. 3. Для задач какой структуры возможно применение метода динамического про- граммирования? 4. Укажите условия, при которых задача решается методом динамического про- граммирования в обратном направлении и, наоборот, в прямом, направлении. 23 8-3164 353
5. Какой основной недостаток динамического программирования? 6. Назовите методы понижения размерности задач динамического программи- рования. 7. Укажите главные компоненты задачи управления запасами. 8. Выведите формулы для простейшей задачи управления запасами с постоянным спросом и периодическими поставками, когда период между поставками постоянен. 9. В какой модели управления запасами используется двухуровневая стратегия и как она формулируется? 10. В каких задачах управления запасами используется метод динамического программирования?
ЗАКЛЮЧЕНИЕ Внедрение результатов решения операционной задачи является заключительным и одним из наиболее ответственных этапов операци- онного исследования. На каждом из предыдущих этапов есть возможность построения моделей, принятия научных решений, а также корректировки ре- шений. Но на этапе внедрения такой возможности уже нет. Зада- чи, возникающие на этом этапе, относятся к области искусства уп- равления. Возможность внедрения и управления процессом реализации лю- бого решения появляется лишь тогда, когда оно одобрено руковод- ством, имеющим соответствующие полномочия. Причем одобрение это зависит не только от качества выполненного решения и выгод, ко- торые оно сулит, но и от характера и степени участия руководства’;в самом процессе операционного исследования, а также его отношения к полученным результатам. Проведенные эксперименты, а также накопленный опыт внедре- ния результатов решения дали возможность определить некоторые факторы, влияющие на вероятность одобрения руководством ре- шения операционных задач, а также разработать целый комплекс мероприятий, стимулирующих у руководства заинтересованность к внедрению законченных исследований. Эти положения таковы [1]. 1. Операционная группа должна заботиться о том, чтобы решение исследуемой задачи оказалось приемлемым для руководства еще до того, как оно получено. Одобрение решения руководством в большой степени определяется его убеждением, что решение задачи действитель- но отвечает его основным запросам, а также пониманием метода оты- скания этого решения. Поэтому участие руководителей в проведении операционного исследования не только желательно, но и необходимо. В ходе проведения исследования необходимо индивидуально встре- чаться с каждым заинтересованным руководителем с целью получения консультаций и обсуждения возникающих вопросов. 2. Необходимо организовать контрольный, или консультативный, совет с участием руководителей организации, на котором регулярно заслушивать информацию операционистов о ходе операционного ис- следования. Систематическая оценка хода выполняемых исследований со стороны руководителей создает у них уверенность в том, что все существенные аспекты проблемы учтены операционистами. Кроме то- го, это позволяет руководителям постепенно усваивать сущность 23* 355
применяемых методов и средств, что приводит к гораздо лучшему пониманию существа операционного исследования, чем ознакомление с пухлым отчетом о выполненном комплексе работ. 3. Желательно, чтобы исследование финансировалось теми руко- водителями, по заказу которых оно выполняется. На первый взгляд может показаться, что организации выгодно бесплатно пользоваться плодами научных исследований, но это не всегда так. ’ Только при оплате выполняемых работ из своего собственного бюд- жета у руководителя организации появляется уверенность, что они служат его собственным интересам. В таком случае руководителя организации гораздо легче привлечь к участию в проведении иссле- дования и внедрению полученных результатов. Поэтому всегда, когда имеется хоть малейшая возможность, руководство организации долж- но участвовать в расходах, связанных с проведением исследований. 4. По мере роста доверия к операционной группе со стороны ру- ководства проблема, порождаемая чрезмерным доверием, может стать более серьезной, чем проблема недоверия. Несколько положительных результатов могут повлиять на руководство таким образом, что будут одобряться недостаточно проверенные решения. Если операционистам не хватает времени на проведение тщатель- ного исследования, то они обязаны точно проинформировать руково- дителей о тех отклонениях от нормальных методов исследования, ко- торые были допущены. Это позволяет руководству сознательно идти на риск, одобряя (при необходимости) результаты, полученные в условиях нехватки времени. 5. Во всех допустимых случаях следует предпочитать устные от- четы о проделанной работе письменным, так как такая форма отчета позволяет использовать преимущества обратной связи, т. е. дает воз- можность получать вопросы при обсуждении и давать на них ответы. 6. На этапе внедрения обычно возникают задачи, которые невоз- можно предвидеть в период проведения исследования, вследствие чего требуется некоторая модификация найденного решения. Если измене- ния в решение вносятся недостаточно компетентными операциониста- ми, которые не принимали участия в его отыскании, то эти изменения могут оказаться неверными или исказить весь смысл найденного ре- шения. Поэтому изменения на этапе внедрения должны вноситься именно теми операционистами, которые проводили операционное исследование. 7. Операционисты должны разработать детальные инструкции для тех, кому предстоит реализовать найденное решение. Они должны со- ставить календарный план-график процесса внедрения. К разработке плана внедрения необходимо привлечь всех участ- ников его будущего внедрения. Это позволяет избежать включения в план практически неосуществимых заданий и способствует появлению заинтересованности исполнителей в реализации намеченного плана. Одновременно эта мера придает уверенность руководству высше- го уровня, которое отвечает за выполнение плана, в его реализуе- мости. 356
Как показывает практика, при разработке сложных планов внед- рения часто оказывается полезным создание специальной консульта- тивной группы, которая включает руководителей подразделений, уча- ствующих во внедрении. Чем больше обязанностей возлагается на такую группу, тем большего эффекта можно ожидать. 8. В условиях, когда реализация операционного решения задачи занимает много времени, состояние системы, для которой было полу- чено решение, может существенно измениться. Так, например, может быть сделано неожиданное открытие в науке или технике или изоб- ретение, которое коренным образом изменяет установившиеся поня- тия, технологию, организацию и т. д. Изменения подобного рода могут в свою очередь повлиять на характер самой задачи, а следовательно, и на эффективность ее решения. Изменения, которые могут возникать в системе организационного управления, относятся к следующим кате- гориям (видам): а) изменение полезности получаемых результатов, которое влияет на выбор критерия функционирования; б) изменение набора управляемых переменных; в) изменение ограничений,. наложенных на управляемые пере- менные; г) изменение значений параметров. Так, изменение среднего месяч- ного спроса на какой-либо вид продукции может привести к измене- нию оптимального размера покупаемой партии этой продукции; д') изменение структуры системы, т. е. изменения соотношений между критерием функционирования и управляемыми переменными и параметрами. Системы, являющиеся объектом операционных исследований, поч- ти всегда подвергаются существенным изменениям с течением времени, и потому методы внедрения, разработанные даже самым лучшим обра- зом, постепенно теряют свою эффективность. Если в реализуемом ме- тоде внедрения не предусмотреть специальных мер коррекции, то внедренное решение может оказаться совершенно неадекватным ново- му состоянию системы, а потому неэффективным. Следовательно, в процедурах реализации решения необходимо предусмотреть средства его коррекции и обеспечить условия, чтобы этими средствами пользовались только квалифицированные специа- листы. В заключение отметим некоторые актуальные направления работ в области исследования операций. 1. В области теории первостепенное значение приобретает раз- работка и совершенствование эффективных методов математического программирования, в частности, линейного, динамического, и дискрет- ного, при решении задач большой размерности. Такие задачи постоян- но возникают при оптимизации планирования и управления макроэконо- мическими системами на уровне отраслей, групп отраслей и экономики страны в целом. Проблема снижения или снятия «проклятия размер- ности» по-прежнему остается главным препятствием для успешного применения операционных методов при оптимизации управления боль- шими организационными системами. 357
Для решения этой проблемы необходимо развитие различных методов декомпозиции, методов, использующих иерархические подхо- ды, и эвристического программирования. Новые интересные методы решения крупных макроэкономических задач, возникающих в процессе создания ОГАС, предложены акад. В. М. Глушковым. 2. В области нелинейного программирования перспективным на- правлением является создание эффективных методов оптимизации при наличии ограничений, разработка специальных алгоритмов глобаль- ного поиска экстремума многомерных функций. 3. При разработке проектов сложных систем, в частности авто- матических систем управления и АСУ, перед проектировщиком возни- кают проблемы принятия решений при наличии одновременно несколь- ких показателей качества (критериев). Поэтому разработка методов принятия решений при нескольких критериях оптимальности (много- критериальная оптимизация) и в условиях неопределенности по-преж- нему остается одной из главных задач исследования операций. В последние годы для принятия решений при проектировании и управлении в условиях неполной информации и наличия плохоформа- лизуемых факторов все шире применяются диалоговые системы (пла- нирования, проектирования и т. д.). В этих системах обеспечиваются возможности для удачного соединения развитых математических методов оптимизации и быстродействующих ЭВМ с опытом и неформа- лизуемыми знаниями проектировщиков. Большой положительный опыт в этом направлении накоплен в Институте кибернетики АН УССР. 4. Для анализа и исследования больших систем организационного управления, функционирующих при воздействии случайных или неопределенных факторов, следует все шире использовать имита- ционное моделирование и деловые игры. Для успешного применения имитационного моделирования необходимо развитие языков модели- рования и программного обеспечения, в частности создание програм- мных комплексов моделирования, ориентированных на широкий класс моделей. 5. Актуальной задачей в области прикладных исследований яв- ляется совершенствование методов разработки моделей исследования операций, в частности моделей управления запасами, распределения ресурсов, календарного планирования, СПУ, и накопление опыта в их применении для оптимизации управления в организационных си- стемах.
Приложение 1 НЕКОТОРЫЕ ВОПРОСЫ ЛИНЕЙНОЙ АЛГЕБРЫ Линейная зависимость и независимость векторов, линейное пространство и базис Определение 1.1. Даны множество т-мерных векторов Aj, А2, А,г п и скаляры ku k2, kn. Тогда т-мерный вектор Ао вида An = k^i называется линейной комбинацией векторов Aj, А2, Ага. Заметим, что скаляры kt, i = 1, п здесь произвольны. Варьируя kt, получим все возможные линейные комбинации. Определение 1.2. Система векторов Ат, А2, Ап называется линейно- независимой, если равенство вида £М/ = 0 (1.1) г=1 выполняется тогда и только тогда, когда k-^ — k2 — ... — kn = 0. В противном случае система называется линейно-зависимой. Допустим, что условие (1.1) выполняется при некоторых kt 0. Выбрав такой вектор А,-, что kt =й= 0, и перенеся его вправо, получим <‘-2’ ь=1 \ К / ;=1 Следовательно, в случае линейно-зависимой системы векторов вектор А; выражается в виде линейной комбинации остальных векторов системы. Определение 1.3. Дано множество m-мерных векторов Ах.......Ага. Мно- жество R всех линейных комбинаций векторов {А1г А2, ..., Ап) называется линейной оболочкой, или пространством, натянутым на данное множество векторов (порож- денным данным множеством}: J? = |ajA=^ k{AА , где kt £ (— оо, со). (1.3) I »=Г J Рассмотрим некоторые примеры. Если п = 2 и заданы векторы Ах и А2, неколлинеарные друг другу, то их ли- нейной оболочкой является плоскость. Пусть п = 3 и векторы Aj, А2 и А3 не лежат в одной плоскости. Тогда их линейной оболочкой будет трехмерное пространство. Следовательно,, любой вектор А этого про- странства можно представить как линейную комбинацию заданных векторов (рис. П. 1). При исследовании некоторого линейного пространства, порожденного системой век- торов, важно уметь находить такое порождающее множество векторов, которое со- держит минимальное число векторов, необходимое для образования (задания) этого пространства. Такое наименьшее порождающее множество называется базисом и об- ладает многими важными свойствами. Определение 1.4. Пусть R есть некоторое пространство, порождаемое системой векторов А = {Aj, А2, ..., Аге}. Тогда базисом этого пространства называ- ется такое подмножество векторов А.х— {А( , ..., А(- JEA, которое обладает следующими свойствами: 359
а) все векторы базиса — линейно-независимы; б) они порождают то же пространство R, что и исходная система .векторов А. При этом размерность пространства т определяется числом векторов базиса. Отметим некоторые важные свойства базиса. '< 1. Для любого конечного множества (системы) векторов А всякое его подмно- жество из максимального числа линейно-независимых векторов является базисом для А' а Рис. П.1. 2. Любой вектор А/ множества может быть выражен через базисные, причем единственным образом, т. е. А/ == /г..Аг-, Z6/6 ° где Z6 — множество индексов базисных векторов; —коэффициент разложения вектора А/ через базисные. Таким образом, базис пространства при т = 2 (т. е. плос- кости) образует любая пара пересекающихся векторов А1( Аг, принадлежащих этому пространству. Базис трехмерного пространства образуют любые три вектора Ат, А2, А3, не лежащих в одной плоскости, и т. д. В общем случае для любого пространства R размерности т любое множество из т линейно-независимых векторов, принадлежащих R, является базисом этого про- странства. Выпуклые множества, крайние точки, выпуклые многогранники и конусы Определение 1.5. Пусть дано множество векторов Aj, А2, ..., Ат. Тогда их выпуклой комбинацией называется вектор А(|, определяемый соотношениями т _____ т = У Аг&;, i=l, т. У k/=\. (1.4) t=l Дадим геометрическую интерпретацию выпуклой комбинации. Для этого рассмот- рим некоторые частные случаи. 1) т — 2. Тогда Ао = k1A1 -j- k2A2, где kr > 0, k2 0 и fcj + k2 = 1 или Ао = /sjA, + (1 — kt) А2. (1.5) Рассмотрим, что собой представляет множество выпуклых комбинаций вида (1.5), для чего необходимо изменять от 0 до 1. Очевидно, при = О А„ = А2, при kx = = 1 Ао — Ах, а при 0 < kx < 1 Ао расположен внутри угла AjOA2, и при изменении k от 0 до 1 конец вектора Ао описывает отрезок A,Aa (рис. П.2). Следовательно, множе- ство всех выпуклых комбинаций точек и А2 представляет собой отрезок, их соеди- няющий. з 2) т=3. Тогда Аи = kjAj+^Aa+fegAg, где ki > О, J} ki — 1. Очевидно, если один из 1ц, например ks = 0, то этот случай сведется к предыдущему 360
и вектор Ао будет принадлежать соответствующей грани A-jOA., пирамиды, ребрами которой являются А1( А2 и А3 (рис. П.З). В случае же если все ki 0, то вектор Ао принадлежит внутренней части пирами- ды OA-jAgAg. Таким образом, множество выпуклых комбинаций трех векторов Ах> А2, А3 представляет собой пирамиду, ребрами которой служат векторы А1; А3 и А3. Введем теперь определение выпуклого множества точек. Определение!.6. Множество точек (векторов) R в п-мерном пространстве называется выпуклым, если для всех xi, xj £ R любая их выпуклая комбинация Ах, 4* -h (1 — k) xj — х,, для всех 0 < k < 1 будет также принадлежать множеству R. Как было показано выше, выпуклая комбинация пары точек X/, х/ представляет собой отрезок, их соединяющий. Поэтому можно дать еще одно эквивалентное опре- деление выпуклого множества. Множество R называется выпуклым, если для любой пары точек (х,-, х/), принад- лежащей множеству, отрезок, их соединяющий, будет также принадлежать этому множеству. На рис. П.4 приводятся примеры некоторых выпуклых множеств, а на рис. П.5 — невыпуклых. Среди выпуклых множеств важную роль в линейном программировании играют множества, границы которых представляют собой гиперплоскости. Определение 1.7. Множество R (х) называется замкнутым, если вместе с внутренними точками оно содержит и все граничные точки. Определение 1.8. Множество R (х) называется ограниченным тогда и только тогда, когда существует такое конечное число С > 0, что для всех Xi £ R (х) II х/1| < С. Определение 1.9. Полупространством R (х) называется множество всех векторов х, определяемых условием R (х) = <х : Агх = У a\jXj < b 1 . (1.6) Так как уравнение п ^а^.х/^Ь (1.7) 1=1 определяет гиперплоскость в n-мерном пространстве, то полупространство представ- ляет собой часть пространства /4"1, границей которого служит гиперплоскость, определяемая (1.7). Пример полупространства для случая п = 2 (т. е. полуплоскость) приведен на рис. П.6. Легко показать, что полупространство является выпуклым и замкнутым мно- жеством. Теперь рассмотрим множество, представляющее собой пересечение конечного числа полупространств. Определение 1.9. Множество Ro (х), определяемое ограничениями вида п ___ Riix):^ atjxj < bh i = 1, m, (1.9) называется многогранным выпуклым множеством. 361
Если это множество ограничено, то оно называется выпуклым многогранником. Как видно из (1.9), выпуклое многогранное множество представляет собой пере- сечение конечного числа полупространств, т. е. «О (X) = 2?! (х) л #2 (X) Г1 . . Л Rm (X), (1.10) где R- (х)—определяется <-м ограничением типа (1.9). Следовательно, выпуклое многогранное множество является замкнутым (на рис. П.7 приведены примеры много- гранников и многогранных множеств). Отметим, что выпуклые многогранные множества и многогранники играют важ- ную роль в линейном программировании и представляют собой допустимые множества решений ЛП-задач. Пусть п > т, выберем из матрицы А= [Aj, А2, Ап) ограничений (1.9) некоторый базис, например составленный из векторов {As , As , ..., As ). Найдем решение системы уравнений вида В силу линейной независимости векторов {ASf, А^, ..., А^ J это решение един- ственно. Оно называется крайней точкой выпуклого многогранного множества (мно- гогранника). Очевидно, любая крайняя точка представляет собой пересечение т гиперплоскос- тей в m-мерном пространстве. Выпуклые многогранники (многогранные множества) обладают фундаментальным свойством, широко используемым в теории линейного программирования, которое формулируется в следующей лемме Лемма. Пусть R (х) — выпуклый многогранник с крайними точками хь х3, ... ..., х„г. Тогда его любая точка может быть представлена как выпуклая комбинация его 362
крайних точек, т. е., если х0 £ 7? (х), то т «О ~ £ kiXb 1=1 (1.12) т где kt > О, V /?/= 1. i=A Если Д4 (х) — выпуклое многогранное множество, то его любая точка может быть представлена в виде суммы выпуклой комбинации крайних точек и линейной комби- нации с неотрицательными коэффициентами направляющих векторов неограниченных ребер множества, т. е. т хо = Е ki*1’ f=l т где fe; > О, ztki — 1, ё=1 ( 1, если xj — крайняя точка (х); 1 [ О, если X/ — неограниченное ребро множества Rt (х). Доказательство леммы приведено в [57]. Покажем справедливость леммы на следую- щих примерах. Пусть До — выпуклый многогранник с крайними точками х4, х2, х3, х4 (рис. П.8, а). Выберем произвольную точку х0 и, соединив с х2, продолжим отрезок до пересечения с в точке х5. Поскольку точка х5 принадлежит отрезку х4х4, то она является выпуклой комбинацией его крайних точек хг и х4 и поэтому х5 = йгхх -f- /г4х4, где ^+^=1, й4>0, й4>0. (1.14) Рассматривая точку х0 отрезка х2х6, по той же причине получим + fe2>0, й6>0, fe2 + fe6==l. (1.15) Подставим (1.14) в (1.15) и получим х0 = fe2x2 + k-a (AjXx + fc4x4) = /г2х2 + + М4Х4, ИЛИ Хо = fejXj 4“ ^2х2 4" ^4Х4’ =^5^1' ^4 = ^5^4- Так как k\ + /г2 + k'4 = /г5 (£t + &4) + = К + = Ь то первая часть леммы справедлива. Для проверки второй части леммы рассмотрим выпуклое многогранное множество (х), приведенное на рис. П.8, б, Здесь А3 и Д4—направляющие векторы неограничен- ных ребер, х4 и х2 — крайние точки. Выберем точку х3 на ребре А3 и соединим х3 363
с х„ и продолжим до пересечения с неограниченным ребром А4 в точке х4. Очевидно хз = Х1 + Л3А3; (k3 > 0), i6 х4 = х2 + /г4А4; (kt >0). Поскольку точка х0 лежит на отрезке xsx4, то для нее выполняется соотношение: х0 = k1\i + А2х3, + k2 == 1. (1.17) Рис. П.9. Подставляя (1.16) в (1.17), получим хо — + /‘тА1А1 -р + ^а^з^з = ^1ха ~Ь + ^ах1 + Мз А4А4, где k, + k2 — 1; k., > 0; > 0. Но поскольку точка х0 была выбрана произвольно, то отсюда вытекает справедливость леммы. Как мы выяснили, любая точка многогран- ника представляется как выпуклая комбинация крайних точек хх, х2, ..., хт. Рассмотрим теперь сами крайние точки. Интересно отметить, что ни одна из них, например х/, не может быть выраже- на через другие крайние точки, и в этом случае линейная комбинация вида (1.12) будет вырож- денной: kj = 1, kt == 0 для всех I =/* J. Рассмотрим теперь частный случай ограничений вида (1.9), когда т = п. Определение 1.10. Множество точек 1? (х), удовлетворяющих ограниче- ниям т называется выпуклым многогранным конусом, если существует точка х0, такая, что Ахо= Ь. Если матрица А — невырожденная, то эта точка х0—единственна и называет- ся вершиной конуса, а сам конус — невырожденным. Как видим, выпуклый многогранный конус — это частный случай многогран- ного множества с единственной крайней точкой. Ребром, выпуклого многогранного множества называется множество, образованное пересечением (т — 1) из т гиперплоскостей, ограничивающих конус. Существует и другое определение многогранного конуса. 364
Определение 1.11. Пусть задана система векторов Aj, А2, ..., Ап. Тогда множество всех неотрицательных комбинаций этих векторов вида Ао = п ___ = V А/лу, xf > 0, / = 1, п называют выпуклым многогранным конусом, натянутым i=i ня эти векторы. Очевидно, векторы Alt А2, ..., As, которые не могут быть выражены как неотрицательная комбинация других векторов данной системы, представляют собой ребра этого конуса (рис. П.9). Лемма Фаркаша. Исключительно важное значение для теории нелинейного про- граммирования имеет следующая лемма Фаркаша, которая используется при дока- зательстве ряда фундаментальных положений нелинейного программирования [3,50]. Лемма. Пусть заданы векторы A, (i = 1, т) и вектор g. Неравенства grx<0 (1.18) И Afx>0; г = (1.19) несовместны тогда и только тогда, когда вектор g принадлежит выпуклому конусу, натянутому на векторы А/, i = 1, т. Доказательство. Пусть вектор g принадлежит указанному конусу, т. е. его можно представить в виде (рис. П.10, а): g = Е w >°- ‘ о-20) Тогда, как легко видеть, неравенства (1.18) и (1.19) будут несовместны при любом т х, так как в этом случае из условия (1.19) должно следовать и g7x = У X/Afх > 0. i=l Итак, достаточность условий леммы доказана. Допустим теперь, что представление (1.20) невозможно, и обозначим через h век- тор конуса, натянутого на векторы Л,ч = 1, т, ближайший к g в эвклидовой метрике (рис. П.10, б). Нетрудно показать, что hr(h — g)=0. (1.22) Поэтому, положив x = h-g, (1.23) получим grx = gr (h — g) = —[|h — g||2 < 0. (1.24) Кроме того, в силу определения h для любого вектора v, принадлежащего тому же конусу, что и h, при любом 0 из отрезка [0, 1 ] будем иметь ||h —й||2 <||h-g + 0(v-h)||2. (1.25) Отсюда следует, что (h-g)r(v-h) >0, (1.26) а это с учетом (1.23) и (1.24) эквивалентно неравенству xrv >0. (1.27) В частности, в качестве вектора v можно выбрать любой из векторов А/ (i = 1, т) и тем самым убедиться, что х удовлетворяет (1.19). Таким образом, допустив невоз- можность представления в виде (1.20), мы показали одновременно разрешимость си- стемы неравенств (1.18), (1.19), что доказывает вторую часть леммы (т. е. необходи- мость условий). Из леммы Фаркаша вытекает одно полезное следствие, используемое при дока- зательстве теоремы Куна — Таккера. 365
При любой матрице А — [Ар А2... Am]z и векторе g = (g1g3 ...gn]r — либо выполняется система неравенств А;х<0, (1.28) grx<0, (1.29) либо выполняется следующая система равенств-. АГХ-}-Xog = О, где ^>0, Хо > 0. (1.30) X 0. Одновременно обе эти системы выполняться не могут. •Доказательство. Предположим, что система (1.28) — (1.29) несовмест- на. Это означает, что несовместна также и система А(Х <0, z = 1, т, — g7 х > 0. (1.31) Согласно лемме Фаркаша это будет тогда и только тогда, когда вектор — g при- надлежит конусу, натянутому на векторы Ар i — 1, т. Следовательно, в этом случае — g — У Mz» U > 0. Откуда z=i У XzAj -f- g = 0. i (1.32) Обозначив X = [X,] i = 1, т и полагая Хо = 1, придем к соотношению A7’/. -j- Xog = 0. (1.33) Первая часть утверждения следствия доказана. Вторая часть доказательства проводится аналогично доказательству второй части леммы Фаркаша. Приложение 2 Приведение системы линейных уравнений к нормальной форме Смита Важную роль в построении алгоритмов целочисленного программирования игра- ет так называемая «нормальная форма Смита» систем линейных уравнений. Для изложения этого вопроса нам потребуется ввести ряд матриц специального типа и рассмотреть их свойства. Матрицы перестановок. Рассмотрим матрицу П(лХЧ элементы которой Яц удовлетворяют следующим условиям: л,. == 0 или 1; Ч (h /)=1> 2Э ».. » (1) п S л0- = 1; / = 1, 2, .... п; . (2) Z=1 п S nii =i; i= 1, 2, ...» п. (3) 1=1 Такая матрица называется матрицей перестановок. Очевидно, она представляет собой квадратную матрицу, в которой каждый столбец и каждая строка содержит только один единичный элемент. 366
Умножение матрицы П('гх/г| на какую-либо матрицу слева (справа) приводит к перестановке строк (столбцов) этой матрицы. Ниже приводятся примеры таких умножений: 0 0 0 г «11 «13 «14 «15 ~«41 «42 «43 «44 «45 0 1 0 0 X «21 «23 «24 «25 «21 «22 «23 «24 «25 (4> 1 0 0 0 «31 #32 «33 «34 «35 «11 «12 «13 «14 «15 0 0 1 0_ _«41 °42 «43 «44 «45 _ _«31 «32 «33 «34 «35 _ ~«И «12 «13 «14 «15 ~0 0 1 0 0 ' ~«13 «15 «И «12 «14 «21 «22 «23 «24 «25 X 0 1 0 0 0 0 1 0 0 0 = «23 «33 «25 «35 «21 «31 «22 «32 ^24 «34 (5)= «31 «32 «33 «34 «35 0 0 0 0 1 «34 «45 «41 «42 «44 _«41 «42 «43 «44 «45 _ _0 1 0 0 0_ — «35 «55 «51 «52 «54 - Матрицы транспозиций. Матрица перестановок, в которой два и только два еди- ничных элемента не лежат на главной диагонали, называется матрицей транспози- ций. Умножение слева этой матрицы на матрицу А приводит к перестановке двух строк матрицы А, а умножение справа нг В — к перестановке двух столбцов мат- рицы В. Так, например, матрица ~1 0 0 0 0 " 0 0 0 0 1 Р^5х5) = 0 0 10 0 0 0 0 10 _0 1 0 0 0 J является матрицей транспозиций. Эта матрица переставляет строку 2 со строкой 5 или столбец 2 со столбцом 5, в зависимости от того, производится ли умножение сле- ва или справа. Матрицу транспозиций, производящую перестановку i-й и /-й строк,, будем обозначать через Унимодулярные матрицы. Унимодулярной матрицей назовем квадратную матрицу, определитель которой равен +1, —1 или 0. Невырожденной унимодулярной матрицей назовем матрицу, определитель которой равен +1 или —1. Произведение двух (или более) унимодулярных матриц является унимодулярной матрицей. Матрица перестановок является невырожденной унимодулярной матрицей. Если эта матрица получена из диагональной четным числом транспозиций, то ее оп- ределитель равен 1, а если нечетным, то —1. Матрица транспозиций представляет собой невырожденную унимодулярную матрицу и ее определитель равен —1, так как она получена из диагональной нечетным числом транспозиций строк (столбцов). Матрица вычитаний. Рассмотрим сначала единичную квадратную матрицу, в ко- торой один нуль заменен числом —а, где а — любое действительное число. Если — а находится в г-й строке и /-м столбце, то будем обозначать такую матрицу через U, а. Например, (т(5,-5) _ и8,5,а — ”1 0 0 0 _0 ООО 1 0 0 0 1 0 0 0 1 ООО 0- 0 Такую матрицу будем называть элементарной матрицей вычитаний. Очевидно, она является невырожденной унимодулярной матрицей и ее определитель равен 1. Элементарная матрица вычитаний обладает следующими свойствами. Умножение матрицы А на Uz у а слева приводит к вычитанию из г-й строки А ее /- й строки, умно- 367
женной на а. Умножение матрицы В справа на а приводит к вычитанию из /-го столбца матрицы i-ro столбца, умноженного на а. Следующие примеры иллюстрируют эти свойства: 10 0 0 a 11 fl12 а13 а11 а12 О1з — 0 10 — a X с 21 a22 а23 cz2 (722 0^42 ^23 ~~ ^^43 0 0 1 0 а 31 в32 Я33 Й31 а32 #33 0 0 0 1 _ С « а42 а43 __ Й41 #42 #43 ~1 0 0 0 ~ Г ^11 ^12 ^13 ьи 0 1 0 . a ^11 ^12 1 ^21 Ьъ2 X 0 0 1 0 = ^22 ^23 ^24 — °^22 L ®31 ^32 ^33 J) 0 ° 1 __ *^31 ^32 ^33 ^34 ^32 Рассмотрим теперь 2 элементарные матрицы вычитаний и^>а и где i k. Их произведение является матрицей, у которой на главной диагонали расположены -единичные элементы, а все остальные элементы равны 0, за исключением элемента (i, j), равного —а, и (г, k), равного — р. Произведение элементарных матриц вычитаний будем называть составными матрицами вычитаний. Например: Очевидно, любая составная матрица вычитаний имеет определитель, равный 1, и явля- ется, следовательно, унимодулярной. Умножение составной матрицы вычитаний на произвольную матрицу приводит к соответствующим преобразованиям в этой матрице. Арифметически эквивалентные матрицы. Две матрицы A<mx/Z) и fj<"!X'o дудем называть арифметически эквивалентными, если существуют две невырожденные унимодулярные матрицы и*"гх/г) и у(/гХл)такие, что U(mXm)A(',lx'!) У(/2Х/г,= в<тх/г*. Нормальная форма Смита. Пусть А — матрица с целочисленными компонентами размера (т X п) ранга г < min (т X п) и D — матрица (т X п) также ранга г, которая имеет следующую форму, называемую «нормальной формой Смита»; ” di 0 ... О 0 ... О " О d2 . . . О 0 ... О D = О 0 ... dr 0 ... О О 0 ... О 0 ... О т, О 0 ... О 0 ... О где <7/г 0, /г = 1, г. Справедлива следующая теорема. Теорема. Для любой матрицы \lmy'n'i существует матрица !)<тХп\ арифме- тически эквивалентная ей, т. е. связанная с матрицей соотношением д(тХт)дЩгх«)у(лхл) __ p(mxni где L) и V — невырожденные унимодулярные матрицы. 368
Доказательство. Для доказательства используем введенные выше матрицы транспозиций и вычитаний. Определим две матрицы Up Vt так, чтобы а1 0(1Х(п—1)) UtAV: g(m— 1)Х1 д(т—l)X(n—1) (8) Для этого выполним следующие операции. 1. Соответствующей перестановкой строк и столбцов переводим наименьший по модулю элемент матрицы А в позицию (1,1). Пусть этим элементом оказался а// — = Хх. Такую перестановку можно выполнить путем последовательного умножения матрицы А слева на матрицу транспозиций а затем справа на матрицу транспо- зиций р|9. В результате элемент ад = Z, окажется на позиции (1,1). 2. Затем, используя соответствующие матрицы U и V, заменим каждый элемент первой строки и первого столбца остатками рц, определяемыми следующим образом: Рц = аЦ ~ (9) Рц = an— <Хлх1- (*°) где ах/ = ; а/, — , знаком [х] — обозначена целая часть х. l J L J Этого можно добиться умножением матрицы А справа на матрицы [V(/ a J для / таких, что ад/ 0, а слева — на матрицы [Uila ] для i таких, что ац 0. Если все остатки ад/ и р/х равны 0, то мы пришли к матрице Dx. В противном слу- чае к полученной матрице вновь применим преобразования, аналогичные (9) и (10), выбирая в качестве Х, минимальный по абсолютной величине ненулевой элемент первой строки и первого столбца. Так как на каждом шаге выбираемый элемент умень- шается по абсолютной величине, то за конечное число шагов мы обязательно придем к матрице D, вида (8). 1 3. Если д(т— 1)х(л—1) = о, то на этом конец и U = U,, а V = Vx — искомые матрицы приведения. Если же A 1) о> то над матрицей Ах выполняют те же операции 1 и 2 для получения формы D2: D2 = U2D,V2 = UsUiAV^ = di 0 0 0 дрга—2)X(«—2) (П) О О О Таким образом, получаем последовательность матриц Aj, Л2, .... размерности которых постепенно уменьшаются, по крайней мере на 1. В результате мы придем к такой матрице А*, что А/г = 0. Теорема доказана. Матрица D = UAV имеет по построению ранг k . Кроме того, так как она полу- чена путем умножения матрицы А на невырожденные унимодулярные матрицы, то она имеет тот же ранг, что и матрица А, т. е. k — г. Г1 Пример. Рассмотрим матрицу А3х4 == 1 1—4 1 1—3 0 2—1 1 и приведем ее к нормальной форме Смита. Первая итерация. Минимальным по абсолютной величине ненулевым элементом является 1 в позиции (1,1). Следовательно, этап 1 преобразования выполнять не нужно. Для реализации этапа 2 построим матрицы вычитаний Ux и Vx. Матрицу Ux не- обходимо определить так, чтобы в первом столбце элементы на позициях (1,2) и (1,3) оказались нулевыми. Для этого из второй строки необходимо вычесть первую, а 24 8-3164 369
из третьей —удвоенную первую. Следовательно, матрица вычитаний 1Д должна иметь вид U = Найдем произведение UXA О О' 1 о О 1 Теперь необходимо построить матрицу вычитаний V, таким образом, чтобы все эле- менты первой строки, кромеДиагонального, стали равными нулю. Для этого необходи- мо из второго и третьего столбца вычесть первый, а из четвертого вычесть первый стол- бец, умноженный на 4. Таким образом, первая строка матрицы Vj должна иметь вид [1 —1 —1 4], а остальные строки образуют единичную матрицу. Тогда Г1 1 1—41 Г1 UiAV, = 0 0 0 7 X 0 0 2 0 7 0 — 1 — 1 4' 1 0 0 0 1 0 = '1 0 0 О' 0 0 0 —7 0—20—7 Итак, мы получили Dx = U/AV,, имеющую вид Di = '1 О О О О' О 7 О 7 Г1 1° (12) Так как Aj Ф 0, то необходимо выполнить аналогичные преобразования над матрицей Ах. Вторая итерация. Первый шаг. 1. Находим в матрице А, отличный от ну- ля, минимальный по модулю элемент. Им оказался элемент (3, 2), равный — 2. Его необходимо перевести на главную диагональ (на поз. (2, 2), для чего строки 3 и 2 не- 2. Теперь матрицу P23Dj необходимо преобразовать таким образом, чтобы во всех позициях второй строки и второго столбца, кроме диагональной, стояли нули. Заметим, что второй столбец уже приведен к требуемому виду. Для того, чтобы при- вести вторую строку к такому же виду, необходимо произвести умножение справа 3. Так как в матрице PggDjVj во второй строке еще не все недиагональные эле- менты равны рулю, то необходимо повторить этапы 1—2, Переходим ко второму шагу. О ° 1 370
Второй шаг. 1. Находим минимальный элемент во второй строке, он нахо- дится в поз. (2,4). Чтобы привести его в позицию (2,2), необходимо поменять местами й столбец к требуемому виду, чтобы все 2. и Наконец, необходимо перевести элемент 14 на главную диагональ, для чего требуется поменять местами 3-й и 4-й столбцы. С этой целью умножим матрицу D2 справа на матрицу перестановок Р34 и получим "10 0 0 1 0 ООО 0 0 0~1 1 0 0 0 0 1 0 1 0 Как видим, матрица А приведена к нормальной форме Смита. Выпишем теперь все унимодулярные матрицы, которыми мы пользовались в процессе преобразований: D = D2P34 = U2D1 V3P34 = U2P23D1V3P24V3P34 = L'2P23U1AV1V2P24V3P34. (12) Таким образом, искомые матрицы преобразований равны U = U2P23Uf, V = = V,V2P24V3P,4, их нетрудно найти путем последовательного перемножения найден- ных составляющих матриц. Приведенная форма Смита целочисленной матрицы Нормальная форма Смита D, получаемая преобразованиями, указанными выше, не является единственной, она зависит от используемых матриц II и V и от выбора минимального по абсолютной величине ненулевого элемента матрицы А. В случае, когда в матрице имеется несколько минимальных ненулевых элементов, этот выбор осуществляется произвольным образом и потому эта матрица D будет иметь различ- ный вид. Однако существует некоторая нормальная форма Смита специального вида, которая оказывается единственной для всякой матрицы А. Теорема. Для любой матрицы A(mXm), элементами которой являются целые числа и ранг равен г, существуют две невырожденные унимодулярные матрицы jj(mxm) и ^(тхт) с целочисленными элементами, которые дают приведенную форму Смита UAV =Д, (13) 24* 371
где 0 0 62 • 0 • • • • 0 0 0 0 • • 9 • • • 0 “ 0 r Д = 0 0 0 0 • • • 5, 0 0 0 « • t • • » 0 0 (14) 0 0 . .. 0 0 . . . 0 tn — r г п — г и 6, является делителем i = 1, 2, г — 1. Матрица Д называется приведенной формой Смита матрицы А.'Это матрица единственная. Числа 6/, i = 1, г называют элементарными делителями матрицы А. Доказательство. Предположим, что получена нормальная форма Сми- та D(mXn>. Покажем, как получить из нее приведенную форму д<тхл)_ Пусть di, i = 1, 2, ..., г, —ненулевые элементы матрицы D. Рассмотрим пару (dk, d/) из множества пар чисел d[. Предположим, что k < I. Тогда | dk | | di |. Обозначим через НОД (dk, di) — наибольший общий делитель для значений | dk |, | di НОК (dk, di) — наименьшее общее кратное величин | dk |, | dz |. Воспользуемся известной теоремой Безу из арифметики [32]. Пусть а и Ъ — два целых числа. Тогда всегда существуют два целых числа К и ц, таких, что ia р& = НОД (а, Ь). (15) Например, если а = 35, Ь = 14, то НОД (35,14) = 7, и тогда 1 • 35 + (—2) 14=7. Опираясь на эту теорему, можно построить две матрицы и ц(«хл)> такие> что Q(mXm)p(mxn)pj(«xn) __ д(тхп) где Д — является приведенной формой Смита. Рассмотрим пару (dk, di) и построим невырожденную унимодулярную матрицу КОТОрая задается следующим образом: = an __ jidi . hdfe 8lk НОД№, dz) ; 811 = -НОД№, d/) • где Л. и [i — числа Безу, определяемые в соответствии с (15), g(;- = 0, i Ф j, i k, j Ф= I, i, / = 1, 2, . . . , m, Sa = 1" >-^k, i =4 I, i = 1, 2, . . . , m. Заметим, что Skk Ski____ _ 'kdk-i-^di _ Sik Su J “ 8kk8‘l ~ 8klglk ~ НОД (dk, di ~ • Следовательно, матрица G является унимодулярной. Аналогичным образом построим невырожденную унимодулярную матрицу Н(ЛХп), для которой hkk = ^ hkl = — НОд (dl) ; hik = W’ hn = нод (18) тогда как htj = 0, i j, i k, j ф I, i, j = 1, 2, ..., n, ha = 1, i k, i I, i, j = = 1, 2, n. 372
Используя (15), получим, что ^kk ^kl , , , , Мк 4- [id[ hlk hu J " hkkhu ~ hlkhkl " НОД(4, • (19) Таким образом, матрица H также является невырожденной унимодулярной матри- цей с определителем, равным 1. Рассмотрим теперь матрицы, образованные строками и столбцами, в которых имеются элементы dk и di, для них можно записать: Skk вы] [dk 9 1 Rfcfe ^kl X X glk 8ll_ .9 di ~ hlk htl &kkhkkdk + 8klhikdl Sikhkkdk + &uhikdi Skkhkldk + &klhlldl &lkhkldk + Snhudi _ (20) Подставляя (17) и (18) в (20), получим ~Mk + ц4 0 Midi + p.dkdl [НОД (4-4)? (21) ’0 Элемент в позиции (1,1) матрицы (21) есть НОД чисел dk и 4 Рассмотрим теперь элемент в позиции (2,2). По хорошо известной теореме арифметики НОД (a, b) х НОК (а, b) = ab. (22) Следовательно, можно записать Mldj + Mfe^z _ Mk + dkdi _ [НОД (4, 4)? НОД (dk, di) НОД (4, di) 11- Следовательно матрица (21) запишется в виде gkk SkC\ [dk 0 1 (hi;k hkl X X glk 4zJ [° [hik hn. ГНОД (4, dt) 0 0 HOK (4, di) Таким образом, преобразование, определяемое умножением слева на матрицу G, а спра- ва на матрицу Н, элементы которых задаются соотношениями (17) и (18), приводит к замене в матрице D элемента 4 на a di на б/, где 6k = НОД (4, 4); 6z = НОК (4, dt). (23'1 С помощью этого преобразования элементы 4, 4, 4 в матрице D можно посте- пенно заменить элементами б1г 62, ..., 8Г, для которых будет выполняться условие: 6, является делителем для всех i= 1, г— 1. Замечания. 1. Так как оба определителя матриц G и Н равны 1, то исходя из (16), получим, что det А = det D. 2. Из соотношения (23) следует, что если все элементы dt i — 1, 2, .... г матрицы D взаимно простые, то метод получения приведенной формы Смита дает 4 = 6, = • • • = 6r_j = 1, ёг = det D. 373
Приложение 3 Элементарные понятия теории групп Для исследования и анализа алгоритмов целочисленного программирования нам потребуется ряд элементарных понятий теорий групп, которые вводятся ниже. 1. Пусть имеется конечное множество Е, на котором введена операция *, ко торая каждой паре элементов (х, у) £ Е ставит в соответствие г £ Е. Эту операцию называют внутренней. Определение 1. Внутренняя, операция называется замкнутой, если каждой паре (х, у ) £ Е X Е ставится один и только один элемент г Р Е, т. е. х * * У = z. Определенней. Множество Е с определенной на нем внутренней операци- ей * имеет единицу, если в нем существует такой элемент е, что V а££:е*а — а*е=а. Определение 3. Внутренняя операция * на множестве Еассоциативна, если Xf а, Ь, с £ Е, а * (Ь * с) = (а* Ь) * с. Определение 4. Если на множестве Е с внутренней операцией * имеется единица е и для каждого а £ Е существует один и только один элемент b £ Е, такой, что a*b~b*a = e, то элемент b называют обратным к а. Его обозначают через а-"1. Определен и е 5. Внутренняя операция *, определенная на множестве Е, называется коммутативной, или абелевой, если V (а, b) £ Е X Е t а * 6 = Ь * а. Определение 6. Множество Е, на котором операция * задана всюду, называется группоидом. Определение 7. Группоид, в котором имеется единица, называют модулем. Определение 8. Модуль, в котором внутренняя операция * ассоциативна и для каждого его элемента содержится обратный к нему, называется группой. Определение 9. Группа, удовлетворяющая свойству коммутативности, называется абелевой. Таким образом группа — это множество (конечное или бесконечное) с определен- ной на нем внутренней операцией *, обладающее свойствами замкнутости, ассоциа- тивности, наличием единицы и обратного элемента для каждого элемента множества. Среди модулей и групп мы будем рассматривать те, которые связаны с множества- ми действительных чисел и внутренними операциями*, представляющими собой сложение по модулю п. Рассмотрим множество относительных целых чисел Z = {, . . . , — 3, — 2, — 1, 0, 1, 2, . , .}. Пусть «£N0; r£N; a, b, q, q' £ Z, где No = [0, 1, N = [1, 2, Два числа называют сравнимыми, или «.конгруентными» по модулю п, если их раз- ность при делении на п равна нулю (или же если каждое из них при делении на п дает один и тот же остаток). Пусть а = nq + г, b = nq' + г, тогда а— b = п (q — q'), Конгруентность чисел а и Ь будем записывать так: a cab (mod n). (1) Все числа вида а -£ kn, где a, k £ Z, п £ No, относятся к одному и тому же клас- су, называемому классом вычетов по модулю п. 374
Существует, таким образом, и классов множеств частных типа Z/R, для которых рассматриваемое отношение— сравнение по модулю п обозначается через Z/n Таким образом ай = 0 (mod п) — 1 (mod re) аг = 2 (mod re) an_} — n — 1 (mod re) Множество частных Zin содержит re элементов, каждый из которых представляет со- бой множество всех элементов, входящих в соответствующий класс эквивалентности. В качестве примера рассмотрим случай я = 7, приведенный в следующей таблице Таблица 1 а 0 1 2 3 .4 5 6 k ~ —2 -14 —13 —12 —и —10 —9 —8 £ = —1 —7 —6 —5 —4 —3 —2 —1 k = 0 0 1 2 3 4 5 6 k = 1 7 8 9 10 и 12 13 k = 2 14 15 16 17 18 19 20 .... Каждый столбец таблицы представляет собой соответствующий класс эквивалент- ности (множество конгруентных чисел по модулю ге), его обозначение, которое приво- дится в заголовке соответствующего столбца, является произвольным. Классы эквивалентности с определенной на них операцией сложения по модулю п образуют коммутативную группу. В качестве примера рассмотрим группы для п = 1, 2, 3, 4. Представителя каждого класса будем обозначать числом, заключенным в фигурные скобки. Таблица 2 {0} {0} {0} Таблица 3 х. (0) {1} (0) {0} {11 {1} {1} {0} 375
Таблица 4 \.77 (0) {1} {2) {0} {0} {1} {2} (1) {1} {2| . {0} {2} {2} {0) {1} Таблица 5 {0} {1} (2}. {3} {0} {0} {1} {2} {3} {1! {1! {2} (3) {0! (2} (2} {3} {0} {1} {3) {3} {0} {Ц {2} Циклическая группа. Циклической группой порядка п называется группа (Е *), в которой все элементы х £ Е могут быть получены следующим образом: Xi = О х2 = а * Xi = а xs-a*x1=ata хп_\ — а* хп_2 = а* а« • • • * а хп — а* хга_| = а * а * • • * а (2) п xn+i — а*хп=а Число а называется порождающим элементом группы, 0 —• является ее единицей. Таблица 6 xi X. 0 1/6 2/6 3/6 4/6 5/6 0 0 1/6 2/6 3/6 4/6 5/6 1/6 1/6 2/6 3/6 4/6 5/6 0 2/6 2/6 3/6 4/6 5/6 0 1/6 3/6 3/6 4/6 5/6 0 1/6 2/6 4/6 4/6 5/6 0 1/6 2/6 3/6 5/6 5/6 0 1/6 2/6 3/6 4/6 376
Пример. Рассмотрим пример циклической группы, в которой порождающий эле- мент а = Операция * есть сложение по модулю 1. Соответствующие результаты приводятся в табл. 6, ее произвольный элемент (i, f) определяется из условия: xif = xi * Xi — (Xj xj) mod n. Все циклические группы являются коммутативными, или абелевыми, поскольку для них всегда выполняются равенства xi 4- xj = xi 4- xi (mod n). Полученные результаты для классов эквивалентности по модулю п на множестве целых чисел 7. легко распространяются на множество вещественных чисел /?. Два числа а и b (a, b f R) сравнимы по модулю п, т. е. а b (mod п), если а и Ь дают при делении на п один и тот же остаток. Так, например, — 2,35 ~ 0,35 1,65 ~ 3,65 ... (mod 2) — 1,42 с-—0,42 о-0,58 1,58 ... (modi). Приложение 4 Теорема об отделимости выпуклого множества (конечно-мерная теорема Хана- Банаха). Пусть А — непустое выпуклое множество в Rf-n\ не содержащее начала. Тогда существует гиперплоскость, определяемая уравнением сгх = 0, такая, что при х f А сгх > 0. Если при этом множество А — замкнуто, то найдется такое в > 0, что с7х > е при всех х f А. Данная теорема утверждает, что любое выпуклое множество А может быть отде- лено некоторой гиперплоскостью от остальной части пространства Важную роль в теории выпуклого программирования играет следующая теорема Фана. Т е о р е м а. Пусть В — непустое выпуклое множество в П'п’, fi (х), i = 1, т— выпуклые функции в Если система уравнений /г(х)^0; <= 1, т, (<•>) й/(х) = 0: /=1~ (4.2) не имеет решений на множестве В, то существуют такие неотрицательные > 0, i — 1, т и р/, /' = 1, k, что У Mi (х) + У, ц/й; (х) > 0 при всех х £ В, (4.3) i i причем все А/ и р/ не обращаются в нуль одновременно. Доказательство. Введем следующее множество V (х): V (х) = {(у, z) t fi (х) < yt, i = 1, т, hj (х) = г/, / = 1, k}. Это множество не пусто, причем, по предположению, множество V (х) не содержит на- чала (так как система (4.1)—(4.2)— несовместна). Покажем, что множество V — — U (х) — выпукло. X Действительно, пусть (у,, zj £ V (хг) и (у3, z2) f V (х2). Тогда (Xyj + (1 — Л) у2) > М (х,) 4- (1 — Л) f (х2) 1 (Лац 4- (1 — А.) х2), 0< А < 1. 25 8-3164 377
Кроме того, &z-£ + (I — X) z2 = Xh (xj) -f- (I —• X) h (x2) = h (Xx^ -f- (1 —- X) x2), где f (x) = [/j (x), f2 (x), .... fm (x)]7, h (x) = [/ij (x), h2 (x)...hk (x)]r. Следовательно, А. (У1> zi) + (1 — ^) (У2> z2) 6 v <^xi + (1 — %) x2) при 0 < A, < 1, (4.4) и множество V — выпукло. В силу теоремы отделимости существуют такие Аир, не равные нулю, одновре- менно, что >/у + цтг Js 0 при всех (у, z) £ V. (4.5) Но так как yi, i— 1, m, могут быть выбраны произвольно большими, то для выполне- ния (4.5) должно быть X/ > 0. Пусть в— произвольный положительный скаляр, и пусть у = f( х) + g • 1, z = h (х) при х £ В, (4.6) где 1=[1, 1,...,1]г. Тогда (у, z) £ V (х) и, подставляя (4.6) в (4.5), получим ?Л (х) + jxrh (х) + ёКтТ > 0 при х £ В. (4.7) Так как е произвольно, то устремляя его к нулю, получим (х) + (х) > 0 для всех х £ В. (4.8) Теорема доказана. Следствие. Пусть В и f (х) определяются условиями теоремы Фана. Пусть gj (х), j — 1, Z,— выпуклые функции на множестве В. Если система f (х) < 0, g (х) <0, h (х) = 0 не имеет решения при х £ В, где g (х) = [g, (х), .... gi (х) ]г, то существуют такие векторы X jsO, v > Оиух£ R^, не равные нулю, одновременно, при которых X/f (x)+v7'g(x)+ft7’h (х) = (х) + £ vjS, (х) + J] pshs (х) > 0 (=1 ,=1 i=i при всех х £ В. Данное следствие используется при доказательстве теоремы Куна — Таккера. Приложение 5 • Элементы теории двойственности геометрического программирования Рассмотрим некоторые важные результаты теории двойственности геометриче- ского программирования, позволяющие разрабатывать методы решения задач. Резуль- таты опираются на обобщение классического неравенства для среднего арифметиче- ского и геометрического и используют идеи выпуклого программирования. Сформулируем геометрическое неравенство, которое является ключом к доказа тельству основной леммы геометрического программирования. Это неравенство устанавливается в следующей теореме. Теорема 1. Пусть х— произвольный вектор с п компонентами, ад — произвольный вектор с п неотрицательными компонентами. Эти два вектора удовлет- 378
воряют геометрическому неравенству: Ё < S 6/ In S +S 6,1ns,--£ S, In £ 6, , (5.1) t=4 \i=l / v=l / i=4 t=l V=1 / где предполагается, что 6 In 6 = 0, когда 6 = 0. При этом неравенство становится ра- венством тогда и только тогда, когда существует такое неотрицательное число В, что 6, = Se\ <= 1, 2, .... га. Доказательство. Доказательство обобщенного геометрического нера- венства (5.1) базируется на том факте, что показательная функция еЛ— выпукла. Так, ег -|- (х— г) ег < ех для произвольных вещественных чисел х и г, так как пря- мая, касательная к экспоненте ех в точке z, лежит строго ниже этой кривой. Причем это неравенство становится равенством тогда и только тогда, когда х — г. Полагая у = ег, получим, что у (х — In у) у < ех для любого х и любого по- ложительного у, причем равенство достигается тогда, когда х = In у. Таким образом, /2/2 П S + S “1п < S eXi 1=1 t=l ! = 1 для любого вектора х — (Xj, х2, , хп) и любого положительного вектора у= (yit ... ..., рп), причем строгое равенство имеет место лишь в случае, когда х,= In р,, i = 1, га. Выбирая произвольный, но фиксированный положительный вектор, мы заключа- ем, что S 0sz + S -1п 0S*)0S' S <5-2) 6=1 1=1 1=1 для произвольного х и положительного 9. При этом равенство в (5.2) будет иметь мес- то тогда и только тогда, когда где Xi = In 06,, i = 1, 2, . . . , га. Преобразуя левую часть неравенства (5.2), находим, что f (0) < £ 6=1 f(0) = n £ Sz (1 + Xi -In Sz) ,i=i 01n0 и 0 > 0. Дифференцируя соотношение (5.5) по 0, получим f (0) = S бг<Хг ~ 1пб‘)~(2 S()1п0 (=1 \1=1 / (5.3) (5.4) (5.5) (5.6) f" (0) = - (5-7) Из (5.7) следует, что f (9) строго вогнута для 0 > 0, так как /" (0) < 0. Поэтому из (5.6) вытекает, что f (0) имеет единственную точку максимума 6', которая опреде- ляется соотношением У, S, (Xi — In 6,) (5.8) 379
Подставляя значение 0' в (5.5) и используя (5.4), получим, что (п \ п 2 ё£ 0' < £ Л 4=1 / z=i Тогда из (5.8) следует, что In | У, 6Z) + In 9' < In ( V , или '<=1 ' \ i / у 8iXi Szjlnfy е^)+У 6zln6z-(y 6Z) In ( £ б() j=i \z=i У \ I / t=i \z=i У \а=1 у для произвольного х и положительного 6. Согласно соотношениям (5.3) и (5.8), это неравенство становится равенством тогда и только тогда, когда У 6/ (Х/ — In 6/) Xt = In 6Z 4-—---------------- , i = 1, п (5.9) SS/ 1=1 или (что эквивалентно), когда xz = In б,—In В, где В > 0. Итак, теорема 1 доказана в случае, когда все компоненты 6 — положительны. Если же все компоненты 6 — нули, то геометрическое неравенство также удовлетво- ряется, т. е. обе его части равны 0. Геометрическое неравенство (5.1) эквивалентно простому обобщению классиче- ского неравенства для среднего арифметического и геометрического. Это можно по- казать, выбрав вектор 6, компоненты которого удовлетворяют условию нормализа- ции Уб(- = 1. (5.10) 1=1 В этом случае геометрическое неравенство принимает следующий вид: У 8t (xt — In 6Z) < In ( У exi), (5.11) 1=1 \i=i у так как x произволен, a 6/ — положительны, то можно выбрать xi = In (8iTi), 1=1, п. (5.12) Тогда из (5.11) следует, что У 6Z In < In (У 6Z7'Z\ (5.13) i=l \4=1 ) Поскольку показательная функция является монотонно возрастающей, из не- равенства (5.13) следует, что П Т6‘ < у 6ZTZ. (5.14) fc=l 4=1 Неравенство (5.14) является классическим геометрическим неравенством, оно спра- ведливо для любых Т[ > 0, 1 = 1, п, и положительных 6Z, удовлетворяющих условию п нормализации у 6Z = 1. Левая часть (5.14) представляет собой средневзвешенное 1=1 геометрическое, а правая — средневзвешенное арифметическое для положительных чисел Ti, i = 1, п. Неравенство (5.14) становится строгим равенством тогда и только тогда, когда для всех i = I, п Tt — Т. 380
Используем геометрическое неравенство для доказательства основной леммы ге- ометрического программирования. Она заключается в следующем. Лемма. Если t удовлетворяет ограничениям прямой задачи А, а 6 удовлетворяет ограничениям соответствующей двойственной задачи В, то go (t) > v (6). Кроме того, при тех же условиях go (t) = v (6) тогда и только тогда, когда An АН Aim ‘1 2 ''' m , i £ 1 [0], go 0) MW ••• %m, k=l?7 (5.15) Здесь go (t) и v (6) — целевые функции прямой и двойственной задач, задаваемые со- отношениями (6.19) и (6.24) главы 5 соответственно. Доказательство. Так как все члены щ (t) позинома gk (t) положитель- ны, то можно задать xi—lnui(t), i£/[k]. Применив геометрическое неравенство, получим / J] 6А In gk (t) > 6г f In щ (t) — In (6/)) + Г 6Д In 6A (5.16) V'G/[A] / ‘6ВД I / П6ВД J I i } Нетрудно показать, что это неравенство эквивалентно неравенству П f'k(»>’“*'. <»..т> где м«) = Е В частности, &>(*)> П (ДД-V <5Л8> ' О/ / /e/га поскольку 6 удовлетворяет условию нормализации Хо (6) = 1. Из неравенства (5.17) также следует, что 1 > gk (t)X*<e> & ( П (-иД-Г) • М»)Мв). k = 1, . . . , р, (5.19) поскольку t удовлетворяет ограничениям gk (t) < 1. Умножая неравенство (5.18) на произведение неравенств (5.19), получим Учитывая, что щ (t) является t-м членом прямой задачи А, щ = cit^‘1t2i2 ... ... /^m, и подставляя его выражение в (5.18), будем иметь: 2 an&t 2 atm6i g0 (t) > о (в) Так как вектор 6 удовлетворяет условиям ортогональности, то последнее неравен- ство сводится к (5.21): go(‘)>^(6)- (6.21) Итак, первая часть леммы доказана. 381
Перейдем к доказательству второй части леммы. Допустим, что go (t) = v (б), где t и б удовлетворяют соответственно ограничениям прямой и двойственной задач. Тогда неравенство (5.18) и все неравенства (5.19) должны быть равенствами. Поэтому k=l,2,...,p . (5.22) и в соответствии со вторым утверждением теоремы существуют такие неотрицатель- ные числа Bfc, k = 0, 1, . . . s р, что fiz = S^(t), (£/[&], k = 0, 1, ...,р, (5.23) Суммируя (5.23) по 1 [й], получим Ы«) = Bkgk(t), k = O,l,...,p, (5.24) Рассмотрим теперь соотношение (5.24) для случая, когда k =f= 0. Если Bk — 0, то из (5.24) следует, что Л* (б) = 0 и 6/ = 0 для всех i f I [й]. Следовательно, в этом случае соотношения (5.15) удовлетворяются. Если же В* ^0, той и потому, как следует из (5.22), gk (t)= 1. Но тогда в силу равенства (5.24) Bk = ^k (&)i и потому = h (6) • Щ (t) = Kk (6) cfl'#2 . . . t^n. Следовательно, соотношения (5.15) справедливы. Таким образом, мы показали, что если go (t) = v (б), то соотношения (5.15) выполняются. Теперь допустим, что t и б дополнительно к ограничениям прямой и двойственной задач удовлетворяют и соотношениям (5.15). Тогда из второго утверждения теоремы 1 следует, что неравенство (5.17) становится равенством, а кроме того, все неравенства в соотношении (5.19) также представляют собой равенства. Действительно, если /k (6) = 0, то и б/ = 0 для всех i f / [й], и потому оба неравенства (5.17) — (5.18) становятся равенствами. Поэтому рассмотрим случай, когда (б) 0. Тогда из (5.15) следует, что gk (t) = = 1, это обстоятельство вместе со вторым утверждением теоремы 1 дает основания для вывода, что все неравенства (5.17) и (5.18) будут равенствами. Поэтому g0 (t) = v (6). На этом доказательство геометрической леммы завершается. Основная лемма ГП показывает, что условный минимум прямой функции go (t) больше или равен условному максимуму двойственной задачи v (б). Чтобы показать, что эти величины фактически равны, необходимо показать, что существуют такие век- торы t и б, которые удовлетворяют как соотношениям (5.15), так и ограничениям пря- мой и двойственной задачи соответственно. Это устанавливается в следующей основной теореме геометрического программи- рования, связывающей оптимальные решения пары двойственных задач. Теорема 2. Пусть прямая задача А совместна, и существует решение t*, та- кое, что gk (t*) < 1, й = 1, р и существует оптимальное решение. Тогда: 1) соответствующая двойственная задача совместна и существует точка, удов- летворяющая двойственным ограничениям, в которой достигается условный максимум двойственной функции v (б); 2) максимальное значение целевой функции двойственной задачи равно минималь- ному значению целевой функции прямой задачи; 3) если 1* — минимизирующая точка прямой задачи А, то существуют неотрица- тельные множители Лагранжа u. k = 1, р, такие, что функция Лагранжа р L (ts g) = g0 (t) + (t) - U (5.25) k=\ обладает тем свойством, что L (t*, g) < L (t*, g*) = g0 (t*) < L (t, g*), (5.26) 382
для произвольных tj > 0 и произвольных р/г > 0. Кроме того, существует максими- зирующий вектор 6* двойственной задачи с компонентами, определяемыми из усло- вий S; = " Лоа)—’ г'е/[0]’ I. г taim Pkcih '2 • • • '•т (5.27) где t = t*, ц = p*. Далее go(t) , ( / [&]i k = 1, P, * g0(t*) ’ 4) Если ё*— максимизирующая точка двойственной задачи В, то любая миними- зирующая точка t* прямой задачи А удовлетворяет системе уравнений M»*) = (5.28) „Л1А2 Aim _ б>(б*), /е/р], 5? _ .. (5.29) где k пробегает все положительные целочисленные значения, для которых Xj. (6*) > 0. Доказательство. Для доказательства перейдем к преобразованной пря- мой задаче Д2. .. ' . 2 dii г/ Как известно, показательная функция щ = е j является выпуклой на всем пространстве Ет. Отсюда следует, что при положительных ci функция вида т 2 aiF! g (z) = J] выпукла, как положительная линейная комбинация выпуклых функций. Аналогичным ^akpj образом, область, определяемая неравенством g/t (z) = су?/ < 1 будет выпук- лой. Поэтому преобразованная прямая задача Аг выпукла, что позволяет применить к задаче Az теорему Куна — Таккера. Допустим теперь, что прямая задача А совместна и существует минимизирующая точка t*, которая удовлетворяет ограничениям прямой задачи. Тогда и преобразован- ная задача Az совместна и преобразованная прямая функция g0 (z) имеет точку минимума г*, где г* = 1п / = 1, т и gft(z) < 1, k = 1, р. Применяя теорему Куна—Таккера,убеждаемся, что существуют неотрицательные множители Лагранжа ц;,, k = 1, р, такие, что функция Лагранжа р L (z, р) = g0 (z) + J] Pfe (gk (z) — 1) fe=l обладает свойством: L (z*. р) < g0 (z*) = L (z*, p*) < L (z, p*) ДЛЯ произвольного Z И произвольных Р/г 0. Таким образом, z* является точкой безусловного минимума, и тогда dL (z*, р») ---- -----=0, <7=1, т. dzq (5.30) (5.31) 383
Отсюда следует, что Р . _______ X atq^' + S М 3 a<vc‘e' ) = °, q = 1. rn. (5.32) <6Д0! fe=l \Z£/[*I / Разделив эти уравнения на go (z*), убеждаемся в том, что вектор 6* с компонентами ( т * I 2 aHz, л 4® = I So (Z*) (б / [0], (5.33) go (z*) . it ИЦ, удовлетворяет условиям ортогональности для двойственной задачи. Из соотношения (5.33) также ясно, что 6* удовлетворяет и условиям неотрица- тельности, так как все is 0. Таким образом, двойственная задача В совместна. Используя (5.33), мы получаем, что , k = 1, 2, . . . , р. (5.34) ёо И ) Далее из равенства g0 (z*) = L (z*, ц*) следует, что (g/; (z*) — 1) = О, поэтому ц* Ыб*) = —(5.35) 60 ) Поэтому соотношения (5.33) могут быть записаны в виде g* = go (Z*) т s V,- _____ М6*),й-е'=1 , i£/[k], k=\,p. (5.36) Используя (5.29), перепишем соотношения (5.35) в терминах переменных t*, тогда на основании второго утверждения основной леммы мы заключаем, что go (t*) = = v (6*). Итак, мы доказали первые три утверждения основной теоремы геометрического программирования. Перейдем к доказательству четвертого утверждения. Допустим, что t* является минимизирующей точкой прямой задачи А, а 6* — максимизирующей точкой соответствующей двойственной задачи В. Тогда в соответ- ствии с только что доказанным go (t*) = v (6*). Используя второе утверждение основ- ной леммы, заключаем, что t* и 6* удовлетворяют соотношениям (5.29) и, следователь- но, соотношению 6zp(6), f£/[0], . falm clh Ъ • • • {т (5.37) где k принимает такие положительные целые значения, при которых Л& (6) > 0. На этом доказательство основной теоремы закончено. Основная теорема позволяет найти оптимальное решение 6* двойственной задачи по известному оптимальному решению прямой 1* и наоборот, для этого используют соотношения (5.27) и (5.37).
СПИСОК ЛИТЕРАТУРЫ 1. А к о ф Р., С а с и е н и М. Основы исследования операций. М. Мир, 1971. 2. А к о ф Р., Р а й в е т П. Исследования операций. М., Мир, 1966. 3. Аоки Macao. Введение в методы оптимизации. Основы и приложения. Пер. с англ. М., 1977. 4. Веллман Р. Динамическое программирование. Изд-во иностранной литера- туры, 1960. 5. Б е л л м а н Р., Дрейфус С. Прикладные задачи динамического програм- мирования. М., Наука, 1965. 6. Веллман Р., Кал аба Р. Динамическое программирование и современная теория управления. М., Наука, 1969. 7. Б у с л е н к о Н. П. Моделирование сложных систем. М., Наука, 1968. 8. Бусленко Н. П., Коваленко И. Н., Калашников В. В. Лекции по теории сложных систем. М., Советское радио, 1973. 9. В а г н е р Г. Основы исследования операций, т..1. М., Мир, 1972; т. 2—3. М., 1973. 10. В е н т ц е л ь Е. С. Исследование операций. М., Советское радио, 1972. 11. Вентцел ь Е. С. Элементы динамического программирования. М., Наука, 1964. 12. В о л к о в и ч В. Л. Методы принятия решений по множеству критериев опти- мальности (обзор). Труды семинара. Сложные системы. Вып. 1. К., Наукова дум- ка, 1968. 13. Вопросы анализа и процедуры принятия решений. Сб. переводов. М., Мир, 1976. 14. Г е р м е й е р Ю. Б. Введение в теорию исследования операций. М., Наука, 1971. 15. Гермейер Ю. Б. О свертывании векторных критериев эффективности в еди- ный критерий при наличии неопределенности в параметрах свертывания.— В кн.: . Кибернетику — на службу коммунизму. М., Энергия, 1971. 16. Г и д р о в и ч С. Р., С ы р о е ж и н И. М. Игровое моделирование экономи- ческих процессов (деловые игры)/ М., Экономика, 1976. 17. Г о л ь ш т е й н Е. Г. Теория двойственности в математическом программиро- вании и ее приложения. М., Наука, 1971. 18. Г о л ь ш т е й н Е. Г., Юдин Д. Б. Новые направления в линейном про- граммировании. М., Наука, 1966. 19. Д а ф ф и н Р., П и т е р с о н Э., 3 е н е р К. Геометрическое программиро- вание. М., Мир, 1972. 20. Е мел ь я нов С. В., Дудин Е. Б., Ларичев О. П., Мале- вич А А., Наппельбаум Э. П., Озерной В. М. Подготовка и 385
принятие решений в организационных системах управления.— В кн.: Итоги науки, серия Техническая кибернетика, 1969. 21. Ермольев Ю. М. Методы решения нелинейных экстремальных задач.— Кибернетика, № 4, 1966. 22. Е р м о л ь е в Ю. М. Методы стохастического программирования. Наука, Главная редакция физ.-мат. литературы. М., 1976. 23. 3 у х о в и ц к и й С. И., Авдеева Л. И. Линейное и выпуклое програм- мирование. М., Наука, 1966. 24. К а р р Ч., Хоув Ч. Количественные методы принятия решений в управ- лении и экономике. М., Мир, 1966. 25. Карпелевич Ф. И., Садовский Л. Е. Элементы линейной алгебры и линейного программирования. М., Наука, 1967. 26. К а л и х м а н И. Л. Сборник задач по линейной алгебре и линейному про- граммированию. М., Высшая школа, 1969. 27. Конвей Р. В., Максвелл В. Л., Миллер Л. В. Теория расписаний. Пер. с англ. М., Наука, 1975. 28. Корбут А. А., Финкельштейн Ю. Ю. Дискретное программирова- ние. М., Наука, 1970. 29. К о ф м а н А. Методы и модели исследования операций. М., Мир, 1966. 30. К о ф м а н А., К р ю о н Р. Массовое обслуживание. Теория и приложения. М., Мир, 1965. 31. Ко фм а нА., Ф о р Р. Займемся исследованием операций. М., Мир, 1965. 32. КофманА., Анри-ЛабордерА. Методы и модели исследования опе- раций. Пер. с франц./Под ред. Н. П. Бусленко. М., Мир, 1977. 33. Л э с д о н Л. Оптимизация больших систем. Главная редакция физ.-мат. лите- ратуры изд-ва «Наука». М., 1975. 34. М о р з Ф. М., К и м б е л Д. Е. Методы исследования операций. М., Советское радио, 1956. 35. Нейман Д ж., Моргенштерн О. Теория игр и экономическое поведе- ние. М., Наука, 1970. 36. О з е р н о й В. М. Принятие решений (обзор).—• Автоматика и телемеханика, № 11, 1971. 37. Опт н е р С. Л. Системный анализ для решения деловых и промышленных проблем. М., Советское радио, 1969. 38. Растригин Л. А. Статистические методы поиска. М., Наука, 1968. 39. Рыжиков Ю. И. Управление запасами. М., Наука, 1969. 40. С а а т и Т. Элементы теории массового обслуживания и ее приложения. М., Советское радио, 1971. 41. С а а т и Т. Целочисленные методы оптимизации и связанные с ними экстремаль- ные проблемы. М., Мир, 1973. 42. Финкельштейн Ю. Ю. Приближенные методы и прикладные задачи дис- кретного программирования. М., Наука, 1976. 43. Ф и ш б е р н П. Теория полезности для принятия решений. Пер. с англ. М., Наука, 1978. 44. Форд Л., ФалкерсонД. Потоки в сетях. М., Мир, 1966. 45. Х едлиДж. Нелинейное и динамическое программирование. М., Мир, 1967. 46. Хедли Д ж., У а й т и н Т. Научное управление запасами. М., Мир, 1967. 47. X и м м е л ь б л а у Д. Прикладное нелинейное программирование. М., Мир, 1975. 386
48. X о в а р д Р. Динамическое программирование и марковские цепи. М., Совет- ское радио, 1964. 49. Ч е р ч м е и Р., А к о ф Р., А р и о ф Л. Введение в исследование операций. М., Наука, 1968. 50. Численные методы условной оптимизации/ Под ред. Ф. Гилла и У. Мюр- рея. М., Мир, 1977. 51. Чуев Ю. В., Мельников П. М., Петухов С. И., Степа- нов Г. Ф., Шор Я. Б. Основы исследования операций в военной технике. М., Советское радио, 1965. 52. Ч у е в Ю. В., С п е х о в а Г. П. Технические задачи исследования операций. М., Советское радио, 1971. 53. Ш е н н о н Р. Имитационное моделирование систем.— Искусство и нау- ка. Пер. с англ. М., Мир, 1978. 54. Ш к у р б а В. В., Под часов а Т. П., П ши чу к А. Н., Тур Л. П. Задачи календарного планирования и методы их решения. К., Наукова думка, 1966. 55. У а й л ь д Д. Дж. Методы поиска экстремума. М., Мир, 1966. 56. Э р р о у Д ж., У д з а в а Д. Исследование по линейному и нелинейному про- граммированию. М., Изд-во иностранной лит-ры, 1962. 57. Ю д и н Д. Б., Г о л ь ш т е й н Е. Г. Задачи и методы линейного программи- рования. М., Советское радио, 1964. 58. Ю д и н Д. Б., Гольштейн Е. Г. Задачи линейного программирования транспортного типа. М., Наука, 1969. 59. Ю д и н Д. Б. Математические методы управления в условиях неполной ин- формации. М„ Советское радио, 1974. 60. Я и г С. Системное управление организацией. М., Советское радио, 1972.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Абелева группа 374 Аддитивная функция 12 Аксиомы полезности 21 Асимптотический метод Гомори 234 Балансовая модель 55 Веллман принцип оптимальности 312 Блочное программирование 119 Графический метод решения ЛП-за- дач 63 Двойственность в линейном програм- мировании 86 —в нелинейном программировании 284 Данциг 65 Декомпозиция Данцига— Вульфа 119 Динамическая модель управления за- пасами 345 Динамическая модель выбора объема партии 349 Допустимое базисное решение 60 Задача выбора маршрута на сети 17 — массового обслуживания 16 — о коммивояжере 253 — о выборе траектории 252 — о назначениях (выбора) 159 — о нахождении максимального по- тока на сети 183 — определения оптимального ассор- тимента 53 — о покрытии 212 — распределения ресурсов 15 — ремонта и замены оборудования 15 — управления запасами 14 — сетевого планирования и управ- ления 16 — транспортная 134 — транспортная с ограниченными пропускными способностями 171 — транспортная на сети 190 Имитационная модель 36 Каноническая форма ЛП-задачи 57 Квадратичное программирование 286 Критерий Вальда 26 — Гурвица 26 — Лапласа 26 — Сэвиджа 26 Координирующая задача 122 Конус 364 Крайняя точка 362 Лемма основная геометрического про- граммирования 381 — о крайней точке выпуклого много- гранника 362 — Фаркаша 365 Метод венгерский 159, 163 — ветвей и границ 245 — вычеркивания 146 — для нахождения опорных планов 147 — двойственный симплекс-метод 111 — Жордана— Гаусса 68 — искусственных переменных 78 — минимального элемента 148 — множителей Лагранжа 269 — обратной матрицы 100 — отсекающих плоскостей Гомори 218 — потенциалов 150 — последовательных приближений 329 — северо-западного угла 147 — симплекс-метод 64, 72 — Форда—Фалкерсона 184 Опорный план 142 Основная теорема линейного програм- мирования 61 ---- двойственности 88 ----геометрического программиро- вания 296 Основное рекуррентное соотношение 312 Позином 297 Приведенная форма Смита 371 388
Признак оптимальности опорного плана 75 — .— псевдоплана 113 Принятие решений в условиях определенности 19 — в условиях неопределенности 25 — в условиях риска 24 Принцип рентабельности 88 Принципы разработки моделей 32 Псевдоплан 112 Разрез на сети 184 Разрешающие множители Канторовича 100 Расширенная форма ЛП-задачи 58 Теорема- Куна-Таккера 274 — Фана 377 — Форда— Фалкерсона 184 — Хана — Банаха 377 — о седловой точке 277 Условия баланса 136 — вогнутости и выпуклости 277 — дополняющей нежесткости 276 — ортогональности 296 — нормализации 296 — разрешимости транспортной за- дачи 136, 139 — регулярности 274 Чувствительность моделей задач ЛП 96 Седловая точка 277 — — условия существования 277 Системный подход 10 Сопряженный базис 112 Степень трудности 299 Циклическая группа 376 Этапы исследования операций 11
ОГЛАВЛЕНИЕ Предисловие ..... ................................................ . 3 Введение ................................................................ 7 Глава 1. Основные принципы исследования операций . .................... 11 § 1. Основные этапы операционного исследования . ....................... 11 § 2. Типичные классы задач............................................ 14 § 3. Некоторые принципы принятия решений в задачах исследования операций 18 § 4. Разработка математических моделей в задачах исследования операций 30 § 5. Имитационное моделирование систем организационного управления 36 § 6. Деловые игры как модели........................................ 50 Глава 2. Линейное программирование ..................................... 53 § 1. Постановка задачи линейного программирования и исследования ее структуры 56 § 2. Симплекс-метод .................................................... 64 § 3. Нахождение допустимых базисных решений............................. 78 § 4. Двойственная задача линейного программирования.................... 85 § 5. Метод обратной матрицы ............................................100 §6. Двойственный симплекс-метод .................................. . .. 411 § 7. Декомпозиционные*' методы решения задач линейного программирования большой размерности................................................... 119 Глава 3. Транспортная задача линейного программирования.............. . 134 § 1. Постановка и основные свойства транспортной задачи ................134 § 2. Метод потенциалов ............................................... 150 § 3. Венгерский метод .............................................. 159 § 4. Транспортные сети.................................................179 § 5. Транспортная задача в сетевой постановке...........................190 § 6. Алгоритм декомпозиции для решения транспортной задачи..............201 Глава 4. Дискретное программирование....................................209 § 1. Математические модели задач дискретного программирования ..... 210 § 2. Метод отсекающих плоскостей ..................................... 218 § 3. Асимптотическое целочисленное программирование .................. 234 § 4. Метод ветвей и границ .......................................... . 245 Глава 5. Нелинейное программирование ...................................264 § 1. Классический метод определения условного экстремума . .............265 § 2. Метод множителей Лагранжа..........................................269 § 3. Задача нелинейного программирования при ограничениях-неравенствах 272 § 4. Двойственность в задачах оптимизации........................... 281 § 5. Квадратичное программирование . ...................................285 § 6. Геометрическое программирование.................................. 290 390
Глава 6. Динамическое программирование........................... . 308 § 1. Сущность вычислительного метода ............................. 308 § 2. Динамическое программирование для задач с несколькими ограничениями и переменными ..................................................... 322 § 3. Задачи управления запасами.................................. 332 § 4. Динамические задачи управления запасами..................... . 345 Заключение .................................................... . 355 Приложение 1 359 Приложение 2 .................................................... . 366 Приложение 3 374 Приложение 4...................................................... 377 Приложение 5................................•..................... 378 Список литературы ............................................. . 385 Предметный указатель............................................. ,388
Юрий Петрович Зайченко ИССЛЕДОВАНИЕ ОПЕРАЦИЙ Редактор Ж. Г- Давиденко Художественный редактор С. П. Духленко Технический редактор Т. И. Трофимова Корректор А. И. Супрун Информ, бланк № 4111 Сдано в набор 31.10.78. Подп. в печать 7.06.79. БФ 08664. Формат 60X90716. Бумага типогр. № 3. Лит. гарн. Выс. печать. 24,5 печ. л. 23,79 уч.-изд. л. Тираж 10000 экз. Изд. No 4397. Зак. № 8—3164. Цена 1 р. 10 к. Головное издательство издательского объединения «Вищ-а шко- ла*. 252054, Киев-54, ул. Гоголевская. 7. Отпечатано с матриц Головного предприятия Республиканского производственного объединения «Полиграфкнига» Госкомиз- дата УССР, 252057, Киев-57; ул. Довженко, 3 в Киевской книжной типографии научной книги, 252004, Киев-4, Репина, 4. Зак. 9-719.