1
5
2
-
http://books.altspu.ru/files/original/96/103/_[650].png
f70f3287dfcbeaba9bf74e35c5984545
http://books.altspu.ru/files/original/96/103/_pdf.pdf
d8f4de54a574b22654ea8615e8afc39b
PDF Text
Text
Содержание
�Содержание
Об издании
Основной титульный экран
Дополнительный титульный экран непериодического издания – 1
Дополнительный титульный экран непериодического издания – 2
�Содержание
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Алтайский государственный педагогический университет»
С.В. Чеботарёв
ИССЛЕДОВАНИЕ ОПЕРАЦИЙ
Учебное пособие
Барнаул
ФГБОУ ВО «АлтГПУ»
2017
Об издании – 1, 2, 3.
ISBN 978-5-88210-851-8
�Содержание
УДК
ББК
519.8(Р75)
22.183я73
Ч-343
Чеботарёв, С.В.
Исследование операций [Электронный ресурс] : учебное пособие С.В. Чеботарев. – Барнаул : АлтГПУ,
2017. – Систем. требования: PC не ниже класса Intel Celeron 2 ГГц ; 512 Мb RAM ; Windows XP/
Vista/7/8/10 ; Adobe Acrobat Reader ; SVGA монитор с разрешением 1024х768 ; мышь.
ISBN 978-5-88210-851-8
Рецензенты:
Алгазин Г.И., доктор физико-математических наук, профессор (Алтайский государственный
университет);
Кизбикенов К.О., кандидат физико-математических наук, доцент (Алтайский государственный
педагогический университет)
В учебном пособии излагается материал односеместрового курса по исследованию операций и
методам оптимизации, читаемого автором в АлтГПУ студентам института физико-математического
образования. В курс вошли следующие разделы: основные понятия, задачи линейного
программирования (симплекс-метод и транспортная задача), целочисленное линейное
программирование (метод отсечения Гомори), элементы теории игр.
Для самостоятельной работы студентов, изучающих основы исследования операций.
Рекомендовано к изданию редакционно-издательским советом АлтГПУ 30.11.2017 г.
Текстовое (символьное) электронное издание.
Системные требования:
PC не ниже класса Intel Celeron 2 ГГц ; 512 Мb RAM ; Windows XP/Vista/7/8/10 ; Adobe Acrobat Reader ;
SVGA монитор с разрешением 1024х768 ; мышь.
Об издании – 1, 2, 3.
�Содержание
Электронное издание создано при использовании программного обеспечения Sunrav BookOffice.
Объём издания – 5 495 КБ.
Дата подписания к использованию: 1.02.2018
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный педагогический университет» (ФГБОУ ВО «АлтГПУ»)
ул. Молодежная, 55, г. Барнаул, 656031
Тел. (385-2) 36-82-71, факс (385-2) 24-18-72
е-mail: rector@altspu.ru, http://www.altspu.ru
Об издании – 1, 2, 3.
�Содержание
Содержание
Предисловие
Глава 1. Введение
Глава 2. Основные понятия исследования операций
2.1. Операция. Эффективность операции
2.2. Математическая модель операции
2.3. Оптимизация решения. Детерминированный случай
2.4. Оптимизация решения. Учет неопределенности
2.5. Оптимизация решения. Учет нескольких показателей
Глава 3. Линейное программирование
3.1. Задачи линейного программирования
3.1.1. Задача о пищевом рационе
3.1.2. Задача о загрузке станков
3.1.3. Задачи ЛП в миниатюре
3.1.4. Задачи для самостоятельной работы
3.2. Основная задача ЛП
3.3. Задача ЛП с неравенствами. Связь с ОЗЛП
3.4. Симплекс-метод решения задачи ЛП
3.5. Табличный алгоритм замены базиса
3.6. Отыскание допустимого решения
3.7. Отыскание оптимального решения
3.8. Понятие двойственности в ЛП
3.9. Решение двойственной задачи
3.10. Лабораторная работа
3.11. Примеры и задачи
3.12. Транспортная задача ЛП
3.13. Нахождение Начального Плана
3.14. Улучшение плана перевозок
3.15. Метод потенциалов
3.16. Транспортная задача с неправильным балансом
3.17. Примеры и задачи
Глава 4. Целочисленное линейное программирование
4.1. Основные понятия
4.2. Примеры задач ЦЛП
4.2.1. Задача с постоянными элементами затрат
4.2.2. Задача планирования производственной линии
�Содержание
4.2.3. Задача о рюкзаке
4.2.4. Задача оптимального выбора на множестве взаимозависимых альтернатив
4.3. Методы решения задач ЦЛП
4.3.1. Метод отсекающих плоскостей
4.4. Примеры и задачи
Глава 5. Элементы теории игр
5.1. Основные понятия, классификация и описание игр
5.2. Игры двух участников с нулевой суммой
5.3. Решение игр двух участников с нулевой суммой в смешанных стратегиях
5.4. Метод линейного программирования
5.5. Игры двух участников с ненулевой суммой
5.6. Вопросы и задачи
Приложение. Функция linprog пакета MatLab
Заключение
Список использованной литературы
�Содержание
Предисловие
Настоящее учебное пособие написано на базе односеместрового курса по исследованию операций и
методам оптимизации, читаемого автором в Алтайском государственном педагогическом университете
в течение ряда лет для студентов направления подготовки 09.03.03 "Прикладная информатика".
Интенсивное развитие вычислительной техники сделали возможным использовать в сфере
управления более сложные алгоритмы принятия решений, что ведет в конечном итоге к повышению
эффективности функционирования рассматриваемых объектов. Само название курса уже говорит о
том, что исходной посылкой включения в курс учебник материалов является их значимость в
повышении эффективности принятия решений, возникающих в процессе управления операциями, под
которыми понимается комплекс различных мероприятий с использованием имеющихся в
распоряжении управляющего органа ресурсов и направленных на достижение конкретных целей
рассматриваемого объекта.
За основу автором был взят курс, изложенный в книге Е. С. Вентцель "Исследование операций" [2]. За
несколько лет преподавания этот курс был адаптирован и переработан в соответствии со спецификой
вуза и опытом преподавания этой дисциплины.
�Содержание
Глава 1
Введение
За последние годы наука уделяет все большее внимание вопросам организации и управления; это
обусловлено целым рядом причин. Быстрое развитие и усложнение техники, увеличение масштабов и
стоимостей проводимых мероприятий, широкое внедрение автоматизации в сферу управления – все
это приводит к необходимости научного анализа сложных целенаправленных процессов под углом
зрения их структуры и организации. От науки требуются рекомендации по наилучшему (оптимальному)
управлению такими процессами.
Эти потребности практики вызвали к жизни специальные научные методы, которые принято
объединять под названием "Исследование операций". Под этим подразумевается применение
математических, количественных методов для обоснования решений во всех областях
целенаправленной человеческой деятельности.
Необходимость принятия решений так же стара, как само человечество. Испокон веку люди, приступая
к осуществлению своих мероприятий, раздумывали над их возможными последствиями и принимали
решения, выбирая тем или другим образом зависящие от них параметры – способы организации
мероприятий. Но до поры до времени решения могли приниматься без специального математического
анализа, просто на основе опыта и здравого смысла. Такой способ принятия решений не утратил
своего значения и в наше время. Возьмем пример: человек вышел утром из дому, чтобы ехать на
работу. По ходу дела ему приходится принять целый ряд решений: брать ли с собой зонтик? В каком
месте перейти улицу? Каким видом транспорта воспользоваться? И так далее.
Разумеется, все эти решения человек принимает без специальных расчетов, просто опираясь на
имеющийся у него опыт и на здравый смысл. Для обоснования таких решений никакая наука не нужна,
да вряд ли понадобится и в дальнейшем.
Однако возьмем другой пример. Допустим, организуется работа городского транспорта. В нашем
распоряжении имеется какое-то количество транспортных средств. Необходимо принять ряд решений,
например: какое количество и какие транспортные средства направить по тому или другому маршруту?
Как изменять частоту следования машин в зависимости от времени суток? Где разместить остановки?
И так далее.
Эти решения являются гораздо более ответственными, чем решения предыдущего примера. В силу
сложности явления последствия каждого из них не столь ясны; для того, чтобы представить себе эти
последствия, нужно провести расчеты. А главное, от этих решений гораздо больше зависит. В первом
примере неправильный выбор решения затронет интересы одного человека; во втором – может
отразиться на деловой жизни целого города.
Конечно, и во втором примере при выборе решения можно действовать интуитивно, опираясь на
опыт и здравый смысл. Но решения окажутся гораздо более разумными, если они будут подкреплены
количественными, математическими расчетами. Эти предварительные расчеты помогут избежать
длительного и дорогостоящего поиска правильного решения наощупь.
Наиболее сложно обстоит дело с принятием решений, когда речь идет о мероприятиях, опыта в
проведении которых еще не существует и, следовательно, здравому смыслу не на что опереться, а
интуиция может обмануть. Пусть, например, составляется перспективный план развития системы
вооружения на несколько лет вперед. Образцы вооружения, о которых может идти речь, еще не
существуют, никакого опыта их боевого применения нет. При планировании приходится опираться на
большое количество данных, относящихся не столько к прошлому опыту, сколько к предвидимому
�Содержание
будущему. Выбранное решение должно по возможности оградить нас от ошибок, связанных с
неточным прогнозированием, и быть достаточно эффективным для широкого круга условий. Для
обоснования такого решения приводится в действие сложная система математических расчетов, да
иначе и быть не должно: ведь неправильное решение, если оно будет принято, может привести к
самым тяжелым последствиям.
Вообще, чем сложнее организуемое мероприятие, чем больше вкладывается в него материальных
средств, чем шире спектр его возможных последствий, тем менее допустимы так называемые
"волевые" решения, не опирающиеся на научный расчет, и тем большее значение получает
совокупность научных методов, позволяющих заранее оценить последствия каждого решения, заранее
отбросить недопустимые варианты и рекомендовать те, которые представляются наиболее удачными.
Такими математическими расчетами, облегчающими людям принятие правильных решений, и
занимается наука "Исследование операций". Это сравнительно молодая наука.
Исследование операций (ИО) (англ. Operations Research (OR)) – дисциплина, занимающаяся
разработкой и применением методов нахождения оптимальных решений на основе математического
моделирования, статистического моделирования и различных эвристических подходов в различных
областях человеческой деятельности. Иногда используется название "математические методы
исследования операций".
Исследование операций – применение математических, количественных методов для обоснования
решений во всех областях целенаправленной человеческой деятельности. Исследование операций
начинается тогда, когда для обоснования решений применяется тот или другой математический
аппарат. Операция – всякое мероприятие (система действий), объединенное единым замыслом и
направленное к достижению какой-то цели (например мероприятия задач 1-8, указанных ниже, будут
операциями). Операция всегда является управляемым мероприятием, то есть зависит от человека,
каким способом выбрать параметры, характеризующие ее организацию (в широком смысле, включая
набор технических средств, применяемых в операции).
Решение (удачное, неудачное, разумное, неразумное) – всякий определённый набор зависящих от
человека параметров.
Оптимальное – решение, которое по тем или другим признакам предпочтительнее других.
Цель исследования операций – предварительное количественное обоснование оптимальных решений.
Само принятие решения выходит за рамки исследования операций и относится к компетенции
ответственного лица (лиц). Элементы решения – параметры, совокупность которых образует решение:
числа, векторы, функции, физические признаки и т. д. Если элементами решения можно распоряжаться
в определённых пределах, то заданные ("дисциплинирующие") условия (ограничения) фиксированы
сразу и нарушены быть не могут (грузоподъемность, размеры, вес). К таким условиям относятся
средства (материальные, технические, людские), которыми человек вправе распоряжаться, и иные
ограничения, налагаемые на решение. Их совокупность формирует множество возможных решений.
Ее возникновение обычно относят к годам Второй мировой войны. Однако зачатки научного
мышления, характерного для операционных исследований, появились гораздо раньше. Так, например,
некоторые, хотя и весьма примитивные, модели математического программирования были
предложены еще в 1759 г. экономистом Куисни и в 1874 г. экономистом Вальрасом. Более сложные
экономические модели, аналогичные упомянутым выше, были разработаны в 1937 г. фон Нейманом и
в 1939 г. Канторовичем. Математические основы линейного программирования успешно
разрабатывались еще на рубеже XIX и XX веков Жорданом (1873 г.), Минковским (1896 г.) и Фаркашем
(1903 г.). Следует отметить также весьма серьезные результаты, полученные в области динамического
программирования Марковым (1856-1922 гг.). Заслуживают внимания опубликованные в 20-е годы в
�Содержание
различных журналах производственно-коммерческого и производственно-технологического профилей
работы, имеющие отношение к проблеме управления запасами, а также самые первые исследования по
теории массового обслуживания, предпринятые Эрлангом (1878-1929 гг.).
В годы Второй мировой войны исследование операций широко применялось для планирования
боевых действий. Так, специалисты по исследованию операций работали в командовании
бомбардировочной авиации США, дислоцированном в Великобритании. Ими исследовались
многочисленные факторы, влияющие на эффективность бомбометания. Были выработаны
рекомендации, приведшие к четырёхкратному повышению эффективности бомбометания. Из-за
дислокации в отделе оперативных действий (Operations) дисциплина и получила своё оригинальное
название по имени адреса, на который высылалась почта для отдела: Operations/Research. Отметим
также, что подобными исследованиями (правда, не под таким названием) занимались и до войны, в
частности в нашей стране (СССР), где были широко развиты математические методы оценки
эффективности стрельбы, представляющие собой, в современном понимании, часть исследования
операций.
В начале войны боевое патрулирование самолетов союзников для обнаружения кораблей и подводных
лодок противника носило неорганизованный характер. Привлечение к планированию специалистов
по исследованию операций позволило установить такие маршруты патрулирования и такое
расписание полетов, при которых вероятность оставить объект незамеченным была сведена до
минимума. Полученные рекомендации были применены для организации патрулирования над Южной
Атлантикой с целью перехвата немецких кораблей с военными материалами. Из пяти вражеских
кораблей, прорвавших блокаду, три были перехвачены на пути из Японии в Германию, один был
обнаружен и уничтожен в Бискайском заливе и лишь одному удалось скрыться благодаря тщательной
маскировке.
По окончании Второй мировой войны группы специалистов по исследованию операций продолжили
свою работу в Вооруженных силах США и Великобритании. Публикация ряда результатов в открытой
печати вызвала всплеск общественного интереса к этому направлению. Возникает тенденция к
применению методов исследования операций в коммерческой деятельности, в целях реорганизации
производства, перевода промышленности на мирные рельсы. На развитие математических методов
исследования операций в экономике ассигнуются миллионы долларов.
В Великобритании национализация некоторых видов промышленности создала возможность для
проведения экономических исследований на базе математических моделей в общегосударственном
масштабе. Исследование операций стало применяться при планировании и проведении некоторых
государственных, социальных и экономических мероприятий. Так, например, исследования,
проведенные для министерства продовольствия, позволили предсказать влияние политики
правительственных цен на семейный бюджет. В США внедрение методов исследования операций в
практику управления экономикой происходило несколько медленнее – но и там многие концерны
вскоре стали привлекать специалистов такого рода для решения проблем, связанных с регулированием
цен, повышением производительности труда, ускорением доставки товаров потребителям и пр.
Лидерство в области применения научных методов управления принадлежало авиационной
промышленности, которая не могла не идти в ногу с растущими требованиями к ВВС. В 50-60-е годы
на Западе создаются общества и центры исследования операций, выпускающие собственные научные
журналы, большинство западных университетов включает эту дисциплину в свои учебные планы.
Наибольший вклад в формирование и развитие новой науки сделали Р. Акоф, Р. Веллман, Г. Данциг, Г.
Кун, Т. Саати, Р. Чермен (США), А. Кофман, Р. Форд (Франция) и др. Важная роль в создании
современного математического аппарата и развития многих направлений исследования операций
принадлежит Л. В. Канторовичу, Б. В. Гнеденко, М. П. Буеленко, В. С. Михалевичу, Н. Н. Моисееву, Ю.
�Содержание
М. Ермолаеву, Н. 3. Шору и др. За выдающийся вклад в разработку теории оптимального
использования ресурсов в экономике академику Л. В. Канторовичу вместе с профессором Т.
Купмансом (США) в 1975 г. присвоена Нобелевская премия в экономике.
В настоящее время исследование операций – одна из самых быстро развивающихся наук,
завоевывающая все более обширные области применения: промышленность, сельское хозяйство,
торговля, транспорт, здравоохранение и т. д. Задачи исследования операций, к какой бы области они
ни относились, имеют общие черты, и при их решении применяются сходные методологические
приемы. Например, методика количественного исследования, выработанная для анализа процессов
образования очередей в системах массового обслуживания (парикмахерских, ремонтных мастерских и
т. д.), может, почти без изменений, быть перенесена на некоторые задачи электронной
вычислительной техники, а также задачи, связанные с организацией системы противовоздушной
обороны (ПВО).
Чтобы ближе познакомиться со спецификой задач исследования операций и их характерными
особенностями, приведем несколько примеров таких задач1.
Пример 1. Завод выпускает определенного вида изделия. Для обеспечения высокого качества этих
изделий организуется система выборочного контроля. Требуется рациональным образом организовать
этот контроль, т. е. выбрать:
•
размер контрольной партии;
•
последовательность контрольных операций;
•
правила браковки изделий
и т. д. так, чтобы обеспечить заданный уровень качества при минимальных расходах.
Пример 2. Для реализации определенной массы сезонных товаров создается сеть временных торговых
точек. Требуется выбрать параметры этой сети:
•
число точек;
•
их размещение;
•
количество персонала;
•
продажные цены товаров
и т. д. так, чтобы обеспечить максимальную экономическую эффективность распродажи.
Пример 3. Организуется воздушный налет группы самолетов-бомбардировщиков на промышленный
район противника. В нашем распоряжении определенное количество самолетов с известными летнотактическими данными и вооружением. Требуется выбрать параметры налета:
•
высоту полета;
•
эшелонирование самолетов в строю;
•
точки прицеливания отдельных самолетов и групп;
•
способ выполнения бомбометания (залпом, серией)
и т. д. так, чтобы в результате налета максимально снизить промышленный потенциал района.
Пример 4. Организуется снабжение сырьем группы промышленных предприятий. Возможные
поставщики сырья размещены в различных географических пунктах страны и связаны с группой
предприятий различными путями сообщения (с разными тарифами). Требуется рациональным образом
разместить заказы на сырье так, чтобы потребности группы предприятий были удовлетворены в
заданные сроки и при минимальных затратах на перевозки.
�Содержание
Пример 5. Сложное техническое устройство время от времени может отказывать (выходить из строя).
Для того, чтобы ликвидировать аварию, необходимо локализовать неисправность (обнаружить ее
причину). Требуется разработать систему тестов, позволяющую с определенной, достаточно большой
вероятностью локализовать неисправность за минимальное время.
Пример 6. Организуется медицинское обследование группы населения с целью выявления некоторых
заболеваний. На обследование выделены определенные материальные средства, оборудование и
медицинский персонал. Требуется разработать план обследования:
•
количество пунктов;
•
их размещение;
•
последовательность осмотров;
•
вид и количество анализов
и т. д. с тем, чтобы к заданному сроку выявить максимальный процент заболевших.
Число примеров можно было бы легко умножить, но и этих достаточно, чтобы составить
представление об отличительных особенностях задач исследования операций. Несмотря на то, что
примеры относятся к самым разным областям практики, в них легко просматриваются сходные черты.
В каждом из них идет речь о каком-то мероприятии (или системе мероприятий), преследующем
определенную цель. Заданы некоторые условия, характеризующие обстановку мероприятия, изменять
которые мы не вправе (например, отпущенные средства). В рамках этой системы условий требуется
принять какое-то решение с тем, чтобы мероприятие в некотором смысле было наиболее выгодным
(или наименее убыточным).
В соответствии с этими общими чертами вырабатываются и общие приемы решения подобных задач,
в совокупности составляющие методологическую основу исследования операций.
Для решения практических задач исследование операций располагает целым арсеналом
математических средств. К ним относятся: теория вероятностей с ее новейшими разделами (теория
случайных процессов, теория информации, теория массового обслуживания); математические методы
оптимизации, начиная от простейших способов нахождения экстремумов (максимумов и минимумов),
знакомых каждому инженеру, и кончая современными методами, такими как линейное
программирование, динамическое программирование, принцип максимума Л. С. Понтрягина и многие
другие. Из них в данном курсе освещаются далеко не все, а только простейшие и наиболее
распространенные.
Для понимания текста необходимо владеть только основами математического анализа и элементами
теории вероятностей.
Содержится много численных примеров, иллюстрирующих излагаемые методы.
�Содержание
Глава 2
Основные понятия исследования операций
2.1. Операция. Эффективность операции
2.2. Математическая модель операции
2.3. Оптимизация решения. Детерминированный случай
2.4. Оптимизация решения. Учет неопределенности
2.5. Оптимизация решения. Учет нескольких показателей
�Содержание
2.1. Операция. Эффективность операции
Под операцией мы будем понимать любое мероприятие (или систему действий), объединенное
единым замыслом и направленное к достижению определенной цели. Примеры операций.
1. Система мероприятий, направленная к повышению надежности технического устройства.
2. Отражение воздушного налета средствами ПВО.
3. Размещение заказов на производство оборудования.
4. Разведывательный поиск группы самолетов в тылу противника.
5. Запуск группы искусственных спутников Земли для установления системы телевизионной
связи.
6. Система перевозок, обеспечивающая снабжение ряда пунктов определенного вида товарами.
Операция всегда является управляемым мероприятием, т. е. от нас зависит выбрать тем или другим
способом какие-то параметры, характеризующие способ ее организации. "Организация" здесь
понимается в широком смысле слова, включая и выбор технических средств, применяемых в
операции. Например, организуя отражение воздушного налета средствами ПВО, мы можем, в
зависимости от обстановки, выбирать тип и свойства применяемых технических средств (ракет,
установок) или же, при заданных технических средствах, решать только задачу рациональной
организации самой процедуры отражения налета (распределение целей между установками,
количество ракет, направляемых на каждую цель и т. д.).
Всякий определенный выбор зависящих от нас параметров мы будем называть решением.
Решения могут быть удачными и неудачными, разумными и неразумными. Оптимальными называются
решения, которые, по тем или иным соображениям, предпочтительнее других.
Основная задача исследования операций – предварительное количественное обоснование
оптимальных решений. Заметим, что само принятие решения выходит за рамки исследования
операций и относится к компетенции ответственного лица (или группы лиц), которым предоставлено
право окончательного выбора. При этом выборе ответственные за него лица могут учитывать, наряду с
рекомендациями, вытекающими из математического расчета, ещё ряд соображений (количественного и
качественного характера), которые не были учтены расчетом.
Таким образом, исследование операций не ставит себе задачу полной автоматизации принятия
решений, полное исключение из этого процесса размышляющего, оценивающего, критикующего
человеческого сознания. В конечном итоге, решение всегда принимается человеком (или группой лиц);
задача исследования операций – подготовить количественные данные и рекомендации, облегчающие
человеку принятие решения. (Даже в тех случаях, когда принятие решения, казалось бы, полностью
автоматизировано (например, в процессе автоматического управления предприятием или
космическим кораблем), роль человека не устраняется, ибо, в конечном счете, от него зависит выбор
алгоритма, по которому осуществляется управление.)
Наряду с основной задачей – обоснованием оптимальных решений – к области исследования операций
относятся и другие задачи, такие, например, как
•
сравнительная оценка различных вариантов организации операции;
•
оценка влияния на результат операции различных параметров (элементов решения и заданных
условий);
•
исследование так называемых "узких мест", то есть элементов управляемой системы, нарушение
работы которых особенно сильно сказывается на успехе операции.
�Содержание
Эти "вспомогательные" задачи исследования операций приобретают особую важность, когда мы
рассматриваем данную операцию не изолированно, а как составной элемент целой системы операций.
Так называемый "системный" подход к задачам исследования операций требует учета взаимной
зависимости и обусловленности целого комплекса мероприятий. Разумеется, в принципе всегда можно
объединить систему операций в одну сложную операцию более "высокого порядка", но на практике это
не всегда удобно (и не всегда желательно), и в ряде случаев целесообразно выделять в качестве
"операций" отдельные элементы системы, а окончательное решение принимать с учетом роли и места
данной операции в системе.
Итак, рассмотрим отдельную операцию . Размышляя над организацией операции, мы стремимся
сделать ее наиболее эффективной. Под эффективностью операции разумеется степень ее
приспособленности к выполнению стоящей перед ней задачи. Чем лучше организована операция, тем
она "эффективнее".
Чтобы судить об эффективности операции и сравнивать между собой по эффективности различно
организованные операции, нужно иметь некоторый численный критерий оценки или показатель
эффективности (в некоторых руководствах показатель эффективности называют "целевой функцией").
Будем в дальнейшем обозначать показатель эффективности буквой
.
Конкретный вид показателя эффективности
, которым следует пользоваться при численной оценке
эффективности, зависит от специфики рассматриваемой операции, ее целевой направленности, а
также от задачи исследования, которая может быть поставлена в той или другой форме.
Многие операции выполняются в условиях, содержащих элемент случайности (например, операции,
связанные с колебаниями спроса и предложения, с движением народонаселения, заболеваемостью,
смертностью, а также все военные операции). В этих случаях исход операции, даже организованной
строго определенным образом, не может быть точно предсказан, остается случайным. Если это так, то
в качестве показателя эффективности
выбирается не просто характеристика исхода операции, а ее
среднее значение (математическое ожидание). Например, если задача операции – получение
максимальной прибыли, то в качестве показателя эффективности берется средняя прибыль. В других
случаях, когда задачей операции является осуществление вполне определенного события, в качестве
показателя эффективности берут вероятность этого события (например, вероятность того, что в
результате воздушного налета данная группа целей будет поражена).
Правильный выбор показателя эффективности – необходимое условие полезности исследования,
применяемого для обоснования решения.
Рассмотрим ряд примеров, в каждом из которых показатель эффективности
с целевой направленностью операции.
выбран в соответствии
Пример 1. Рассматривается работа промышленного предприятия под углом зрения его
рентабельности, причем проводится ряд мер с целью повышения этой рентабельности. Показатель
эффективности – прибыль (или средняя прибыль), приносимая предприятием за хозяйственный год.
Пример 2. Группа истребителей поднимается в воздух для перехвата одиночного самолета
противника. Цель операции – сбить самолет. Показатель эффективности – вероятность поражения
(сбитая) самолета.
Пример 3. Ремонтная мастерская занимается обслуживанием машин; ее рентабельность определяется
количеством машин, обслуженных в течение дня. Показатель эффективности – среднее число машин,
обслуженных за день ("среднее" потому, что фактическое число случайно).
Пример 4. Группа радиолокационных станций в определенном районе ведет наблюдение за
воздушным пространством. Задача группы – обнаружить любой самолет, если он появится в районе.
Показатель эффективности – вероятность обнаружения любого самолета, появившегося в районе.
�Содержание
Пример 5. Предпринимается ряд мер по повышению надежности электронной цифровой
вычислительной машины (ЭЦВМ). Цель – уменьшить частоту появления неисправностей ЭЦВМ
("сбоев"), или, что равносильно, увеличить средний промежуток времени между сбоями ("наработку на
отказ"). Показатель эффективности – среднее время безотказной работы ЭЦВМ (или среднее
относительное время исправной работы).
Пример 6. Проводится борьба за экономию средств при производстве определенного вида товаров.
Показатель эффективности – количество (или среднее количество) сэкономленных средств.
Во всех рассмотренных примерах показатель эффективности, каков бы он ни был, требовалось
обратить в максимум ("чем больше, тем лучше"). Вообще, это не обязательно: в исследовании операций
часто пользуются показателями, которые требуется обратить не в максимум, а в минимум ("чем меньше,
тем лучше"). Например, в примере 4 можно было бы в качестве показателя эффективности взять
"вероятность того, что появившийся самолет не будет обнаружен" – этот показатель желательно
сделать как можно меньше. В примере 5 за показатель эффективности можно было бы принять
"среднее число сбоев за сутки", которое желательно минимизировать. Если оценивается какая-то
система, обеспечивающая наведение снаряда на цель, то в качестве показателя эффективности можно
выбрать среднее значение "промаха" снаряда (расстояния от траектории до центра цели), которое
желательно сделать как можно меньше. Наряд средств, выделяемых на выполнение какой-либо задачи,
тоже желательно сделать минимальным, равно как и стоимость предпринимаемой системы
мероприятий. Таким образом, во многих задачах исследования операций разумное решение должно
обеспечивать не максимум, а минимум некоторого показателя.
Очевидно, что случай, когда показатель эффективности
надо обратить в минимум, легко сводится к
задаче максимизации (для этого достаточно, например, изменить знак величины
). Поэтому в
дальнейшем, рассматривая в общем виде задачу исследования операций, мы будем для простоты
говорить только о случае, когда
требуется обратить в максимум. Что касается практических
конкретных задач, то мы будем пользоваться как показателями эффективности, которые требуется
максимизировать, так и теми, которые требуется минимизировать.
�Содержание
2.2. Математическая модель операции
Для применения количественных методов исследования в любой области всегда требуется построить
ту или другую математическую модель явления. Не составляет исключения и исследование операций.
При построении математической модели явление (в нашем случае – операция) каким-то образом
упрощается, схематизируется; из бесчисленного множества факторов, влияющих на явление,
выделяется сравнительно небольшое количество важнейших, и полученная схема описывается с
помощью того или другого математического аппарата. В результате устанавливаются количественные
связи между условиями операции, параметрами решения и исходом операции – показателем
эффективности (или показателями, если их в данной задаче несколько).
Чем удачнее подобрана математическая модель, тем лучше она отражает характерные черты явления,
тем успешнее будет исследование и полезнее вытекающие из него рекомендации.
Общих способов построения математических моделей не существует. В каждом конкретном случае
модель строится, исходя из целевой направленности операции и задачи научного исследования, с
учетом требуемой точности решения, а также точности, с какой могут быть известны исходные данные.
Требования к модели противоречивы. С одной стороны, она должна быть достаточно полной, т. е. в
ней должны быть учтены все важные факторы, от которых существенно зависит исход операции. С
другой стороны, модель должна быть достаточно простой для того, чтобы можно было установить
обозримые (желательно – аналитические) зависимости между входящими в нее параметрами. Модель
не должна быть "засорена" множеством мелких, второстепенных факторов – их учет усложняет
математический анализ и делает результаты исследования трудно обозримыми.
Одним словом, искусство составлять математические модели есть именно искусство, и опыт в этом
деле приобретается постепенно. Две опасности всегда подстерегают составителя модели: первая –
утонуть в подробностях ("из-за деревьев не увидеть леса"); вторая – слишком огрубить явление
("выплеснуть из ванны вместе с водой и ребенка"). В сложных случаях, когда построение модели
вызывает наибольшее сомнение, полезным оказывается своеобразный "спор моделей", когда одно и то
же явление исследуется на нескольких моделях. Если научные выводы и рекомендации от модели к
модели меняются мало, это серьезный аргумент в пользу объективности исследования. Характерным
для сложных задач исследования операций является также повторное обращение к модели: после того,
как первый цикл исследований выполнен, возвращаются снова к модели и вносят в нее необходимые
коррективы.
Построение математической модели – наиболее важная и ответственная часть исследования,
требующая глубоких знаний не только и не столько в математике, сколько в существе моделируемых
явлений. Однако раз созданная удачная модель может найти применение и далеко за пределами того
круга явлений, для которого она первоначально создавалась. Так, например, математические модели
массового обслуживания нашли широкое применение в целом ряде областей, далеких, с первого
взгляда, от массового обслуживания (надежность технических устройств, организация
автоматизированного производства, задачи ПВО и др.). Математические модели, первоначально
предназначенные для описания динамики развития биологических популяций, находят широкое
применение при описании боевых действий, и наоборот, боевые модели с успехом применяются в
биологии.
�Содержание
Математические модели, применяемые в настоящее время в задачах исследования операций, можно
грубо подразделить на два класса: аналитические и статистические. Для первых характерно
установление формульных, аналитических зависимостей между параметрами задачи, записанных в
любом виде: алгебраические уравнения, обыкновенные дифференциальные уравнения, уравнения с
частными производными и т. д. Чтобы такое аналитическое описание операции было возможно, как
правило, нужно принять те или иные допущения или упрощения. С помощью аналитических моделей
удается с удовлетворительной точностью описать только сравнительно простые операции, где число
взаимодействующих элементов не слишком велико. В операциях же большого масштаба, сложных, в
которых переплетается действие огромного количества факторов, в том числе и случайных, на первый
план выходит метод статистического моделирования. Он состоит в том, что процесс развития
операции как бы "копируется" на вычислительной машине, со всеми сопровождающими его
случайностями. Всякий раз, когда в ход операции вмешивается какой-либо случайный фактор, его
влияние учитывается посредством "розыгрыша", напоминающего бросание жребия. В результате
многократного повторения такой процедуры удается получить интересующие нас характеристики
исхода операции с любой степенью точности. Статистические модели имеют перед аналитическими
то преимущество, что они позволяют учесть большее число факторов и не требуют грубых упрощений
и допущений. Зато результаты статистического моделирования труднее поддаются анализу и
осмыслению. Более грубые аналитические модели описывают явление лишь приближенно, зато
результаты более наглядны и отчетливее отражают присущие явлению основные закономерности.
Наилучшие результаты получаются при совместном применении аналитических и статистических
моделей: простая аналитическая модель позволяет вчерне разобраться в основных закономерностях
явления, наметить главные его контуры, а любое дальнейшее уточнение может быть получено
статистическим моделированием.
�Содержание
2.3. Оптимизация решения
Детерминированный случай
Рассмотрим задачу исследования операций в общей постановке, безотносительно к виду и цели
операции. Пусть имеется некоторая операция , т. е. управляемое мероприятие, на исход которого мы
можем в какой-то мере влиять, выбирая тем или другим способом зависящие от нас параметры.
Эффективность операции характеризуется каким-то численным критерием или показателем
,
который требуется обратить в максимум (случай, когда его требуется обратить в минимум, сводится к
предыдущему и отдельно не рассматривается). Предположим, что тем или иным способом
математическая модель операции построена; она позволяет вычислить показатель эффективности
при любом принятом решении, для любой совокупности условий, в которых выполняется операция.
Рассмотрим сначала наиболее простой случай: все факторы, от которых зависит успех операции,
делятся на две группы:
-
заданные, заранее известные факторы (условия проведения операции) α1, α2, ... на которые мы
влиять не можем;
-
зависящие от нас факторы (элементы решения) x 1, x2, ... которые мы, в известных пределах, можем
выбирать по своему усмотрению.
Этот случай, в котором факторы, влияющие на исход операции, либо заранее известны, либо зависят
от нас, мы будем называть детерминированным. Заметим, что под "заданными условиями" операции
α1, α2, ... могут пониматься не только обычные числа, но и функции, в частности ограничения,
наложенные на элементы ретения. Равным образом, элементы решения x 1, x2, ... также могут быть не
только числами, но и функциями.
Показатель эффективности
зависит от обеих групп факторов: как от заданных условий, так и от
элементов решения. Запишем эту зависимость в виде общей символической формулы:
W = W(α1 , α2 , . . . ; x1 , x2 , . . .).
(2.1)
Так как математическая модель построена, будем считать, что зависимость (2.1) нам известна, и для
любых α1, α2, ...; x 1, x2, ... мы можем найти .
Тогда задачу исследования операций можно сформулировать так: при заданных условиях α1, α2, ...,
найти такие элементы решения x 1, x2, ..., которые обращают показатель
в максимум. Перед нами –
типично математическая задача, относящаяся к классу так называемых вариационных задач. Методы
решения таких задач подробно разработаны в математике. Простейшие из этих методов ("задачи на
максимум и минимум") хорошо известны каждому инженеру. Для нахождения максимума или
минимума (короче, экстремума) функции нужно продифференцировать ее по аргументу (или
аргументам, если их несколько), приравнять производные нулю и решить полученную систему
уравнений.
Однако этот простой метод в задачах исследования операций имеет ограниченное применение.
Причин этому несколько.
1. Когда аргументов x 1, x2, ... много (а это типично для задач исследования операций), совместное
решение системы уравнений, полученных дифференцированием основной зависимости, зачастую
оказывается не проще, а сложнее, чем непосредственный поиск экстремума.
�Содержание
2. В случае, когда на элементы решения x 1, x2, ... наложены ограничения (т. е. область их изменения
ограничена), часто экстремум наблюдается не в точке, где производные обращаются в нуль, а на
границе области возможных решений. Возникает специфическая для исследования операций
математическая задача "поиска экстремума при наличии ограничений", не укладывающаяся в схему
классических вариационных методов.
3. Наконец, производных, о которых идет речь, может вовсе не существовать, например, если
аргументы x 1, x2, ... изменяются не непрерывно, а дискретно, или же сама функция
имеет
особенности.
Общих математических методов нахождения экстремумов функций любого вида при наличии
произвольных ограничений не существует. Однако для случаев, когда функция и ограничения обладают
определенными свойствами, современная математика предлагает ряд специальных методов.
Например, если показатель эффективности
зависит от элементов решения x 1, x2, ... линейно и
ограничения, наложенные на x 1, x2, ... также имеют вид линейных равенств (или неравенств),
максимум функции
находится с помощью специального аппарата, так называемого линейного
программирования.
Если эти функции обладают другими свойствами (например, выпуклы или квадратичны), применяется
аппарат "выпуклого" или "квадратичного" программирования, более сложный по сравнению с
линейным программированием, но все же позволяющий в приемлемые сроки найти решение.
Если операция естественным образом расчленяется на ряд "шагов" или "этапов" (например,
хозяйственных лет), а показатель эффективности
выражается в виде суммы показателей ωt
достигнутых за отдельные этапы, для нахождения решения, обеспечивающего максимальную
эффективность, может быть применен метод динамического программирования.
Если операция описывается обыкновенными дифференциальными уравнениями, а управление,
меняющееся со временем, представляет собой некоторую функцию x(t), то для нахождения
оптимального управления может оказаться полезным специально разработанный метод
Л. С. Понтрягина.
Таким образом, в рассматриваемом детерминированном случае задача отыскания оптимального
решения сводится к математической задаче отыскания экстремума функции
; эта задача может быть
весьма сложной (особенно при многих аргументах), но, в конце концов, является вычислительной
задачей, которую, особенно при наличии быстродействующих ЭЦВМ, удается так или иначе решить до
конца. Трудности, возникающие при этом, являются расчетными, а не принципиальными.
�Содержание
2.4. Оптимизация решения
Учет неопределенности
В предыдущем параграфе мы рассмотрели самый простой, полностью детерминированный случай,
когда все условия операции α1, α2, … известны, и любой выбор решения x 1, x2, … приводит к вполне
определенному значению показателя эффективности
. К сожалению, этот простейший случай не так
уж часто встречается на практике. Гораздо более типичен случай, когда не все условия, в которых будет
проводиться операция, известны заранее, а некоторые из них содержат элемент неопределенности.
Например, успех операции может зависеть от метеорологических условий, которые заранее
неизвестны, или от колебаний спроса и предложения, заранее трудно предвидимых, связанных с
капризами моды, или же от поведения разумного противника, действия которого заранее неизвестны.
В подобных случаях эффективность операции зависит уже не от двух, а от трех категорий факторов:
•
условия выполнения операции α1, α2, …, которые известны заранее и изменены быть не могут;
•
неизвестные условия или факторы Y1, Y2, …;
•
элементы решения x 1, x2, ..., которые нам предстоит выбрать.
Пусть эффективность операции характеризуется некоторым показателем
групп факторов. Это мы запишем в виде общей формулы:
W = W(α1 , α2 , . . . ; Y1 , Y2 , . . . ; x1 , x2 , . . .).
, зависящим от всех трех
(2.2)
Если бы условия Y1, Y2, … были известны, мы могли бы заранее подсчитать показатель
и выбрать
такое решение x 1, x2, …, при котором он максимизируется. Беда в том, что параметры Y1, Y2, … нам
неизвестны, а значит, неизвестен и зависящий от них показатель эффективности
при любом
решении. Тем не менее задача выбора решения по-прежнему стоит перед нами. Ее можно
сформулировать так: при заданных условиях α1, α2, ..., с учетом неизвестных факторов Y1, Y2, … найти
такие элементы решения x 1, x2, … которые по возможности обращали бы в максимум показатель
эффективности
.
Это – уже другая, не чисто математическая задача (недаром в ее формулировке сделана оговорка "по
возможности"). Наличие неизвестных факторов Y1, Y2, … переводит нашу задачу в другую категорию:
она превращается в задачу о выборе решения в условиях неопределенности.
Неопределенность есть неопределенность. Если условия выполнения операции неизвестны, мы не
имеем возможности так же успешно организовать ее, как мы это сделали бы, если бы располагали
большей информацией. Поэтому любое решение, принятое в условиях неопределенности, хуже
решения, принятого во вполне определенной ситуации. Наше дело – сообщить своему решению в
наибольшей возможной мере черты разумности. Решение, принятое в условиях неопределенности, но
на основе математических расчетов, будет все же лучше решения, выбранного наобум. Недаром один
из видных зарубежных специалистов – Т. Л. Саати в книге "Математические методы исследования
операций" дает своему предмету следующее ироническое определение:
"Исследование операций представляет собой искусство давать плохие ответы на те практические
вопросы, на которые даются еще худшие ответы другими методами".
Задачи о выборе решения в условиях неопределенности встречаются нам в жизни на каждом шагу.
Пусть, например, мы собрались ехать в отпуск, взяв с собой чемодан ограниченного объема, причем
вес чемодана не должен превышать того, при котором мы можем носить его без посторонней помощи
(условия α1, α2, ...). Погода в районах путешествия заранее неизвестна (условия Y1, Y2, …).
Спрашивается, какие предметы одежды ( x 1, x2, …) следует взять с собой?
�Содержание
Эту задачу мы, разумеется, решаем без всякого математического аппарата, хотя, по-видимому, не без
опоры на какие-то численные данные (хотя бы на вероятности морозной или дождливой погоды в
районах путешествия в данное время года). Однако, если нужно принять более серьезное и
ответственное решение (например, о характеристиках проектируемой плотины в районе возможных
паводков, или о выборе типа посадочного устройства для посадки на планету с неизвестными
свойствами поверхности, или о выборе образца вооружения для борьбы с противником,
характеристики которого заранее неизвестны), то выбору решения в обязательном порядке должны
быть предпосланы математические расчеты, облегчающие этот выбор и сообщающие ему, в доступной
мере, черты разумности. Применяемые при этом методы существенно зависят от того, какова природа
неизвестных факторов Y1, Y2, … и какими ориентировочными сведениями о них мы располагаем.
Наиболее простым и благоприятным для расчетов является случай, когда неизвестные факторы
Y1, Y2, … представляют собой случайные величины (или же случайные функции), о которых имеются
статистические данные, характеризующие их распределение. Пусть, например, мы рассматриваем
работу железнодорожной сортировочной станции, стремясь оптимизировать процесс обслуживания
прибывающих на эту станцию грузовых поездов. Заранее неизвестны ни точные моменты прибытия
поездов, ни количество вагонов в каждом поезде, ни адреса, по которым направляются вагоны. Все эти
характеристики представляют собой случайные величины, закон распределения каждой из которых (и
их совокупности) может быть определен по имеющимся данным обычными методами математической
статистики. Аналогично в каждой военной операции присутствуют случайные факторы, связанные с
рассеиванием снарядов, со случайностью моментов обнаружения целей и т. и. В принципе все эти
факторы могут быть изучены методами теории вероятностей, и для них могут быть получены законы
распределения (или, по крайней мере, числовые характеристики). В случае, когда неизвестные
факторы, фигурирующие в операции – Y1, Y2, … являются обычными случайными величинами (или
случайными функциями), распределение которых, хотя бы ориентировочно, известно, для
оптимизации решения может быть применен один из двух приемов:
•
искусственное сведение к детерминированной схеме;
•
"оптимизация в среднем".
Остановимся более подробно на каждом из этих приемов. Первый прием сводится к тому, что
неопределенная, вероятностная картина явления приближенно заменяется детерминированной. Для
этого все участвующие в задаче случайные факторы Y1, Y2, … приближенно заменяются не случайными
(как правило, их математическими ожиданиями). Этот прием применяется по преимуществу в грубых,
ориентировочных расчетах, когда диапазон случайных изменений величин Y1, Y2, … сравнительно мал,
т. е. они без большой натяжки могут рассматриваться как не случайные. Заметим, что тот же прием
замены случайных величин их математическими ожиданиями может успешно применяться и в
случаях, когда величины Y1, Y2, …, обладают большим разбросом, но показатель эффективности
зависит от них линейно (или почти линейно).
Второй прием ("оптимизация в среднем"), более сложный, применяется, когда случайность величин
Y1, Y2, … весьма существенна и замена каждой из них ее математическим ожиданием может привести к
большим ошибкам. Рассмотрим этот случай более подробно. Пусть показатель эффективности
существенно зависит от случайных факторов (будем для простоты считать их случайными
величинами) Y1, Y2, … допустим, что нам известно распределение этих факторов, скажем, плотность
распределения f (Y1, Y2, …). Предположим, что операция выполняется много раз, причем условия
Y1, Y2, … меняются от раза к разу случайным образом. Какое решение x 1, x2, … следует выбрать?
Очевидно, то, при котором операция в среднем будет наиболее эффективна, т. е. математическое
ожидание показателя эффективности
будет максимально. Таким образом, нужно выбирать такое
решение x 1, x2, …, при котором обращается в максимум математическое ожидание показателя
�Содержание
эффективности:
Такую оптимизацию мы будем называть "оптимизацией в среднем". А как же с элементом
неопределенности? Конечно, в какой-то мере он сохраняется. Успешность каждой отдельной
операции, осуществляемой при случайных, заранее неизвестных значениях Y1, Y2, …, может сильно
отличаться от ожидаемой средней, как в большую, так, к сожалению, и в меньшую сторону. При
многократном осуществлении операции эти различия, в среднем, сглаживаются; однако нередко
данный способ оптимизации решения, за неимением лучшего, применяется и тогда, когда операция
осуществляется всего несколько раз или даже один раз. Тогда надо считаться с возможностью
неприятных неожиданностей в каждом отдельном случае. Утешением нам может служить мысль о
том, что "оптимизация в среднем" все же лучше, чем выбор решения без всяких обоснований.
=M
= ∫…∫ (α1, …, y1, y2, …, x 1, …)f (y1, y2, …) dy1dy2…
(2.3)
Применяя этот прием к многочисленным (хотя бы и различным) операциям, все же мы в среднем
выигрываем больше, чем если бы совсем не пользовались расчетом.
Для того, чтобы составить себе представление о том, чем мы рискуем в каждом отдельном случае,
желательно, кроме математического ожидания показателя эффективности, оценивать также и его
дисперсию (или среднее квадратическое отклонение).
Наиболее трудным для исследования является случай неопределенности, когда неизвестные факторы
Y1, Y2, … не могут быть изучены и описаны с помощью статистических методов: их законы
распределения или не могут быть получены (соответствующие статистические данные отсутствуют),
или, что еще хуже, таких законов распределения вовсе не существует. Это бывает, когда явление, о
котором идет речь, не обладает свойством статистической устойчивости. Например, мы знаем, что на
Марсе возможно наличие органической жизни, и некоторые ученые даже считают его весьма
вероятным, но совершенно невозможно подсчитать эту вероятность на основе каких-либо
статистических данных. Другой пример: предположим, что эффективность проектируемого
вооружения сильно зависит от того, будет ли предполагаемый противник к моменту начала боевых
действий располагать средствами защиты, и если да, то какими именно? Очевидно, нет никакой
возможности подсчитать вероятности этих гипотез – самое большее, их можно назначить
произвольно, что сильно повредит объективности исследования.
В этих случаях, вместо произвольного и субъективного назначения вероятностей с дальнейшей
"оптимизацией в среднем", рекомендуется рассмотреть весь диапазон возможных условий Y1, Y2, … и
составить представление о том, какова эффективность операции в этом диапазоне и как на нее влияют
неизвестные условия. При этом задача исследования операций приобретает новые методологические
особенности.
Действительно, рассмотрим случай, когда эффективность операции
зависит, помимо заданных
условий α1, α2, … и элементов решения x 1, x2, … еще и от ряда неизвестных факторов Y1, Y2, …
нестатистической природы, о которых никаких определенных сведений нет, а можно делать только
предположения. Попробуем все же решить задачу. Зафиксируем мысленно параметры Y1, Y2, …
придадим им вполне определенные значения Y1 = y1, Y2 = y2,… и переведем тем самым в категорию
заданных условий α1, α2, …. Для этих условий мы в принципе можем решить задачу исследования
операций и найти соответствующее оптимальное решение x 1, x2, …. Его элементы, кроме заданных
условий α1, α2, …, очевидно, будут зависеть еще и от того, какие частные значения мы придали
условиям Y1, Y2, …:
x 1 = x 1(α1, α2, …; y1, y2, …);
x 2 = x 2(α1, α2, …; y1, y2, …).
�Содержание
Такое решение, оптимальное для данной совокупности условий y1, y2, … (и только для нее), называется
локально-оптимальным. Это решение, как правило, уже не оптимально для других значений Y1, Y2, …
Совокупность локально-оптимальных решений для всего диапазона условий Y1, Y2, … дает нам
представление о том, как мы должны были бы поступать, если бы неизвестные условия Y1, Y2, … были
нам в точности известны. Поэтому локально-оптимальное решение, на получение которого зачастую
тратится много усилий, имеет в случае неопределенности сугубо ограниченную ценность. Совершенно
очевидно, что в данном случае следует предпочесть не решение, строго оптимальное для каких-то
определенных условий, а компромиссное решение, которое, не будучи, может быть, строго
оптимальным ни для каких условий, оказывается приемлемым в целом диапазоне условий.
В настоящее время полноценной математической "теории компромисса" еще не существует, хотя в
теории решений и имеются некоторые попытки в этом направлении. Обычно окончательный выбор
компромиссного решения осуществляется человеком, который, опираясь на расчеты, может оценить и
сопоставить сильные и слабые стороны каждого варианта решения в разных условиях и на основе
этого сделать окончательный выбор. При этом необязательно (хотя иногда и любопытно) знать точный
локальный оптимум для каждой совокупности условий y1, y2, …. Таким образом, классические
вариационные и новейшие оптимизационные методы математики отступают в данном случае на
задний план.
В последнюю очередь рассмотрим своеобразный случай, возникающий в так называемых конфликтных
ситуациях, когда неизвестные параметры Y1, Y2, … зависят не от объективных обстоятельств, а от
активно противодействующего нам противника. Такие ситуации характерны для боевых действий,
отчасти для спортивных соревнований, в капиталистическом обществе – для конкурентной борьбы и
т. д. При выборе решений в подобных случаях может оказаться полезным математический аппарат так
называемой теории игр – математической теории конфликтных ситуаций. Модели конфликтных
ситуаций, изучаемые в теории игр, основаны на предположении, что мы имеем дело с разумным и
дальновидным противником, всегда выбирающим свое поведение наихудшим для нас (и наилучшим
для себя) способом. Такая идеализация конфликтной ситуации в некоторых случаях может подсказать
нам наименее рискованное, "перестраховочное" решение, которое необязательно принимать, но во
всяком случае полезно иметь в виду.
Наконец, сделаем одно общее замечание. При обосновании решения в условиях неопределенности, что
бы мы ни делали, элемент неопределенности остается. Поэтому неразумно предъявлять к точности
таких решений слишком высокие требования. Вместо того, чтобы после скрупулезных расчетов
однозначно указать одноединственное, в точности оптимальное (в каком-то смысле) решение, всегда
лучше выделить область приемлемых решений, которые оказываются несущественно хуже других,
какой бы точкой зрения мы ни пользовались. В пределах этой области могут произвести свой
окончательный выбор ответственные за него лица.
�Содержание
2.5. Оптимизация решения
Учет нескольких показателей
Выше мы рассмотрели задачу исследования операций, где требовалось так выбрать решение, чтобы
максимизировать (или минимизировать) один-единственный показатель эффективности
. На
практике часто встречается случай, когда эффективность операции приходится оценивать не по
одному, а сразу по нескольким показателям:
1,
2, …,
k; одни из этих показателей желательно
сделать больше, другие – меньше. Как правило, эффективность больших по объему, сложных операций
не может быть исчерпывающим образом охарактеризована с помощью одного показателя; на помощь
ему приходится привлекать и другие, дополнительные.
Например, при оценке деятельности промышленного предприятия приходится учитывать целый ряд
показателей, как то:
•
прибыль,
•
полный объем продукции ("вал"),
•
себестоимость и т. д.
При анализе боевой операции, помимо основного показателя, характеризующего ее эффективность
(например, математическое ожидание причиненного противнику ущерба), приходится учитывать и ряд
дополнительных, как то:
•
собственные потери,
•
время выполнения операции,
•
расход боеприпасов и т. д.
Такая множественность показателей эффективности, из которых некоторые желательно
максимизировать, а другие – минимизировать, суть сложной задачи исследования операций.
Возникает вопрос: как же быть?
Прежде всего надо подчеркнуть, что выдвинутые требования, вообще говоря, несовместимы. Решение,
обращающее в максимум один какой-то показатель
1, как правило, не обращает ни в максимум, ни в
минимум другие показатели
,
,
….
Поэтому
широко распространенная формулировка
2
3
"достижение максимального эффекта при минимальных затратах" для научного исследования не
подходит. Корректной является любая из формулировок "достижение максимального эффекта при
заданных затратах" или же "достижение заданного эффекта при минимальных затратах".
В общем случае не существует решения, которое обращало бы в максимум один показатель
1 и
одновременно в максимум (или минимум) другой показатель
2; тем более, такого решения не
существует для нескольких показателей. Однако количественный анализ эффективности может
оказаться весьма полезным и в случае нескольких показателей эффективности.
Прежде всего, он позволяет заранее отбросить явно нерациональные варианты решений, уступающие
лучшим вариантам по всем показателям. Проиллюстрируем сказанное на примере. Пусть
анализируется боевая операция , оцениваемая по двум показателям:
W – вероятность выполнения боевой задачи ("эффективность");
S – стоимость израсходованных средств.
Очевидно, первый показатель желательно обратить в максимум, а второй – в минимум. Предположим
для простоты, что предлагается на выбор конечное число – 20 различных вариантов решения;
�Содержание
обозначим их X1, Х2, …, Х20. Для каждого из них известны значения обоих показателей W и S.
Изобразим для наглядности каждый вариант решения в виде точки на плоскости с координатами W и S.
Рис. 2.1. Различные варианты решений
Рассматривая рисунок, мы видим, что некоторые варианты решения "неконкурентоспособны" и
заранее должны быть отброшены. Действительно, те варианты, которые имеют над другими
вариантами с той же стоимостью S преимущество по эффективности
, должны лежать на правой
границе области возможных вариантов. Те же варианты, которые при равной эффективности обладают
меньшей стоимостью, должны лежать на нижней границе области возможных вариантов.
Какие же варианты следует предпочесть при оценке эффективности по двум показателям? Очевидно,
те, которые лежат одновременно и на правой, и на нижней границе области (см. пунктирную линию
на рис. 2.1). Действительно, для каждого из вариантов, не лежащих на этом участке границы, всегда
найдется другой вариант, не уступающий ему по эффективности, но зато более дешевый или,
наоборот, не уступающий ему по дешевизне, но зато более эффективный. Таким образом, из 20
предварительно выдвинутых вариантов большинство выпадает из соревнования, и нам остается
только проанализировать оставшиеся четыре варианта: 16, 17, 19, 20. Из них 16 – наиболее
эффективный, но зато сравнительно дорогой; 20 – самый дешевый, но зато не столь эффективный.
Дело принимающего решение – разобраться в том, какой ценой мы согласны оплатить известное
повышение эффективности или, наоборот, какой долей эффективности мы согласны пожертвовать,
чтобы не нести слишком больших материальных потерь.
Аналогичный предварительный просмотр вариантов (хотя и без такой наглядной геометрической
интерпретации) может быть произведен и в случае многих показателей:
1,
2, …,
k. Такая
процедура предварительной отбраковки неконкурентоспособных вариантов решения должна всегда
предшествовать решению задачи исследования операций с несколькими показателями. Это хотя и не
снимает необходимости компромисса, но существенно уменьшает множество решений, в пределах
которого осуществляется выбор.
Ввиду того, что комплексная оценка операции сразу по нескольким показателям затруднительна и
требует размышлений, на практике часто пытаются искусственно объединить несколько показателей в
один обобщенный показатель (или критерий). Нередко в качестве такого обобщенного (составного)
критерия берут дробь; в числителе ставят те показатели
1,
2, …,
m, которые желательно
увеличить, а в знаменателе – те, которые желательно уменьшить:
U=
W1 · · · Wm
.
Wm+1 · · · Wk
(2.4)
�Содержание
Например, если речь идет о боевой операции, в числителе ставят такие величины, как "вероятность
выполнения боевой задачи" или "потери противника"; в знаменателе – "собственные потери", "расход
боеприпасов", "время выполнения операции" и т. п. Общим недостатком "составных критериев" типа
(2.4) является то, что недостаток эффективности по одному показателю всегда можно скомпенсировать
за счет другого (например, малую вероятность выполнения боевой задачи – за счет малого расхода
боеприпасов, и т. и.). Критерии подобного рода напоминают в шутку предложенный Львом Толстым
"критерий оценки человека" в виде дроби, где числитель – истинные достоинства человека, а
знаменатель – его мнение о себе. Несостоятельность такого критерия очевидна: если принять его
всерьез, то человек, почти без достоинств, но зато совсем без самомнения, будет иметь бесконечно
большую ценность! Часто "составные критерии" предлагаются не в виде дроби, а в виде "взвешенной
суммы" отдельных показателей эффективности:
U = α1 W1 + . . . + αk Wk ,
где α1, α2, …, αk – положительные или отрицательные коэффициенты. Положительные ставятся при тех
показателях, которые желательно максимизировать; отрицательные – при тех, которые желательно
минимизировать. Абсолютные значения коэффициентов ("веса") соответствуют степени важности
показателей. Нетрудно убедиться, что составной критерий вида (2.5) по существу ничем не отличается
от критерия вида (2.4) и обладает теми же недостатками (возможность взаимной компенсации
разнородных показателей). Поэтому некритическое пользование любого вида "составными"
критериями чревато опасностями и может привести к неправильным рекомендациям. Однако в
некоторых случаях, когда "веса" не выбираются произвольно, а подбираются так, чтобы составной
критерий наилучшим образом выполнял свою функцию, удается получить с его помощью некоторые
результаты ограниченной ценности. В некоторых случаях задачу с несколькими показателями удается
свести к задаче с одним-единственным показателем, если выделить только один (главный) показатель
эффективности
1 и стремиться его обратить в максимум, а на остальные, вспомогательные
показатели
,
2
3,… наложить только некоторые ограничения вида:
2≥
ω2, …
m≥
ωm,
m+1 ≥
ωm+1, …,
k
≥ ωk.
Эти ограничения, разумеется, войдут в комплекс заданных условий α1, α2, ….
Например, при оптимизации плана работы промышленного предприятия можно потребовать, чтобы
прибыль была максимальна, план по ассортименту – выполнен, а себестоимость продукции – не выше
заданной. При планировании бомбардировочного налета можно потребовать, чтобы нанесенный
противнику ущерб был максимален, но при этом собственные потери и стоимость операции не
выходили за известные пределы.
При такой постановке задачи все показатели эффективности, кроме одного, главного, переводятся в
разряд заданных условий операции. Варианты решения, не укладывающиеся в заданные границы,
сразу же отбрасываются, как неконкурентоспособные. Полученные рекомендации, очевидно, будут
зависеть от того, как выбраны ограничения для вспомогательных показателей. Чтобы определить,
насколько это влияет на окончательные рекомендации по выбору решения, полезно проварьировать
ограничения в разумных пределах.
Так или иначе, при любом способе формализации, задача количественного обоснования решения по
нескольким показателям остается не до конца определенной, и окончательный выбор решения
определяется волевым актом "командира" (так мы условно будем называть ответственное за выбор
лицо). Дело исследователя – предоставить в распоряжение командира достаточное количество данных,
позволяющих ему всесторонне оценить преимущества и недостатки каждого варианта решения и,
опираясь на них, сделать окончательный выбор.
�Содержание
Глава 3. Линейное программирование
3.2. Основная задача ЛП
3.3. Задача ЛП с неравенствами. Связь с ОЗЛП
3.4. Симплекс-метод решения задачи ЛП
3.5. Табличный алгоритм замены базиса
3.6. Отыскание допустимого решения
3.7. Отыскание оптимального решения
3.8. Понятие двойственности в ЛП
3.9. Решение двойственной задачи
3.10. Лабораторная работа
3.11. Примеры и задачи
3.12. Транспортная задача ЛП
3.13. Нахождение Начального Плана
3.14. Улучшение плана перевозок
3.15. Метод потенциалов
3.16. Транспортная задача с неправильным балансом
3.17. Примеры и задачи
�Содержание
3.1. Задачи линейного программирования
Во многих областях практики возникают своеобразные задачи оптимизации решений, для которых
характерны следующие черты:
1) показатель эффективности – это линейная функция от элементов решения x 1,x2,..
2) ограничительные условия, налагаемые на возможные решения, имеют вид линейных равенств или
неравенств.
Такие задачи принято называть задачами линейного программирования (в данном случае
подразумевается планирование). Приведем несколько примеров задач линейного программирования из
разных областей практики.
3.1.1. Задача о пищевом рационе
3.1.2. Задача о загрузке станков
3.1.3. Задачи ЛП в миниатюре
3.1.4. Задачи для самостоятельной работы
�Содержание
3.1.1. Задача о пищевом рационе
Имеется четыре вида продуктов питания:
F1, F2, F3, F4.
Известна стоимость единицы каждого продукта:
c1, c2, c3, c4.
Из этих продуктов необходимо составить пищевой рацион, который должен содержать:
•
белков не менее b1 единиц,
•
углеводов не менее b2 единиц,
•
жиров не менее b3 единиц.
Единица продукта F1 cодержит аi1 единиц белков, ai2 единиц углеводов, ai3 единиц жиров и т. д.
Требуется так составить пищевой рацион, чтобы обеспечить заданные условия при минимальной
стоимости рациона. Запишем сформулированные словесно условия задачи в виде математических
формул. Обозначим
x 1, x 2, x 3, x 4.
количества продуктов F1, F2, F3, F4, входящих в рацион. Очевидно, общая стоимость рациона будет
L = c1x 1 + c2x 2 + c3x 3 + c4x 4.
или короче
L=
4
∑
(3.1)
ci xi .
i=1
Запишем математически условия задачи. В одной единице продукта F1 содержится а11 единиц белка,
значит, в x 1 единицах продукта F1 содержитcя а11 × x 1 единиц белка, в x 2 единицах продукта F2
содержится а21 × x 2 единиц белка и т. д. Общее количество белков, содержащееся в рационе, не должно
быть меньше b1, отсюда получаем первое условие-неравенство:
а11 • x1 + а21 • x2 + а31 • x3 + а41 • x4 ≥ b1.
(3.2)
Записывая аналогичные условия для углеводов и жиров, получим, включая (3.38), три условиянеравенства:
a · x + a21 · x2 + a31 · x3 + a41 · x4
11 1
a12 · x1 + a22 · x2 + a32 · x3 + a42 · x4
a ·x +a ·x +a ·x +a ·x
13
1
23
2
33
3
43
4
b1 ;
b2 ;
(3.3)
b3 .
Эти условия представляют собой ограничения, накладываемые на решение. Возникает следующая
задача:
Выбрать неотрицательные значения переменных x 1, x 2, x 3, x 4 удовлетворяющие линейным
неравенствам (3.3), при которых линейная функция этих переменных
L = c1x 1 + c2x 2 + c3x 3 + c4x 4.
обращалась бы в минимум.
Поставленная задача представляет собой типичную задачу линейного программирования. Не
останавливаясь пока на способах ее решения, поставим еще несколько подобных задач.
�Содержание
3.1.2. Задача о загрузке станков
Ткацкая фабрика располагает N1 станками типа 1 и N2 станками типа 2. Станки могут производить
четыре вида тканей:
T1, T2 ,T3 ,T4.
Каждый тип станка может производить любой из видов тканей, но в неодинаковом количестве.
Станок типа 1 производит в месяц а11 метров ткани T1, а12 метров ткани T2, а13 метров ткани T3, а14
метров ткани T4. Соответствующие числа для станка типа 2 будут а21,а22,а23,а24. Таким образом,
производительности станков при производстве каждого вида ткани заданы таблицей.
Тип станков / Ткань
1
2
T1
а 11
а 21
T2
а 12
а 22
T3
а 13
а 23
T4
а 14
а 24
Производство ткани T1 на одном станке типа 1 в течение месяца приносит фабрике доход с11, ткани T2
– доход c12, ткани T3 – доход с13 и ткани T4 – доход с14, а производство ткани T1 на одном станке типа 2
в течение месяца приносит фабрике доход с21, ткани T2 – доход с22, ткани T3 – доход с23 и ткани T4 –
доход с24. Фабрике предписан план, согласно которому она обязана произвести за месяц: не менее b1
метров ткани T1, не менее b2 метров ткани T2, не менее b3 метров ткани T3 и не менее b4 метров ткани
T4, т. е. плановое задание выражается числами b1, b2, b3, b4. Требуется так распределить загрузку станков
производством тканей различного вида, чтобы план был выполнен и при этом месячная прибыль
была максимальна. Запишем условия задачи математически. Обозначим х 11 – число станков типа 1,
занятых производством ткани T1, x 12 – число станков типа 1, занятых производством ткани Т2, и
вообще x ij – число станков типа i, занятых производством ткани Tj. Первый индекс соответствует типу
станка, второй – виду ткани (i = 1, 2, j = 1, 2, 3, 4). Таким образом возникают восемь переменных –
элементов решения:
x11
x21
x12
x13
x14;
x22
x23
x24,
которые мы должны выбрать так, чтобы месячная прибыль была максимальна. Запишем формулу для
вычисления этой прибыли. Каждый станок типа 1, занятый производством ткани Т1, приносит
прибыль с11; х 11 станков типа 1, занятые производством ткани Т1, принесут прибыль с11 • х11. Всего
производство ткани Т1 принесет прибыли с11 • х11 + с21 • х21 и т. д. Общая прибыль будет равна:
L = c11х 11 + c21х 21 + c12х 12 + c22х 22 + c13х 13 + c23х 23 + c14х 14 + c24х 24.
(3.5)
Требуется выбрать такие неотрицательные значения переменных (3.4), чтобы линейная функция от них
(3.5) обращалась в максимум. При этом должны выполняться следующие ограничительные условия:
4. Ресурсы по станкам не должны быть превышены, т. е. сумма количеств станков каждого типа,
занятых производством всех тканей,
не должна превышать наличного запаса станков:
x +x +x +x
11
12
13
14
x +x +x +x
21
22
23
N1 ;
N2 .
24
(3.6)
5. Задания по ассортименту должны быть выполнены (или перевыполнены). С учетом данных в
таблице эти условия запишутся в виде
неравенств:
a11 x11 + a21 x21
a x +a x
12 12
22 22
a13 x13 + a23 x23
a x +a x
14 14
24 24
b1 ;
b2 ;
b3 ;
b4 .
(3.7)
�Содержание
Таким образом, сформулирована задача:
Выбрать неотрицательные значения переменных x 1, x 2, x 3, x 4 удовлетворяющие линейным
неравенствам (3.6) и (3.7), при которых линейная функция этих переменных (3.5) обращалась бы
в максимум.
�Содержание
3.1.3. Задачи ЛП в миниатюре
Полезным материалом для выработки навыков работы с различными проблемными ситуациями может
оказаться работа с примерами "миниатюрных" проблем, с одной стороны практически
правдоподобных, с другой стороны приводящих к решению задач линейного программирования.
Рассмотрим пример такой "миниатюрной" проблемной ситуации:
Пример. Изделие получается в результате смешения двух веществ (1-я компонента и 2-я компонента),
заливки смеси в заранее подготовленную форму и содержания там при заданном режиме
определенное время, при этом изготавливаемый продукт, при выполнении всех технологических
условий, приобретает необходимые свойства. Предприятию надо определить сколько х 1 1-го
компонента и сколько х 2 2-го компонента надо для изготовления изделия заказчику. Затраты
производства в расчете на 1 кг 1-го компонента равняются 5 у.е., а затраты в расчете на 1 кг 2-го
компонента 4 у.е. Необходимо поставить не менее 10 кг изделия, но заказчик готов оплатить и больше.
Запасы 1-го компонента ограничены и не превышают 8 кг, а запасы 2-го компонента не превышают
7 кг. Отношение веса 2-го компонента к весу 1-го компонента в процессе получения изделия не
должно превышать 7:8. Производственнотехнологические условия таковы, что на процессы
изготовления изделия не может быть отведено более 18 ч; при этом время формирования изделия
зависит от содержания в смеси компонент: каждый кг 1-го компонента требует 1.5 ч, а каждый кг 2-го
компонента – 2 ч производственного времени. Постройте математическую модель. На графике
изобразите область допустимых решений и укажите среди них оптимальное.
Cоставление математической модели:
Так как про прибыль от производства изделия в условиях ничего не сказано, то единственный способ
выбора наилучшего решения из числа допустимых – это минимизация расходов на изготовление
изделия. Из полученной информации имеем, что величина затрат при использовании x 1 1-го
компонента и x 2 2-го компонента для изготовления изделия будет:
L = 5x 1 + 4x 2.
Допустимые решения относительно выбора x 1 и x 2 определяются из следующей информации:
1. Запасы ограничены, следовательно,
0 ≤ x 1 ≤ 8, 0 ≤ x 2 ≤ 7.
2. Необходимо поставить не менее 10 кг изделия. Следовательно,
x 1 + x 2 ≥ 10.
3. Отношение веса 2-го компонента к весу 1-го компонента в процессе получения изделия не должно
превышать 7:8. Следовательно,
x2
x1
7
⇒ 8x2
8
7x1 ⇒ 7x1 − 8x2
0.
4. На процессы изготовления изделия не может быть отведено более 18 ч; при этом время
формирования изделия зависит от содержания в смеси компонент: каждый кг 1-го компонента
требует 1.5 ч, а каждый кг 2-го компонента – 2 ч производственного времени. Следовательно,
1.5x 1 + 2x 2 ≤ 18.
�Содержание
Объединяя все вышеизложенное, получаем следующую математическую модель:
L = 5x1 + 4x2 → min
x1
8;
x2
7;
x1
+
x2
10;
7x1
1.5x1
−
8x2
0;
+
2x2
18;
x1
0; x2
0.
Мы видим, что это задача линейного программирования. Рассмотрим графический способ решения
этой задачи.
Прежде всего построим область допустимых решений:
Каждое из ограничительных неравенств, сформулированных по информации, доступной нам из
описания задачи (проблемы), линейно относительно неизвестных x 1 и х 2 и, следовательно,
геометрическое место точек с координатами x 1 и х 2, удовлетворяющих каждому из этих неравенств,
будет представлять собой полуплоскость. Для изображения этих полуплоскостей на графике
необходимо начертить граничные линии, отделяющие точки этих полуплоскостей от других точек
плоскости, и затем выделить общую часть этих полуплоскостей. Сделаем это, последовательно
формируя область допустимых решений (ОДР) из приведенных выше неравенств.
Рассмотрим первое неравенство x 1 ≤ 8. Уравнение граничной линии – x 1 = 8. Изобразим эту линию на
графике и заштрихуем ту часть плоскости, где выполняется первое неравенство (см. рис. 3.1).
Рассмотрим второе неравенство х 2 ≤ 7. Уравнение граничной линии – х 2 = 7. Изобразим эту линию на
графике и заштрихуем ту часть плоскости, где выполняется первое и второе неравенство одновременно
(см. рис. 3.2). Рассмотрим третье неравенство x 1 + x 2 ≥ 10. Уравнение граничной линии – x 1 + x 2 = 10.
Для изображения граничной линии на графике найдем сначала две точки, через которые проходит эта
прямая, и затем проведем прямую линию через эти две точки. Точки будем искать в отрезках на осях.
Рис. 3.1. Учет первого неравенства
Для определения 1-й точки положим х 1 = 0 и подставим это значение в уравнение граничной линии,
получим, что х 2 = 10. В результате получаем, что координаты 1-й точки – x 1 = 0; х 2 = 10. Аналогично
определяем координаты 2-й точки: теперь полагаем х 2 = 0 и получаем, что х 1 = 10. То есть координаты
�Содержание
2-й точки будут х 1 = 10; х 2 = 0. Изобразим эту линию на графике и заштрихуем ту часть плоскости, где
выполняются первые три неравенства вместе (см. рис. 3.3).
Рассмотрим 4-е неравенство 7х 1 – 8х 2 ≥ 0. Уравнение граничной линии – 7х 1 – 8х 2 = 0. Для
изображения граничной линии на графике также найдем сначала две точки, через которые проходит
эта прямая и затем проведем прямую линию через эти две точки. Однако здесь есть особенность при
выборе точек. Эта прямая проходит через точку х 1 = 0; х 2 = 0 – начало координат, поэтому искать точки,
используя отрезки на осях, как это делали ранее, нельзя. 2-ю точку легко определить, придавая
переменным значения, равные коэффициенту при другой переменной. В нашем случае легко
проверить, что точка х 1 = 8; х 2 = 7 лежит на граничной линии. Таким образом мы получили две точки,
через которые проходит граничная прямая: х 1 = 0; х 2 = 0 и х 1 = 8; х 2 = 7. Изобразим эту линию на
графике и заштрихуем ту часть плоскости, где выполняются первые четыре неравенства (см. рис. 3.4).
И, наконец, рассмотрим пятое неравенство 1.5x 1 + 2x 2 ≤ 18.
Рис. 3.2. Учет первых двух неравенств
Рис. 3.3. Учет первых трех неравенств
�Содержание
Рис. 3.4. Учет первых четырех неравенств
Уравнение граничной линии – 1.5x 1 + 2x 2 = 18. В этом случае находим две точки в отрезках на осях.
Для 1-й точки положим x 1 = 0, 2x 2 = 18, x 2 = 9. В результате получаем, что координаты 1-й точки –
x 1 = 0;
x 2 = 9.
Аналогично
определяем
координаты
2-й
точки:
теперь
полагаем
x 2 = 0, 1.5x 1 = 18, x 1 = 12. То есть координаты 2-й точки будут x 1 = 12; x 2 = 0. Изобразим эту линию на
графике и заштрихуем ту часть плоскости, где выполняются все неравенства (см. рис. 3.5). Это и есть
наша область допустимых решений.
Следующий этап: нахождение оптимальной точки из числа найденных нами точек области
допустимых решений. Для этого необходимо зафиксировать некоторый уровень расходов, например
при x 1 = 6; x 2 = 7.5. Тогда L = L = 5x 1 + 4x 2 = 5•6+4•7.5 = 60. Изобразим эту линию на графике
(см. рис. 3.6).
Все точки на этой линии имеют один и тот же расход в 60 у.е. Нам надо минимизировать расход от
изготовления заказа. Для определения точки, в которой будет значение расхода минимально при
соблюдении всех условий задачи, надо сдвигать линию расхода в направлении стрелки до тех пор,
пока она имеет общие точки с нашей ОДР. На рис. 3.7 это точка обозначена, а максимально возможный
сдвиг линии расхода отмечен пунктиром. Осталось определить координаты оптимальной точки. Из
рис. 3.7 видно, что эта точка лежит на пересечении двух прямых: x 1 + x 2 = 10 и 7x 1 – 8x 2 = 0. Решая эту
систему уравнений с двумя неизвестными, получаем следующий результат: координаты оптимальной
точки x 1 = 5⅓; x 2 = 4⅔.
Рис. 3.5. Область допустимых решений
�Содержание
Рис. 3.6. ОДР с линией фиксированного расхода
Минимальное значение расходов Lmin =45 3.
Рис. 3.7. К нахождению оптимальной точки
�Содержание
3.1.4. Задачи для самостоятельной работы
1. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 6 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 80 m3 берёзы и 180 m3 осины. Необходимо произвести не менее 8 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
2. Предприятию "Крепкая сталь" надо определить, сколько х 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 4 у.е., а
затраты в расчете на 1 т металлолома – 6 у.е. Необходимо поставить не менее 6 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы металлолома не
превышают 6 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 7 : 8. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 18 ч; при этом на 1 т стали уходит 3 ч, а на 1 т
металлолома – 2 ч производственного времени. Постройте математическую модель. На графике
изобразите область допустимых решений и укажите среди них оптимальное.
3. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 4 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 120 m3 березы и 140 m3 осины. Необходимо произвести не менее 9 m3 1-го типа
продукта и 1100 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
4. Предприятию "Крепкая сталь" надо определить, сколько х 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 2 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 5 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы металлолома не
превышают 5 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 6 : 8. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
2 ч производственного времени. Постройте математическую модель. На графике изобразите
область допустимых решений и укажите среди них оптимальное.
5. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 6 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 80 m3 березы и 180 m3 осины. Необходимо произвести не менее 11 m3 1-го типа
продукта и 1000 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 60 у.е., а со 100
m2 фанеры – 20 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
�Содержание
6. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 2,5
m3 осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 10 m3 осины.
Допускается к использованию 100 m3 березы и 180 m3 осины. Необходимо произвести не менее 11
m3 1-го типа продукта и 1100 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 30
у.е., а со 100 m2 фанеры – 40 у.е. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
7. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 4 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 120 m3 березы и 140 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 1000 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 30 у.е., а со 100
m2 фанеры – 20 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
8. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 8 m3 осины. Допускается к
использованию 100 m3 березы и 200 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 900 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 25 у.е., а со 100
m2 фанеры – 40 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
9. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 4 m3 березы и 6 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 4 m3 березы и 8 m3 осины. Допускается к
использованию 90 m3 березы и 190 m3 осины. Необходимо произвести не менее 8 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 20 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
10. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 5 m3 березы и 2,5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 6 m3 березы и 8 m3 осины. Допускается к
использованию 100 m3 березы и 200 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 15 у.е., а со 100
m2 фанеры – 45 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
11. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 4 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 4 m3 березы и 6 m3 осины. Допускается к
использованию 100 m3 березы и 140 m3 осины. Необходимо произвести не менее 11 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 30 у.е., а со 100
m2 фанеры – 50 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
�Содержание
12. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 5 m3 осины. Допускается к
использованию 120 m3 березы и 180 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 15 у.е., а со 100
m2 фанеры – 50 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
13. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 2,5
m3 осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 10 m3 осины.
Допускается к использованию 100 m3 березы и 160 m3 осины. Необходимо произвести не менее 12
m3 1-го типа продукта и 1000 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16
у.е., а со 100 m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
14. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 2 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 5 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы металлолома не
превышают 7 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 5 : 7. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 4 ч, а на 1 т металлолома –
2 ч производственного времени. Постройте математическую модель. На графике изобразите
область допустимых решений и укажите среди них оптимальное.
15. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта тре бует 2,5 m3 березы и 5
m3 осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 10 m3 осины.
Допускается к использованию 100 m3 березы и 180 m3 осины. Необходимо произвести не менее 10
m3 1-го типа продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16
у.е., а со 100 m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
16. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 2.5 у.е., а
затраты в расчете на 1 т металлолома – 3.5 у.е. Необходимо поставить не менее 4.5 т литья, но
заказчик готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы
металлолома не превышают 6 т. Отношение веса металлолома к весу руды в процессе получения
сплава не должно превышать 5 : 8. Производственнотехнологические условия таковы, что на
процессы плавки и литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 4 ч, а на
1 т металлолома – 2 ч производственного времени. Постройте математическую модель. На графике
изобразите область допустимых решений и укажите среди них оптимальное.
�Содержание
17. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 3 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 4.5 т литья, но
заказчик готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы
металлолома не превышают 6 т. Отношение веса металлолома к весу руды в процессе получения
сплава не должно превышать 6 : 7. Производственно-технологические условия таковы, что на
процессы плавки и литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 3.5 ч, а
на 1 т металлолома – 3 ч производственного времени. Постройте математическую модель. На
графике изобразите область допустимых решений и укажите среди них оптимальное.
18. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 4 у.е., а
затраты в расчете на 1 т металлолома – 6 у.е. Необходимо поставить не менее 6 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы металлолома не
превышают 7 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 4 : 7. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
4ч производственного времени. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
19. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 4 у.е., а
затраты в расчете на 1 т металлолома – 5 у.е. Необходимо поставить не менее 6 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы металлолома не
превышают 7 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 4 : 5. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 21ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
5 ч производственного времени. Постройте математическую модель. На графике изобразите
область допустимых решений и укажите среди них оптимальное.
20. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 3 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 5.5 т литья, но
заказчик готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы
металлолома не превышают 6 т. Отношение веса металлолома к весу руды в процессе получения
сплава не должно превышать 4 : 3. Производственно-технологические условия таковы, что на
процессы плавки и литья не может быть отведено более 19 ч; при этом на 1 т стали уходит 3 ч, а на
1 т металлолома – 5 ч производственного времени. Постройте математическую модель. На графике
изобразите область допустимых решений и укажите среди них оптимальное.
21. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 6 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 80 m3 березы и 180 m3 осины. Необходимо произвести не менее 8 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
�Содержание
22. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 4 у.е., а
затраты в расчете на 1 т металлолома – 6 у.е. Необходимо поставить не менее 6 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы металлолома не
превышают 6 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 7 : 8. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 18 ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
2 ч производственного времени. Постройте математическую модель. На графике изобразите
область допустимых решений и укажите среди них оптимальное.
23. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 4 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 120 m3 березы и 140 m3 осины. Необходимо произвести не менее 9 m3 1-го типа
продукта и 1100 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
24. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 2 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 5 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы металлолома не
превышают 5 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 6 : 8. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
2ч производственного времени. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
25. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 6 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 80 m3 березы и 180 m3 осины. Необходимо произвести не менее 11 m3 1-го типа
продукта и 1000 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 60 у.е., а со 100
m2 фанеры – 20 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
26. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 2,5
m3 осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 10 m3 осины.
Допускается к использованию 100 m3 березы и 180 m3 осины. Необходимо произвести не менее 11
m3 1-го типа продукта и 1100 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 30
у.е., а со 100 m2 фанеры – 40 у.е. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
27. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 4 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 12 m3 осины. Допускается к
использованию 120 m3 березы и 140 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 1000 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 30 у.е., а со 100
m2 фанеры – 20 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
�Содержание
28. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 8 m3 осины. Допускается к
использованию 100 m3 березы и 200 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 900 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 25 у.е., а со 100
m2 фанеры – 40 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
29. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 4 m3 березы и 6 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 4 m3 березы и 8 m3 осины. Допускается к
использованию 90 m3 березы и 190 m3 осины. Необходимо произвести не менее 8 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 20 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
30. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 5 m3 березы и 2,5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 6 m3 березы и 8 m3 осины. Допускается к
использованию 100 m3 березы и 200 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 15 у.е., а со 100
m2 фанеры – 45 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
31. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2 m3 1-го типа продукта требует 2 m3 березы и 4 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 4 m3 березы и 6 m3 осины. Допускается к
использованию 100 m3 березы и 140 m3 осины. Необходимо произвести не менее 11 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 30 у.е., а со 100
m2 фанеры – 50 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
32. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 5 m3 осины. Допускается к
использованию 120 m3 березы и 180 m3 осины. Необходимо произвести не менее 12 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 15 у.е., а со 100
m2 фанеры – 50 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
33. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта тре бует 2,5 m3 березы и 2,5
m3 осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 10 m3 осины.
Допускается к использованию 100 m3 березы и 160 m3 осины. Необходимо произвести не менее 12
т3 1-го типа продукта и 1000 т2 2-го типа продукта. Доход с 1 т3 1-го типа продукта составляет 16
у.е., а со 100 т2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
�Содержание
34. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 2 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 5 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы металлолома не
превышают 7 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 5 : 7. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 4 ч, а на 1 т металлолома –
2ч производственного времени. Постройте математическую модель. На графике изобразите область
допустимых решений и укажите среди них оптимальное.
35. Предприятие имеет деревообрабатывающий завод для производства двух типов продуктов. Для
этого используют лесной массив. Получение 2,5 m3 1-го типа продукта требует 2,5 m3 березы и 5 m3
осины. Для изготовления 100 m2 2-го типа продукта надо 5 m3 березы и 10 m3 осины. Допускается к
использованию 100 m3 березы и 180 m3 осины. Необходимо произвести не менее 10 m3 1-го типа
продукта и 1200 m2 2-го типа продукта. Доход с 1 m3 1-го типа продукта составляет 16 у.е., а со 100
m2 фанеры – 60 у.е. Постройте математическую модель. На графике изобразите область допустимых
решений и укажите среди них оптимальное.
36. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 2.5 у.е., а
затраты в расчете на 1 т металлолома – 3.5 у.е. Необходимо поставить не менее 4.5 т литья, но
заказчик готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы
металлолома не превышают 6 т. Отношение веса металлолома к весу руды в процессе получения
сплава не должно превышать 5 : 8. Производственнотехнологические условия таковы, что на
процессы плавки и литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 4 ч, а на
1 т металлолома – 2ч производственного времени. Постройте математическую модель. На графике
изобразите область допустимых решений и укажите среди них оптимальное.
37. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 3 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 4.5 т литья, но
заказчик готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы
металлолома не превышают 6 т. Отношение веса металлолома к весу руды в процессе получения
сплава не должно превышать 6 : 7. Производственно-технологические условия таковы, что на
процессы плавки и литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 3.5 ч, а
на 1 т металлолома – 3 ч производственного времени. Постройте математическую модель. На
графике изобразите область допустимых решений и укажите среди них оптимальное.
38. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 4 у.е., а
затраты в расчете на 1 т металлолома – 6 у.е. Необходимо поставить не менее 6 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 5 т, а запасы металлолома не
превышают 7 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 4 : 7. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 20 ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
4 ч производственного времени. Постройте математическую модель. На графике изобразите
область допустимых решений и укажите среди них оптимальное.
�Содержание
39. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 4 у.е., а
затраты в расчете на 1 т металлолома – 5 у.е. Необходимо поставить не менее 6 т литья, но заказчик
готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы металлолома не
превышают 7 т. Отношение веса металлолома к весу руды в процессе получения сплава не должно
превышать 4 : 5. Производственно-технологические условия таковы, что на процессы плавки и
литья не может быть отведено более 21ч; при этом на 1 т стали уходит 3 ч, а на 1 т металлолома –
5 ч производственного времени. Постройте математическую модель. На графике изобразите
область допустимых решений и укажите среди них оптимальное.
40. Предприятию "Крепкая сталь" надо определить, сколько x 1 руды и сколько х 2 металлолома надо для
изготовления сплава заказчику. Затраты производства в расчете на 1 т руды равняются 3 у.е., а
затраты в расчете на 1 т металлолома – 4 у.е. Необходимо поставить не менее 5.5 т литья, но
заказчик готов оплатить и больше. Запасы руды ограничены и не превышают 4 т, а запасы
металлолома не превышают 6 т. Отношение веса металлолома к весу руды в процессе получения
сплава не должно превышать 4 : 3. Производственно-технологические условия таковы, что на
процессы плавки и литья не может быть отведено более 19 ч; при этом на 1 т стали уходит 3 ч, а на
1 т металлолома – 5 ч производственного времени. Постройте математическую модель. На графике
изобразите область допустимых решений и укажите среди них оптимальное.
�Содержание
3.2. Основная задача ЛП
Существуют различные практические задачи, сводящиеся к схеме линейного программирования. В
одних из этих задач линейные ограничения имеют вид неравенства, в других – равенств, в третьих –
тех и других. Здесь мы рассмотрим задачу линейного программирования с ограничениямиравенствами – так называемую основную задачу линейного программирования (ОЗЛП).
Основная задача линейного программирования ставится следующим образом.
Имеется ряд переменных x 1, x2, …, x n.
Требуется найти такие неотрицательные значения этих переменных, которые удовлетворяли бы
системе линейных уравнений:
a11 x1 + a12 x2 + . . . + a1n xn
a x + a x + ... + a x
21 1
22 2
2n n
......
a x + a x + ... + a x
m1 1
m2 2
mn n
=
b1 ;
=
b2 ;
(3.8)
...
= bm ;
и, кроме того, обращали бы в минимум линейную функцию
L = c1х 1 + c2х 2 +…+ cnх n.
(3.9)
Очевидно, случай, когда линейную функцию нужно обратить не в минимум, а в максимум, легко
сводится к предыдущему, если изменить знак функции и рассмотреть вместо нее функцию
L'= –L = –c1х 1 – c2х 2 –…– cnх n.
(3.10)
Условимся называть допустимым решением ОЗЛП любую совокупность переменных
х 1 ≥ 0, х 2 ≥ 0, …, х n ≥ 0,
удовлетворяющую уравнениям (3.8).
Оптимальным решением будем называть то из допустимых решений, при котором линейная функция
(3.9) обращается в минимум. Основная задача линейного программирования необязательно должна
иметь решение. Может оказаться, что уравнения (3.8) противоречат друг другу; может оказаться, что
они имеют решение, но не в области неотрицательных значений x 1, x2, …, x n. Тогда ОЗЛП не имеет
допустимых решений. Наконец, может оказаться, что допустимые решения ОЗЛП существуют, но среди
них нет оптимального: функция L в области допустимых решений неограничена снизу. С примерами
таких особенностей ОЗЛП мы познакомимся в дальнейшем.
Рассмотрим вопрос о существовании допустимых решений ОЗЛП. При решении этого вопроса мы
можем исключить из рассмотрения линейную функцию L, которую требуется минимизировать –
наличие допустимых решений определяется только уравнениями (3.8). Итак, пусть имеется система
уравнений (3.8). Существуют ли неотрицательные значения x 1, x2, …, x n, удовлетворяющие этой
системе? Этот вопрос рассматривается в специальном разделе математики – линейной алгебре.
Приведем некоторые сведения из линейной алгебры, не останавливаясь на доказательствах
соответствующих теорем.
Если система уравнений-ограничений ОЗЛИ совместна, то матрица системы и ее расширенная
матрица имеют один и тот же ранг. Этот общий ранг r называется рангом системы; он представляет
собой не что иное, как число линейно независимых уравнений среди наложенных ограничений.
Очевидно, ранг системы r не может быть больше числа уравнений m: r ≤ m.
Очевидно, также, что ранг системы не может быть больше общего числа переменных n: r ≤ n.
�Содержание
Действительно, ранг матрицы системы определяется как наибольший порядок определителя,
составленного из элементов матрицы; так как число ее строк равно m, то r ≤ m; так как число ее
столбцов равно n, то r ≤ n. Структура задачи линейного программирования существенно зависит от
ранга системы ограничений (3.8).
Рассмотрим, прежде всего, случай, когда r = n, т. е. когда число линейно независимых уравнений,
входящих в систему (3.8), равно числу переменных и. Отбросим "лишние" уравнения, являющиеся
линейными комбинациями других.Система уравнений-ограничений ОЗЛИ принимает вид:
a11 x1 + a12 x2 + . . . + a1n xn
a x + a x + ... + a x
21 1
22 2
2n n
......
a x + a x + ... + a x
n1 1
n2 2
nn n
=
b1 ;
=
b2 ;
(3.11)
...
= bn .
Так как r = n, то определитель, составленный из коэффициентов
△=
a11
a12
...
a1n
b1
a21
a22
...
a2n
b2
...
...
...
...
...
an1
an2
...
ann
bn
не равен нулю. Известно, что в этом случае система (3.11) имеет единственное решение. Чтобы найти
величину x i, достаточно в определителе Δ – заменить i-й столбец – столбцом свободных членов и
разделить на Δ. Итак, при r = n система уравнений-ограничений ОЗЛИ имеет единственное решение:
x 1, x2, …, x n.
Если в этом решении хотя бы одна из величин x 1, x2, …, x n отрицательна, это значит, что полученное
решение недопустимо и, значит, ОЗЛП не имеет решения.
Если все величины x 1, x2, …, x n неотрицательны, то найденное решение является допустимым. Оно
же, очевидно, является и оптимальным (потому что других нет). Очевидно, этот тривиальный случай
не может нас интересовать. Поэтому в дальнейшем мы будем рассматривать только случай, когда r < n,
т. е. когда число независимых уравнений, которым должны удовлетворять переменные x 1, x2, …, x n,
меньше числа самих переменных. Тогда, если система совместна, у нее существует бесчисленное
множество решений. При этом n – r переменным мы можем придавать произвольные значения (так
называемые свободные переменные), а остальные r переменных выразятся через них (эти r
переменных мы будем называть базисными).
Вообще, если ранг системы уравнений ОЗЛП (т. е. число линейно независимых уравнений, входящих в
систему ограничений) равен r, то всегда можно выразить какие-то r базисных переменных через n – r
остальных (свободных) и, придавая свободным переменным любые значения, получить бесчисленное
множество решений системы. В дальнейшем для простоты, записывая уравнения ОЗЛП, мы будем
считать их линейно независимыми; при этом ранг системы r будет равен числу уравнений т.
Итак, если число уравнений ОЗЛП r = т меньше, чем число переменных n, то система линейных
уравнений имеет бесчисленное множество решений, т. е. совокупностей значений x 1, x2, …, x n,
удовлетворяющих уравнениям-ограничениям (3.8). Если среди этих решений нет ни одного, для
которого все x 1, x2, …, x n неотрицательны, то это значит, что ОЗЛП не имеет допустимого решения.
Если же существуют какие-то решения системы (3.8), для которых все x 1, x2, …, x n неотрицательны
(короче, "неотрицательные решения"), то каждое из них допустимо. Возникает задача – найти среди
допустимых решений оптимальное, т. е. такое решение x 1, x2, …, x n, для которого линейная функция
L = c1x 1 + c2x 2 +…+ cnx n
обращается в минимум.
Назовем опорной точкой такое решение, в котором все свободные переменные равны 0. Можно
показать, что если оптимальное решение существует, то оно достигается в одной из опорных точек.
�Содержание
3.3. Задача ЛП с неравенствами. Связь с ОЗЛП
На практике ограничения в задаче линейного программирования часто задаются не уравнениями, а
неравенствами. Рассмотрим, как можно перейти от задачи с ограничениями-неравенствами к
основной задаче линейного программирования. Пусть имеется задача линейного программирования с
n переменными x 1, x2, … , x n, в которой ограничения, наложенные на переменные, имеют вид
линейных неравенств. В некоторых из них знак неравенства может быть ≥, а в других ≤ (второй вид
сводится к первому простой переменой знака обеих частей). Поэтому зададим все ограничениянеравенства в стандартной
форме:
a11 x1
a x
21 1
...
a x
m1 1
+
a12 x2
+
...
+
a1n xn
+
b1
0;
+
a22 x2
+
...
+
a2n xn
+
b2
0;
...
...
...
...
...
...
...
...
+
am2 x2
+
...
+
amn xn
+
bm
...
(3.12)
...
0.
Будем считать, что все эти неравенства линейно независимы (т. е. никакое из них нельзя представить в
виде линейной комбинации других). Требуется найти такую совокупность неотрицательных значений
x 1, x2, …, x n, которая удовлетворяла бы неравенствам (3.12) и, кроме того, обращала бы в минимум
линейную функцию:
L = c1х 1 + c2х 2 +…+ cnх n.
(3.13)
От поставленной таким образом задачи легко перейти к основной задаче линейного
программирования. Действительно,
введем обозначения:
y1
y
2
...
y
m
=
a11 x1
+
a12 x2
+
...
+
a1n xn
+
b1 ;
=
a21 x1
+
a22 x2
+
...
+
a2n xn
+
b2 ;
...
...
...
...
...
...
...
...
...
...
=
am1 x1
+
am2 x2
+
...
+
amn xn
+
bm ,
(3.14)
где y1, y2, …, ym - некоторые новые переменные, которые мы будем называть "добавочными". Согласно
условиям (3.12), эти добавочные переменные так же, как и x 1, x2, …, x n, должны быть
неотрицательными. Таким образом, перед нами возникает задача линейного программирования в
следующей постановке: найти такие неотрицательные значения n + m переменных x 1, x2, …, x n;
y1, y2, …, ym, чтобы они удовлетворяли системе уравнений (3.14) и одновременно обращали в минимум
линейную функцию этих переменных:
L = c1х 1 + c2х 2 +…+ cnх n.
Как видно, перед нами в чистом виде основная задача линейного программирования (ОЗЛП).
Уравнения (3.14) заданы в форме, уже разрешенной относительно базисных переменных y1, y2, … , ym,
которые выражены через свободные переменные x 1, x2, …, x n. Общее количество переменных равно
n + m, го них n "первоначальных" и m "добавочных". Функция L выражена только через
"первоначальные" переменные (коэффициенты при "добавочных" переменных в ней равны нулю).
Таким образом, задача линейного программирования с ограничениями-неравенствами сведена нами к
основной задаче линейного программирования, но с большим числом переменных, чем первоначально
было в задаче.
Пример 1. Имеется задача линейного программирования с ограничениями-неравенствами: найти
неотрицательные значения переменных x 1, x 2, x 3, x 4, x5, удовлетворяющие условиям
�Содержание
2x1
x
3
x5
x
5
−
x2
+ 3x3
6;
− 3x2
− 2x4
−
−1;
+
(3.15)
−1;
x1
x1
0
и обращающие в минимум линейную функцию
(3.16)
L = х1 – 2х 2 – 3х 3.
Требуется привести эту задачу к виду ОЗЛП.
Решение. Приводим неравенства (3.15) к стандартной форме
−2x1
−x
3
x5
−x
5
+
x2
− 3x3
+ 3x2
− 2x4
+
+
x1
+ 6
0;
− 1
0;
+ 1
0;
x1
0.
Вводим дополнительные переменные:
y1
y
2
y3
y
4
= −2x1
+
x2
=
−x3
+
3x2
=
x5
=
−x5
− 2x4
+
− 3x3
+ 6;
− 1;
+
x1
(3.17)
+ 1;
x1 .
Задача сводится к тому, чтобы найти неотрицательные значения переменных x 1, x 2, x 3, x 4, x5;
y1, y2, y3, y4, удовлетворяющие уравнениям (3.17) и обращающие в минимум линейную функцию (3.16).
Мы показали, как от задачи линейного программирования с ограничениями-неравенствами можно
перейти к задаче с ограничениями-равенствами (ОЗЛП). Всегда возможен и обратный переход – от
ОЗЛП к задаче с ограничениями-неравенствами. Если в первом случае мы увеличивали число
переменных, то во втором случае будем его уменьшать, устраняя базисные переменные и оставляя
только свободные. Однако в дальнейшем нас будет в основном интересовать случай перехода от задачи
линейного программирования с ограничениями-неравенствами к задаче с ограничениямиравенствами (ОЗЛП).
�Содержание
3.4. Симплекс-метод решения задачи ЛП
Для нахождения решения задачи линейного программирования в общем случае (при произвольном
числе свободных переменных) применяются вычислительные методы. Из них наиболее
универсальным является так называемый симплекс-метод. Идея симплексметода относительно проста.
Пусть в задаче линейного программирования имеется n переменных и m независимых линейных
ограничений, заданных в форме уравнений. Мы знаем, что оптимальное решение (если оно
существует) достигается в одной из опорных точек (вершин ОДР), где по крайней мере k = п – m из
переменных равны нулю. Выберем какие-то k переменных в качестве свободных и выразим через них
остальные m базисных переменных. Пусть, например, в качестве свободных выбраны первые k = п – m
переменных x 1, x2, … , xk, а остальные m выражены через них:
xk+1
x
k+2
...
x
n
=
ak+1,1 x1
+ . . . + ak+1,k xk
+
bk+1 ;
=
ak+2,1 x1
+ . . . + ak+2,k xk
+
bk+2 ;
...
...
...
...
...
...;
=
an,1 x1
+...+
an,k xk
+
bn .
(3.18)
Положим все свободные переменные x 1, x2, … , xk равными нулю:
x 1 = 0, x2 = 0, … , xk = 0.
При этом мы получим:
x k+1 = bk+1, x k+2 = bk+2, …, xn = bn.
Это решение может быть допустимым или недопустимым. Оно допустимо, если все свободные члены
bk+1, bk+2, … , bn неотрицательны. Предположим, что это условие выполнено. Тогда мы получили
допустимое опорное решение. Но является ли оно оптимальным? Может быть, да, а может быть, и нет.
Чтобы проверить это, выразим минимизируемую линейную функцию L через свободные переменные
x 1, x2, … , xk
L = c0 + c1х 1 + c2х 2 +…+ ckх k.
(3.19)
Очевидно, что при x 1 = x2 = … = x k = 0 L = c0. Посмотрим, не можем ли мы улучшить решение, т. е.
уменьшить функцию L, увеличивая какие-нибудь из переменных x 1, x2, … , xk (уменьшать их мы не
можем, так как все они равны нулю, а отрицательные значения переменных недопустимы). Если все
коэффициенты с1, с2, … , ck в формуле (3.19) положительны, то, увеличивая какие-то из переменных
x 1, x2, … , xk сверх нуля, мы не можем уменьшить L; следовательно, найденное нами опорное решение
является оптимальным. Если же среди коэффициентов с1, с2, … , ck в формуле (3.19) есть
отрицательные, то, увеличивая некоторые из переменных x 1, x2, … , xk, а именно те, коэффициенты
при которых отрицательны, мы можем улучшить решение, т. е. уменьшить L.
�Содержание
Пусть, например, коэффициент c1 в формуле (3.19) отрицателен. Значит, есть смысл увеличить x 1 т. е.
перейти от данного опорного решения к другому, где переменная x 1 не равна нулю, а вместо нее равна
нулю какая-то другая. Увеличение x 1 "полезно" для линейной функции L, делает ее меньше. Однако
увеличивать x 1 надо осторожно, так чтобы не стали отрицательными другие переменные x k+1, xk
+2, … , xn, выраженные через свободные переменные, в частности через x 1 формулами (3.18).
Посмотрим, опасно ли для переменных x k+1, xk+2, … , xn увеличен не x 1, т. е. может ли оно сделать их
отрицательными? Да, опасно, если коэффициент при x 1 в соответствующем уравнении отрицателен.
Если среди уравнений (3.17) нет уравнения с отрицательным коэффициентом при x 1 то величину x 1
можно увеличивать беспредельно, а, значит, линейная функция L не ограничена снизу и оптимального
решения ОЗЛП не существует. Допустим, что это не так и что среди уравнений (3.18) есть такие, в
которых коэффициент при x 1 отрицателен. Для переменных, стоящих в левых частях этих уравнений,
увеличение x 1 опасно – оно может сделать их отрицательными. Возьмем одну из таких переменных x t
и посмотрим, до какой степени можно все же увеличить x t пока переменная x t не станет
отрицательной? Выпишем t-e уравнение из системы (3.18):
x t = at,1x 1 + at,2x 2 +…+ at,kx k + bt.
Здесь свободный член bt > 0, а коэффициент at,1 отрицателен. Легко понять, что если мы оставим
x 2 = x3 = … = x k = 0, то х 1 мы можем увеличивать только до значения, равного
, а при дальнейшем
увеличении х 1 переменная x t станет отрицательной. Выберем ту из переменных x k +1, xk+2, … , xn,
которая раньше всех обратится в нуль при увеличении x 1, т. е. ту, для которой величина
меньше
всего. Пусть такая "наиболее угрожаемая" переменная будет x r. Тогда имеет смысл "переразрешить"
систему уравнений (3.18) относительно других базисных переменных, выведя из числа свободных
переменных x 1 и переведя вместо нее в группу свободных переменных x r. Действительно, мы хотим
перейти от опорного решения, задаваемого равенствами x 1 = x2 = … = x k = 0, к опорному решению, в
котором уже x 1 ≠ 0, a x 2 = x3 = … = x k = x r = 0.
Первое опорное решение мы получили, положив равными нулю все прежние свободные переменные
x 1, x2, … , xk второе мы получим, если обратим в нуль все новые свободные переменные x 2, … , xk, x r.
Базисными переменными при этом будут
x 1, xk +1, … , xr -1, xr +1, … , xn.
Предположим, что уравнения типа (3.18) для нового набора базисных и свободных переменных
составлены. Тогда можно выразить через новые свободные переменные и линейную функцию L. Если
все коэффициенты при переменных в этой формуле положительны, то мы нашли оптимальное
решение: оно получится, если все свободные переменные положить равными нулю. Если среди
коэффициентов при переменных есть отрицательные, то процедура улучшения решения продолжается:
система вновь переразрешается относительно других базисных переменных, и так далее, пока не будет
найдено оптимальное решение, обращающее функцию L в минимум. Проследим описанную процедуру
постепенного улучшения решения ОЗЛП на конкретном примере.
Пример. Имеется задача линейного программирования с ограничениями-неравенствами:
−5x1
−x1
−3x
1
−
x2
+ 2x3
2;
+
x3
+
5;
x4
+ 5x4
Требуется минимизировать линейную функцию
L = 5x 1 – 2х 3.
7.
(3.20)
�Содержание
Решение. Приводя неравенства к стандартному виду 0) и вводя добавочные переменные у1,у2,уз,
переходим к условиям-равенствам:
y
1
y2
y
3
= 5x1
+
x2
−
2x3
+
2,
=
−
x3
−
x4
+
5,
− 5x4
+
x1
= 3x1
(3.21)
+ 7.
Число переменных n = 7 на 4 превышает число уравнений m = 3. Значит, четыре переменных могут
быть выбраны в качестве свободных. Попробуем выбрать в качестве свободных переменных
x 1, x 2, x 3, x 4
и положить их равными нулю. При этом мы сразу получим опорное решение:
x 1 = x 2 = x 3 = x 4 = 0; y1 = 2; y2 = 5; y3 = 7.
При этих значениях переменных L = 0. Посмотрим, является ли это решение оптимальным? Нет!
Потому что в выражении линейной функции L коэффициент при х 3 отрицателен. Значит, увеличивая
х 3, можно уменьшить L. Попробуем увеличивать х 3. Проследим по уравнениям (3.21), опасно ли это
для других переменных? Да, опасно для y1 и y2 – в оба эти равнения переменная х 3 входит с
отрицательным коэффициентом, значит, при увеличении х 3 соответствующие переменные y1 и y2 могут
стать отрицательными. Посмотрим, какая из этих переменных y1 или y2 является наиболее
"угрожаемой", какая раньше обратится в нуль при увеличении х 3. Очевидно, y1: она станет равной нулю
при х 3 = 1, а величина y2 – только при х 3 = 5. Поэтому выбираем переменную y1 и вводим ее в число
свободных вместо х 3. Чтобы "переразрешить" систему (3.21) относительно х 3, у2, у3, поступим
следующим образом. Разрешим первое уравнение (3.21) относительно новой базисной переменной х 3:
x3 =
5
1
1
x1 + x2 − y1 + 1.
2
2
2
Это выражение подставим вместо х 3 во второе уравнение; получим:
3
1
1
y2 = − x1 − x2 + y1 − x4 + 4.
2
2
2
Что касается третьего уравнения, то оно, как не содержащее х 3, не изменится. Итак, мы привели
систему (3.21) к виду:
x
3
y2
y
3
+
1
2 x2
−
1
2 y1
= − 23 x1
−
1
2 x2
+
1
2 y1
=
−
5x4
+
=
5
2 x1
3x1
− x4
+
1,
+
4,
+
7,
(3.22)
со свободными переменными х 1, х 2, y1, х 4 и базисными х 3, y2, y3. Выразим линейную функцию L через
новые свободные переменные:
L = 5x1 − 5x1 − x2 + y1 − 2,
L = −x2 + y1 − 2.
(3.23)
�Содержание
Положим теперь свободные переменные равными нулю. Линейная функция L станет равной –2. Это
уже лучше, чем прежнее значение L = 0. Но является ли это решение оптимальным? Все еще нет, так
как коэффициент при х 2 в выражении (3.23) отрицателен. Итак, будем увеличивать х 2. Посмотрим, для
какой из переменных, стоящих в левых частях системы (3.22), это может быть "опасно". Только для y2 (в
первое уравнение х 2 входит с положительным коэффициентом, а в третье совсем не входит). Итак,
обменяем местами переменные х 2 и y2 – первую выведем из числа свободных, а вторую – введем. Для
этого разрешим второе уравнение (3.23) относительно х 2 и подставим это х 2 в первое уравнение.
Получим еще один вид системы (3.21):
x
3
x2
y
3
=
x1
= −3x1
=
−
−
y2
− 2y2
+ y1
3x1
x4
+
5,
− 2x4
+
8,
− 5x4
+
7.
(3.24)
Выразим L через новые свободные переменные:
L = 3x1 + 2y2 − y1 + 2x4 − 8 + y1 − 2,
или
L = 3x1 + 2y2 + 2x4 − 10.
(3.25)
Полагая х 1 = y1 = y2 = x 4 = 0, получаем L = –10.
Является ли это решение оптимальным? На этот раз – да, так как коэффициенты при всех свободных
переменных в выражении (3.25) неотрицательны. Итак, оптимальное решение ОЗЛИ найдено:
.
При таких значениях переменных линейная функция L принимает минимальное значение:
L = –10.
Заметим, что в рассмотренном примере нам не пришлось искать опорного решения: оно сразу же
получилось, когда мы положили свободные переменные равными нулю. Это объясняется тем, что в
уравнениях (5.4) все свободные члены были неотрицательны и, значит, первое же попавшееся
решение оказалось опорным. Если это окажется не так, можно будет прийти к опорному решению с
помощью такой же процедуры обмена местами некоторых базисных и свободных переменных,
переразрешая уравнения до тех пор, пока свободные члены не станут неотрицательными. Как это
делается, мы увидим в дальнейшем.
�Содержание
3.5. Табличный алгоритм замены базиса
"Переразрешение" системы уравнений-ограничений ОЗЛП относительно новых базисных переменных
может быть существенно упрощена, если ее формализовать и свести к заполнению стандартных
таблиц по определенной системе правил (алгоритму). Этот алгоритм мы продемонстрируем на
конкретном примере (в его справедливости для любого общего случая легко убедиться
самостоятельно).
Рассмотрим систему пяти уравнений-ограничений:
y1
y
2
y3
y4
y
5
= a11 x1 + a12 x2 + a13 x3 + a14 x4 + b1
= a21 x1 + a22 x2 + a23 x3 + a24 x4 + b2
= a31 x1 + a32 x2 + a33 x3 + a34 x4 + b3
(3.26)
= a41 x1 + a42 x2 + a43 x3 + a44 x4 + b4
= a51 x1 + a52 x2 + a53 x3 + a54 x4 + b5
с четырьмя свободными переменными: x 1, x 2, x 3, x 4. Пусть нам требуется вывести из числа свободных
какую-нибудь переменную, например x 2, и перевести ее в базисные, а взамен ее ввести в число
свободных какую-то базисную переменную, скажем у3; короче, мы хотим обменять местами
переменные x 2 и у3. Эту замену мы будем символически обозначать x 2 → у3. Посмотрим, какие
действия надо для этого осуществить. Вообще, можно было бы для каждой новой системы уравнений
проводить переразрешение заново, т. е. для замены x 2 → у3 мы взяли бы в третьем уравнении член
a32x 2, содержащий x 2 (назовем его "разрешающим членом"); разумеется, предполагаем a32 = 0,
перенесли бы его в левую часть, а у3 – в правую; решили бы уравнение относительно x 2 и подставили
бы выражение для x 2 во все остальные уравнения. Процедура достаточно громоздкая, требующая
напряженного внимания; при ее выполнении легко ошибиться (особенно при большом числе
уравнений). Но так как здесь каждый раз нужно проделывать одни и те же операции, то их достаточно
выполнить один раз в общем виде и вывести правила преобразования, которые затем можно
применять автоматически. Эти правила, осуществляющие "переразрешение" системы, удобно
реализовать в виде табличного алгоритма. Чтобы этот алгоритм был проще и легче запоминался,
целесообразно предварительно несколько преобразовать систему уравнений, представив их
следующим образом:
y1
y
2
y3
y4
y
5
= b1 + a11 x1 + a12 x2 + a13 x3 + a14 x4
= b2 + a21 x1 + a22 x2 + a23 x3 + a24 x4
= b3 + a31 x1 + a32 x2 + a33 x3 + a34 x4
(3.27)
= b4 + a41 x1 + a42 x2 + a43 x3 + a44 x4
= b5 + a51 x1 + a52 x2 + a53 x3 + a54 x4
Форму записи уравнений (3.27) мы будем называть стандартной. Очевидно, вместо того, чтобы
полностью записывать уравнения (3.27), можно ограничиться заполнением стандартной таблицы, где
указаны только свободные члены и коэффициенты при переменных. Первый столбец таблицы мы
отведем под свободные члены, второй, третий, четвертый и пятый – под коэффициенты при
переменных x 1, x 2, x 3, x 4 в стандартной форме (3.27). Стандартная таблица для системы (3.27)
приведена в табл. 3.1.
�Содержание
Табл. 3.1. Система (3.27)
y3
ñâîáîäíûé ÷ëåí
x1
x2
x3
x4
y1
b1
a11
a12
a13
a14
y2
b2
a21
a22
a23
a24
y3
b3
a31
♥ a33
a32
a34
y4
b4
a41
a42
a43
a44
y5
b5
a51
a52
a53
a54
x2
Теперь представим себе, что мы хотим произвести замену x 2 → у3, т. е. перевести переменную х 2 в
число базисных, а переменную у3 – в число свободных. Выделим в стандартной таблице разрешающий
элемент a32 (обведем его кружком). Строку и столбец, в которых стоит разрешающий элемент, мы будем
называть разрешающей строкой и разрешающим столбцом (см. табл. 3.1).
Выполняя операцию x 2 → у3, мы хотим в разрешающей строке поместить переменную у3, а в
разрешающем столбце – переменную х 2. Найдем коэффициенты, которые нужно будет поставить в
таблице после обмена x 2 → у3. Начнем с преобразования разрешающей строки. Решая третье уравнение
(3.27) относительно х 2, получим:
x2 = −
b3
a31
1
a33
a34
−
x1 +
y3 −
x3 −
x4 .
a32
a32
a32
a32
a32
(3.28)
Таким образом, преобразованные элементы разрешающей строки найдены. Составим правило
преобразования остальных строк. Для этого подставим в первое уравнение (3.27) вместо х 2 его
выражение (3.28). После приведения подобных членов получим
Нетрудно убедиться, что совершенно аналогичным образом преобразовываются все остальные строки.
В результате мы получим преобразованную таблицу (см. табл. 3.3), в которой операция x 2 → у3 уже
совершена.
Рассмотрев табл. 3.2, мы можем так сформулировать алгоритм преобразования коэффициентов
стандартной таблицы.
(
y1 =
a12 b3
b1 −
a32
)
(
)
(
)
a12 a33
a12 a31
a12
y3 + a13 −
+ a11 −
x1 +
x3 +
a32
a32
a32
(
)
a12 a34
+ a14 −
x4 .
a32
1. Разрешающий элемент заменяется на обратную ему величину.
2. Все остальные элементы разрешающей строки меняют знак и делятся на разрешающий элемент.
3. Все элементы разрешающего столбца (кроме самого разрешающего элемента) делятся на
разрешающий элемент.
4. Каждый из остальных элементов подвергается следующему преобразованию: от него вычитается
произведение элемента, стоявшего в прежней разрешающей строке на том же месте по порядку (т.
е. в том же столбце), на элемент, стоящий в новом разрешающем столбце на соответствующем
месте (т. е. в той же строке, что и наш элемент).
�Содержание
Табл. 3.2. Преобразованная таблица
x1
ñâ. ÷ëåí
y1
b1 −
a12 b3
a32
y2
b2 −
a22 b3
a32
x2
y3
a11 −
a12 a31
a32
a12
a32
a21 −
a22 a31
a32
a22
a32
3
− ab32
− aa31
32
x3
x4
a13 −
a12 a33
a32
a14 −
a12 a34
a32
a23 −
a22 a33
a32
a24 −
a22 a34
a32
33
− aa32
1
a32
− aa34
x4
32
y4
b4 −
a42 b3
a32
a41 −
a42 a31
a32
a42
a32
a43 −
a42 a33
a32
a44 −
a42 a34
a32
y5
b5 −
a52 b3
a32
a51 −
a52 a31
a32
a52
a32
a53 −
a52 a33
a32
a54 −
a52 a34
a32
Последнее правило может в первом чтении показаться не совсем понятным; покажем, как оно
применяется, хотя бы на примере элемента, стоящего в первой строке и в столбце под х 1 табл. 3.2.
Новый элемент равен прежнему а11 минус произведение прежнего элемента разрешающей строки а31
стоящего в том же столбце, что а11, и нового элемента разрешающего столбца , стоящего в той же
строке, что и преобразуемый элемент.
Нетрудно убедиться, что сформулированные правила преобразования стандартной таблицы
справедливы для любого числа уравнений и свободных переменных и для любой замены x j → yi.
Преобразование стандартной таблицы при замене x j → yi удобно производить, выполняя все
вспомогательные расчеты тут же, в таблице, для чего выделяется ещё одна таблица. Алгоритм
преобразования x j → yi стандартной таблицы сводится при этом к следующим операциям.
1. Создать следующую (новую) таблицу с пустыми ячейками, поменяв местами x j и yi далее будем
поэтапно заполнять эту таблицу следующим образом.
2. Выделяем в заполненной таблице разрешающий элемент aij. Вычисляем его обратную величину
и записываем в новой таблице в эту же ячейку.
3. Все элементы разрешающей строки (кроме самого aij) делим на aij с заменой знака и результат
записываем в новую таблицу в те же ячейки.
4. Все элементы разрешающего столбца (кроме самого aij) делим на aij и результат записываем в новую
таблицу в те же ячейки.
5. Для каждого из элементов, не принадлежащих ни к разрешающей строке, ни к разрешающему
столбцу, записываем в ту же ячейку новой таблицы разность старого значения этой ячейки и
произведение чисел: одно стоит в разрешающем столбце с номером строки рассматриваемой
ячейки в новой таблице, а второе стоит в разрешающей строке с номером столбца
рассматриваемой ячейки из предыдущей таблицы.
Пример 1. В системе уравнений
y1
y
2
y3
y
4
=
−5 + x1 − x2 + 2x3
=
1 + 2x1 − x2
=
−1 + 2x2 − x3
=
2 − x1 − x3
(3.29)
произвести замену x j → yi, т. е. вывести из числа свободных переменных x 1 и взамен ее ввести у2.
�Содержание
Решение. Записываем уравнения (3.29) в форме стандартной таблицы (см. табл. 3.3).
Табл. 3.3. Исходная таблица
y2
ñâîáîäíûé ÷ëåí
x1
x2
x3
y1
-5
-1
1
-2
y2
1
♠ 1
-2
0
y3
-1
0
-2
1
y4
2
1
0
1
x1
Выделяем разрешающий элемент а21 = –2, который стоит на пересечении разрешающей строки и
столбца. Вычисляем обратное число
. Заполним, согласно пунктам 1, 2, 3 и 4
алгоритма, новую таблицу в части ячеек разрешающих строки и столбца. Получим таблицу 3.4. Далее
мы уже можем заполнить все остальные ячейки, проделав вычисления, описанные в п. 5 алгоритма
(см. табл. 3.5).
Табл. 3.4. Заполнение ячеек разрешающих строки и столбца
ñâîáîäíûé ÷ëåí
y2
x2
x3
1
2
0
1
2
y1
− 12
1
2
x1
y3
0
y4
− 12
Табл. 3.5. Заполнение всех оставшихся ячеек
ñâîáîäíûé ÷ëåí
y1
−5 − 1 ·
1
2
= −5 12
y2
1
2
x2
1−1·
1
2
x3
=
−2 − 0 ·
1
2
1
2
= −2
x1
1
2
− 12
1
2
0
y3
−1 − 1 · 0 = −1
0
−2 − 1 · 0 = −2
1−0·0=1
y4
2 − 1 · (− 12 ) =
5
2
− 12
0 − 1 · (− 12 ) =
1
2
1 − 0 · (− 21 ) = 1
Таким образом, мы научились с помощью табличного алгоритма совершать в уравненияхограничениях любую замену x j ↔ yi.
Вспомним, что в задаче линейного программирования, кроме уравнений-ограничений, существует еще
и линейная функция
которую нужно минимизировать. Если эта функция выражена через прежние свободные переменные
x 1, x2, … , xn
то, очевидно, после замены x j ↔ yi ее нужно выразить через новые свободные переменные
x 1, x2, … , xj1, yi, x j+1
�Содержание
Нетрудно убедиться, что для этого может быть применен тот же алгоритм, что и для преобразования
любой строки стандартной таблицы. Действительно, приводя L к стандартной форме
мы получим еще одну строку (добавочную) стандартной таблицы, которая отличается от остальных
только тем, что в ней никогда не выбирается разрешающий элемент. С помощью табличного алгоритма
обмена переменных в уравнениях ОЗЛП можно решить любую задачу линейного программирования
или же убедиться, что она не имеет решения. Нахождение решения каждой задачи линейного
программирования распадается на два этапа:
1) отыскание опорного решения;
2) отыскание оптимального решения, минимизирующего линейную функцию L.
В процессе первого этапа попутно выясняется, имеет ли вообще данная задача допустимые
(неотрицательные) решения; если да, то находится опорное решение, для которого все свободные
переменные равны нулю, а все базисные – неотрицательны. В процессе второго этапа попутно
выясняется, ограничена ли снизу минимизируемая функция L; если нет, то оптимального решения не
существует. Если да, то оно находится после того или другого числа заменx j ↔ yi.
Оба этапа решения ОЗЛП удобно выполнять с помощью описанного алгоритма преобразования
стандартных таблиц.
�Содержание
3.6. Отыскание допустимого решения
Пусть имеется ОЗЛП с ограничениями-равенствами, записанными в стандартной форме:
y1
y
2
...
ym
=
b1 + a11 x1 + a12 x2 + . . . + a1n xn ,
=
b2 + a21 x1 + a22 x2 + . . . + a2n xn ,
...
...
=
bm + am1x1 + am2x2 + . . . + amnxn,
(3.30)
разрешенными относительно базисных переменных y1, y2, … , ym, которые выражены через свободные
переменные x 1, x2, … , x n. В каждой вершине ОДР (опорном решении) по крайней мере n переменных
должны обращаться в нуль. Попробуем получить допустимое опорное решение, полагая в формулах
(3.30) все свободные переменные равными нулю. Имеем:
x
1
y
1
=
x2 = . . . = xn = 0;
=
b1 ; y2 = b2 ; . . . ; ym = bm .
(3.31)
Если все свободные члены b1,b2, … , bm в уравнениях (3.30) неотрицательны, это значит, что
допустимое опорное решение уже получено; этот случай нас не интересует. Рассмотрим случай, когда
среди свободных членов b1,b2, … , bm есть отрицательные. Это значит, что решение (3.31) не является
допустимым опорным решением и его еще предстоит найти. Для этого мы будем шаг за шагом
обменивать местами базисные и свободные переменные в уравнениях (3.30) до тех пор, пока не
придем к допустимому опорному решению или не убедимся, что его не существует. Последнее бывает
в случае, когда система уравнений (3.30) несовместима с неравенствами
x1
0, x2
0, . . . , xn
0; y1
0, y2
0, . . . , ym
0,
(3.32)
т. е. у нее нет неотрицательных решений. Очевидно, нужно так обменивать местами базисные и
свободные переменные, чтобы эта процедура приближала нас к границе ОДР, а не удаляла от нее, т. е.
чтобы число отрицательных свободных членов с каждым шагом убывало, или, если число
отрицательных свободных членов остается прежним, то, по крайней мере, убывали их абсолютные
величины. Существует ряд способов выбора разрешающего элемента для приближения к опорному
решению. Остановимся (без доказательства) на одном из них. Пусть имеется одно из уравнений (3.30)
с отрицательным свободным членом. Ищем в этой строке отрицательный элемент aij. Если такого
элемента нет (все элементы aij > 0), это признак того, что система уравнений (3.30) несовместима с
неравенствами (3.32). Действительно, при отсутствии отрицательных элементов в строке вся правая
часть соответствующего уравнения может быть только отрицательной, а это противоречит условиям
неотрицательности переменных.
Предположим, что отрицательный элемент есть. Тогда выбираем столбец, в котором он находится, в
качестве разрешающего. Теперь надо выбрать в этом столбце сам разрешающий элемент. Рассмотрим
все элементы данного столбца, имеющие одинаковый знак со свободным членом. Из них выберем в
качестве разрешающего тот, для которого отношение к нему свободного члена минимально. Таким
образом, выбирается разрешающий столбец, разрешающий элемент в нем и, значит, разрешающая
строка. Убедимся на примере, как совершается приближение к опорному решению при таком правиле
выбора разрешающего элемента. Попутно мы убедимся в разумности этого правила.
�Содержание
Пример 1. Найти (если оно существует) опорное решение задачи линейного программирования с
ограничениями-равенствами:
y1
y
2
y3
y
4
=
1
+
x1
+ 2x2
+ x3 ,
= −5
+
2x1
−
x2
+ x3 ,
=
2
−
x1
−
x2
,
=
1
+
x2
− x3 .
(3.33)
(здесь не приводится целевая функция, которую нужно минимизировать, потому что опорное решение
ищется безотносительно к виду этой формы).
Решение. Записываем условия (3.33) в виде стандартной таблицы (см. табл. 3.6).
Табл. 3.6. Исходная таблица
ñâîáîäíûé ÷ëåí
x1
x2
x3
y1
1
1
2
1
y2
−5
2
−1
1
y3
2
❧ −1
−1
0
y4
1
0
0
−1
В табл. 3.6 имеется отрицательный свободный член –5 в строке y2 столбца х 1. Согласно правилу,
выбираем любой положительный элемент этой строки, например 2 (в табл. 3.6 он выделен жирным
шрифтом). Этим мы выбрали разрешающий столбец х 1 В качестве "кандидатов" на роль разрешающего
элемента рассмотрим все те элементы этого столбца, которые противоположны по знаку со своим
свободным членом; это будут 2 и – 1 (ноль в качестве разрешающего элемента фигурировать не может).
Вычисляем для каждого из "кандидатов" отношение к нему свободного члена с обратным знаком:
– (–5)/2 = 5/2; –2/( –1) = 2.
Наименьшее из этих отношений 2; значит, элемент –1 выбираем в качестве разрешающего и меняем
местами х 1 ↔ у3. После выполнения действий приходим к табл. 3.7.
Табл. 3.7. После первого шага
ñâîáîäíûé ÷ëåí
y3
x2
x3
y1
3
−1
1
−1
y2
−1
−2
−3
1❧
x1
2
−1
−1
0
y4
1
0
1
−1
В табл. 3.7 по-прежнему один отрицательный свободный член, но по абсолютной величине он уже
меньше, чем в табл. 3.6, значит, мы приближаемся к ОДР. Попробуем избавиться и от этого члена. В
строке у2 имеется только один положительный элемент 1 (выделен жирным шрифтом). Значит,
разрешающим столбцом может быть только столбец х 3. Вычисляем для всех элементов этого столбца,
имеющих одинаковый знак со своим свободным членом, отношение свободного члена к элементу с
обратным знаком:
–3/(–1) = 3; –(–1) /1 = 1; –1/(–1) = 1.
�Содержание
Отношение достигает минимума, равного 1, для двух элементов; возьмем и качестве разрешающего
первый из них 1, стоящий в строке у2 и столбце х 3, и сделаем замену х 3 ↔ у2 (см. табл. 3.8). В табл. 3.8
все свободные члены неотрицательны, и опорное решение найдено:
у3 = x 2 = у2 = 0; y1 = 2; х 3 = 1; x 1 = 2; у4 = 0.
Табл. 3.8. Итоговая таблица
ñâîáîäíûé ÷ëåí
y3
x2
x3
y1
2
−3
−2
−1
y2
1
2
3
1
x1
2
−1
−1
0
y4
0
−2
−2
−1
Пример 2. Найти (если оно существует) опорное решение системы
y1
y
2
y3
y
4
=
−4
+
x1
− 2x2
=
−3
+
x1
+
x2
− x3 ,
− 2x1
+
x2
− x3 ,
+
−
x2
.
= −10
=
−2
x1
,
Решение. Записываем систему уравнений (3.34) в виде стандартной таблицы (см. табл. 3.9).
Табл. 3.9. Исходные данные
ñâîáîäíûé ÷ëåí
x1
x2
x3
y1
−4
1
−2
0
y2
−3
1
1
−1
y3
−10
−2
1
−1
y4
−2
1❧ −1
0
Выбираем строку с отрицательным свободным членом, например первую. В ней есть положительный
элемент 1. Выбираем столбец x 1 в качестве разрешающего. Вычисляем отношения:
–(–4)/1 = 4; –(–3)/1 = 3; –(–2)/1 = 2.
Последнее отношение минимально; значит, в качестве разрешающего берем элемент 1 в строке у4 и
производим замену х 1 ↔ у4 (см. табл. 3.10).
Табл. 3.10. Итоговая таблица
ñâîáîäíûé ÷ëåí
y3
x2
x3
y1
−2
1
−1
0
y2
−5
1
0
−1
y3
−14
−2
−1
−1
x1
2
1
1
0
�Содержание
Обратим внимание на строку у3 в табл. 3.10. В ней свободный член отрицателен, но нет ни одного
положительного элемента (кроме самого свободного члена). Соответствующее уравнение имеет вид:
Может ли при каких бы то ни было неотрицательных значениях y4, x 2, x 3 величина y3 быть
неотрицательной? Очевидно, нет: при y4 = x 2 = х 3 = 0 получим y3 = –14, а увеличение y4, x 2, x 3 сверх
нуля сделает y3 еще меньше. Следовательно, система (3.34) несовместима с неравенствами,
вытекающими из неотрицательности переменных, и задача линейного программирования с
условиями-ограничениями (3.34) допустимых решений не имеет.
Таким образом, мы видим, что нет необходимости специально исследовать систему условий ОЗЛП на
совместность в области неотрицательных решений: этот вопрос выясняется автоматически, в процессе
нахождения опорного решения.
�Содержание
3.7. Отыскание оптимального решения
В предыдущем параграфе мы научились отыскивать опорное решение системы уравнений ОЗЛП; при
поисках этого опорного решения мы вовсе не занимались минимизируемой функцией L. Теперь мы
займемся оптимизацией решения, т. е. отысканием такого опорного решения, которое обращает в
минимум линейную функцию:
Ранее мы уже продемонстрировали принципиальную сторону методики оптимизации решения. Здесь
мы на примерах покажем, как эта оптимизация может быть проведена с помощью табличного
алгоритма замены х i ↔ уj.
Пример 1. Найти решение задачи
линейного программирования с уравнениями
y1
y
2
y3
y4
= 2
−
x1
− x2
+ 2x3 ,
= 1
−
x1
+ x2
−
x3 ,
= 5
−
x2
−
x3 ,
= 2
− 2x1
+ x2
(3.35)
,
обращающее в минимум линейную функцию
L = 0 + x1 − 2x2 − x3 → min .
(3.36)
Решение. Bce свободные члены в (3.35) неотрицательны, значит, опорное решение налицо:
x1 = x2 = x3 = 0; y1 = 2; y2 = 1; y3 = 5; y4 = 2.
Является ли оно оптимальным? Нет, так как коэффициенты при х 2 и х 3 в (3.36) отрицательны, значит,
увеличивая эти переменные, мы уменьшаем L. Запишем (3.35) и (3.36) в виде стандартной таблицы
(табл. 3.11).
Табл. 3.11. Исходная таблица
ñâîáîäíûé ÷ëåí
x1
x2
x3
L
0
1
−2
−1
y1
2
−1
−1
2
❧
−1
y2
1
−1
1
y3
5
0
−1
−1
y4
2
−2
1
0
Так как коэффициенты в первой строке при х 2 и х 3 отрицательны, любую из этих переменных можно
вывести из числа свободных. Возьмем х 3. Выбираем разрешающий элемент из столбца х 3. Он должен
быть отрицательным. У нас есть выбор: 1 в строке у2 или 1 в строке уз. Выберем тот их них, для
которого отношение к нему свободного члена, взятое с обратным знаком, минимально. Отношения
равны –1/( – 1) = 1; –5/(– 1) = 5. Минимальное из них 1. Значит, выбираем элемент 1 в столбце х 3,
строке у2. Произведем замену х 3 ↔ у2 (см. табл. 3.12).
В верхней строке табл. 3.12 есть отрицательный коэффициент при х 2, значит, х 2 надо вывести из
свободных переменных. Выбираем в качестве разрешающего тот отрицательный элемент столбца х 2,
для которого отношение к нему свободного члена, взятое с обратным знаком, положительно и
минимально. Но в столбце х 2 единственный отрицательный элемент –2, его и выбираем в качестве
разрешающего (см. табл. 3.12). Произведем замену х 2 ↔ у3 (см. табл. 3.13).
�Содержание
Табл. 3.12. Расчеты при замене х3 ^ у2
ñâ. ÷ëåí
x1
x2
y2
L
0 − 1 · 1 = −1
1 − (−1) · 1 = 2
−2 − 1 · 1 = −3
1
y1
2 − 1 · (−2) = 4
−1 − (−1) · (−2) = −3
−1 − 1 · (−2) = 1
−2
1
−1
x3
1
−1
y3
5−1·1=4
0 − (−1) · 1 = 1
y4
2−1·0=2
−2 − (−1) · 0 = −2
❧
−1 − 1 · 1 = −2
1
1−1·0=1
0
Табл. 3.13. Расчеты при замене х2 ^ у3
ñâ. ÷ëåí
L
−1 − 4 ·
3
= −7
2
1
(− 2 ) = 6
(− 12 ) = 3
y1
4−4·
x3
1−4·
x2
2
y4
2 − 4 · (− 12 ) = 4
2−1·
3
2
x1
y3
1
2
− 25
− 21
1
2
− 23
3
2
1
−2
− 12
− 12
− 12
=
−3 − 1 · (− 12 ) =
−1 − 1 · (− 12 ) =
−2 − 1 · (− 12 ) =
y2
1−1·
−2 − 1 ·
−1 − 1 ·
3
2
1
(− 2 )
(− 12 )
1
= −♥
2
= − 32
= − 12
0 − 1 · (− 21 ) =
1
2
1
2
Оказывается, процедура еще не закончена: в первой строке табл. 3.13 имеется отрицательный элемент
в столбце у2, значит, переменную у2 нужно вывести из числа свободных. В качестве разрешающего
берем тот из отрицательных элементов столбца у2, для которого отношение к нему свободного члена,
взятое с обратным знаком положительно и минимально. Сравнивая отношения
–6 : (–3/2) = 4, –3 : (–1/2) = 6,
выбираем в качестве разрешающего элемент –3/2 в строке у1 и столбце у2 и продолжаем процедуру
оптимизации (см. табл. 3.14).
В первой строке табл. 3.14 нет ни одного отрицательного элемента; значит, оптимальное решение
достигнуто. Оно будет:
А если в столбце, содержащем отрицательный элемент строки L, не найдется ни одного
отрицательного элемента. Что тогда?
Табл. 3.14. Итоговая таблица
ñâ. ÷ëåí
L
−7 − 6 ·
1
3
x1
= −9
y2
1
2
4
x3
x2
2
y4
4
3 − 6 · 13
− 6 · (− 13 )
− 6 · (− 13 )
=1
=4
=6
1
2
− 32
5
2
·
4
3
− 35
− 12 + 52 · 13 = 13
+ 52 · (− 13 ) = − 31
+ 52 · (− 13 ) = − 37
+
1
3
3
2
=
− 12 +
− 12 +
− 12 +
1
2
1
2
·
·
+
1
2
1
2
·
·
1
3
(− 13 )
(− 13 )
1
3
y3
y1
5
3
− 13
− 13
− 23
− 23
1
3
2
−3
1
3
− 13
− 13
=
=
=
=
Легко убедиться, что в этом случае функция L не ограничена снизу и ОЗЛИ не имеет оптимального
решения. Действительно, в этом случае увеличение переменной, соответствующей данному столбцу,
уменьшает линейную функцию L и не может сделать ни одной из базисных переменных
отрицательной, значит, ничто не препятствует неограниченному уменьшению функции L. Итак,
сформулируем правила нахождения оптимального решения ОЗЛИ симплексметодом.
�Содержание
5. Если все свободные члены (не считая строки L) в симплекстаблице неотрицательны, а в строке L
(не считая свободного члена) нет ни одного отрицательного элемента, то оптимальное решение
достигнуто.
6. Если в строке L есть отрицательный элемент, а в столбце, соответствующем ему, нет ни одного
отрицательного элемента, то линейная функция L не ограничена снизу, и оптимального решения не
существует.
7. Если в этом столбце есть отрицательные элементы, то следует произвести замену одной из
свободных переменных на одну из базисных, причем в качестве разрешающего надо взять тот
элемент этого столбца, для которого отношение к нему соответствующего свободного члена, взятое
с обратным знаком, положительно и минимально.
В заключение остановимся на так называемом "вырожденном" случае, когда один (или более) из
свободных членов в уравнениях-ограничениях получается равным нулю. Это означает, что в данном
опорном решении обращаются в нуль не только свободные переменные, но и некоторые из базисных.
Рассмотрим пример.
Пример 2. Найти решение задачи линейного программирования
L = 2x1 − x2 → min
(3.37)
при следующих ограничениях:
y1
=
y2
=
y3
=
x1
− x2
− x2
,
+ x3
x3
+ x4
+
2,
+
1.
(3.38)
Решение. Записываем (3.37) и (3.38) в виде стандартной таблицы (см. табл. 3.15).
Табл. 3.15. Исходная таблица
ñâîáîäíûé ÷ëåí
x1
x2
x3
x4
L
0
2
−1
0
0
y1
0
1
❧
−1
0
0
y2
2
0
−1
1
0
y3
1
0
0
1
1
Согласно общему правилу, ищем в столбце х 2 разрешающий элемент, для которого отношение к нему
свободного члена, взятое с обратным знаком, неотрицательно и минимально. Сравнивая отношения –
0 : (–1) и –2 : (–1), останавливаемся на разрешающем элементе –1 в строке y1, для которого это
отношение равно нулю. Производим замену х 2 ↔ y1 (см. табл. 3.16). При переходе от табл. 3.15 к
табл. 3.16, естественно, не произошло уменьшения линейной функции L (она как была, так и осталась
равной нулю), но зато элементы верхней строки стали все неотрицательны, из чего видно, что
оптимальное решение достигнуто: минимум функции равен нулю и достигается при
�Содержание
Табл. 3.16. Итоговая таблица
ñâîáîäíûé ÷ëåí
x1
y1
x3
x4
L
0
1
1
0
0
x2
0
1
−1
0
0
y2
2
−1
1
1
0
y3
1
0
0
1
1
Сделаем еще одно, последнее, замечание по поводу так называемого "зацикливания". Мы уже видели,
что при наличии "вырождения" может оказаться, что замена одной из свободных переменных на
базисную и обратно приводит только к перестановке переменных, без уменьшения линейной функции
L. В очень редких случаях может оказаться, что последовательное применение правила выбора
разрешающего элемента приводит к тому, что после нескольких замен x j ↔ yi мы вновь возвращаемся к
тому же набору базисных и свободных переменных, с которого начали. Это и называется
"зацикливанием". Чтобы избежать этого, достаточно бывает при повторении взять разрешающий
элемент не так, как он был взят первый раз (например, в другом столбце). При организации алгоритма
линейного программирования на ЭВМ в программу должно быть введено соответствующее указание.
�Содержание
3.8. Понятие двойственности в ЛП
В теории линейного программирования большую роль играет понятие двойственности, которое
широко применяется для анализа различных свойств исследуемых моделей и позволяет в том числе
унифицированным образом устанавливать взаимосвязи для всех приемов и методов анализа моделей
на чувствительность и оптимальность решений. Мы познакомимся здесь только с основными
понятиями двойственности и приведем ряд примеров.
Основная и двойственная задачи.
Рассмотрим две следующие задачи линейного программирования:
c1 x1 + c2 x2 + . . . + cn xn → min,
(3.39)
при ограничениях
n
∑
ai,j xj
(3.40)
bi (i = 1, 2, . . . , m),
j=1
xj
и
0 (j = 1, 2, . . . , n)
(3.41)
b1y1 + b2y2 + . . . + bnym → max,
(3.42)
при ограничениях
m
∑
ai,j yi
cj (i = 1, 2, . . . , m),
(3.43)
i=1
yi
0 (i = 1, 2, . . . , m)
(3.44)
Для определенности условно назовем первую задачу (соотношения (3.39) – (3.41)) основной, а вторую
(соотношения (3.42) – (3.44)) двойственной (по отношению к первой).
В качестве иллюстрации рассмотрим следующие две задачи:
основная задача:
минимизировать
16x1 + 25x2 → min
(3.45)
при ограничениях
1x1
1x
1
2x1
x
1
+
7x2
4,
+
5x2
5,
+
3x2
9,
x2
0;
0,
(3.46)
двойственная задача: максимизировать
4y1 + 5y2 + 9y3 → max
(3.47)
при ограничениях
1y
1
+
1y2
+
2y3
16,
7y1
+
5y2
+
3y3
25,
y3
0;
y1
0,
y2
0,
(3.48)
�Содержание
Грубо говоря, двойственная задача – это на 90° повернутая исходная задача. Действительно,
3) j-й столбец, составленный из коэффициентов, фигурирующих в ограничениях исходной модели,
совпадает с j-й строкой, составленной из коэффициентов, фигурирующих в ограничениях
двойственной модели;
4) строка, составленная из коэффициентов в выражении для целевой функции, совпадает со
столбцом, составленным из констант, фигурирующих в правых частях ограничений двойственной
модели;
5) столбец, составленный из констант, фигурирующих в правых частях ограничений исходной
модели, совпадает со строкой, составленной из коэффициентов в выражении для целевой функции
двойственной модели;
6) направление знаков неравенства в исходной модели противоположно направлению знаков
неравенства в двойственной модели; требование максимизации в исходной задаче в двойственной
задаче заменено требованием минимизации.
Имеет место следующая важная теорема:
Теорема двойственности.
1. Если и основная и двойственная ей задачи имеют допустимые решения, то:
1) существует оптимальное решение xj* (j = 1,2,... ,n) исходной задачи;
2) существует оптимальное решение yi* (i = 1, 2,... ,m) двойственной задачи;
3) имеет место следующее соотношение:
n
∑
cj x∗j =
j=1
m
∑
bi yi∗ .
(3.49)
i=1
2. Если исходная (двойственная) задача допускает оптимальное решение, для которого значение
целевой функции ограничено, то соответствующая ей двойственная (исходная) задача допускает
оптимальное решение при том же значении целевой функции.
Приступая к доказательству утверждений, составляющих в совокупности теорему двойственности,
покажем прежде всего, что любое допустимое решение задачи линейного программирования
накладывает ограничение на оптимальное значение целевой функции соответствующей двойственной
задачи. Пусть переменные x j удовлетворяют ограничениям исходной модели, а переменные yi
удовлетворяют ограничениям двойственной модели. Умножим каждое i-е ограничение исходной
задачи на yi а каждое j-e ограничение двойственной задачи на x j. Поскольку yi ≥ 0 и x j ≥ 0, направление
неравенств в результате указанных действий не изменится. Сложив отдельно правые и соответственно
левые части всех соотношений, получаемых после выполнения указанных выше операций над
ограничениями исходной модели, получим
m
n
(∑
)
∑
yi
ai,j xj
m
∑
i=1
i=1
j=1
bi yi .
(3.50)
Аналогично в результате почленного сложения правых и левых частей соотношений, получаемых
после выполнения указанных выше операций над ограничениями двойственной модели, будем иметь
n
∑
j=1
xj
m
(∑
i=1
)
ai,j yi
n
∑
j=1
cj xj .
(3.51)
�Содержание
(При сложении нескольких неравенств с одинаковым направлением знака неравенства, естественно,
получаем неравенство с тем же направлением знака неравенства.) Поскольку выражения в левых
частях неравенств (3.56) и (3.57) совпадают, имеем
n
∑
j=1
c j xj
m
∑
bi y i .
(3.52)
i=1
Следовательно, значение целевой функции, соответствующее некоторому допустимому решению
(включая оптимальное) задачи линейного программирования, не является независимым от значения
целевой функции для любого допустимого решения (включая оптимальное) соответствующей
двойственной задачи. В частности, для исходной и двойственной задач, представленных
соотношениями (3.45) – (3.48) имеем
(3.53)
для любых допустимых решений как основной задачи, так и двойственной ей. Одно из допустимых
решений исходной задачи имеет вид: х 1 = 5, х 2 = 0; при этом целевая функция принимает значение,
равное 80. Двойственная задача допускает решение y1 = у2 = 0, у3 = 8; значение целевой функции при
этом равняется 72. Следовательно, оптимальное значение целевой функции как для основной задачи,
так и для двойственной лежит в интервале от 72 до 80. Если задача линейного программирования
имеет неограниченное снизу оптимальное решение, то соответствующая двойственная задача не имеет
ни одного допустимого решения. Допустим, например, что существует допустимое решение основной
задачи, для которого значение целевой функции оказывается неограниченной снизу. Тогда
двойственная задача не обладает ни одним допустимым решением. Если бы двойственная задача
имела хотя бы одно допустимое решение, то возникло бы противоречие. В силу соотношения (3.52)
решение двойственной задачи ограничивало бы снизу значение исходной целевой функции для
любого допустимого решения основной задачи. Но согласно сделанному предположению, значение
основной целевой функции может быть произвольно большим отрицательным числом.
Обратим также внимание на то, что теорема двойственности позволяет проверить на оптимальность
любое допустимое пробное решение основной задачи. Если существует допустимое решение
двойственной задачи, для которого значение целевой функции совпадает со значением целевой
функции основной задачи, то решения обеих задач являются оптимальными. Справедливость этого
утверждения вытекает непосредственно из соотношения (3.52). Одно из достаточно интересных
следствий теоремы двойственности можно сформулировать в виде следующей теоремы:
Теорема о дополнительной нежесткости.
Пусть x j*(j = 1, 2,…, n) – решение основной задачи, a yi*(i = 1, 2,…, m) - решение соответствующей
двойственной задачи. Оба решения являются оптимальными тогда и только тогда, когда
yi∗
n
(∑
)
ai,j x∗j − bi = 0 (i = 1, 2, . . . , m),
j=1
x∗j
m
(∑
)
ai,j yi − cj = 0 (j = 1, 2, . . . , n).
i=1
Отсюда вытекает, что всякий раз, когда модель содержит ограничение, имеющее вид строгого
неравенства, соответствующая переменная в двойственной задаче принимает нулевое значение. При
формулировке основной и двойственной задач (соотношения (3.45) – (3.50)) была использована
удобная для записи каноническая форма. С помощью преобразований, рассмотренных ранее, любую
задачу линейного программирования можно представить либо в виде (3.45) – (3.47), либо в виде (3.48)
– (3.50). Взаимосвязь между основной и двойственной задачами еще более четко прослеживается, если
воспользоваться следующими развернутыми каноническими формами представления:
�Содержание
1. Основная задача:
c1x1 + c2x2 + . . . + cnxn → min .
(3.54)
при ограничениях
n
∑
ai,j xj
bi (i = 1, 2, . . . , h
m),
(3.55)
j=1
n
∑
ai,j xj = bi (i = h + 1, h + 2, . . . , m),
(3.56)
j=1
xj
2. Двойственная задача:
0 (j = 1, 2, . . . , k
n).
(3.57)
b1y1 + b2y2 + . . . + bnym → max,
(3.58)
при ограничениях
m
∑
ai,j yi
cj (i = 1, 2, . . . , k
m),
(3.59)
i=1
m
∑
ai,j yi = cj (i = k + 1, k + 2, . . . , m),
(3.60)
i=1
(3.61)
Теорема двойственности имеет место и в том случае, когда основная и двойственная задачи записаны
в приведенном выше каноническом виде. В этой связи полезно усвоить следующую схему
соответствия:
Двойственная задача
Основная задача
yi
0 (i = 1, 2, . . . , h).
Максимизация
Минимизация
Константы в правых частях ограничений
Целевая функция
Целевая функция
Константы в правых частях ограничений
j-й столбец, составленный из коэффициентов j-я строка, составленная из коэффициентов при
при неизвестных в ограничениях
неизвестных в ограничениях
i-я строка, составленная из коэффициентов при i-й столбец, составленный из коэффициентов при
неизвестных в ограничениях
неизвестных в ограничениях
j-я неотрицательная переменная
j-e неравенство вида ≥
j-я переменная, не имеющая ограничения в знаке j-e соотношение в виде равенства
i-e неравенство вида ≤
i-я неотрицательная переменная
i-e соотношение в виде равенства
i-я переменная, не имеющая ограничения в знаке
�Содержание
3.9. Решение двойственной задачи
И, наконец, последний вопрос, который будет нами рассмотрен – как ищется решение двойственной
задачи. Оказывается, что решение двойственной задачи находится в процессе решения основной
задачи симплекс-методом одновременно с оптимальным решением. Оптимальные значения
переменных двойственной задачи:
1) Коэффициенты при свободных переменных в строке 0 на последней симплекс-итерации при
решении задачи максимизации совпадают с оптимальными значениями переменных двойственной
задачи.
2) Коэффициент при x j в строке 0 на последней симплекс-итерации представляет собой разность
между левой и правой частями j-гo ограничения двойственной задачи, взятую с обратным знаком,
соответствующую оптимальному решению последней.
В качестве иллюстрации рассмотрим задачу, решение которой дано в предыдущем разделе:
минимизировать
x1 − 2x2 − x3 → min
(3.62)
при наличии следующих ограничений:
−x1
−x1
−2x1
x1
−
x2
+
2x3
−2,
+
x2
−
x3
−1,
−
x2
−
x3
−5,
−
x2
0;
(3.63)
−2,
x2
0;
x3
0.
Легко показать, что двойственная задача формулируется следующим образом:
максимизировать
−2y1 − y2 − 5y3 − 2y4 → max
(3.64)
при наличии ограничений:
−y1
−y
1
2y1
y
1
−
y2
+
y2
−
y3
−
y2
−
y3
0; y2
0;
y3
−
2y4
1,
−
y4
−2,
−1,
0;
y4
(3.65)
0.
Рассмотрим коэффициенты при четырех свободных переменных в строке 0 на заключительной
симплекс-итерации (см. таблицу 3.14). Согласно утверждению, приведенному выше (см. п. 1),
оптимальными значениями переменных двойственной задачи являются следующие:
y1 =
5
1
, y2 = 0, y3 = , y4 = 0.
3
3
�Содержание
Прежде всего убедимся, что выполняются условия (3.65):
− 13
− 0
− 13
2· 1
3
+ 0
−
5
3
− 0
−
5
3
− 0
1,
− 0
−2,
(3.66)
−1.
Затем покажем, что значение целевой функции двойственной задачи совпадает со значением целевой
функции исходной задачи
5
27
2
= −9.
− −0−5 −0=−
3
3
3
(3.67)
Решение (3.67) должно быть оптимальным, поскольку удовлетворяются все ограничения и, кроме того,
значения целевых функций исходной и двойственной задач совпадают. Наконец, вычислим разность
между левыми и правыми частями соотношений (3.67). Возьмем, например, первое ограничение, для
которого находим
1
4
− −1=− ,
3
3
(3.68)
т. е. получаем значение коэффициента при х 1 в строке 0 таблицы 3.14, что согласуется с утверждением,
сформулированным в п. 2.
Опираясь на понятие двойственности, можно глубже понять суть симплексного метода. В частности,
нетрудно убедиться, что коэффициенты при остаточных переменных в строке 0 на каждой итерации в
процессе решения исходной задачи представляют собой пробные значения переменных двойственной
задачи, что же касается других коэффициентов, фигурирующих в строке 0 после выполнения любой
симплекс-итерации, то их можно интерпретировать как разность между левой и правой частями (3.65)
при заданных пробных значениях двойственной задачи. Таким образом, симплексный метод можно
рассматривать как способ получения пробных решений двойственной задачи путем определения
допустимых решений исходной задачи. Как только удается найти допустимое решение этих двух задач,
процесс итерации заканчивается.
Нахождение решения двойственной задачи с помощью теоремы о дополнительной нежесткости.
В качестве иллюстрации рассмотрим ту же задачу:
Зная оптимальное решение задачи минимизации
x∗1 = 0, x∗2 = 4, x3∗ = 1, L = −9,
получаем следующие соотношения:
(−x∗1
− x∗2
+
2x∗3
(−x∗1
x∗2
−
x∗3
( − x∗2
−
x∗3
(−2x∗1
+
− x∗2
−2)
· y1∗
= 0;
−
−1)
·
y2∗
= 0;
−
−5)
· y3∗
= 0;
−
−2)
· y4∗
= 0.
− −2) ·
y1∗
= 0;
− −1) ·
y2∗
= 0;
− −5) ·
y3∗
= 0;
− −2) ·
y4∗
= 0.
−
(3.69)
Учитывая значения оптимальных переменных получаем:
(−0
− 4
(−0 +
(
4
+
−
− 4 −
(−2 · 0 − 4
2·1
1
1
(3.70)
�Содержание
Отсюда имеем:
0
4
0
−2
· y1∗
= 0;
y2∗
= 0;
· y3∗
= 0;
· y4∗
= 0.
·
(3.71)
В итоге получаем, что необходимо у2* = 0; у4* = 0.
Рассмотрим вторую часть соотношений, вытекающих из теоремы о дополнительной нежесткости:
(−y1∗
(−y1∗
(2y ∗
1
− y2∗
+ y2∗
− y3∗
− y2∗
− y3∗
−
2y4∗
−
y4∗
1)
· x∗1 = 0,
− −2)
· x∗2 = 0,
− −1)
· x∗3 = 0.
−
(3.72)
Подставляя уже известные результаты, получаем:
(−y1∗
(−y1∗
(2y ∗
1
− 0
−
y3∗
− 0 −
y3∗
+ 0
− 0
−
1) · 0 = 0,
− 0
− −2) · 4 = 0,
(3.73)
− −1) · 1 = 0.
Откуда получаем систему двух уравнений с двумя неизвестными:
2y ∗
1
−y ∗
1
− y3∗
+
1
=
0,
y3∗
+
2
=
0.
−
(3.74)
Вычитая из первого уравнения второе, получаем
1
3y1∗ + 1 − 2 = 0, ⇒ 3y1∗ = 1, ⇒ y1∗ = .
3
Отсюда нетрудно найти оптимальное значение последней переменной у3*. Например, из второго
уравнения
имеем:
–у1* – у3* + 2 = 0,
с
учетом
найденных
значений,
получаем
∗
1
3 −y3 +2
= 0, ⇒ −y3∗ + 53 =0, ⇒ y3∗ = 53 .
В итоге получаем то же решение:
Lmax = −9, y1∗ = 13 , y2∗ = 0, y3∗ = 35 , y4∗ = 0.
�Содержание
3.10. Лабораторная работа
Для развития вычислительных навыков по решению задач линейного программирования предлагается
рассчитать "Суточный рацион питания", оптимизированный по какому-либо выбранному критерию.
Это может быть вес продуктов, их стоимость или какой-нибудь другой критерий.
Для выбора своего суточного рациона питания необходимо выбрать ассортимент продуктов в
количестве не менее 20-25. Выбрать актуальные для вас ингредиенты в количестве не менее 8, включая
белки, жиры и углеводы. Кроме того, необходимо по всему ассортименту продуктов ввести
информацию по калорийности продуктов и их стоимости в расчете на 100 грамм веса.
Для определения среднего значения суточных энергозатрат необходимо расписать свои сутки (в
среднем) по видам деятельности и, исходя из своего веса, пола, возраста и других параметров,
рассчитать свои среднесуточные энергозатраты. По ним определяем необходимость во всех
ингредиентах при выбранной таким образом усредненной суточной деятельности. Исходя из тезиса,
что получаемые с питанием ингредиенты должны восполнять наши энергозатраты, формулируем
математическую задачу, вводим данные и, используя доступное ПО (например EXCEL или MatLab),
получаем варианты своего суточного рациона питания. В отчете необходимо изложить следующие
составляющие своей работы:
1. Цель проведения лабораторной работы.
2. Математическая модель задачи, включая не менее двух целевых функций, которые будут
использованы.
3. Данные для решения задачи, в том числе ассортимент продуктов (в виде EXCEL таблицы, расчет
среднесуточных энергозатрат и среднесуточной потребности в выбранных ингредиентах).
4. Результаты решения поставленной задачи.
5. Анализ полученных решений.
�Содержание
3.11. Примеры и задачи
Решить задачу симплекс-методом:
�Содержание
�Содержание
�Содержание
�Содержание
�Содержание
3.12. Транспортная задача ЛП
Изложенный выше симплекс-метод решения задачи линейного программирования является
универсальным и применим для решения любых таких задач. Однако существуют некоторые частные
типы задач линейного программирования, которые, в силу некоторых особенностей своей структуры,
допускают решение более простыми методами. К ним относится, в частности, так называемая
транспортная задача. Классическая транспортная задача линейного программирования формулируется
следующим образом.
Имеется m пунктов отправления: A1, A2,…, Am, в которых сосредоточены запасы какого-то однородного
товара (груза) в количестве соответственно a1, a2,…, аm единиц. Кроме того, имеется n пунктов
назначения: Bl, B2,…, Bn, подавших заявки соответственно на b1, b2,…, bn единиц товара.
Предполагается, что сумма всех заявок равна сумме всех запасов:
m
∑
ai =
i=1
n
∑
bj .
(3.75)
j=1
Известна стоимость cij перевозки единицы товара от каждого пункта отправления Ai до каждого пункта
назначения Bj. Таблица (матрица) стоимостей перевозки cij задана:
c11
c21
C=
...
cm1
c12
c22
...
cm2
...
c1n
. . . c2n
.
... ...
. . . cmn
Требуется составить такой план перевозок, при котором все заявки были бы выполнены, и при этом
общая стоимость всех перевозок была минимальна. При такой постановке задачи показателем
эффективности плана перевозок является стоимость; поэтому поставленную задачу точнее называют
транспортной задачей по критерию стоимости. Дадим этой задаче математическую формулировку.
Обозначим x ij – количество груза, отправляемого из г-го пункта отправления Ai в j-й пункт назначения
Bj (i = 1,…, m; j = 1,…, n). Неотрицательные переменные x 11, x 12,…, x mn (число которых, очевидно,
равно m n) должны удовлетворять следующим условиям:
1. Суммарное количество груза, направляемое из каждого пункта отправления во все пункты
назначения, должно быть равно запасу груза в данном пункте. Это даст нам m условий-равенств;
x11 + x12 + . . . + x1n
x + x + ... + x
21
22
2n
...
x + x + ... + x
m1
m2
mn
=
a1 ,
=
a2 ,
...
...
=
am ,
или, короче.
n
∑
x1j
j=1
n
∑
x2j
=
a1 ,
=
a2 ,
...
...
=
am .
j=1
...
n
∑
xmj
j=1
(3.76)
�Содержание
2. Суммарное количество груза, доставляемое в каждый пункт назначения изо всех пунктов
отправления, должно быть равно заявке, поданной данным пунктом. Это даст n условий-равенств:
x11 + x21 + . . . + xm1
x + x + ... + x
12
22
m2
...
x + x + ... + x
1n
2n
mn
=
b1 ,
=
b2 ,
...
...
=
bn ,
или, короче,
∑
m
xi1
i=1
m
∑
xi2
=
b1 ,
=
b2 ,
...
...
=
bn .
(3.77)
i=1
...
m
∑
xin
i=1
3. Суммарная стоимость всех перевозок, т. е. сумма величин x ij, умноженных на соответствующие
стоимости cij, должна быть минимальной:
L = c11 x11 + c12 x12 + . . . + c1n x1n
+
c21 x21 + c22 x22 + . . . + c2n x2n
+
...
cm1 xm1 + cm2 xm2 + . . . + cmn xmn
→
min
или, гораздо короче.
L=
m ∑
n
∑
cij xij → min,
i=1 j=1
(3.78)
где знак двойной суммы означает, что суммирование производится по всем комбинациям индексов
(i = 1, …, m; j = 1, …, n), т. е. по всем комбинациям пунктов отправления с пунктами назначения.
Функция (3.78) линейна, ограничения-равенства (3.76), (3.77) также линейны. Значит, это задача
линейного программирования с ограничениями-равенствами (ОЗЛП). Как и всякую другую задачу
линейного программирования, ее можно решить симплекс-методом, но данная задача имеет некоторые
особенности, позволяющие решить ее более просто. Причиной является то, что все коэффициенты
при переменных в уравнениях (3.76), (3.77) равны единице. Кроме того, имеет значение структура
связей между условиями. Нетрудно убедиться, что не все m + n уравнений нашей задачи являются
независимыми. Действительно, складывая между собой все уравнения (3.76) и все уравнения (3.77),
мы должны получить одно и то же, в силу условия (3.75). Таким образом, условия (3.76), (3.77) связаны
одной линейной зависимостью, и фактически из этих уравнений только m + n – 1, а не m + n являются
линейно независимыми. Значит, ранг системы уравнений (3.76), (3.77) равен
r = m + n – 1,
а, следовательно, можно разрешить эти уравнения относительно m + n – 1 базисных переменных,
выразив их через остальные, свободные. Подсчитаем количество свободных переменных. Оно равно:
�Содержание
Мы знаем, что в задаче линейного программирования оптимальное решение достигается в одной из
вершин ОДР, где по крайней мере к переменных обращаются в нуль. Значит, в нашем случае для
оптимального плана перевозок по крайней мере (m – 1)(n – 1) значений x ij должны быть равны нулю.
Условимся называть значения x ij количества единиц груза, направляемых из пункта A в пункт B
перевозками. Любую совокупность значений {x ij} (i = 1, …, m; j = 1, …, n) будем называть планом
перевозок, или просто планом. План {x ij} будем называть допустимым, если он удовлетворяет
условиям (3.76), (3.77). Допустимый план будем называть опорным, если в нем отличны от нуля не
более r = m + n – 1 базисных перевозок x ij , а остальные перевозки равны нулю. План {x ij} будем
называть оптимальным, если он, среди всех допустимых планов, приводит к наименьшей стоимости
всех перевозок. Перейдем к изложению методов решения транспортной задачи (ТЗ). Эти методы
сводятся к более простым операциям непосредственно с таблицей, где в определенном порядке
записаны все условия ТЗ. Такую таблицу мы будем называть таблицей транспортной задачи (ТЗ). В
нее записываются:
– пункты отправления и назначения,
– запасы, имеющиеся в пунктах отправления,
– заявки, поданные пунктами назначения,
– стоимости перевозок из каждого пункта отправления в каждый пункт назначения.
Стоимости перевозок мы будем помещать в правом верхнем углу каждой ячейки, с тем чтобы в самой
ячейке при составлении плана помещать перевозки x ij. Образец транспортной таблицы дан в табл.
3.17. Для краткости в дальнейшем будем обозначать пункты отправления – ПО, пункты назначения –
ПН. В правом верхнем углу каждой клетки проставлены стоимости перевозки единицы товара (груза)
из ПО Ai в ПН Bj. В правом столбце помещены запасы товара в каждом ПО, в нижней строке – заявки,
поданные каждым ПН. Для ТЗ сумма запасов равна сумме заявок; общее значение этой суммы
записывается в правой нижней ячейке таблицы. Выше мы показали, что ранг системы уравненийограничений ТЗ равен r = m + n – 1, где m – число строк, an- число столбцов транспортной таблицы.
Значит, в каждом опорном плане, включая оптимальный, будут отличны от нуля не более, чем
m + n – 1 перевозок. Ячейки (клетки) таблицы, в которых мы будем записывать эти отличные от нуля
перевозки, условимся называть базисными, а остальные (пустые) свободными.
Табл. 3.17. Таблица ТЗ
ÏÍ
B1
...
B2
Çàïàñû
Bn
ÏÎ
ai
C11
C12
...
C1n
A1
a1
C21
C22
...
C2n
A2
a2
...
...
...
...
...
...
Cm1
Cm2
...
Cmn
Am
bj
Çàÿâêè
am
b1
b2
...
bn
m
∑
i=1
ai =
n
∑
j=1
bj
�Содержание
Таким образом, решение ТЗ свелось к следующему. Найти такие значения положительных перевозок,
которые, будучи проставлены в базисных клетках транспортной таблицы, удовлетворяли бы
следующим условиям:
–
сумма перевозок в каждой строке таблицы должна быть равна запасу данного ПО;
–
сумма перевозок в каждом столбце должна быть равна заявке данного ПН;
–
общая стоимость перевозок – минимальная.
В дальнейшем все действия по нахождению решения ТЗ будут сводиться к преобразованию таблицы
ТЗ. При описании этих преобразований нам удобно будет пользоваться нумерацией клеток таблицы
(подобной нумерации клеток шахматной доски). Клеткой (Ai, Bj) или, короче, клеткой (i, j) мы будем
называть клетку, стоящую в i-й строке и j-м столбце транспортной таблицы. Например, самая верхняя
левая клетка будет обозначаться (1,1), стоящая под ней (2,1) и т. д.
�Содержание
3.13. Нахождение Начального Плана
Решение транспортной задачи, как и всякой задачи линейного программирования, начинается с
нахождения начального опорного решения, или, как мы будем говорить, опорного плана. В отличие от
общего случая ОЗЛП с произвольными ограничениями и минимизируемой функцией, решение ТЗ
всегда существует. Действительно, из чисто физических соображений ясно, что хоть какой-то
допустимый план существовать должен. Среди допустимых планов непременно имеется оптимальный
(может быть, не один), потому что линейная функция L – стоимость перевозок заведомо
неотрицательна (ограничена снизу нулем). В данном параграфе мы покажем, как построить опорный
план. Для этого существуют различные способы, из которых мы остановимся на простейшем, так
называемом "способе северо-западного угла". Поясним это на конкретном примере.
Пример 1. Условия ТЗ заданы транспортной таблицей (см. табл. 3.18).
Требуется найти опорное решение ТЗ (построить опорный план).
Решение. Перепишем табл. 3.19 и будем заполнять ее перевозками постепенно, начиная с левой
верхней ячейки (1, 1) ("северо-западного угла" таблицы). Будем рассуждать при этом следующим
образом. Пункт B1 подал заявку на 18 единиц груза. Удовлетворим эту заявку за счет запаса 48,
имеющегося в пункте A1, и запишем перевозку 18 в метке (1, 1). После этого заявка пункта B1
удовлетворена, а в пункте A1 осталось еще 30 единиц груза. Удовлетворим за счет них заявку пункта В2
(27 единиц), запишем 27 в клетке (1, 2); оставшиеся 3 единицы пункта A1 назначим пункту Вз. В
составе заявки пункта Вз остадись неудовлетворенными 39 единиц. Из них 30 покроем за счет пункта
A2, чем его запас будет исчерпан, и еще 9 возьмем из пункта Аз. Из оставшихся 18 единиц пункта A3 12
выделим пункту B4 оставшиеся 6 единиц назначим пункту В5, что вместе со всеми 20 единицами
пункта A4 покроет его заявку (см. табл. 3.20). На этом распределение запасов закончено:
Табл. 3.18. Условия ТЗ
ÏÍ
B1
B2
B3
B4
Çàïàñû
B5
ÏÎ
ai
10
8
5
6
9
A1
48
6
7
8
6
5
A2
30
8
7
10
8
7
A3
27
7
5
4
6
8
A4
bj
Çàÿâêè
20
18
27
42
12
26
125
�Содержание
каждый пункт назначения получил груз согласно своей заявке. Это выражается в том, что сумма
перевозок в каждой строке равна соответствующему запасу, а в столбце – заявке. Таким образом, нами
сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение
является не только допустимым, но и опорным решением транспортной задачи. Клетки таблицы, в
которых стоят ненулевые перевозки, являются базисными, их число удовлетворяет условию
r = m + n – 1 = 8. Остальные клетки – свободные (пустые), в них стоят ненулевые перевозки, их число
равно (n – 1)(m – 1) = 12. Значит, наш план – опорный и поставленная задача построения опорного
плана решена.
Однако этот план не обязан быть оптимальным по стоимости. При его построении мы не учитывали
стоимостей перевозок cij. Стоимость этого плана, которая найдется, если умножить каждую перевозку
на соответствующую стоимость, равна
И его можно попытаться улучшить. Перенесем, например, 18 единиц из клетки (1, 1) в метку (2, 1) и,
чтобы не нарушить баланса, перенесем те же 18 единиц из клетки (2, 3) в метку (1, 3). Тогда план,
приведенный в табл. 3.20, будет иметь меньшую стоимость:
т. е. на 126 единиц меньше стоимости плана, приведенного в табл. 3.19. Таким образом, за счет
циклической перестановки 18 единиц груза из одних клеток в другие нам удалось понизить стоимость
плана. На этом способе уменьшения стоимости в дальнейшем и будет основан алгоритм оптимизации
плана перевозок.
Табл. 3.19. Опорный план
ÏÍ
B1
B2
B3
B4
Çàïàñû
B5
ÏÎ
ai
10
A1
18
8
27
6
5
6
3
7
48
8
6
8
7
30
10
9
A3
7
5
8
12
4
7
6
6
18
27
42
12
27
8
20
A4
Çàÿâêè
5
30
A2
bj
9
20
26
125
�Содержание
3.14. Улучшение плана перевозок
Рассмотрим циклические перестановки подробнее. Возьмем транспортную таблицу, состоящую из 4-х
строк и 5-ти столбцов.
Табл. 3.20. Опорный план 2
ÏÍ
B1
B2
B3
B4
Çàïàñû
B5
ÏÎ
ai
10
8
27
A1
6
A2
5
6
21
7
18
48
8
6
7
30
10
9
A3
7
5
8
12
4
7
6
6
18
27
42
12
27
8
20
A4
Çàÿâêè
5
12
8
bj
9
20
26
125
Число строк и столбцов несущественно. Циклом в транспортной таблице мы будем называть несколько
клеток, соединенных замкнутой ломаной линией, которая в каждой клетке совершает поворот на 90°.
Например, в табл. 3.21 изображен один цикл.
Он имеет четыре вершины (2, 1), (2, 3) (3, 3), (3, 1). Стрелками показано направление обхода цикла.
Нетрудно убедиться, что каждый цикл имеет четное число вершин и, значит, четное число звеньев
(стрелок). Условимся отмечать знаком "+" те вершины цикла, в которых перевозки увеличиваются, а
знаком "–" – те вершины, в которых они уменьшаются.
Переместить какое-то количество единиц груза по выбранному циклу – это значит увеличить
перевозки, стоящие в положительных вершинах цикла, на это количество единиц, а перевозки,
стоящие в отрицательных вершинах – уменьшить на то же количество. Очевидно, при переносе
любого числа единиц по циклу равновесие между запасами и заявками не меняется: по-прежнему
сумма перевозок в каждой строке равна запасам этой строки, а сумма перевозок в каждом столбце –
заявке этого столбца. Таким образом, при любом циклическом переносе, оставляющем перевозки
неотрицательными, допустимый план остается допустимым. Стоимость же плана при этом может
меняться – увеличиваться или уменьшаться.
Назовем ценой цикла увеличение стоимости перевозок при перемещении одной единицы груза по
означенному циклу. Очевидно, цена цикла равна алгебраической сумме стоимостей, стоящих в
вершинах цикла, причем стоимости, стоящие в положительных вершинах, берутся со знаком "+", а в
отрицательных – со знаком "–".
�Содержание
Табл. 3.21. Пример построения цикла
ÏÍ
B1
B2
B3
Çàïàñû
B4
ÏÎ
ai
C11
C12
C13
C14
A1
a1
C21
A2
+
C22
r
✻
A3
C24
✲r
C31
−
C23
−
C32
r✛
r❄
a2
C33
C34
+
C41
C42
a3
C43
C44
Am
bj
a4
b1
b2
b3
Çàÿâêè
b4
m
∑
i=1
ai =
n
∑
bj
j=1
Например, для цикла С1 в табл. 3.21 цена равна:
с21 – с23 + с33 – с31.
Обозначим цену цикла С через γ. При перемещении одной единицы груза по циклу С стоимость
перевозок увеличивается на величину γ; при перемещении по нему k единиц груза стоимость
перевозок увеличивается на kγ. Для улучшения плана имеет смысл перемещать перевозки только по
тем циклам, цена которых отрицательна. Каждый раз, когда нам удастся совершить такое перемещение,
стоимость плана уменьшается на соответствующую величину kγ. Так как перевозки не могут быть
отрицательными, мы будем пользоваться только такими циклами, отрицательные вершины которых
лежат в базисных клетках таблицы, где стоят положительные перевозки. Если циклов с отрицательной
ценой в таблице больше не осталось, это означает, что дальнейшее улучшение плана невозможно, т. е.
оптимальный план достигнут. Метод последовательного улучшения плана перевозок и состоит в том,
что в таблице отыскиваются циклы с отрицательной ценой, по ним перемещаются перевозки, и план
улучшается до тех пор, пока циклов с отрицательной ценой уже не останется. При улучшении плана
циклическими переносами, как правило, пользуются приемом, заимствованным из симплекс-метода:
при каждом шаге (цикле) заменяют одну свободную переменную на базисную, т. е. заполняют одну
свободную клетку и взамен того освобождают одну из базисных клеток. При этом общее число
базисных клеток остается неизменным и равным m + n – 1. Этот прием удобен тем, что для него легче
находить подходящие циклы. Можно доказать, что для любой свободной клетки транспортной
таблицы всегда существует цикл (и притом единственный), одна из вершин которого лежит в
этой свободной клетке, а все остальные – в базисных клетках.
Если цена такого цикла, с плюсом в свободной клетке, отрицательна, то план можно улучшить
перемещением перевозок по данному циклу. Количество единиц груза k, которое можно переместить,
определяется минимальным значением перевозок, стоящих в отрицательных вершинах цикла (если
переместить большее число единиц груза, возникнут отрицательные перевозки).
�Содержание
Пример.
Найти оптимальный план для транспортной задачи со следующими данными: Матрица стоимостей
перевозки cij:
10 7 6
C= 5
8
8
4 ,
7
6 5
7 6
çàïàñû:
A=(31, 48, 38 )
ïîòðåáíîñòè:
B=(22, 34, 41, 20 ).
Условия ТЗ, заданные таблицей, см. в табл. 3.22.
Табл. 3.22. Исходные данные ТЗ
ÏÍ
B1
B2
B3
Çàïàñû
B4
ÏÎ
ai
10
7
6
8
31
A1
5
6
5
4
48
A2
8
7
6
7
38
A3
22
bj
34
41
20
Çàÿâêè
117
Решение. Составляем опорный план способом северо-западного угла (табл. 3.23). Стоимость этого
плана равна:
Число базисных переменных, как и полагается в невырожденном случае, равно
r = m + n – 1 = 3 + 4 – 1 = 6.
Попробуем улучшить план, заняв свободную клетку (2, 4) с минимальной стоимостью 4. Цикл,
соответствующий этой клетке, показан в табл. 3.23. Цена этого цикла равна γ = 4 – 7 + 6 – 5 = –2.
Табл. 3.23. Цикл для улучшения плана 1
ÏÍ
B1
B2
B3
Çàïàñû
B4
ÏÎ
ai
10
A1
22
7
A2
6
8
7
A3
Çàÿâêè
31
�
25
+
r
✻
23
5
r✛
6
18
22
8
9
5
bj
6
34
41
✲r +
4
48
r❄
�
20
7
38
20
117
�Содержание
По этому циклу мы можем переместить максимум 20 единиц груза (чтобы не получить в клетке (3, 4)
отрицательной перевозки). Новый, улучшенный план показан в табл. 3.24.
Стоимость этого плана L2 = 796 + 20 • (–2) = 756. В нем по прежнему шесть базисных клеток. Можно
ли еще улучшить план? Обратим внимание на свободную клетку (2, 1) со стоимостью 5.
Цикл, соответствующий этой клетке, показан в табл. 3.24; цена его γ = 7 – 6 + 5 – 10 = –4. По этому
циклу переместим 22 единицы груза, чем уменьшим стоимость перевозок до L3 = 756 + 22 • (–4) = 668
(см. табл. 3.25). Попробуем дальше улучшить этот план, подсчитывая цены циклов, начинающихся
положительной вершиной в свободной клетке. Просматриваем имеющиеся свободные клетки
табл. 3.25 и определяем цену цикла для каждой из них. Все эти цены (предоставляем читателю
проверить это) или положительные, или нулевые, следовательно, никакое циклическое перенесение
перевозок не может улучшить план перевозок. Таким образом, план, данный в табл. 3.25, является
оптимальным. Примененный выше метод отыскания оптимального решения транспортной задачи
называется распределительным; он состоит в непосредственном отыскании свободных клеток с
отрицательной ценой цикла и в перенесении перевозок по этому циклу.
Табл. 3.24. Цикл для улучшения плана 2
ÏÍ
B1
B2
B3
Çàïàñû
B4
ÏÎ
A1
ai
�
r
22
✻
+ r✛
10
✲r+
7
r❄
�
6
8
31
9
5
A2
25
8
5
3
7
A3
bj
6
4
48
20
6
7
38
38
22
34
41
20
Çàÿâêè
117
Табл. 3.25. Оптимальный план
ÏÍ
B1
B2
B3
Çàïàñû
B4
ÏÎ
ai
10
A1
7
22
3
5
3
7
A3
Çàÿâêè
31
6
8
bj
8
31
5
A2
6
4
6
7
38
38
22
34
41
48
20
20
117
�Содержание
3.15. Метод потенциалов
Распределительный метод решения ТЗ, с которым мы познакомились в предыдущем параграфе,
обладает одним недостатком: нужно отыскивать циклы для всех свободных клеток и находить их цены.
От этой трудоемкой работы нас избавляет специальный метод решения ТЗ, который называется
методом потенциалов. Этот метод позволяет автоматически выделять циклы с отрицательной ценой
и определять их цены.
Пусть имеется транспортная задача с балансовыми условиями
n
∑
xij = ai
m
∑
(i = 1, . . . , m);
j=1
xij = bj
(j = 1, . . . , n),
i=1
причем
m
∑
ai =
i=1
n
∑
(3.79)
bj .
j=1
Стоимость перевозки единицы груза из Ai в Bj равнa cij, таблица стоимостей (cij) задана.
Требуется найти план перевозок (x ij), который удовлетворял бы балансовым условиям(3.79), и при этом
стоимость всех перевозок была минимальна:
L=
m ∑
n
∑
cij xij → min .
(3.80)
i=1 j=1
Идея метода потенциалов для решения ТЗ сводится к следующему. Представим себе, что каждый из
пунктов отправления Ai вносит за перевозку единицы груза (все равно, куда) какую-то сумму αi в свою
очередь каждый из пунктов назначения Bj также вносит за перевозку единицы груза (куда угодно)
сумму βj; эти платежи передаются некоторому третьему лицу ("перевозчику").
Обозначим
c˜ij = αi + βj
(i = 1, . . . , m);
(j = 1, . . . , n)
(3.81)
и будем называть величину cij "псевдостоимостью" перевозки единицы груза из Ai в Bj. Заметим, что
платежи αi, βj не обязательно должны быть положительными.
Обозначим для краткости всю совокупность платежей α1, …, αm, β1, …, βn через (αi, βj). Не уточняя пока
вопроса, из каких соображений назначаются эти платежи, докажем прежде всего одно общее
положение или "теорему о платежах"
. Она состоит в следующем.
Для заданной совокупности платежей (αi, βj) суммарная псевдостоимость перевозок
˜=
L
m ∑
n
∑
c˜ij xij
i=1 j=1
при любом допустимом плане перевозок (x ij) сохраняет одно и то же значение
˜ = C = const.
L
(3.82)
В этой формуле величина C зависит только от совокупности платежей (αi, βj), но не зависит от того,
каким именно допустимым планом (x ij) мы пользуемся. Докажем это положение. Имеем:
˜=
L
m ∑
n
∑
c˜ij xij =
i=1 j=1
=
m ∑
n
m ∑
n
m ∑
n
∑
∑
∑
(αi + βj )xij =
αi xij +
βj xij .
i=1 j=1
i=1 j=1
i=1 j=1
(3.83)
�Содержание
Преобразуем первую из двойных сумм в выражении (3.83). Вынесем Ai из под знака суммы по j:
m ∑
n
∑
αi xij =
i=1 j=1
m
∑
αi
i=1
n
∑
xij .
j=1
Но план (x ij) является допустимым, значит, для него выполняется балансовое условие:
n
∑
xij = ai ,
i=1
откуда
m ∑
n
∑
αi xij =
i=1 j=1
m
∑
αi ai .
(3.84)
i=1
Аналогичным образом преобразуем второе слагаемое в (3.83):
m ∑
n
∑
βj xij =
i=1 j=1
=
n
∑
j=1
n ∑
m
∑
βj xij =
j=1 i=1
βj
m
∑
i=1
xij =
n
∑
(3.85)
βj bj .
j=1
В формуле (3.85) правая часть не зависит от плана перевозок (x ij), а зависит только от запасов (ai),
заявок (bj) и платежей (αi, βj). Таким образом, мы доказали, что суммарная псевдостоимость любого
допустимого плана перевозок при заданных платежах (αi, βj) одна и та же и от плана к плану не
меняется.
До сих пор мы никак не связывали платежи (αi, βj) и псевдостоимости
стоимостями перевозок cij. Теперь мы установим между ними связь.
с истинными
Предположим, что план (x ij) невырожденный (число базисных клеток в таблице перевозок равно
m + n – 1). Для всех этих клеток x ij > 0. Определим платежи (αi, βj) так, чтобы во всех базисных клетках
псевдостоимости были равны стоимостям:
что касается свободных клеток (где x ij =0), то в них соотношение между псевдостоимостями и
стоимостями может быть какое угодно:
Оказывается, соотношение между псевдостоимостями и стоимостями в свободных клетках показывает,
является ли план оптимальным, или же он может быть улучшен.
Докажем следующую теорему.
Теорема.
Если для всех базисных клеток плана (x ij > 0)
а для всех свободных клеток x ij = 0
то план является оптимальным и никакими способами улучшен быть не может.
�Содержание
Доказательство. Обозначим (x ij) - план с соответствующей ему системой платежей (αi, βj),
обладающий указанным выше свойством (для всех базисных клеток псевдостоимости равны
стоимостям, а для свободных – не превосходят их). Определим стоимость этого плана:
L=
m ∑
n
∑
(3.86)
cij xij .
i=1 j=1
В сумме (3.86) отличны от нуля только слагаемые, соответствующие базисным клеткам, в них
стоимости равны псевдостоимостям. Поэтому
L=
m ∑
n
∑
(3.87)
c˜ij xij .
i=1 j=1
На основании ранее доказанного, эта сумма (при данной системе платежей) равна некоторой
константе (см. 3.82):
L=
m ∑
n
∑
(3.88)
c˜ij xij = C.
i=1 j=1
Теперь попробуем изменить план (x ij), заменив его каким-то другим планом (x'ij). Обозначим стоимость
нового плана
′
L =
m ∑
n
∑
cij x′ij ,
(3.89)
i=1 j=1
где x'ij – новые перевозки, отличные от нуля, вообще говоря, в других клетках, чем x ij. Некоторые из
этих клеток совпадают с прежними – базисными для плана (x ij), а другие – со свободными для плана
(x ij). В первых – стоимости сij по-прежнему равны псевдостоимостям, а во вторых – не меньше их:
сij ≥ сij.
Поэтому сумма (3.89) не может быть меньше, чем сумма (3.88) (она же 3.86):
L′ =
m ∑
n
∑
i=1 j=1
cij x′ij
m ∑
n
∑
i=1 j=1
c˜ij x′ij =
m ∑
n
∑
c˜ij xij = C = L.
(3.90)
i=1 j=1
Мы видим, что никаким изменением плана (x ij) его стоимость не может быть уменьшена; значит, план
(x ij) является оптимальным и теорема доказана.
Нетрудно показать, что эта теорема справедлива также для вырожденного плана, в котором некоторые
из базисных переменных равны нулю. Действительно, то, что в базисных клетках перевозки строго
положительны, для доказательства несущественно: достаточно, чтобы они были неотрицательными.
Таким образом, доказано, что признаком оптимальности плана (x ij) является выполнение двух условий:
сij = сij для всех базисных клеток;
(3.91)
сij ≤ сij для всех свободных клеток.
(3.92)
План, обладающий таким свойством, называется потенциальным, а соответствующие ему платежи
(αi, βj) – потенциалами пунктов Ai, Bj (i = 1,… ,m; j = 1,… ,n).
Пользуясь этой терминологией, доказанную выше теорему можно сформулировать так:
Всякий потенциальный план является оптимальным.
�Содержание
Для решения транспортной задачи нам нужно одно – построить потенциальный план. Оказывается,
его можно построить методом последовательных приближений, задаваясь сначала какой-то
произвольной системой платежей, удовлетворяющей условию (3.91). При этом в каждой базисной
клетке получается сумма платежей, равная стоимости перевозок в данной клетке; затем, улучшая план,
следует одновременно менять систему платежей так, что они приближаются к потенциалам.
При улучшении плана нам помогает следующее свойство платежей и псевдостоимостей: какова бы ни
была система платежей (αi, βj), удовлетворяющая условию (3.91), для каждой свободной клетки цена
цикла пересчета равна разности между стоимостью cij и псевдостоимостью
в данной клетке:
γij = cij − c˜ij .
(3.93)
Действительно, рассмотрим какую-то транспортную таблицу, например m = 5, n = 5 (табл. 3.26).
Не будем проставлять в этой таблице ни запасов, ни заявок, ни перевозок (они не будут нам нужны),
просто отметим (обведем жирной линией) базисные клетки.
Табл. 3.26. Цикл пересчета
ÏÎÏÍ
B1
A1
X
B2
C11
X
C21
C
� r 12
✻
+ r✛
C22
X
A2
B3
X
B4
B5
C13
C14
✲r+ C15
rC�23
✻
C24
C25
C33
C34
C31
C32
C41
C42
C43
C44
C51
C52
C53
C54
X+
A3
r✛
C35
r❄
X �
X
C45
X
A4
C55
A5
Возьмем любую свободную клетку, например (1.5), и построим соответствующий ей цикл пересчета,
положительная вершина которого лежит в этой свободной клетке, а все остальные – в базисных.
Определим цену этого цикла. Она равна
γ15 = c15 − c35 + c33 − c23 + c22 − c12.
Но для всех базисных клеток стоимости равны псевдостоимостям, поэтому
γ15 = c15 − (α3 + β5) + (α3 + β3) − (α2 + β3) + (α2 + β2)−
−(α1 + β2) = c15 − (α1 + β5) = c15 − c˜15,
т. е. цена цикла, начинающегося в свободной клетке (1, 5) равна разности стоимости c15 и
псевдостоимости
в этой клетке. Очевидно, то же будет справедливо и для любой свободной
клетки.
Таким образом, при пользовании методом потенциалов для решения ТЗ отпадает наиболее трудоемкий
элемент распределительного метода: поиски циклов с отрицательной ценой.
Процедура построения потенциального (оптимального) плана состоит в следующем.
В качестве первого приближения к оптимальному плану берется любой допустимый план (хотя бы
построенный способом северозападного угла). В этом плане m + n – 1 базисных клеток, где m – число
строк, n - число столбцов транспортной таблицы. Для этого плана можно определить платежи (αi, βj)
так, чтобы в каждой базисной клетке выполнялось условие:
αi + βj = cij .
(3.94)
�Содержание
Уравнений (3.84) всего m + n – 1, а число неизвестных равно m + n. Следовательно, одну из этих
неизвестных можно задать произвольно (например, равной нулю). После этого из m + n – 1 уравнений
(3.84) можно найти остальные платежи (αi, βj), а по ним вычислить псевдостоимости:
для каждой свободной клетки. Если оказалось, что все эти псевдостоимости не превосходят
стоимостей
(3.95)
c˜ij cij ,
то план потенциален и, значит, оптимален. Если же хотя бы в одной свободной клетке
псевдостоимость больше стоимости
то план не является оптимальным и может быть улучшен переносом перевозок по циклу,
соответствующему данной свободной клетке. Цена этого цикла равна разности между стоимостью и
псевдостоимостыо в этой свободной клетке.
Итак, мы приходим к следующему правилу (алгоритму) решения транспортной задачи методом
потенциалов.
4. Взять любой опорный план перевозок, в котором отмечены m + n – 1 базисных клеток (остальные
клетки – свободные).
5. Определить для этого плана платежи (αi, βj), исходя из условия, чтобы в любой базисной клетке
псевдостоимости были равны стоимостям:
c˜ij = cij .
(3.96)
Один из платежей можно назначить произвольно, например, положить равным нулю.
3. Подсчитать псевдостоимости
для всех свободных клеток. Если окажется, что все они
не превышают стоимостей, то план оптимален.
4. Если бы хотя в одной свободной клетке псевдостоимость превышает стоимость, следует
приступить к улучшению плана путем переброски перевозок по циклу, соответствующему любой
свободной клетке с отрицательной ценой (для которой псевдостоимость больше стоимости).
5. После этого заново подсчитываются платежи и псевдостоимости, и, если план все еще не
оптимален, процедура улучшения продолжается до тех пор, пока не будет найден оптимальный
план.
Понятиям "платежей" и "псевдостоимостей" можно дать наглядную экономическую интерпретацию.
Представим себе, что (αi, βj) – реальные платежи, которые пункты Ai и Bj платят за перевозку единицы
груза какому-то третьему лицу ("перевозчику"). Не будем противопоставлять интересы A и B – пусть
они действуют как единая экономическая система. Перевозка единицы груза из пункта Ai в пункт Bj
объективно стоит сij, а стороны A и B вместе платят за эту перевозку "перевозчику" сумму
.
Оптимальным будет такой план перевозок, при котором пункты Ai и Bj не переплачивают
"перевозчику" ничего сверх объективной стоимости перевозок, т. е. такой план, любое отступление от
которого невыгодно для компании A и B – оно заставит их платить за перевозки больше, чем если бы
они возили грузы сами.
Продемонстрируем применение метода потенциалов для решения ТЗ на конкретном примере.
Пример 1. Решить методом потенциалов ТЗ, заданную в табл. 3.27, где проставлен первый опорный
план, составленный по способу северо-западного угла.
Решение. Приписываем к табл. 3.27 снизу добавочную строку для платежей βj, справа – добавочный
столбец для платежей αi (см. табл. 3.28). Псевдостоимости
записываем в левом верхнем
углу каждой клетки, а стоимости в правом верхнем углу.
�Содержание
Табл. 3.27. Исходные данные
ÏÎ\ ÏÍ
B1
B2
B3
10
A1
B4
8
17
B5
9
6
5
8
25
5
6
A2
4
13
3
8
19
9
32
7
5
A3
4
22
14
3
14
10
4
8
17
21
40
8
8
A4
bj
ai
41
14
20
20
24
117
Один из платежей, например α1, выбираем произвольно. В нащем случае α1 = 0. Для каждой базисной
клетки псевдостоимость
должна быть равна стоимости cij.
Полагая α1 = 0, находим из условия
α1 + β1 = 10; → 0 + β1 = 10; ⇒ β1 = 10,
а из условия
α1 + β2 = 8; → 0 + β2 = 8; ⇒ β2 = 8.
Продолжая эту процедуру, находим:
α2 + β2 = 6;
⇒ α2 + 8 = 6;
⇒ α2 = −2;
α2 + β3 = 4;
⇒ −2 + β3 = 4;
α3 + β3 = 5;
⇒ α3 + 6 = 5;
α3 + β4 = 4;
⇒ −1 + β4 = 4;
⇒ β4 = 5;
α3 + β5 = 3;
⇒ −1 + β5 = 3;
⇒ β5 = 4;
B2
B3
B5
8
6
⇒ β3 = 6;
⇒ α3 = −1;
Табл. 3.28. Цикл пересчета 1
ÏÎ\ ÏÍ
B1
10
A1
17
r 10
✻
8
8
5
6
�
+ r✛
A2
8
✲r+
6
4
r❄
�
13
9
9
7
B4
9
4
7
5
5
22
14
12
3
6
3
αi
25
0
32
-2
40
-1
20
20
4
117
4
2
10
10
4
4
14
8
9
A4
3
8
8
8
17
21
41
14
24
βj
10
8
6
5
4
⇒ α4 + 4 = 8;
3
4
bj
α4 + β5 = 8;
5
19
A3
14
5
ai
8
⇒ α4 = 4.
�Содержание
Так как не все псевдостоимости в свободных клетках табл. 3.28 удовлетворяют условию (3.85), план,
приведенный в табл. 3.28, не является оптимальным. Попробуем улучшить его, переводя в базисные
одну из свободных клеток, для которых
, например, клетку (2, 1). Строим соответствующий
этой клетке цикл (показан в табл. 3.28). Цена этого цикла 5 – 8 = –3. Перенесем по этому циклу 13
единиц груза (больше нельзя, чтобы перевозки в клетке (2, 2) не стали отрицательными), уменьшим
стоимость плана на 13 • 3 = 39 и перейдем к табл. 3.29.
Вычисляем для плана табл. 3.29 новые значения платежей, по-прежнему полагая α1 = 0. Видим, что в
табл. 3.29 все еще есть свободные клетки, для которых
, например (1, 4). Цикл для этой клетки
показан в табл. 3.29. Перенос четырех единиц по этому циклу приводит к плану, представленному (со
своими платежами и псевдостоимостями) в табл. 3.30. Но и его можно улучшить. Перенося по циклу,
соответствующему свободной клетке (4, 3), 20 единиц груза, получаем новый план (табл. 3.31) с
новыми платежами и псевдостоимостями.
Табл. 3.29. Цикл пересчета 2
ÏÎ\ ÏÍ
B1
10
A1
4
5
A2
B2
�
10
21
5
3
r
+✛
13
6
8
r
✻
B3
8
6
13
9
4
9
4
A3
9
3
5 r✛5
+
4
22
11
14
9
10
8
r�4
✻
19
7
B4
10
B5
6
✲r+
3
r 4�
❄
14
8
9
ai
αi
25
0
32
-5
40
-4
20
20
1
117
7
2
3
5
8
3
4
8
A4
8
bj
17
21
41
14
24
βj
10
8
9
8
7
8
В табл. 3.31 уже все псевдостоимости не превосходят соответствующих стоимостей, значит, этот план
оптимален. Потенциалы пунктов найдены и равны соответственно:
α1 = 0; α2 = −3; α3 = −2; α4 = 1;
β1 = 8; β2 = 8; β3 = 7; β4 = 6; β5 = 5.
При анализе этих значений нельзя забывать, что одно из них (в нашем случае α1 назначено
произвольно (α1 = 0), поэтому потенциалы (или равновесные платежи) пунктов достаточно условны.
Важно, что их сумма для всех перевозок, отличных от нуля, равна сумме стоимостей, проставленных в
соответствующих клетках. Если смотреть на эти платежи не с точки зрения каждого пункта в
отдельности, а с точки зрения всей "компании" пунктов (,), то безразлично, какой из пунктов платит
больше, а какой – меньше.
�Содержание
Табл. 3.30. Цикл пересчета 3
ÏÎ \ ÏÍ
B1
8
B2
10
A1
8
7
B4
9
6
21
5
A2
8
B3
5
5
6
5
4
4
3
3
9
6
7
5
�
26
14
11
10
10
+
A4
5
4
r
✻
4
5
10
r✛8
9
3
αi
25
0
32
-3
40
-2
20
3
8
3
✲r +
4
8
ai
5
15
A3
11
6
4
17
6
B5
8
r8
❄
�
20
bj
17
21
41
14
24
βj
8
8
7
6
5
117
Следующий пример будет посвящен вырожденному случаю.
Пример 2. Решить методом потенциалов ТЗ, условия которой даны в табл. 3.32.
Решение. Применяя способ северо-западного угла, получаем вырожденный план. Вводя ε-изменение
запасов, получаем опорный план с пятью базисными клетками. Подсчитывая платежи (табл. 3.33),
видим, что план не оптимален. Улучшаем его циклическим переносом перевозок и т. д. Процедура
улучшения плана показана в табл. 3.33, 3.34, 3.35, 3.36; план, приведенный в последней таблице,
оптимален. Таким образом мы получили окончательный оптимальный план (табл. 3.37) со стоимостью
Lmin = 20•2 + 25•5 = 20•3 + 10•3 = 255.
Табл. 3.31. Оптимальный план
ÏÎ\ ÏÍ
B1
8
B2
10
A1
8
7
B4
9
21
5
A2
8
B3
5
5
6
5
4
4
3
3
2
9
6
7
5
5
6
14
9
A4
10
8
4
4
10
8
7
3
6
20
bj
17
21
41
14
24
βj
8
8
7
6
5
αi
25
0
32
-3
40
-2
20
1
8
3
24
8
ai
5
15
A3
9
6
4
17
6
6
B5
8
117
�Содержание
Табл. 3.32. Исходные данные примера 2
ÏÎ\ ÏÍ
B1
B2
B3
6
ai
4
2
A1
20
3
5
4
A2
25
3
6
3
A3
30
bj
20
25
30
75
Табл. 3.33. Цикл пересчета 1
ÏÎ\ ÏÍ
B1
6
A1
20
7
B2
B3
6
4
3
✻
0
�r
3
A2
✲r+4
5� r❄5
25
6+ r✛3
ai
αi
20
0
25
1
30
30
0
75
2
4✲r 4
+
0
4
6
A3
3 r❄3
�
bj
20
25
30
βj
6
4
3
Табл. 3.34. Цикл пересчета 2
ÏÎ\ ÏÍ
B1
3
B2
6
A1
4
B3
�r
20
4
3
A2
5
+
4
✻
r✛5
5
3
3
4
ai
αi
20
0
25
1
10
30
0
75
3
✲r+2
4 r❄4
�
20
6
3
A3
20
bj
20
25
30
βj
3
4
3
3
Заметим, что эта стоимость такая же, как стоимость плана, показанного в табл. 3.35 при ε = 0; это и
естественно, так как табл. 3.36 получена из табл. 3.35 переносом по циклу фиктивных ε-перевозок; этот
перенос не меняет стоимости плана, а нужен только для того, чтобы убедиться, что план оптимален.
�Содержание
Табл. 3.35. Цикл пересчета 3
ÏÎ\ ÏÍ
B1
2
B2
6
3
B3
4
A1
ai
αi
20
0
25
2
10
30
1
75
2
2
20
4
+
A2
3
�
r3
✻
r3
✛
5
5
25
4
4✲r 4
�
0
6
3 r❄3
+
A3
20
bj
20
25
30
βj
2
3
2
Табл. 3.36. Цикл пересчета 4
ÏÎ\ ÏÍ
B1
2
B2
6
4
B3
4
A1
ai
αi
20
0
25
1
10
30
1
75
2
2
20
3
A2
3
0
3
5
5
3
4
25
3
5
6
3
A3
20
bj
20
25
30
βj
2
4
2
3
Табл. 3.37. Оптимальный план
ÏÎ\ ÏÍ
B1
B2
6
B3
4
A1
ai
2
20
3
A2
5
20
4
25
3
A3
20
bj
20
25
6
25
3
10
30
30
75
�Содержание
3.16. Транспортная задача с неправильным балансом
До сих пор мы рассматривали только такую задачу о перевозках, в которой сумма запасов равна сумме
заявок:
m
∑
ai =
i=1
n
∑
(3.97)
bj .
j=1
Это классическая транспортная задача, иначе называемая "транспортной задачей с правильным
балансом". Встречаются такие варианты ТЗ, где условие (3.97) нарушено. В этих случаях говорят о ТЗ с
неправильным балансом. Баланс ТЗ может нарушаться в двух направлениях:
1. Сумма запасов в пунктах отправления превышает сумму поданных заявок:
m
∑
ai >
n
∑
i=1
j=1
n
∑
m
∑
bj .
2. Сумма поданных заявок превышает наличные запасы:
bj >
j=1
ai .
i=1
Условимся первый случай называть "ТЗ с избытком запасов", а второй – "ТЗ с избытком заявок".
Рассмотрим последовательно эти два случая.
1. ТЗ с избытком запасов.
В пунктах A1, A2, …, Am имеются запасы груза a1, a2, a3, …, am; пункты B1, B2, …, Bn подали заявки
b1, b2, …, bn, причем
m
∑
ai >
i=1
n
∑
bj .
j=1
Требуется найти такой план перевозок (x ij), при котором все заявки будут выполнены, а общая
стоимость перевозок минимальна:
L=
m ∑
n
∑
cij xij = min .
i=1 j=1
Очевидно, при этой постановке задачи некоторые условия-равенства ТЗ превращаются в условиянеравенства, а некоторые остаются равенствами:
n
∑
xij
j=1
m
∑
ai
(i = 1, . . . , m),
xij = bj
(j = 1, . . . , n).
(3.98)
i=1
Мы умеем решать задачу линейного программирования, в какой бы форме – равенств или неравенств –
ни были заданы ее условия. Поставленная задача может быть решена, например, обычным симплексметодом. Однако задачу можно решить проще, если искусственным приемом свести ее к ранее
рассмотренной ТЗ с правильным балансом. Для этого, сверх имеющихся n пунктов назначения B1,
B2,…, Bn, введем еще один, фиктивный, пункт назначения Вф, которому припишем фиктивную заявку,
равную избытку запасов над заявками:
bϕ =
m
∑
i=1
ai −
n
∑
bj
j=1
и положим стоимости перевозок из всех ПО в фиктивный ПН Вф равными нулю:
(3.98)
�Содержание
Таким образом, отправление какого-то количества груза хiф из пункта Ai в пункт Вф попросту будет
означать, что в пункте Ai остались неотправленными хiф единиц груза. Введением фиктивного ПН Вф с
его заявкой bф мы сравняли баланс ТЗ, и теперь ее можно решать как обычную ТЗ с правильным
балансом.
2. ТЗ с избытком заявок.
В пунктах A1, A2, …, Am имеются запасы груза a1, a2, a3, …, am; пункты B1, B2, …, Bn подали заявки
b1, b2, …, bn, причем
n
∑
bj >
j=1
m
∑
ai ,
i=1
т. е. имеющихся запасов недостаточно для удовлетворения всех заявок.
Требуется составить такой план перевозок, при котором все запасы окажутся вывезенными, а
стоимость перевозок – минимальной. Очевидно, эту задачу также можно свести к обычной ТЗ с
правильным балансом, если ввести в рассмотрение фиктивный пункт отправления Aф шасом aф,
равным недостающему запасу:
aϕ =
n
∑
bj −
j=1
m
∑
ai ,
i=1
и положить стоимости перевозок из ПО Aф в любой ПН равными нулю: cфj = 0 (j = 1, …, n). При этом
какая-то часть заявок x фj на каждом пункте останется неудовлетворенной; будем считать, что она как бы
покрывается за счет фиктивного ПО Aф.
Таким образом, мы свели ТЗ с избытком заявок к ТЗ с правильным балансом. Заметим, что при этом
мы вовсе не заботились о "справедливости" удовлетворения заявок, не налагали никаких условий на
то, какую долю своей заявки должен получить каждый ПН – нас интересовали лишь расходы, которые
нужно минимизировать.
Если поставить задачу по-иному, например, потребовать, чтобы все ПН были удовлетворены в равной
доле, задача снова сводится к ТЗ с правильным балансом. А именно, нужно поданные заявки
m
∑
"исправить", умножив каждую из них на коэффициент k =
i=1
n
∑
ai
,
bj
после чего решать ТЗ с правильным
j=1
балансом. Можно также поставить задачу о распределении грузов по пунктам назначения с учетом
сравнительной важности каждого пункта. При этом доля заявки, которую получает каждый пункт,
может быть не одинаковой, как в только что описанном способе, а различной. В этом случае задача
также сводится к ТЗ с правильным балансом.
Пример. Решить ТЗ с избытком запасов, условия которой заданы в табл. 3.38.
Табл. 3.38. Исходные данные
ÏÎ\ ÏÍ
B1
B2
5
B3
7
ai
6
A1
50
6
6
5
A2
40
8
4
5
A3
bj
20
18
21
33
�Содержание
Решение.
n
∑
bj = 72;
m
∑
j=1
ai = 110.
i=1
Разница между запасами и заявками равна
m
∑
ai −
i=1
n
∑
bj = 110 − 72 = 38.
j=1
Введением фиктивного ПН Бф с заявкой Bф = 38 сводим задачу к ТЗ с правильным балансом (см. табл.
3.39, 3.40, 3.41, 3.42).
Табл. 3.39. Цикл пересчета 1
ÏÎ\ ÏÍ
B1
5
A1
B2
5
18
4
B3
7
7
21
6
6
Bϕ
�
11
6
6
A2
5
+
8
6
4
5
αi
50
0
40
-1
20
20
-1
110
r6
✻
1 ✲r0
✛
r5
0
22
4
ai
+
r0�
❄
18
5
A3
0
bj
18
21
33
38
βj
5
7
6
1
0
Табл. 3.40. Цикл пересчета 2
ÏÎ\ ÏÍ
B1
5
A1
B2
5
18
5
7
B3
�
r7
✛
5
Bϕ
6
21
6
11
7
6
A2
5
5
33
5
8
7
+
A3
0
4
r❄
5
0
r0
+
✻
αi
50
0
40
0
20
0
0
7
5
ai
0 ✲r0
20
bj
18
21
33
38
βj
5
7
5
0
�
110
�Содержание
Табл. 3.41. Цикл пересчета 3
ÏÎ\ ÏÍ
B1
5
A1
B2
5
18
5
7
B3
�
1
6
7
+
r7
✻
5
r6
✛
5
A2
Bϕ
6
33
2
8
A3
4
4
2
50
0
40
0
20
-3
+
0
0
r❄
�
7
5
αi
0 ✲r0
31
5
ai
-3
0
20
bj
18
21
33
38
βj
5
7
5
0
110
Табл. 3.42. Оптимальныцй план
ÏÎ\ ÏÍ
B1
5
A1
B2
5
6
B3
7
5
Bϕ
6
18
5
6
6
6
1
A3
8
4
5
5
33
4
3
0
-2
20
bj
18
21
33
38
βj
5
6
5
0
50
0
40
0
20
-2
0
6
5
αi
0
32
A2
3
0
ai
0
110
План, представленный в табл. 3.42, является оптимальным, так как во всех свободных клетках
псевдостоимости не превосходят стоимостей. Согласно этому плану, из 50 единиц груза, имеющихся в
пункте A1, не перевозятся 32, а остальные 18 направляются в пункт В1 из 40 единиц, имеющихся в
пункте А2, 6 не перевозятся, 1 отправляется в пункт B2 и 33 – в пункт B3. Все 20 единиц, имеющихся в
пункте А3, направляются в пункт В2.
�Содержание
3.17. Примеры и задачи
Решить транспортную задачу методом потенциалов при следующих условиях:
�Содержание
�Содержание
�Содержание
Глава 4. Целочисленное линейное программирование
4.1. Основные понятия
4.2. Примеры задач ЦЛП
4.2.1. Задача с постоянными элементами затрат
4.2.2. Задача планирования производственной линии
4.2.3. Задача о рюкзаке
4.2.4. Задача оптимального выбора на множестве взаимозависимых альтернатив
4.3. Методы решения задач ЦЛП
4.3.1. Метод отсекающих плоскостей
4.4. Примеры и задачи
�Содержание
4.1. Основные понятия
Невозможно обосновать какое-либо утверждение относительно близости целочисленного решения и
решения задачи без требований целочисленности. Целочисленное программирование ориентировано
на решение задач математического программирования, в которых все или некоторые переменные
должны принимать только целочисленные значения. Задача называется полностью целочисленной,
если условие целочисленности наложено на все ее переменные; когда это условие относится лишь к
некоторым переменным, задача называется частично целочисленной. Если при этом целевая функция
и функции, входящие в ограничения, линейные, то говорят, что данная задача является задачей
линейного целочисленного программирования (ЦЛП). Наиболее естественным классом практических
задач, которые сводятся к задачам целочисленного программирования, являются задачи, в которых
переменные – физически неделимые величины (например, количество единиц какой-либо продукции).
Другим важным классом таких задач являются экстремальные комбинаторные задачи, переменные
которых носят логический характер (х = 0 или x = 1). Такие переменные называются булевыми. К
таким задачам относятся, например, задачи выбора некоторого подмножества, обладающего какимилибо экстремальными свойствами.
Кроме этого существует класс задач, в которых нет явного требования целочисленности переменных,
но существуют некоторые особенности, позволяющие свести их к задачам целочисленного или
частично целочисленного программирования. Несмотря на то что к настоящему времени разработан
ряд методов решения целочисленных задач, ни один из них не обеспечивает желаемой эффективности
соответствующих вычислительных процедур, что особенно проявляется при увеличении размерности
задачи.
Таким образом, в отличие от задач линейного программирования, время решения которых
относительно невелико, реализация целочисленных алгоритмов в ряде случаев весьма затруднительна.
Далее изложим идею одного из современных методов целочисленного программирования.
Присущие целочисленному программированию трудности вычислительного характера обусловили
стремление исследователей найти альтернативные пути решения проблемы. Один из простейших
подходов заключается в решении непрерывной модификации целочисленной задачи с последующим
округлением координат полученного оптимума до допустимых целых значений. Округление в данном
случае есть не что иное, как приближение. Например, если получено решение непрерывной задачи,
содержащее число 10.1, то можно приближенно заменить это число на 10 (т. е. округлить до 10).
Однако нет гарантии, что округленное решение будет удовлетворять ограничениям. Например, для
линейной задачи с ограничениями в виде равенств округленное решение всегда не удовлетворяет этим
ограничениям. Как следует из теории линейного программирования, округленное решение не может
быть допустимым, поскольку это означало бы, что один и тот же базис (при условии равенства нулю
небазисных переменных) определяет два различных решения задачи. Приведенный пример показывает
возможную несостоятельность подхода, основанного на округлении оптимального решения задачи
линейного программирования, полученной из исходной целочисленной задачи путем отбрасывания
требований целочисленности.
Пример. Решить следующую задачу ЦЛП:
−2x1
− 2x2
→
11x1
+
4x2
33
−x1
+
2x2
8
x1
,
x2
∈
min
{0, 1, 2, . . .}.
�Содержание
Решение. Отбросив требование целочисленности переменных, получим задачу линейного
программирования. Решением данной задачи является точка
. Если
рассматривать все возможные округления компонент оптимальной точки, то получим четыре
возможных целочисленных точки (1, 4), (2, 4), (1, 5), (2, 5). Во-первых, из этих точек только точка (1, 4)
является допустимой для исходной задачи. А во-вторых, она находится далеко от истинного
оптимального решения исходной задачи.
Невозможно обосновать какое-либо утверждение относительно близости целочисленного решения и
решения задачи без требований целочисленности, поскольку можно построить пример,
показывающий, что данный подход может давать сколь угодно плохие приближения к решению
исходной целочисленной задачи.
Эффект округления не слишком заметен, лишь когда искомые параметры задачи подчинены
относительно нежестким ограничениям. Однако типичными для задач целочисленного
программирования являются ограничения-равенства, достаточно жестко определяющие поведение
релевантных переменных. Примером может служить условие x 1 + x 2 + … + x n = 1, где x i для всex i.
В такой ситуации процедура округления не имеет смысла и необходимо обратиться к другим
алгоритмам решения. Несостоятельность округления подчеркивается также следующими
соображениями. Несмотря на то что целочисленные переменные обычно выражают количество
неделимых предметов (например, машин, людей, кораблей), возможны и другие типы спецификации
этих переменных. Так, решение о финансировании некоторого проекта представляется булевой
переменной x (x = 0, если проект отклоняется, и x = 1, если проект принимается). В этом случае
бессмысленно оперировать дробными значениями величины x и процедура округления является
логически неприемлемой.
Так как практическая ценность задач с целочисленными переменными не вызывает сомнений,
целочисленное программирование занимает важное место среди методов исследования операций.
�Содержание
4.2. Примеры задач ЦЛП
Рассмотрим примеры решения задач, ни одна из которых не является ярко выраженной задачей
целочисленного программирования. Значительно больший интерес представляют открываемые
целочисленным программированием возможности приведения "некорректных" задач к стандартному
виду задач математического программирования. Использование специальных приемов позволяет
получить решение в ряде случаев, когда решить задачу с помощью прямых методов оказывается крайне
затруднительным.
4.2.1. Задача с постоянными элементами затрат
4.2.2. Задача планирования производственной линии
4.2.3. Задача о рюкзаке
4.2.4. Задача оптимального выбора на множестве взаимозависимых альтернатив
�Содержание
4.2.1. Задача с постоянными элементами затрат
В одной из типичных задач планирования производства рассматривается N видов промышленной
продукции. Затраты на производство продукции вида j складываются из постоянных затрат в объеме
Kj, не зависящем от количества произведенной продукции, и текущих издержек Cj на производство
единицы продукции. Таким образом, если x – объем выпуска продукции вида j, функцию суммарных
затрат можно записать следующим образом:
K + c x , x > 0,
j
j j
j
Cj (xj ) =
0,
xj = 0.
Естественным выглядит стремление минимизировать величину суммарных затрат
z=
N
∑
Cj (xj ) → min .
j=1
Рассматриваемый критерий не является линейным по переменной x j вследствие разрыва в начале
координат. Поэтому задача с целевой функцией z оказывается непригодной для дальнейшего
исследования классическими методами.
Введение дополнительных булевых переменных позволяет преобразовать задачу к виду, "более
приемлемому" с аналитических позиций. Пусть
0,
yj =
1,
xj = 0,
xj > 0,
что можно переписать в форме (линейного) неравенства: x j ≤ Мy. Здесь M > 0 достаточно велико, чтобы
условие x j ≤ M выполнялось для всех допустимых объемов выпуска продукции. Теперь исходную
задачу можно сформулировать следующим образом:
z=
N
∑
(cj xj + Kj yj ) → min .
j=1
0
xj
M yj , j = 1, . . . , N,
yj ∈ {0, 1}, j = 1, . . . , N
Рассмотрим подробнее ограничение x j ≤ Myj. При уcловии x j > 0 имеем yj = 1 и целевая функция
включает постоянные затраты Kj. Если x j = 0, то j может принимать значения 0 или 1, однако,
поскольку Kj > 0 и z требуется минимизировать, переменная j должна быть равна нулю.
Следует подчеркнуть, что исходная задача с постоянными элементами затрат не имеет никакого
отношения к целочисленному программированию. Тем не менее "преобразованная" задача
представляет собой частично целочисленную задачу с булевыми переменными ("0 – 1" задачу).
Необходимость рассмотренного преобразования была обусловлена исключительно аналитическими
соображениями. В самом деле, введенные булевы переменные являются вспомогательными, так как
ассоциированную с ними информацию можно назвать полезной лишь условно. Например, yj = 1 в
оптимальном решении означает, что x j > 0.
�Содержание
4.2.2. Задача планирования производственной линии
Рассмотрим задачу, связанную с выполнением n различных производственных операций на одном
станке за минимально возможное время. В процессе производства последовательно выполняется ряд
операций, порядок которых устанавливается технологическими требованиями. Каждое изделие
необходимо изготовить к заданному сроку.
В задаче имеются три типа ограничений, связанных с последовательным осуществлением операций,
неразветвленностью производственного процесса и наличием установленного срока изготовления
каждого изделия. Ограничения второго типа отражают тот факт, что никакие две операции не
выполняются (на одном станке) одновременно.
Рассмотрим первый тип ограничений. Обозначим через x j время начала операции j (отсчитываемое от
некоторого исходного момента), а через aj - величину промежутка времени, требуемого для
выполнения этой операции. Если операция i должна предшествовать операции j, то соответствующее
ограничение записывается в виде неравенства x i + ai ≤ x j.
Рассмотрим условие неразветвленности производственного процесса. Для операций i и j, не
выполняемых на станке одновременно, или x i – x j ≥ aj, или x j – x i ≥ ai когда в оптимальном решении j
предшествует i или i предшествует j соответственно.
Логические ограничения вида "или – или" не укладываются в рамки обычной задачи линейного
программирования (так как порождают невыпуклое пространство допустимых решений). Эту
трудность можно обойти путем введения вспомогательных булевых переменных
0,
yij =
1,
åñëè îïåðàöèÿ
j
ïðåäøåñòâóåò îïåðàöèè
i,
åñëè îïåðàöèÿ
i
ïðåäøåñòâóåò îïåðàöèè
j.
Если M достаточно велико, ограничение вида "или – или" эквивалентно следующей системе
неравенств:
M yij + (xi − xj )
aj ,
M (1 − yij ) + (xj − xi )
ai .
В случае, когда для оптимального решения yij = 0, второе неравенство становится избыточным, а
активным ограничением будет первое неравенство. Если же yij = 1, первое неравенство становится
избыточным, а в качестве ограничения фигурирует второе неравенство. Таким образом, введение
булевых переменных yij позволяет преобразовать эти ограничения к обычному виду ограничений
линейной частично целочисленной задачи.
Учет заданных сроков изготовления осуществляется следующим образом. Пусть операция j должна
быть завершена к моменту времени dj, тогда
x j + aj ≤ dj.
Если обозначить через t суммарное время, требуемое для выполнения всех n операций,
рассматриваемая задача принимает следующий вид:
t → min,
xj + aj
t, j = 1, . . . , n
и выполняются ограничения трех перечисленных выше типов.
�Содержание
4.2.3. Задача о рюкзаке
К задачам рассматриваемого типа относится классическая задача о рюкзаке, которая в переменных 0 и
1 имеет следующий вид:
z = c1x1 + c2x2 + . . . + cnxn → max .
a1 x1 + a2 x2 + . . . + an xn
b,
xi ∈ {0, 1}, i = 1, . . . , n.
В общем виде этот тип задач может быть описан следующим образом. Имеется n позиций, каждую из
которых можно либо выбрать (xi = 1), либо нет (xi = 0). Выбор i-й позиции требует затрат ресурса в
количестве ai. Общее количество имеющегося в распоряжении ресурса равно b. Эффект от выбора i-й
позиции есть ci. Следует осуществить выбор среди позиций, допустимый в смысле затрат ресурсов и
имеющий максимальный суммарный эффект.
�Содержание
4.2.4. Задача оптимального выбора на множестве взаимозависимых
альтернатив
В общем виде задача формулируется следующим образом. Пусть имеется n альтернатив, каждая из
которых приносит прибыль в размере pi, i = 1,…, n. Необходимо выбрать не более k из данных
альтернатив так, чтобы суммарная прибыль была бы максимальна. На альтернативы наложены
некоторые ограничения нескольких типов, а именно:
1. i-я альтернатива может быть выбрана только в том случае, если выбрана j-я;
2. i-я альтернатива не может быть выбрана, если выбрана j-я;
3. хотя бы одна из альтернатив, i-я или j-я, обязательно должна быть выбрана;
4. одна и только одна из альтернатив, i-я или j-я, обязательно должна быть выбрана;
5. k-я альтернатива может быть выбрана, только если выбрана хотя бы одна из альтернатив i-я или j-я.
Для математической постановки задачи введем переменные логического (булева) типа, а именно:
положим
1,
xi =
0,
åñëè àëüòåðíàòèâà
i
âûáèðàåòñÿ,
åñëè àëüòåðíàòèâà
i
íå âûáèðàåòñÿ.
Целевую функцию задачи можно записать в виде p1x 1 + … + pnx n. Покажем, как можно выразить
математически ограничения перечисленных типов.
1)
xi − xj
0,
2)
xi + xj
1,
3)
xi + xj
1,
4)
xi + xj = 1,
5) xk − xi − xj
0.
Таким образом, разнообразные ограничения на выбор альтернатив могут быть выражены с помощью
линейных ограничений, накладываемых на булевы переменные. Естественно, что кроме приведенных
типов ограничений возможны и многие другие.
�Содержание
4.3. Методы решения задач ЦЛП
Методы решения задач целочисленного программирования можно классифицировать как методы
отсечений и комбинаторные методы. Исходной задачей для демонстрации возможностей методов
отсечений, используемых при решении линейных целочисленных задач, является задача с
ослабленными ограничениями, которая возникает в результате исключения требования
целочисленности переменных. По мере введения специальных дополнительных ограничений,
учитывающих требование целочисленности, многогранник допустимых решений ослабленной задачи
постепенно деформируется до тех пор, пока координаты оптимального решения нестанут
целочисленными. Название "методы отсечений" связано с тем обстоятельством, что вводимые
дополнительные ограничения отсекают (исключают) некоторые области многогранника допустимых
решений, в которых отсутствуют точки с целочисленными координатами. В основе комбинаторных
методов лежит идея перебора всех допустимых целочисленных решений. Разумеется, на первый план
здесь выдвигается проблема разработки тестовых процедур, позволяющих непосредственно
рассматривать лишь относительно небольшую часть указанных решений, а остальные допустимые
решения учитывать некоторым косвенным образом. Наиболее известным комбинаторным методом
является метод ветвей и границ, который также опирается на процедуру решения задачи с
ослабленными ограничениями. При таком подходе из рассматриваемой задачи получаются две
подзадачи путем специального "разбиения" пространства решений и отбрасывания областей, не
содержащих допустимых целочисленных решений. В случае, когда целочисленные переменные
являются булевыми, применяют комбинированные методы. Булевы свойства переменных существенно
упрощают поиск решения. Методы, рассматриваемые в данной главе, предназначены для решения
главным образом линейных целочисленных задач. Метод отсекающих плоскостей, разработанный
Р. Гомори, включает дробный алгоритм (первый алгоритм Гомори), который используется при
решении полностью целочисленных задач, а также алгоритм решения частично целочисленных задач
(второй алгоритм Гомори). Алгоритм, реализующий метод ветвей и границ, был предложен А. Лэндом
и А. Дойгом. Для решения задач, содержащих только булевы переменные, обычно используется так
называемый аддитивный алгоритм. Для решения нелинейных задач с булевыми переменными
используется также обобщенный аддитивный алгоритм.
�Содержание
4.3.1. Метод отсекающих плоскостей
Рассмотрим задачу ЦЛП, записанную в следующем виде:
c1 x1 + c2 x2 + . . . + cn xn → min .
bi +
n
∑
aij xj
0,
i = 1, . . . , m,
(4.1)
j=1
xj ∈ Z, j = 1, . . . , n,
где Z – множество целых чисел.
Основная идея метода отсечений состоит в том, что исходная задача ЦЛП первоначально
рассматривается без требований целочисленности переменных. Если оптимальное решение такой
задачи с ослабленными ограничениями тем не менее является целочисленным, то, как нетрудно
показать, оно является оптимальным решением для исходной задачи. В противном случае по
специальному алгоритму строится некоторое дополнительное линейное ограничение, обладающее
следующими свойствами:
3) данное дополнительное ограничение отсекает полученное нецелочисленное оптимальное решение
(т. е. оно не удовлетворяет данному дополнительному ограничению);
4) данное дополнительное ограничение не отсекает ни одного целочисленного решения (т. е. любое
допустимое целочисленное решение предыдущей задачи удовлетворяет данному дополнительному
ограничению).
Дополнительное линейное ограничение, обладающее приведенными свойствами, будем называть
правильным отсечением. Приведем алгоритм построения правильных отсечений, который предложен
Гомори (метод Гомори). Пусть решение исходной задачи с ослабленными ограничениями (без
требования целочисленности) симплексметодом дало на последнем шаге, соответствующем
оптимальному решению, следующее выражение основных (базисных) переменных x 1,…, xm через
неосновные (свободные) переменные x m+1,…, xn:
xi = b′i + a′i,m+1 xm+1 + . . . + a′i,n xn , i = 1, . . . , m.
(4.2)
Как следует из теории симплекс-метода, оптимальным решением задачи в этом случае является вектор
x* = (b'1,…, b'm, 0,…, 0). Если все компоненты этого вектора целочисленные, то, как было отмечено, это
и есть оптимальное решение исходной задачи, иначе среди компонент вектора есть хотя бы одна
нецелочисленная (с положительной дробной частью, которую обозначать через ). Например:
Пусть это будет компонента b'k({b'k} > 0). Тогда
рассмотрим следующее линейное ограничение
{b′i } − {−a′i,m+1 }xm+1 − . . . − {−a′i,n }xn
0.
(4.3)
Покажем, что линейное ограничение (4.3) удовлетворяет требованиям правильного отсечения.
8. Подставив компоненты вектора x* = (b'1,…, b'm, 0,…, 0) в неравенство (4.3), получим {b'k} < 0, что
противоречит выбору компоненты b'к. Таким образом, мы показали, что ограничение (4.3) отсекает
нецелочисленное оптимальное решение исходной задачи.
9. Рассмотрим произвольное допустимое целочисленное решение х = (x 1,…, xn) задачи (4.1). Тогда
компоненты вектора удовлетворяют уравнениям (4.2). А следовательно, выполнено следующее
соотношение
xk = b′k − (−a′k,m+1 )xm+1 − . . . − (−a′k,n )xn .
Отсюда
b′k�=�xk�+�(−a′k,m+1)xm+1�+�.�.�.�+�(−a′k,n)xn.
�Содержание
Взяв дробную часть от обеих частей данного соотношения и учитывая, что дробная часть суммы не
превосходит суммы дробных частей слагаемых, а дробная часть произведения неотрицательного
целого и числа не превосходит произведения целого на дробную часть этого числа, получаем
{b′k}�=�{xk�+�(−a′k,m+1)xm+1�+�.�.�.�+�(−a′k,n)xn}�
{xk } + {−a′k,m+1 }xm+1 + . . . + {−a′k,n }xn .
Так как
{x k } = 0,
получаем неравенство (4.3).
Следовательно, мы показали, что оно не отсекает никаких допустимых целочисленных решений
исходной задачи (4.1). Сформулируем теперь этапы решения задачи целочисленного линейного
программирования методом Гомори.
Этап
1.
Используя симплекс-метод, решаем исходную задачу (4.1) без ограничений на
целочисленность. Если задача с ослабленными ограничениями не имеет решения, то и
исходная задача не имеет решения. Если решение задачи оказывается целочисленным, то оно
является решением исходной задачи (4.1), и процесс поиска решения завершен.
Этап 2. Выбирается одна из нецелых компонент полученного на этапе 1 решения (как правило,
выбирается компонента, имеющая наибольшую дробную часть). Исходя из выбранной
компоненты строится правильное отсечение (4.3).
Этап 3. Неравенство (4.3), полученное на этапе 2, преобразуется в равенство путем добавления новой
неотрицательной переменной
xn+1 = −{b′k } + {−a′k,m+1 }xm+1 + . . . + {−a′k,n }xn ,
xn+1
Эти соотношения присоединяем к ограничениям задачи, рассмотренной на этапе 1.
Этап 4. Решаем задачу с модифицированными на этапе 3 ограничениями. Если ее оптимальное
решение является целочисленным, то это и есть оптимальное решение исходной задачи,
иначе возвращаемся к этапу 2.
Оказывается, что если исходная задача имеет решение, то данный алгоритм позволяет его найти за
конечное число шагов.
Пример. Решить следующую задачу целочисленного линейного программирования:
−7x1 − 9x2 → min .
6 + x1 − 3x2
0,
35 − 7x1 − x2
0,
x1 , x2
∈ N,
(4.4)
где N – множество натуральных чисел, начиная с нуля.
Решение. Область допустимых решений задачи с ослабленными ограничениями (четырехугольник
ABCD), получаемой путем отбрасывания требования целочисленности переменных, а также
оптимальное решение этой задачи изображены на рис. 4.1.
�Содержание
Рис. 4.1. ОДР задачи с ослабленными ограничениями
Добавляя в задаче с ослабленными ограничениями две новые неотрицательные переменные,
приведем задачу к стандартному виду
−7x1 − 9x2 → min .
x3
x4
=6
+x1
= 35 −7x1
x1 ,
x2 ,
x3 ,
−3x2 ,
(4.5)
−x2 ,
x4 ∈ N.
Применяя симплекс-метод (этап 1) для решения задачи (4.5), получим последнюю симплексную
таблицу, определяющую оптимальное решение, в следующем виде (табл. 4.1).
Табл. 4.1 Симплекс-таблица 1
Ñâ. ÷.
x4
x3
L
−63
15
11
28
11
x2
7
2
1
− 22
7
− 22
x1
9
2
3
− 22
1
22
Табл. 4.2 Симплекс-таблица 2
Ñâ. ÷.
x4
x3
L
−63
15
11
28
11
x2
7
2
1
− 22
7
− 22
x1
9
2
3
− 22
1
22
x5
− 12
1
22
7
22
Оптимальное значение целевой функции L = –63 достигается в точке x* = (x 1*, x 2*, x3*, x4*) с
координатами x 1* = 9/2, x2* = 7/2, x3* = 0, x 4* = 0.
�Содержание
Поскольку оптимальное решение задачи с ослабленными ограничениями не является целочисленным,
то необходимо переходить к этапу 2, то есть строить правильное отсечение. Поскольку обе компоненты
оптимального решения нецелочисленны и их дробные части равны, то выберем в качестве
переменной, на базе которой строится отсечение, например переменную x 2. Тогда, добавляя новую
неотрицательную переменную x 5, получаем согласно (4.3) дополнительное ограничение следующего
вида:
{ } { }
{ }
x5 = −
7
2
+
7
x3 +
22
1
x4
22
или
1
7
1
x5 = − + x3 + x4 .
2 22
22
(4.6)
Добавляя новое ограничение (4.6) к ограничениям задачи (4.5), получаем модифицированную задачу
линейного программирования со следующей исходной симплекс-таблицей (табл. 4.2). Продолжая
решение симплекс-методом, приходим к следующей заключительной симплекс-таблице (табл. 4.3).
Оптимальное значение целевой функции L = –59 достигается в точке x* = (x 1*, x 2*, x3*, x4*, x5*) с
координатами x 1* = 32/7, x 2* = 3, x3 = 11/7, x 4* = 0, x 5* = 0.
Поскольку оптимальное решение задачи с ослабленными ограничениями опять не является
целочисленным, то необходимо переходить к этапу 2, т. е. строить еще одно правильное отсечение.
Поскольку две компоненты оптимального решения нецелочисленны, то выберем в качестве
переменной, на базе которой строится отсечение, переменную х 1. Тогда, добавляя новую
неотрицательную переменную х6, получаем согласно (4.3) дополнительное ограничение следующего
вида:
{
или
32
x6 = −
7
}
}
{ }
{
1
1
+
x4 + −
x5
7
7
6
4 1
x6 = − + x4 + x5 .
7 7
7
(4.7)
Добавляя новое ограничение (4.7) к ограничениям задачи, рассмотренной на предыдущем шаге,
получаем модифицированную задачу линейного программирования со следующей исходной
симплекстаблицей (табл. 4.4).
Продолжая решение симплекс-методом, приходим к следующей заключительной симплекс-таблице
(табл. 4.5).
Оптимальное значение целевой функции L = -55 достигается в точке x* = (x 1*, x 2*, x3*, x4*, x5*, x6*) с
координатами x 1* = 4, x 2* = 3, x 3* = 1, x 4* = 4, x 5* = 0, x 6* = 0. Поскольку оптимальное решение
задачи с ослабленными ограничениями является целочисленным, то процесс поиска оптимального
решения исходной задачи (4.4) завершен – оптимальной точкой является точка (4,3) со значением
целевой функции L = –55.
Табл. 4.3 Симплекс-таблица 3
Ñâ. ÷.
x4
x5
L
−59
1
8
x2
3
0
−1
x1
32
7
− 17
1
7
x3
11
7
− 17
22
7
�Содержание
Табл. 4.4 Симплекс-таблица 4
Ñâ. ÷.
x4
x5
L
−59
1
8
x2
3
0
−1
x1
32
7
− 17
1
7
x3
11
7
− 17
22
7
x6
− 47
1
7
6
7
Табл. 4.5 Симплекс-таблица 5
Ñâ. ÷.
x6
x5
L
−55
7
2
x2
3
0
−1
x1
4
−1
1
x3
1
−1
4
x4
4
7
−6
В ходе решения задачи по методу Гомори было построено два дополнительных линейных отсечения.
Для того чтобы представить себе геометрический смысл построенных отсечений, преобразуем
ограничение (4.6), выразив переменные x 3 и х 4 через исходные переменные x 1 и x 1 из уравнений (4.5).
А именно:
или x 2 + x 5 = 3, что эквивалентно, учитывая неотрицательность переменной x 5
(4.8)
Рис. 4.2. Геометрическая интерпретация метода отсекающих плоскостей
�Содержание
Аналогичным образом преобразуем линейное отсечение (6.7), выразив переменную х 3 и х 4 из
уравнений (6.5) и переменную х 5 из уравнения (6.6), а именно:
−
7
1
1
(6 + x1 − 3x2 ) − (35 − 7x1 − x2 ) + x5 = − ,
22
22
2
или х 1 +х2 + х6 = 7, что эквивалентно, учитывая неотрицательность переменной х 6,
x2
(4.8)
3.
Изобразив ограничения (4.8) и (4.9) эквивалентные, как мы показали, линейным отсекающим
ограничениям (4.6) и (4.7), мы получим геометрическую интерпретацию метода отсекающих
плоскостей (рис. 4.2). Новое допустимое множество решений, получившееся после отсечений, есть
многоугольник ABCDEF.
Рис. 4.2. Геометрическая интерпретация метода отсекающих плоскостей
Аналогичным образом преобразуем линейное отсечение (6.7), выразив переменную х3 и х4 из
уравнений (6.5) и переменную х5 из уравнения (6.6), а именно:
6 1 7
1
4
1
− (35−7x1 −x2 )− (− + (6+x1 −3x2 )+ (35−7x1 −x2 ))+x6 = − ,
7 2 22
7
7
22
или х1 + х2 + х6 = 7, что эквивалентно, учитывая неотрицательность переменной х6,
x1 + x2
7.
(4.9)
Изобразив ограничения (4.8) и (4.9) эквивалентные, как мы показали, линейным отсекающим
ограничениям (4.6) и (4.7), мы получим геометрическую интерпретацию метода отсекающих
плоскостей (рис. 4.2). Новое допустимое множество решений, получившееся после отсечений, есть
многоугольник ABCDEF.
�Содержание
4.4. Примеры и задачи
Найти целочисленное решение задачи методом Гомори:
�Содержание
ъ
�Содержание
�Содержание
Глава 5. Элементы теории игр
В предшествующих главах мы рассмотрели задачи принятия решений, в которых выбор оптимального
решения осуществлялся одним "лицом, принимающим решения". В этой главе мы остановимся на
задачах принятия решений в условиях неопределенности, в которых участвуют несколько "лиц,
принимающих решения", а оптимальное значение целевой функции для каждого из них зависит и от
решений, принимаемых всеми остальными участниками. Математическую дисциплину, исследующую
ситуации, в которых принятие решения зависит от нескольких участников, называют теорией игр.
Предметом теории игр являются такие ситуации, в которых важную роль играют конфликты и
совместные действия. Типичными примерами подобных ситуаций могут служить планирование
боевик операций противоборствующих армий и рекламирование конкурирующих товаров. Теория игр
хорошо развита и имеет обширные приложения. В главе излагаются лишь некоторые сведения из этой
области, которые помогут при изучении специальной литературы.
�Содержание
5.1. Основные понятия, классификация и описание игр
В теории игр "лиц, принимающих решения", называют игроками, а целевую функцию – платежной
функцией. Каждый игрок располагает конечным или бесконечным набором допустимых решений,
называемых стратегиями. Выигрыш каждого игрока определяется его платежной функцией, значения
которой зависят от стратегий всех участников игры. Фактически игра представляет собой совокупность
правил, известных всем игрокам.
Эти правила, с одной стороны, определяют множества стратегий игроков, а с другой – последствия и
выигрыши в результате выбора каждой из стратегий. Заметим, что в теории игр понятие стратегии
является одним из центральных. Классификацию игр проводят по различным признакам:
а)
по числу игроков;
б)
по числу стратегий;
в)
по свойствам платежной функции;
г)
по характеру предварительной договоренности между игроками.
Игру, в которой участвует n игроков, называют игрой с n участниками. Количество n участников может
быть равным 2, 3 и т. д. При наличии двух игроков могут возникать и конфликтные ситуации, и
необходимость в координированных действиях (кооперация). Если в игре участвует не менее трех
игроков, то могут создаваться коалиции, т. е. группы из двух или более игроков, имеющих общую цель
и координирующих свои стратегии. По количеству стратегий различают игры конечные и бесконечные.
Если хотя бы один из игроков располагает бесконечным множеством стратегий, то игру называют
бесконечной. Если же каждый из игроков располагает конечным множеством стратегий, то игру
называют конечной. Еще один способ классификации игр – по свойствам платежной функции.
В игре с нулевой суммой общая сумма выигрышей всех игроков равна нулю. В игре с нулевой суммой и
двумя участниками выигрыш одного из них равен проигрышу другого. Таким образом, в играх с
нулевой суммой существует конфликт между игроками, и поэтому их называют также
антагонистическими играми. В общем случае в игре с нулевой суммой, как правило, имеют место и
конфликты, и согласованные действия игроков. Прямой противоположностью играм с нулевой суммой
являются игры двух игроков с постоянной разностью, в которых оба игрока выигрывают или
проигрывают одновременно. Поэтому игрокам выгодно действовать согласованно. В зависимости от
характера предварительной договоренности между игроками различают кооперативные и
некооперативные игры.
Игра кооперативная, если до ее начала игроки образуют коалиции и принимают взаимообязывающие
соглашения о координации своих стратегий. В противном случае игра будет некооперативной. Прежде
чем переходить к рассмотрению основных способов описания и анализа любой конкретной игры,
введем еще два понятия, широко используемых в теории игр.
Ход – это момент игры, когда игроки должны выбрать один из возможных вариантов действий, т. е.
принять одно из допустимых решений.
Партия игры – это определенная совокупность ходов и выборов возможных вариантов действий.
Существуют два основных способа описания и анализа любой конкретной игры.
Первый способ предполагает следующее:
1) перечисление ходов, которые могут делать игроки;
2) определение информации, которой располагают игроки в процессе игры;
3) определение возможных вариантов действий игроков;
4) указание предельных размеров платежей в конце игры.
�Содержание
Игру, описанную подобным образом, называют игрой в развернутой, или экстенсивной, форме, а само
описание, как правило, составляют в виде дерева игры, аналогичного дереву решений.
Игры в развернутой форме называют также позиционными играми.
Пример 1. На рис. 5.1 изображено дерево игры для упрощенного варианта игры двух лиц в покер
(карточная игра). В этой игре ставка каждого из игроков равна 5 денежным единицам. После сдачи
карт на руках у игроков остается определенное количество карт. Набор карт может быть либо
"старшим", который мы обозначим через С, либо "младшим", который мы обозначим через М.
У первого игрока имеются две возможности: либо раскрыть карты (Р), либо повысить игру (В). При
раскрытых картах старший набор карт выигрывает банк, если же карты у игроков равны, то банк
делится пополам. Если первый игрок повышает игру, то он вкладывает в банк еще 5 денежных единиц.
Рис. 5.1. Дерево игры двух лиц в покер
После этого у второго игрока имеются две альтернативы: либо пасовать (П), либо уравнивать (У). Если
он пасует, то первый игрок выиграет банк при любых картах. Если же второй игрок уравнивает игру,
то вносит в банк еще 5 денежных единиц, после чего либо старшие карты выиграют банк, либо при
равных картах банк делится пополам. На дереве игры (см. рис. 5.1) изображены все возможные
ситуации игры и указаны соответствующие им платежи. Римскими цифрами обозначены стадии игры:
I
– первый случайный ход, обозначающий определение ставок и сдачу карт;
II – сложившаяся после сдачи карт ситуация: С обозначает старшую карту, а М – младшую, первая
буква обозначает карту первого игрока, а вторая – второго. Например, (С, М) обозначает старшую
карту у первого игрока и младшую – у второго;
III – второй ход в игре, в котором решение за первым игроком: раскрыть карты (Р) или повысить
ставки (В);
IV – третий ход в игре, в котором решение принимает второй игрок. Он может пасовать (П) или
уравнять игру (У);
V
– завершение партии, когда подводятся ее итоги. При этом положительное значение обозначает
выигрыш первого игрока (и проигрыш второго), а отрицательное значение – выигрыш второго
игрока (и проигрыш первого).
Пояснение: Игру в развернутой форме называют игрой с полной информацией, если в ней нельзя
делать одновременно несколько ходов и если участникам известны выборы, сделанные при
предшествующих ходах, включая и случайные ходы. Примером игры с полной информацией являются
шахматы. Покер представляет собой игру с неполной информацией, так как игрокам неизвестно,
какие карты находятся на руках у противника.
�Содержание
Второй способ описания игры предполагает рассмотрение всех возможных стратегий каждого игрока
и определение платежей, соответствующих любым возможным комбинациям стратегий всех игроков.
Игру, описанную вторым способом, обычно называют игрой в нормальной форме. Естественно, зная
развернутую форму игры, всегда можно представить ее в нормальной форме.
Нормальная форма игры двух участников состоит из двух платежных матриц, содержащих суммы
выигрышей и проигрышей каждого из игроков для любой из возможных пар стратегий. Обычно эти
две матрицы объединяются в одну, как это изображено в таблице 5.1.
Табл. 5.1. Платежная матрица
X12
X22
...
Xn2
X11
( C11 , C12 )
( C11 , C22 )
...
( C11 , Cn2 )
X21
( C21 , C12 )
( C21 , C22 )
...
( C21 , Cn2 )
...
...
...
1
Xm
...
1
( Cm
,
C12 )
1
( Cm
,
C22 )
...
...
1
( Cm
,
Cn2 )
Если первый игрок располагает множеством стратегий {Xi1}mi=1= 1, а второй игрок – множеством
стратегий {Xj2}ni=1= 1, то на пересечении i-й строки и j-гo столбца объединенной платежной матрицы
находится пара чисел (С1ij, С2ij), соответственно. Единая платежная матрица состоит из m строк и n
столбцов, где m – число стратегий первого игрока, an – второго (имеется в виду конечная игра).
Считается, что каждому из игроков известны все элементы единой платежной матрицы игры.
�Содержание
5.2. Игры двух участников с нулевой суммой
Игры двух участников с нулевой суммой представляют собой наиболее разработанный раздел теории
игр. Если игра двух участников с нулевой суммой представлена в нормальной форме, то для всех
i = 1,…, m; и j = 1,…, n
Cli + C2j = 0,
где Cli и C2j – выигрыши первого и второго игроков при выборе ими стратегий X1i и X2j
соответственно.
Табл. 5.2. Платежная матрица игры с нулевой суммой
X12
X22
...
Xn2
X11
C1,1
C1,2
...
C1,n
X21
C2,1
C2,2
...
C2,n
...
...
...
...
...
1
Xm
Cm,1
Cm,2
...
Cm,n
При этом первый игрок располагает m стратегиями, а второй – n стратегиями. Поэтому в данном
случае вместо единой платежной матрицы используют платежную матрицу первого игрока (таблица
5.2), в которой
1
2
Cij = Cij
= − Cij
∀i = 1, . . . , m;
è
j = 1, . . . , n.
Пример 2. Первый и второй игроки одновременно и независимо друг от друга показывают один, два
или три пальца. Выигрыш или проигрыш (в денежных единицах) равен общему количеству показанных
пальцев. Если это количество четное, то выиграет первый игрок, а второй ему платит. Если же оно
нечетное, то выиграет второй игрок, а первый ему платит. Требуется построить платежную матрицу. В
рассмотренном случае у каждого игрока имеется по три стратегии: показать один, два или три пальца.
Если стратегия Хkn k-го игрока заключается в том, чтобы показать n пальцев, k = 1, 2, n = 1, 2, 3, то
платежную матрицу можно записать следующим образом:
2 −3
4
C = −3
4 −5
4 −5
6
Как мы уже знаем, в задачах принятия решений выбор критерия оптимальности в значительной
степени предопределяется информацией, которой располагает "лицо, принимающее решения". Игры
двух лиц с нулевой суммой в определенном смысле представляют собой предельный случай полного
отсутствия информации, когда противники находятся в состоянии конфликта. Именно поэтому в играх
двух лиц с нулевой суммой в нормальной форме, называемых также матричными играми, как правило,
используют наиболее "пессимистический" минимаксный (максиминный) критерий, рассмотренный
выше при анализе задач принятия решений в условиях неопределенности. Но ситуация в играх
принципиально отличается от ситуации в задачах принятия решений в условиях неопределенности, в
которых "природа" не рассматривалась нами как активный или недоброжелательный противник.
В нашем случае каждый игрок действует разумно и пытается активно помешать противнику. Поэтому
попытаемся уяснить для себя обоснованность использования минимаксного (максиминного) критерия
в играх двух лиц с нулевой суммой.
�Содержание
Сначала предположим, что мы выступаем на стороне первого игрока. Мы располагаем стратегиями
X1i, i = 1,…, m и делаем первый ход. Если мы выбираем стратегию X1i, то второй игрок, являющийся
разумным противником, будет стараться минимизировать наш выигрыш из множества возможных
выигрышей Сij, j = 1,…, n, выбирая одну из стратегий X2j, j = 1,… , n. Таким образом, величина
Ci∗ = min Cij
j
представляет наш гарантированный наименьший выигрыш при выборе стратегии X1i безотносительно
к решениям второго игрока. Естественно, что из всех возможных стратегий X1i мы выбираем ту,
которая максимизирует наш гарантированный наименьший выигрыш, равный
C∗ = max Ci∗ = max min Cij .
i
i
j
Величину C* называют нижней ценой игры, а соответствующую ей стратегию X1i* – максиминной
стратегией.
Очевидно, что если мы будем придерживаться максиминной стратегии, то при любых действиях
противника нам гарантирован выигрыш Ci* который, во всяком случае, не меньше C*. Поэтому
величину C* и называют нижней ценой игры.
Естественно, что аналогичные рассуждения можно провести и за второго игрока, который является
нашим противником. Он заинтересован в минимизации нашего выигрыша, и, как следствие, для
каждой своей стратегии X2j, j = 1,… , n, он должен сначала определить наш максимально возможный
выигрыш:
Cj∗ = max Cij , j = 1, . . . , n,
i
а затем минимизировать эти максимально возможные выигрыши путем выбора соответствующей
стратегии. Величину
C ∗ = min Cj∗ = min max Cij
j
j
i
называют верхней ценой игры, а соответствующую ей стратегию X*j – минимаксной стратегией.
Придерживаясь минимаксной стратегии, противник имеет гарантии, что в любом случае проиграет (а
первый игрок выиграет) не больше чем C*.
Пример 3. Система противовоздушной обороны (ПВО) обороняет от воздушного налета участок
территории, располагая двумя зенитно-ракетными комплексами (ЗРК), зоны действия которых не
перекрываются (рис. 5.3). Каждый ЗРК с единичной вероятностью поражает самолет противника в
зоне своего действия, если его система наведения начинает отслеживать цель и вырабатывать данные
для стрельбы еще за пределами зоны. Противник располагает двумя самолетами, каждый из которых
может быть направлен в зону действия любого ЗРК.
Рис. 5.3. Зоны действия ЗРК
�Содержание
В момент, когда система ПВО решает задачу целераспределения, т. е. решает, какому ЗРК по какой цели
стрелять, самолеты противника могут применить обманный маневр (см. рис. 5.3) и изменить маршрут.
Цель системы ПВО – поразить как можно больше самолетов противника, а цель противника – потерять
как можно меньше самолетов.
В рассматриваемом случае мы имеем игру двух лиц с нулевой суммой. В распоряжении первого игрока
(система ПВО) имеются четыре стратегии:
X11 – система наведения каждого ЗРК отслеживает цель, направляющуюся в его зону, т. е. k- му ЗРК
назначена k-я цель, k = 1, 2;
X12 – система наведения первого ЗРК отслеживает вторую цель, а система наведения второго ЗРК
отслеживает первую цель;
X13 – системы наведения обоих ЗРК отслеживают первую цель;
X14 – системы наведения обоих ЗРК отслеживают вторую цель.
У второго игрока (противника) также имеются четыре стратегии:
X21 – оба самолета не меняют своего курса, т. е. k-й самолет следует в зону действия k-гo ЗРК, k = 1, 2;
X22 - оба самолета применяют обманный маневр и меняют курс, т. е. первый самолет следует в зону
действия второго ЗРК, а второй самолет следует в зону действия первого ЗРК;
X23 – первый самолет применяет обманный маневр, а второй нет, т. е. оба самолета следуют в зону
действия второго ЗРК;
X24 – второй самолет применяет обманный маневр, а первый нет, т. е. оба самолета следуют в зону
действия первого ЗРК.
Составим платежную матрицу:
2 0
0 2
C=
1 1
1 1
1 1
1 1
,
1 1
1 1
определим верхнюю и нижнюю цены игры, а также минимаксную и максиминную стратегии игроков.
Для первого игрока имеем
C1∗ = C12 = 0;
C2∗ = C21 = 0;
C3∗ = C3j = 1 ∀j;
C4∗ = C4j = 1 ∀j.
Нижняя цена игры равна C* = 1, а первый игрок располагает двумя макcиминными стратегиями X13,
X14.
Для второго игрока имеем
C1∗ = C11 = 2;
C2∗ = C22 = 2;
C3∗ = Ci3 = 1 ∀i;
C4∗ = Ci4 = 1 ∀i.
Верхняя цена игры равна C* = C* = 1, а второй игрок располагает двумя минимаксными стратегиями
X23 = X24*.
�Содержание
В данном случае верхняя и нижняя цены игры совпадают и равны единице. Это означает, что при
использовании системой ПВО любой из максиминных стратегий она гарантированно сбивает один
самолет, а при использовании противником любой из своих минимаксных стратегий, он
гарантированно теряет лишь один самолет.
В теории игр оптимальность решения связывают с ситуацией, в которой ни одному из игроков
невыгодно изменять свою стратегию. В этом случае игра считается стабильной, или находящейся в
состоянии равновесия. В примере 3 рассмотрена игра, для которой нижняя цена равна верхней:
C ∗ = min max Cij = max min Cij = C∗ .
j
i
i
j
Это равенство является проявлением свойства устойчивости минимаксных (максиминных)
стратегий. Свойство устойчивости заключается в том, что если один из игроков придерживается
своей минимаксной (максиминной) стратегии, то другой игрок никак не может улучшить свое
положение, отступая от своей максиминной (минимаксной) стратегии.
Игры, в которых нижняя цена равна верхней, занимают особое место в теории игр, их называют
играми с седловой точкой. В платежной матрице любой игры с седловой точкой всегда существует
элемент, являющийся одновременно минимальным в своей строке и максимальным в своем столбце.
Такой элемент называется седловой точкой. Заметим, что седловая точка может быть и не
единственной. Так, платежная матрица игры из примера 3 имеет четыре седловые точки,
расположенные на пересечении двух ее последних строк и двух последних столбцов. В играх с
седловой точкой общее значение нижней и верхней цены
ν = C ∗ = C∗
называют чистой ценой игры. Очевидно, что седловой точке соответствует максиминная стратегия
первого игрока и минимаксная стратегия второго. До тех пор пока игроки будут придерживаться этих
стратегий, выигрыш остается постоянным и равным чистой цене игры. Если второй игрок отклонился
от своей минимаксной стратегии, то первый игрок сразу получает преимущество, так как элемент v
является минимальным в своей строке и подобное отклонение не может быть выгодным для второго
игрока. Проводя аналогичные рассуждения для первого игрока, приходим к выводу: в играх с седловой
точкой максиминная стратегия первого игрока и минимаксная стратегия второго являются
оптимальными. Поэтому совокупность этих двух стратегий называют решением игры.
Из минимаксного и максиминного критериев следует, что верхняя цена игры всегда не меньше ее
нижней цены, т. е.
C ∗ = min max Cij
j
i
max min Cij = C∗ ,
i
j
причем это неравенство превращается в равенство для игры с седловой точкой. Чтобы убедиться в
том, что существуют игры с нулевой суммой без седловой точки, т. е. C * < C*, достаточно вновь
обратиться к примеру 2.
Пример 4. Продолжим анализ игры "три пальца" из примера 2 и определим нижнюю и верхнюю цены
игры с помощью платежной матрицы. Для первого игрока имеем
C ∗ = min max Cij
j
i
max min Cij = C∗ ,
i
j
Таким образом, нижняя цена игры равна C* = –3, и ей соответствует макcиминная стратегия X11
первого игрока.
Для второго игрока имеем
C1∗ = C31 = 4, C2∗ = C22 = 4, C3∗ = C33 = 6.
Верхняя цена равна C* = 4, и ей соответствуют две минимаксные стратегии X12 и X22 второго игрока.
�Содержание
В рассматриваемой игре
C∗ = −3 < C ∗ = 4,
что означает отсутствие седловой точки. Для наглядности нашего анализа предположим, что каждый
из игроков делает свой ход в порядке очередности. Пусть второй игрок выбрал минимаксную
стратегию X12. В ответ на это первый игрок, отступая от своей максиминной стратегии, может
воспользоваться стратегией X31 и выиграет 4. Тогда второй игрок, продолжая игру, реализует вторую
минимаксную стратегию X22 и выигрывает 5, на что первый игрок отвечает стратегией X21 и
выигрывает 4. Таким образом, если один из игроков будет придерживаться своей минимаксной
(максиминной) стратегии, то другой игрок может улучшить свое положение, отступив от своей
максиминной (минимаксной) стратегии. В рассматриваемом случае минимаксные (макеиминные)
стратегии не обладают свойством устойчивости.
Пояснение: В играх двух участников с нулевой суммой выигрыш одного из них равен проигрышу
другого. Поэтому, если целью одного из игроков является максимизация своего выигрыша, то целью
другого игрока является минимизация своего проигрыша. Если фиксированная стратегия одного из
игроков (допустим, первого) не обладает свойством устойчивости, то она не может быть
оптимальной, так как в этом случае второй игрок может улучшить свое положение (увеличить свой
выигрыш или уменьшить свой проигрыш) за счет, ухудшения положения первого игрока.
Итак, среди игр двух лиц с нулевой суммой существуют игры без седловых точек. В таких играх нижняя
цена игры строго меньше ее верхней цены, а минимаксные и макеиминные стратегии не являются
оптимальными, т. е. их совокупность не является решением игры. Анализу подобных игр и посвящен
следующий параграф.
�Содержание
5.3. Решение игр двух участников с нулевой суммой в смешанных
стратегиях
В теории игр элементы множеств допустимых решений игроков принято называть чистыми
стратегиями. Как мы уже знаем, в игре двух участников с нулевой суммой при наличии седловых точек
решение игры находится в чистых стратегиях, а оптимальными являются максиминная и минимаксная
стратегии.
На практике в играх двух участников с нулевой суммой гораздо чаще встречается случай, когда
седловых точек нет, т. е. верхняя С* и нижняя С* цены игры различаются. Если искать решения
подобных задач в чистых стратегиях, то в расчете на разумного противника мы должны
воспользоваться минимаксным (максиминным) критерием. В этом случае первый игрок гарантирует
себе выигрыш, равный нижней цене игры С*. При этом естественное желание первого игрока
гарантировать себе выигрыш больше чем С* и естественное желание второго игрока гарантировать
себе проигрыш меньше чем С* при использовании чистых стратегий приводят к нарушению
стабильности игры, что мы и наблюдали в примере 4.
Для преодоления нестабильности игры используют смешанные стратегии, которые заключаются в
случайном чередовании чистых стратегий. С вероятностной точки зрения, если рk1 ≥ 0 – вероятность
выбора первым игроком чистой стратегии Хk1,k = 1,…, m, где
m
∑
p1k = 1,
k=1
то его смешанная стратегия – это m-мерный вектор
SX1 = (p , p , . . . , p1m)T .
Таким образом, множество смешанных стратегий содержит в себе и все чистые стратегии, так как для
любой чистой стратегии Xk1 можно записать вектор
с координатами
1 i = k,
p1i =
0 i=
̸ k.
Фактически смешанные стратегии представляют собой математическую модель гибкой, изменчивой
тактики; при применении этой тактики противник не знает и не может знать заранее, с какой
ситуацией ему предстоит столкнуться.
Пусть p1i, i = 1,…, m и p2j, j = 1,…, n – вероятности выбора первым и вторым игроками чистых
стратегий Xi1 и Xj1, т. е.
– смешанная стратегия первого игрока, а
– смешанная стратегия второго игрока.
m
∑
При этом
1
1
1
pi = P[Xi ]
0, i = 1, . . . , m;
pi = 1;
i=1
p2j = P[Xj2 ]
0, j = 1, . . . , n;
n
∑
p2j = 1;
j=1
В этом случае платежная матрица игры имеет следующий вид:
C11
C21
C=
...
Cm1
C12
...
C22
...
...
...
Cm2
...
C1n
C2n
.
...
Cmn
�Содержание
При использовании смешанных стратегий выигрыш первого игрока есть дискретная случайная
величина, множество возможных значений которой представлено матрицей ( Cij). Игроки выбирают
свои смешанные стратегии независимо друг от друга. Поэтому вероятность того, что первый игрок
выберет стратегию Xi1, а второй игрок – стратегию Xj1, равна произведению pi1pj2. Так как этой паре
стратегий соответствует выигрыш Cij первого игрока, то для определения ожидаемого выигрыша
первого игрока и ожидаемого проигрыша второго в случае использования ими смешанных стратегий
и
достаточно вычислить математическое ожидание дискретной случайной величины. Таким
образом, ожидаемый выигрыш первого игрока (и ожидаемый проигрыш второго игрока) равен
νSX 1 ,SX 2 =
m ∑
n
∑
p1i p2j Cij .
i=1 j=1
Мы предполагаем, что в игре участвуют разумные противники. Поэтому первому игроку
целесообразно выбирать свою смешанную стратегию, т. е. набор вероятностей p1i, i = 1,…, m выбора
чистых стратегий X1i, исходя из условия максимальности своего наименьшего ожидаемого выигрыша.
А так как в множестве его смешанных стратегий содержатся и все чистые стратегии, то ожидаемый
выигрыш C1 не может быть меньше нижней цены игры безотносительно к действиям второго игрока:
C 1 = max
min
1
C∗
pi
m
(∑
j
)
p1i Cij .
i=1
Второму игроку целесообразно выбирать свою смешанную стратегию, исходя из условия
минимальности своего наибольшего ожидаемого проигрыша. Проведя аналогичные рассуждения, мы
приходим к выводу о том, что этот проигрыш не может быть больше верхней цены игры:
n
)
(∑
2
p
C
.
C 2 = min
max
ij
j
2
C∗
pj
i
j=1
При этом можно доказать, что, как и в случае чистых стратегий, выполняются неравенства
C∗
C1
C2
C ∗.
Мы можем также утверждать следующее. Если вероятности выбора чистых стратегий pi1*, i = 1,…, m и
pj2*, j = 1,…, n определяют оптимальные решения игроков, то ожидаемый максиминный выигрыш C1
первого игрока и ожидаемый минимаксный проигрыш C2 второго равны между собой и равны
ожидаемой цене игры:
νS∗ ∗ 1 ,S ∗ 2 = C 1 = C 2 =
X
X
∗
1∗ 1∗
1∗ T
SX
1 = (p1 , p2 , . . . , pm ) ,
m ∑
n
∑
2∗
p1∗
i pj Cij ,
i=1 j=1
∗
2∗ 2∗
2∗ T
SX
2 = (p1 , p2 , . . . , pm ) .
Известно не так много методов нахождения оптимальных смешанных стратегий
, и
, т. е.
1
2
оптимальных вероятностей pi * и pj * выбора чистых стратегий в играх двух участников с нулевой
суммой. Рассмотрим некоторые из них.
�Содержание
5.4. Метод линейного программирования
Использование линейного программирования наиболее эффективно для игр двух участников с нулевой
суммой без седловых точек и большим количеством стратегий у обоих игроков. В принципе любая
конечная игра двух участников с нулевой суммой может быть преобразована в соответствующую задачу
линейного программирования и, наоборот, каждую задачу линейного программирования можно
интерпретировать как конечную игру двух участников с нулевой суммой.
Действительно, пусть (Cij) – m × n платежная матрица в игре двух участников с нулевой суммой без
седловых точек. Как мы уже знаем, в этом случае оптимальная смешанная стратегия первого игрока
определяется условиями:
ν ∗ = max
min
1
pi
j
m
∑
m
∑
Cij p1i ,
i=1
p1i = 1,
∀i = 1, . . . , m,
i=1
где v* – ожидаемая цена игры; Cij – элемент платежной матрицы, расположенный на пересечении ее iй строки и j-гo столбца и равный выигрышу первого игрока, если он использует стратегию Xi1, а его
противник использует стратегию Xj2; pi1 – вероятность выбора первым игроком стратегии Xi1. При
этом величина
ν = min
j
m
∑
Cij p1i
i=1
представляет собой ожидаемый выигрыш первого игрока при Т использовании им смешанной
стратегии
. Таким образом,
ν ∗ = max
ν
1
pi
и имеют место неравенства
ν
m
∑
Cij p1i , ∀j = 1, . . . , n.
i=1
Поэтому задача об определении оптимальной смешанной стратегии для первого игрока может быть
представлена в следующем виде:
v → max
при ограничениях:
∑
m
Cij p1i ν j = 1, . . . , n;
i=1
m
∑
p1i = 1;
i=1
1
pi 0, i = 1, . . . , m.
Предположим, что ожидаемая цена игры v* этой задачи положительна, т. е. v* > 0. Введем новые
переменные
xi =
p1i
,
ν∗
i = 1, . . . , m.
Так как значению max v соответствует значение
min
m
m
m
∑
∑
1
1∑ 1
p1i
= min
pi = min
= min
xi ,
ν
ν i=1
ν
i=1
i=1
то мы приходим к задаче линейного программирования для первого игрока
m
∑
i=1
xi → min
�Содержание
при ограничениях:
m
∑
Cij xi
1 j = 1, . . . , n;
i=1
xi
0,
i = 1, . . . , m.
Заметим, что в этой задаче отсутствует ограничение типа равенства, связывающее вероятности выбора
первым игроком своих чистых стратегий. Данное обстоятельство обусловлено наличием
функциональной зависимости между координатами x i* оптимального решения рассматриваемой
задачи линейного программирования, координатами pi1* оптимальной смешанной стратегии первого
игрока и ожидаемой ценой игры:
x∗i =
Таким образом,
p1∗
i
,
ν∗
m
∑
i = 1, . . . , m.
p1∗
i =1
i=1
тогда и только тогда, когда
m
∑
x∗i =
i=1
1
ν∗.
Найдя оптимальное решение (x 1*, …, x m*) задачи линейного программирования для первого игрока,
мы можем вычислить ожидаемую цену игры v* и затем оптимальную смешанную стратегию
первого игрока.
Для второго игрока оптимальная смешанная стратегия определяется условиями:
ν ∗ = min
max
2
pj
i
n
∑
Cij p2j ,
j=1
n
∑
p2j = 1,
∀j = 1, . . . , n.
j=1
где pj2 – вероятность выбора вторым игроком
стратегии Xj2. В новых переменных
2
pj
,
ν∗
yj =
j = 1, . . . , n.
Приходим к задаче линейного программирования для второго игрока
n
∑
yj → max
j=1
при ограничениях:
n
∑
Cij yj
1 i = 1, . . . , m;
j=1
y
j
0,
j = 1, . . . , n.
являющейся двойственной задачей по отношению к задаче линейного программирования для первого
игрока.
Прежде чем переходить к рассмотрению примера, отметим следующее.
1. Если v < 0, то ко всем элементам платежной матрицы (Cij) можно прибавить настолько большое
положительное число
, что все элементы платежной матрицы станут положительными.
В этом случае цена игры увеличится на K, а решение не изменится.
2. Двойственность задач линейного программирования для первого и второго игроков приводит к
тому, что решение одной из них автоматически приводит к решению другой. Учитывая это, как
правило, решают задачу, имеющую меньшее число ограничений. А это, в свою очередь, зависит от
числа чистых стратегий, находящихся в распоряжении каждого из игроков.
�Содержание
Пример 10.
Вернемся к игре "три пальца", которую мы рассматривали ранее. Для нее
2 −3
4
( Cij ) = −3
4 −5 .
4 −5
6
C∗ = −3 < 4 = C ∗ .
Прибавляя ко всем элементам матрицы (Cij) число K = 5, приходим к матрице модифицированной
игры
7 2
( Cij ) = 2 9
9 0
9
0 ,
11
которой соответствует задача линейного программирования
x1 + x2 + x3 → min
при ограничениях:
7x1 + 2x2 + 9x3
2x1 + 9x2 + 0x3
1
1
9x1 + 0x2 + 11x3 1
xi 0, i = 1, 2, 3.
Воспользовавшись симплекс-методом, находим решение:
x∗1 =
1
,
20
x∗2 =
1
,
10
x∗3 =
1
.
20
Таким образом, цена модифицированной игры
(ν 1 )∗ =
1
= 5,
x∗1 + x∗2 + x∗3
а цена исходной игры v* = (v 1)* – 5 = 0. При этом
pi1∗�=�(ν1)∗�·�x∗i ,
т. е. оптимальная смешанная стратегия первого игрока
1 1 1 T
∗
SX
, ) .
1 = ( ,
Нетрудно найти оптимальную смешанную стратегию
В рассматриваемой игре (Cij)T = (Cij) и
второго игрока, решив соответствующую задачу линейного программирования, и убедиться в том, что
она совпадает с оптимальной смешанной стратегией первого игрока.
Пояснение: Завершая рассмотрение игр двух участников с нулевой суммой без седловых точек,
заметим, что при использовании смешанных стратегий перед каждой партией игры каждым
игроком запускается некий механизм (бросание монеты, игральной кости или использование датчика
случайных чисел), обеспечивающий выбор каждой чистой стратегии с заданной вероятностью. Как
мы уже отмечали, смешанные стратегии представляют собой математическую модель гибкой
тактики, при использовании которой противник не знает заранее, с какой обстановкой ему придется
столкнуться в каждой следующей партии игры. При этом ожидаемые теоретические результаты
игры, при неограниченном возрастании числа разыгрываемых партий, стремятся к их истинным
значениям.
�Содержание
5.5. Игры двух участников с ненулевой суммой
В играх двух участников с нулевой суммой интересы игроков являются диаметрально
противоположными и им невыгодно информировать друг друга о своих предполагаемых действиях.
Иная картина может наблюдаться в играх двух участников с ненулевой суммой. В частности,
совершенно очевидна необходимость координированных действий игроков в игре с постоянной
разностью (см. таблицу 5.1):
1
2
Cij
− Cij
≡ C = const,
i = 1, . . . , m
j = 1, . . . , n,
когда они выигрывают и проигрывают одновременно. При этом (Cijk) – платежная матрица k- го
отрока, k = 1, 2.
Пример. Два человека оказались в горящем доме. Они могут покинуть дом и спастись лишь через
входную дверь, которую заклинило так сильно, что открыть ее можно только совместными усилиями. В
данном случае каждый из игроков (k = 1, 2) располагает двумя стратегиями:
Хk1 – толкать дверь и пытаться ее открыть;
Хk1 – не толкать дверь.
Действуя вместе, игроки могут спастись – выигрыш каждого равен 1; в противном случае могут
пострадать оба – выигрыш каждого равен 0. Таким образом, платежная матрица имеет вид
2
1
)=
, Cij
( Cij
(1, 1)
(0, 0)
(0, 0)
(0, 0)
,
и мы имеем игру с постоянной (нулевой) разностью, в которой игрокам целесообразно координировать
свои действия.
Выше было отмечено, что игры с ненулевой суммой могут, быть кооперативными и
некооперативными. В некооперативных играх, которые рассматриваются в этом параграфе, игроки
принимают решения независимо друг от друга либо потому, что координация действий запрещена,
либо потому, что она невозможна. Примером подобной ситуации могут, служить антитрестовские
законы, запрещающие некоторые виды, соглашений между крупными фирмами.
Один из подходов к решению некооперативных игр двух участников связан с понятием точки
равновесия игры. Пусть Хi1, i = 1,…, m и Хj2, j = 1,…, n – чистые стратегии первого и второго игроков
соответственно, а Ck = (Ckij) это m × n – платежная матрица k-го игрока, k = 1, 2, в которой Ckij –
выигрыш k-го игрока при использовании первым игроком стратегии Хi1, а вторым игроком –
стратегии Хj2. Обозначим через S1 и S2 множества смешанных стратегий первого и второго игроков,
т. е.
1
S =
(p11 , p12 , . . . , p1m )T ,
m
∑
p1i = 1,
p1i
0,
i = 1, . . . , m;
p2j = 1,
p2j
0,
j = 1, . . . , n.
i=1
S 2 = (p21 , p22 , . . . , p1n )T ,
n
∑
j=1
Величина рkr: – это вероятность выбора k-м игроком своей чистой стратегии Хkr.
Под точкой равновесия некооперативной игры двух участников понимают пару оптимальных
смешанных стратегий
и2
, т. е.
X
∗
(SX 1 )T C 1 SX
2
∗
T
∗
(SX
C 1 SX
1)
2,
∀SX 1 ∈ S 1 ;
∗
T
(SX
C 2 SX 2
1)
∗
T
∗
(SX
C 2 SX
1)
2,
∀SX 2 ∈ S 2 .
�Содержание
Таким образом, как и в играх двух участников с нулевой суммой, в рассматриваемом подходе к
решению некооперативных игр оптимальность решения связывают с состоянием равновесия игры, т.
е. с ситуацией, в которой ни одному из игроков невыгодно изменять свою стратегию. Следует
отметить, что в некооперативной игре может быть несколько точек равновесия и различным парам
смешанных оптимальных стратегий игроков могут соответствовать различные значения ожидаемых
выигрышей.
�Содержание
5.6. Вопросы и задачи
1. Какие способы описания игр вы знаете? В чем заключается их принципиальное различие?
2. Дайте определение игры двух участников с нулевой суммой. Почему игры двух участников с
нулевой суммой называют антагонистическими играми?
3. Почему в играх двух участников с нулевой суммой участникам целесообразно использовать
максиминные и минимаксные стратегии? Что представляет собой:
a) нижняя цена игры;
b) верхняя цена игры?
4. Докажите, что игра двух участников с нулевой суммой обладает следующими свойствами:
a) седловая точка может быть не единственной, но чистая цена игры определена однозначно;
b) чистая цена игры является неубывающей непрерывной функцией элементов платежной
матрицы.
5. Всегда ли оптимальное решение в играх двух участников с нулевой суммой соответствует седловой
точке?
6. Найдите оптимальное решение и цену игры в игре двух участников с нулевой суммой и платежной
матрицей:
Вариант 1
Вариант 2
�Содержание
Вариант 3
Вариант 4
Вариант 5
Вариант 6
�Содержание
Вариант 7
Вариант 8
Вариант 9
Вариант 10
�Содержание
Вариант 11
Вариант 12
�Содержание
Приложение
Функция linprog пакета MatLab
Функция linprog обеспечивает решение задачи линейного программирования.
Задача:
min fT x
x
при условиях
A x
Aeq x
b,
= beq,
Здесь: A, Aeq – матрицы; f, b, beq, xL, x, xU – векторы.
Запись:
x = linprog(f, A, b, Aeq, beq)
возвращает решение задачи линейного программирования при заданных векторе коэффициентов
линейной целевой функции f и при наличии ограничений в форме линейных неравенств Ax < b, а
также при наличии дополнительных ограничений в форме равенств Aeq x = beq; причем если
ограничения в форме неравенств отсутствуют, задаются A = [ ] и b = [ ].
x = linprog( f, A, b, Aeq, beq, lb, ub)
то же, что и предыдущая функция, но при наличии дополнительных граничных ограничений
lb < x < ub; при отсутствии граничных ограничений задаются lb = [ ] и/или ub = [ ].
x = linprog( f, A, b, Aeq, beq, lb, ub, x0)
то же, что и предыдущая функция, но при наличии начального допустимого решения x0.
x = linprog(f, A, b, Aeq, beq, lb, ub, x0, options)
то же, что и предыдущая функция, но при задании (изменении) опций (cм. ниже);
[x, fval] = linprog(...)
возвращается не только оптимальное значение векторного аргумента, но и значение целевой функции в
точке минимума fval;
[x, fval, exitflag] = linprog(...)
то же, что и предыдущая функция, но возвращается еще информация о характере завершения
вычислений exitflag;
[x, fval, exitflag, output] = linprog(...)
то же, что и предыдущая функция, но возвращается еще информация о результатах оптимизации
(выходная структура) output;
[x, fval, exitflag, output, lambda] = linprog(...)
то же, что и предыдущая функция, но возвращаются еще множители Лагранжа lambda.
�Содержание
Аргументы и возвращаемые величины здесь аналогичны рассмотренным ранее для других функций за
одним исключением: здесь введен дополнительный аргумент f – вектор коэффициентов линейной
целевой функции. Функция может использовать алгоритм большой размерности lipsol или алгоритм
средней размерности (метод проекций).
Options – опции (их можно изменять, используя функцию optimset):
•
exitflag – информация о характере завершения вычислений: если эта величина положительна, то
вычисления завершились нахождением решения x, если она равна нулю, то останов произошел в
результате выполнения предельного числа итераций, если данная величина отрицательна, то
решение не найдено;
•
lambda – множители Лагранжа, соответственно, для различных типов ограничений:
•
–
lambda.lower – для нижней границы lb;
–
lambda.upper – для верхней границы ub;
–
lambda.ineqlin – для линейных неравенств;
–
lambda.eqlin – для линейных равенств;
–
lambda.ineqnonlin – для нелинейных неравенств;
–
lambda.eqnonlin – для нелинейных равенств;
output – информация о результатах оптимизации:
–
output.iterations – число выполненных итераций;
–
output.f uncCount – число вычислений функции;
–
output.algorithm – используемый алгоритм
Пример. Требуется
соотношениями
найти
решение
задачи
линейного
программирования,
описывающейся
f (x)�=�−5x1�−�4x2�−�6x3,
x1�−�x2�+�x3�<�20,
3x1� +�2x2� +�4x3� <�42,
3x1� +�2x2� �30,
0� �x1,�0� �x2,�0� �x3.
Для нахождения решения при помощи функции linprog в Mat Lab, вводим в командной строке
следующие команды:
f = [-5; -4; -6]; % Ввод вектора коэф-тов целевой функции
A = [1-11;32 4;320];% Ввод матрицы коэффициентов
b = [20; 42; 30]; % Ввод вектора ограничений-неравенств
lb = zeros(3,l); % Задание нижних границ переменных (нулей)
После ввода данных вводим обращение к самой функции для нахождения ответа:
[x,fval,exitflag] = linprog(f,A,b,[ ],[ ],lb)
Из возвращенной информации следует:
•
что оптиммьное решение x = [0.0000 15.0000 3.0000];
•
минимальное значение целевой функции fval = –78.0000;
•
процесс завершился нахождением решения (exitflag = 1).
�Содержание
Заключение
Исследование эффективности проведения военных операций во Второй мировой войне, а также
интенсивное развитие вычислительной техники во второй половине XX века породило множество
исследований в области принятия решений (управлении), в том числе такими "операциями", как
планирование и регулирование в различных объектах экономики. Все это вызвано желанием
повышения эффективности функционирования исследуемых объектов. При этом основными
математическими методами, используемыми при решении поставленных задач, стали методы
оптимизации. В курс включены некоторые важные разделы этой дисциплины: задачи линейного
программирования (симплекс-метод и транспортная задача), целочисленное линейное
программирование (метод отсечения Гомори), элементы теории игр. В процессе обучения студенты
практикуются в применении изучаемых методов решения задач, в том числе и с использованием
пакета MatLab, имеющего богатые возможности применения.
�Содержание
Список использованной литературы
1. Вагнер, Г. Основы исследования операций : в 3 т. / Г. Вагнер. – Москва : Мир, 1973. – Т. 1.
2. Вентцель, Е. С. Исследование операций / Е. С. Вентцель. – Москва : Советское радио, 1972.
3. Волков, И. К. Исследование операций / И. К. Волков, Е. А. Загоруйко. – Москва : МГТУ им. И. Э.
Баумана, 2000.
4. Интриллигатор, М. Математические методы оптимизации и математическая теория / М.
Интриллигатор. – Москва : Прогресс, 1975.
�
Dublin Core
The Dublin Core metadata element set is common to all Omeka records, including items, files, and collections. For more information see, http://dublincore.org/documents/dces/.
Title
A name given to the resource
Чеботарев, Сергей Всеволодович
Dublin Core
The Dublin Core metadata element set is common to all Omeka records, including items, files, and collections. For more information see, http://dublincore.org/documents/dces/.
Title
A name given to the resource
Исследование операций
Subject
The topic of the resource
1. Математика. 2. Математическая кибернетика. 3. Исследование операций. 4. линейное программирование (ЛП). 5. теория игр. 6. метод Гомори. 7. симплекс-метод.
Description
An account of the resource
Исследование операций [Электронный ресурс] : учебное пособие / С. В. Чеботарев ; Алтайский государственный педагогический университет. — Барнаул : АлтГПУ, 2017. — 149 с. : ил. — Дата подписания к использованию: 1.02.2018. — Библиогр.: с. 149 (4 назв.).
В учебном пособии излагается материал односеместрового курса по исследованию операций и методам оптимизации, читаемого автором в АлтГПУ студентам института физико-математического образования. В курс вошли следующие разделы: основные понятия, задачи линейного программирования (симплекс-метод и транспортная задача), целочисленное линейное программирование (метод отсечения Гомори), элементы теории игр. Для самостоятельной работы студентов, изучающих основы исследования операций. Рекомендовано к изданию редакционно-издательским советом АлтГПУ 30.11.2017 г.
Creator
An entity primarily responsible for making the resource
<div><a href="http://library.altspu.ru/ecat/zgate?ACTION=follow&SESSION_ID=44460&TERM=%D0%A7%D0%B5%D0%B1%D0%BE%D1%82%D0%B0%D1%80%D0%B5%D0%B2,%20%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9%20%D0%92%D1%81%D0%B5%D0%B2%D0%BE%D0%BB%D0%BE%D0%B4%D0%BE%D0%B2%D0%B8%D1%87%5B1,1004,4,6%5D&LANG=rus">Чеботарев, Сергей Всеволодович</a></div>
Source
A related resource from which the described resource is derived
Алтайский государственный педагогический университет, 2017
Publisher
An entity responsible for making the resource available
Алтайский государственный педагогический университет
Date
A point or period of time associated with an event in the lifecycle of the resource
1.02.2018
Rights
Information about rights held in and over the resource
©Алтайский государственный педагогический университет, 2017
Format
The file format, physical medium, or dimensions of the resource
pdf, exe
Language
A language of the resource
русский
Type
The nature or genre of the resource
Учебное пособие
Identifier
An unambiguous reference to the resource within a given context
<URL:<a href="http://library.altspu.ru/dc/pdf/chebotarev.pdf" target="_blank">http://library.altspu.ru/dc/pdf/chebotarev.pdf</a>>.
<URL:<a href="http://library.altspu.ru/dc/exe/chebotarev.exe" target="_blank">http://library.altspu.ru/dc/exe/chebotarev.exe</a>>.
Исследование операций
линейное программирование (ЛП)
Математика
Математическая кибернетика
метод Гомори
симплекс-метод
теория игр
-
http://books.altspu.ru/files/original/106/152/_[650].png
5eadc290e590567f9e5fe60ffb2d7518
http://books.altspu.ru/files/original/106/152/yanov.pdf
44dc92d8effe6f344bbde3771bc84855
Dublin Core
The Dublin Core metadata element set is common to all Omeka records, including items, files, and collections. For more information see, http://dublincore.org/documents/dces/.
Title
A name given to the resource
Янов, Сергей Иванович
Dublin Core
The Dublin Core metadata element set is common to all Omeka records, including items, files, and collections. For more information see, http://dublincore.org/documents/dces/.
Title
A name given to the resource
Исследование операций
Subject
The topic of the resource
1. Математика. 2. Исследование операций. 3. задачи (математика). 4. линейное программирование. 5. транспортные задачи. 6. динамическое программирование.
Description
An account of the resource
Исследование операций : учебно-методическое пособие / С. И. Янов ; Алтайский государственный педагогический университет. — Барнаул : АлтГПУ, 2020. — 72 с. — Дата подписания к использованию: 24.11.2020. — Библиогр.: с. 72.
В пособии кратко приводится теоретический материал, примеры решения типовых задач и задачи для самостоятельного решения. Пособие разработано в соответствии с программой курса «Исследование операций» направления подготовки «Прикладная математика» и предназначено для студентов 4-го курса очной формы обучения по направлению подготовки «Прикладная математика», также оно будет полезно работникам сферы управления, занимающихся вопросами выбора решений.
Creator
An entity primarily responsible for making the resource
<strong><a href="http://library.altspu.ru/ecat/zgate?ACTION=follow&SESSION_ID=52840&TERM=%D0%AF%D0%BD%D0%BE%D0%B2,%20%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9%20%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%5B1,1004,4,6%5D&LANG=rus">Янов, Сергей Иванович</a></strong>
Source
A related resource from which the described resource is derived
Алтайский государственный педагогический университет, 2020
Publisher
An entity responsible for making the resource available
Алтайский государственный педагогический университет
Date
A point or period of time associated with an event in the lifecycle of the resource
24.11.2020
Rights
Information about rights held in and over the resource
©Алтайский государственный педагогический университет, 2020
Format
The file format, physical medium, or dimensions of the resource
pdf, exe
Language
A language of the resource
русский
Type
The nature or genre of the resource
учебно-методическое пособие
Identifier
An unambiguous reference to the resource within a given context
URL: <a href="http://library.altspu.ru/dc/pdf/yanov.pdf" target="_blank">http://library.altspu.ru/dc/pdf/yanov.pdf<br /></a>URL: <a href="http://library.altspu.ru/dc/exe/yanov.exe" target="_blank">http://library.altspu.ru/dc/exe/yanov.exe</a>
динамическое программирование
задачи (математика)
Исследование операций
линейное программирование
Математика
транспортные задачи