/
Автор: Курицкий Б.Я.
Теги: компьютерные технологии анализ данных информационные технологии математическое моделирование excel
ISBN: 5-7791-0037-3
Год: 1997
Текст
Б. Я. Куриц кий
Поиск оптимальных решений средствами Excel 7Л
«BHV — Санкт-Петербург»
Дюссельдорф Киев Москва Санкт-Петербург
УДК 681.3.06
Важность принятия оптимальных решений в экономике и технике не вызывает сомнений. В книге затронут весь комплекс вопросов, связанных с подготовкой и принятием оптимальных решений. Изложены теоретические основы, без знания которых поиск оптимальных решений с помощью Excel невозможен. Рассмотрены постановка, решение и анализ всех классов задач оптимизации: линейного, целочисленного, нелинейного и стохастического программирования.
Действия пользователя описаны в форме алгоритмов, представляющих собой последовательность команд Excel. Всего приведено 148 алгоритмов, которые проиллюстрированы рисунками и множеством примеров.
Книга, написанная непрограммистом для непрограммистов, имеет четко выраженную практическую направленность. Универсальность методов оптимизации дает основание предполагать, что книга будет полезна как специалистам, занимающимся менеджментом и консалтингом, так и тем, кто интересуется оптимальным проектированием технических систем. Книга также может представлять интерес для научных сотрудников, преподавателей, аспирантов и студентов экономических и технических вузов.
Для широкого круга пользователей
Группа подготовки издания:
Главный редактор
Зав. редакцией
Ответственный редактор Корректор
Дизайн обложки Компьютерная верстка
Екатерина Кондукова Елизавета Кароник Татьяна Кручинина Светлана Доничкина Александр Клопов Наталия Макарова
Курицкий Б. Я.
Поиск оптимальных решений средствами Excel 7.0. — СПб.: BHV — Санкт-Петербург, 1997. — 384 с., ил.
ISBN 5-7791-0037-3
© Курицкий Б. Я., 1997
© Оформление, издательство
«ВНУ —Санкт-Петербург», 1997
Лицензия ЛР № 090141 от 12.02.96. Подписано в печать 19.03.97. Формат 60х90’/16. Печать офсетная. Бумага офсетная. Усл. печ. л. 24. Тираж 10 000 экз. Заказ № 115 .
BHV — Санкт-Петербург, 195009, С.-Петербург, Бобруйская ул., 4.
Отпечатано в С.-Петербургской типографии Ns 1 РАН
199034, С.-Петербург, 9 линия, 12
Предисловие
Человек решения принимал всегда. Раньше хотели, чтобы они были правильными. Теперь принято говорить, что решения должны быть оптимальными. Важность принятия оптимальных решений, особенно в экономике при распределении ресурсов и в технике при проектировании и эксплуатации технических объектов, не вызывает сомнений. Можно напомнить, что за разработку метода оптимального распределения ресурсов академик Л. В. Канторович в 1975 г. был удостоен Нобелевской премии по экономике.
Как показывает опыт, оптимальные решения бывают лучше решений, принятых традиционными методами, на 5—15% величины критерия, по которому производится оптимизация. Вместе с тем, принятие оптимальных решений связано со следующими трудностями: во-первых, надо иметь необходимые знания, без которых принятие оптимальных решений невозможно; во-вторых, должно быть разработано программное обеспечение для решения задач оптимизации. До последнего времени не было такого удобного для пользователя программного обеспечения. Лишь с появлением Excel 7.0 (а до этого Excel 5.0) вопрос о необходимом программном обеспечении оказался решенным.
К сожалению, до сего времени нет книг, в которых рассматривался бы весь круг вопросов, связанных с принятием оптимальных решений с помощью Excel. Попытке восполнения этого пробела и посвящена книга, которую Вы держите в руках. Эта книга состоит из трех частей.
Часть 1 "Предварительные сведения" включает главы 1 и 2. В главе 1 рассматривается история возникновения задач, требующих оптимальных решений, а также приведена классификация задач оптимизации. В главе 2 описаны типовые виды работ в Excel, которые наиболее часто выполняются при поиске оптимальных решений.
4
Предисловие
Часть 2 "Задачи оптимизации" включает главы 3—7. В главах 3—6 рассматриваются все классы задач оптимизации: линейного, целочисленного, нелинейного и стохастического программирования. При этом изложена их постановка, методы решения, реализация этих методов в Excel, а также способы всестороннего анализа задач, применив которые можно получить ответы на чрезвычайно важные вопросы двух типов:
□ что будет, если...?
□ что надо, чтобы...?
Решение всех задач описывается в форме алгоритмов, представляющих собой последовательность команд Excel, необходимых для достижения результата.
В главе 7 описываются методы решения задач всех рассмотренных классов по нескольким критериям. Такая возможность чрезвычайно полезна, т. к. при решении практических задач выбрать один критерий бывает достаточно трудно; хочется, чтобы было, как говорится, и дешево, и сердито.
Часть 3 "Типовые оптимальные решения" состоит из глав 8 и 9, в которых на основе применения алгоритмов, изложенных в части 2, решаются практические задачи. Глава 8 посвящена решению важной проблемы экономики — задачам распределения ресурсов, к числу которых относятся:
□ оптимальное распределение ресурсов в иерархических структурах;
□ оптимальное распределение ресурсов во времени.
Глава 9 посвящена оптимизации технических систем с учетом их экономических характеристик, в ней рассматриваются следующие основные задачи:
□ оптимизация параметров и структуры проектируемых объектов при их проектировании;
□ оптимальное управление технологическими процессами.
Таким образом, в книге затронут весь комплекс вопросов, связанных с подготовкой и принятием оптимальных решений.
1. Изложены теоретические основы, без знания которых поиск оптимальных решений с помощью Excel невозможен.
Предисловие
5
2. Рассмотрена постановка, решение и анализ всех классов задач оптимизации: линейного, целочисленного, нелинейного и стохастического программирования.
3. Приведены и решены типовые задачи принятия оптимальных решений в экономике и технике.
4. Все действия, необходимые для решения рассматриваемых задач, описаны в форме алгоритмов, представляющих собой последовательность вводимых команд Excel. Такая форма описания необходимых действий достаточно удобна как при последовательном изучении материала, изложенного в книге, так и для ее использования в качестве справочного пособия при решении практических задач. Приведено 148 алгоритмов, обеспечивающих решение всех основных задач поиска оптимальных решений, что проиллюстрировано 272 рисунками и множеством примеров.
Книга, написанная непрограммистом для непрограммистов, имеет четко выраженную практическую направленность. Универсальность методов оптимизации дает основание полагать, что книга будет полезна как специалистам, занимающимся менеджментом и консалтингом, так и тем, кто интересуется оптимальным проектированием технических систем. Книга также может представлять интерес для научных сотрудников, преподавателей, аспирантов и студентов экономических и технических вузов.
Автор считает своим приятным долгом выразить сердечную благодарность редактору Т. П. Кручининой, которая своим неформальным творческим подходом к редактированию книги существенно улучшила ее содержание. Вместе с тем автор допускает, что книга не свободна от недостатков, и все замечания и пожелания с благодарностью примет
по адресу: Россия, 199397, Санкт-Петербург, а/я 194,
тел: (812) 541 85 51; факс: (812) 541 84 61,
e-mail: bhv@mail.nevalink.ru.
Часть I
Предварительные сведения
X We такое оптимальное решение 1 Типовые работы при оптимизации
9
Что такое оптимальное решение
1.1. Типовые задачи оптимизации
1.1.1. Откуда появились вопросы
Человек пришел на готовое. В его распоряжении был весь мир. Чтобы быть сытым, достаточно собирать плоды, выкапывать съедобные корни, охотиться на зверя. Однако прежде, оказывается, надо ответить на множество вопросов: что, чем, где, когда и сколько заготавливать?
На вопросы "что, чем?" ответить, видимо, нетрудно: все, что попадется на пути, с помощью палки и камня. Сложнее решить "когда и сколько?", особенно, если находишься в полной зависимости от превратностей окружающего мира и от исхода охоты. И вот дикарь, мозг которого еще вчера был мозгом обезьяны, должен принять первое управленческое решение, исходя из здравого смысла, примерно так же, как это будут делать его интеллектуальные потомки в бесконечно далекий век космоса и персональных компьютеров. И платой за неправильное решение вопросов, поставленных перед ним самой жизнью, может оказаться голодная смерть.
А жизнь не стоит на месте. Медленно, но идет вперед. При этом оказывается, что человеку, который совсем недавно вообще ничего не имел, необходима целая уйма вещей, которых в готовом виде в природе нет: одежда, посуда, оружие, лодки, дома и так до бесконечности. Значит, чтобы выжить, все необходимое надо производить, а там, где возникает производство, возникают новые вопросы.
Прежде всего нужный предмет должен быть спроектирован. И совсем не важно, где производится проектирование. Вопросы решаются одни и те же: что, каких размеров, из какого материала делать? Например, прежде чем приступить к изготовле-
10
Часть 1 Предварительные сведения
нию самого простого кувшина, необходимо определить, какой формы должен быть кувшин, чтобы при использовании имеющегося количества глины его объем был максимальным. Поскольку глина, как и любое другое сырье, имеет определенную стоимость, то этот вопрос может быть сформулирован несколько иначе: какой формы должен быть кувшин, чтобы при заданной стоимости его объем был максимальным. Или та же задача, но в несколько другой постановке: какой формы должен быть кувшин заданного объема, чтобы его стоимость была минимальной.
Пройдут годы, века, тысячелетия, а такая постановка задачи сохранится независимо от того, что будут проектировать, потому что при проектировании объективно существует одна из двух постановок: либо спроектировать изделие заданной стоимости с наилучшими свойствами, либо спроектировать изделие с заданными свойствами, но наименьшей стоимости.
Какая-либо другая постановка задачи проектирования просто невозможна и поэтому попытка ставить задачу проектирования как-то иначе приводит лишь к излишней трате ресурсов и времени. Наилучшее решение этих задач может быть получено лишь с помощью методов оптимального проектирования, о которых не знали не только дикари, но которые неизвестны, к сожалению, и многим нашим современникам.
А тем временем на смену индивидуальному производству приходит массовое производство и возникают новые вопросы, например, у управляющего производством — кого на какую работу назначить, т. е. приходится решать задачу, которая будет называться задачей распределения ресурсов. И еще вопросы. Когда та или иная работа должна быть начата и окончена, чтобы ложка была, как говорится, к обеду. Это уже не простое распределение ресурсов, а целая проблема: распределение ресурсов по времени. И если она будет решена неправильно, то мясо появится задолго до костра, а когда придут на обед, он уже давно остынет и костер погаснет. Чтобы избежать этого, ресурсы во времени должны распределяться оптимально.
Кроме того, возникают задачи, которые вообще не имеют решения. Например, как из комка глины, помещающегося на ладони, изготовить кувшин, чтобы в нем хранилась вода, кото
Глава 1 Что такое оптимальное решение
11
рой хватило бы на семью на целый месяц или как одним хлебом накормить все человечество. Такие задачи, но не в такой очевидной своей невозможностью решения постановке, встречаются в жизни достаточно часто. Настолько часто, что им даже дали специальное название: несовместные задачи. Большая беда таких несовместных задач заключается в том, что нереальность их выполнения очевидна далеко не всегда. Получив задачу, начинают месить глину, чтобы сделать такой кувшин, на который имеющейся глины не хватит. И это вместо того, чтобы сначала рассчитать, а потом начать работать.
И еще проблема. При работе с глиной, как и при любой другой работе, возможны перебои с сырьем, возможно станок выйдет из строя и т. д. Как тут быть? В дальнейшем, ответы на эти вопросы можно будет получить в результате решения задач стохастической оптимизации. Но это будет так не скоро!
Все приведенные вопросы возникли в глубокой древности, как только появилось производство. Но производство не стоит на месте, оно непрерывно развивается. Для обеспечения монополии на производство и сбыт изделий, а также для защиты от посягательств феодалов, ремесленники одной и той же или родственных специальностей объединяются в союзы-цехи. Первые цехи — булочников, мясников, свечников, башмачников — появились в X в.
Каждый цех живет по своему уставу, в котором расписано все. Живи — и радуйся. А на деле — война не на живот, а на смерть. Продавцы гусей, которые по уставу имеют право варить и продавать "всякий мясной товар в шерсти и пуху", судятся с продавцами кур, которым разрешено заниматься продажей "мяса, побывавшего на огне". И длится этот судебный процесс с 1509 г. всего лишь по 1578 г.
Точно так же портные судятся с лоскутниками, ремонтирующими одежду. Портные не позволяют лоскутникам ставить при ремонте новый материал, а лоскутники под видом ремонта переделывают одежду почти заново. Этот судебный процесс затянулся ни много ни мало на 500 лет — с XIII по XVIII в.
Все это следствие того, что при решении возникающих споров не используют понятие критерий. Но пока еще никому неизвестно, что не выбрав критерия, любое решение принимать
12
Часть 1 Предварительные сведения
очень трудно, а оптимальное просто невозможно. Ведь оказывается, что перед тем как принять решение, надо знать, что мы хотим. А хотим мы, как правило, чтобы все было лучше. При этом не всегда знаем, что мы понимаем как под словом "все", так и под словом "лучше". Если смысл этих слов не определен, значит критерий не принят. А если критерий не принят, то и оптимального решения быть не может.
Вот и судятся продавцы гусей и кур, портные и лоскутники, чьи критерии совершенно различны. И вместо того, чтобы договориться о критериях, они тратят время и деньги на бесконечные суды. Тем временем объем работы растет. Во главе цеха появляются избранные всеми ремесленниками старшины — люди, освобожденные от выполнения непосредственных производственных обязанностей. Пока на весь цех старшина один. А вопросов полно: и номенклатуру выбрать, и спрос изучить, и объем выпуска определить, и цену установить, и запасы сырья обеспечить, и людей назначить на работы, и сырье распределить по исполнителям и многое, многое другое. Аналогичные вопросы ремесленник-одиночка решал и раньше, но с объединением в цехи существенно увеличивается объем работ, а вместе с этим и число решаемых вопросов. И появляется у старшины помощник — счетовод, письмоводитель, бюрократ и дармоед, ничего не производящий и ничего не решающий. Первая ласточка будущего управленческого аппарата.
И надо ему отвечать на все уже упомянутые вопросы. Но это еще не все. Оказывается, что при решении почти каждого вопроса необходимо знать ответы на дополнительные бесчисленные вопросы, которые можно объединить в две группы:
□ что будет, если...
□ что надо, чтобы...
А это уже вопросы анализа, без ответа на которые обоснованное решение принять невозможно. Основные вопросы, требующие решения, если еще и не всегда сформулированы, то объективно уже существуют:
□ проектирование изделия: либо заданной стоимости с наилучшими свойствами, либо с заданными свойствами наименьшей стоимости',
Глава 1 Что такое оптимальное решение 13
□ задачи распределения ресурсов вообще и задачи распределения ресурсов во времени;
□ задачи стохастической оптимизации;
□ выбор критерия;
□ анализ принимаемого решения.
Но обоснованные ответы на эти вопросы появятся ох как не скоро!
Впереди научно-техническая революция, развитие техники, совершенствование технологии, изменение номенклатуры, сырья, оборудования. Возрастет объем производства: появятся мануфактуры, фабрики, заводы, монополии, будут выпускаться компьютеры и космические корабли, невероятных успехов достигнет технология превращения сырья в готовую продукцию. И лишь вопросы, возникающие в производстве при проектировании, управлении и изготовлении останутся теми же: что, каких размеров, из чего, кому, где, когда, сколько, в какой последовательности...? Только число таких вопросов существенно увеличится, а плата за ошибку неимоверно возрастет. Попробуем хотя бы примерно оценить эту плату.
Допустим, при интуитивном распределении людей на работы возможность их использования по сравнению с оптимальным вариантом, который можно получить с помощью компьютера, ухудшается всего лишь на 3%. Это очень небольшая ошибка, которую и заметить можно далеко не всегда.
Такая ошибка, скажем, в суконном цехе XV в. с 40 работающими привела бы к недоиспользованию одного человека. В наши дни, если принять, что в производстве занято 50 млн. чел., такая ошибка аналогична снижению трудовых ресурсов на 1,5 млн.! Естественен вопрос: нельзя ли избежать подобных ошибок, использовав для принятия решений компьютер. Ответ на этот вопрос — книга, которая у вас в руках.
1.1.2. Основные методы решения задач
Человек хорошо или плохо решает все возникающие перед ним задачи. Процесс принятия решений может быть неформализованным и формализованным. Принятие неформализованных решений — это творчество, если угодно, искусство.
14
Часть 1. Предварительные сведения
Чтобы принять неформализованное решение, человеку зачастую ничего не надо. Есть вопрос. Пусть даже не совсем четкий. Сел, подумал, решил. Правда, никакой гарантии правильности решения при этом нет. Достаточно часто человек принимает решение вообще без всяких обоснований, руководствуясь так называемым здравым смыслом, опытом, интуицией и другими аналогичными понятиями, которые никому совершенно ничего не объясняют. А потом для убедительности и убеждения самого себя и других придумывают достаточно веские и обоснованные причины, доказывающие правильность интуитивно принятого решения.
Что же касается формализованных решений, то они принимаются по четким рекомендациям. При этом различные люди, руководствуясь этими рекомендациями, будут принимать одни и те же решения. Принятие формализованных решений — наука. Этому можно научить. Принятие формализованных решений базируется на двух основных методах: логическом моделировании и оптимизации.
При логическом моделировании используются так называемые правила, которые составляют высококвалифицированные специалисты, а применяют правила те люди, кто должен принимать решения.
Правила определяют, что надо делать в тех или иных случаях. Для этого служат логические функции: И, ИЛИ, ЕСЛИ, НЕ. Самое простое правило выглядит примерно так: ЕСЛИ идет дождь, ТО возьми зонт. Это правило можно уточнить: ЕСЛИ идет дождь И надо выйти из дома, ТО возьми зонт ИЛИ одень плащ.
Очевидно, что с помощью подобных уточнений можно давать достаточно конкретные рекомендации по принятию решений в весьма сложных ситуациях.
Такие правила являются хорошей подсказкой при принятии решений исполнителями более низкой квалификации. Для реализации логического моделирования на компьютерах разработан специальный язык ПРОЛОГ (Программирование ЛО-Гики). Но логическое моделирование не является предметом рассмотрения нашей книги. Книга посвящена методу оптимизации как средству принятия оптимальных решений.
Глава 1. Что такое оптимальное решение
15
Принятие оптимальных решений базируется на "трех китах":
□ математической модели;
О решении задачи на компьютере;
□ исходных данных.
Начнем с "кита №1" — математической модели. Математика всегда пыталась давать ответы на возникающие вопросы. И если, сравнительно недавно, надо было подсчитать число сделанных топоров, то теперь математику используют и для принятия оптимальных решений.
Математическое моделирование имеет два существенных преимущества: дает быстрый ответ на поставленный вопрос, на что в реальной обстановке могут потребоваться иногда даже годы; предоставляет возможность широкого экспериментирования, осуществить которое на реальном объекте зачастую просто невозможно.
Чтобы моделирование было успешным, надо выполнить три правила, которые, по мнению древних, являются признаком мудрости. Эти правила, применительно к задачам математического моделирования, формулируются так:
□ учитывать главные свойства моделируемого объекта;
□ пренебрегать его второстепенными свойствами;
□ уметь отделить главные свойства от второстепенных.
Составление математической модели начинается с содержательной постановки задачи. На этом этапе приходится иметь дело со специалистами в предметной области (по управлению, проектированию, разработке технологических процессов и т. д.). Эти специалисты — люди, как правило, очень добросовестные, однако, прекрасно зная свой предмет, не всегда имеют представление о том, что именно требуется для принятия оптимального решения. Поэтому содержательная постановка задачи зачастую оказывается перенасыщенной сведениями, которые для постановки задачи совершенно излишни.
Но в жизни, к сожалению, не всегда бывает легко отделить главное от второстепенного и составить приемлемую математическую модель. Составление модели — это искусство, творчество. До какого-то уровня научить можно, но не более того.
16
Часть 1 Предварительные сведения
А там, где творчество, очень важны личные качества: знания, способности, если угодно, талант.
Если двое смотрят на одно и то же, это не означает, что оба видят одно и то же. И слова древних греков "Если двое делают одно и то же, это не значит, что получится одно и то же" в полной мере относятся к составлению математических моделей. Не вызывает сомнения, что для успешного принятия оптимального решения необходимо знать, что такое математическая модель, и представлять, каким образом компьютер находит это решение.
Если модель описывает зависимость между исходными данными и искомыми величинами, то алгоритм представляет собой последовательность действий, которые надо выполнить, чтобы от исходных данных перейти к искомым величинам.
Никто не смешивает диагноз заболевания с методом лечения. Так же и здесь. Можно считать, что математическая модель — это аналог диагноза, а алгоритм — метода лечения.
Кстати, не совсем обычное слово "алгоритм", которое мы будем широко использовать в книге, по мнению историков, имеет такое происхождение. В IX в. в Багдаде жил арабский ученый Аль-Джафар Магомет бен Муса Хорезми, родом из Хивы (ныне город в Узбекистане). Автор работ по астрономии и о солнечных часах, он также написал учебник по математике для купцов и стряпчих, в котором употребил не римские, как было принято, а арабские цифры. Его основополагающие трактаты по арифметике и алгебре в XII в. были переведены на латинский язык и оказали большое влияние на развитие математики в Западной Европе. Сокращенное имя этого ученого — Аль Хорезми, которое на латинском языке было написано как Ал-горитми. Вот откуда произошло слово "алгоритм".
Алгоритмы задач принятия решений настолько сложны, что без применения компьютера реализовать их практически невозможно. Итак, мы подошли ко "второму киту" — компьютеру. Компьютер с помощью программного обеспечения реализует алгоритмы поиска оптимального решения, которые преобразуют исходные данные в искомый результат. Таким программным обеспечением, выполняющим поиск оптималь
Глава 1. Что такое оптимальное решение 17
ных решений, является Excel 7.0 для Windows 95. Поиску оптимальных решений с помощью Excel 7.0 и посвящена наша книга. Следует отметить, что в части поиска оптимальных решений Excel 5.0 для Windows 3.1 отличается несущественно от Excel 7.0 для Windows 95.
И, наконец, "третий кит" — исходные данные. Никакая хорошая сходимость алгоритма, никакое быстродействие и оперативная память компьютера не заменят достоверности исходных данных. По этому поводу можно было бы сказать много правильных слов, но мы ограничимся лишь тем, что приведем хорошо известную пословицу: что посеешь, то и пожнешь! От себя добавим: и никакие комбайны (то бишь математические модели и программы) не заменят качественных семян!
1.2. Классификация задач оптимизации
1.2.1. Пример математической модели
Чтобы не отпугнуть читателя сложными математическими формулами, для составления модели возьмем самое простое изделие. Это будет даже не кувшин, форму которого описать достаточно трудно. Будем проектировать бак, имеющий форму прямоугольного параллелепипеда, объем которого
V = abh, (1.1.1)
где a, b, h — стороны бака.
Итак, мы подошли к задаче составления нашей первой модели. Прежде чем составить математическую модель, необходимо сформулировать содержательную постановку задачи, которая может быть следующей. Требуется определить размеры бака, объемом V = 2000, чтобы на его изготовление пошло как можно меньше материала, площадь которого
S = 2[ab+(a+b)h], (1.1.2)
Такая постановка может быть записана следующим образом:
F = S —> min
V = 2000
(1.1.3)
18
Часть 1. Предварительные сведения
(1-1.4)
Эта запись читается так: минимизировать величину S при условии, что V = 2000. Подставим в (1.1.3) значения V (1.1.1) и S (1.1.2), тогда получим:
F = 2[ab+(a + b)h]—> min abh = 2000
К этим зависимостям добавим очевидное для нас, но необходимое для компьютера, условие, согласно которому все стороны прямоугольника могут быть только положительными величинами. Это условие запишем так:
a, b, h > 0,
тогда получим нашу первую математическую модель задачи поиска оптимального решения:
ЦФ F = 2 [ab + (a + b)h]- > min
ОГР abh = 2000
ГРУ a, b, h > 0
(1.1.5)
Эта модель состоит из трех составляющих: целевой функции (ЦФ), ограничения (ОГР), граничных условий (ГРУ). Смысл этих составляющих рассмотрим чуть позже.
1.2.2. Общий случай задачи оптимизации
Как же выглядит постановка задачи оптимизации в общем виде? Чтобы ответить на этот вопрос, перейдем от первой модели (1.1.5) к общему случаю. Обозначим искомые переменные в общем виде Xi = а, хг = Ь, Хз = h. Тогда (1.1.5) запишем так:
F = 2 |х.]Х2 + (к, +х2)х3 j-э min X]X2x3 = 2000
X,, х2, х3 > 0
Очевидно, что (1.1.6) может быть записана в виде
F = f (Х[,х2,х3) -» min g(x„x2,x3) = b х„х2,х3 >0
(1.1.6)
(1-1.7)
Глава 1 Что такое оптимальное решение 19
И нетрудно видеть, что (1.1.7) является частным случаем задачи, которая в общем случае записывается так:
Цф F = f (хj j —> max(min,Const) gi(Xj)<(=;>)bi
ОГР g.(xj )<(=;>>,
gm(xj) — (—>-)Ьт
ГРУ dj < Xj < Dj;i =l,m; j = 1,n
Систему (1.1.8) принято записывать более компактно.
F = f(xJ-> max g, (Xj) b, dj
i = l,m; j = l,n
(1.1.8)
(1.1.9)
Запись (1.1.9) и является общей формой записи задачи оптимизации. В эту систему, как и в нашу первую модель (1.1.5) входят три составляющие.
1. ЦФ — целевая функция или критерий оптимизации, показывает, в каком смысле решение должно быть оптимальным, т. е. наилучшим. При этом возможны 3 вида назначения целевой функции:
□ максимизация;
□ минимизация;
□ назначение заданного значения.
2. ОГР — ограничения устанавливают зависимости между переменными. Они могут быть как односторонними, например:
&(xj) < b,,
так и двусторонними
а, < g,(xj) < b,.
20
Часть 1 Предварительные сведения
При решении задачи оптимизации с помощью Excel такое двустороннее ограничение записывается в виде двух односторонних ограничений
&(xj) а,,
g.(xj) < b,
3. ГРУ — граничные условия показывают, в каких пределах могут быть значения искомых переменных в оптимальном решении.
Решение задачи, удовлетворяющее всем ограничениям и граничным условиям, называется допустимым. Если математическая модель задачи оптимизации составлена правильно, то задача будет иметь целый ряд допустимых решений. Поясним это положение. Важной характеристикой задачи оптимизации является ее размерность, определяемая числом переменных п и числом ограничений т. Соотношение этих величин является определяющим при постановке задачи оптимизации. Возможны три соотношения n < m, n = т, п > т, которые мы и рассмотрим.
1. п <т
Например,
X) + 2 = 5 ]
X] - 8 = 15]
Здесь n = 1, m = 2. Очевидно, что такие задачи решения не имеют.
2. п = т
Например,
X] +х2 = 5
X! -х2 =1
В данном случае n = m - 2. Такое соотношение пит — это необходимое условие для решения системы уравнений.
Для внимательного читателя добавим, что когда мы говорим о количестве уравнений, то имеем в виду только линейнонезависимые уравнения. Напомним, что линейно-зависимыми называются такие уравнения, когда одно из них образуется ум-
Глава 1 Что такое оптимальное решение
21
ножением левой и правой части другого уравнения на постоянное число или сложением нескольких уравнений.
Очевидно, что система
Xi + х2 = 5 1 2xj +2х2 = 10J в которой n = m = 2 решения не имеет, т. к. эти уравнения линейно-зависимые.
3. n < m
Например, Х1+ Х2 = 5, где п = 2, m = 1.
В этом случае может быть бесчисленное множество значений Xi и Х2, которые удовлетворяют данному уравнению.
До сих пор мы рассматривали соотношения между пит для ограничений в виде уравнений. Достаточно часто ограничения записываются в виде неравенств. Посмотрим, что будет в этих случаях на примере неравенства х; < 5.
Вводом дополнительной переменной yi > 0 перейдем от заданного неравенства к уравнению xi+ yi = 5.
Для этого уравнения п = 2, m = 1 и, значит, оно имеет бесчисленное множество решений.
Если в общем случае ограничения имеют вид gi(xj)-b,, i = 1, m; j = 1, n, то их можно записать в виде &(xj) + y.= bb у > 0; i =l,m; j = l,n .
В этом случае общее число переменных Xj и у„ равное N, будет N = и + т,
а число уравнений остается прежним, равным т.
22
Часть 1 Предварительные сведения
Очевидно, что N = n + m>m, и система имеет бесчисленное множество решений. Значит, если ограничениями являются неравенства, то система всегда имеет бесчисленное множество решений.
Таким образом, условие п > m — это непременное требование для задач оптимизации. Заметим, что такую систему уравнений, для которых n = т, можно рассматривать как задачу оптимизации, имеющую одно допустимое решение, и решать ее как обычную задачу оптимизации, назначая в качестве целевой функции любую переменную.
Итак, мы знаем, что система ограничений при n > m имеет бесчисленное множество решений. Что же делать дальше? Чтобы из всех возможных решений выбрать только одно, необходимо договориться, по какому признаку мы это будем делать. Естественно, хочется, чтобы выбранное решение оказалось правильным. Но что такое правильное решение? Сказать, что решение правильное или неправильное — это значит дать оценку, которая может оказаться весьма субъективной. Поэтому в дальнейшем не будем говорить о правильных решениях, потому что мы просто не знаем, что это такое. Наш разговор будет об оптимальных решениях. Что же касается оптимального решения, название которого происходит от лат. optimus (наилучший), то здесь все четко и определенно.
Оптимальное решение — это наилучшее. Но решения, наилучшего во всех смыслах, быть не может. Оно может быть наилучшим, т. е. оптимальным, только в одном, строго установленном смысле.
Принимающий решение должен абсолютно точно представлять, в чем заключается оптимальность решения, т. е. по какому критерию (от греч. kri:erion — мерило, оценка, средство для суждения) принимаемое решение должно быть оптимально.
Критерий часто называют, и мы уже называли, целевой функцией. Критерий выбирается тем человеком, кто принимает решение. В общем случае с помощью критерия можно оценивать качества как желательные (например, прибыль, производительность, надежность), так и нежелательные (затраты, расход материала, простои оборудования). Тогда в первом случае стремятся к максимизации критерия, а во втором — к его минимизации.
Глава ?. Что такое оптимальное решение 23
Так, если при принятии решения требуется максимизировать какую-то величину, например, прибыль, производительность или надежность, то в этом случае для оптимального решения критерий будет иметь самое большое значение из всех допустимых. Если же требуется минимизация критерия (затраты, расход материала, простой оборудования), то для оптимального решения критерий будет иметь самое меньшее значение из всех допустимых.
Стремление к оптимизации — это естественное состояние человека. Человек по своей природе является прирожденным оптимизатором. Он занимается оптимизацией, потому что ему необходимо экономить свои ограниченные запасы энергии, ресурсов, времени. Каждый шаг человека, каждое принимаемое им решение — это зачастую неосознанное действие для того, чтобы получить оптимальный результат. И не случайно это естественное поведение человека нашло отражение в пословицах "Рыба ищет, где глубже, а человек — где лучше", что соответствует задаче максимизации, и "Из двух зол выбирают меньшее" — задаче минимизации.
Итак, задача имеет оптимальное решение, если она удовлетворяет двум требованиям:
О есть реальная возможность иметь более одного решения, т. е. существуют допустимые решения;
□ имеется критерий, показывающий, в каком смысле принимаемое решение должно быть оптимальным, т. е. наилучшим из допустимых.
По сути дела, задачи оптимизации вокруг нас. Чтобы в них разобраться, необходимо прежде всего их систематизировать. Этим мы и займемся в следующем разделе.
1.2.3. Классификация математических моделей
Важным этапом изучения явлений, предметов, процессов является их систематизация, которая обычно завершается классификацией по ряду признаков, а поскольку признаков может быть достаточно много, то и выполненные классификации могут различаться между собой. Любая классификация должна преследовать достижение поставленных целей. Выбор цели оп
24
Часть 1 Предварительные сведения
ределяет набор тех признаков, по которым она будет проводиться.
Наша цель — показать, что совершенно различные по своему содержанию задачи оптимизации можно решать с помощью Excel 7.0. В связи с этим рассмотрим классификацию (рис. 1.2.1) по виду математических моделей, которые включают следующие элементы:
□ исходные данные;
□ искомые переменные;
□ зависимости.
Рис. 1.2.1
Исходными данными для математической модели являются: целевая функция F(Xj), левые части ограничений g,(Xj) и их правые части К Как видно из рис. 1.2.1, исходные данные могут быть детерминированными и случайными. Детерминированными называются такие исходные данные, когда при составлении модели их точные значения известны. В достаточно распространенных задачах распределения ресурсов точное значение имеющегося ресурса, а также других элементов, входящих в модель, может быть заранее неизвестно. В таких случаях эти элементы модели являются случайными величинами
Глава 1 Что такое оптимальное решение 25
Искомые переменные могут быть непрерывными и дискретными. Непрерывными называются такие величины, которые в заданных граничных условиях могут принимать любые значения. Дискретными называются такие переменные которые могут принимать только заданные значения. Целочисленными называются такие дискретные переменные, которые могут принимать только целые значения.
Зависимости между переменными (как целевые функции, так и ограничения) могут быть линейными и нелинейными. Напомним, что линейными называются такие зависимости, в которые переменные входят в первой степени и с ними выполняются только действия сложения или вычитания. Если же переменные входят не в первой степени или с ними выполняются другие действия, то зависимости являются нелинейными. При этом следует иметь в виду, что если в задаче хотя бы одна зависимость нелинейная, то и вся задача является нелинейной.
Сочетание различных элементов модели образует различные классы задач оптимизации, которые требуют разных методов решения. Основные классы задач оптимизации приведены на рис. 1.2.2.
Исходные данные Искомые переменные Зависимости Классы задач Где рассматриваются
Детерминированные Непрерывные Линейные Линейного программирования Гл. 3
Детерминированные Целочисленные Линейные Целочисленного программирования Гл. 4
Детерминированные Непрерывные, целочисленные Нелинейные Нелинейного программирования Гл. 5
Случайные Непрерывные Линейные Стохастического программирования Гл. 6
Рис. 1.2.2
26
Часть 1 Предварительные сведения
Все эти задачи являются частными случаями общей задачи оптимизации (1.1.9) и подробно рассматриваются в тех главах, которые указаны на рис. 1.2.2.
1.3. Последовательность работ при принятии оптимальных решений
1.3.1. Основные этапы работ
Основные этапы работ при принятии оптимальных решений следующие:
1. Выбор задачи — это важнейший вопрос. Решение задачи, особенно достаточно сложной, — очень трудное дело, требующее много времени. И если задача выбрана неудачно, то это может привести не только к справедливому сожалению о потерянном времени, но, что более печально, к разочарованию в применении методов оптимизации. Каким же основным требованиям должна удовлетворять задача?
Таких требований два:
□ должно существовать, как минимум, два варианта ее решения; ведь если вариантов решения нет, значит, и выбирать не из чего;
□ надо четко знать, в каком смысле искомое решение должно быть наилучшим. Если же мы четко не знаем, чего хотим, то математические методы, реализованные даже на самом лучшем компьютере, помочь не смогут.
Выбор задачи завершается ее содержательной постановкой.
2. Содержательная постановка задачи является переходным мостиком от желания решить задачу к ее формулировке в такой форме, на основании которой было бы ясно, каковы элементы математической модели:
□ исходные данные: величины детерминированные или случайные;
□ искомые переменные: непрерывные или дискретные;
О пределы, в которых могут находиться значения искомых величин в оптимальном решении;
Глава 1 Что такое оптимальное решение
27
□ зависимости между переменными: линейные или нелинейные;
□ критерии, по которым следует находить оптимальное решение.
Хорошо сформулированная содержательная постановка — основа успешного составления математической модели.
3. Составление математической модели — очень ответственный этап работ. О математических моделях, этом "ките № 1", на котором базируется принятие оптимальных решений, мы уже говорили.
4. Сбор исходных данных является необходимым этапом работы при поиске оптимального решения. Прежде чем ввести исходные данные в компьютер, их, естественно, необходимо собрать, причем не все имеющиеся, как это иногда пытаются делать, а лишь те, которые входят в математическую модель. Следовательно, сбор исходных данных не только целесообразно, но и необходимо производить лишь после того, как будет сформулирована математическая модель.
Решение задач большой размерности целесообразно начать с контрольного примера. Цель контрольного примера — проверить правильность математической модели, поэтому он может быть весьма ограниченной размерности. Это потребует собрать на начальном этапе работы небольшое количество исходных данных для быстрой оценки правильности составленной модели.
5. Решение задачи — это, естественно, центральный вопрос, который подробно рассмотрен в данной книге для каждого класса задач оптимизации.
6. Анализ решения — важнейший инструмент принятия оптимальных решений. О нем подробно — в следующем разделе.
7. Принятие оптимального решения — конечный этап работы. Надо четко себе представлять, что решение принимает не компьютер, не Excel, а тот человек, который должен отвечать за результаты принятого решения.
8. Графическое представление результата решения и анализа — мощный фактор наглядности информации, необходимой для принятия решения.
Следует подчеркнуть, что оптимальное решение — это не те величины, которые получены при поиске, выполненном Excel,
28
Часть 1 Предварительные сведения
а результат всесторонней оценки как решений, полученных с помощью поиска, так и тех значений, которые были определены в ходе произведенного анализа.
Таковы основные этапы принятия оптимального решения, которые будут многократно иллюстрироваться на примерах решения различных задач, рассматриваемых в книге.
1.3.2. Анализ решаемых задач
В современной медицине никто не будет устанавливать диагноз и выписывать лекарства, т. е. принимать решение, без результатов анализа. К сожалению, при принятии решений в экономике и технике так бывает далеко не всегда.
Мощным средством анализа является математическая модель. Не стоит покупать ружье, чтобы сделать только один выстрел. Нецелесообразно тратить время и средства на составление математической модели, чтобы по ней выполнить один единственный расчет.
Математическая модель, как мы уже говорили, является прекрасным средством получения ответов на широкий крут самых разнообразных вопросов, возникающих при принятии оптимальных решений.
Виды анализа, выполняемого на основе математической модели, приведены на рис. 1.3.1.
Поясним некоторые вопросы.
На этапе постановки задачи производится анализ с целью ответа на вопросы: "что будет, если..?" и/или "что надо, чтобы..?".
Анализ с целью ответа на первый вопрос называется вариантным анализом', на второй — решениями по заказу.
Вариантный анализ бывает следующих видов:
□ Параметрическим будем называть такой анализ, который заключается в решении задачи при различных значениях некоторого параметра. Примеры параметрического анализа приводятся в книге неоднократно.
□ Под структурным анализом будем понимать решение задачи оптимизации при различной структуре ограничений.
Глава 1 Что такое оптимальное решение
29
□I Многокритериальный анализ — это решение задачи по разным целевым функциям.
□ Если исходные данные, используемые при решении задачи, зависят от соблюдения дополнительных условий, то такой анализ называется анализом при условных исходных данных.
Рис. 1.3.1
Во вторую группу задач анализа — решения по заказу — входят задачи, целью которых является решение задачи оптимизации при заданных значениях: переменных, левых частей ограничений, целевой функции.
Кроме анализа, выполняемого на этапе постановки задачи, мощным средством, помогающим принять решение, является анализ полученного оптимального решения. Задачи,’выполняемые при анализе оптимального решения, приведены также на рис. 1.3.1. Их решение базируется на некоторых теоретических положениях, рассмотренных в главах 3 и 5.
30
Типовые работы при оптимизации
2.1. Работа с электронной таблицей
2.1.1. Основные положения
При вызове Excel на экране появляется окно, показанное на рис. 2.1.1.
9 f2 f3 j-6
Рис. 2.1.1
Рассмотри^ те основные элементы этого окна, с которыми мы будем работать при поиске оптимального решения.
1 — главное меню;
2 — панель инструментов;
Глава 2. Типовые работы при оптимизации
31
3 — строка ввода;
4 — информационная строка;
5 — книга: основное рабочее место электронной таблицы, которая является файлом;
6 — поле заголовка, где указывается имя электронной таблицы;
7 — ярлычок листа;
Книга состоит из листов, число которых обычно равно 16. Каждому листу можно присвоить имя, которое укладывается на ярлычке листа. По умолчанию имена листов: Лист!, Лист2 и т. д. Каждый лист — это электронная таблица, являющаяся элементом одного файла-книги. Электронная таблица состоит из строк и столбцов; строки нумеруются 1,2,...,16394; столбцы обозначаются буквами А, В, ..., АА, АВ, ...; всего столбцов 256. На пересечении строк и столбцов находятся ячейки. Каждая ячейка имеет свой адрес А1, В18, AD243 и т. д.
8 — блок прокрутки листов;
9 — угловой элемент, предназначенный для выделения всех ячеек окна;
10 — кнопки управления размером окна;
Элементы, предназначенные для работы с большими таблицами:
11 — полосы прокрутки;
12 — стрелки прокрутки;
13 — горизонтальный делитель;
14 — вертикальный делитель.
В Excel предусмотрен ввод команд различными способами. В дальнейшем будем отдавать предпочтение вводу команд с помощью мыши. При этом будем применять обозначения, приведенные на рис. 2.1.2. Например, запись МН А1.В5 соответствует выполнению следующих работ:
1. Курсор в А1.
2. Нажать и удерживать левую кнопку мыши.
3. Переместить курсор в В5.
4. Отпустить левую кнопку.
32
Часть I Предварительные сведения
Действие Кнопка
левая правая
один щелчок М1 мп
двойной щелчок М2
нажатие и перемещение МН
Рис. 2.1.2
После ознакомления с элементами окна рассмотрим основные команды, с помощью которых в Excel производится решение задач оптимизации. Классификация команд приведена на рис. 2.1.3.
Рис. 2.1.3
Будем вводить команды с помощью кнопок, находящихся на панели инструментов, и лишь в случае отсутствия такой возможности будем пользоваться командами меню. Работы с кнопками панелей инструментов рассмотрены в 2.1.2. Здесь кратко изложим некоторые вопросы, связанные с командами, входящими в меню, которые бывают двух видов:
□ иерархические;
□ контекстные.
В иерархические меню входят команды трех типов:
□ выполняемые,
Глава 2 Типовые работы при оптимизации
33
□ вызывающие меню следующего уровня (рядом с командой стоит треугольник);
□ вызывающие диалоговое окно (после команды стоит многоточие).
Различные типы команд рассмотрим на примере меню команды Правка (рис. 2.1.4).
Рис. 2.1.4
В этом меню командами, вызывающими меню следующего уровня, являются:
Заполнить;
Очистить.
Вызывающими диалоговые окна:
Удалить...
Переместить/скопировать...
Найти...
Заменить...
Перейти...
2 Зак 115
34
Часть I Предварительные сведения
Остальные команды — выполняемые, т. е. такие, которые вызывают конкретные действия. Нижним уровнем иерархических команд являются диалоговые окна. В диалоговых окнах вводятся необходимые параметры и команды. Диалоговые окна имеют достаточно разнообразную структуру, но вместе с тем в них используются одни и те же типовые элементы.
Знакомиться с диалоговыми окнами будем на примере диалогового окна Параметры страницы (рис. 2.1.5), для вызова которого следует ввести команду Файл, Параметры страницы...
Параметры страницы
Страница
Поля
Колонгитдлы
Выводить на печать диапазон |
Печатать на каждой странице——- ——-
i Сквозные стдокк |
| Сквозные столбцы: |
Г” Чернс^йелая
Р QSwwwSi струи-столбцу)
Г Последовательность вывода страниц
’ В»®, затем вправо
, С gnpaeo, затем вниз i
Рис. 2.1.5
В верхней части диалогового окна находятся ярлычки Страница, Поля, Колонтитулы, Лист.
Ярлычок — это название следующего уровня в иерархическом меню.
На рис. 2.1.5 приведено диалоговое окно ярлычка Лист.
Диалоговые окна в общем случае могут иметь структуру, включающую элементы, показанные на рис. 2.1.6.
Глава 2 Типовые работы при оптимизации
35
Рис. 2.1.6
Блок назначения команд
В поля ввода вводится запрашиваемая информация. Это могут быть имена, данные, текст, адреса ячеек и т. д. В диалоговом окне Параметры страницы, ярлычок Лист примером такой информации может служить Выводить на печать диапазон.
В диалоговых окнах несколько однотипных команд объединяются в группу команд. На рис. 2.1.5 это Печать и Последовательность вывода страниц.
В каждой группе команд имеются Поля выбора (флажки и переключатели), в которых производится выбор команд из числа имеющихся. При этом все команды делятся на совместимые и альтернативные.
Совместимыми называются такие команды, при которых ввод одной из них не исключает ввода других. Левее таких команд имеется квадратик (флажок), поэтому поля выбора таких ко
36
Часть I Предварительные сведении
манд иногда называют квадратными. При одном щелчке мыши в квадратике появляется галочка (флажок установлен), которая обозначает ввод данной команды, а ее отсутствие (флажок сброшен) — отмену команды. В рассматриваемом примере (рис. 2.1.5) это команды, входящие в группу Печать, и они не исключают друг друга.
Альтернативными командами называют такие команды, для которых назначение одной исключает назначение остальных. Левее этих команд находится кружок (переключатель), поэтому поля выбора таких команд иногда называются круглыми. После одного щелчка мышью в кружке либо появляется точка, что означает выбор команды (переключатель выбран), либо точка убирается, что означает ее отмену. На рис. 2.1.5 в группе Последовательность вывода страниц такими командами являются команды Вниз, затем вправо; Вправо, затем вниз. Очевидно, что эти команды исключают друг друга. Назначаемый порядок страниц иллюстрируется схемой.
Блок ввода команд
Выполняемыми командами являются ОК, Отмена, Просмотр, вызывающими диалоговые окна — Печать..., Свойства... Вместе с тем возможен ввод команд и другого типа, суть которых заключается в следующем. Чтобы дойти до нужной команды с помощью разветвленной иерархической структуры команд, надо последовательно вызывать на экран несколько меню, включая диалоговые окна. При этом во всех меню и диалоговых окнах будет значительное число команд, которые к данной решаемой задаче не имеют никакого отношения.
Для вызова не всех возможных команд, а только тех, которые нужны в данной конкретной ситуации, существует несколько контекстных меню, вызываемых командой МП.
Наибольшее применение имеют контекстные меню при работе:
□ с кнопками панелей инструментов;
□ с выделенными ячейками;
о с ярлычками листов.
Таковы основные положения, связанные с командами, входящими в меню.
Г^ава 2 Типовые работы при оптимизации
37
Рассмотрим далее работу с большими таблицами, т. е. с такими таблицами, размер которых больше размера экрана. Представить на экран всю таблицу или нужную ее часть можно с помощью следующих действий:
□ уменьшить масштаб представления окна;
□ произвести прокрутку окна;
□ выполнить деление окна.
Первое действие не требует пояснений, два последующих рассмотрим подробно.
Алгоритм 2.1.1. Прокрутка окна с фиксацией заголовков строк и столбцов
1. Курсор на рис. 2.1.7 в ячейку ВЗ, выше и левее которой надо зафиксировать строки и столбцы при прокрутке.
2. Окно, Закрепить области.
3. Выполнить прокрутку стрелками или с помощью полосы прокрутки.
На экране: результат прокрутки.
А В 1 С 1 О 1 Е iFlalHI 1 | J 1
1 Ежедневный план выписка продукции
2 Дата Прод1 Пред 2 ПродЗ Пред 4 Продб ПродБ Прод 7 Продв Пред 9
3 4 S • -т в 3 W t« 12 13 14 W W IT W » 1103 37 0510 30 061036 07 10 36 0810 36 0310 36 1010 36 111036 1210 36 13 10 36 1410 36 15 10 36 16 10 36 1710 36 1810 36 13 10 36 201036
Рис. 2.1.7
Отмена фиксации производится командой Окно, Снять закрепление областей.
38
Часть I Предварительные сведения
Алгоритм 2.1.2. Деление окон
1. Курсор на горизонтальный делитель
Курсор превращается в двустороннюю стрелку с горизонтальными линиями
2. МН.
На экране, разделительная горизонтальная линия.
3. Перемещение курсора вызывает перемещение разделительной линии.
4. Отпустить кнопку мыши.
На экране: 2 горизонтальных окна со своими вертикальными элементами прокрутки (рис. 2.1.8).
[} X M/croxeff Е xcel
£айл £иА встдека форнат Сервис Данные Дню 2
|а7э1Суг 3 З
Готово , ;С умма==0> Г i <
Рис. 2.1.8
Аналогично можно производить деление с помощью вертикального делителя.
После деления окна, пользуясь прокруткой, можно вызывать на экран одновременно различные части таблицы, находящиеся на значительном расстоянии друг от друга
Глава 2 Типовые работы при оптимизации
39
Поскольку в каждом новом окне есть свои делители, процесс деления окон можно продолжить. Но это уже экзотика из серии неиспользуемых возможностей Excel.
Для устранения деления необходимо
1. Установить курсор на делитель.
2. МН.
3. Вернуть делитель в начальное положение.
С помощью приведенных алгоритмов можно работать с таблицами любых размеров
2.1.2. Панели инструментов
Панели инструментов — это набор кнопок, обеспечивающих быстрый ввод команд. Все панели делятся на поставляемые и создаваемые пользователем.
Чтобы познакомиться с поставляемыми панелями, их прежде всего надо вызвать на экран. Это делается следующим образом.
Алгоритм 2.1.3. Вызов панелей на экран
1. Курсор на любую кнопку
2. МП (напоминаем, что это один щелчок правой кнопкой мыши) На экране: контекстное меню, включающее перечень панелей.
3. Подвести курсор к имени панели.
4. М1.
На экране вызываемая панель.
5. Подвести стрелку курсора к кнопке
На экране- ниже кнопки находится ее название, а в информационной строке — ее назначение
Ознакомившись с существующими панелями, посмотрим, как можно изменять их состав и формировать панели пользователя с помощью категорий кнопок
40
Часть / Предварительные сведения
Алгоритм 2.1.4. Работа с категориями кнопок
1. Курсор на любую кнопку.
2. МП.
На экране: контекстное меню, включающее перечень панелей.
3. Подвести курсор к Настройка...
4. М1.
На экране: диалоговое окно Настройка (ярлычок Панели инструментов)
5. Курсор на название категории.
6. М1.
На экране: кнопки, входящие в вызванную категорию (на рис. 2.1.9 — в категорию Правка).
Рис. 2.1.9
7. Курсор на кнопку.
8. М1.
На экране: в рамке Описание указывается действие, выполняемое после нажатия кнопки.
9. Для перемещения кнопки на панель необходимо:
Глава 2 Типовые работы при оптимизации
41
> Курсор на перемещаемую кнопку.
> МН.
> Перетащить кнопку на панель, находящуюся на экране.
10. Закрыть.
11. Чтобы убрать кнопку с панели:
> Вызвать на экран категорию.
> Курсор на кнопку.
> МН.
> Перетащить кнопку с панели в нужную категорию.
Кнопки, необходимые для решения задач оптимизации, находятся на разных панелях, поэтому для удобства работы целесообразно сформировать панель пользователя, включающую все необходимые кнопки.
Создание такой панели состоит из двух этапов. На первом этапе определяется перечень необходимых кнопок, на втором — формируется панель пользователя.
Перечень кнопок, наиболее часто используемых при решении задач оптимизации, приведен на рис. 2.1.10.
№ Кнопка Категория
1 Сохранить Файл
2 Печать Файл
3 Удалить в буфер Правка
4 Копировать в буфер Правка
5 Вставить из буфера Правка
6 Мастер функций Формула
7 Удаление десятичных знаков Форматирование ячеек
8 Светлое затенение Форматирование ячеек
9 Полужирный шрифт Форматирование текста
10 Мастер диаграмм Диаграмма
Рис. 2.1.10.
Создание панели производится по следующему алгоритму.
42
Часть I Предварительные сведения
Алгоритм 2.1.5. Создание панели пользователя
1. Вид, Панели инструментов...
На экране: диалоговое окно Панели инструментов
2. Ввести имя создаваемой панели:
> Курсор в окно Имя панели инструментов.
> Ввести ИМЯ панели: Оптимизация.
3. Создать.
На экране: в левом верхнем углу созданная панель в виде маленького квадратика; диалоговое окно Настройка панелей инструментов.
4. В окне Категории выделить категорию (рис. 2.1.10), в которой находятся нужные кнопки, вводимые на новую панель.
5. Переместить необходимые кнопки на создаваемую панель, как это указано в алг. 2.1.4, п. 9.
6. Повторить п. 4, 5 для всех необходимых категорий.
7. Закрыть.
На экране: созданная панель Оптимизация (рис. 2.1.11).
Рис. 2.1.11
Глава 2 Типовые работы при оптимизации 43
После того как панель создана, с ней можно выполнять все необходимые действия.
При необходимости созданную панель можно удалить.
Алгоритм 2.1.6. Удаление созданной панели
1. Вид, Панели инструментов...
2. В окне Список панелей инструментов выделить удаляемую панель; М1.
3. Удалить
На экране: диалоговое окно с вопросом об удалении выделенной панели.
4. ОК.
На экране: панель удалена.
В заключение подчеркнем следующее.
Перемещение кнопок возможно только в том случае, когда на экране находится диалоговое окно Настройка панелей инструментов. В остальных же случаях при нажатии на кнопку происходит выполнение команды, связанной с данной кнопкой.
2.1.3. Ввод и форматирование данных
Большинство работ, выполняемых с таблицей, включая ввод и форматирование данных, требуют, как правило, предварительного выделения ячеек. Рассмотрим, как это делается.
Алгоритм 2.1.7. Выделение ячеек
1. Ячейка, в которой находится курсор, является выделенной.
2. Выделение строк:
> Курсор на левый столбец с номерами строк.
> М1.
3. Выделение столбцов:
> Курсор на верхнюю строку с именами столбцов.
> М1.
4. Выделение блока
44
Часть I Предварительные сведения
Это наиболее общий случай выделения. Он может быть реализован двумя способами.
Первый способ:
> Курсор в угол блока.
> МН.
> Переместить мышь в противоположный угол блока.
> Отпустить кнопку мыши.
Второй способ:
> Курсор в угол блока.
> М1.
> Курсор в противоположный угол блока.
> <Shift>+M1.
По мнению автора последний способ — наиболее удобный.
5. Выделение всей таблицы:
> Курсор в прямоугольник в левом верхнем углу таблицы.
> М1.
6. Выделение нескольких блоков:
> Выделить первый блок.
> <С1г1>+курсор в угол второго блока.
> <Ctrl>+MH в противоположный угол блока.
или > Выделить первый блок.
> <Ctrl>+Kypcop в любой угол второго блока.
> М1.
> <Shift>+Kypcop в противоположный угол блока.
> М1.
7. Отмена любого выделения:
> Курсор в любое место таблицы.
> М1.
Ввод текста, как правило, производится с помощью основных алфавитов (кириллицы и латинского). Кроме этого, при решении задач оптимизации используются символы греческого алфавита. Буквы греческого алфавита вводятся с помощью шрифта Symbol клавишами с буквами латинского алфавита, приведенными на рис. 2.1.12.
Глава 2 Типовые работы при оптимизации
45
* & С в Е F 6 И 1 К V M M
1
2 Латинским Да вь Сс Dd Ее Ft Gg Hh Il KI LI M m
3 Symbol Да во Хх Д5 Ее Фф Гу Нч It й ф K« AX Мл
4
5 Латинский Nn Оо Рр Qq Rr Ss П Uu Vv Wi Xx Yy Zz
в Symbol Ыг Оо Пя 00 Рр Str Тт Yu Car IltO S£ 2C
Рис. 2.1.12
Важной характеристикой шрифта является его размер, который определяется высотой букв, измеряемой в пунктах (пт): 1 пункт = 1/72 дюйма = 0,35 мм. Наиболее удобные для чтения шрифты находятся в интервале 9—12 пт.
При решении задач оптимизации достаточно часто используются переменные с индексами, ввод которых производится следующим образом.
Алгоритм 2.1.8. Ввод нижних и верхних индексов
1. Ввести символ основного шрифта.
2. Формат, Ячейки...
3. Шрифт.
На экране: диалоговое окно Формат ячеек (ярлычок Шрифт) (рис. 2.1.13).
Формат ячеек
Число 1 Выравнивание
Шрирт | Рамка | Виа
Шрифт: __________ Начертание:_______________ Е8”1*»* ',
final Суг (обычный
Додчоркяваниа
Цвет
I Аегто
(“ Обычное начертание
| Защита
LjlJ
Отмена |
Эффекты-------
Г" Замкнутый Г* Здмний индекс Р Никний индекс
-Образец-
ЛдСЬ64Яа
Шрифт типа ТмеТура Шрифт будет использован хакдлявыводанаакранлакиддапешм.
Рис. 2.1.13
46
Часть I Предварительные сведения
4. В группе команд Эффекты назначить Нижний индекс.
5. Назначить размер 8 пт.
6. ОК.
7. Ввести нижние индексы.
8. <Enter>.
Верхние индексы вводятся аналогично.
Размер ячейки определяется шириной столбца и высотой строки. Ширина столбца равна 8,11 ширины символов шрифта. Высота строки измеряется, как и шрифт, в пунктах и определяется размером назначенного шрифта. Например, для шрифтов размера 12 пт она составляет 15 пт. Часто возникает необходимость изменить ширину столбцов, что делается следующим образом.
Алгоритм 2.1.9. Изменение ширины столбца
1. Курсор на правую границу столбца, где курсор приобретает вид вертикальной черты с двусторонними стрелками.
2. МН.
3. Переместить курсор в направлении изменения ширины столбца.
Алгоритм 2.1.10. Изменение ширины нескольких столбцов
1. Выделить изменяемые столбцы.
2. Курсор в строку имен столбцов на правую границу любого столбца.
3. МН.
4. Переместить курсор до нужной ширины столбцов.
5. Убрать выделение.
Алгоритм 2.1.11. Изменение ширины столбцов после их заполнения
1. Выделить заполненные столбцы.
Глава 2 Типовые работы при оптимизации 47
2. Курсор в строку имен столбцов на границу между любыми столбцами.
3. М2.
На экране: каждый столбец принял ширину, определяемую максимальным количеством символов в ячейках этого столбца.
4. Убрать выделение.
Перейдем теперь к вводу формул. Ввод формул начинается со знака =. Буквы, вводимые в формулы, могут быть как строчными, так и прописными. Достаточно часто аргументом вводимых формул являются адреса ячеек. При правильном вводе Excel представляет все буквы как прописные, что является наглядным контролем правильности ввода.
При вводе формул на экране может отображаться либо результат вычисления по формуле, либо сама формула. Для вывода формул на экран необходимо выполнить следующий алгоритм.
Алгоритм 2.1.12. Представление формул на экране
1. Сервис, Параметры...
На экране: диалоговое окно Параметры (ярлычок Вид).
2. В поле Параметры окна выбрать Формулы.
3. ОК.
2.1.4. Основные задачи копирования и переноса
Применение копирования существенно ускоряет ввод условий задачи при поиске оптимальных решений. В Excel имеется достаточно много различных процедур копирования. Рассмотрим те из них, которые наиболее часто применяются при решении задач оптимизации.
Алгоритм 2.1.13. Копирование с помощью панели инструментов
1. Выделить копируемый объект.
2. Курсор на кнопку Копировать в буфер.
48
Часть I Предварительные сведения
3. М1.
На экране: выделенный объект в двойной подвижной рамке.
4. Курсор в левый верхний угол нового положения копируемого объекта.
5. М1.
6. Курсор на кнопку Вставить из буфера.
7. М1.
На экране: скопированный объект.
8. Убрать выделение.
9. Убрать пунктир в источнике копирования: <Esc>.
Алгоритм 2.1.14. Копирование с помощью мыши
1. Выделить объект копирования.
2. Курсор подвести к границе объекта.
На экране: стрелка курсора.
3. Нажать <Ctrl> и удерживать.
На экране: к стрелке курсора добавляется знак плюс в окружности.
4. МН.
5. Удерживая <Ctrl>, переместить объект копирования в нужное место.
6. Отпустить кнопку мыши.
На экране: скопированный объект в новом месте.
7. Отпустить <Ctrl>.
8. Убрать выделение.
Алгоритм 2.1.15. Копирование протаскиванием
Этот алгоритм применяется для копирования одной ячейки, содержащей текст и число (например, N5). В результате протаскивания вправо или вниз в каждой новой ячейке число увеличивается на 1 (N6, N7, ...), а при протаскивании влево или вверх число уменьшается на 1 (N4, N3, ...).
1. Выделить ячейку копирования.
2. Курсор в правый нижний угол выделенной ячейки.
Глава 2. Типовые работы при оптимизации
49
На экране: курсор приобретает вид черного перекрестия.
3. МН.
4. Переместить курсор в ячейку копирования.
5. Отпустить кнопку мыши.
На экране: скопированные ячейки с измененными числами.
Алгоритм 2.1.16. Копирование с сохранением адресов
При решении задач оптимизации достаточно часто используются функции, аргументами которых являются адреса ячеек. При копировании ячеек, содержащих адреса, следует иметь в виду следующее. Пусть в ячейке В1 находится формула:
Bl = А1+5.
Если эту ячейку скопировать в ячейку, скажем, С2, то в С2 увидим:
С2 = В2+5.
Такое изменение адреса при копировании называется автоматической настройкой на новый адрес.
В том случае, если адрес ячейки при копировании должен быть сохранен без изменения, необходимо ввести символ $ в адрес, находящийся в копируемой ячейке, с учетом следующих правил:
□ при вводе $В1 в результате копирования сохраняется имя столбца;
□ при вводе В$1 в результате копирования сохраняется номер строки;
□ при вводе $В$1 в результате копирования сохраняется и то и другое.
Рассмотрим далее задачи переноса, которые от копирования отличаются тем, что переносимый объект в источнике не сохраняется.
Алгоритм 2.1.17. Задачи переноса
Для выполнения переноса следует применять приведенные выше алгоритмы копирования с отличиями, показанными на рис. 2.1.14.
50
Часть I. Предварительные сведения
Алгоритм Копирование Перенос
алг. 2.1.13 алг. 2.1.14 п. 2 Копировать в буфер п. 3 Нажать <Ctrl> п. 2 Удалить в буфер п. 3 <Ctrl> не нажимать
Рис. 2.1.14
2.1.5. Некоторые дополнительные процедуры
К числу дополнительных процедур, которые могут быть полезны при решении задач оптимизации, относятся:
□ применение защиты файлов;
□ ввод комментариев.
Защита файлов
В Excel предусмотрено два независимых вида защиты файлов: от доступа к файлу и от внесения изменений в файл.
Работы, связанные с защитой от доступа к файлу, состоят из трех задач:
□ назначение защиты файла от доступа к нему;
□ вызов защищенного файла;
□ снятие защиты от доступа к файлу.
Эти задачи решаются с помощью следующих алгоритмов.
Алгоритм 2.1.18. Назначение защиты файла
от доступа к нему
1. Вызвать на экран файл.
2. Файл, Сохранить как...
На экране: диалоговое окно Сохранение документа.
3. Ввести присваиваемое файлу имя (не пароль!) (при этом не вводить команду Сохранить).
4. Параметры...
На экране: диалоговое окно Параметры сохранения.
5. В окне Пароль для открытия файла ввести пароль — сочетание
латинских букв, цифр и специальных символов (!, ? и т. д.) дли
Глава 2. Типовые работы при оптимизации 57
ной не более 15 символов. Следует иметь в виду, что строчные и прописные буквы — это разные символы!
На экране: при вводе пароля в окне появляются звездочки по числу введенных символов.
6. ОК.
На экране: диалоговое окно Подтверждение пароля.
7. Ввести пароль еще раз.
8. ОК.
На экране: диалоговое окно Сохранение документа.
9. Сохранить.
10. Убрать файл с экрана.
Алгоритм 2.1.19. Вызов защищенного файла
1. Файл, Открыть...
На экране: диалоговое окно Открытие документа.
2. Вызвать папку, в которой находится файл.
3. Ввести имя файла.
4. Открыть.
На экране: диалоговое окно Пароль.
5. Ввести пароль.
6. ОК.
На экране: защищенный файл.
Алгоритм 2.1.20. Снятие защиты от доступа к файлу
1. Вызвать защищенный файл на экран (алг. 2.1.19).
2. Файл, Сохранить как...
На экране: диалоговое окно Сохранение документа.
3. Параметры...
На экране: диалоговое окно Параметры сохранения.
4. <Delete>.
5. ОК.
На экране: диалоговое окно Сохранение документа.
6. Сохранить.
На экране: вопрос Заменить существующее имя файла?
52
Часть I Предварительные сведения
7. Да.
На экране: файл, освобожденный от защиты.
Перейдем теперь к защите файла от внесения изменений.
Алгоритм 2.1.21. Защита от внесения изменений
1. Создать файл.
2. Сервис, Защита.
На экране: боковое подменю.
3. Выбрать нужную команду, например, Защитить лист...
На экране: диалоговое окно Защитить лист.
4. Ввести пароль.
5. Установить флажок Содержимое.
6. ОК.
7. Ввести пароль еще раз.
8. ОК.
На экране: лист, защищенный от внесения изменений.
Алгоритм 2.1.22. Снятие защиты от внесения изменений
1. Вызвать файл.
2. Сервис, Защита.
На экране: боковое подменю.
3. Снять защиту листа...
4. Ввести пароль.
5. ОК.
На экране: лист, открытый для ввода изменений.
Комментарии
Красивым и эффективным средством работы с электронной таблицей, существенно повышающим ее наглядность, является ввод комментариев, которые могут быть двух видов: текстовые и звуковые.
Глава 2 Типовые работы при оптимизации
53
Алгоритм 2.1.23. Ввод текстового комментария
1. Курсор в ячейку, в которую следует ввести комментарий.
2. Вставка, Примечание...
На экране: диалоговое окно Примечания к ячейкам.
3. В окно Текстовое примечание ввести необходимый текст.
4. ОК.
На экране: в правом верхнем углу ячейки маленький квадратик — признак наличия комментария.
Алгоритм 2.1.24. Чтение комментария
1. Курсор в ячейку, имеющую признак наличия комментария.
На экране: текст введенного комментария.
2. Вставка, Примечание...
На экране: диалоговое окно Примечания к ячейкам.
В окне Текстовое примечание показан текст комментария в данной ячейке, который можно редактировать.
Алгоритм 2.1.25. Удаление комментария
1. Курсор в ячейку, имеющую признак наличия комментария.
2. Вставка, Примечание...
На экране: диалоговое окно Примечания к ячейкам. В окне Текстовое примечание показан текст комментария в данной ячейке.
3. Удалить.
На экране: диалоговое окно Microsoft Excel с текстом Примечание будет удалено.
4. ОК.
5. ОК.
На экране: удален признак наличия комментария в ячейке.
Рассмотрим теперь применение звукового комментария.
54
Часть I. Предварительные сведения
Алгоритм 2.1.26. Ввод звукового комментария
1. Курсор в ячейку, в которую следует ввести звуковой комментарий.
2. Вставка, Примечание...
На экране: диалоговое окно Примечания к ячейкам.
3. Запись...
На экране: диалоговое окно Звуковое примечание.
4. Курсор на кнопку Запись.
5. М1.
6. В микрофон произнести слова, предназначенные для записи.
7. Курсор на кнопку Стоп.
8. ОК.
9. ОК.
На экране: в правом верхнем углу ячейки маленький квадратик — признак наличия звукового комментария.
Алгоритм 2.1.27. Работа со звуковым комментарием
1. Курсор в ячейку, имеющую признак звукового комментария. Будет воспроизведен звуковой комментарий. Кроме того, возможно выполнение следующих команд.
2. Вставка, Примечание...
На экране: диалоговое окно Примечания к ячейкам.
3. Ввести нужную команду Воспроизведение или Стереть.
4. ОК.
Надеемся, что применение комментариев поможет пользователю сделать работу с таблицей, включая оформление результатов полученного оптимального решения, достаточно наглядной и эффектной.
Глава 2. Типовые работы при оптимизации
55
2.2. Построение диаграмм
2.2.1. Основные положения
Полученное оптимальное решение целесообразно представлять в наглядном виде, для чего могут быть применены графические объекты, классификация которых приведена на рис. 2.2.1.
Рис. 2.2.1
В этой классификации используются следующие понятия: Встроенные объекты являются частью электронной таблицы и не могут быть изменены.
В выделенных объектах можно производить самые разнообразные изменения их вида и размеров, которые называются форматированием.
Переход от встроенных объектов к выделенным и обратно производится так, как показано на рис. 2.2.2.
56
Часть I Предварительные сведения
Рис. 2.2.2
2.2.2. Создание встроенных диаграмм
Для создания встроенной диаграммы будем пользоваться данными таблицы, приведенной на рис. 2 2 3
Рис. 2.2.3
Глава 2 Типовые работы при оптимизации
57
Алгоритм 2.2.1. Построение встроенной диаграммы
1. Выделить СЗ F5, т. е. те ячейки, значения которых должны быть представлены на диаграмме
2. Курсор на кнопку Мастер диаграмм.
3. М1
На экране: перекрестие с символом диаграммы.
4. Курсор в угол области, выделяемой для размещения диаграммы.
МН протащить для создания области, в которой будет построена диаграмма
На экране: диалоговое окно Мастер диаграмм — шаг 1
5. Далее.
На экране диалоговое окно Мастер диаграмм — шаг 2
В этом диалоговом окне, приведенном на рис. 2 2 4, показаны типы диаграмм, которые могут быть созданы
Мастер диаграмм - шаг 2 из 5
Выберите тал диаграмма
Линейчатая
Лепестковая
Г истограмма
Отмена | <Цазаа || Далее >| £отоео |
Рис. 2.2.4
Величины, по которым строятся диаграммы, бывают двух видов непрерывные и дискретные Для наглядного представления каждого вида величин целесообразно применять опреде
58
Часть I Предварительные сведения
ленные типы диаграмм. Соответствующие рекомендации приведены на рис. 2.2.5.
Величины Двухмерные диаграммы Трехмерные диаграммы
Дискретные Г истограммы Г истограммы
Непрерывные Графики Поверхности
Смешанные Смешанные Г рафики
Одна величина Круговые Круговые
Рис. 2.2.5
6. Курсор на выбранный тип диаграмм; в нашем случае — гистограммы.
7. Далее.
На экране: диалоговое окно Мастер диаграмм — шаг 3. На этом шаге (рис. 2.2.6) назначается формат выбранного типа диаграмм.
Отмене |
Рис. 2.2.6
8. Выбираем формат 2.
9. Далее.
На экране: диалоговое окно Мастер диаграмм — шаг 4. На этом шаге назначается вариант представления рядов данных Результаты назначений различных вариантов показаны на
Глава 2 Типовые работы при оптимизации 59
рис. 2.2 3. Кроме того, назначается число строк и столбцов, данные в которых являются метками по осям. Вид диаграммы при принятых назначениях отображается на экране в диалоговом окне.
10. Далее.
На экране: диалоговое окно Мастер диаграмм — шаг 5. На этом шаге можно ввести легенду, а также названия диаграммы и осей. Вводимый текст виден на экране.
11. Готово.
На экране: встроенная диаграмма с маркерами, показанная на рис. 2.2.3.
Ознакомившись с алгоритмом создания встроенной диаграммы на иллюстративном примере, перейдем к построению диаграммы по результатам решения задачи оптимизации.
В результате решения задачи оптимизации, которая рассматривается в, главе 3, получены данные, приведенные на рис 2.2.7.
С I D I Е I F I 6
2 4 5 Рездльтат решения задачи оптимизации имя прод1 прод2 продЗ прод4 значение 10 0 6 0
Встроенная диаграмма, созданная по этим данным, приведена на рис. 2.2.8.
Рис. 2.2.8
60
Часть I Предварительные сведения
Полученные встроенные диаграммы, как мы уже отмечали, бывают двух видов:
□ без маркеров;
□ с маркерами.
Диаграммы без маркеров являются неизменяемой частью электронной таблицы.
В результате построения диаграмм на экран выводятся диаграммы с маркерами, с которыми можно производить следующие действия:
□ изменение размеров диаграммы;
□ перемещение диаграммы по экрану;
□ копирование диаграммы;
□ корректировку исходных табличных данных, по которым строилась диаграмма.
Рассмотрим, как выполняются эти действия.
Алгоритм 2.2.2. Действия со встроенной диаграммой с маркерами
1. Изменение размеров диаграммы:
> Курсор на маркер.
На экране: стрелки, показывающие направление изменения размеров диаграммы.
> МН.
> Перемещением курсора изменить размеры диаграммы.
2. Перемещение диаграммы:
Первый способ — перемещение с помощью мыши:
> Курсор в поле диаграммы.
> МН.
> Переместить поле диаграммы на новое место.
Второй способ — перемещение с помощью кнопок:
> Курсор в поле диаграммы.
> М1.
> Курсор на кнопку Удалить в буфер, М1.
Глава 2 Типовые работы при оптимизации 61
> Курсор в левый верхний угол нового места расположения диаграммы, М1.
> Курсор на кнопку Вставить из буфера.
> М1.
3. Копирование диаграммы:
Первый способ — копирование с помощью мыши:
> Курсор в поле диаграммы.
> <Ctrl>+MH.
> Переместить поле на место размещения копии.
Второй способ — копирование с помощью кнопок:
> Курсор в поле диаграммы.
> М1.
> Курсор на кнопку Копировать в буфер, М1.
> Курсор в левый верхний угол места расположения копии, М1.
> Курсор на кнопку Вставить из буфера.
> М1.
4. Корректировка исходных данных:
> Курсор в корректируемую ячейку таблицы исходных данных.
> Ввести новые данные.
> <Enter>.
На экране: изменение значения в таблице вызывает изменение размеров на построенной диаграмме.
2.2.3. Работа с выделенными диаграммами
В результате выполнения алг. 2 2.1 на экране появляется встроенная диаграмма. Переход от встроенной диаграммы к выделенной и обратно показан на рис. 2.2.2.
При вызове на экран выделенной диаграммы изменяется содержание главных меню Вставка и Формат, в которых появляются команды, необходимые для работы с выделенными диаграммами.
62
Часть I. Предварительные сведения
С выделенными диаграммами можно выполнять следующие действия:
□ перемещать;
□ изменять их размер;
□ изменять форму представления всех элементов диаграммы.
Рассмотрим, как это делается.
Алгоритм 2.2.3. Работа с выделенной диаграммой
1. Перемещение диаграммы:
> Курсор на рамку диаграммы.
> МН.
> Переместить диаграмму в нужное место экрана.
2. Изменение размеров диаграммы:
> Курсор на маркер диаграммы.
На экране: стрелка, которая показывает направление изменения размера диаграммы.
> МН.
> Изменить размеры диаграммы.
Наибольший интерес представляет изменение вида диаграммы, т. е. форматирование. При форматировании диаграммы могут быть изменены все ее элементы:
о оси координат;
□ ряды данных (столбцы, графики);
□ область построения диаграммы;
□ поле всей диаграммы.
Начнем с форматирования гистограммы, показанной на рис. 2.2.8. При этом целью форматирования будет:
□ удаление рамки и фона в области построения диаграммы;
□ ввод меток, показывающих значения величин, представленных на гистограмме.
Эти работы будем выполнять по следующему алгоритму.
' Глава 2. Типовые работы при оптимизации 63
Алгоритм 2.2.4. Форматирование гистограммы
1. От встроенной гистограммы (рис. 2.2.8) перейти к выделенной, как это показано на рис. 2.2.2.
> Удалим рамку и фон.
> Курсор на область построения диаграммы.
> М2.
2. М2.
На экране: Форматирование области построения.
3. Ввести:
> Рамка: невидимая.
> Заливка: цвет Белый.
4. ОК.
5. Курсор вне выделенной области.
6. М1.
На экране: рамка и фон, которые были в области создания встроенной диаграммы, удалены.
Перейдем теперь к вводу меток.
7. Курсор на любой столбец.
8. М1.
На экране: на столбцах появились маркеры.
9. Вставка, Метки значений...
10. Значения элементов ряда.
11. ОК.
12. Курсор на кнопку Полужирный.
13. М1.
14. Курсор в поле диаграммы.
15. Убрать выделение меток: М1.
16. Курсор вне диаграммы.
17. М1.
На экране: отформатированная диаграмма (рис. 2.2.9).
64
Часть / Предварительные сведения
После рассмотрения этого конкретного примера форматирования построенной гистограммы перейдем к общему алгоритму форматирования элементов диаграммы.
Алгоритм 2.2.5. Общий алгоритм форматирования элементов диаграммы
1. Курсор на форматируемый элемент.
2. М1.
На экране: форматируемый элемент выделен маркерами.
3. Курсор на элемент с маркерами.
4. М2.
На экране: диалоговое окно Форматирование выделенного элемента.
При этом диалоговое окно для каждого вида элементов свое: при форматировании ряда данных диалоговое окно имеет 6 ярлычков; при форматировании оси — 5 ярлычков и т. д. В каждом ярлычке предусмотрен ввод различных команд для форматирования выделенного элемента. Очевидно, что такие диалоговые окна дают широкие возможности форматирования диаграмм.
5. В диалоговом окне вызвать нужный ярлычок.
6. В ярлычке ввести нужные команды.
7. Перейти к следующему ярлычку, в котором также ввести требуемые команды и т. д.
Глава 2 Типовые работы при оптимизации
65
8. ОК.
На экране: диаграмма с выполненным форматированием.
Пользуясь приведенным алгоритмом, можно выполнять самое различное форматирование диаграмм.
В заключение этого раздела рассмотрим еще один алгоритм форматирования, который применим для корректировки исходных данных при построении диаграмм.
Поясним сказанное на примере построения графика по исходным данным, приведенным на рис. 2.2.10.
Алгоритм 2.2.6. Изменение значений
элемента ряда данных
1. По данным, представленным на рис. 2.2.10 в ячейках B2:G3, построить по алг. 2.2 1 смешанную диаграмму, вид которой после форматирования приведен на том же рисунке в блоке B5:G16.
2. Скопировать B2:G3 в I2.N3 (рис. 2.2.11).
3. Для блока I2:N3 построить аналогичный график в ячейках I5-.N16.
4. Далее необходимо выделить график, построенный в п. 3. Для этого:
3 Зак 115
66
Часть / Предварительные сведения
5. Курсор на линию графика.
6. М2.
На экране: во всех точках графика — маркеры.
7. Курсор на маркер для точки t = 4.
8. М1.
На экране: курсор на маркере приобрел вид двусторонней стрелки.
9. МН и перемещать маркер.
На экране: при перемещении маркера изменяется положение графика, при этом вверху электронной таблицы в строке ввода отображаются измененные значения х.
10. При достижении нужного вида графика отпустить кнопку мыши.
На экране: откорректированный график; в таблице в ячейке М3 новое значение величины х (рис. 2.2.11), измененное в соответствии с откорректированным графиком.
Рис. 2.2.11
Аналогично выполняются работы по корректировке размеров столбцов гистограммы.
Приведенный алгоритм достаточно удобен при анализе и корректировке исходных табличных данных, по которым строятся диаграммы.
Глава 2 Типовые работы при оптимизации
67
2.2.4. Построение диаграмм с рисунками
Весьма наглядным является представление результатов оптимального решения в виде диаграмм с рисунками, которые могут быть как готовые, так и создаваемые пользователем.
Начнем с готовых рисунков.
Алгоритм 2.2.7. Просмотр и вызов готовых рисунков
1. Вызвать Excel.
2. Курсор в то место электронной таблицы, где должен быть расположен вызываемый рисунок.
3. Вставка, Рисунок...
На экране: диалоговое окно Вставка рисунка.
4. В окно Папка ввести: C:\MSOffice\Clipart.
На экране: в окне Имя — имена файлов рисунков; представление рисунков в диалоговом окне.
5. Выбрать нужный рисунок. Для примера — курсор на Hardware.
6. ОК.
На экране: в месте курсора выбранный встроенный рисунок с маркерами (рис. 2.2.12).
Со встроенным рисунком с маркерами можно делать те же процедуры, что и со встроенной диаграммой с маркерами:
□ копировать;
□ перемещать;
□ изменять размеры;
□ убирать маркеры.
Алгоритм 2.2.8. Построение диаграммы с готовыми рисунками
1. Скопировать отформатированную диаграмму (рис. 2.2.9) на новый лист.
6S
Часть I Предварительные сведения
2. На этот же лист скопировать вставляемый по алг. 2.2.7 рисунок (рис. 2 2.12). (Вызов рисунка на тот же лист удобен, но необязателен )
3. Выбранный рисунок копируем с помощью кнопки Копировать в буфер
4. Выделить диаграмму.
5. На выделенной диаграмме выделить столбцы.
6. Кнопка Вставить из буфера.
На экране’ диаграмма с рисунками (рис. 2.2.13).
iff
прод! прод2 продЗ продЛ
Рис. 2.2.13
7. Выделить диаграмму.
8. Курсор на любой столбец с рисунком.
9. М2.
На экране: диалоговое окно Форматирование ряда данных (рис. 2.2 14).
10. Установить переключатель Масштабированный ряд рисунков, Единиц измерения 2.
11. ОК.
На экране: рис. 2.2.15 с масштабированными рисунками.
Перейдем теперь к построению диаграмм с рисунками пользователя. Пользователь может создать рисунок в любом графическом приложении Windows.
Наиболее простым является создание рисунков в Excel с помощью панели инструментов Рисование
Глава 2 Типовые работы при оптимизации
69
Рис. 2.2.15
Алгоритм 2.2.9. Построение диаграммы с рисунками пользователя
1. Вызвать Excel
2. Панель Рисование.
3. Построить рисунок строим эллипс
70
Часть I Предварительные сведения
4. Курсор на рисунок.
5. М2.
На экране: диалоговое окно Форматирование объекта.
6. Назначить желаемый цвет.
7. ОК.
На экране: построенный рисунок, выделенный маркерами.
8. Перейти к алг. 2.2.8 и выполнить пункты от п. 4 и до конца алгоритма.
На экране: рис. 2.2.16.
Рис. 2.2.16
Приведенные алгоритмы дают возможность достаточно наглядно представить табличные данные, что было убедительно показано на диаграммах, построенных по результатам оптимального решения.
2.3. Работа с базами данных
2.3.1. Основные положения
С электронными таблицами Excel можно выполнять целый ряд действий, характерных для работ с базами данных (БД). При выполнении этих действий столбцы таблицы будем называть, как это принято в БД, полями, а строки — записями.
Основные работы, выполняемые с БД, следующие:
□ сортировка;
Глава 2 Типовые работы при оптимизации
71
□ поиск записей по принятому критерию;
□ действия с записями, удовлетворяющими принятому критерию.
Начнем с сортировки, под которой понимают упорядочение записей по возрастанию или по убыванию принятого признака в назначенном столбце. Процесс выполнения сортировки покажем на примере упорядочения результатов оптимального распределения ресурсов во времени, которые получены в главе 8 и приведены там же на рис. 8.4.3 (в данной главе рис. 2.3.1).
Алгоритм 2.3.1. Сортировка элементов столбцов
1. Вызвать на экран БД, приведенную на рис. 2.3.1, для выполнения сортировки.
в с в Е F G И .. .1 4
4
V Работы Стоимость нам оконч ожидание дпительн резерв критич пить Исполнитель
« Работа 1 100 0109 96 03 09 96 о' 2 0 Критич путь Орлов
т Работа 2 400 03 09 96 08 0996 2 5 0 Критич путь Сидоров
» Работа 3 300 03 09 96 08 0996 2 5 0 Критич путь Кротов
9 Работа 4 450 03.09 96 06 09 96 2 4 1 Есть резерв Фролов
ю Работа 5 180 08.09 96 17 09 96 7 9 0 Критич путь Орлов
Рис. 2.3.1
2. Курсор в любую ячейку БД.
3. Данные, Сортировка...
На экране: диалоговое окно Сортировка диапазона (рис. 2.3.2).
4. Ввести имена полей и направление сортировки, которые отображаются в диалоговом окне.
5. ОК.
На экране: результат сортировки (рис. 2.3.3).
72
Часть I Предварительные сведения
Сортировка диапазона
---- —А А‘|
{стоимость ~~ПИ! ^ повозрастг8#<ю |
<* то «фланце j .Шмен»,, |
гЗагемпо——-—— ~“~“т ' .
П0В23РЗСТЗНИЮ JteS&U
Г па убыванию |
-g, последнюю очередь, по————:— --—;
| ~Т| & пвво&астанию |
то убиранию ;
г ИдентиФицировэть поля по—-———--<• Подписям (первая строка диапазона) {С Обозначениям столбцов листа
Рис. 2.3.2
_ В С О Е F G Н 1 . л 1
2
3 Работы Стоимость нач оконч ожидание длительн резерв критич путь Исполнитель
♦ Работа 1 100 0109 96 03 09 96 0 2 0 Критич путь Орлов
5 Работа 5 180 03 09 96 12 09 96 2 9 0 Критич путь Орлов
• Работа 3 300 03 09 96 08 09 96 2 5 0 Критич путь Кротов
7 Работа 2 400 03 09 96 08 03 96 2 5 0 Критич путь Сидоров
8 Работа 4 450 03 09 96 06 09 96 2 4 1 Есть резерв Фролов
Рис. 2.3.3
Алгоритм 2.3.2. Сортировка элементов строк
1. Вызвать БД для сортировки строк (рис. 2.3.4).
Товар мука СОЛЬ нясо Kpina
КОЛ-ВО 100 50 250 150
цена 20 10 30 25
Рис. 2.3.4
2. Выделить сортируемую часть БД: ячейки C2:F4.
3. Данные, Сортировка...
4. Параметры...
5. Сортировать: столбцы (!) диапазона
6. ОК.
Глава 2 Типовые работы при оптимизации
73
7. Ввести:
> номер строки электронной таблицы Excel (а не порядковый номер строки в БД);
> направление сортировки.
Товар соль м|ка Kpjna МЯСО
КОЛ-ВО 50 100 150 250
цена 10 20 25 30
Рис. 2.3.5
8.
ОК.
На экране: результат сортировки (рис. 2.3.5).
Алгоритм 2.3.3. Сортировка с помощью кнопок панели инструментов
С помощью кнопок можно выполнить сортировку по элементам только одного столбца.
1. Курсор в ячейку столбца, по которому производится сортировка.
2. Курсор на кнопку По возрастанию или По убыванию.
3. М1.
На экране: результат сортировки.
Рассмотренный алгоритм сортировки обеспечивает упорядочение данных как по столбцам, так и по строкам. Другой важной, если не основной, задачей БД является поиск записей, удовлетворяющих назначенному критерию. Однако поиск производится только по полям, т. е. по столбцам электронной таблицы.
Если же необходимо выполнить поиск по записям, т. е. по строкам электронной таблицы, то предварительно электронную таблицу надо транспонировать, в результате чего строки таблицы станут столбцами, а столбцы — строками. И такая транспонированная таблица будет готова для выполнения требуемого поиска.
Алгоритм 2.3.4. Транспонирование базы данных
1. Вызвать на экран БД (рис 2.3.6).
2. Выделить всю БД, т. е B4.F9.
3. Правка, Копировать...
74
Часть I Предварительные сведения
В 1С 1 D i Е 1 F I B
Исходная БД дата опер 102 2 02 5 02 7 02 приход 120 100 40 320 расход 105 75 50 250 иараст приход 120 220 200 580 нараст расход 105 180 230 480 остаток 15 40 30 100 БД после транспонирования дата опер приход расход нараст приход нараст расход остаток 102 120 105 120 105 15 2 02 100 75 220 180 40 5 02 40 50 260 230 30 7 02 320 250 580 480 100
2
4
5
С
7
»
W
ЛА.
13
н
к
№
17
Рис. 2.3.6
4. Курсор в левый верхний угол места расположения транспонируемой БД, в В13.
5. Правка, Специальная вставка...
6. Транспонировать.
7. ОК.
На экране: в ячейках B13:G17 находится транспонированная БД, в которой строки исходной БД (B4:F9) стали столбцами, а столбцы — строками. При необходимости в транспонированной БД можно изменить ширину столбцов, после чего транспонированная БД будет готова к поиску нужной информации.
2.3.2. Поиск
Под поиском, который часто называют фильтрацией, будем понимать нахождение в БД таких записей, которые удовлетворяют требованиям, вводимым для полей. Эти требования называются критерием поиска (фильтрации).
В Excel предусмотрено 2 вида поиска:
□ автофильтром;
□ расширенным фильтром
Глава 2 Типовые работы при оптимизации 75
Алгоритм 2.3.5. Поиск автофильтром
1. Вызвать на экране БД (рис. 2.3.1).
2. Курсор в любую ячейку БД.
3. Данные, Фильтр, Автофильтр.
На экране: в каждом имени поля появилась стрелка.
4. Курсор на стрелку того поля, по которому хотим произвести поиск (в примере: Стоимость).
5. М1.
На экране: перечень значений всех записей в этом поле.
6. Ввести значение, по которому нужно выполнить поиск.
На экране: все записи, удовлетворяющие введенному значению.
Но это еще не все.
7. Если требуется выполнить поиск по такому значению, которого нет ни в одной записи, то необходимо:
8. Условие...
На экране: диалоговое окно Пользовательский автофильтр.
9. Ввести необходимый критерий поиска.
В качестве примера выберем критерий:
200 < Стоимость < 400 (рис. 2.3.7).
10. ОК.
Рис. 2.3.7
76
Часть I Предварительные сведения
На экране: результат поиска (рис. 2.3.8).
. в с О Е F. . в... 1 J ...........4..1
*
S Рабой » СТОИМО"V нач «г* ОКОН < эжцда v длител «г резе v критич ПК + Исполнит*»
7 Работа 2 400 03 09 96 08 09 96 2 5 0 Критич путь Сидоров
8 Работа 3 300 0309 96 08 09 96 2 5 0 Критич путь Кротов
Рис. 2.3.8
Такой поиск можно последовательно выполнять по нескольким полям.
Алгоритм 2.3.6. Восстановление исходной базы данных
1. Данные, Фильтр, Показать все.
На экране: БД со стрелками.
2. Данные, Фильтр, Автофильтр.
На экране: исходная БД.
Кроме рассмотренного поиска Автофилыпром в Excel есть режим поиска Расширенным фильтром, который позволяет производить следующие действия:
□ одновременный поиск по нескольким полям,
□ поиск по вычисляемому критерию.
Ввод условий при формировании критерия поиска производится по правилам, показанным на рис. 2.3.9.
Рис. 2.3.9
Глава 2 Типовые работы при оптимизации
77
Алгоритм 2.3.7. Поиск расширенным фильтром
1. Вызвать БД (рис. 2.3.1) в ячейки B3;J8 (рис. 2.3.10).
В ) С I О I Е I F 1 е I И L « I J I Исходная БД
Работы
Стоимосп нам
100 400 300
450 180
010986 03 0996 03 09 96 03 09 96 08 09 96
оконч ожндание|длитвльн
0309 96 080996 08 09 96 06 09 96 17 09 96
О 2
2 5
2 5
2 4
7 9
резерв критич путь
Критич путь Критич путь Критич путь Есть резерв Критич путь
Исполнитель
Орлов Сидоров Кротов Фролов Орлов
Критерии
Стоимость длительн
<2 13 W
« 77 18
И г»
> = 300
>--5
Результат поиска
Работы Стоимосп
оконч |ожцдание|длительн
Работа 2
Работа 3
Работа 4
Работа 5
400
300
450
180
03 09 96
03 09 96
03 09 96
08 0996
08 0996
08 09 96
06 09 96
17 09 96
2 5
2 5
2 4
7 9
резерв 0 0
1
0
критич путь Критич путь Критич путь Есть резерв Критич путь
Исполнитель
Сидоров Кротов Фролов Орлов
Рис. 2.3.10
2. Сформировать критерий поиска.
3. Определить координаты ячеек, в которых сформирован критерий (в примере; D11:Е13).
4. Определить ячейки в БД для представления результатов поиска; принимаем B16J22.
5. Курсор в любую ячейку БД.
6. Данные, Фильтр, Расширенный фильтр.
На экране; диалоговое окно Расширенный фильтр (рис. 2.3.11).
7. Ввести необходимые данные, как показано на рис 2.3.11.
8. ОК.
На экране: результат поиска в ячейках B16J20 (рис. 2.3.10).
Из результатов поиска видно, что записей, удовлетворяющих критерию, оказалось меньше, чем было для них выделено ячеек
78
Часть I Предварительные сведения
Рис. 2.3.11
Кроме критериев, рассмотренных выше, можно производить поиск еще по одному очень мощному типу критериев, который называется вычисляемым.
Вычисляемый критерий, вводимый как обычный критерий при работе с расширенным фильтром, может включать формулы, в которых аргументами являются поля БД.
Вводимые формулы могут быть двух видов:
□ формулы, составленные пользователем;
□ формулы, включающие функции Excel.
Работа с вычисляемыми критериями проиллюстрирована на рис. 2.3.12:
о в С4:К9 введена исходная база данных;
□ в F12 — имя вычисляемого критерия при вычислении формулы. (Это имя может быть любым, но не должно повторять имени поля в исходной БД.)
□ в F13 — введена формула, являющаяся критерием поиска.
Как видно из формулы (рис. 2.3.12), в нее вводятся зависимости для первой строки БД, содержащие конкретные значения. При этом, если вводимые условия для первой строки справедливы, в ячейке ввода F13 появляется ИСТИНА, в противном случае — ЛОЖЬ.
Глава 2 Типовые работы при оптимизации
79
4‘:
5 Л ?
8 3 н> It И П 1* 16 16 Я
Работы
Работа 1
Работа 2
Работа 3
Работа 4
Работа 5
Стоимосп
100 400
300
450 180
нач
0109 96 03 0996 03 09 96 03 09 96 08 09 96
оконч
03 09 96 08 09 96 08 09 96
0609 96 1709 96
ожидание длительн
О 2
2 2
7
резерв о-1 о о
Критерий ent
ЛОЖЬ в F13 введено = D5i'H5> 100
Результат поиска
критич путь|| Критич путь Критич путь Критич путь Есть резерв Критич путь
Исполнитель
Орлов Сидоров Кротов Фролов Орлов
Работы |Стоимосп! нам | оконч |ожидание|длительн|резерв|критичпуть|Исполнитель ] 1 [есть резерв] Фролов
Работа 41 450 | 03 09 9б| 0609 9б|
2
5
5
9
О
Ю 20 21
Критерий Крит
Сегодня=1010 96 ЛОЖЬ вР21введено=СЕГОДНЯ()<Г5
Результат поиска
М 25 26
Работы
Работа 4
Работа 5
Стоимосп
450
180
нач
151096
1610 96
оконн |ожидание|длительн | резерв! критич путь| Исполнитель
181096
2510 96
Есть резерв Фролов Критич путь
Орлов
Рис. 2.3.12
Поиск проводится по описанному выше алг. 2.3.7. Результаты поиска приведены в ячейках С16:К17. Далее в ячейках производится поиск по вычисляемому критерию, включающему функцию Excel. В качестве примера функции Excel принята функция СЕГОДНЯ( ), которая использует системную дату.
В F21 введено значение критерия, с помощью которого находятся работы, оканчивающиеся после сегодняшнего дня. Заметим, что текст в ячейки D21:E21 введен только для иллюстрации и к производимому поиску отношения не имеет.
Совершенно очевидно, что поиск по такому критерию имеет исключительно важное значение на практике при контроле за ходом выполнения планируемых работ
Автор надеется, что приведенные примеры показали, что поиск является мощным средством анализа информации имеющейся базы данных.
80
Часть I Предварительные сведения
2.3.3. Функции базы данных
Как мы выяснили, при поиске расширенным фильтром находятся записи, удовлетворяющие введенному критерию, причем, как и в исходной БД, в полученных записях ряд полей содержит числа. В Excel есть возможность сразу же в процессе поиска производить действия над этими числами. Для этого используются функции базы данных, которые обеспечивают с записями, удовлетворяющими введенному критерию, следующие основные действия:
□ арифметические, включающие сложение и умножение величин, находящихся в ячейках отфильтрованных записей;
□ статистический анализ величин, находящихся в ячейках отфильтрованных записей. При этом в ходе такого анализа определяются как минимальные, так и максимальные значения, а также средние значения и дисперсии тех величин, которые находятся в отфильтрованных записях.
Ознакомление со списком функций базы данных производится следующим образом.
Алгоритм 2.3.8. Вызов списка функций базы данных
1. Курсор на кнопку Мастер Функций.
2. М1.
3. Курсор на Работу с базой данных.
4. М1.
На экране: список функций, входящих в эту категорию.
5. Курсор на интересующую функцию.
6. М1.
На экране: внизу диалогового окна показано назначение выделенной функции.
Рассмотрим действия с некоторыми функциями базы данных.
Глава 2 Типовые работы при оптимизации
81
Алгоритм 2.3.9. Вычисления с помощью функций базы данных
1. Вызвать на экран исходную БД, определить ее координаты: С4:К9 (рис. 2.3.13).
С 1 D
К ,
2
Исходная БД
8 7
А » то и ю 13 н 15
Работы Стоимосп нам
Работа 1 100 0109 96
Работа 2 400 03 09 96
Работа 3 300 03 09 96
Работа 4 450 03 09 96
Работа 5 180 08 09 96
оконч
03 09 98
08 09 96
08 09 96
06 09 96
17 09 96
ожцданит 0 2 2 2 7
длительн
2
5
5
4
9
резерв
0 0
о
Критерии отбора ваписей для вычислений
Исполнитель
Орлов
Результат суммирования отобраншх ваписей
280
критич путь Критич путь Критич путь Критич путь Есть резерв Критич путь
Исполнитель
Орлов Сидоров Кротов Фролов Орлов
О
Рис. 2.3.13
2. Курсор в F12.
3. Ввести критерии отбора записей для вычисления назначенной функции.
Критерии вводятся по тем же правилам, что и при работе с расширенным фильтром. В качестве критерия принимаем работы, выполняемые исполнителем Орловым.
4. Определить координаты ввода критерия (для нашего случая: F12:F13).
5. Курсор в ячейку, где должен быть результат, — F15.
6. Мастер функций, Работа с базой данных, БДСУММ.
7. Далее.
На экране: диалоговое окно БДСУММ (рис. 2.3.14).
8. Ввести необходимые данные, как показано на рис. 2.3.14. При этом в окно Поле вводится имя поля, для значений, в которых выполняется назначаемое действие, в данном случае, суммирование. В нашем примере таким полем является D4 — Стоимость.
82
Часть I Предварительные сведения
Мастер Функций - шаг 2 из 2 |И £3 •
елсвми . , , , ', < ,, " '’”7’7
Суммир^ числа в поле столбца эалисей баэыданньес адов
Критерий (обязательный) tf •
Диапазон. аиержадийусловивбазы данных. 7* v.
'' , « ! '* ’ ' ' г 1 Г \ !•
бв&алгвцпа &I jc4 .<9 ^Р^угы^Хтой
лом» grt Jd4 “ ‘ |Шмммя^
критерий J&l |F12 Fl 3i ‘vjc'ww»^'
£рргям | Отмена | < Назад | Двлгу> | Дотово I
Рис. 2.3.14
9. Готово.
На экране: в ячейке F15 находится суммарная стоимость работ 280, выполняемых Орловым, т. е. F15 = 280.
Аналогично выполняются работы со всеми функциями базы данных, которые являются удобным средством анализа информации, содержащейся в БД.
2.4. Список алгоритмов
1. Алгоритм 2.1.1. Прокрутка окна с фиксацией заголовков строк и столбцов.......................37
2. Алгоритм 2.1.2. Деление окон...................38
3. Алгоритм 2.1.3. Вызов панелей на экран.........39
4. Алгоритм 2.1.4. Работа с категориями кнопок....40
5. Алгоритм 2.1.5. Создание панели пользователя...42
6. Алгоритм 2.1.6. Удаление созданной панели......43
7. Алгоритм 2.1.7. Выделение ячеек................43
8. Алгоритм 2.1.8. Ввод нижних и верхних индексов.45
9. Алгоритм 2.1.9. Изменение ширины столбца.......46
10. Алгоритм 2.1.10. Изменение ширины нескольких столбцов..........................................46
Глава 2 Типовые работы при оптимизации
83
11. Алгоритм 2.1.11. Изменение ширины столбцов после их заполнения.................................46
12. Алгоритм 2.1.12. Представление формул на экране...47
13. Алгоритм 2.1.13. Копирование с помощью панели инструментов........................................47
14. Алгоритм 2.1.14. Копирование с помощью мыши..........48
15. Алгоритм 2.1.15. Копирование протаскиванием..........48
16. Алгоритм 2.1.16. Копирование с сохранением адресов...49
17. Алгоритм 2.1.17. Задачи переноса.....................49
18. Алгоритм 2.1.18. Назначение защиты файла от доступа к нему...................................50
19. Алгоритм 2.1.19. Вызов защищенного файла.............51
20. Алгоритм 2.1.20. Снятие защиты от доступа к файлу....51
21. Алгоритм 2.1.21. Защита от внесения изменений........52
22. Алгоритм 2.1.22. Снятие защиты от внесения изменений.52
23. Алгоритм 2.1.23. Ввод текстового комментария.........53
24. Алгоритм 2.1.24. Чтение комментария..................53
25. Алгоритм 2.1.25. Удаление комментария................53
26. Алгоритм 2.1.26. Ввод звукового комментария..........54
27. Алгоритм 2.1.27. Работа со звуковым комментарием.....54
28. Алгоритм 2.2.1. Построение встроенной диаграммы......57
29. Алгоритм 2.2.2. Действия со встроенной диаграммой с маркерами.........................................60
30. Алгоритм 2.2.3. Работа с выделенной диаграммой....62
31. Алгоритм 2.2.4. Форматирование гистограммы...........63
32. Алгоритм 2.2.5. Общий алгоритм форматирования элементов диаграммы.................................64
33. Алгоритм 2.2.6. Изменение значений элемента ряда данных.........................................65
34. Алгоритм 2.2.7. Просмотр и вызов готовых рисунков.67
35. Алгоритм 2.2.8. Построение диаграммы с готовыми рисунками...........................................67
84
Часть I Предварительные сведения
36. Алгоритм 2.2.9. Построение диаграммы с рисунками пользователя........................................69
37. Алгоритм 2.3.1. Сортировка элементов столбцов.......71
38. Алгоритм 2.3.2. Сортировка элементов строк..........72
39. Алгоритм 2.3.3. Сортировка с помощью кнопок панели инструментов........................................73
40. Алгоритм 2.3.4. Транспонирование базы данных........73
41. Алгоритм 2.3.5. Поиск автофильтром..................75
42. Алгоритм 2.3.6. Восстановление исходной базы данных.76
43. Алгоритм 2.3.7. Поиск расширенным фильтром..........77
44. Алгоритм 2.3.8. Вызов списка функций базы данных....80
45. Алгоритм 2.3.9. Вычисления с помощью функций базы данных.........................................81
Часть 11
Задачи оптимизации
1 линейною программирования
4. Задачи целочисленного программирования
5, Задачи нелинейного программирования
Задачи стохастического программирования Z ^е^ал^г^еския оптимизация
87
Задачи линейного программирования
3.1. Методы решения задач
3.1.1. Постановка задачи
Задача линейного программирования, которая является частным случаем задачи оптимизации (1.1.9), записывается следующим образом:
п
F = £cjXj —> max(mm, Const) j=i
n
2а'Л - b>
J=1
dj ' dl_
i = l,m; j = l,n
(3.1.1)
Задача линейного программирования является достаточно распространенной задачей принятия оптимальных решений, особенно в экономике. Решение этой задачи рассмотрим на примере задачи распределения ресурсов. Но сначала маленькое отступление.
Чтобы смотреть телевизор, совсем не обязательно иметь представление о принципах его работы. Большинство авиапассажиров не знает, что такое подъемная сила и почему самолеты летают на больших высотах. Точно так же, чтобы принимать оптимальное решение на основе математической модели, совершенно не обязательно знать достаточно сложные алгоритмы, по которым это решение находится.
С другой стороны, когда известно, каким путем получен результат, больше уверенности в его правильности и на душе спокойнее. Поэтому любознательному читателю мы предостав
88
Часть И. Задачи оптимизации
ляем возможность познакомиться с алгоритмами решения задач линейного программирования.
Задачу линейного программирования можно решать аналитическими и графическими методами. Аналитические методы, которые представляют собой последовательность вычислений по некоторым правилам, являются основой для решения задачи на компьютере. Их единственный недостаток заключается в том, что в отличие от графических методов, они совершенно не наглядны. Графические же методы достаточно наглядны, но они пригодны лишь для решения таких задач, в которых число переменных п = 2, что дает возможность представлять задачу на плоскости. Однако, учитывая наглядность графических методов, идею решения задачи линейного программирования мы рассмотрим с их помощью.
Начнем с простых примеров.
Как известно, уравнение прямой имеет вид
aixi+a2X2=b. (3.1.2)
Построим прямую
2xi+x2=2.
Для этого запишем уравнение в виде
ХиХ2- = 1. (3.1.3)
12
При такой форме записи в знаменателе показаны отрезки, которые отсекает прямая (3.1.3) на осях координат, что показано на рис. 3.1.1.
Если от уравнения (3.1.2) перейти к неравенству
2xi+x2<2, (3.1.4)
то его можно представить графически, как это показано на рис. 3.1.2. Из приведенных рисунков видно, что если линейное уравнение с двумя неизвестными представляет собой прямую линию, то линейное неравенство — полуплоскость.
Глава 3. Задачи линейного программирования
89
На рис. 3.1.2 часть плоскости, которая не удовлетворяет неравенству и расположена выше прямой, заштрихована. Координаты всех точек, принадлежащих не заштрихованной части плоскости, имеют такие значения Xi и X2, которые удовлетворяют заданному неравенству. Эта полуплоскость является областью допустимых решений (ОДР).
Построим теперь систему неравенств:
х,+4х2<14 (а)
Зх]+4х2<18 (б) • 6х, + 2х2 < 27 (в)
(3.1.5)
Xi > 0; Х2 > О
Для удобства построения запишем ее
в форме уравнения в от-
резках:
х, х,
—-+-4<i
14 7А
(а)
(б)
(3.1.6)
X] >0;
Рис. 3.1.3
Эта система построена на рис. 3.1.3, из которого следует, что решением этой системы являются координаты всех точек, принадлежащих ОДР, т. е. многоугольнику ABCDO.
Поскольку в ОДР бесчисленное множество точек, значит, рассматриваемая система имеет бесчисленное
90
Часть II. Задачи оптимизации
множество допустимых решений.
Если мы хотим найти оптимальное решение, то должны принять целевую функцию. Допустим, мы хотим, чтобы решение было оптимальным в смысле максимизации целевой функции
F = Х]+х2 —> max. (3.1.7)
Эта зависимость на рис 3.1.4 представлена в форме уравнения прямой с угловым коэффициентом
Х2 = F - X1,
из которого видно, что tga = -1. При этом угол а = 135°, а величина F равна отрезку, отсекаемому прямой на оси координат. Если прямую перемещать параллельно самой себе в направлении, указанном стрелками, то величина F будет возрастать. Совместим теперь ОДР, изображенную на рис. 3.1.3, с линией целевой функции (3.1.7), построенной на рис. 3.1.4, как это показано на рис. 3.1.5.
Поскольку требуется найти оптимальное решение, при котором целевая функция
F = х, + х2 —»max,
т. е. стремится к максимуму, будем перемещать график целевой функции в направлении увеличения F. Очевидно, что оптимальным решением будут координаты точки С, равные xi* и Х2*. При этом F = F*.
На основании рассмотренного можно сделать исключительно важный вывод: оптимальным решением являются координаты вершины ОДР.
Глава 3. Задачи линейного программирования 91
На этом выводе базируется аналитический метод решения задач линейного программирования, который заключается в следующем:
о Найти вершины ОДР, как точки пересечения ограничений.
□ Определить последовательно значения целевой функции в вершинах.
□ Вершина, в которой целевая функция приобретает оптимальное (максимальное или минимальное) значение, является оптимальной вершиной.
□ Координаты этой вершины и являются искомыми оптимальными значениями переменных.
Эти правила, сформулированные на основании графического решения задачи на плоскости, т. е. в двухмерном пространстве, справедливы и для трехмерного. В этом случае ОДР представляет собой многогранник. Координаты каждой его вершины — это допустимые решения. Координаты той вершины, в которой целевая функция имеет максимальное (или минимальное) значение, являются оптимальным решением задачи. Для трехмерного пространства, где число переменных равно трем, это нетрудно себе представить. В практических же задачах число переменных может исчисляться десятками и даже сотнями. В этом случае никакое пространственное воображение не поможет. Что же делать? А выход один — решать задачу аналитически.
Но чтобы читатель не думал, что мы занимаемся чистой теорией, прервем ненадолго теоретические рассуждения и рассмотрим содержательную сторону типовой задачи линейного программирования .
3.1.2. Задача распределения ресурсов
Если финансы, оборудование, сырье и даже людей полагать ресурсами, то значительное число задач в экономике можно рассматривать как задачи распределения ресурсов. Достаточно часто математической моделью таких задач является задача линейного программирования.
Рассмотрим следующий пример.
Требуется определить, в каком количестве надо выпускать продукцию четырех типов Прод1, Прод2, ПродЗ, Прод4, для изго
92
Часть II. Задачи оптимизации
товления которой требуются ресурсы трех видов: трудовые, сырье, финансы. Количество ресурса каждого вида, необходимое для выпуска единицы продукции данного типа, называется нормой расхода. Нормы расхода, а также прибыль, получаемая от реализации единицы каждого типа продукции, приведены на рис. 3.1.6. Там же приведено наличие располагаемого ресурса.
Л , В ' В ' В Г' . F ' -в. ,
1 Ресурс I Прод1 Прод2 ПродЗ Прод4 знак наличие
2 Прибыль I 60 70 120 130 max —
3 Трудовые 1 1 1 1 <= 16
4 Сырье 6 5 4 3 <= 110
3 Финансы I 4 6 10 13 <= 100
Рис. 3.1.6
Составим математическую модель, для чего введем следующие обозначения:
xj — количество выпускаемой продукции j-ro типа, j = 1,4 ;
bi — количество располагаемого ресурса i-ro вида, j = 1,3 ;
au — норма расхода i-ro ресурса для выпуска единицы продукции j-ro типа;
q — прибыль, получаемая от реализации единицы продукции j-ro типа.
Теперь приступим к составлению модели.
Как видно из рис. 3.1.6, для выпуска единицы Прод1 требуется 6 единиц сырья, значит, для выпуска всей продукции Прод1 требуется 6xi единиц сырья, где xi — количество выпускаемой продукции Прод1. С учетом того, что для других видов продукции зависимости аналогичны, ограничение по сырью будет иметь вид:
6х1+5хг+4хз+3х4 < ПО.
В этом ограничении левая часть равна величине потребного ресурса, а правая показывает количество имеющегося ресурса.
Аналогично можно составить ограничения для остальных ресурсов и написать зависимость для целевой функции. Тогда математическая модель задачи будет иметь вид:
Глава 3 Задачи линейного программирования
93
F = 60xj + 70х2 +120х3 +130х4 —> max
Xj + х2 +х3 +х4 <16
бХ] + 5х2 + 4х3 + Зх4 <110
4Х| +6х2 +10х3 +1 Зх4 <100
Xj > 0; j = 17
(3.1.8)
Задачу, имеющую 4 переменных, представить на плоскости, как мы уже знаем, невозможно, поэтому познакомимся с аналитическим методом решения таких задач.
3.1.3. Основные положения симплекс-метода
Для решения рассматриваемой задачи вернемся к теории.
Идея аналитического решения таких задач заключается, как мы уже говорили, в последовательном переборе вершин, в одной из которых и находится оптимальное решение.
Для аналитического решения задач линейного программирования разработан специальный алгоритм направленного перебора вершин. Этот алгоритм обеспечивает переход от одной вершины к другой в таком направлении, при котором значение целевой функции от вершины к вершине улучшается.
В геометрии есть такое понятие "симплекс". Симплексом тела в k-мерном пространстве называют совокупность к+1 его вершин. Так, для плоскости при к = 2 симплексом будут три вершины треугольника, при к = 3 — четыре вершины четырехгранника и т. д. С учетом этого понятия аналитический метод решения задачи линейного программирования называют сим-плекс-методом. Вычисления, обеспечивающие определение значения целевой функции и переменных в одной вершине, называются итерацией.
Аналитическое решение задачи линейного программирования — дело весьма сложное, поэтому подробно описывать его не будем, а изложим лишь те его основные идеи, которые реализованы в Excel.
Решение задачи с помощью симплекс-метода будем рассматривать на примере задачи, математическая модель которой имеет вид (3.1.8).
94
Часть II Задачи оптимизации
По сравнению с системой (3.1.8) в системе (3.1.9) введены дополнительные переменные у, и выполнен переход от системы неравенств к системе уравнений. Следует подчеркнуть, что с точки зрения содержания величина у> равна величине неиспользованного ресурса.
F = 60х1 + 70х2 +120х3 +130х4 max
X] + х2 + х3 +х4 +yt =16 бХ] +5х2 +4х3 +Зх4 + у2 =110 4Х] +6х2 + 10х3 +1 Зх4 +у3 = 100
Xj > 0 ; у, > 0; i = □; j = М
Систему (3.1.9) перепишем в следующем виде:
F = 0-(-60х, -70х2 -120х3 -130х4) max
У! =16-(Х] +Х2 +Х3 +Х4+)
у2 = ПО- (6х! + 5х2 +4х3 +Зх4)
у3 = 100 - (4Х| +6х2 +10х3 +13х4)
Xj >0; у, >0; i = U; j = M
(3.1.9)
(3.1.10)
Систему (3.1.10) можно представить в виде таблицы, приведенной на рис. 3.1.7.
Д а С D 1 Ж I , F 1
л
* Величина Своб член Xi «2 Х> х4
'♦ F 0 -60 -70 120 -130
5 У< 16 1 1 1 1
6 У2 110 6 5 4 3
7 У1 100 4 6 10 13
Рис. 3.1.7
Таблица (рис. 3.1.7) называется симплекс-таблицей и является основной формой решения задачи линейного программирования. Е этой таблице все переменные делятся на свободные и базисные. Свободные переменные находятся в ячейках C3:F3, базисные — в ячейках А5:А7. Если переменная свободная, то ее значение равно нулю. На рис. 3.1.7 все основные переменные свободные, следовательно,
Глава 3 Задачи линейного программирования
95
XI = Х2 = Х3 = Х4 = 0.
Значения базисных переменных приведены в ячейках В5:В7, следовательно,
yi = 16; уз = 110; уз = 100.
Действительно, если xi = хз = хз = хд = 0, т. е. продукция не выпускается, то величина у неиспользованного ресурса будет равна всему имеющемуся ресурсу, и прибыль при этом, естественно, будет равна 0 (В4 = 0).
Как мы знаем, решения бывают допустимыми и оптимальными. Каждое решение имеет свой признак. Приведем (без доказательства, достаточно сложного) эти очень важные признаки, которые нам потребуются в дальнейшем.
Признак 1
Признак 1 определяет, является ли полученное решение допустимым. Согласно этому признаку решение является допустимым, если в столбце свободных членов В5:В7 (целевая функция не рассматривается) все величины неотрицательные.
Признак 2
Признак 2 определяет наличие оптимального решения, при этом возможны 2 варианта:
□ Признак 2а
Целевая функция имеет минимальное значение в том случае, когда все элементы в строке целевой функции C4:F4 (свободный член не рассматривается) будут отрицательными. Следовательно, на рис. 3.1.7 приведено решение при минимизации целевой функции. Действительно, если ничего не выпускать, то
Х1 = Х2 = ХЗ = Х4 = 0,
и при этом прибыль будет F = В4 = 0.
□ Признак 26
Целевая функция имеет максимальное значение в том случае, когда все элементы в строке целевой функции C4:F4 будут положительными.
96
Часть II Задачи оптимизации
Поскольку таблица на рис. 3.1.7 не удовлетворяет признаку максимизации целевой функции, что нам требуется найти в решаемой задаче, то приступим к ее решению с помощью симплекс-метода.
Как мы говорили, поиск оптимального решения заключается в переборе вершин ОДР. При этом переход от одной вершины к другой производится по достаточно сложному алгоритму симплекс-метода, который заключается в обмене переменных. Каждый переход от одной вершины к другой, который, как мы знаем, называется итерацией, состоит в том, что одна базисная переменная приравнивается к нулю, т. е. переходит в свободную, а одна свободная переменная переводится в базисную. На каждой итерации проверяют удовлетворение признаков допустимого и оптимального решений. Такая процедура продолжается до тех пор, пока не будут удовлетворены оба признака. Применительно к нашей задаче последняя симплекс-таблица, полученная после второй итерации, будет иметь вид, приведенный на рис. 3.1.8.
А . < С О < I F
3 Величина |своб член У1 х2 Уз | Х4
4 F 1320 20 10 10 20
5 х. 10 1 67 0 67 -0 17 -0 50
Г У2 26 -7 33 -0 33 0 33 0 00
? Хз I 6 -0 67 0 33 0 17 1 50
Рис. 3.1.8
Из этой таблицы видно, что в столбце свободных членов все элементы положительные, тогда по признаку 1 решение является допустимым. В строке целевой функции все элементы также положительные. Следовательно, согласно признаку 26 решение является оптимальным в смысле максимизации целевой функции. В этом случае оптимальным решением будут величины:
xi*= 10, хз*= 6 (которые являются базисными);
Х2*= Х4*= 0 (так как они свободные);
целевая функция F=1320.
Таков результат решения задачи. Но это еще не все. Симплекс-таблица является мощным средством для выполнения анализа.
Глава 3 Задачи линейного программирования
97
Посмотрим, что еще можно узнать из симплекс-таблицы. На рис. 3.1.8 видно, что свободные переменные yi = уз = 0, а базисная переменная уг = 26. Это значит, что в оптимальном плане величины неиспользованных трудовых и финансовых ресурсов равны нулю. Следовательно, эти ресурсы используются полностью. Вместе с тем, величина неиспользованных ресурсов для сырья уз = 26, значит, имеются излишки сырья. Вот какие выводы можно сделать с помощью симплекс-таблицы.
И это тоже, оказывается, еще не все. Но об этом чуть позже.
3.2. Методы анализа задач
3.2.1. Если решения нет
При решении задачи линейного программирования достаточно часто оптимального решения получить не удается. Это происходит по двум следующим причинам.
Причину 1 проиллюстрируем на следующем примере. Систему
Xj + х2 < 1
Xj>2, х2
>0
(3.2 1)
представим графически (рис. 3.2.1). На рисунке видно, что нет таких значений xi и хг, которые удовлетворяли бы системе (3.2.1). Значит, в данном примере ОДР отсутствует.
Про такую систему говорят, что ограничения несовместны. К сожалению, это очень часто встречается на практике, а не только теоретически возможный вариант. В таких случаях Excel будет выдавать сообщение Поиск не может найти подходящего решения. В общем случае несовместность может быть следствием двух причин:
□ неправильная математическая модель;
□ неправильные исходные данные.
4 Зак 115
98
Часть II. Задачи оптимизации
Способы преодоления несовместности мы рассмотрим после того, когда научимся решать задачи линейного программирования в Excel.
Причину 2 рассмотрим на следующем примере. Построим систему
Эта система показана на рис. 3.2.2, из которого видно — ОДР не ограничена сверху.
В таком случае при максимизации целевой функции
F - X] -> max
решение получено быть не может, т. к. целевая функция, как и ОДР, не ограничена сверху. Если в задаче ОДР не ограничена, то Excel будет выдавать сообщение Значения целевой ячейки не сходятся.
Неограниченность целевой функции — это следствие ошибки в математической модели. Чтобы избежать таких ошибок, надо выполнять следующие правила:
1. При максимизации целевой функции она должна быть ограничена сверху либо с помощью ограничений, либо с помощью граничных условий, при этом модель с точки зрения содержания должна иметь вид:
F -> max
F<bi
(3.2.3)
2. При минимизации целевой функции она, соответственно, должна быть ограничена снизу, как это показано в (3.2.4).
(3.2.4)
Глава 3. Задачи линейного программирования 99
3.2.2. Двойственность в задачах линейного программирования
Еще немного теории. Рассмотрим теперь понятие о двойственности.
Каждой задаче линейного программирования, которую будем называть исходной, соответствует двойственная задача. Правила записи двойственной задачи рассмотрим на таком примере. Пусть имеется исходная задача
F = 4Х] + 5х2 + 9х3 -» max
Х| + х2 + 2х3 <16 (а)
7Х] + 5х2 +Зх3 < 25 (б)
(3.2.5)
Двойственная задача формулируется по следующим правилам:
1. Каждому i-му ограничению исходной задачи соответствует переменная двойственной задачи, которую будем называть двойственной переменной и обозначать zi. В системе (3.2.5) ограничению (а) соответствует переменная zi, ограничению (б) — переменная Z2.
2. Каждой переменной исходной задачи соответствует ограничение двойственной задачи. В системе (3.2.5) три переменных Xi, Х2, хз. Значит, двойственная задача должна иметь три ограничения.
3. Матрица коэффициентов при двойственных переменных в ограничениях двойственной задачи является транспонированной матрицей коэффициентов при переменных в ограничениях исходной задачи (3.2.5).
Матрица коэффициентов исходной задачи
1 1 2
7 5 3
А =
Следовательно, транспонированная матрица
1 7
1 5
2 3
100
Часть II. Задачи оптимизации
4. Если в исходной задаче ограничения имеют знаки неравенств <, то в двойственной они будут >.
5. Правые части ограничений в двойственной задаче равны коэффициентам при переменных в целевой функции исходной задачи.
6. Коэффициенты при двойственных переменных в целевой функции двойственной задачи равны правым частям ограничений исходной задачи.
7. Максимизация целевой функции исходной задачи заменяется минимизацией целевой функции двойственной задачи.
Таким образом, для исходной задачи (3.2.5) можно записать двойственную задачу
Ед = 16Z) + 25z2 -» min
Z] + 7z2 > 4; Zj + 5z2 > 5 2Z] + 3z2 > 9; г, > 0; i = 1,2
В общем виде исходной задаче
п
F = £cjXj -»max j=i
n
Sauxi-bi
j=l _______ _____
Xj >0; i = l,m; j = l,n
(3.2.6)
(3.2.7)
соответствует двойственная
m
Ед = V.bjZ; -> min i=l
V4 (3-2.
XaijZi -Cj;Zi ~0;
i=l
i = l,m; j = l,n
Важное свойство двойственной задачи заключается в том, что махЕ = гптЕд.
т
При этом maxF = ^2bjZj .
Глава 3. Задачи линейного программирования
101
Если последнюю формулу записать для наглядности в форме
m maxF = Zjbj , i=l
то видно, что двойственная переменная z, является коэффициентом при bi и, следовательно, показывает, как изменится целевая функция при изменении ресурса h, на единицу. В литературе по оптимизации двойственные переменные принято называть двойственными оценками. В отчетах Excel двойственная оценка называется теневой ценой.
Очень существенно, что для нахождения двойственных оценок двойственную задачу решать не требуется. Их значения уже находятся в симплекс-таблице оптимального решения исходной задачи, приведенной для рассматриваемого примера на рис. 3.1.8.
Определить значение двойственных оценок можно следующим образом. Если некоторый i-ый ресурс используется не полностью, т. е. имеется резерв, значит, дополнительная переменная в ограничении для данного ресурса будет больше нуля. В нашем примере таким ресурсом является сырье, поскольку Ьг = ПО и его резерв уз = 26. Совершенно очевидно, что если бы сырья было не ПО единиц, а 111, то резерв стал бы равен не 26, а 27. При этом не произошло бы увеличения целевой функции. Следовательно, для второго ограничения двойственная переменная Z2 = 0. Таким образом, если по данному ресурсу есть резерв, то дополнительная переменная будет больше нуля, а двойственная оценка этого ограничения равна нулю.
В рассматриваемом примере трудовые ресурсы и финансы использовались полностью, поэтому их дополнительные переменные равны нулю. В таблице на рис. 3.1.8 переменные yi и уз являются свободными, значит yi = уз= 0. Если ресурс используется полностью, то его увеличение или уменьшение повлияет на объем выпускаемой продукции и, следовательно, на величину целевой функции.
Значение двойственной оценки при этом находится в симплекс-таблице (рис. 3.1.8) на пересечении строки целевой функции со столбцом данной дополнительной переменной. Для трудовых ресурсов при yi = 0 двойственная оценка Zi = 20, а для финансов при уз = 0 двойственная оценка гз = 10.
102
Часть II Задачи оптимизации
Результаты решения задачи, приведенные на рис. 3.1.8, сведены в таблицу, показанную на рис. 3.2.3.
В'п? ГФ ?
Ресурсы И Zj
^1г Трудовые Vi=0 z,=20
-II Як Сырье у2=26 Z2=0
Финансы уэ=0 Za=10
Рис. 3.2.3
Из этой таблицы видно, что при увеличении (уменьшении) трудовых ресурсов на единицу, целевая функция увеличится (уменьшится) на 20 единиц и будет равна
при увеличении F = 1320 + 20 х 1 = 1340,
при уменьшении F = 1320 - 20 х 1 = 1300.
Аналогично обстоит дело и с финансами. При увеличении (уменьшении) финансов на единицу целевая функция будет равна
при увеличении F = 1320 + 10x 1 = 1330,
при уменьшении F = 1320- 10 х 1 = 1310.
У внимательного читателя может возникнуть вопрос: а если ресурсы увеличить (уменьшить) на 5, 10, 15,...,100... Иными словами, в каких пределах справедливы эти зависимости?
Запомните вопрос и ждите ответа.
А мы пойдем дальше и для рассмотренной задачи распределения ресурсов (3.1.8) по приведенным выше правилам составим двойственную задачу
Fa = 16Z] +110z2 + 100z3 —>min
Z] +6z2 +4z3 > 60
Z| +5z2 +6z3 > 70
Z] +4z2 +10z3 > 120
Z] +3z2 +-13z3 >130
z, >0,i = M
(3.2.9)
По аналогии с вводом дополнительных переменных у> (3.1.9) введем дополнительные двойственные переменные v3.
Глава 3 Задачи линейного программирования
103
Ffl = 16z! +110z2 +100z3 —> min
Zj +6z2 +4z3 -V] =60
Z] + 5z2 + 6z3 - v2 = 70
Zj +4z2 +10z3 -v3 =120
Zj + 3z2 +13z3 - v4 = 130
Vj > 0; z, > 0
j = I7;i = h3
(3.2.10)
Значения дополнительных двойственных переменных специально вычислять не надо. Их значения уже определены в сим-плекс-таблице, приведенной на рис. 3.1.8. Фрагмент этой таблицы с обозначениями основных и дополнительных двойственных переменных показан на рис. 3.2.4, а их значения — на рис. 3.2.5.
А В С О £ ' F
1 Св член У1 х2 Уз
2 F 1320 Z,=20 Ч>=10 г3=10 г4=20
3 Xi 10
4 У2 26
5 Хо 6
/ - • Аг • 8
1 Продукция X) ч
2 Прод1 х-i =10 Vi =0
3 Прод2 х2=0 V2=1 0
♦ ПродЗ х3=6 V3 = 0
5 Пр од 4 Х4=0 74=20
Рис. 3.2.4 Рис. 3.2.5
Каков же смысл дополнительных двойственных переменных?
Если основные переменные (в нашем примере xi = 10, хз = 6) вошли в оптимальное решение, то их дополнительные переменные равны нулю (vi = 0, уз = 0). Если основные переменные не вошли в оптимальное решение, т. е. равны нулю (в примере хз = Х4 = 0), то соответствующие им дополнительные переменные имеют положительное значение (V2 = 10, V4 = 20). Эти величины показывают, насколько уменьшится целевая функция при принудительном выпуске единицы данной продукции. Следовательно, если мы захотим принудительно выпустить единицу продукции ПродЗ, то целевая функция F уменьшится на 10 единиц и будет равна 1320 -10 х 1 = 1310.
И тот же вопрос: в каких пределах это справедливо? И тот же ответ: ждите ответа.
104
Часть II Задачи оптимизации
В заключение отметим, что в отчетах Excel дополнительная двойственная переменная называется редуцированная стоимость.
Из приведенного очевидно, что двойственные и дополнительные двойственные переменные являются мощным средством анализа полученного оптимального решения.
3.2.3. Анализ оптимального решения
Жизнь, как правило, не стоит на месте. Как говорится, все течет, все изменяется. В том числе и исходные данные, для которых находилось оптимальное решение. Изменится ли при этом полученное оптимальное решение? Чтобы ответить на этот вопрос, обратимся к нашей модели (3.1.8). Посмотрим, как влияет на оптимальное решение изменение двух элементов математической модели:
Cj — прибыли, получаемой при продаже единицы продукции х3; bi — количества располагаемого ресурса.
Анализ влияния изменения су
В математической модели (3.1.8) целевая функция равна
F = 60xi+70x2+120хз+130х4-*тах
Допустим, прибыль от продажи Прод1 ci = 60 изменится на величину Act и станет
ci — 60 + Aci (3.2.11)
При этом строка целевой функции в исходной симплекс-таблице (рис.
3.1.7) примет такой вид, как на рис. 3.2.6.
В результате поиска оптимального решения фрагмент последней симплекс -
таблицы будет иметь вид, представленный на рис. 3.2.7. Отсюда можно сделать вывод, что к величинам, находящимся в таблице рис. 3.1.8, добавляются величины в строке х3 (ячейки B3:F3), умноженные на Дсь
Л 8 С 8 F
1|* Св член Xi Хг Xi х<
'2 F 0 -(бо+дсу -70 -120 -130
3 У<
4 У.
S У.
Рис. 3.2.6
Глава 3 Задачи линейного программирования
105
Л Ь ; ’*/$».*/ '/< t у1' D / а «
Св член У. х. У. х<
F 1320+1 Оде, 20+1 67ДС, 10+0 67ДС, 10-0 17Дс, 20-0 5Дс,
3 X, 10 1 67 0 67 -017 -0 5
Рис. 3.2.7
Согласно признаку 2а, сформулированному в 3.1.3, при максимизации целевой функции решение будет оптимальным в том случае, когда в строке целевой функции все элементы, кроме свободного члена, будут неотрицательны.
Значит, решение будет оптимальным при условии
20+1,67Ас: >0 10+0,67AC| >0
10-0,17Acj >0 20-0,5АС] >0
(3.2.12)
Преобразуя (3.2.12), запишем: дс >_20/ -_]2
Лс'~ /1,67 -
Лс > -Ю/ — -1 5
лс>г /0,67“ 13
^С1 - _ 1%, 17 = 60
и окончательно
-12<Aci<40.
Условие (3.2.12) определяет пределы изменения Aci при которых сохраняется структура оптимального плана, т е. будет выгодно по-прежнему выпускать продукцию хь
В отчетах Excel нижний предел (в примере равный 12) называется допустимое уменьшение', верхний предел, равный 40, — допустимое увеличение.
Если от пределов приращений Ас, перейти к пределам значения величины ci, то можно записать
mine] = С| + штДС] = 60 -12 = 48
maxcj = С| + тахАС] = 60 + 40 = 100
(3.2 13)
106
Часть II Задачи оптимизации
Таким образом, при изменении ci в пределах mine, < ci < maxci (3.2.14)
48 < ci < 100
будет по-прежнему выгодно выпускать продукцию xi. При этом значение целевой функции будет
F= 1320 +10АС1
Если выполнить аналогичные преобразования с сг, сз, С4, то получим
Ас4 < 20
И далее по зависимостям, аналогичным (3.2.13), не трудно перейти к пределам значений сг, сз, сд.
Анализ влияния изменения bi
Рассмотрим влияние изменения ресурсов на примере изменения имеющегося количества сырья. При изменении трудовых ресурсов на Abi ограничение для них будет иметь вид: Х1+Х2+Хз+Х4< 16tbi,
что запишем в виде
yi = (16+ДЬ1) - (Х1+Х2+Х3+Х4).
При этом столбец свободных членов в симплекс-таблице будет иметь вид, показанный на рис. 3.2.8, а фрагмент симплекс -таблицы с оптимальным решением — на рис. 3.2.9, из которого видно правило формирования свободных членов, аналогичное правилу формирования строки целевой функции.
А в С
3 Величина Своб член X,
4 F 0
5 У< 16+ДЬ,
б У. 110
7 У> 100
Рис. 3.2.8
А В С
3 Величина Своб член У«
4 F 1320+20*дЬ, 20
б X, 10+1 67*ДЬ, 1 67
б У> 26-7 33*ДЬ. -7 33
7 X, 6-0 67*ДЬ, -0 67
Рис. 3.2.9
Глава 3 Задачи линейного программирования
107
В соответствии с признаком 1 решение будет допустимым в том случае, если все элементы в столбце свободных членов будут неотрицательными. Значит, из рис. 3.2.9 следует
10+1,67 АЬ, >0'
26-7,73Ab, >0-
6-0,67АЬ, >0
откуда
ЛЬ, >- — = -6
1 1,67
АЬ < — = 3,55
1 7,33
АЬ, < —= 9
1 0,67
Тогда для сохранения структуры оптимального плана изменение трудовых ресурсов должно быть в пределах
-6<Abi<3,55.
Аналогично можно получить значения для ДЬг, АЬз и записать
-6< Abj <3,55 26<Ab2 неогр. >
- 36 < АЬ^ - 60
(3.2.16)
Переход от Ab( к пределам bi производится по зависимостям
minb, = b, + min АЬ, maxb, = Ь, + тах АЬ, minb, <b, <maxb,
J J 1 J
(3.2.17)
и в результате получим minbi = 16 - 6 = 10 maxbi = 16 +3,55 = 19,55 10 < Ab, <19,55
84 < Ab 2 неогр. •
(3.2.18)
64<Ab3 <160
108 Часть II. Задачи оптимизации
Найденные пределы показывают границы, в которых могут изменяться ресурсы, чтобы структура оптимального решения, т. е. номенклатура выпускаемой продукции, остались без изменений. А это означает, что при изменении трудовых ресурсов в найденных пределах оптимальным, т. е. обеспечивающим наибольшую прибыль, является выпуск той же продукции xi и хз, но в других количествах. При этом необходимо будет выпускать
xi = 10 + 1,67ДЬ1,
хз = 6 - 0,67ДЬ1.
При этом целевая функция будет
F = 1320 + 20ДЬ1.
Аналогично полученные зависимости для финансов будут иметь вид:
X] =10-0,17ДЬ3 х3=6+0,17ДЬ3 F = 1320+10ДЬ3
Поясним эти зависимости на следующем примере. Пусть увеличение финансов составляет
ДЬз= 10.
При этом получим
XI = 10-0,17 X 10 = 8,3,
хз = 6 +0,17 х 10 = 7,7.
В данном случае целевая функция будет
F = 1320+10 х 10 = 1420.
Видимо, было трудно представить, что при увеличении финансов для обеспечения максимизации прибыли выпуск продукции xt целесообразно уменьшить, а выпуск продукции х3 — увеличить. Такое решение объясняется следующим. Как видно из условий задачи (рис. 3.1.6), прибыль с единицы продукции сз= 120, т. е. единица продукции ПродЗ в 120/60 = 2 раза дает большую прибыль по сравнению с единицей продукции вида Прод1. В связи с этим оказалось целесообразным такое перераспределение выпуска продукции.
Глава 3. Задачи линейного программирования
109
Мы полагаем, что приведенных примеров достаточно, чтобы показать, на какие важные вопросы можно получить ответы с помощью математической модели. Следует подчеркнуть, что все эти ответы могут быть получены без дополнительного решения задачи, а только используя симплекс-таблицу основной задачи (рис. 3.1.8).
И еще один важный вопрос. Говоря о двойственных и дополнительных двойственных переменных, мы оставили без ответа поставленные вопросы о пределах, в которых справедливы полученные значения этих переменных. Пришла пора дать ответ на эти вопросы. Оказывается, что пределы изменения Abi — это и есть пределы справедливости двойственных оценок а. А пределы изменения Acj — это пределы справедливости дополнительных двойственных оценок Vj.
На этом мы заканчиваем рассмотрение тех некоторых теоретических положений, без знания которых было бы не ясно, откуда в отчетах Excel появляются соответствующие представляемые величины.
Читатель, который не поленился внимательно разобраться в симплекс-методе и анализе оптимальных решений, надеемся, согласится с известным положением, что нет ничего практичнее хорошей теории.
3.2.4. Вариантный анализ
Для задач распределения ресурсов наибольший интерес представляет решение двух задач вариантного анализа:
□ параметрического анализа, в ходе которого решаются задачи при различных значениях одного из параметров;
□ поиска решений по нескольким целевым функциям.
При решении задач распределения ресурсов по нескольким целевым функциям возможна одна из двух постановок задачи: при заданных ресурсах максимизировать получаемый результат; либо при заданном результате минимизировать используемые ресурсы.
Если обозначить Q — ресурсы, R — результат их применения, то при заданных зависимостях результата R = ft(xj) и требуемых
7 Ю Часть II Задачи оптимизации
ресурсов Q = f2(xj) от количества выпускаемой продукции эти постановки могут быть записаны так:
Первая постановка
F, = R -> max
R^CXj)
Q = f,(x.)
v 2V J7 (3.2.19)
dj <Xj < Dj
j = U
Вторая постановка
F2 = Q -> min R = f,(Xj) Q = f2(Xj) R>R3M dj <jCj < Dj j = l,n
(3.2.20)
Решение задачи распределения ресурсов в этих двух постановках рассмотрим на примере задачи, приведенной на рис. 3.2.10.
Лг- В ,С ,D., Е F G
1 Ресурс Вид1 Вид2 ВидЗ В ид 4 знак наличие
2 Прибыль 60 70 120 130 max —
3 Трудовые 1 2 3 4 < = 40
4 Сырье 6 5 4 3 < = 110
Финансы 4 6 8 12 < = 100
6 Нижн.гр 1 0 2 3
7 Верхи гр 12 не огр не огр 3
Рис. 3.2.10
Этот пример отличается от рассмотренного ранее (рис. 3.1.6) введением граничных условий на переменные и изменением некоторых норм расхода. Для отличия от предыдущей задачи здесь присвоены имена Вид1, Вид2, ВидЗ, Вид4 типам выпус
Глава 3 Задачи линейного программирования
111
каемой продукции. В решаемой задаче ограничения и граничные условия имеют вид:
X] + 2х2 + Зх3 + 4х4 < 40 бХ] + 5х2 + 4х3 +Зх4 <110 4xj + 6х2 + 8х3 + 12х4 <100-1 < х, <12; х3 >2;
х2 > 0; х4 = 3
(3.2.21)
Будем решать эту задачу в двух приведенных выше постановках.
В первой постановке — максимизация результата — целевая функция будет иметь вид:
Fi = 60х1+70х2+120хз+130х4 -> max (3.2.22)
Для решения задачи во второй постановке — минимизация используемых ресурсов — введем в (3.2.21) дополнительные переменные yi, уз, уз
X] + 2х2 + Зх3 + 4х4 + у, =40 6xt+5х2+4х3+3х4+у2 =110 4xt + 6х2 + 8х3 + 12х4 + у3 = 100 yj > 0; i = 13
(3.2.23)
Переменные yi, уз, уз показывают величину неиспользованного ресурса. Значит, если мы хотим минимизировать используемый ресурс, то нужно максимизировать неиспользованный ресурс, тогда во второй постановке целевая функция будет
F2 = yi+уг +уз->тах. (3.2.24)
В этой постановке, как и при любой минимизации, должен быть задан минимально допустимый результат. В качестве такого заданного результата принимаем нижние значения граничных условий для переменных, приведенные на рис. 3.2.10 и в (3.2.21).
Решение этих задач проведем в разделе 3.4.3 после ознакомления с поиском оптимальных решений в Excel.
112
Часть II. Задачи оптимизации
3.3. Решение задач линейного программирования с помощью Excel
3.3.1. Блок-схема решения задачи
Последовательность необходимых работ, выполняемых при решении задач линейного программирования с помощью Excel, приведена на блок-схеме (рис. 3.3.1).
Рис. 3.3.1
Глава 3 Задачи линейного программирования 113
Подробное описание этих работ и составляет содержание данной главы.
3.3.2. Ввод условий задачи
Ввод условий задачи состоит из следующих основных шагов:
1. Создание формы для ввода условий задачи.
2. Ввод исходных данных.
3. Ввод зависимостей из математической модели.
4. Назначение целевой функции.
5. Ввод ограничений и граничных условий.
Последовательность работ рассмотрим на примере задачи распределения ресурсов, исходные данные которой приведены на рис. 3.1.6, а математическая модель имеет вид (3.1.8).
Алгоритм 3.3.1. Ввод данных для решения задачи линейного программирования
1. Для задачи, приведенной на рис. 3.1.6, сделать форму для ввода условий задачи (рис. 3.3.2).
’-’\Д я J-C’’- 1- ЛО . | -E, 1 . ЛГ G * ICL
'’Г
.-24 ПВ0Л1> поод2 ПВОД4
’Значение
‘4" нижн.т.
- напр
й>эф.вЦФ
ь левая часть знак пваваячзсть
.10
11 Финансы
Рис. 3.3.2
Весь текст на рис. 3.3.2 (и в дальнейшем) является комментарием и на решение задачи не влияет.
114
Часть II Задачи оптимизации
А В -V . С ,
1 рис 3 1 6 рис 3 3 2
2’ с В2 Е2 В6 Е6
3 знак в огр F3 F5 G9 G11
4 ' Ь G3 G5 Н9 Н11
5 а ВЗ Е5 В9 Е11
Рис. 3.3.3
2. Ввести исходные данные в форму (рис. 3.3.2).
Необходимые исходные данные приведены на рис. 3.1.6.
Переход от рис. 3.1.6 к рис. 3.3.2 показан на рис. 3.3.3.
3. Ввести зависимости из математической модели (3.1.8).
Для наглядности (но не обязательно!) можно перейти к режиму представления формул (алг. 2.1.12). При этом ввод данных приводится на рис. 3.3.4, а режим представления формул — на рис 3.3.5.
А В С Р В F в н
1 Переменные
2 имя прод1 прод2 продЗ прод4
3 значение
4 нижн гр
3 верхи гр
в коэф в ЦФ 60 70 120 130 0 макс
7 Ограничения
Ъ вид левая часть знак правая часть
3 трудовые 1 1 1 1 0 <- 16
10 сырье 6 5 4 3 0 <= 110
11 финансы 4 6 10 13 0 < = 100
Рис. 3.3.4
А . В! с О I Е I < F - | G J Н I
1 Переменные
ИМЯ ПРОД1 прод2 продЗ прод4
Л значение
4 нижн гр
4 верхи гр
в коэф в ЦФ 60 70 120 130 =СУММПРОИЗВ(В$3:Е$3;В6:Е6) макс
7 Ограничения
8 ВИД левая часть знак правая часть
8 трудовые 1 1 1 1 =СУММПРОИЗВ(В$3:Е$3;В9:Е9) <= 16
10 сырье 6 5 4 3 =СУММПРОИЗВ(В$З.Е$3;В10.Е10) «X 110
« финансы 4 6 10 13 =СУММПРОИЗВ(В$3:Е$3;В11:Е11) <z 100
Рис. 3.3.5
Глава 3 Задачи линейного программирования 115
3.1. Ввести зависимость для целевой функции:
> Курсор в F6.
> Курсор на кнопку Мастер функций.
> М1.
На экране: диалоговое окно Мастер функций шаг 1 из 2.
> Курсор в окно Категория на категорию Математические.
> М1.
> Курсор в окно Функции на СУММПРОИЗВ.
> М1.
> Далее.
На экране: диалоговое окно (рис. 3.3.6).
Рис. 3.3.6
> В массив 1 ввести B$3:ES3.
Заметим, что во все диалоговые окна адреса ячеек удобно вводить не с клавиатуры, а протаскивая мышь по ячейкам, чьи адреса следует ввести
> В массив 2 ввести В6:Е6.
> Готово.
На экране: рис. 3.3 4, рис. 3.3.5 (в F6 введены значения целевой функции).
3.2. Ввести зависимости для левых частей ограничений'
> Курсор в F6.
> Копировать в буфер.
> Курсор в F9
116
Часть II Задачи оптимизации
> Вставить из буфера.
На экране: в F9 введена функция, как это показано на рис. 3.3.5.
> Скопировать F9 в FlO’.Fl I.
На экране: в F1O:F11 введены функции, как это показано на рис. 3.3.5.
На этом ввод данных в таблицы (рис. 3.3.4, рис. 3.3.5) закончен.
Алгоритм 3.3.2. Работа в диалоговом окне Поиск решения
1. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения (рис. 3.3.7).
Поиск решения ЕЗ
Установить долевую ячейку: * }$F$6
Равной: Максимальному значению
Г* Мм;^альномузначению С Значению |6 ' ““““
Закрыть , | ...........I
Изменяя ячейки
|$В$3$Е$3 ‘
-Ограничения:
$В$3 >= $В$4 $С$3 >= $С$4 $D$3>=$D$4 $Е$3 >= $Е$4 $F$10 <= $Н$10 $F$11 <= $Н$11
Дарамегры.. |
Восстанаеить |
&травка |
Рис. 3.3.7
2. Назначить целевую функцию:
> Курсор в окно Установить целевую ячейку.
> Ввести адрес: F6.
> Ввести направление целевой функции: Максимальному значению.
3. Ввести адреса искомых переменных:
> Курсор в поле Изменяя ячейки.
Глава 3 Задачи линейного программирования 117
> Ввести адреса: ВЗ:ЕЗ.
4. Добавить...
На экране: диалоговое окно Добавление ограничения (рис. 3.3.8).
Добавление ограничения
Ссылка на ячейку Ограничение:
|$В$3 |>=31=$в$4
~ OKI Отмена | Добавить | Справка I
хини ипнкхихи iwhwwxxi.i нг.г. wi.i. x.mwn jt »1»1ц»п»и|И1|П|ийе*л1И||«п|Л|1||Г1Чимч*
Рис. 3.3.8
5. Ввести граничные условия на переменные (Прод! — Прод4) > 0: ВЗ >= В4, СЗ >= С4, D3 >= D4, ЕЗ >= Е4.
> В окне Ссылка на ячейку ввести ВЗ.
> Курсор на стрелку.
> М1.
На экране: знаки для ввода в ограничения.
> Курсор на знак >=.
> М1.
> Курсор в правое окно.
> Ввести В4.
> Добавить...’
На экране: опять диалоговое окно Добавление ограничения (рис. 3.3.8).
Аналогично ввести граничные условия для остальных переменных.
6. Аналогично ввести ограничения:
F9 <= Н9, F10 <= НЮ, F11 <= НИ.
> После ввода последнего ограничения вместо Добавить... ввести ОК.
На экране: диалоговое окно Поиск решения с введенными условиями (рис. 3.3.7).
118
Часть II Задачи оптимизации
Если при вводе задачи возникает необходимость в изменении или удалении внесенных ограничений или граничных условий, то это делается с помощью команд Изменить..., Удалить
На этом ввод условий задачи заканчивается На очереди следующий шаг — решение задачи
3.3.3. Решение задачи
Решение задачи производится сразу же после ввода данных по алг 3 3 2, когда на экране находится диалоговое окно Поиск решения (рис 3 3 7)
Алгоритм 3.3.3. Решение задачи линейного программирования
1. Параметры...
На экране диалоговое окно Параметры поиска решения (рис 3 3 9)
Параметры поиска решения
Максимальное время. |Ю0 ’ секут
Првйй^яжчислоигераций: |l00
Относительная погрешность. |о 000001
Допустимоевткловение: I5 %
Г“ Показывать вееультаты итераций
Г" Аэтоматическое11ааигаб^х>ва»®
7 7у 77'.".",г.'
77
«шмшмй1й^
0пиеи» 11,7 ,т
-Оценка—*—
& Лньщйная
&мдрвтичнвя
I гПрокэЕкиные-—-s | & Прямые i р Центральные
Рис. 3.3.9
С помощью команд, находящихся в этом диалоговом окне, можно вводить условия для решения задач оптимизации всех классов С наиболее важными командами, применимыми при решении конкретных задач, мы будем знакомиться по мере
Глава 3 Задачи линейного программирования
119
необходимости Вместе с тем, команды, используемые по умолчанию, подходят для решения большей части практических задач
Начнем знакомство с командами, которые могут вводиться при решении задач всех классов
Максимальное время
Служит для назначения времени в секундах, выделяемого на поиск решения задачи В поле можно ввести время, не превышающее 32767 с (более 9 часов') Значение 100, используемое по умолчанию, подходит для решения большинства задач
Предельное число итераций
Служит для назначения числа итераций Используемое по умолчанию значение 100 подходит для решения большинства задач
После этих пояснений продолжим решение задачи
2. Установить флажок Линейная модель, что обеспечивает применение симплекс-метода
3. ОК
На экране знакомое уже диалоговое окно Поиск решения (рис 3 3 7)
4. Выполнить
На экране диалоговое окно Результаты поиска решения Решение найдено (рис 3 3 10) и результат оптимального решения задачи приведены в таблице (рис 3 3 11)
Рис. 3.3.10
120
Часть II Зоаочи оптимизации
/у. • / hf ч‘‘ -ч ЛНВ'' ЖЖ F /**• ‘Ла мжжж
Й-- Переменные
л имя ПР0Д1 прод2 продЗ прод4
ЭЦ значение 10 0 6 0
Л нижн гр
5 верхи гр
коэф в ЦФ 60 70 120 130 1320 макс
7* Ограничения
8 ВИД левая часть знак правая часть
9 трудовые 1 1 1 1 16 16
10 сырье 6 5 4 3 84 110
11 финансы 4 6 10 13 100 <- 50
Рис. 3.3.11
На рис. 3.3.11 видно, что в оптимальном решении
Прод1 = ВЗ = 10,
Прод2 = СЗ = 0,
ПродЗ = 03 = 6,
Прод4 = ЕЗ = О
При этом максимальная прибыль будет составлять F6 = 1320, а количество использованных ресурсов равно
трудовых = F9 =16,
сырья = F10 = 84,
финансов = F11 = 100.
Таково оптимальное решение рассматриваемой задачи распределения ресурсов. Однако решение задачи находится не всегда. Если условия задачи несовместны, на экране появляется диалоговое окно (рис. 3.3.12).
Рис. 3.3.12
Глава 3 Задачи линейного программирования
121
Необходимые действия в этом случае рассматриваются в 3.3.5.
Если целевая функция не ограничена, то на экране появится диалоговое окно (рис. 3.3.13).
Рис. 3.3.13
Необходимые действия в этом случае рассматриваются в 3.3.6.
3.3.4. Графическое представление результатов решения
Важным фактором, помогающим принять решение, является наглядное представление полученного результата.
Результат решения задачи, приведенный на рис. 3.3.11, был принят в качестве исходных данных при рассмотрении алгоритмов построения диаграмм различных типов в главе 2, разделе 2.2.
Диаграммы, построенные по этим данным, представлены на рис. 2.2.8, 2.2.9, 2.2.13, 2.2.14, 2.2.16. После получения оптимального решения рассмотренной задачи мы настоятельно рекомендуем внимательно посмотреть эти построенные диаграммы. Приведенные диаграммы убедительнее всяких слов доказывают преимущества наглядного представления результатов оптимального решения.
122
Часть/^Задачи оптимизации
3.3.5. Преодоление несовместности
Как уже говорилось, достаточно часто при решении задач распределения ресурсов условия задачи оказываются несовместными. Мы обещали сказать, что же следует делать в таких случаях. Для этого рассмотрим следующий пример. В задаче, которую мы решали, было получено оптимальное решение Прод1 = 10, ПродЗ = 6. При этом трудовые ресурсы и финансы были использованы полностью. Для получения несовместности в учебных целях, изменим условия задачи, сохранив значения переменных, которые мы получили в оптимальном решении Прод1 = 10, ПродЗ = 6. Дополнительно еще назначим Прод2 = 5.
Очевидно, что для выпуска такого количества продукции располагаемых ресурсов будет недостаточно. Посмотрим, как решать такие несовместные задачи с помощью Excel. Прежде всего введем изменение условий задачи.
Алгоритм 3.3.4. Изменение условий задачи
1. Вызвать исходную таблицу (рис. 3.3.5).
2. По алг. 3.3.2 вызвать диалоговое окно Поиск решения.
3. Изменить граничные условия для Прод1:
> В окне Ограничения курсор на строку $В$3>=$В$4.
> Изменить...
На экране: диалоговое окно Изменить ограничение.
> Ввести изменение: $В$3=10.
> ОК.
4. Аналогично ввести значение для ПродЗ: D3=6.
5. Ввести дополнительное условие для Прод2:
> Добавить.
> Ввести: С3=5.
> ОК.
На этом ввод изменений закончен.
6. Решить задачу.
На экране: диалоговое окно рис. 3.3.12.
Глава 3. Задачи линейного программирования
123
Появление этого диалогового окна — признак несовместного решения. Что же делать в таких случаях? Обратимся к математической модели. Рассматриваемая задача имеет модель:
F] = 60Х] + 70х2 +120х3 +130х4 —> max
Х] +х2 +х3 +х4 <16
бХ] + 5х2 + 4х3 + Зх4 < 110
4Х] +6х2 +10х3 +13х4 <100
X] = 10; х2 =5; х3 = 6; х4 = 0
(3.3.1)
Для выяснения причин несовместности введем дополнительные необходимые ресурсы ti и запишем систему в виде:
F2 = 60Х[ + 70х2 + 120х3 + 130х4 —> min
X! + Х2 + Х3 + Х4 =16+t]
бХ] + 5х2 + 4х3 + Зх4 = 110 +12 4х! +6х2 +10х3 +13х4 = 100 +13
t, > 0; t2 > О, t3 > 0
(3.3.2)
Такая постановка задачи дает возможность определить минимальное значение дополнительных необходимых ресурсов ti, t2, tj.
Для ввода условий задачи систему (3.3.2) запишем в виде:
F = tj +12 +13 -> min
X] + x2 + x3 + x4 -1] =16
6X] +5x2 +4x3 +3x4 -t2 =110
4xj +6x2 +10x3 +13x4 -t3 = 100
t, >0; t2 >0; t3 >0
(3.3.3)
Чтобы ввести эту систему, откорректируем таблицу для ввода данных (рис. 3.3.4) и сделаем ее такой, как на рис. 3.3.14 (данные) и рис. 3.3.15 (формулы).
Рис. 3.3.14 отличается от рис. 3.3.4 следующим:
□ введены столбцы F:H для переменных ti, t2, ta;
□ в ячейках F9:H11 введены — 1;
□ в ячейке 16 зависимость для прибыли сохранена;
□ в ячейку 14 введена зависимость для новой целевой функции, которая минимизируется.
124
Часть II. Задачи оптимизации
, / ! ! ! С! 1- '/ 'В' С л От: G Н A, ''Ifl1!'" ••4'
Переменные
"2' ИМЯ прод1 прод2 продЗ прод4 1, t. t.
3 значение ЦФ напр
4 нижн гр 0 мин
б верхи гр прибыль
8 коэф в ЦФ 60 70 120 130 0
Ограничения
в вид певая часть знак правая часть
9 трудовые 1 1 1 1 -1 0 «= 16
18 сырье 6 5 4 3 -1 0 <= 110
It финансы 4 6 10 13 -1 0 <= 100
Рис. 3.3.14
* ' В с О 1 6' 7 и 1 <4 - К |
1 Переменные
2 ИМЯ прод1 прод2 продЗ прод4 t. t. ь
3 значение ЦФ напр
4 нижн гр =СУММ(ТЗ:НЗ) мин
JL верхи гр прибыль
в коэф в ЦФ 60 70 120 130 =СУММПРОИЗВ(В $3£ $3 ;В6:Е6)
V, Ограничения
8 вид левая часть знак правая часть
8 трудовые 1 1 1 1 -1 •СУММПРОИЗВ(В $3 .Н $3 ;В9 Л8) 16
W сырье 6 5 4 3 -1 =СУММЛРОИЗВ(В$3:Н $3;В10:Н10; <— 110
И финансы 4 6 10 13 -1 *СУММПРОИЗВ(В$ЗД4$3;В11 1) «= 100 I
Рис. 3.3.15
На основании рассмотренного можно записать следующий алгоритм.
Алгоритм 3.3.5. Преодоление несовместности
1. Откорректировать таблицу ввода условий задачи (рис. 3.3.4), как это показано на рис. 3.3.14.
> Ввести для новых переменных ti, t2, t3 столбцы F:H.
> В ячейках F9:H1 ввести коэффициенты -1, с которыми эти переменные входят в ограничения.
> Ввести новую целевую функцию в ячейку 14, которую следует минимизировать.
Заметим, что формула старой целевой функции осталась без изменений.
2. Сервис, Поиск решения...
Глава 3. Задачи линейного программирования
125
3. Установить целевую ячейку 14 равной минимальному значению.
4. В окно Изменяя ячейки ввести ВЗ.НЗ.
5. В окно Ограничения ввести ограничения и граничные условия:
ВЗ = 10 ЕЗ >=0 19 <= К9
СЗ = 5 F3 >= 0 110<=К10
D3 = 6 G3 >=0 Ill <= К11
НЗ>=0
6. Выполнить.
На экране: результат решения, показанный на рис. 3.3.16.
Л, - в- С ' • € F О М '„1
Переменные
,2 имя Прод1 прод2 продЗ прод4 1, г. г,
3 значение 10 5 6 0 5 0 30 ЦФ напр
/'4. нижн гр 3S мин
верхи гр прибыль
6 коэф в ЦФ 60 70 120 130 1670
Т Ограничения
8 вид левая часть знак правая часть
9 трудовые 1 1 1 1 -1 16 <= 16
10 сырье 6 5 4 3 -1 109 <= 110
,11 финансы 4 6 10 13 -1 100 <= 100
Рис. 3.3.16
Из этого рисунка видно, что искомый дополнительный потребный ресурс равен ti = 5, t2 = 0, t3 = 30. Это значит, что для заданного выпуска продукции необходимо иметь всего следующее количество ресурсов:
трудовые 16+5=21,
сырье 110+0=110,
финансы 100+30=130.
При этом будет получена прибыль, равная 1670.
Трудно переоценить полезность такого подхода при возникновении несовместности. Если в реальных условиях ресурсы увеличить нет возможности, то следует назначить граничные условия Xj > 0, как это делалось в исходной задаче, тогда будет получено решение, которое определяется имеющимися ресурсами.
126
Часть II Задачи оптимизации
3.3.6. Устранение неограниченности целевой функции
В 3.2.1 мы рассматривали систему (3.2.2). Добавим к системе целевую функцию, тогда получим:
F = х, —> max
Х[ +х2 > 1
xt >0;х2 >0
которая графически была представлена на рис 3.2.2. Было показано, что задача (3.2.2) имеет неограниченную целевую функцию. Посмотрим, как будет решаться такая задача в Excel. Условия задачи в формате, необходимом для ее решения в Excel, Цриведены на рис. 3.3.17.
Л ' *В с D Е F
1 Переменные
2 имя X, х. ЦФ
3 значение =вз макс
*4 ’ Ограничение
В лев часть знак прав часть
в =ВЗ+СЗ 1
Рис. 3.3.17
В ходе решения этой задачи на экране появляется диалоговое окно рис. 3.3.13, которое, как мы уже знаем, является признаком неограниченности целевой функции. Для преодоления этой неограниченности необходимо при максимизации целевой функции область допустимых решений ограничить сверху. С этой целью к (3.2.2) добавим ограничение
Х1 + Х2> 2,
после чего (3.2.2) будет иметь вид:
F = X] —> max
Xj +х2 > 1
х1 +х2 <2
X] >0;х2 >0
что графически представлено на рис. 3.3.18.
(3.3.4)
Глава 3 Задачи линейного программирования
127
Рис. 3.3.18
Ввод условий задачи (3.3.4) в форме ввода формул и в форме ввода данных, а также результат ее решения приведены на рис. 3.3.19.
Л 8 с 8 Е
1 Переменные
2 ИМЯ Xi *2 ЦФ
3 значение 2 0 2 макс
4 Ограничения
S лев часть знак прав часть
«, вз+сз 1
7 - вз+сз 2
Л В с •О ' Е
10 Переменные
11 ИМЯ Xi Х2 ЦФ
12 значение 2 0 2 макс
13 Ограничения
14 лев часть знак прав часть
15 2 >= 1
16 2 2
Рис. 3.3.19
Как видно из рис 3.3.19, после введения дополнительного ограничения было получено оптимальное решение. Решение этого примера проиллюстрировало выводы, которые мы сделали ранее при рассмотрении неограниченности целевой функции:
□ Решение бывает не ограниченным в том случае, когда область допустимых решений не имеет ограничения, препятствующего бесконечному возрастанию (убыванию) целевой функции.
□ При максимизации целевой функции область допустимых решений должна быть ограничена сверху.
□ При минимизации целевой функции область допустимых решений должна быть ограничена снизу.
Зная эти правила, легко устранить неограниченность целевой функции, признаком которой является появление на экране диалогового окна (рис. 3.3.13).
128
Часть II Задачи оптимизации
3.4. Анализ задач линейного программирования в Excel
3.4.1. Анализ оптимального решения
Анализ оптимального решения выполняется на основании применения тех положений симплекс-метода, которые были достаточно подробно рассмотрены в 3.2.3, и начинается после успешного решения задачи, когда на экране появляется диалоговое окно Результат поиска решения. Решение найдено, (рис. 3.3.10). С помощью этого диалогового окна можно вызвать отчеты трех типов:
□ результаты;
□ устойчивость;
□ пределы.
Отчеты каждого типа могут быть вызваны по следующему алгоритму.
Алгоритм 3.4.1. Вызов отчетов анализа
На экране: диалоговое окно Результат поиска решения. Решение найдено (рис. 3.3.10).
1. Курсор на тип вызываемого отчета. Начнем с Отчета по результатам.
2. ОК.
На экране: вызванный отчет на новом листе, на ярлычке которого указано название отчета.
3. Курсор на ярлычок с названием отчета.
4. М1.
На экране: вызванный отчет (рис. 3 4.1).
Глава 3 Задачи линейного программирования
129
В с О 'ГЧ, ‘*F -
5
в Целевая ячейка (Макс)
7 Ячейка Имя Исходно Результат
$F$6 коэф в ЦФ 0 1320
•
М
в Изменяемые ячейки
Ячейка Имя Исходно Результат
» 4В$3 значение лрод1 0 10
М $С$3 значение прод2 0 0
« $О$3 значение продЗ 0 8
$Е$3 значение прод4 0 0
17
»
«9 Ограничения
20 Ячейка Имя Значение Формула Состояние Разница
21 $F$9 трцдоеые левая часть is 4F$9<=$H$9 связанное 0
22 $F$10 сырье левая часть 84 $F$10<=$H$1C не связан 26
$F$11 Финансы левая часть 100 $F$11< = $H$11 связанное 0
24 $В$3 значение прод1 10 $В$3> = $В$4 не связан 10
25 $С$3 значение прод2 0 $С$3>=$С$4 связанное 0
28 $О$3 значение продЗ 6 $D$3> = $D$4 не связан 6
27 $Е$3 значение прод4 0 $Е$3>=$Е$4 связанное 0
Рис. 3.4.1
Отчет по результатам
Отчет состоит из трех таблиц:
□ Таблица 1 приводит сведения о целевой функции.
В столбце Исходно приведены значения целевой функции до начала вычислений.
□ Таблица 2 приводит значения искомых переменных, полученные в результате решения задачи.
□ Таблица 3 показывает результаты оптимального решения для ограничений и для граничных условий.
Для Ограничений в графе Формула приведены зависимости, которые были введены в диалоговое окно Поиск решения; в графе Значение приведены величины использованного ресурса, в графе Разница показано количество неиспользованного ресурса. Если ресурс используется полностью, то в графе Состояние указывается связанное, при неполном использовании ресурса в этой графе указывается не связан.
5 Зак 115
130
Часть II Задачи оптимизации
Для Граничных условий приводятся аналогичные величины с той лишь разницей, что вместо величины неиспользованного ресурса показана разность между значением переменной в найденном оптимальном решении и заданным для нее граничным условием.
Отчет по устойчивости
Отчет по устойчивости (рис. 3.4.2) состоит из двух таблиц.
в . . с в Е - F ' S И. ’
S
« Изменяемые ячейки
т Результ. Редуц. Целевой Допустимое Допустимое
• Ячейка Имя значение СТОИМОСТЬ коэффициент увеличение уменьшение
• $в$з значение прод1 ю 0 60 40 12
» $с$з значение прод2 0 ю 70 10 1Е»ЗО
и $О$3 значение продЗ 6 0 120 30 13 33
е $Е$3 значение лрод4 0 20 130 20 1Е*30
Ограничения
Результ. Теневая Ограничение, Допустимое Допустимое
Ячейка Имя значение цена правая часть увеличение уменьшение
трцдовые левая часть 16 20 is 3 55 в
в $F$10 сырье левая часть 84 0 110 1Е*30 26
$F$11 Финансы левая часть 100 10 100 60 36
Рис. 3.4.2
В таблице 1 приводятся следующие значения для переменных:
□ результат решения задачи;
□ редуц. стоимость, т. е. дополнительные двойственные переменные Vj, которые, как рассматривалось в 3.2.3, показывают, насколько изменяется целевая функция при принудительном включении единицы этой продукции в оптимальное решение,
□ коэффициенты целевой функции;
□ предельные значения приращения коэффициентов Ас, целевой функции, при которых сохраняется набор переменных, входящих в оптимальное решение, что было подробно рассмотрено в 3.2.3.
В таблице 2 приводятся аналогичные значения для ограничений:
□ величина использованных ресурсов;
Глава 3 Задачи линейного программирования
131
□ теневая цена, т. е. двойственные оценки Zi, которые показывают, как изменится целевая функция при изменении ресурсов на единицу;
□ значения приращения ресурсов ДЬ,, при которых сохраняется оптимальный набор переменных, входящих в оптимальное решение
Задачи анализа, которые можно решать с помощью приведенных величин Ас3и ДЬ., были подробно рассмотрены в 3.2.3.
Отчет по пределам
Этот отчет приведен на рис. 3.4.3. В нем показано, в каких пределах может изменяться выпуск продукции, вошедшей в оптимальное решение, при сохранении структуры оптимального решения:
□ приводятся значения Xj в оптимальном решении;
□ приводятся нижние пределы изменения значений хг
* < в . ' п © Л о Е . F а *и 1
•
• Целевое
т Ячейка ИМЯ Значение
коэф в ЦФ 1320
•
W
и Изменяемое Нижний Целевой Верхний Целевой
Ячейка имя Значение предел зезультат предел результат
$е$з значение прод1 10 0 720 10 1320
И »с$з значение прод2 0 0 1320 0 1320
« $□$3 значение продЗ 6 0 600 6 1320
X $Е$3 значение прод4 0 0 1320 0 1320
Рис. 3.4.3
Кроме этого, в отчете указаны значения целевой функции при выпуске данного типа продукции на нижнем пределе. Так, при значении 720 видно, что F = cixi + сзхз = 60 х 0 + 120 х 6 = 720. Далее приводятся верхние пределы изменения х3 и значения целевой функции при выпуске продукции, вошедшей в оптимальное решение на верхних пределах.
Поэтому везде F = 60xl0+120x6 = 1320.
На этом мы заканчиваем описание отчетов анализа оптимального решения И еще раз напоминаем, что алгоритм получения
132
Часть II Задачи оптимизации
этих результатов и вопросы, которые можно решать с их помощью, были подробно рассмотрены в 3.2.3.
3.4.2. Параметрический анализ
Как мы уже говорили, под параметрическим анализом будем понимать решение задачи оптимизации при различных значениях того параметра, который ограничивает улучшение целевой функции.
Параметрический анализ будем выполнять для задачи, которая приведена на рис. 3.3.4, решая ее при различных значениях имеющихся финансов.
Алгоритм 3.4.2. Выполнение параметрических расчетов
1. Подготовительные работы.
1.1. Составить таблицу вариантов (рис. 3.4.4).
В С В Е F G
2 Вариант 1 2 3 4 5
3 Финансы 50 100 150 200 250
Рис. 3.4.4
1.2. Вызвать на экран таблицу с результатом решения задачи (рис. 3.3.11).
1.3. Удалить результат решения, находящийся в ВЗ:ЕЗ:
> Выделить ВЗ:ЕЗ.
> <Delete>.
> Убрать выделение.
2. Решение задачи для 1-го варианта.
2.1. Ввести в ячейку НН =50.
2.2. Сервис, Поиск решения...
2.3. Выполнить.
На экране' диалоговое окно Результаты поиска решения (рис. 3.3 10).
2.4. Сохранить сценарий...
Глава 3 Задачи линейного программирования
133
Сохранение сценария
ймясвенария: •.......
|финансь1=50
i I Обмена | Справка |
На экране: диалоговое окно Сохранение сценария (рис. 3.4.5).
Рис. 3.4.5
2.5. Ввести имя сценария финансы=50.
2.6. ОК.
На экране: диалоговое окно Результаты поиска решения (рис. 3.3.10).
2.7. ОК.
На экране: результат решения задачи для данного варианта финансы=50 (рис. 3.4.6).
А в а в Е ’ F 6 н
1 Переменные
2 ИМЯ ПРОД1 прод2 продЗ прод4
3 значение 12.5 0 0 0
4 нижн гр
3 верхи гр
6 коэф в ЦФ 60 70 120 130 750 макс
7 Ограничения
8 вид левая часть знак правая часть
9 трудовые 1 1 1 1 12.5 <= 16
18 сырье 6 5 4 3 75 <= 110
11 финансы 4 6 10 13 50 <= 50
Рис. 3.4.6
3. Решение задачи для последующих вариантов.
3.1. Ввести в НИ значения финансов из рис. 3.4.4 для следующего варианта.
3.2. Выполнить п. 2.2—п. 2.7, при этом в п. 2.5 вводить имя сценария, соответствующее значению финансов.
4. Представление результатов решения.
134
Часть II. Задачи оптимизации
4.1. Сервис, Сценарии...
На экране: диалоговое окно Диспетчер сценариев (рис. 3.4.7).
4.2. Отчет-
на экране: диалоговое окно Отчет по сценарию (рис. 3.4.8).
Рис. 3.4.8
Глава 3. Задачи линейного программирования
135
4.3. Структура.
4.4. ОК.
На экране: отчет Итоговый сценарий (рис. 3.4.9).
Рис. 3.4.9
На этом рисунке приведены результаты решения задачи для всех значений финансов, принятых в таблице вариантов (рис. 3.4.4).
Для удобства дальнейшей работы выполним редактирование Итогового сценария.
Алгоритм 3.4.3. Редактирование Итогового сценария
1. Для размещения на экране всего отчета Итоговый сценарий в окне масштаба назначить 50%.
2. Удалить столбцы В и D.
3. Удалить строки 5 и 10.
4. Ввести:
> Прод1:Прод4 в ячейки С5:С8.
> Прибыль в С9.
> Виды ресурсов: трудовые, сырье, финансы в ячейки С10:С12.
5. Увеличить ширину столбца С.
136
Часть II Задачи оптимизации
6. Для наглядного представления данных на диаграммах:
> В дробных значениях Прод1.Прод4 назначить 2 знака после запятой.
> Дробные значения в строках Прибыль, трудовые, сырье и финансы округлить до целых чисел.
7. Убрать Примечание.
После этого отчет Итоговый сценарий будет выглядеть так, как показано на рис. 3.4.10.
С . D В ’' а , ...а
1 ’'•-г.: : • "• НЧ 1 ? 1 "? ' 1 /, «/
л Итоговый сценарий
финансы=50 финансы'100 финансы=150 финансы=200 финансы=250
в Прод1 12 50 10 00 167 0 00 000
• Прод2 000 0 00 000 0 00 000
7 ПродЗ 0 00 6 00 14 33 267 0 00
« Прод4 0 00 0 00 0 00 13 33 16 00
» Прибыль 750 1320 1820 2053 2080
1» трудовые 13 16 16 16 16
И' сырье 75 84 67 51 48
tt1: финансы 50 100 150 200 208
Рис. 3.4.10
Для наглядного представления результатов параметрического анализа на основании отредактированной таблицы (рис. 3.4.10) построим графики.
Алгоритм 3.4.4. Построение гистограммы для искомых переменных
1. Выделить СЗ:Н8.
2. Построить гистограмму по алг. 2.2.1.
3. Выполнить форматирование гистограммы по алг. 2.2.4.
На экране- рис. 3.4.11, на основании которого можно сделать следующие выводы:
□ При различном финансировании в план входит продукция различных видов, однако ни в один вариант не входит выпуск продукции Прод2. Это объясняется тем, что при высоком потреблении ресурсов прибыль от ее производства ниже, чем от производства других видов продукции.
Глава 3 Задачи линейного программирования
137
□ Для значений финансов 50, 150, 200 величина выпускаемой продукции является дробной. Такое положение допустимо при планировании, например, выпуска ткани, добычи нефти и т. д. При выпуске штучной продукции очевидно, что в плане должны быть целые числа. Для получения такого плана следует решать задачу целочисленного программирования, которая рассмотрена в главе 4.
^Используемое сырье
финансы=50 финансы=100 финансы; 150 финансы: 200 финансы-250
Рис. 3.4.11
138
Часть II Задачи оптимизации
Алгоритм 3.4.5. Построение смешанной диаграммы для целевой функции и требуемого сырья
1. Выделить СЗ:НЗ, С9:Н9, СП.НН.
2. Построить смешанную диаграмму по алгоритму, аналогичному алг. 2.2.1.
3. Выполнить форматирование диаграммы по алгоритму, аналогичному алг. 2.2.4 или алг. 2.2.5.
На экране: диаграмма (рис. 3.4.12), на основании которой можно сделать следующие выводы:
□ Увеличение финансирования дает увеличение прибыли, что вполне естественно.
□ При увеличении финансирования, начиная со 150, происходит уменьшение потребляемого сырья. Такой результат является неожиданным, но это не ошибка. Это следствие того, что выпуск ПродЗ, Прод4, обеспечивающих увеличение прибыли, требует при этом меньшего потребления сырья
Из приведенного видно, что параметрический анализ является мощным средством, помогающим принять оптимальное решение.
Глава 3 Задачи линейного программирования
139
3.4.3. Решение по нескольким целевым функциям
В разделе 3.2.4 мы уже говорили, что в задаче распределения ресурсов возможны две постановки:
□ максимизация результата при заданных ресурсах,
□ минимизация используемых ресурсов при заданном результате.
Как решать такие задачи в Excel, посмотрим на примере задачи, приведенной на рис 3.3.4, к которой добавим следующие условия:
1. Назначим граничные условия на все виды выпускаемой продукции 1 < Прод* < 5, которые введем в ячейки В6:Е7 (рис. 3.4.13).
...J А I В I С 1 О 1 Е IFlBlHl I I J I К
>. Переменные
4, ' ИМЯ продг продЗ ярод4 Й Й Й
«начени» иижм.тр. мрам-гр.
, вид f
финансы
1 5 60
1 6
4
1 1 1
5 5 5
70 120 130
Ограничения
1 1 ii
5 4 3 1
6 10 13
оодиюурсы иапр О макс
прием» 0 макс
пеавя часть внак правая часть О = 16
О = по
1 0 = юо
Рис. 3.4.13
2. Сформулируем целевые функции для решения задачи в двух постановках.
Целевая функция при максимизации прибыли, которая остается без изменений, введена в 18 (рис. 3.4.13).
Для решения задачи при минимизации используемых ресурсов в нашу математическую модель (3.1.8) введем дополнительные переменные и запишем задачу в следующем виде.
140
Часть II Задачи оптимизации
F2 =У! +у2 +у3 max
Xj +х2 +х3 +х4 +У] =16
6xj+5х2+4х3+3х4+У[ = 110 4X] +6х2 + 10х3 +1 Зх4 +у1 =100
1<Xj<5;j = 1T4
(3.4.1)
В системе (3.4.1) величины yi, уз, уз — это дополнительные переменные, которые определяют величину неиспользованного ресурса, что было подробно рассмотрено в 3.1.3. Следовательно, если мы хотим минимизировать используемые ресурсы, то должны максимизировать неиспользуемые ресурсы. Целевая функция для такой постановки введена в ячейку 16 (рис. 3.4.13). Решение такой задачи производится по следующему алгоритму.
Алгоритм 3.4.6. Решение задачи по нескольким целевым функциям
1. Ввести условия задачи и все целевые функции в таблицу для ввода условий задачи (рис. 3.4.13), руководствуясь алг. 3.3.1.
2. Назначить первую целевую функцию (18) и ввести ограничения и граничные условия по алг. 3.3.2.
3. Решить задачу по алг. 3.3.3.
На экране: рис. 3.4.14.
Л 8 с D 8 G и t к
1 Переменные
2 ИМЯ прод1 пред 2 продЗ Прод4 у. У* У»
» значение 5 2.8333 5 1 2.1667 42.8333 0 ост ресурсы напр
♦ нижн гр 1 1 1 1 45 макс
3 верхи гр 5 5 5 5 прибыль
• коэф в ЦФ 60 70 120 130 1228.33 макс
Ограничения
« вид левая часть знак правая часть
« трудовые 1 1 1 1 1 16 = 16
« сырье 6 5 4 3 1 110 = 110
11 финансы 4 6 10 13 1 100 = 100
Рис. 3.4.14
Глава 3 Задачи линейного программирования
141
Далее решить задачу последовательно по всем целевым функциям (в нашем примере две целевые функции) аналогично параметрическому анализу по алг. 3.4.2.
4. Сохранить сценарий...
5. Ввести имя Макс приб.
6. Сервис, Поиск решения...
7. Назначить Целевую функцию 16.
8. Выполнить.
9. Сохранить сценарий...
10. Ввести имя Мин ресурсы.
11. Сервис, Сценарии...
На экране: диалоговое окно Диспетчер сценариев.
12. Отчет-
на экране: диалоговое окно Отчет по сценарию.
13. Структура.
14. ОК.
На экране: Итоговый сценарий (рис. 3.4.15).
е| с | п 1 . Е I. F |
2 Итоговый сценарий
2 Текущие значения: Макс приб Мин ресурсы В1
5 Изменяемые ячейки:
S $В$3 5 1
7 $С$3 2.833333333 1
• $D$3 5 1
3 $Е$3 1 1
W $F$3 2.186668667 12
и $G$3 42.83333333 32
12 $Н$3 0 67
13 Ячейки результата:
Н Ш6 о 1228 333333 380
15 Я$9 о 16 16
16 Ш10 о 110 110
17 Я $11 о 100 100
» Примечания столбец "Текущие значения' представляет значения изменяемых
15 ячеек в момент создания Итогового отчета по Сценарию Изменяемые ячейки
28 для каждого сценария выделен серым цветом
Рис. 3.4.15
142
Часть II Задачи оптимизации
15. Выполнить редактирование Итогового сценария аналогично алг. 3.4.3.
На экране: Итоговый сценарий (рис. 3.4.16) после редактирования.
Алгоритм 3.4.7. Представление результатов в виде трехмерной гистограммы
1. Выделить B3:D7 (рис. 3.4.16).
В ... С. I • О
9
2 Итоговый сценарий
2 Макс приб Мин ресурсы
4 Прод1 5 1
5 Прод2 2 83 1
4 ПродЗ 5 1
7 Прод4 1 1
8 У1 217 12
9 У2 42 83 32
Ш уз 0 67
Я Прибыль 1228 380
12 Трудовые 16 16
И Сырье 110 110
Я Финансы 100 100
Рис. 3.4.16
2. Построить трехмерную гистограмму по алгоритму, аналогичному алг. 2.2.1.
3. Отформатировать гистограмму по алг. 2.2.4, алг. 2.2.5.
На экране: рис. 3.4.17.
На рис. 3.4.17 значения Прод1 и Прод2 при минимизации ресурсов не видны. Для устранения этого следует выполнить поворот гистограммы по алгоритмам, аналогичным алг.
2.2.5. Гистограмма после поворота показана на рис. 3.4.18.
Рис. 3.4.17
Рис. 3.4.18
Глава 3 Задачи линейного программирования 143
3.4.4. Решения по заказу
При решении по заказу пользователь задает значения тех величин, которые он хочет иметь в оптимальном решении. Такие задачи могут быть трех видов:
□ назначение величины целевой функции;
□ назначение величин искомых переменных;
□ назначение величин используемых ресурсов.
Следует иметь в виду, что во всех этих случаях возможно появление несовместного решения. Напомним, что действия в этом случае были рассмотрены в 3.3.5. Решение задач будем выполнять на базе условий задачи, приведенной на рис. 3.3.4.
Алгоритм 3.4.8. Поиск оптимального решения при заданном значении целевой функции
1. Вызвать таблицу для ввода условий задачи рис. 3.3.4.
2. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения.
3. Ввести в целевую ячейку F6 назначаемую величину (в примере 1100).
4. Выполнить.
На экране: диалоговое окно Результаты поиска решения (рис. 3.3.10).
5. ОК.
На экране: результат решения (рис. 3.4.19).
А В С В F и
1 Переменные
2 ИМЯ ПРОД1 прод2 продЗ прод4
3 значение 5 0 0 6.15
4 нижн гр
5 верхи гр
* коэф в ЦФ 60 70 120 130 1100 макс
'7 Ограничения
ВИД левая часть знак правая часть
'» трудовые 1 1 1 1 11.1538 <= 16
1» сырье 6 5 4 3 48.4615 <= 110
11 финансы 4 6 10 13 100 <= 100
Рис. 3.4.19
144
Часть II Задачи оптимизации
Алгоритм 3.4.9. Поиск оптимального решения при заданных значениях переменных
1. Вызвать таблицу для ввода условий задачи рис. 3.3.4.
2. В ячейки B4:D4 ввести задаваемые значения, как нижние границы: 10, 5, 6.
3. Сервис, Поиск решения...
4. В диалоговое окно Поиск решения ввести значения для ПродкПродЗ:
> Курсор в окно Ограничения: на строку $В$3>=$В$4.
> Изменить...
На экране: диалоговое окно Изменить.
> Вместо знака >= ввести знак =.
> ОК.
> Аналогично ввести знак = для Прод2 и ПродЗ.
5. Выполнить.
На экране: диалоговое окно Результаты поиска решения (рис. 3 3.11).
Это признак того, что условия задачи несовместны. Действия в этом случае были рассмотрены в 3.3.5.
Алгоритм 3.4.10. Поиск оптимального решения при заданном значении используемых ресурсов
1. Вызвать таблицу для ввода условий задачи рис. 3.3.4 (до ее изменения по алг. 3.4.9).
2. Ввести задаваемое значение используемых ресурсов.
В примере назначаем: трудовые Н9=10.
3. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения.
4. Ввести прежнюю целевую функцию =F6.
5. Выполнить.
6. ОК.
Глава 3 Задачи линейного программирования
145
На экране: результат решения (рис. 3.4.20), из которого видно, что при данных условиях следует выпускать только ПродЗ=10.
А В С ’О ’F"'/ в'
г Переменные
'2 ИМЯ ПРОД1 прод2 продЗ прод4
3' значение 2Е-16 0 10 0
4 нижн гр
3 верхи гр ЦФ напр
S коэф в ЦФ 60 70 120 130 1200 макс
7 Ограничения
« ВИД левая часть знак правая часть
трудовые 1 1 1 1 10 <= 16
13 сырье 6 5 4 3 40 <= 110
11 финансы 4 6 10 13 100 <= 100
Рис. 3.4.20
Приведенные примеры наглядно показывают, как находить решение по заказу, которое дает ответ на вопрос: что надо, чтобы...?
Остается лишь добавить, что при назначении величин можно решать задачу не только с одним значением задаваемой величины, а выполнять по этой величине параметрический анализ, как это было показано в разделе 3.4.2. Полезность проведения такого анализа перед принятием решения не требует дополнительных пояснений.
3.4.5. Решение задач
при условных исходных данных
В жизни далеко не все определено заранее, поэтому при принятии решений очень часто приходится применять слово ЕСЛИ. Если пойдет дождь, надо открыть зонт. Аналогично, если сократится спрос, надо снизить цену на продукцию или повысить ее качество Некоторые задачи оптимизации также можно решать с помощью логических функций, используя условие ЕСЛИ. Такие задачи в главе 1 мы назвали задачами оптимизации при условных исходных данных.
146
Часть II Задачи оптимизации
Решение этих задач начнем с оптимизации условной целевой функции. Основной логической функцией, применяемой при такой оптимизации, является логическая функция ЕСЛИ, имеющая формат записи:
=ЕСЛИ (А;СЗ;С4),
где А — логическое условие или адрес ячейки, в которой записано это условие,
СЗ — адрес ячейки, где записана целевая функция, по которой производится оптимизация при выполнении условия А,
С4 — адрес ячейки, где записана целевая функция, по которой производится оптимизация при невыполнении условия А.
Пример ввода условной целевой функции для основной нашей задачи показан на рис. 3.4.21 (формулы) и рис. 3.4.22 (данные).
А 4* с F в И .
t Переменные
ымя npoat прод2 продЗ ПР<Ш4
а
нижн гр
« **р*н.гр ЦФ н*пр
« коэф* ЦФ so то 120 130 «ЕСПИ(О6+Е6>В6*С6 СУММПРОИЗВ(О$3£$3;[)6-Е€)©Э«Вб*СЗ«Сб) идее
т Ограничения
•на пеем часть знак пр ам« часть
• ’PJOOW* 1 1 1 1 СУММПРОИЗВ(В$3£$3^9£9) < 16
«V сырь* s 5 4 3 СУММПРОИЗВ(В$Э Е$3£10 ЕЮ) t 110
V финансы 4 6 Ю 13 СУММПРОИЗВ(В$3 ЕЮ,В11-Е11) < 250
Рис. 3.4.21
А В С в „ Е г 6 и
Переменные
2 ИМЯ ПРОД1 прод2 продЗ прод4
3 значение
4 нижн гр
3 верхи гр ЦФ напр
6 коэф в ЦФ 60 70 120 130 0 макс
7 Ограничения
в вид левая часть знак правая часть
9 трудовые 1 1 1 1 0 <= 16
1» сырье 6 5 4 3 0 <= 110
11 финансы 4 6 10 13 0 <= 250
Рис. 3.4.22
Глава 3 Задачи линейного программирования
147
Решение задачи производится как обычно. Результат решениз-показан на рис. 3.4.23.
А В С D Е < В н •«
1 Переменные
2 ИМЯ ПРОД1 прод2 продЗ прод4
3 значение 0 0 0 16
* нижн гр
3 верхи гр ЦФ напр
6 коэф в ЦФ 60 70 120 130 2080 макс
7 Ограничения
8 вид левая часть знак правая часть
9 трудовые 1 1 1 1 16 <= 16
18 сырье 6 5 4 3 48 <= 110
11 финансы 4 6 10 13 208 <= 250
Рис. 3.4.23
В общем случае условные целевые функции могут быть составными и для записи условий включать, кроме логической функции ЕСЛИ, логические функции И и ИЛИ, которые вводятся в формате И(А;В), ИЛИ(А;В), где А, В — назначаемые условия.
Формат записи условных вычислений при этом будет иметь вид:
=ЕСЛИ (И (А;В);адресЦФ1; адресЦФ2),
=ЕСЛИ (ИЛИ (А;В); адресЦФ1; адресЦФ2).
При решении практических задач достаточно часто могут возникать логические цепочки. Excel допускает применение функции ЕСЛИ в цепочке до 7 раз.
Аналогично можно вводить условные ограничения.
Условные исходные данные для левых частей (ЛЧ) ограничений вводятся в формате:
=ЕСЛИ(условие; адрес ЛЧ1; адрес ЛЧ2).
Условные исходные данные для правых частей (ПЧ) ограничений вводятся в формате:
=ЕСЛИ(условие; адрес ПЧ1, адрес ПЧ2).
Пример задачи с условными исходными данными для левых частей ограничений приведен на рис. 3.4.24 (формулы) и рис. 3 4 25 (данные)
148
Часть II Задачи оптимизации
А 6 0 £ F <8 И. .4...
t Пепе менные
г ИМЯ прод1 пред 2 продЗ прод4
S значение
« нижн гр
верхи гр ЦФ напр
« козф в ЦФ 60 70 120 130 =СУММПРОИЗВ(ВЗ.ЕЗ;В6.Е6) макс
т Огоаничения
» вид левая часть знак правая часть
» трудовые 1 1 1 1 =СУММПРОИЗВ(В$3:Е$3;В9:ЕЭ) <« 16
сырье 6 5 4 3 =СУММПРОИЗВ(В$3:Е$3;В10:ЕЮ) <= 110
11 финансы 4 6 10 13 =СУММПРОИЗВ(В$3:Е$3;В11:Е11) <- 250
« =ЕСЛИ(Е11»В11;ВЗ*В11) <s 250
Рис. 3.4.24
А В С В е F в н
1 Переменные
2 ИМЯ прод1 прод2 продЗ прод4
3 значение
* нижн гр
S верхи гр ЦФ напр
* коэф в ЦФ 60 70 120 130 0 макс
т Ограничения
3 ВИД левая часть знак правая часть
3 трудовые 1 1 1 1 0 <= 16
1# сырье 6 5 4 3 0 < = 110
« финансы 4 6 10 13 0 <= 250
12 0 <= 250
Рис. 3.4.25
Результат решения задачи приведен на рис. 3.4.26.
А В С D Е F G н
1 Переменные
2 ИМЯ Прод1 прод2 продЗ прод4
3 значение 62.5 0 0 0
4 нижн ip
5 верхи гр ЦФ напр
S коэф в ЦФ 60 70 120 130 3750 макс
7 Ограничения
8 ВИД левая часть знак правая часть
а трудовые 1 1 1 1 62.5 <= 16
w сырье 6 5 4 3 375.0 <= 110
и финансы 4 6 10 13 250.0 <= 250
12 250.0 <= 250
Рис. 3.4.26
Глава 3 Задачи линейного программирования 149
Задачи при условных исходных данных для правых частей ограничений записываются и решаются аналогично. Естественно, что в одной и той же задаче условия для целевой функции, левых и правых частей ограничений могут вводиться одновременно.
Мы полагаем, что возможности, которые дает рассмотренная оптимизация при условных исходных данных, очевидны и не нуждаются в дополнительных пояснениях.
3.5. Список алгоритмов
1. Алгоритм 3.3.1. Ввод данных для решения задачи линейного программирования......................113
2. Алгоритм 3.3.2. Работа в диалоговом окне Поиск решения... 116
3. Алгоритм 3.3.3. Решение задачи линейного программирования................................118
4. Алгоритм 3.3.4. Изменение условий задачи..........122
5. Алгоритм 3.3.5. Преодоление несовместности........124
6. Алгоритм 3.4.1. Вызов отчетов анализа.............128
7. Алгоритм 3.4.2. Выполнение параметрических расчетов... 132
8. Алгоритм 3.4.3. Редактирование Итогового сценария.135
9. Алгоритм 3.4.4. Построение гистограммы для искомых переменных..........................136
10. Алгоритм 3.4.5. Построение смешанной диаграммы для целевой функции и требуемого сырья............138
11. Алгоритм 3.4.6. Решение задачи по нескольким целевым функциям..................................140
12. Алгоритм 3.4.7. Представление результатов в виде трехмерной гистограммы............................142
13. Алгоритм 3.4.8. Поиск оптимального решения при заданном значении целевой функции.............143
14. Алгоритм 3.4.9. Поиск оптимального решения при заданных значениях переменных.................144
15. Алгоритм 3.4.10. Поиск оптимального решения при заданном значении используемых ресурсов.......144
150
Задачи целочисленного программирования
4.1. Постановка задачи и метод решения
4.1.1. Целочисленная задача линейного программирования
Введение неизвестных для вычисления искомых величин появилось в глубокой древности. Более точно датировать отдельные этапы развития науки вообще, а математики в частности, достаточно трудно. Открытия, сделанные в пределах одного городского поселения, могли оставаться неизвестными в других местностях. Предание гласит, что в III в. до н. э., когда один деспо'1 установил свое господство над Китаем, он приказал уничтожить все научные книги. Достоверно известно, что египтяне применяли линейные уравнения за несколько веков до нашей эры. Однако математика достигла уровня настоящей науки только в Древней Греции. Греческий математик Диофант (П-Ш в.в. н. э.) рассматривает уравнения, в которых искомые переменные могут быть только целыми числами. Такие уравнения, которым присвоено его имя, рассмотрим на следующих примерах. Начнем с уравнения первой степени с одним неизвестным:
aixi+аг = 0.
(4.1.1)
Принимаем, что коэффициентами уравнения ai и аг могут быть только целые числа. Тогда решение этого уравнения
xi = - a2/ai
будет целым числом только в том случае, если аг делится на ai без остатка. Значит, уравнения вида (4.1.1) не всегда разрешимы в целых числах.
Например, из двух уравнений вида
3xi - 27 = 0, 5x2 + 21 =0
Глава 4 Задачи целочисленного программирования
151
первое имеет целочисленное решение
Xi = 27/3 = 9,
а второе, в котором
Х2 = - 21/5,
решения в целых числах не имеет.
Рассмотрим теперь уравнение первой степени с двумя неизвестными
aixi+a2X2 = 0, (4.1.2)
где ai, аг — целые числа. Решение уравнения имеет вид
Xi = - (аг/ai) хг
Очевидно, что xi будет принимать целые значения только в том случае, если аг делится на ai без остатка. Например, уравнение
10x1-5x2 = 0 (4.1.3)
имеет решение
xi = 0,5x2.
Из этого примера сделаем следующие выводы:
□ уравнение (4.1.3) имеет бесчисленное множество допустимых решений;
□ решение в целых числах будет существовать только в том случае, если хг будет четным.
При решении целочисленных задач большое значение имеют граничные условия. Поясним это на примере (4.1.3), добавив граничные условия
2 < xi < 8, 1 < хг < 3, (4.1.4)
при которых хг может иметь только одно четное значение Х2= 2.
При этом xi = 0,5 х 2 = 1, что не удовлетворяет заданному
2 < xi < 8.
Следовательно, задача (4.1.3) с граничными условиями (4.1.4) решения не имеет.
После рассмотрения этих вопросов перейдем к постановке задачи оптимизации.
Задачи оптимизации, в результате решения которых искомые переменные должны быть целыми числами, называются задачами целочисленного программирования (ЦЧП).
152
Часть II Задачи оптимизации
В том случае, когда ограничения и целевая функция представляют собой линейные зависимости, задачу называют целочисленной задачей линейного программирования.
Математическая формулировка такой задачи имеет вид:
п
F = £cjXj max
j=i
n
Хал b.
d, <x^Dj __ i = l,m; J = l,n
х3 =l,k < n - целые
(4.1.5)
В этой главе будем рассматривать целочисленные задачи линейного программирования. Целочисленные задачи нелинейного программирования рассматриваются в главе 5.
А теперь познакомимся с методом решения линейных целочисленных задач.
4.1.2. Метод ветвей и границ
С методом решения целочисленных задач познакомимся на следующем примере.
Рассмотрим графическое решение целочисленной задачи
F = 0,32 X] +х2 —> max
2,32 х,+10 х, <49,5 (а)
21X|+ S,4x2 S95 (6) (41'6’
X] >0; х2 >0-целые
Графическое представление системы (4.1.6) показано на рис. 4.1.1.
Рис. 4.1.1
Глава 4 Задачи целочисленного программирования 153
При графическом представлении задач ЦЧП требование целочисленности состоит в том, что решением задачи могут быть только точки, находящиеся на пересечении целочисленных значений х, и хг.
Из рис. 4.1.1 видно, что оптимальным решением задачи без учета требований целочисленности являются координаты вершины А.
Значения xi, хг в этой точке приведены в таблице на рис. 4.1.2, из которой видно, что эти величины требованиям целочисленности не удовлетворяют.
Точка Xi Х2 F Решение
А 2,8 4,3 5,2 Непрерывное
В 3 4 — Недопустимое
С 3 3 3,96 Допустимое
D 2 4 4,64 Оптимальное
Рис. 4.1.2
Естественная попытка получить целочисленное решение сводится к округлению непрерывных значений. В нашем примере округленные координаты, принадлежащие точке В, оказываются за пределами ОДР, т. е. являются недопустимым решением. Предположение, что решение недопустимое, потому что округление было произведено в большую сторону, неверно. В точке С координата xi также округлена в большую сторону, а решение является допустимым. И, наконец, из рис. 4.1.1 видно, что оптимальным решением будут координаты D, которые не являются ближайшими к непрерывному оптимальному решению.
На основании рассмотренного примера можно сделать следующие выводы:
□ округление оптимальных значений переменных в непрерывном решении даже в меньшую сторону может привести к недопустимому решению',
□ оптимальным решением целочисленной задачи может оказаться такое решение, в котором значения переменных не являются ближайшими к оптимальному решению непрерывной задачи.
154
Часть II Задачи оптимизации
Решение целочисленных задач, особенно большой размерности, — процедура весьма трудоемкая, поэтому на практике, если это не противоречит физическому смыслу, требования целочисленности переменных, по возможности, лучше не накладывать.
Так в задаче с целочисленными переменными xi и хг, удовлетворяющими граничным условиям 0 < xi < 4, 0 < хг < 5, число возможных решений N = 4 х 5 = 20. В данном случае можно рассмотреть все возможные сочетания xi и хг, проверить, удовлетворяют ли они ограничениям, и из числа удовлетворяющих ограничениям, т. е. допустимых, выбрать наилучшее в смысле принятой целевой функции.
Такой метод является методом полного перебора, трудоемкость которого с ростом числа переменных и расширением области граничных условий значительно возрастает. Поэтому для реальных задач он оказывается неприемлемым.
Очевидно, что для реальных задач желательно использовать метод, в котором рассматриваются не все возможные сочетания значений переменных, а лишь те, которые удовлетворяют некоторым требованиям.
Таким методом является метод ветвей и границ, который мы рассмотрим на следующем примере:
Задача 1:
F = 7Х] + Зх2 -» max 5Х]-1-2х2<20 (а)
8х,+4х2<38 (б)
X] > 0; х2 > 0 - целые
(4.1.7)
Найдем оптимальное решение этой задачи, как непрерывной xj=l,x2 = 7,5, F1 =29,5,
где верхний индекс у переменных соответствуют номеру задачи. В полученном решении хг1 = 7,5 не удовлетворяет требованиям целочисленности.
В связи с этим для дальнейшего решения составим задачи с граничными условиями, исключающими возможность получения нецелочисленного значения хг1 = 7,5
Такими граничными условиями являются
хг > 8; хг < 7
Глава 4 Задачи целочисленного программирования
155
Граничное условие хг > 8 входит в Задачу 2, решение которой х2=0,75, х2=8, F2 = 29,25.
Далее для исключения получения нецелочисленного значения X2 = 0,75 введем дополнительные граничные условия и решим последовательно две задачи: Задачу 3 — с условиями xi < 1, хг < 7 и Задачу 4 — с условиями xi > 2, хг < 7.
Схема решения всех этих задач приведена на рис. 4.1.3, а результат решения — в таблице на рис. 4.1.4.
Рис. 4.1.3
Величина Задача
1 2 3 4
Х1 1 0,75 1 2
х2 7,5 8 7 5
F 29,5 29,25 28 29
Рис. 4.1.4
Из рис. 4.1.4 видно, что решение Задачи 3, наиболее близкое к непрерывному по значениям переменных, не является оптимальным. Оптимальным же является решение Задачи 4, в котором значения переменных существенно отличаются от непрерывного решения. Приведенный пример наглядно показывает, что округление оптимального решения непрерывной задачи может не обеспечить получения оптимального решения целочисленной задачи
156
Часть II Задачи оптимизации
4.2. Решение и анализ задач в Excel
4.2.1. Решение задач целочисленного программирования
Задачи целочисленного программирования решаются аналогично задачам линейного программирования. Основное отличие заключается во вводе требования целочисленности. Вместе с тем, задачи целочисленного программирования можно решать в нескольких вариантах. Рассмотрим их.
Алгоритм 4.2.1. Обычное решение задачи целочисленного программирования
При выполнении в главе 3 параметрического анализа для величины располагаемых финансов, равной 150, было получено нецелочисленное решение. На примере этой задачи посмотрим, как получить целочисленное решение.
1. Сделать форму для ввода условий задачи, добавив к рис. 3.3.4 требования целочисленности для переменных В6:Е6 и ввести исходные данные (рис. 4.2.1).
* В С О Е F G н
1 Переменные
2 ИМЯ прод1 прод2 продЗ прод4
3 значение
♦ нижн гр
5 веркн гр
« целочислен целое целое целое целое ЦФ напр
7 коэф в ЦФ ео 70 120 130 0 макс
« Ограничения
8 ВИД левая часть знак правая часть
16 трудовые 1 1 1 1 0 <= 16
11 сырье 6 5 4 3 0 < = 110
12 финансы 4 6 10 13 0 <= 150
Рис. 4.2.1
Текст, выделенный полужирным шрифтом на этом рисунке, как и раньше, служит для пояснения и на решение задачи не влияет.
Глава 4 Задачи целочисленного программирования
157
Дальнейшая работа выполняется в диалоговом окне Поиск решения.
2. Вызвать диалоговое окно Поиск решения командой
Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения.
3. Ввести:
> условия, которые были введены для задачи линейного программирования, решенной в главе 3, по алг. 3.3.2;
> требования целочисленности:
• Добавить...
На экране, диалоговое окно Добавление ограничений.
• Курсор в окно Ссылка на ячейку.
• Ввести адрес ячейки ВЗ.
• Курсор на стрелку.
• Ввести целое.
• Повторить ввод требования целочисленности для всех целочисленных переменных.
> После окончания ввода требований целочисленности вместо Добавить... нажать кнопку ОК.
На экране: диалоговое окно Поиск решения с введенными условиями.
4. Параметры...
На экране: диалоговое окно Параметры поиска решения.
5. Установить флажок Линейная модель, что обеспечивает применение симплекс-метода.
6. ОК.
На экране: диалоговое окно Поиск решения.
7. Выполнить.
На экране: диалоговое окно Результаты поиска решения.
8. ОК.
На экране: результат решения (рис. 4 2.2).
158
Часть II Задачи оптимизации
. . .Л.Д., з 4. . й. С» ЗЕЛ и. Лое/ F j I i . -и. .
Переменные
имя прод1 прод2 продЗ прод4
ah значение 1 1 14 0
нижн гр
в верхи гр
"в целочислен целое целое целое це> эе ЦФ напр
7 коэф в ЦФ 60 70 120 130 1810 макс
Ограничения
BHQ левая часть знак правая часть
"на трудовые 1 1 1 1 16 <= 16
и сырье 6 5 4 3 67 <S 110
финансы 4 6 10 13 150 < = 150
Рис. 4.2.2
Сравнительные данные для непрерывного и целочисленного решений приведены на рис. 4.2.3.
’ А В £ Е F '
1 Решение ПРОД1 прод2 продЗ прод4 ЦФ
2 Непрерывное 1 67 0 1433 0 1820
2 ЦЧ решение 1 1 14 0 1810
Рис. 4.2.3
По данным рис. 4.2.3 можно построить гистограммы, наглядно демонстрирующие полученные результаты.
Алгоритм 4.2.2. Построение сравнительных гистограмм
1. Выделить А1:ЕЗ (рис. 4.2.3).
Сравнение рез|льтатов
U33u
лрод1 прод2 продЗ прод4
2. Выполнить алгоритм 2.2.1.
На экране: гистограмма (рис. 4.2.4).
Для построения гистограммы (рис. 4.2.5) в п. 1 алг. 4.2.2 надо выделить А1:АЗ, F1:F3.
Рис. 4.2.4
Глава 4 Задачи целочисленного программирования
159
Иоддоение целевой фднкции
1820
1818
1816
1814
1812
1810
1808
1806
1804
Непрерывное
Рис. 4.2.5
Из этих рисунков видно следующее'
□ В целочисленном решении появился выпуск Прод2, которого не было в непрерывном решении. Такое изменение непрерывного решения для выполнения требований целочисленности не является очевидным.
□ Целевая функция в целочисленном решении уменьшилась. Это показывает, что требование целочисленности, как и любое дополнительное требование, ухудшает целевую функцию.
4.2.2. Представление результатов решения по итерациям
Рассмотрим, что надо сделать, чтобы получать результаты решения задачи на каждой итерации. Возможно два варианта решения этой задачи.
Алгоритм 4.2.3. Представление результатов решения на каждой итерации
1. Выполнить в алг. 4.2.1 п.1—4.
На экране: диалоговое окно Параметры поиска решения.
2. Установить флажки:
> Линейная модель;
> Показывать результаты итераций.
160
Часть II Задачи оптимизации
3. ОК.
4. Выполнить.
На экране: результат решения на первой итерации и диалоговое окно Текущее состояние поиска решения. Поиск решения приостановлен (рис. 4.2.6).
Т еКдщее состояние поиска решения ЕЗ j
7вкащие значения показаны на рабочемлисте.
Z
, Ссеранигь сценарий... |
Рис. 4.2.6
5. Продолжить.
На экране: диалоговое окно рис. 4.2.6.
6. Ввод команды Продолжить повторять до появления диалогового окна с сообщением о том, что решение найдено.
На экране: диалогового окна Результат поиска решения. Решение найдено.
При этом не трудно определить, на какой итерации было получено решение задачи, т. к. число выполненных итераций на единицу больше числа ввода команды Продолжить. Первая итерация выполняется до ввода этой команды.
Алгоритм 4.2.4. Получение сводного отчета по всем итерациям
/ А В С О £ F
переменная X. X,
4' значение 0 0
нижн гр
коар в Ц4> 7 3 0 макс
«У
т левая часть знак правая часть
• огр-лнич (а) 5 2 0 < = 20
9 ограним(6) 8 4 0 < = 38
Выполнение этого алгоритма рассмотрим для задачи, на примере которой в разделе 4.1 2 описывался метод ветвей и границ.
1. Для ввода условий задачи сделать форму, приведенную на рис 4.2.7.
Рис. 4.2.7
Глава 4 Задачи целочисленного программирования 161
2. Ввести условия задачи по алг 3.3.1.
3. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения.
4. Ввести адрес целевой ячейки D5 и установить переключатель максимальному значению.
5. В окне Ограничения ввести:
> граничные условия — ВЗ>=В4, СЗ>=С4;
> требования целочисленности — В3=целое, С3=целое;
> ограничения — D8<=F8, D9<=F9.
6. Параметры...
На экране: диалоговое окно Параметры поиска решения.
7. Установить флажки:
> Линейная модель;
> Показывать результаты итераций.
8. ОК.
9. Выполнить.
На экране: результат решения на первой итерации и диалоговое окно Текущее состояние... (рис. 4.2.6).
10. Сохранить сценарий...
На экране: диалоговое окно Имя сценария.
11. Ввести номер итерации как имя сценария.
12. ОК.
На экране: результат решения на данной итерации и диалоговое окно Текущее состояние, (рис. 4.2.6).
13. Повторить вычисления на каждой итерации:
> Продолжить.
На экране: диалоговое окно Текущее состояние... (рис. 4.2.6).
> Сохранить сценарий...
> Ввести номер итерации как имя сценария.
> ОК.
14. Повторять п. 13 до появления диалогового окна Результат поиска решения. Решение найдено.
6 Зак 115
162
Часть II Задачи оптимизации
15. ОК.
16. Сервис, Сценарии...
На экране, диалоговое окно Диспетчер сценариев.
17. Отчет-
на экране: диалоговое окно Отчет по сценарию.
18. Структура.
19. ОК.
На экране- отчет Итоговый сценарий (рис. 4.2.8).
С В е F в н 1 <1 К L
1
2 Итоговый сценарий
3 Текущие значения итер1 лтер2 итерЗ лтер4 тгерб лтерб лтер7 /1тер8
S Изменяемые ячейки:
S $В$3 0 4 1 4 0 75 1 1 4 2
Т $С$3 0 0 75 0 8 0 7 0 5
• Ячейки результата:
« $D$5 0 28 29 5 28 29 25 7 28 28 29
м $D$8 0 20 20 20 19 75 5 19 20 20
и $D$9 0 32 38 32 38 8 36 32 36
12 Примечание в столбце Текущие значения приведены данные в изменяемых ячейка»
13 на момент создания отчета Итоговый сценарий
Рис. 4.2.8
На этом рисунке приведены результаты решения задачи на всех итерациях.
Для удобства дальнейшей работы выполним редактирование этого отчета.
Алгоритм 4.2.5. Редактирование отчета
Итоговый сценарий
1. Для размещения на экране всего отчета Итоговый сценарий в окне масштаба назначить 50%.
2. Удалить.
> столбец D;
> строку 5;
> строку 7,
Глава 4 Задачи целочисленного программирования
163
> Примечание.
3. Ввести:
> в С5:С6 — хь х2;
> в С7 - ЦФ;
> в С8:С9 — огр(а), огр(б).
4. Удалить столбцы с повторяющимися значениями xi и Х2, которые являются промежуточными технологическими итерациями (это вычислительные тонкости метода ветвей и границ). Такими технологическими итерациями являются итерации 1,3,5,7.
На экране, рис. 4.2.9.
Из этого рисунка видно, что результат решения задачи полностью сов-
в с о Е F
4 Итоговый сценарий
2 итер2 итер4 итерб итер8 падает с приведенными
3 X, 1 0 75 1 2 на рис. 4.1.4 результата-ми решения этой задачи целочисленного программирования методом ветвей и границ. Зада-чам 1,2,3,4 на рис. 4.1 4
4 х. 7 5 8 7 5
5 ЦФ 29 5 29 25 28 29
в огр(а) 20 19 75 19 20
7 огр(б) 38 38 36 36
Рис. 4.2.9 соответствуют итерации 2, 4, 6, 8 на рис. 4.2.9.
4.2.3. Анализ задач целочисленного программирования
Анализ задач целочисленного программирования может выполняться по всем рассмотренным в главе 1 направлениям, по которым можно анализировать задачи оптимизации. Однако анализ целочисленных задач имеет некоторые особенности.
Анализ оптимального решения
Исходя из требований целочисленности для целочисленных задач возможен вызов только одного Отчета по результатам.
164
Часть II. Задачи оптимизации
Алгоритм 4.2.6. Вызов отчета анализа результатов
1. Решить задачу, рассмотренную в алг. 4.2.1.
На экране: диалоговое окно Результаты поиска решения (рис. 3.3.10).
2. Курсор на тип вызываемого отчета: Результаты.
3. ОК.
На экране: вызванный отчет на новом листе, на ярлычке которого указано название отчета Результаты решения.
4. Курсор на ярлычок с названием отчета.
5. М1.
На экране: Отчет по результатам (рис. 4.2.10).
В ’ с В Е F "G
Целевая ячейка (Макс)
7 Ячейка Имя Исходно Результат
8 $F$7 коэф.е ЦФ ЦФ 0 1810
9
»
И Изменяемые ячейки
12 Ячейка Имя Исходно Результат
гз $в$з значение прод! 0 1
U $с$з значение прод2 0 1
К $D$3 значение продЗ 0 14
К $Е$3 значение прод4 0 0
17
18
19 Ограничения
го Ячейка Имя Значение Формула Состояние Разница
21 $F$10 традовые левея часть 16 $F$10<=$H$10 связанное 0
22 $F$11 сырье левая часть 67 $F$11< = $H$11 не связан. 43
23 $F$12 Финансы левая часть 150 $F$12< = $H$12 связанное 0
24 $в$з значение прод1 1 $В$3> = $В$4 не связан 1
28" $С$3 значение прод2 1 $С$3> = $С$4 не связан 1
28 $D$3 значение продЗ 14 $D$3> = $D$4 не связан 14
27 $Е$3 значение прод4 0 $Е$3> = $Е$4 связанное 0
2» $в$з значение прод1 1 $В$3= целое связанное 0
28 $С$3 значение продЗ 1 $С$3= целое связанное 0
30 $D$3 значение продЗ 14 $О$3= целое связанное 0
31 $Е$3 значение прод4 0 $Е$3=целое связанное 0
Рис. 4.2.10
Глава 4 Задачи целочисленного программирования
165
Отчет состоит из трех таблиц.
□ Таблица 1 содержит сведения о целевой функции. В столбце Исходно приведены значения целевой функции до начала вычислений.
□ Таблица 2 в ячейках Е13:Е16 приводит значения искомых переменных, полученные в результате решения задачи.
□ Таблица 3 показывает результаты оптимального решения для ограничений и граничных условий.
В таблице для ограничений:
□ в графе Формула — зависимости для ограничений;
□ в графе Значение — величина использованного ресурса;
□ в графе Разница — величина неиспользованного ресурса. Если ресурс используется полностью, то в графе Состояние указывается связанное. При неполном использовании ресурса в этой графе указывается не связан.
Величины для граничных условий состоят из двух групп:
□ в первой группе — величины, аналогичные значениям для ограничений, при этом Разница показывает разность между найденным значением переменной и заданным граничным условием;
□ во второй группе — значения для требований целочисленности, поэтому все значения являются связанными.
Анализ величины допустимого отклонения
В диалоговом окне Параметры поиска решения есть возможность вводить различные значения Допустимого отклонения, которое будем обозначать D. Посмотрим, что это такое.
Если в примере, иллюстрирующем метод ветвей и границ, при решении назначить допустимое отклонение D=10%, то в задаче 2, в которой задано граничное условие X2 > 8, полученное в решении на данной итерации значение Х2, может быть в пределах 8 ± 10%, т. е. 7,2 < хг < 8,8. При этом оно принимается за целочисленное, равное 8.
Очевидно, что увеличение D ухудшает точность решения, но уменьшает число итераций, т. е. ускоряет решение целочисленной задачи.
166
Часть II Задачи оптимизации
Чтобы определить влияние назначаемого допустимого отклонения в диалоговом окне Параметры поиска решения, следует выполнить по алг. 3.4.2 параметрический анализ с изменением задаваемого значения допустимого отклонения. В качестве примера результаты анализа для задачи (рис. 4.2.11) приведены на рис. 4.2.12.
' Л л j "dr j /
i
имя Х1 х2
3 значение 0 0
4 нижн гр
3 целочислен целое целое ЦФ напр
в коэф в ЦФ 35 2 1 0 макс
7
« огранич левая часть знак правая часть
3 (а) 11 45 0 <= 50
1« (б) 5 3 19 0 <= 95
Рис. 4.2.11
Л . В С
13 Доп откл 0% 20%
14 Число итераций 18 10
15 Целевая ф-ция 16 8 15 4
Рис. 4.2.12
По данным рис. 4.2.12 построена гистограмма (рис. 4.2.13), которая иллюстрирует сделанный выше вывод о влиянии допустимого отклонения.
Рис. 4.2.13
Глава 4 Задачи целочисленного программирования
167
По умолчанию в Excel установлено допустимое отклонение, равное 5%, что вполне приемлемо для большинства практических задач.
Решение по заказу
При решении целочисленных задач с задаваемыми результатами решения достаточно часто может появляться несовместность. Чтобы избежать этого, следует задавать значения не со знаком равенства, а со знаком неравенства. Направление неравенства назначается, исходя из содержания задачи.
Так, если мы хотим в решении получить, например, Прод4 = 2, то следует назначить Прод4 < 2. Тогда вероятность получить несовместность уменьшается.
Если все же несовместность будет получена, то ее следует преодолевать так, как было показано в главе 3.
4.3. Задачи с булевыми переменными
4.3.1. Решение задач с булевыми переменными
Частным случаем задачи целочисленных переменных являются задачи, в результате решения которых искомые переменные х, могут принимать не любые целые значения, а только одно из двух: либо 0, либо 1. Эти переменные, чтобы их отличать от обычных, будем обозначать 5j вместо Xj. Такие переменные в честь предложившего их английского математика Джорджа Буля называют булевыми.
Распространенной задачей с булевыми переменными является задача выбора вариантов из числа заданных.
Рассмотрим такую задачу на следующем примере. Есть 4 варианта
использования ресур-
А В С D Е F сов. Прибыль, которую
S Варианты 1 2 3 4 Наличие приносит каждый ва-
6 прибыль 70 80 90 210 — риант, и ресурсы как
7 трудовые 10 15 22 28 50 потребные, так и рас-
« финансы 200 180 240 250 650 полагаемые, приведе-
ны на рис. 4 3 1
Рис. 4.3.1
168
Часть II Задачи оптимизации
Требуется выбрать такие варианты, чтобы суммарная прибыль была максимальной.
Принимаем, что
§ _ Р> если ваРиант принят J [О, в противном случае
Тогда математическая модель задачи будет иметь вид:
F — 70S] + 8082 + 9083 +2IO84 —max
2008] +18082 + 24083 + 25084 < 650
0<8j<l; j = L4
8j - целые
(4 3.1)
Посмотрим, как решается такая задача.
Алгоритм 4.3.1. Решение задачи с булевыми переменными
1. Для ввода условий задачи составить форму и ввести исходные данные (рис. 4.3.2).
2. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения.
Z А в С О 6 ' F в н
Переменные
й ИМЯ 61 62 6з &4
3 значение 0 0 0 0
4 нижн гр 0 0 0 0
5 верхи гр 1 il 1 1
целочислен целое целое целое целое ЦФ напр
7 коэф в ЦФ 70 80 90 210 0 макс
« Ограничения
9 вид левая часть знак правая часть
13 трудовые 10 15 22 28 0 <= 50
финансы 200 180 240 250 0 <= 650
Рис. 4.3.2
Глава 4 Задачи целочисленного программирования
169
3. Ввести:
> адрес и направление целевой функции: F7; Максимальное значение;
> Изменяя ячейки ВЗ:ЕЗ;
> Граничные условия:
ВЗ >В4, СЗ >С4, D3 >D4, ЕЗ >Е4;
ВЗ < В5, СЗ < С5, D3 < D5, ЕЗ < Е5, (4.3.2)
> Требования целочисленности:
ВЗ — целое; D3 — целое;
СЗ — целое; ЕЗ — целое;
> Ограничения:
F10 < НЮ, F11 < НИ.
4. Параметры...
5. Линейная модель.
6. ОК.
7. Выполнить.
На экране: результат решения (рис. 4.3 3).
А В С О е F б н
1 Переменные
2 ИМЯ Si 5г «з *4
3 значение 0 0 1 1
Л нижн гр 0 0 0 0
5 верхи гр 1 1 1 1
в целочислен целое целое целое целое ЦФ напр
Т коэф в ЦФ 70 80 90 210 300 макс
8 Ограничения
ВИД левая часть знак правая часть
18 трудовые 10 15 22 28 50 <= 50
11 финансы 200 180 240 250 490 <= 650
Рис. 4.3.3
В полученном результате
5з = 1, 54= 1, следовательно, надо принимать варианты 3 и 4, при которых получаемая прибыль F = 300, будет максимальной
170
Часть II. Задачи оптимизации
4.3.2. Анализ задач с булевыми переменными
В задачах с булевыми переменными могут быть выполнены все виды анализа. При этом анализ оптимального решения, который для целочисленных задач состоял только из анализа результатов, для задач с булевыми переменными ничего нового не представляет.
С точки зрения выполнения вариантного анализа для задач с булевыми переменными наибольший практический интерес представляет структурный анализ, под которым, как было принято в главе 1, понимаем поиск оптимального решения при различных ограничениях.
Применение булевых переменных дает возможность накладывать на решаемую задачу целый ряд логических условий типа "если..., то...".
Рассмотрим некоторые из них.
Если в оптимальное решение ДОЛЖЕН входить один вариант ИЛИ другой, то условие записывается так:
5i + 8j = 1.
Если в оптимальное решение МОЖЕТ входить (или не входить) один вариант И другой, то условие имеет вид:
8, + 8j > 0.
В том случае, когда при принятии i-ro варианта ДОЛЖЕН входить j-ый, следует записать
8i = 8, или
8i - 8j = 0.
Таким образом, если накладывается условие ДОЛЖЕН, то в ограничениях ставится знак равенства, если МОЖЕТ — знак неравенства.
Аналогично можно записать логические условия для трех вариантов. Так, если в случае принятия k-го варианта должен быть принят либо вариант i, либо), условие записывается так
8: + 8j = 8k
или
8, + 8j - 8k - 0.
Глава 4. Задачи целочисленного программирования
171
Очевидно, что число таких логических условий не ограничено. Познакомившись с формой записи логических условий, перейдем к структурному анализу.
Алгоритм 4.3.2. Выполнение структурного анализа
1. Составить таблицу вариантов логических условий (рис. 4.3.4).
В с D Е 2. К форме ввода ис-ходных данных (рис. 4.3.2) добавить логические условия,
2 Варианты 1 2 3
3 Условие — $2=®4 S>=3
4 Ограничение — 5г-54=0 WW=3
Рис. 4.3.4 как это показано на рис. 4.3.5.
А в С ШЛ Е F ИЖ н
1 Переменные
2 ИМЯ $1 *2 $5 «4
3 значение 1 1 1 0
4 нижн. гр. 0 0 0 0
3 верхн.гр. 1 1 1 1
8 целочислен целое целое целое целое ЦФ напр
7 коэф.в ЦФ 70 80 90 210 240 макс
в Ограничения
а вид левая часть знак правая часть
18 трудовые 10 15 22 28 47 <= 50
11 финансы 200 180 240 250 620 <= 650
12 62=64 1 -1 1 0
13 Sl+62+5g+5i4>= 3 1 1 1 1 3 >= 3
Рис. 4.3.5
3. Сервис, Поиск решения...
4. В диалоговое окно Поиск решения ввести основные условия (4.3.2).
5. Выполнить.
На экране: диалоговое окно Результаты поиска решения. Решение найдено.
172
Часть II Задачи оптимизации
6. Сохранить сценарий...
7. Ввести имя: Вариант 1.
8. ОК.
9. ОК.
10. Сервис, Поиск решения...
11. Добавить...
F12=H12.
12. ОК.
13. Выполнить.
14. Сохранить сценарий...
15. Ввести имя: Вариант 2.
16. ОК.
17. ОК.
18. Сервис, Поиск решения...
19. Курсор на ограничение:
F12=H12.
20. Удалить.
21. Добавить...
F13 >= Н13.
22. ОК.
23. Выполнить.
24. Сохранить сценарий...
25. Ввести имя: Вариант 3.
26. ОК.
27. ОК.
На этом решение задачи при трех вариантах ограничений заканчивается.
Приступим далее к получению сводного отчета.
Глава 4 Задачи целочисленного программирования
173
Алгоритм 4.3.3. Представление результатов структурного анализа
1. Сервис, Сценарии...
2. Отчет...
3. Структура.
4. ОК.
На экране: отчет Итоговый сценарий.
5. Для наглядности выполнить
с Р Е F
2 Итоговьа «сценарий
3 без доп усп б2=&4 п>=3
S 0 0 1
« $2 0 1 1
«з 1 0 1
а 1 1 0
9 ЦФ 300 290 240
10 Трудовые 50 43 47
и Финансы 490 430 620
необходимое редактирование. Отчет после редактирования приведен на рис. 4.3.6.
По данным рис. 4.3.6 на рис. 4 3.7 построена диаграмма, показывающая влияние дополнительных логических условий, которые, как и любые дополнительные ограничения, ухудшают целевую функцию.
Рис. 4.3.7
174
Часть II Задачи оптимизации
4.3.3. Задачи дискретного программирования
С помощью булевых переменных можно решать еще один очень важный класс практических задач оптимизации. Суть задач этого класса заключается в том, что решением задачи оптимизации может быть не любое число в назначенных граничных условиях (неважно какое: целочисленное или непрерывное), а лишь такое число, которое входит в заданный набор возможных вариантов значений данной искомой переменной. Пример такой задачи для нелинейной задачи дискретного программирования приведен после рассмотрения нелинейных задач в разделе 5.3.2.
4.4. Список алгоритмов
1. Алгоритм 4.2.1. Обычное решение задачи целочисленного программирования...................156
2. Алгоритм 4.2.2. Построение сравнительных гистограмм.........................................158
3. Алгоритм 4.2.3. Представление результатов решения на каждой итерации.................................159
4. Алгоритм 4.2.4. Получение сводного отчета по всем итерациям.................................160
5. Алгоритм 4.2.5. Редактирование отчета Итоговый сценарий..........................................162
6. Алгоритм 4.2.6. Вызов отчета анализа результатов.164
7. Алгоритм 4.3.1. Решение задачи с булевыми переменными.......................................168
8. Алгоритм 4.3.2. Выполнение структурного анализа..171
9. Алгоритм 4.3.3. Представление результатов структурного анализа..............................173
175
Задачи нелинейного программирования
5.1. Методы решения задач нелинейного программирования
5.1.1. Основные понятия
Согласно определению признака экстремума функция f(x) имеет максимум (минимум) в точке х*, если в достаточной близости от этой точки всем значениям х соответствуют значения f(x) меньшие (большие), чем f(x*). Для случая максимума это показано на рис. 5.1.1.
/(*)
f(x*)
Рис. 5.1.1
f(*)
Максимум и минимум функции объединяются понятием экстремум, который может быть как локальным, так и глобальным. На рис. 5.1.2 функция f(x) принимает максимальные значения в вершинах В и D. При этом В > D. В таком случае говорят, что точка В является глобальным максимумом, а точка D — локальным. Аналогично функция f(x) принимает минимальные значения в точках А, С, Е, причем С < А < Е. В этом случае С будет глобальным минимумом, а А и Е — локальными минимумами. Из приведенных примеров видно, что глобальным максимумом (минимумом) называют такой максимум (минимум), который больше (меньше) всех остальных.
176
Часть II Задачи оптимизации
Достаточно часто при введении граничных условий типа х < Ь, показанных на рис. 5.1 3, наибольшее значение функции находится на границе в точке х = Ь. При этом величина f(b) не удовлетворяет приведенному выше признаку экстремума
В таких случаях говорят, что в точ-ке х = b находится оптимум функции f(b) = В.
Рис. 5.1.3 Наибольшее или наименьшее зна-
чение функции без учета того, где находится такое значение, — внутри заданного интервала или на его границе — называют оптимумом. Оптимум — более широкое понятие, чем экстремум. Если экстремум есть не у всех функций, то в практических задачах оптимум, как правило, есть всегда. Так же как и экстремумы, оптимумы могут быть локальными и глобальными.
Существующие методы дают возможность находить только локальные оптимумы. Если же есть подозрение, что в заданном интервале а3 < Xj < bj целевая функция f(xj может иметь несколько оптимумов, то этот интервал следует разбить на п интервалов, в каждом интервале определить свои локальные оптимумы, а затем из всех локальных оптимумов выбрать глобальный. В таком случае задача нахождения глобального оптимума сводится к решению ряда задач, в которых ищется локальный оптимум.
В дальнейшем мы будем рассматривать нахождение только локального оптимума. Следует отметить, что в подавляющем большинстве практических экономических и технических задач оптимизации существует только один оптимум. Задачи нелинейной оптимизации с точки зрения методов решения делятся на два класса:
□ задачи безусловной оптимизации;
□ задачи условной оптимизации.
Задача безусловной оптимизации представляет собой поиск оптимума целевой функции без всяких дополнительных условий, что записывается:
Глава 5 Задачи нелинейного программирования
177
f(x) —> max(min)
Такие задачи на практике встречаются крайне редко, но метод их решения служит основой для решения практических задач оптимизации.
Задача условной оптимизации в общем случае записывается в уже известном виде (1.1.9):
F = f(x j) -» max
g1(xJ)<b1 dj-5-D±„ 1 = 1,m, j = l,n
Такая задача оптимизации кроме целевой функции включает дополнительные условия в виде ограничений и граничных условий.
5.1.2. Поиск решения при безусловной оптимизации
Задачи нелинейной оптимизации могут решаться различными методами. Методы, реализованные в Excel, относятся к методам поиска, который рассмотрим на таком примере. Представим себе человека, находящегося у подножия горы и стремящегося покорить вершину. Для этого ему нужно идти все выше, выше и выше Но как идти? Каким маршрутом? Чтобы составить маршрут, нужно, во-первых, знать начальную точку, во-вторых, выбрать путь движения и, наконец, определить, достижение какой точки следует считать достижением цели.
Путь движения можно представить как последовательность шагов, а каждый шаг при этом определяется направлением движения и расстоянием, которое следует пройти в данном направлении Очевидно, что из любой точки к вершине есть много путей: один пологий, но длинный, другой короткий, но крутой, и между ними бесчисленное множество промежуточных.
Если считать, что гора — это поверхность в трехмерном пространстве, то рассматриваемый пример иллюстрирует идею поиска максимума функции двух переменных. Поиск экстремума
178
Часть II Задачи оптимизации
функции произвольного числа переменных производится аналогично и ведется следующим образом.
Прежде всего надо задаться координатами начальной точки поиска Xj°, j = l,n. Желательно, чтобы выбранная начальная точка Xj° была как можно ближе к искомому экстремуму, что сократит время поиска. Но как же такую точку выбрать? Если решается реальная задача, то специалист всегда знает ожидаемую область нахождения экстремума, в которой и следует задать начальную точку.
Если решающий задачу не является специалистом в данной области, то это к добру не приведет и не только потому, что
Рис. 5.1.4
начальная точка поиска будет выбрана неудачно. Некоторые рекомендации по выбору начальной точки приведены ниже при рассмотрении решения задачи в Excel. Но не будем впадать в пессимизм, будем считать, что задачами оптимизации занимается специалист, знающий свое дело.
Итак, Xj°, j = l, п выбрана. Блок-схема алгоритма поиска приведена на рис. 5.1.4. Графическое изображение такого движения для случая поиска максимума при j = 1,2 показано на рис. 5.1.5.
Идея поиска экстремума заключается в следующем:
1. Задать начальную точку Xj°, j -1, п .
2. В заданной точке Xj° определить направление движения на первом шаге Р].
3. Принять величину шага ц.
Глава 5 Задачи нелинейного программирования
179
4. Определить координаты конца первого шага xj1.
Рис. 5.1.5
5. Вычислить значения признака экстремума на первом шаге.
6. Проверить выполнение признака экстремума.
Если условие признака выполняется, то принимается что экстремум находится в точке хД если нет — аналогично выполняется второй шаг и так далее до выполнения условия, характеризующего достижение экстремума.
Важный вопрос поиска — признак достижения экстремума, т. е. вершины. В Excel таким признаком является величина относительного приращения функции на каждой итерации:
Экстремум считается достигнутым, если выполняется условие
AFk < ДЕзад,
где ЛЕзад — точность, назначаемая при решении задачи.
180
Часть II. Задачи оптимизации
В приведенном алгоритме мы ничего не сказали о том, как же выбирать направление и длину шага на каждой итерации. А этот вопрос является исключительно важным, т. к. именно он определяет точность полученных результатов и быстроту сходимости, т. е. число итераций, за которое будет достигнут экстремум. Методы выбора направления и длины шага бывают различных типов. Рассмотрим некоторые из них, реализованные в Excel.
Методами поиска называются такие методы, которые для определения направления р и величины шага t используют только значение целевой функции. Такие методы называют также методами нулевого порядка.
Градиентные методы или методы первого порядка — это такие методы, в которых для определения направления р и шага t используются значения первых производных целевой функции и определяется ее градиент.
Методами Ньютона или методами второго порядка называются такие методы, в которых для определения направления р и шага t используются значения вторых производных целевой функции.
Чем выше порядок методов, тем больше вычислений на каждой итерации, но тем меньше требуется итераций. И, естественно, наоборот. Наиболее распространенными являются градиентные методы. Такое положение объясняется тем, что с одной стороны, они не требуют на каждой итерации очень больших вычислений, т. к. вычисляется только целевая функция и ее первые производные, а с другой — у этих методов достаточно хорошая сходимость, т. е. они обеспечивают нахождение экстремума за небольшое число итераций.
Градиентные методы по способу определения направления р и шага t имеют много разновидностей. Заметим, что для практического решения задачи суть этих методов знать совершенно не обязательно.
Таковы основные идеи поиска решения в задачах безусловной оптимизации.
Глава 5 Задачи нелинейного программирования 181
5.1.3. Решение задачи условной оптимизации
Общий случай задачи оптимизации (1.1.9)
F = f(x р -> max ё,(хр<Ь,
i = l,m; j = l,n
как мы уже знаем, является задачей условной оптимизации. Есть целый ряд методов решения таких задач. Рассмотрим реализованный в Excel метод множителей Лагранжа, идея которого заключается в преобразовании задачи условной оптимизации в задачу безусловной оптимизации, что производится следующим образом.
1. Преобразовать ограничения-неравенства в уравнения
V,(xj) = g,(xj) - bi, i = l,m; j = 1,n
2. Записать ограничения в виде
V,(Xj) = О, i = l,m; j = l,n .
Аналогично преобразовать граничные условия.
Тогда задача условной оптимизации будет иметь вид:
F = f(Xj) —> max
V,(Xj) = 0
i = l,m; j = 1,n
3. Задачу (5.1.1) представить в виде функции Лагранжа
L^Xj Д, )= F(х3 V, (х})—> max
(5.1.1)
(5 1.2)
i = 1, m; j = 1, n где Xj — множитель Лагранжа.
182
Часть II. Задачи оптимизации
Физический смысл множителей Лагранжа поясним чуть позже . при рассмотрении примера.
4. Определить частные производные и составить систему уравнений
3L(Xj,X1)/9xj =0
auxjAj/ax, =о (5.1.3)
j = l, n;j = l,m
5. Решая систему (5.1.3), определить значения Xt.
6. Подставить значения X] в (5.1.2). При этом (5.1.2) будет представлять собой задачу безусловной оптимизации.
7. Полученную задачу безусловной оптимизации решить методами, рассмотренными выше.
(5.1.4)
Проиллюстрируем метод множителей Лагранжа следующим примером:
F(x,,x2)=x1 + х2 ->min[
xf + х2 =1 J
1. Запишем систему (5.1.4) в форме (5.1.1):
f(xj)=X! +х2 -^min
х2 +х2 -1 - 0
(5.1.5)
тогда
V](X],x2) = х,2 + х22 -1 = 0.
Рис. 5.1.€
Графическое представление задач линейного программирования было рассмотрено в главе 2. Те же подходы применимы и для задач нелинейного программирования. Графическая интерпретация задачи (5.1.5) приведена на рис. 5.1.6.
Глава 5 Задачи нелинейного программирования
183
2. Составим функцию Лагранжа
+х2 - + х2 -l)-»min
J = l,2; i = l
(5.1.6)
В (5.1.6) видно, что множитель Лагранжа определяет, как изменится целевая функция при изменении правой части в данном ограничении на единицу. Следовательно, множитель Лагранжа в нелинейной задаче — это аналог двойственной оценки в линейной задаче.
3. Запишем систему уравнений
ЭЬ/Эх, = 1-2Х1х1 =0
ЭЬ/Эх2 = 1 -2Х[Х2 =0 dL/SXj =-(х^+х2-1) = 0
(5.1.7)
4. В результате решения системы (5.1.7) найдем
*,=~. (5.1.8)
2xi
5. Подставим (5.1.8) в функцию Лагранжа (5.1.6):
L(xhx2, Xq ) = X] +х2 -1/2х, (х^ +х2 -1)-> min (5.1.9)
Задача (5.1.9) является задачей безусловной оптимизации, решение которой производится методами, рассмотренными выше.
5.2. Решение задач нелинейного программирования в Excel
5.2.1. Пример задачи нелинейного программирования
Решение задачи нелинейного программирования рассмотрим на следующем примере. Требуется определить размеры бака, имеющего форму параллелепипеда (рис. 5.2.1) заданного объема.
184
Часть II. Задачи оптимизации
Рис. 5.2.1
Объем бака
V = abh.
Полная поверхность
S = 2(ab) + 2(а + b)h = 2(ab + (а + b)h). (5.2.1)
Принимаем, что стоимость материала
С = kS, (5.2.2)
где к - стоимость единицы площади материала.
Подставив в (5.2.2) значение (5.2.1), получим
С = 2k(ab + (а + b)h). (5.2.3)
После введения рассмотренных величин сформулируем задачу оптимизации следующим образом:
V = abh -» max
2k(ab + (a + b)h)<C3M a,b,h >0
(5.2.4)
В этой постановке требуется определить размеры бака a, b, h, стоимость которого не должна превышать Сщ, чтобы его объем V был максимальным.
Для решения задачи (5.2.4) принимаем следующие конкретные значения:
к = 10 т.руб./м2,
Сзад = 100 т.руб.
Тогда (5.2.4) будет иметь вид
V = abh —> max 20(ab+(a + b)h)<100-a, b, h > 0
(5.2.5)
Глава 5 Задачи нелинейного программирования
185
Система (5.2.5) и будет той задачей, на примере которой мы рассмотрим решение задач нелинейного программирования в Excel.
5.2.2. Решение задачи нелинейного программирования в Excel
Решение задачи нелинейного программирования отличается от решения задачи линейного программирования следующим:
□ назначаются начальные значения искомых переменных xj°;
□ в диалоговом окне Параметры поиска решения не надо вводить Линейная модель.
Второе отличие пояснения не требует, а о первом необходимо сказать следующее.
Начальные значения х3°, как отмечалось ранее, желательно назначать близкими к ожидаемым оптимальным значениям, что ускорит решение задачи. Но это — пожелание. А обязательные требования заключаются в том, чтобы целевая функция в начальной точке не была равна нулю.
F(xjO) * 0.
Это необходимо, чтобы не было деления на ноль при вычислении AFk.
Решение задачи нелинейного программирования рассмотрим на примере задачи (5.2.5), сформулированной в разделе 5.2.1.
Алгоритм 5.2.1. Ввод данных для задачи нелинейного программирования
1. Сделать форму для ввода условий задачи (рис. 5.2.2).
2. Ввести:
> зависимости для объема и стоимости;
> начальные значения Xj°;
> в ячейки ВЗ, СЗ, D3, ЕЗ ввести 1 для обеспечения требования F(xj°) * 0.
186
Часть II. Задачи оптимизации
Л 8 С 0 I Е
1 Переменные
2 а b h
3 значения 1 1 1
4 нижн.гр.
5 Зависимости
«•'
7 обозначение величина знак правая часть
Ш объем V =B3*C3*D3 макс
9 СТОИМОСТ1 С = 20*(B3*C3+(B3+C3)*D3) <= 100
Рис. 5.2.2
3. В ячейках, в которых будет представлен результат, назначить число знаков после запятой. В нашем примере назначаем в ячейках 2 знака после запятой.
4. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения (рис. 5.2.3).
Поиск решения
Установила целевую ячейку. |{С$3 Равной: I» Максимальному значению Г" Минимальному значению Г panama |3
Рис. 5.2.3
5. Ввести:
> целевую функцию С8; максимизировать,
> изменяемые ячейки B3:D3,
> граничные условия ВЗ >= В4; СЗ >= С4; D3 >= D4, > ограничения С9 <= Е9.
6. Перейти к решению задачи.
Глава 5. Задачи нелинейного программирования
187
Алгоритм 5.2.2. Решение задачи нелинейного программирования
1. Параметры...
На экране: диалоговое окно Параметры поиска решения (рис. 5.2.4).
Параметры поиска решения
Максимальное время: секунд
Прааевдое число итераций Jioo
Относительная погрешность 0000С1
Допустимое гпиюнемш: 1^ %
Г~ Яинейная моаель
Г" Показывать результаты итераций Г” Автоматическое досшга&фование
метод
<* Ньютона
Г" Сотфяженнмсграоиентое
Оценка : Производные -
(* Линдйная ' i (• Прямые С {Смарвпшая С Центральные
Рис. 5.2.4
В этом окне назначаются параметры поиска решения.
Отметим следующее:
> При поиске оптимального решения смысл этих параметров знать не обязательно, т. к. их значения, применяемые по умолчанию, обеспечивают нормальное решение практических задач.
> Все необходимые сведения о параметрах и командах, вводимых в этом диалоговом окне, можно получить, вызвав Справку.
> Основные параметры, смысл которых очевиден, а их назначение не требует специальных знаний, приведены ниже.
Максимальное время (в секундах). По умолчанию принимается 100.
Предельное число итераций. По умолчанию принимается 100.
188
Часть II Задачи оптимизации
Если этих значений для нахождения решения окажется недостаточно, то на экране появится соответствующее сообщение, после чего вычисление можно повторить при тех же параметрах без их повторного назначения.
Относительная погрешность обеспечивает назначение величины ДЕзад в признаке достижения оптимального решения
Fk+, - Fk „
AFk= дя -X<AF3M
Используемая по умолчанию величина 0,000001, обеспечивает достаточно высокую точность решения. Заметим, что снижение точности уменьшает число итераций и сокращает время поиска решения.
Говоря о назначении метода решения, можно отметить, что нет методов лучших и худших, т. к. применение того или иного метода поиска оптимального решения зависит от типа нелинейности. При этом, как мы уже отмечали, в методе Ньютона используются вторые производные, что требует больших вычислений на каждой итерации, но оптимальное решение находится за меньшее число итераций, чем в градиентных методах, в которых используются первые производные.
После этого небольшого отступления продолжим работу по рассматриваемому алгоритму.
2. Если нужно, назначить необходимые значения перечисленных выше параметров.
3. ОК.
4. Выполнить.
На экране, результат решения (рис. 5.2.5).
й/и; . "С* | 9 Е
1 Переменные
2 а b h
3 значения 1 29 1 29 1 29
4 нижн гр
5 Зависимости
1 обозначение величина знак правая часть
объем V 2 15 макс
9 СТОИМОСТ1 С 100 00 <= 100 00
Рис. 5.2.5
Глава 5 Задачи нелинейного программирования
189
Получено решение ВЗ = СЗ = D3 = 1,29, т. е. а = b = h = 1,29.
Следовательно, искомый бак имеет форму куба. Такое решение, в принципе, очевидно. Это подтверждает справедливость математической модели и метода решения, что весьма полезно, так как дает уверенность в том, что и другие оптимальные решения, которые далеко не всегда столь очевидны, также справедливы.
5.2.3. Анализ оптимального решения
После успешного завершения поиска оптимального решения на экране появляется диалоговое окно Результаты поиска решения
С помощью этого диалогового окна можно вызвать отчеты трех типов:
□ результаты;
□ устойчивость;
□ пределы.
Отчеты анализа по результатам и пределам аналогичны таким же отчетам для задач линейного программирования, рассмотренным в 3.4.1. Они не содержат новой информации, которой бы не было при представлении результатов решения, поэтому мы их рассматривать не будем. Отчет по устойчивости, который отличается от отчета по устойчивости для задачи линейного программирования, может быть вызван с помощью следующего алгоритма.
Алгоритм 5.2.3. Вызов отчета по устойчивости
На экране: диалоговое окно Результаты поиска решения.
1. Курсор на Устойчивость.
2. ОК.
На экране: вызванный отчет на новом листе, на ярлычке которого указано название отчета.
3. Курсор на ярлычок с названием отчета.
4. М1.
На экране: отчет по устойчивости (рис. 5.2.6), который состоит из двух таблиц.
190
Часть II Задачи оптимизации
W®»/' ''
Изменяемые ячейки
Резупьт. Нормир.
лн Ячейка Имя значение градиент
$В$4 значения а 1 29 0 00
$С$4 значения b 1 29 0 00
$D$4 значения h 1 29 0 00
«1 Ограничения
Резупьт. Лагранжа
Ячейка Имя значение Множитель
и* $С$10 С величина 100 00 0 03
Рис. 5.2.6
В таблице 1 приводятся значения для переменных:
□ результат решения задачи;
□ нормированный градиент — величина, приводимая при выборе некоторых методов в диалоговом окне Параметры поиска решения.
В таблице 2 приводятся значения для ограничений:
□ величина стоимости;
□ множитель Лагранжа — анало! двойственной оценки в задаче линейного программирования, рассмотренной в 5.1.3, который показывает, как изменится целевая функция при изменении правой части в ограничении на единицу.
5.2.4. Вариантный анализ
Все задачи, решаемые при вариантном анализе, рассмотренные для задач линейного программирования, могут решаться аналогично и при анализе нелинейных задач. Поэтому посмотрим только, как производится параметрический анализ, под которым, как мы уже говорили, будем понимать решение задачи оптимизации при различных значениях того параметра, который ограничивает улучшение целевой функции.
Параметрический анализ будем проводить для задачи, приведенной на рис. 5.2.5, решая ее при различных значениях заданной стоимости С, равной последовательно 100, 200, 300, 400, 500. Выполнение параметрического анализа было подробно описано в алг. 3.4.2. Здесь же мы рассмотрим лишь основные шаги.
Глава 5 Задачи нелинейного программирования 191
Алгоритм 5.2.4. Выполнение параметрического анализа
1. Подготовительные работы:
1.1. Вызвать на экран результат решения задачи (рис. 5.2.5).
1.2. Удалить результат решения, находящийся в B4:D4.
2. Решить задачу для 1-го варианта (Сзад= 100):
2.1. Ввести 100 в ячейку ЕЮ.
2.2. Сервис, Поиск решения...
2.3. Выполнить.
На экране: диалоговое окно Результаты поиска решения.
2.4. Сохранить сценарий...
На экране: диалоговое окно Сохранение сценария.
2.5. Ввести имя сценария С=100.
2.6. ОК.
На экране: диалоговое окно Результаты поиска решения.
2.7. ОК.
На экране: результат решения задачи для 1-го варианта.
3. Решить задачу для последующих вариантов:
3.1. Ввести в ЕЮ значения С для следующего варианта.
3.2. Выполнить п. 2.2 — п. 2.7, при этом в п. 2.5 вводить имя сценария, соответствующее значению С ,ад.
4. Представление результатов решения.
4.1. Сервис, Сценарии...
На экране: диалоговое окно Диспетчер сценариев.
4.2. Отчет...
На экране: диалоговое окно Отчет по сценарию.
4.3. ОК
На экране: Итоговый сценарий (рис. 5.2.7).
На этом рисунке приведены результаты решения задачи для всех значений С эад
192
Часть II Задачи оптимизации
4 ... «... £ ' О Л Е ' /F ‘ 6 Я р л
г' Итоговый сценарий
3 Текущие значения с=100 с=200 с=300 с=400 с=500
5 Изменяемые ячейки:
в $В$4 2 89 1 29 1 83 2 24 2 58 2 89
I $С$4 2 89 1 29 1 83 2 24 2 58 2 89
в $D$4 2 89 1 29 1 83 2 24 2 58 2 89
9 Ячейки результата*.
19 $С$9 24 06 2 15 6 09 11 18 17 21 24 06
11 $С$10 500 00 100 00 200 00 300 00 400 00 500 00
12 Примечание в столбце Текущие значения приведены данные
13 в изменяемых ячейках на момент создания отчета Итоговый
14 сценарий
Рис. 5.2.7
Для удобства дальнейшей работы выполним редактирование Итогового сценария, аналогичное описанному в алг. 3.4.3. Тогда отчет Итоговый сценарий будет иметь такой вид, как показано на рис. 5.2.8.
А В С В Е F
2 Итоговый сценарий
3 Стоимость >00 200 300 400 500
4 а 1 29 1 83 2 24 2 58 2 89
в ь 1 29 1 83 2 24 2 58 2 89
в h 1 29 1 83 2 24 2 58 2 89
Объем 2 15 6 09 11 18 17 21 24 06
Рис. 5.2.8
Для наглядного представления результатов параметрического анализа построим график на основании Итогового сценария (рис. 5.2.8).
Алгоритм 5.2.5. Построение графиков для параметрического анализа
1. Выделить A3:F7.
2. Построить графики по алг. 2 2.1.
3. Выполнить форматирование графиков по алг. 2.2.4, 2.2.5. На экране’ рис 5.2 9.
Глава 5 Задачи нелинейного программирования
193
Построенные графики наглядно показывают зависимости между тремя величинами: стороной, объемом и стоимостью. Задавая одну из них, легко найти значения двух остальных. Так например, получение бака объемом V = 15 будет стоить С = 260, при этом сторона бака будет а ® 2,5. Заметим, что точное значение стороны а = 2,466212 определено с помощью формулы, введенной в ячейку таблицы.
Из приведенного видно, что параметрический анализ является мощным средством получения информации, которая может быть полезна при принятии оптимальных решений.
5.3. Решение и анализ нелинейных целочисленных задач
5.3.1. Решение нелинейных целочисленных задач
Решение целочисленных задач нелинейного программирования производится аналогично решению обычных нелинейных задач, но с наложением дополнительного требования целочисленности переменных. Решение таких задач рассмотрим на примере задачи, приведенной на рис. 5.2.2. Будем решать задачу по следующему алгоритму.
7 Зак 115
194
Часть II Задачи оптимизации
Алгоритм 5.3.1. Решение нелинейных целочисленных задач
1. Вызвать таблицу исходных данных для непрерывной задачи (рис. 5 2.2).
2. Ввести строку 6, в которой отмечается, какие переменные должны быть целыми (рис. 5.3.1).
Л В е В & £
1
2 Переменные '
3 * b h
4 значения 1 1 1
S НИЯМ.ГР.
6 цепе* целое целое целое
7 Зависимости
8
8 обозначение величина знак правая часть
1« объем V 1 00 макс
11 стоимость с 60 00 <= 100 00
Рис. 5.3.1
Подчеркнем, что ввод этих требований в таблицу исходных данных не является необходимым для решения. Он может быть полезен для того, чтобы не забыть ввести требование целочисленности в диалоговом окне Поиск решения.
3. Ввести в ячейки B4:D4 начальные значения переменных; 1.
4. Сервис, Поиск решения...
На экране; диалоговое окно Поиск решения с введенными условиями:
> целевую функцию СЮ; максимизировать;
> изменяя ячейки B4;D4;
> граничные условия В4 >= В5; С4 >= С5; D4 >= D5;
> ограничения CH <= ЕН.
5. Добавить требование целочисленности: В4 целое, С4 целое, D4 целое.
6. ОК.
Глава 5 Задачи нелинейного программирования
195
7. Выполнить.
На экране: результат решения задачи (рис. 5.3.2).
С» И* 3; -Л ’"г . В - В В V
Переменные
15 ' а -F & *• 'h'C
к значения . 2 00 1 00 1 00
47? ниЖпэ.
18 иелое " целое целое целое
Зависмност
28 обозначен^ величина знак правая часть
2f1 объем . 1 V 2 00 макс
с 100 00 <= 100 00
Рис. 5.3.2
На рис. 5.3.3 приведены результаты решения непрерывной и целочисленной задач.
1 л В '’С . О • F С
25 задача a Ь' h объем стоимость
28 непрерывн. 1 29 1 29 1 29 2.15 100 00
27 целочислен. 2 00 1 00 1 00 2.00 100 00
28 ¥ХУДШ. ЦФ в % 6.98
Рис. 5.3.3
Результаты решения непрерывной и целочисленной задач можно сравнить. Ухудшение целевой функции, рассчитанное по формуле
FHenp — Fu 2,15—2,0 , _ --------- _ ------ _ Q ^непр 2Д5
наглядно показывает, что требование целочисленности, как и каждое дополнительное требование, ухудшает целевую функцию.
5.3.2. Задачи дискретного программирования
Как отмечалось в 4 3, под дискретным программированием понимают поиск такого оптимального решения, в котором переменные могут принимать не любые значения, а только те, которые входят в заранее заданный набор допустимых значений
196 Часть II Задачи оптимизации
При этом задаваемые значения могут быть любыми, в том числе и не целочисленнными.
Задачу дискретного программирования проиллюстрируем на примере поиска оптимальных размеров бака при дополнительном условии, что сторона "а" может принимать любое значение из заданных: 4,25; 5,5; 6,75. Решение такой задачи производится по следующему алгоритму.
Алгоритм 5.3.2. Решение задач дискретного программирования
1. Составить математическую модель задачи.
Для этого к составленной в разделе 5.2.1 модели надо добавить дополнительные требования к величине стороны а, приведенные выше, которые записываются следующим образом:
а = 4,25 81 + 5,5 82 + 6,75 8з,
откуда
a-4,258j-5,582 -6,7583 =0 (а)
8,4-82+83=1 (б)
0<8; <1; 8j -целое
J = u
(5 3 1)
2. Вызвать форму ввода исходных данных для задачи о баке (рис. 5.2.2).
3. Ввести в ячейки В4, С4, D4 начальные значения х,: 1.
4. Ввести, как это показано на рис. 5.3.4:
> столбцы для ввода булевых переменных 8j, 82, 83;
> строки для верхних границ;
> требования целочисленности;
> ограничения (а) и (б).
5. Ввести данные для ограничений:
(а) - в Е13 = В4 - В13*Е4 - C13*F4 - D13*G4,
(б) - в Е14 = E4+F4+G4.
6. Сервис, Поиск решения...
Глава 5 Задачи нелинейного программирования
197
На экране: диалоговое окно Поиск решения.
/рЛ'' i 1*//
^9 a J Ь
значений' 1 1 1 1 1 1
нижнгр. 0 0 0
1 1 1
7 целое '' целое целое целое
в
S Зависимое™
1в лайчасть
11 V 1 макс
12 С .* • 50 <= 100
13 otpW -4 25 -5 5 -6 75 -3 25 = 0
1* °ф@.. 1 1 1 3 = 1
Рис. 5.3.4
7. Ввести
> максимизацию целевой функции Е11;
> изменяя ячейки B4.G4;
> граничные условия для х/
В4 >= В5, С4 >= С5; D4 >= D5;
> граничные условия для бу
Е4 >= Е5; Е4 <= Е6, Е4 — целое;
F4 >= F5; F4 <= F6; F4 — целое;
G4 >= G5, G4 <= G6; G4 — целое;
> ограничения"
Е12 <= G12;
Е13 = G13,
Е14 = G14
8. Выполнить.
На экране" результат решения задачи (рис. 5.3.5).
Из полученного решения видно, что сторона а = 4,25, а две остальные стороны равны друг другу b = h = 0,55. При этом объем V = 1,30 меньше полученного в задаче без дополнительных ограничений (рис 5 3 3).
Таким образом, с помощью дискретного программирования можно получить одно из заранее заданного набора значений, но при этом будет ухудшение целевой функции
198
Часть II Задачи оптимизации
4 в,' "-rSW ’ 7 л*© '' V
Переменные
'j '•W; 4J *- 7/
/< ч значения 4.25 0.55 0.55 1 0 0
йЖ. 0 0 0
1 1 1
'7 целое целое целое
9 Эмин ЗИМНИМ
18 яевлгасп» "анаг правая часть
1.30 макс
12 100.00 = 100 00
13 опэСа) 4 25 5 5 6 75 0 00 = 0
14 опз(б> 1 = 1
Рис. 5.3.5
5.3.3. Анализ нелинейных целочисленных задач
Из всех отчетов по анализу оптимального решения для рассматриваемых целочисленных задач может быть получен только один Отчет по результатам. В нем нет какой-либо новой информации, поэтому вызывать его не имеет смысла. Что же касается вариантного анализа, то он может быть произведен точно так же, как для обычной нелинейной задачи. В качестве примера выполним параметрирование по алг. 5.2.4.
Сравнительный результат параметрирования для непрерывной задачи и задачи дискретного программирования приведен на рис. 5.3.6.
•. ' А в С В В F
4
2 Итоговый сценарий
3 с»280 с«300 о*400 о»Ш
3 я ‘ч. £ 1 ' я. . . 4 25 4 25 4 25 4 25 425
,'У .7- 0 55 1 05 1 50 1 92 2 31
1 0 55 1 05 1 50 1 92 2 31
3 Объем дмоф. 1 30 4 66 9 56 15 66 22 72
9 Объемнепоео 2 15 6 09 11 18 17 21 24 06
10 ЗДмаМ»^ W 0 60 0 77 0 86 0 91 0 94
Рис. 5.3.6
Глава 5 Задачи нелинейного программирования 199
Из приведенных данных видно, что дополнительное требование дискретного программирования в задаче о баке уменьшает величину объема для баков различной стоимости.
В заключение подчеркнем, что выполнение анализа для таких задач, как и для всех решаемых задач, является чрезвычайно полезным средством принятия оптимального решения.
Но, впрочем, мы уже говорили об этом и неоднократно.
5.4. Список алгоритмов
1. Алгоритм 5.2.1. Ввод данных для задачи нелинейного программирования..................................185
2. Алгоритм 5.2.2. Решение задачи нелинейного программирования..................................187
3. Алгоритм 5.2.3. Вызов отчета по устойчивости..189
4. Алгоритм 5.2.4. Выполнение параметрического анализа.191
5. Алгоритм 5.2.5. Построение графиков для параметрического анализа......................192
6. Алгоритм 5.3.1. Решение нелинейных целочисленных задач.............................................194
7. Алгоритм 5.3.2. Решение задач дискретного программирования..................................196
200
Задачи стохастического программирования
6.1. Постановка задачи
6.1.1. Основные понятия
Рассматривая в главе 3 задачу распределения ресурсов, мы принимали, что точные значения величин сь ач, Ь (i = iTrn,j = i7n) нам известны. Иными словами, мы полагали, что эти величины являются детерминированными. Однако на практике так бывает далеко не всегда. Достаточно часто точные значения с,, ач, Ь, просто не существуют, т. к. эти величины являются случайными. Как было указано в главе 1, задача оптимизации, в которую входят случайные величины, называется задачей стохастического программирования.
Универсальных методов решения задач стохастического программирования, пригодных для всех классов задач оптимизации, нет. Мы будем рассматривать решение только одного распространенного на практике класса стохастических задач — стохастических задач линейного программирования применительно к распределению ресурсов.
Прежде чем приступить к решению таких задач, вспомним некоторые понятия из теории вероятностей. Случайной величиной называется такая величина, которая может принять то или иное значение, причем заранее неизвестно, какое именно. Примером случайной величины в задачах распределения ресурсов может служить фактическое количество располагаемого ресурса. Математическое ожидание случайной величины, которое будем обозначать М[х], определяет ее среднее значение
1 п
<611)
где xi — значение случайной величины в i-ой реализации, п — число реализаций.
Глава 6 Задачи стохастического программирования 201
В Excel математическое ожидание определяется с помощью функции СРЗНАЧ(значения чисел) в категории Статистические.
Среднее квадратическое отклонение, обозначаемое ст[х], определяет разброс значений случайной величины относительно ее математического ожидания Рассматривая величину п[х], следует иметь в виду, что оно может описываться двумя несколько отличающимися характеристиками.
Дело заключается в следующем. При обработке очень больших массивов данных (например, рост человека в биологических исследованиях) вводят понятие генеральной совокупности всех возможных значений случайной величины. Совершенно очевидно, что замерить рост всех людей невозможно, поэтому замеряют рост только определенного количества людей, которое называют выборкой
Соответственно среднее квадратическое отклонение может быть как для всей генеральной совокупности, так и для выборки. Заметим, что в Excel эта величина называется стандартное отклонение. В наших дальнейших расчетах мы будем определять среднее квадратическое отклонение только для выборки, которое вычисляется с помощью функции Excel СТАНДОТ-КЛОН(значения чисел) по зависимости
I п
/22(х, -Mbd)2
----- (6.12)
Третьей важной количественной характеристикой случайной величины, которая показывает относительную величину разброса случайных величин, является коэффициент вариабильно-сти
Определение этих характеристик случайной величины проиллюстрируем на следующем примере. Решая в главе 3 задачу распределения ресурсов (3 1 8)
202
Часть II Задачи оптимизации
F = 60Х] +70х2 +120х3 +130х4 max
Xj + х2 + х3 +х4 <16
бХ] +5х2 +4х3 + Зх4 <110
4х, +6х2 +10х3 +13х4 <100
х3 >0; j-l?4
мы принимали, что числовые значения cJ; a,j, Ь, известны и равны тем величинам, которые указаны в этой системе. Если же эти величины являются случайными, то для дальнейшей работы необходимо определить их количественные характеристики. Определение таких характеристик рассмотрим на примере исходных данных для располагаемого сырья.
Алгоритм 6.1.1. Определение количественных характеристик случайной величины
1. Ввести замеренные значения случайной величины. На рис. 6.1.1 они введены в ячейки B4:G4.
Я в С в f г' G И 1 J
Г Поставка сырья
2
3 день пн ВТ ср ЧТ пт сб Mfx] •И Vfx]
4 поставка 140 110 85 80 130 115 110 23.9 0.2
Рис. 6.1.1
2. Курсор в Н4.
3. Мастер функций, Статистические, СРЗНАЧ.
4. Далее.
На экране: диалоговое окно СРЗНАЧ.
5. Курсор в В4.
6. МН, протянуть до G4.
7. Готово.
На экране: среднее значение Н4=110.
При необходимости можно назначить нужное число знаков после запятой
Глава 6 Задачи стохастического программирования
203
8. Курсор в 14.
9. Аналогично вызвать функцию СТАНДОТКЛОН() и ввести тот же массив данных.
10. Курсор в J4.
11. Ввести =14/Н4
На экране, значение коэффициента вариабильности.
Рассмотрим еще один вопрос. Зависимость между несколькими случайными величинами описывается с помощью уравнения регрессии, которое имеет вид:
У = f(xi, Х2,... Хп). (6.1.4)
Характер функциональной зависимости (линейная, полиномиальная, степенная и т. д.) назначает пользователь, исходя из физического смысла описываемых зависимостей. Мерой точности определяемого уравнения регрессии является величина R2, имеющая пределы
0<R2< 1.
Чем ближе R2 к единице, тем уравнение регрессии точнее описывает статистические данные.
В Excel есть несколько способов определения уравнения регрессии, которые мы будем рассматривать в тех местах книги, где эти способы будут применяться.
6.1.2. Нормальный закон распределения случайной величины
Наиболее полной характеристикой случайной величины является закон ее распределения. Законов распределения предложено достаточно много. На практике наибольшее распространение получил нормальный закон распределения. Как и все законы распределения, нормальный закон имеет две формы представления:
□ плотность распределения f(x),
□ функцию распределения F(x)
204
Часть II. Задачи оптимизации
Эти формы вычисляются по следующим зависимостям:
□ плотность распределения
(х~т)2 f(x)=—2°2 ,
где т = М[х] — математическое ожидание случайной величины; ст = ст[х} — среднеквадратическое отклонение;
□ функция распределения
F(x)= Jf(x)dx,
— СО
которая иногда называется интегральной функцией, имеет большое практическое значение, т. к. с помощью зависимости
Р(х < а) = F(x)
дает возможность определить вероятность появления случайной величины х < а. График плотности распределения показывает, какие значения случайной величины наиболее вероятны. Теоретически случайная величина х может изменяться в пределах
-оо< X < 00.
Однако с точностью до долей процента случайная величина может находиться в интервале
М[х] - Зст[х] < х < М[х] + 3 ст[х], что и принимается за пределы изменения случайной величины. В Excel эти обе формы находятся с помощью функции
НОРМРАСП(а; срзнач; стандоткл; интегральная),
где а — задаваемое значение случайной величины, для которой находятся значения f(a) или F(a),
срзнач; стандоткл — величины, определенные по алг. 6.1.1, интегральная — определяет форму, для которой определяется значение.
При интегральная — ИСТИНА определяется значение интегральной функции, т. е. функции распределения F(a). При интегральная — ЛОЖЬ определяется значение плотности распределения f(a).
Глава 6. Задачи стохастического программирования 205
Алгоритм 6.1.2. Определение плотности и функции распределения для нормального закона
1. По алг. 6.1.1 определить М[х], а[х].
Вычисленные значения находятся (рис. 6.1.2) в ячейках М[х] = Н4 = ПО; а[х] = 14 =23,9.
Рис. 6.1.2
2. Найти пределы изменения случайной величины х:
Xmin = М[х] - 3 а[х] = 38,
Хшах = М[х] + 3 а[х] = 181.
3. Для получения плавных кривых f(x) и F(x) в интервале изменения случайной величины между хт1П и хтах целесообразно принять примерно 20 промежуточных значений.
4. Принятые значения, для которых будут определяться f(x) и F(x), ввести в ячейки B7.W7.
5. Для ячеек B8:W9, в которых будут вычисляться значения f(x) и F(x), назначить представление результата с тремя знаками после запятой.
6. Курсор в В8.
7. Мастер функций, Статистические, НОРМРАСП.
На экране: диалоговое окно НОРМРАСП (рис. 6.1.3).
8. Ввести (выделяя соответствующую ячейку):
> х - В7;
> среднее — Н4;
> стандартное отклонение — 14;
> интегральный — ЛОЖЬ.
9. Готово.
На экране: В8 = 0,000.
206
Часть II Задачи оптимизации
Рис. 6.1.3
10. Скопировать В8 в В9
11. Курсор в В9
12. В строке ввода в диалоговом окне изменить ЛОЖЬ на ИСТИНА.
13. <Enter>.
На экране В9 = 0,001
14. Выделить В8 В9 и скопировать протаскиванием по алг 2 115 до W8 W9
На экране искомые значения f(x) и F(x)
Алгоритм 6.1.3. Построение графиков плотности и функции распределения для нормального закона
1. Выделить А7 W9 (рис 6 1 2)
2. Мастер диаграмм.
3. Выделить место для построения диаграммы
4. Далее.
5. Смешанная, формат 3.
6. На шаге 4 мастера диаграмм ввести
> в строках,
> 1 стр метки оси х,
> 1 столб метки легенды
Глава 6 Задачи стохастического программирования
207
7. На шаге 5 мастера диаграмм ввести название диаграммы и осей
8. Убрать фон по алг 2 2 4
На экране графики f(x) и F(x) (рис 6 1 4)
График плотности распределения f(x), как мы отмечали, показывает вероятность появления каждого значения случайной величины Из построенного графика видно, что наиболее вероятно появление случайной величины для М[х] = 110, что совершенно закономерно, т к наиболее вероятным значением случайной величины является ее математическое ожидание
Для определения вероятности появления случайной величины в некотором интервале используется график функции распределения С его помощью можно решать две задачи прямую и обратную Решение прямой задачи дает ответ на вопрос какова вероятность того, что случайная величина х будет не менее а Из рис 6 1 4 видно, что
Р(х< НО) = 0,5
Обратная задача ставится так чему должна быть равна случайная величина х, чтобы вероятность ее появления равнялась бы заданному значению а Из рис 6 14 видно, что вероятность а = 0,8 будет справедлива для случайной величины х < 130, т е
Р(х < 130) = 0,8
208
Часть II Задачи оптимизации
Ответ на вопрос обратной задачи можно получить также с помощью функции НОРМОБР(вероятность; среднее; станд._откл), которая вызывается командами:
Мастер функций, Статистические, НОРМОБР.
При решении практических задач достаточно часто применяют закон нормального стандартного распределения. Этот закон описывает вероятность появления случайной величины t, имеющей
M[t] = 0, o[t] = 1, в интервале
- 3 < t < 3.
Переход от случайной величины х к случайной величине t производится по зависимости
х-МБ
В Excel для этой цели применяется функция НОРМАЛИЗАЦИЯ (х; среднее; стандартное_откл.).
Алгоритм 6.1.4. Построение функции распределения и ее графика для нормального стандартного распределения
1. Значения A7:W7 (рис. 6.1.2) скопировать в A4:W4 (рис. 6.1.5).
Ж.1 в с © е- Л И .Д..7 «1 I2 3 4 s И/ « в F я S т V *4 'М
М[<] •|«|
по 23 0
* I 38 «5 52 59 06 73 80 87 94 Ю1 1Ю 117 124 131 138 145 152 159 К8 173 180 182
’Ж t 30 27 24 21 t8 15 13 10 -07 •04 00 03 08 09 12 15 18 21 23 26 30 30
пч ООО ООО 001 002 003 006 ою 017 025 035 050 062 072 081 088 093 096 098 099 too too too
Рис. 6.1.5
2. Курсор в В5
3. Мастер функций, Статистические, НОРМАЛИЗАЦИЯ.
4. Далее.
5. Ввести в диалоговом окне:
> х — В4;
Глава 6 Залечи стохастического программирования 209
> среднее — Н2;
> стандартное_откл. — 12;
6. Готово.
На экране: в ячейке В5 значение -3.
7. Скопировать В5 протаскиванием на C5:W5.
На экране: значения t в интервале -3<= t<= 3.
8. Курсор в В6.
9, Мастер функций, Статистические, НОРМСТРАСП.
10. Ввести z — В5.
11. Готово.
На экране: В6 = F(-3) = 0,00.
12. Скопировать В6 на C6:W6 протаскиванием.
На экране: значения функции распределения F(t).
13. Перед построением графика F(t) можно назначить точность представления результатов: для t один знак после запятой, для F(t) — 2 знака.
14. Выделить A5:W6.
15. Мастер диаграмм, График, Вид 2.
18. На шаге 4 мастера диаграмм:
> выбрать переключатель — в строках;
> считать — 1 стр.
1 столб.
17. На шаге 5 мастера диаграмм:
> убрать легенду;
> ввести названия диаграммы и осей.
18. Готово.
На экране: график F(t).
19. Убрать фон по алг. 2.2.4, отформатировать диаграмму по алг. 2.2.5.
На экране: рис. 6.1.6.
210
Часть II Задачи оптимизации
Функция распределения нормального стандартного закона
значение t
Рис. 6.1.6
С помощью этого графика можно решать как прямую, так и обратную задачу. Так, из рис. 6.1.6 видно, что F(0) = 0,5, т. е. вероятность появления величины, не превышающей математическое ожидание (а = 0,5). Если мы хотим выяснить, чему равно значение t, чтобы F(t) = 0,8, то на графике видно’ этому соответствует значение t = 0,9. Обратная задача может быть решена также с помощью функции НОРМСТОБР( ), которой мы будем пользоваться при решении задач стохастического программирования.
Алгоритм 6.1.5. Работа с функцией НОРМСТОБР()
1. Задаваемую вероятность ввести в ячейку А1 = 0,8.
2. Курсор в ячейку, где должен быть результат (А2).
3. Мастер функций, Статистические, НОРМСТОБР.
4. Далее.
На экране: диалоговое окно НОРМСТОБР.
5. Ввести адрес ячейки, в которую было введено заданное значение.
В данном примере — адрес А1.
6. Готово.
На экране- А2 = 0,84.
Глава 6 Задачи стохастического программирования
211
6.1.3. Варианты постановки задачи стохастического программирования
Математическая модель задачи оптимизации включает в себя, как мы знаем, три элемента:
□ целевую функцию;
□ ограничения;
□ граничные условия.
Посмотрим, как следует составлять математическую модель задачи оптимизации для стохастической задачи. Если коэффициенты q в целевой функции — случайные величины, то возможно две постановки задачи оптимизации:
□ максимизация (минимизация) среднего значения целевой функции, которая называется М-постановкой:
M[F]->max(min), (6 1.5)
□ максимизация вероятности получения максимального (минимального) значения, которая называется Р-постановкой:
P[Fmax(min)]->max (6.1.6)
Если случайными являются величины ац и Ь>, входящие в ограничения, то i-oe ограничение
<b,
j=i
записывается так:
(6 1.7)
где а, — заданная вероятность, с которой должно быть выполнено i-oe ограничение.
Запись граничных условий может быть выполнена в двух вариантах. Если в ограничении
dj < х, < D, (6.1 8)
ф, Dj — детерминированные величины, то ограничение остается в виде (6.1.8). Если dj, Dj — случайные величины, то (6.1.8) рассматривается как два ограничения
212
Часть II Задачи оптимизации
при этом каждое из них записывается аналогично (6.1.7). Так, xj < Dj будет иметь вид
P[xj < Ц] < а,
Надо сказать, что в практических задачах граничные условия dj, Dj —случайными величинами являются крайне редко, поэтому их запись будем сохранять в виде (6.1.8). Объединяя целевую функцию, ограничения и граничные условия, можно сформулировать две постановки задачи стохастического программирования.
М-постановка
Mfr]—> max (min
п
(6.1.10)
P-постановка
Р Fmax(min)]-» max
n
(6.1.11)
Обе постановки представляют собой задачи нелинейного программирования.
6.2. Решение и анализ задач в М-постановке
6.2.1. Детерминированный эквивалент
Задача стохастического программирования (6.1.10) М-постановке:
в
Глава 6 Задачи стохастического программирования
213
непосредственно решена быть не может. Для решения (6.1.10) следует перейти к ее детерминированному эквиваленту. В этом случае целевая функция записывается так:
M[F]=^M[cJ]tj . (6 2.1)
j=i
Детерминированный эквивалент ограничений имеет следующий вид:
п _____________
^M[a,J]xJ+t(a1)A(o2[a1J]x2 + o2[b1]<M[b1], (6 2.2) j=i
где а, — задаваемый уровень вероятности, с которой должно выполняться i-oe ограничение;
t(a,) — вычисляется с помощью функции НОРМСТОБР(а,)
Введем обозначение
wi = л/°2[аи]х] + а2[Ь1]- (6-2.3)
Эта величина зависит от разброса значений ац, Ь,.
В случае детерминированных исходных данных W,=0 и (6.2.2) будет иметь знакомый вид детерминированной задачи:
п
<Ь, (6.2.4)
J=1
Из (6.2.2) видно, что в задаче распре,ЛЙения ресурсов член t(a,)Wt — это величина дополнительного ресурса, который требуется вследствие вероятностных исходных данных. Таким образом, при решении задачи будем пользоваться детерминированным эквивалентом:
п
F = М [cj jxj -е max(mm) j=i
£M[a1J]xj+t(a,)W,<M[b1] j=i______________
w. Ч°2ЬН+°2[Ь’]
dj ~XJ ~Dj
i = l,m, j = l,n
(6.2 5)
214
Часть II Задачи оптимизации
6.2.2. Подготовка данных
Решение задачи стохастического программирования (6.2 5) будем рассматривать для задачи распределения ресурсов, которую мы решали в главе 3. При вводе исходных данных достаточно часто, как мы уже говорили, значения а[ач], а[Ь,] бывают неизвестны. В этом случае можно задать коэффициент вариабиль-ности v(x) = g[x]/M[x] и, зная который, определить
ст[х] = v(x) М[х] (6 2 6)
Подготовка данных производится по следующему алгоритму
Алгоритм 6.2.1. Ввод исходных данных для детерминированного эквивалента
В качестве средних значений принимаем те значения, которые были в детерминированной задаче Ввод данных производится в таблицы, которые представлены на рис 6.2.1 (числовые данные) и рис 6 2 2 (формулы)
А в с р Е ч Г в н J 4 к i м
t
г ИМЯ прод1 прод2 продЗ прод4
3 значение 100 100 100 100
* нижн гр
S рерхн/р
» м [«] ЦФ напр
т коэф в ЦФ 60 70 120 130 386 макс
• м «1
S детерм лев часть М(Ь]
W трвдоеые 1 1 1 1 400 1600
я сырье 6 5 4 3 1800 110 00
с ФИНАНСЫ 4 6 ю 13 3300 100 00
и в К15 введено =НОРМСТОБР|К141
и с л 1 « [Ь ] (Ь- o.to
« грцдовые 02 02 02 02 32 (а)- 084
сырье 12 1 08 06 22
я ФИНАНСЫ 08 12 2 26 20
« [Ь] V «иг* лев честь виак М[Ь1
tt традовые 004 004 004 004 016 1024 322 2 71 871 18
« сырье 144 1 064 036 344 484 22 08 1858 3858 110
ФИНАНСЫ 064 144 4 676 1284 400 2032 1710 50.10 <8 ИО
«е п
и традовые 040
сырье 0 51
2$ Финансы 0 34
Рис. 6.2.1
Глава 6 Задачи стохастического программирования
215
мкйли
Подготовка данных
яияи ПРОД1 прод2 продЗ прод4
1 значение 1 1 1 1
оияя
| верхи гр
м cil
I|коэф в ЦФ 60 70 120 130
М[ >1
OIMHi
I'll | трудовые 1 1 1 1
1 If} сырье 6 5 4 3
1 | финансы 4 6 10 13
о? :
»( и
113 1 трудовые =(В10 E12)"D13 =(В10 Е12)*О13 = (В10 E12/D13 =(В10 Е12)'О13
=(В10 Е12)*О13 =(В10 Е12)*О13 = (В10 E12/D13 =(В10 Е12)"О13
1финансы =(В10 E12)*D13 =(В10 Е12)"О13 =(В10 Е12ГО13 = (В10Е12)‘О13
«* [а Р»'
1К1 трудовые =(В15Л2)*(В$3А2) =(С15Л2)*(С$3Л2) =Ф15Л2Г(О$3Л2) -(Е15А2)ЧЕ$3А2)
1211 сырье =(В16Л2ПВ$3Л2) =(С1бл2)*(С$Зл2) = (D16A2)‘(D$3A2) =(Е16Л2)*(Е$3Л2)
11 финансы =(В17Л2)"(В$3А2) =(С17Л2)"(С$3Л2) = (017Л2)‘(0$3Л2) =(Е17Л2)"(Е$3Л2)
I .... 1 у/* */* л *. в л; . M.li‘ 1 . . л <•
напр
| 9 |«СУММПРОИ38(В$3 EJ3.B7 Е7) макс
[.* I детерм лев часть И[Ы
4»(«СУММПРОИ38(В$3 Е$З.В10 ЕЮ) 16
НИ 1«СУММПРОИЗВ(В$3 ES3.B11 Е11) 110
|<е(-СУММПРОИЗВС8$3 Е93.В12 Е12) 100
>1Ы 0.в I
“(G10 G12)*O13 1(a)- -НОРМСТОБР(Л 4)
»(G10 G12VD13
(G10 G12)*O13 I
«ЧЬ1 w M0.WCW жак йГТЕв
рОН-СУММ(В19 Е19) G15A2 -KOPEHb(CyMM(F19.G19)) H19*J$15 F10+HS <•
|»ЬСУММ(В20 Е20) »G16*2 «KOPEHb(CyMM(F2C.G20» «H20*J$16 •F11M20 1W |
1» <«СУМЫ(В21 Е21) »G17A2 »KOPEHb(CyMM(F21.G2l)) -H21*J$15 mJ
Рис. 6.2.2
1. Ввести
> М[с3] в В7 Е7,
> М[ау] в В10Е12,
> M[bJ в НЮ Н12,
скопировав их из детерминированной задачи, решенной в главе 3
216 Часть II Задачи оптимизации
2. Задаться значением v, которое введено в D13 (рис. 6.2.1).
3. Определить значения о[аи]:
> Курсор в В15.
> Выделить В15:Е17.
> Ввести = (B10:E12)*D13.
> <Shift>+<Ctrl>+<Enter>.
На экране: в В 15:Е 17 введены значения о[ач].
4. Определить значения afbj:
> Курсор в Н15.
> Выделить Н15:Н17.
> Ввести = (Н10:Н12) *D13.
> <Shift>+<Ctrl>+<Enter>.
На экране: в Н15:Н17 введены значения о[Ьф
Очевидно, что если конкретные значения ст[ач], a[b.] известны, то их можно вводить непосредственно. После того, как исходные данные сформированы, следует перейти формированию детерминированного эквивалента.
Алгоритм 6.2.2. Формирование детерминированного эквивалента
1. Ввести целевую функцию:
> Курсор в F7.
> Мастер функций, Математические, СУММПРОИЗВ.
> Ввести аргументы функции СУММПРОИЗВ. ВЗ ЕЗ; В7:Е7.
п
2. Ввести У^м[ап ]х,, для этого скопировать F7 в F10:F12. j=i
3. Ввести значения <г[ач] х,1 2 3.
> Курсор в В19.
> Ввести В19 = (B15a2)*(BS3 л 2).
> Скопировать В19 в В19:Е21.
Глава 6 Задачи стохастического программирования
217
4. Ввести значения с2[Ь:]:
> Курсор в Н19.
> Ввести Н19=Н15 л 2.
> Скопировать Н19 в Н20:Н21.
5. Ввести Wt = ^а2[аи]х2+ o[b,]:
> В F19 ввести СУММ (В19:Е19).
> Скопировать F19 в F20 F21.
> Курсор в 119.
> Ввести = KOPEHb(CYMM(F19; Hl9)).
> Скопировать 119 в 120:121
6. Принять значения eq.
Принимаем для всех ограничений одинаковые а = 0,8 и вводим их в К14.
При этом в К15 ввести НОРМСТОБР(К14).
7. Вычислить стохастическую составляющую t(a)W,
> Курсор в Л 9.
> Ввести J19 = П9*К 15.
> Скопировать J19 в J20:J21.
8. В I19J21 назначить точность представления результатов 2 знака после запятой.
9. Ввести левые части ограничений:
> Курсор в К19.
> Ввести K19=F10+J19.
> Скопировать К19 в К20:К21.
10. Для удобства работы скопировать Н19:Н12 в М18:М21.
11. Для наглядности выделить блок К18:М21, который будем вводить при дальнейшем решении задачи.
218
Часть II Задачи оптимизации
6.2.3. Решение задачи
Решение задачи стохастического программирования производится как решение обычной задачи нелинейного программирования.
Алгоритм 6.2.3. Решение задачи стохастического программирования
1. В ячейки ВЗ:ЕЗ (рис. 6.2.1) ввести начальные значения х3°: B3=C3=D3=E3=1.
2. Сервис, Поиск решения...
3. В диалоговом окне Поиск решения ввести:
> Целевая функция: F7, максимизировать.
> Изменяя ячейки: ВЗ.ЕЗ.
> Граничные условия.
ВЗ >= В4 D3 >= D4
С З >= С4 ЕЗ >= Е4
> Ограничения:
К19 <= М19
К20 <- М20
К21 <= М21.
4. Выполнить.
На экране, результат решения (рис. 6.2.3)
Прод1=ВЗ=8,04;
Прод2=СЗ=0;
ПродЗ=ВЗ=4,84;
Прод4=ЕЗ=0;
Целевая функция =F7=1063
Полученное решение нецелочисленное. Если необходимо иметь целочисленное решение, тогда требуется выполнить следующее.
Глава 6 Задачи стохастического программирования
219
F
JL г
‘ 3
4
S
8«
имя значение нижн гр верхи гр
Рм,лыат решения
прод1 прод2 продЗ прдд4
8.04
О 00 4 84 0 00
т.
8
коэф в ЦФ
60
М[с] 70 120
м1‘1
130
ЦФ напр 1 063 макс
№. Я № 13
трудовые сырье финансы
10
5
6
02
детерн пев часть
12 88
67 59
80 53
3
13
М[Ь1
16 00
110 00
100 00
в К15вдедено^НОРМСТОБР(К14)
п № » № Ж»
Ца)= 0 00
12
02
06
26
02
12
08
02
08
2
трудовые сырье финансы
<F 1Ь J
32
22
20
•* 1а Г«' «' 1Ь 1 V t(a)’V лев часть аиак
трудовые 2 59 0 00 0 34 0 00 3 52 10 24 3 71 ООО иве <4
сырье 9310 0 00 14 97 0 00 108 08 484 24 33 0 00 8759
финансы 4138 0 00 93 59 0 00 134 97 400 2313 0 00 I 9953 <ж
.jW
МО
к
6
Рис. 6.2.3
Алгоритм 6.2.4. Решение целочисленной задачи стохастического программирования
1. Выполнить в алг. 6.2.3 п.1 — п. 3.
2. В диалоговом окне Поиск решения дополнительно ввести: В3=целое О3=целое
С3=целое Е3=целое
3. Выполнить.
На экране: результат решения (рис. 6.2.4).
Сравнительные результаты решения при разных условиях приведены на рис. 6.2 5.
В последней строке таблицы приведено относительное ухудшение целевой функции
dF - ЦФ/ЦФдет.
220
Часть II Задачи оптимизации
Рис. 6.2.4
Детерминир Стохастическая
непрерывн целочислен
Пред 1 10 8 04 7
Прод 2 0 0 0
Прод 3 6 4 84 5
Прод 4 0 0 0
ЦФ 1320 1063 1020
dF 1 00 0 81 0 77
Рис. 6.2.5
Из приведенного видно, что решение задачи с учетом стохастических исходных данных ухудшает полученные результаты оптимального решения
6.2.4. Анализ задачи
При анализе задачи стохастического программирования можно выполнить все, что было рассмотрено для детерминированной нелинейной задачи Обозначим величину, характеризующую статистические факторы.
К, = t(a,)W„
где а.| — задаваемый уровень вероятности выполнения ограничений, W, — находится по формуле (6 2 3) и определяется вероятностными характеристиками o[a,J, o[bj ограничений
Глава 6 Задачи стохастического программирования
221
При этом результаты решения задачи стохастического программирования, естественно, зависят от а, и W,. Определение этих зависимостей производится по следующему алгоритму.
Алгоритм 6.2.5. Анализ влияния стохастических условий на результат решения задачи
1. Принять значение коэффициента вариабильности и ввести его в таблицу (рис 6.2.3).
Принимаем v=D 13=0,20.
2. Принять заданный уровень вероятности и ввести его в таблицу (рис 6.2 3)'
а,=К14=0,50
3. Решить задачу по алг. 6.2.3.
4. Последовательно решить задачу при различных значениях аь Результаты решения приведены на рис. 6.2.6 в ячейках В30:Н37.
|MV * * . у • , Л , «Г. У. »” « Л-S
ид Перемените
X значение 6 72 0 00 618 ООО
п нижн го
КЗ верхи го ЦФ напр
ин ж коэф в ЦФ 60 70 120 130 1145 макс
ИМО
кя
кх Средние значения
КП трудовые 1 1 1 1 12 90 <= гё од
КЯ сырье 6 5 4 3 65 04 <8 110 00
п Финансы 4 6 10 13 88 66 <S 100 00
ш
ЕЗ и=
кта
КЗ трудовые 004 0 04 0 04 0 04
КП сырье 144 100 0 64 0 36 в Н19 вв »дено sHOPMCTOBPf Н1?1
КЗ Финансы 064 144 4 00 6 76
КП Ч«)= 0 84
ЕЯ
ЕП трудовые 181 0 00 153 000 13 57 310 ii.04 <8 ки
ЕЛ сырье 65 07 0 00 24 42 0 00 89 49 7 96 73 00 <8 ЙАМ
ЕП финансы 28 92 0 00 1& 0 00 18155 1134 100 00 <8 100 00
КП
КП
[ v=
КЗ
ЕП ЦФ отн U1A ЦФ прод1 прод2 продЗ прод*
КП 0 50 1320 100 1000 000 6 00 000
m 0 60 1265 0 96 8 96 0 00 6 06 0 00
КЗ 0 70 1208 0 92 791 0 00 612 0 00
КП 0 80 1145 0 87 6 72 000 618 0 00
.КП 0 90 1064 0 81 5 39 0 00 5 05 103
КП 0 995 845 0 64 0 86 0 23 4 23 2 07
0 997 804 0 61 0 00 0 00 4 74 181
Рис. 6.2.6
222
Часть II Зоаочи оптимизации
По результатам решения можно построить графики, наглядно показывающие влияние вероятности.
Алгоритм 6.2.6. Графическое представление влияния вероятности на результат решения
1. Выделить ячейки В30:С37 (рис. 6.2.6).
2. Мастер диаграмм.
3. Выполнить алг. 2.2.5:
> шаг 2 — график;
> шаг 3 — вид 2;
> шаг 4—1 столб.;
> шаг 5:
убрать легенду;
ввести названия диаграммы и осей.
4. Убрать фон по алг. 2.2.4.
5. Курсор на график.
6. М1.
7. Вставка, Линия тренда...
На экране: диалоговое окно Линия тренда (ярлычок Тип).
8. Ввести Полиномиальная Степень 2.
9. Параметры.
На экране: диалоговое окно Линия тренда (ярлычок Параметры).
10. Установить флажки:
Показывать уравнение на диаграмме Поместить на диаграмму величину R2.
11. ОК.
12. Курсор в любое место таблицы.
13. М1.
14. Убрать выделения и рамку
15. Перейти к форме встроенного графика.
На экране: рис. 6.2.7.
Глава 6 Задачи стохастического программирования
223
Полученное уравнение регрессии имеет R2=0,97, что является признаком высокой достоверности полученного уравнения регрессии. С помощью найденной зависимости можно определить величину целевой функции для любого значения вероятности в пределах
0,5 < р < 0,99
Аналогично можно построить график и найти уравнение регрессии (рис. 6.2.8) для относительного ухудшения целевой функции.
224
Часть II. Задачи оптимизации
Выше было рассмотрено влияние величины вероятности а, значение которой вводилось в К14 (рис. 6.2.3).
Аналогично, вводя различные значения коэффициента вариа-бильности v, можно получить результаты решения в зависимости от V. Такие результаты для а = 0,8 приведены на рис. 6.2.9, по которым аналогично рис. 6.2.7, рис. 6.2.8 построены графики на рис. 6.2.10, рис. 6.2.11.
ft WMiKt да жтж
V ЦФ отн.ухуд ЦФ прод1 прод2 продЗ прод4
-ж* 0.00 1 320 1.00 10.00 0.00 6.00 0.00
0.05 1 274 0.97 9.14 0.00 6.05 0.00
0.10 1 230 0.93 8.30 0.00 6.09 0.00
0.15 1 187 0.90 7.50 0.00 6.14 0.00
0.20 1 145 0.87 6.72 0.00 6.18 0.00
0.25 1105 0.84 6.11 0.00 5.52 0.58
0.30 1067 0.81 5.45 0.00 5.08 1.01
Рис. 6.2.9
Глава 6. Задачи стохастического программирования 225
Внимание заслуживает тот факт, что коэффициент достоверности R2 уравнения регрессии для двух последних графиков равен 1. Это значит, что данная зависимость является не вероятностной, а функциональной.
И еще одно полезное замечание. С помощью таблицы (рис. 6.2.3) можно определить потребные ресурсы при различных условиях без решения задачи. Для этого в ВЗ:ЕЗ следует ввести заданные значения выпускаемой продукции, в К14 — уровень вероятности а, в D13 — коэффициент вариабильности. При этом в К19:К21 будут указаны потребные ресурсы.
Не вызывает сомнения, что приведенные выше методы решения задачи стохастического программирования в М-постановке очень полезны для таких работников, которые отвечают за качественную подготовку данных при принятии оптимальных решений.
6.3. Решение и анализ задач в Р-постановке
6.3.1. Варианты задач в Р-постановке
В разделе 6.1.3 был сформулирован общий случай Р-поста-новки (6.1.11):
В этой системе предусмотрены вероятностные зависимости как для целевой функции, так и для ограничений. При решении таких задач возможны различные варианты сочетания условий для целевой функции и ограничений, приведенные на рис. 6.3.1.
ЦФ Ограничения
детерм вероятн. 3
Р=РоаД 1
Р->тах 2 4
Рис. 6.3.1
8 Зак. 115
Решение задачи в P-постановке для различных вариантов будем рассматривать на примере задачи распределения ресурсов. При этом во всех вари
226
Часть II Задачи оптимизации
антах для решения задачи используется нормальный закон распределения целевой функции. Поэтому наш первый шаг — определение параметров этого закона.
Алгоритм 6.3.1. Определение параметров закона распределения целевой функции
1. Принять значение математического ожидания целевой функции М[ЦФ] в виде
п
м[цф>£м[С1]хг
j=i
В результате решения задачи (рис. 6.1.11) было получено
М[ЦФ] = 1320
2. Определить значение среднего квадратического отклонения целевой функции о[ЦФ], которое, в зависимости от имеющихся исходных данных, может быть определено двумя путями. Если известны значения о[сф то
а[ЦФ]=!£(о[с}]Х])2 (6 3.1)
\ j=i
Если значение a[cj] неизвестно, то о[ЦФ] можно определить по зависимости
о[ЦФ] = у[ЦФ]М[ЦФ], (6 3 2)
где у[ЦФ] — коэффициент вариабильности.
В дальнейшем будем решать задачу для случая, когда значения o[cj] неизвестны. Для этого принимаем значения у[ЦФ] = 0,2 и находим по (6.3.2) о[ЦФ] = 0,2 х 1320.
3. Вычислить значения плотности распределения Г(ЦФ) и функции распределения Р(ЦФ) по данным, приведенным в таблице в Fl, II на рис 6.3 2.
Глава 6 Задачи стохастического программирования
227
Л им к» ч С о * Е F, р & f . 1 <4 . /Ж
i М[ЦФ)= 1320 <г[ЦФ1= 264
2
3 ЦФ 528 608 688 768 848 928 1008 1088 1168 1248
4 НЦФ] 0 0000 0 0000 0 0001 0 0002 0 0003 0 0005 0 0008 0 0010 0 0013 0 0015
Ж* 0 00 0 00 0 01 0 02 0 04 0 07 012 019 0 28 0 39
- L м К О F Я Ж Т Ж
(продолжение)
2
1320 1400 1480 1560 1640 1720 1800 1880 1960 2040 2112
« 0 0015 0 0014 0 0013 0 0010 0 0007 0 0005 0 0003 0 0002 0 0001 0 0000 0 0000
5 0 50 0 62 0 73 082 089 094 0 97 098 0 99 100 100
4. По результатам вычислений построить графики ЦЦФ) и Р(ЦФ) (рис. 6.3.2).
Определив закон распределения целевой функции, можно приступить к решению задачи в Р-постановке.
228
Часть II Задачи оптимизации
6.3.2. Задачи с детерминированными ограничениями
Чтобы проще было понять идею решения задачи в Р-постановке, не будем ее усложнять вероятностными ограничениями и начнем с варианта на рис. 6.3.1.
Детерминированные ограничения.
При решении задачи будем назначать целевую функцию в двух видах:
□ максимизацию вероятности Р[ЦФ],
□ получение заданного значения вероятности Р[ЦФ].
Начнем со второго случая, для которого задача имеет вид: р[цф]=Рид п
ХаЛ<Ь, j=i ___ ___
dJ<xJ<DJ;i = l,m;j = l,n
Решение такого варианта задачи производится по следующему алгоритму.
Алгоритм 6.3.2. Решение задачи с детерминированными ограничениями при целевой функции Рзад
1. Ввести исходные данные задачи в ячейки А1:Н12, как это показано на рис. 6.3.3.
Л в С 0 Е F 6 и 1 J
1 РГЦФ]
2 ИМЯ прод1 прод2 продЗ прод4 10.50 1
3 значение 1.00 1.00 1.00 1.00
* нижн гр
5 верхи гр VS 0.2
S МЩФ] £Г[ЦФ1 = У‘М[ЦФ1
7 коэф в ЦФ 60 70 120 130 1 320 £Г[ЦФ| = 264
« Ограничения
S пев часть знак прав часть
10 трудовые 1 1 1 1 4 <= 16 00
11 сырье 6 5 4 3 18 <= 110 00
12 финансы 4 6 10 13 33 <= 100 00
Рис. 6.3.3
Глава 6 Задачи стохастического программирования
229
2. В J5 ввести значение у(ЦФ)=0,2.
3. В J7 ввести значение о(ЦФ)=1320*0,2=264.
4. Ввести целевую функцию задачи в Р-постановке:
> Курсор в 12.
> Мастер функций, Статистические, НОРМРАСП.
> Ввести:
х: F7
среднее: 1320
стандартное_откл.: 264 интегральный: ИСТИНА
> Готово.
На экране: в 12 =0,5.
Это значит, что полученное при решении задачи значение целевой функции F7 = М[ЦФ] = 1320 имеет вероятность 12 = Р[ЦФ] = 0,5.
5. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения.
6. Будем решать задачу для Рзад = 0,6.
Ввести:
> Целевая ячейка 12.
> Равна значению 0,6.
> Изменяя ячейки: ВЗ:ЕЗ.
> Граничные условия.
ВЗ >= В4 D3 >= D4
СЗ >= С4 ЕЗ >= Е4
Поскольку вероятность 0,6 больше 0,5, для которой были определены М[ЦФ] и о[ЦФ], то решение задачи потребует больше ресурсов, чем назначено в правой части ограничений. Следовательно, при таких ресурсах задача будет несовместной. Чтобы получить решение задачи при Рзад = 0,6, в диалоговое окно Поиск решения не будем вводить ограничения по ресурсам.
7. Выполнить.
На экране: результат решения (рис. 6.3.4), из которого видно следующее:
230
Часть II. Задачи оптимизации
А ' а С D £ С 1 ' '4 : -
5 Р постановка 1-ый вариант Р[ЦФ]
2 ИМЯ ПРОД1 прод2 продЗ прод4 0.60
3 значение 10.46 0.00 6.33 0.00
4 нижн. гр.
в верхи .гр. v= 0.2
в М(ЦФ] ггГЦФ]= у*М[ЦФ]
7 соэф.в ца 60 70 120 130 1 307 <г[ЦФ]= 277
а Ограничения
9 лев.часть знак прав.часть
18 трудовые 1 1 1 1 17 <- 16.00
11 сырье 6 5 4 3 88 <= 110.00
12? финансы 4 6 10 13 106 <= 100.00
Рис. 6.3.4
> Заданная вероятность выполняется: 12 = 0,60.
> Целевая функция F7 = 1387.
Зависимость между этими величинами показана на рис. 6.3.2.
> Потребные ресурсы с округлением до целых:
трудовые =F10=17
сырье =F 11=88
финансы =F12=105
Следовательно, повышение вероятности достижения оптимума целевой функции требует увеличения необходимых ресурсов, поэтому, заранее не зная, сколько потребуется ресурсов, во избежание несовместности в диалоговое окно Поиск решения не следует вводить ограничения на ресурсы. Очевидно, что вводя в диалоговое окно Поиск решения задаваемое значение вероятности Рзад, после команды Выполнить получим искомый результат оптимального решения задачи для рассматриваемого варианта.
Алгоритм 6.3.3. Решение задачи с детерминированными ограничениями при целевой функции Р max
1. Ввести исходные данные так, как описано в алг. 6.3.2 (рис. 6.3.5).
Очевидно, при назначении Р[ЦФ] -> max величина Р[ЦФ] будет стремиться к I, а значение ЦФ — к бесконечности. Во избежание этого следует ввести ограничение сверху на значение ЦФ.
Гъава 6. Задачи стохастического программирования 231
А Иф» ИС о Е. иве н • 4 ./ч. .К""''"..' и s®»»«
1 рвд.
2 ИМЯ прод! прод2 продЗ прсд4 Гр“
3 значение 10.00 0.00 6.00 0.00
« нижн. гр.
- В эерхкгр. v= 0.2
« мщф] у’М[ЦФ]
2 КОЭф.Б ЦФ 60 70 120 130 1320 <г[ЦФ]« 264
3 Ограничения
S лев.часть знак прав.часть
» трудовые 1 1 1 1 16 <= 20
и сырье 6 5 4 3 84 <= 150
И финансы 4 6 10 13 100 < = 130
U
ж
ж»
ж
Г7
ею *я-
» »[»1 « [Ь ]
трудовые 0.2 0.2 0.2 0.2 4
21 сырье 1.2 1 0.8 0.6 30
22 финансы 0.8 1.2 2 2.6 26
23 «* 1а Г»*. •" [Ь J V <urv лев.часть знак М[Ь]
еыа градовые 4 0 1.44 0 5.44 16 4.63 0.00 16.00 <« № 84.00 <= 1Ю шопа <= по
1^1 сырье 144 0 23.04 0 167.04 300 32.67 0.00
28 Финансы 64 0 144 0 208 676 29.73 0.00
Рис. 6.3.5
Такими ограничениями могут быть либо верхние границы для всех переменных, либо верхняя граница хотя бы на один вид ресурса. Поэтому для получения оптимального решения в диалоговое окно Поиск решения дополнительно вводим значения располагаемых ресурсов:
НЮ = 20
НИ = 150
Н12 = 130.
2. Сервис, Поиск решения...
На экране: диалоговое окно Поиск решения с введенными данными.
3. Ввести:
> максимизация целевой функции;
> сохранить граничные условия;
> дополнительные ограничения:
F10<=H10
F11<=H11
F12 <= Н12.
232
Часть II Задачи оптимизации
4. Выполнить.
На экране: результат решения задачи (рис. 6.3.6).
Л в-*» . С-5-» В Ж F' 6 И 1 ' А .
4 РЩФ1
Sh ИМЯ ПРОД1 прод2 продЗ прод4 1 О.М 1
3 значение 11.67 0.00 8.33 0.00 0 00 0 0
* нижн гр
S верхи гр VS 0.2
• s МЩФ] <гГЦФ1‘
Т коэф в ЦФ 60 70 120 130 1 700 д1ЦФ]« 340
• Ограничения
» лев часть знак прав часть
44 трудовые 1 1 1 1 20 00 <= 20
14 сырье 6 5 4 3 103 33 <= 150
42 финансы 4 6 10 13 130 00 <= 130
Рис. 6.3.6
Результаты решения для различных условий представлены в таблице на рис. 6.3.7, из которых видно, что повышение веро-
детерм ЦФ вероятн ЦФ ятности достижения це-левой функции (без ог-раничения на ресурсы) приводит к увеличению целевой функции, но требует, естественно, увеличения ресурсов.
Р=0 6 Р—>шах
Р 0 50 0 60 0 925
ЦФ 1320 1387 1700
трудовые 16 17 20
сырье 84 88 103
финансы 100 105 130
результат рис 3 3 11 РИС 6 3 4 рис 6 3 6
Рис. 6.3.7
6.3.3. Задачи с вероятностными ограничениями
Задачи с вероятностными решениями представляют собой объединение целевой функции задачи в P-постановке с детерминированными ограничениями с вероятностными ограничениями, которые рассматривались в М-постановке.
Алгоритм 6.3.4. Решение задачи с вероятностными ограничениями при целевой функции Рзад
1. Ввести исходные данные. Скопировать на чистый лист:
Глава 6 Задачи стохастического программирования
233
> Ячейки А1:М21 (рис. 6.2.1), в которых приведены вероятностные ограничения для М-постановки, в ячейки А1:М21 нового листа.
> Ячейки I1:J7 (рис. 6.3.3), в которых введена целевая функция для P-постановки, в ячейки I1:J7 того же листа.
На экране: рис 6.3.8.
.. С , F я „я , 1 . 1 ... . ж,, *
жж РЩФ]
ИЛ ИМЯ п₽од1 прод2 продЗ прад4 0 00019
кв Значение 100 100 100 100
кв нижи гр
ГВ верхи гр 02
ЕЗ м |«1 ЦФ напр <т[ЦФ]« у‘М[ЦФ)
кв коэф в ЦФ 60| 70 1201 130 300 макс г(ЦФ> 7S
га м |а 1
кв детерм-лев часть М(Ы
га трчдош!» 1 1 1 1 4 00 16 00
аИ сырье 6 5 4 3 №00 1Ю 00
га фИНЬНСЫ 4 6 Ю 13 3300 100 00
UL а^а 1 в К15 введено =НОРМСТО6Р(К14)
КЗ • [• ] • [Ь] [ а* 0.00 1
КЗ трудовые 02 02 02 02 32 <(«)= 0 84
га сырье 12 1 08 06 22
га1 финансы 08 12 2 26 20
га »• г»* к’ №1 V к«г* •ев часть •мак ТПП
хш трудовые 004 004 004 0 04 016 10 24 3 22 2 71 1 671 a s
га сырье 144 1 064 0 36 344 484 2208 18 58 1 36.58
га финансы 0 64 144 4 6 76 1284 400 20 32 1710 _san а ML.
Рис. 6.3.8
2. Выполнить алг. 6.3.2, п.п. 5 — 7.
На экране: результат решения (рис. 6.3.9), из которого видно, что заданная вероятность выполняется, т. к. 12 = 0,60.
'|МГ Л С ( о S F 1 в 1 И I * 4 К f. м -
п Результат решения в Р-ностаиовке p[4®j
га имя Проа! прод2 продЗ прод4 1 0 60 1
я_ж
значение 10 46 ООО 6 33 ООО
КВ нмжн гр
га верхи гр и= 02
га м с] ЦФ напр <т[ЦФЬ «•М(ЦФ
ка коэф в Ц4 601 70 120) 130 1307 макс кГЦФМ 277
га М|»1
жж детерм лее часть М[Ь]
га трудовые 1 1 1 1 16 79 №00
га сырье 6 5 4 3 8806 110 00
ЕН Финансы 4 6 10 13 10512 100 00
га 1 02а в K1S введено «НОРМСТОБР(К14)
о <|»1 • IH I л- O.tO 1
га трудовые 02 02 02 02 32 Ца)- 0 84
га сырье 12 1 08 06 22
га Финансы 08 12 2 26 20
га It П‘ < [Ь| V пеа часть •мак М1Ы
га трудовые 4 3738 0 1602 0 5 9761 10 24 4 03 3 39 20 о 16 по <• по 126 <« Л0
га сырье 157 46 0 25 64 0 183 09 484 25 83 21 74
11Ж финансы 69 981 0 160 2 0 230 2 400 2510 2113
Рис. 6.3.9
234 Часть II Задачи оптимизации
Алгоритм 6.3.5. Решение задачи с вероятностными ограничениями при целевой функции Р -> max
1. Исходные данные ввести как в алг. 6.3.4, п.1.
2. Сервис, Поиск решения...
3. Ввести'
> ЦФ=12, максимизировать;
> Изменяемые ячейки: ВЗ; СЗ; D3; ЕЗ;
> Ограничения:
ВЗ >= В4 К19 <= М19
СЗ >= С4 К20 <= М20
D3 >= D4 К21 <= М21
ЕЗ >= Е4
Выполнить.
На экране: результат решения (рис 6.3.10).
Л В С в Е F В н 1 4 К t м
1 рщ,Ф1
а имя пред! лред2 продЗ прсд4 1 0.64 1
» значение 9 се 0 00 6 90 0 00
4 нижн гр
в верхи гр v= 02
* Mid ЦФ напр вЩФ)- v'MIU*)
коэф в ЦФ sol 70| 120| ВО 1 417 макс <т(ЦФ1« 203
» Mid
л детерм лев часть МЦ>1
трудовые 1 1 1 1 16 64 1600
сырье 6 5 4 3 8588 ПО 00
финансы 4 6 10 13 108 46 гоооо
tt VS в К15 введено =НОРМСТОБР(К14)
1* • [а ] • [Ь] I л~ 0.80 1
W тр^овые 02 02 02 02 32 0 64
« сырье 12 1 08 Об 22
П финансы 08 12 2 28 20
tt ’’[Ь| V лев часть смак MILL
It трудовые 37317 0 195 0 568214 1024 399 3 36 голо <= го Ю72Э о 150 —ПОДО iA .fflL.
сырье 134 34 0 3121 0 165 548 484 25 49 2145
а финансы 59 707 0 195 0 254 752 400 2559 2154
Рис. 6.3.10
Результаты решения задач в P-постановке для различных вариантов исходных данных приведены в таблице на рис. 6 3.11, из которой можно сделать следующие выводы.
Глава 6 Задачи стохастического программирования
235
о При заданной вероятности (Р = 0,6) значения целевой функции одинаковы и равны 1387, но при вероятностных ограничениях для этого требуется больше ресурсов (например, для сырья требуется ПО вместо 88).
□ В случае максимизации вероятности получения оптимального значения целевой функции для одинаковых заданных ресурсов при вероятностных ограничениях вероятность (например, 0,925 по сравнению с 0,6) и величина целевой функции (1700 по сравнению с 1387) возрастают
Величина Р=0 6 Р—>тах
детерм вер а=0 8 детерм вер а=0 8
Р 0 6 0 6 0 925 0 644
ЦФ 1387 1387 1700 1417
трудовые 17 20 20 20
сырье 88 110 103 107
финансы 105 126 130 130
рис рис 6 3 4 рис 6 3 9 рис 6 3 6 рис 6 3 10
Рис. 6.3.11
Таким образом, на рис. 6.3.11 хорошо видно влияние различных условий на результат оптимальных решений в Р-постановке.
6.3.4. Анализ задач
При решении задач в М-постановке и в P-постановке могут выполняться все виды анализа. Учитывая особенность задач в P-постановке, отметим, что наибольший интерес представляют задачи параметрирования. Полезны следующие варианты: для целевой функции Р = Рзад параметрирование производить по величине Рзад, для целевой функции Р -> шах — по значениям имеющихся лимитирующих ресурсов.
Процедура параметрирования производится по уже неоднократно выполнявшемуся алгоритму. Полагаем, что при желании внимательный читатель выполнит этот алгоритм самостоятельно. А невнимательному читателю нет нужды заниматься таким высшим пилотажем, как параметрирование вероятностной задачи в Р-постановке
236
Часть II Задачи оптимизации
6.4. Список алгоритмов
1. Алгоритм 6.1.1. Определение количественных характеристик случайной величины.................202
2. Алгоритм 6.1.2. Определение плотности и функции распределения для нормального закона.............205
3. Алгоритм 6.1.3. Построение графиков плотности и функции распределения для нормального закона....206
4. Алгоритм 6.1.4. Построение функции распределения и ее графика для нормального стандартного распределения....................................208
5. Алгоритм 6.1.5. Работа с функцией НОРМСТОБР( ).210
6. Алгоритм 6.2.1. Ввод исходных данных для детерминированного эквивалента....................214
7. Алгоритм 6.2.2. Формирование детерминированного эквивалента.......................................216
8. Алгоритм 6.2.3. Решение задачи стохастического программирования..................................218
9. Алгоритм 6.2.4. Решение целочисленной задачи стохастического программирования..................219
10. Алгоритм 6.2.5. Анализ влияния стохастических условий на результат решения задачи...............221
II. Алгоритм 6.2.6. Графическое представление влияния вероятности на результат решения..................222
12. Алгоритм 6.3.1. Определение параметров закона распределения целевой функции.....................226
13. Алгоритм 6.3.2. Решение задачи с детерминированными ограничениями при целевой функции Рзад............228
14. Алгоритм 6.3.3. Решение задачи с детерминированными ограничениями при целевой функции Р -> max........230
15. Алгоритм 6.3.4. Решение задачи с вероятностными ограничениями при целевой функции Рзад...........232
16. Алгоритм 6.3.5. Решение задачи с вероятностными ограничениями при целевой функции Р -> max........234
237
Многопараметрическая оптимизация
7.1. Определение коэффициентов веса параметров
7.1.1. Постановка задачи
В задачах, которые мы рассматривали до сих пор, в критерий входил только один параметр, например, прибыль. Однако зачастую свести наши желания к какому-нибудь одному критерию достаточно трудно, и вообще говоря, желаемых целей может быть много. Как же в таком случае принимать оптимальное решение, которое согласно определению является наилучшим только в одном единственном смысле?
Задачи, в которых оптимизацию производят по нескольким параметрам, называют задачами многопараметрической или векторной оптимизации. Многопараметрическая оптимизация представляет собой попытку найти некоторый компромисс между теми параметрами, по которым требуется оптимизировать решение.
Важным элементом при такой оптимизации является назначение коэффициентов веса каждого оптимизируемого параметра. Распространенный метод — определение коэффициентов веса с помощью экспертов, который представляет собой, по существу, обычное обсуждение, с той лишь разницей, что свое мнение эксперты выражают не словами, а цифрами. Методы экспертных оценок широко распространены в спорте, например, в фигурном катании, гимнастике. Нет основания считать неприемлемым коллективное мнение специалистов и при принятии оптимальных решений.
Предложено достаточно много методов определения экспертных оценок. Рассмотрим три из них.
238
Часть II Задачи оптимизации
7.1.2. Непосредственное назначение коэффициентов веса
При непосредственном назначении коэффициентов веса каждый эксперт оценивает сравнительную важность рассматриваемых параметров, которые будут входить в целевую функцию. В этом методе каждый i-ый эксперт для каждого k-го параметра должен назначить коэффициент веса alk таким образом, чтобы сумма всех коэффициентов веса, назначенных одним экспертом для различных параметров, равнялась единице. Это требование можно записать так:
к
Ха,к=1, |=й, к=1
где п — число экспертов.
Алгоритм 7.1.1. Непосредственное назначение коэффициентов веса
1. Определить число параметров К, которые будут включены в целевую функцию.
2. Сделать таблицу по форме, представленной на рис. 7.1.1, которую мы будем называть базовой.
Ли! г<в ’ /• а В Е F 9
> Базовая тэблмца
2 Эксперт Параметры Счмма
3 1 2 к
4 1 10
S 2 10
* 10
п 10
« коэф.веса СРЗНЯЧ(С4.С7) СРЗНЯЧ(О4.О7) СРЗНЯЧ(Р4:Р7)
» ср квоткл СТЛНДОТКЛОН(С4 С7) СТЯЦДОТКЛОНГО4 D7) СТЯЦДОТКЛОр(Г4 F7)
R дисперсия ДИСП(С4С7) ДИСГЦО4 D7) ДИСП(Р4Г7)
И коэф вариеб C3IC8 03/08 F3/F8
Рис. 7.1.1
> Ввести функции Excel, определяющие среднее значение, среднее квадратическое отклонение, дисперсию, как это показано в ячейках C8.F10.
Глава 7 Многопараметрическая оптимизация
239
> В ячейки C11:F11 ввести формулы для определения коэффициента вариабильности. После этих работ таблица подготовлена к вводу результатов экспертизы.
3. Значения коэффициентов веса, назначаемые каждым экспертом, ввести в ячейки C4:F7.
На экране: результат экспертизы.
В ячейках C8:F8 находятся усредненные значения коэффициентов веса.
Значение коэффициента вариабильности показывает величину разброса экспертных оценок. При v < 0,2 оценки экспертов можно считать согласованными. В случае v > 0,2 целесообразно провести с экспертами содержательное обсуждение важности оцениваемых параметров, после чего повторить экспертизу. При сохранении величины разброса целесообразно учитывать вероятностный характер экспертных оценок по методам, приведенным ниже.
Пример заполнения таблицы приведен на рис. 7.1.2, в которой принято число параметров три. А, Б, В и число экспертов п = 8
А В с о Е F
2 Эксперт Параметры Сумма
3 й Б В
4 1 05 02 03 10
3 2 05 03 02 10
. В» 3 02 04 04 10
7 4 02 03 05 10
• 5 04 02 04 10
9 6 03 04 03 10
W 7 03 03 04 10
п 8 05 02 03 10
12 коэф.веса 0.36 0.29 0.35
Рис. 7.1.2
Как показывает опыт, удовлетворение экспертами требования к
=1
k=l
при К > 3, вызывает затруднение.
Для того чтобы избежать выполнения этого требования, можно коэффициенты веса определять и другими методами, рассмотренными ниже
240
Часть II Задачи оптимизации
7.1.3. Оценка важности параметров в баллах
При оценке важности параметров в баллах каждый эксперт оценивает параметры по десятибалльной системе. При этом оценка, назначаемая каждым экспертом каждому параметру, не связана с оценками, которые он же назначает другим параметрам. Например, всем параметрам можно назначать одинаковую оценку. Определение экспертных оценок в баллах производится по следующему алгоритму.
Алгоритм 7.1.2. Определение коэффициентов веса оценки важности параметров в баллах
1. Сформировать таблицу по форме, представленной на рис. 7.1 3, в которую вносятся оценки всех параметров в баллах, сделанные каждым экспертом
Л в С ’ В _EJ 6
43 Оценка в баллах
Эксперт Параметры Сумма
« 1 2 к
в 1 СУММ(С6 F6)
7 2 C3MM(C7F7]
«
п СУММ(СЭРЭ)
Рис. 7.1.3
В ячейках G6:G9 введены функции суммирования.
2. Составить базовую таблицу (рис. 7 14), аналогичную таблице, показанной на рис. 7.1.1, в ячейки J4:M7 которой ввести указанные функции.
1 А В t С О El F
12 Базовая таблица |
13 Эксперт Параметры
14 1 2 к
15 1 C6^G$6 D6/$G6 F6/$G6
М 2 CWG$7 D7/1G7 F6/$G7
W
И п C9?$G$9 D9($G9 F9/1G9
» коэф.»еса CP3Hfl4(J4.-J7) СРЗНЯЧ(К4:К7] СРЗНЯЧ(М4:М7)
Рис. 7.1.4
Глава 7 Многопараметрическая оптимизация
241
Эти формулы обеспечивают переход от оценок параметров в баллах к значениям коэффициентов веса, сумма которых для всех параметров равна единице у каждого эксперта В таблице (рис. 7 1.4) в ячейках J8:M8 находятся результаты проведенной экспертизы.
Пример исходных оценок в баллах по форме рис. 7.1.3 представлен на рис. 7.1.5, а результат определения экспертных оценок по форме рис. 7.1.4 — на рис. 7.1.6.
А В С О Ж В
1
2 Оценка в баллах
3 Эксперт Параметры Сумма
4 А Б в г
8 1 б 7 5 7 25
• 2 10 8 4 9 31
7 3 5 7 6 8 26
« 4 7 3 5 7 28
8 5 8 6 4 6 24
Рис. 7.1.5
А 8 С О Е F
В
tt Базовая таблица
«3 Эксперт Параметры
м А Б В г
» 1 024 028 020 028
к 2 0 32 0 26 013 0 23
17 3 013 0 27 0 23 0 31
4 025 0 32 018 0 25
31 5 0 33 0 25 017 0 25
коэф.веса 0 27 0.28 0.18 0.28
Рис. 7.1.6
7.1.4. Метод парных сравнений
Если при к > 3 одновременная оценка всех параметров вызывает затруднения, их можно оценивать еще одним методом, который называется методом парных сравнений Этот метод реализуется с помощью следующего алгоритма
242
Часть II Задачи оптимизации
Алгоритм 7.1.3. Определение коэффициентов веса методом парных сравнений
1. Определить число оцениваемых параметров к и число экспертов п. В дальнейшем принимаем к = 5, п = 4
2. Для каждого эксперта составить отдельную таблицу по форме, представленной на рис. 7.1 7.
а. с О Е F а я
t 2 Таблица для каждого эксперта
3 Параметры Параметры
♦ А Б В Г д
« С 7 « « й Б В г а X ЕСЛИ(О5=Ю1) ЕСЛИ(Е5=101) ЕСЛИ(Р5-10.1) ЕСЛИ(С5=101) X ЕСЛИ(Е6=101) ЕСЛИ(РВ=101) ЕСЛИ((Э6=101) X ЕСЛИ(Е7=101) ЕСЛИ(С7=1,01) X ЕСЛИ(й8=101) X СУММ(С5В5) СУММ(С6 G6J C9MM(C7G7) CyMM(C8G8) СУММ(СЭ G8)
» СУММ(Н5 НЗ)
Рис. 7.1.7
3. В этой таблице эксперт должен ввести оценку парных сравнений, которая заключается в следующем. Если k-ый параметр важнее j-ro, то в ячейке, принадлежащей k-ой строке и j-му столбцу, указывается 1, в противном случае — 0.
Пример заполнения такой таблицы первым экспертом приведен на рис. 7.1.8, из которой видно, что по оценке этого эксперта параметр А менее важен, чем параметр Б (D16 = 0) и Д (G16 = 0), но более важен, чем В (Е16 = 1) и Г (F16 = 1).
В с в 1 Е 1 F в И 1
К Таблица для 1 -го эксперта
13
и Параметры Сумма
15 Параметры й Б В Г а
16 А X 8 1 1 в 2
17 Б 1 X в 1 о 2
» В 0 1 X в « 1
» Г 0 0 1 X 1 2
28 д 1 1 1 0 X 3
21 Ю
Рис. 7.1.8
Глава 7 Многопараметрическая оптимизация
243
4. Составить базовую таблицу (рис. 7.1.9), в ячейки которой введены формулы для 1-го эксперта.
Базовая таблица, представленная на рис. 7.1.9, является формой для ввода результатов экспертизы.
Пример заполнения таблицы для 1-го эксперта по данным рис. 7.1.8 приведен на рис. 7.1.10 в ячейках С17.Н17. Данные в ячейках С18:Н20 из таблиц для остальных экспертов вводятся аналогично.
в с J о 1 Е 1 ₽ В и|
н Базовая таблица
Я Эксперт Параметры Сумма
к А Б В Г д
п 1 0 20 0 20 010 0 20 0 30 10
к 2 0 25 015 015 0 25 0 20 10
и 3 0 20 0 30 0 20 010 015 10
го 4 0 25 015 0 25 015 0 20 10
21 коэф веса 0 23 0.20 0.18 0.18 0 21
Рис. 7.1.10
В этой таблице в ячейках C21:G21 приведены окончательные результаты проведенной экспертизы.
244
Часть II Задачи оптимизации
7.2. Оптимизация по нескольким параметрам
7.2.1. Обобщенная целевая функция
Возможной реализацией многопараметрической оптимизации является обобщенная целевая функция F06, которая записывается следующим образом:
s F
Fo6=X“k (7.2.1)
k=l rk
где Fk — k-ая целевая функция,
ркиоРм _ нормирующее значение к-ой целевой функции,
s — число составляющих целевых функций, ак — коэффициент веса k-ой целевой функции.
При этом перед составляющими целевой функции, которые максимизируются, ставится знак плюс, перед минимизируемыми — минус. Из (7.2.1) следует, что для формирования обобщенной целевой функции необходимо знать ак и FkHopM. Значения FkHOpM принимаются при максимизации k-ой составляющей целевой функции:
р^норм zz р^тах
при ее минимизации
Р^норм = pj^nun
Решение по обобщенной целевой функции рассмотрим для нашей задачи, приведенной на рис. 7.2.1.
Алгоритм 7.2.1. Оптимизация по обобщенной целевой функции
1. Вызвать таблицу с условиями задачи (рис. 7.2.1).
2. Определить, какие составляющие целевые функции будут входить в обобщенные. Принимаем:
ЦФ1 — максимизация прибыли,
ЦФ2 — минимизация используемых финансов
Глава 7 Многопараметрическая оптимизация
245
Рис. 7.2.1
3. При минимизации хотя бы для одной составляющей необходимо ввести нижние границы значений переменных. Вводим 1 в ячейки В4, С4, D4, Е4.
4. Ввести условия задачи.
5. Решить задачу при максимизации прибыли.
На экране: результат решения задачи F6 = тахЦФ! = 1290.
6. Ввести в ячейку F4 значения ЦФ2, которые равны левой части в ограничении по финансам (F11).
7. Решить задачу при минимизации используемых финансов. На экране: результат решения задачи F4 = тшЦФ2 = 33.
8. Провести экспертизу и определить коэффициенты веса. Принимаем сп = 0,75; аг = 0,25.
9. Ввести эти данные, как показано на рис. 7.2.1, в ячейки J2:J3.
10. Сформулировать обобщенную целевую функцию
J6 = ЦФоб= J2*F6/1290 - J3*F4/33.
11. Решить задачу по обобщенной целевой функции.
Результаты решения по трем целевым функциям приведены в таблице (рис. 7.2.2).
Из этой таблицы видно следующее:
□ При решении по обобщенной целевой функции величины прибыли и используемых финансов имеют промежуточные значения по сравнению с решением по составляющим целевым функциям
□ Такое положение не распространяется на значения переменных
246
Часть II Задачи оптимизации
* П.'® /. С V < W л ч. "Ж ?
* V
Л' Величина Приб-> макс Обобщ ЦФ а, =075, лг=025 Фин-> мин
3
4 Прибыль 1290 1100 380
S Использ ф 100 81 33
в Прод1 98 13 0 10
Прод2 10 10 10
• ПродЗ 42 10 10
9 Прод4 10 10 10
Рис. 7.2.2
7.2.2. Оптимизация по ресурсам
При оптимизации по ресурсам целевая функция записывается следующим образом:
m
F = £₽,^mm, (7.2.2)
где у, — количество неиспользованного i-го ресурса,
Б, — количество располагаемого i-го ресурса,
р. — коэффициент веса i-го ресурса,
m — количество ресурсов.
Нетрудно видеть, что смысл оптимизации по данной целевой функции заключается в максимизации использования ресурсов. При этом очередность их использования определяется назначенным коэффициентом веса. Решение по такой целевой функции рассмотрим на примере нашей базовой задачи (рис. 3.3.4).
Алгоритм 7.2.2. Оптимизация по ресурсам
1. Вызвать таблицу с условиями задачи (рис. 7.2.3).
2. Ввести значения yi, уз, уз в F2:H11.
3. Изменить знаки неравенства в ограничениях на равенства в J9.J11.
4. Ввести значения коэффициентов веса в J2:J4.
Глава 7 Многопараметрическая оптимизация
247
к Л7' I'i 'К чМ
Переменные Коэф веса
г имя прод1 пред2 продЗ прод4 у, у, у, Д= 0 6 ЦФ напр
з значение 0 0 0 0 0 14 36 #= 0 1 0 12 мин
нижн гр j63= 0 3
верхи гр прибыль
-» коэф в ЦФ 60 70 120 130 0
Ограничения
t вид левая часть знак правая часть
1Л трудовые 1 1 111 0 = 16
чв сырье 6 6 4 3 1 14 = 110
tt финансы 4 6 10 13 1 36 = 100
Рис. 7.2.3
5. Сформулировать целевую функцию
K2=(J2*F3/K9 +J3*G3/K10 + J4*H3/K11).
6. Ввести условия задачи по алгоритмам главы 3.
7. Решить задачу по алгоритмам главы 3.
На экране: результат решения задачи.
Для определения влияния коэффициентов веса на результат решения задачи можно решать ее при различных значениях этих коэффициентов. Результаты решения задачи при различных коэффициентах веса приведены на рис. 7.2.4, из которого видно, что увеличение коэффициента веса ресурса обеспечивает его равномерное использование. Например, для финансов: при рз = 0,5 неиспользуемые финансы уз = 0, т. е. финансы используются полностью, а при Рз = 0,2 неиспользуемые финансы
Таким образом, назначая различные коэффициенты веса, можно получать такие оптимальные решения, которые удовлетворяют поставленным требованиям.
248
Часть II Задачи оптимизации
7.2.3. Метод последовательных уступок
Этот метод заключается в следующем: выбирают несколько противоречивых параметров, один из них назначают в качестве целевой функции, а для других последовательно принимаются конкретные значения Задача оптимизации решается несколько раз при различных принятых значениях параметров Этот метод рассмотрим на примере задачи, которая решалась в 7 2.2.
Алгоритм 7.2.3. Оптимизация методом последовательных уступок
1. Вызвать таблицу с условиями задачи (рис 7.2 5)
2. Принять параметры, по которым будем решать задачу
Принимаем в качестве целевой функции прибыль, значения которой находятся в ячейке 16, а в качестве задаваемого параметра — величину неиспользуемых финансов уз, значение которой вводится в ячейку ввода исходных данных Н4.
В качестве первого значения вводим у3 = 50
3. Вызвать диалоговое окно Поиск решения.
4. Изменить граничные условия НЗ >= Н4 на НЗ = Н4
5. Провести параметрический анализ, вводя на каждом шаге значения неиспользуемых финансов в ячейку Н4
Результат параметрирования показан на рис 7 2 6
Глава 7 Многопараметрическая оптимизация
249
IpSEEMEM «ШйШ'ПЕм 1 7// А
2 *»4*^w* “ “j" i A 1 $!МЗЙ*ШММИ* ЯеЙСПфИИхб 44
* W
б4 Имаеи«е»ме ячейки.
.JL «в«з ООО юоо Я 67 1333 1500
1. *С*3 ООО 000 000 000 000
30*3 ООО 600 433 2.67 too
tSL. *Е*3 ООО 000 000 000 000
Л. *F*3 1600 000 000 000 000
ж *G*3 110 00 2600 2267 1933 1600
12 *Н»3 100 00 0Ш) ЮОО 2000 30.00
« Ячейки результата-
И *1** 0 1320 1220 1120 1020
W *1*9 16 16 16 16 16
W И*и 110 110 110 110 110
W *1*11 100 100 100 100 100
« Примечания столбец Текущие значения" представляет значения изменяемых ячеек в
в момент создания Итогового отчета по Сценарио Изменяемые ячейки для каждого
2Я сценария выделен серым цветом
J I 14 I. К I 1 И ч,-. w 1* .Р * • t
у11,11 ' |Л 1 IJ'—1; 1 ...v"””P'у
3
• кло Т2.50 юоо 750 5.00 250 0.00
1 ООО 000 000 000 000 000 0.00
> 000 000 000 000 000 000 000
,» 000 0.00 000 ООО 000 000 000
» too 350 600 850 1100 1350 1600
n 20Л0 35Л0 50.00 6500 8000 85 00 поло
JO4 40.00 5000 6000 7000 90.00 ЭОЛО Ю0.00
»
14 900 750 600 450 300 150 0
И 16 16 16 16 16 16 16
• 110 110 110 110 110 110 110
17 юо 100 100 100 100 100 100
Рис. 7.2.6
6. Отредактировать отчет.
На экране, результат редактирования (рис. 7.2.7)
Для наглядного представления влияния неиспользуемых финансов на прибыль построим график.
250
Часть II. Задачи оптимизации
А в i С О Е F | G : « ! i <» I К 4? |
1
2 Прод1 10 11.7 13.3 15 15 125 10 7.5 5 2 5 0
3 Пред 2 0 0 0 0 0 0 0 0 0; 0.0 0;
* ПродЗ 6 4.3 2.7 1 0 0 0 0 0; 0.0 0:
5 Пред 4 0 0 0 0_ (Г 0 0 0 0 0.0 О'
в I у. 0 0 0 0 1; 3.5; 6 8.5 11 13.5 16
7 ... У» 26 22.7 19.3 16; 20 35 50; 65 80: 95 110:
8 неисп фин 0! 10 20 30 40 50 60 70 80 90 100
9 Прибыль 1320 1220 1120 1020 900 750 600 450 300 150 0
Рис. 7.2.7
Алгоритм 7.2.4. Графическое представление последовательных уступок
1. Выделить A8:L9 (рис. 7.2.7).
2. Мастер диаграмм:
> шаг 2 — Г рафик
> шаг 3 — Вид2
> шаг 4 — 1 стр. метки; 1 столб.
> шаг 5 — Убрать легенду, ввести названия графика и осей. На экране; график последовательных уступок.
3. Выполнить форматирование диаграммы.
На экране: рис. 7.2.8.
Рис. 7.2.8
; Глава 7. Многопараметрическая оптимизация 251
Из таблицы (рис. 7.2.7) видно, что если мы хотим иметь прибыль, скажем, 1020, то при этом величина неиспользуемых финансов будет равна 30. Если же мы хотим иметь неиспользованных финансов 60, то прибыль при этом будет равна 600.
Таким образом, пользуясь этим алгоритмом и графиком, можно находить соответствующие значения искомых величин, которые могут быть полезны при анализе, выполняемом на этапе принятия оптимального решения.
7.3. Задачи сравнения вариантов
7.3.1. Оценка вариантов по обобщенному критерию
Задача сравнения и выбора вариантов возникает очень часто. Для решения этой задачи, прежде всего, каждый вариант необходимо оценить количественно. Такая оценка может быть выполнена с применением всех тех методов, которые были описаны в разделе 7.1 при рассмотрении коэффициентов веса. Оценка и сравнение вариантов производится с помощью обобщенного критерия, который принимаем в виде
Ks=£a,-X, (7.3.1)
где Ks — значение обобщенного критерия для s-ro варианта, си — коэффициент веса i-ro параметра,
Xis — значение i-ro параметра для s-ro варианта, х;н — нормирующее значение для i-ro параметра, m — количество параметров.
Определение коэффициентов веса производится теми же методами, которые были рассмотрены в разделе 7.1. В качестве нормирующего значения xiH принимается либо заданное значение х,зад, либо некоторое значение, принимаемое за х,н.
Структура обобщенного критерия (7.3.1) аналогична структуре обобщенной целевой функции (7.1.1.), однако не следует забывать, что с помощью обобщенного критерия производится оценка и сравнение имеющихся вариантов, в то время как с помощью целевой функции производится определение таких зна
252
Часть II Задачи оптимизации
чений параметров, которые обеспечивают максимизацию или минимизацию ее значения. Сравниваемые варианты характеризуются, как правило, тремя основными параметрами:
□ производительностью;
□ качеством;
□ стоимостью.
Оценка и сравнение вариантов производятся по следующим алгоритмам.
Алгоритм 7.3.1. Оценка вариантов по обобщенному критерию
1. Провести экспертную оценку важности параметров.
Результаты экспертизы приведены на рис. 7.3.1.
А в с D ‘ е 1
1
2 Эксперт Производит Надежность Стоимость
3 1 05 03 02
♦ 2 04 05 01
3 06 02 02
S 4 03 03 04
> 7 5 05 02 03
а а 0 46 03 0 24
Рис. 7.3.1
2. Составить таблицу для расчета по зависимости (7.3.1).
Таблица с формулами представлена на рис. 7.3.2, таблица с данными — на рис. 7.3.3.
в С f О 1 £ ж о U. 1
2 Вариант Производит Надежность Стоимость Слагаемые Критерии
3 « б б ? йльфа Бета Гамма Дельта Омега = С48’СЗ;С$9 = О*8'ОЗГО$9 = Е$8‘ЕЗ/Е*9 = С$8'С4/С$9 = D$8'D4/D$9 = Е$8'Е4?Е$9 = С$8’С5/С$9 = D$8’D51D*9 = Е$8'Е5/Е»9 = С$8‘С6/С$9 =D$8'D6/D$3 =E$8WE$9 = С38’С7О9 = D$8'D7/D49 = Е48’Е7/Е$9 = F3+G3 НЗ = F4*G4-H4 = F5»G5-H5 = F6«G6-H6 = F7*G7 H7
3 3 коэфвеса норма
Рис. 7.3.2
3. Ввести полученные значения экспертных оценок (рис. 7.3.1) в ячейки С8:Е8 (рис. 7.3.3).
4. Принять нормирующее значение для параметров и ввести их в ячейки С9:Е9 (рис. 7 3.3).
[лава 7 Многопараметрическая оптимизация
253
— В с*' „ ® и; . .Ж»’’- :V' I'®’ н *;г 1
2 Вариант Производит. Надежность Стоимость Спзгзеняе Критерий
3 Альфа 450 3200 1200 0 41 032 0 29 0 45
4 Бета 490 3600 1400 045 0 36 0 34 0 47
« Г амма 520 3100 1500 0 48 0 31 0 36 0 43
4 Дельта 520 2800 1100 0 48 0 28 0 26 0 49
7 Омега 580 2500 1300 0 53 0 25 0 31 0 47
« коэф веса 0 46 03 0 24
9 норма 500 3000 1000
48
11
12
13 Вариант Критерий КР Вариант Критерий
М Альфа 0 45 1 Дельта 0 51
1S Бета 0 47 2 Бета 0 47
№ Г амма 043 3 Омега 0 47
17 Дельта 0 51 4 Альфа 0 45
» Омега 0 47 5 Г амма 0 43
Рис. 7.3.3
5. Ввести исходные данные: принимаемые значения параметров сравниваемых вариантов в ячейки СЗ.Е7 (рис. 7.3.3). В рассматриваемом примере качество оценивается надежностью, измеряемой в часах наработки на отказ.
На экране: рис 7.3.3 (в ячейках 13:17 значение критерия для каждого варианта).
Алгоритм 7.3.2. Сравнение вариантов
1. Ячейки В2:В7 (рис 7.3.3) скопировать в блок С13:С18.
2. Для ячеек 12:17, содержащих значения критерия, выполнить следующее:
> Выделить 12:17.
> Копировать в буфер.
> Курсор в D13.
> Правка, Специальная вставка..., значения.
> ОК.
На экране: в DI3.D18 скопированы значения критериев.
3. Блок C13:D18 скопировать в H13.I18
254
Часть II Задачи оптимизации
4. Выполнить сортировку вариантов
> Курсор в любую ячейку блока Н13.118
> Данные, Сортировка...
> Критерий, по убыванию.
> ОК.
5. В ячейки G13:G18 ввести порядковые номера.
На экране в ячейках G13’II8 приведены сравнительные варианты по мере убывания величины обобщенного критерия
Следует иметь в виду, что выполненная оценка рассмотренных вариантов не является абсолютной истиной Это просто оценка по обобщенному критерию для принятых значений
□ коэффициентов веса,
□ нормирующих величин параметров
Очевидно, что при других принимаемых значениях этих величин обобщенный критерий может иметь другие значения
Таким образом, вариант, выбранный как лучший, является таковым лишь в смысле принятого критерия при заданных нормирующих значениях параметров и назначенных коэффициентах веса. При изменении вида критерия, значений нормирующих элементов или коэффициентов веса лучшим может оказаться совершенно другой вариант Об этом ни в коем случае нельзя забывать, отдавая предпочтение выбранному варианту
7.3.2. Учет разброса экспертных оценок
Коэффициенты веса, которые назначают эксперты, по своей сути являются случайными величинами, поэтому при решении ответственных задач сравнения вариантов следует выполнять действия в соответствии с правилами обработки случайных величин. Такие действия сводятся к следующему
1. Необходимо определить
_ |м[КА]-М[Кв]| 1расч I - - - - ,
Р[КА]+Р[КВ] v п
(7 3 2)
Глава 7 Многопараметрическая оптимизация
255
где М[Ка], D[Ka] — математическое ожидание и дисперсия критерия сравниваемого варианта А, определенные на основании обработки полученных экспертных оценок, п — число экспертов
2. На основании вычисленного tpaCT с помощью функции распределения Стьюдента определить РДОст — достоверность различия сравниваемых вариантов
Эти работы выполняются по следующему алгоритму
Алгоритм 7.3.3. Определение математических ожиданий и дисперсий критериев
1. Для экспертных оценок (рис 7 3 1) определить их математические ожидания и дисперсии Необходимая для этого таблица с формулами приведена на рис 7 3 4, таблица с данными — на рис 7 3 5
в О е ..
г Эксперт Производит Надежность Стоимость
3 4 5 С 7 1 2 3 4 5
« 3 ю М[а] □н = СРЗНЙЧ(СЗ С 7) =ДИСП(СЗС7] = КОРЕНЬ(С9)/С8 = СРЗНЙЧ(ОЗ D7) =ДИСП(ОЗО7) = КОРЕНЬ(О9)Ю8 =СРЗНЙЧ(ЕЗЕ7) =ДИСП(ЕЗЕ7) =К0РЕНЬ(Е9)О
Рис. 7.3.4
8 I С I Р j Е |
г Эксперт Производит Надежность Стоимость
3 1 2 3 4 5 05 04 06 03 05 03 05 02 03 02 02 01 02 04 03
*
5
6
7
« М[«] □[а] 0 46 0 01 0 25 03 0 02 0 41 0 24 0 01 0 48
• 9
Рис. 7.3.5
256
Часть II Задачи оптимизации
2. Сформировать таблицу для определения математического ожидания и дисперсии критериев сравниваемых вариантов. Таблица с формулами показана на рис. 7.3.6, таблица с данными — на рис. 7.3.7.
V9
Вариант Произв Наде» Стоим
Альфа = С$8-СЗ/С$10 =D$8'D3/D$10 =Е$8'ЕЗ/Е$10
”4 Бета = С$8‘С4?С$10 =D$8‘D4?D$10 =Е*8"Е4/Е$10
в Гамма =C$8'C5?C$10 =D$8'D5ID$IO =Е$8‘Е51Е$10
6 Дельта = С$8‘С6Ю$10 =Р$8‘Р6/Р$10 =Е$8'Е6/Е$10
7 Омега =С$8'С7?С$10 =Р$8'Р7Ю$10 =Е$8’Е7/Е$10
3 М[а)
3 ОД
норма
I I J I К I 1,1 М |
ИЦК^зти
э 4 JL JL 7 8 3 Ш
=F3»G3-H3 <-F4«G4444
*FfeBS-H6 xF7»G7-H7
=С$9‘СЗ/С$10 =D$9‘D3/D$10 = E$9-E3/E$10|»J2MCX^ =С$ТС4(С$10 =D$9'D4ra$W =E$TE4OwUj4*K4*t.4j =С$9"С5/С$10 = D$9‘D5/D$10 =Е$9‘Е51'Е$10|«Л.КВ<« =С$9'С6Ю$10 =D$9‘D6/D$10 .Е$ГЕ67Е$ю|я*МЙ<Ч =С$9‘С7?С$10 =Р$9‘Р77Р$10 :Е$9'Е7?Е$10ММС7«4.71
Рис. 7.3.6
* 1 в С 1 ° I Е Г. I в | И ► 4 4 1 К 1 t • ММ
3s; Вариант Произв Надеж Стоим Слагаемые для М[К] м₽Ч Слагаемые для О[К] Л
•« Альфа 450 3200 1200 0 41 0 32 0 29 3.45 0 009 0 021 0 012 ’SSS
Бета 490 3600 1400 0 45 0 36 0 34 3.47 0 010 0 024 0 014 М44
Гамма 520 3100 1500 0 48 0 31 0 36 0 010 0 021 0015
•7 Дельта 540 2800 1100 0 50 0 28 026 0 011 0 019 0 011 WrfS:
Я Омега 580 2500 1300 053 025 02’ 3.47 0012 0017 0013 8Л«
« М[а] DJal норма 0 46 0 01 500 03 0 02 3000 024 0 01 1000
Рис. 7.3.7
В этих таблицах для определения искомых величин используются следующие зависимости:
Глава 7 Многопараметрическая оптимизация
257
м[кд]=£м[«,]4.
1=1 Х1
Л хА
DfK.bSDfa.jbf, 1=1 Х1
где хА,х,н — величина i-го параметра для варианта А и нормирующее значение для всех вариантов данного параметра.
3. Ввести в таблицу (рис. 7.3.7) исходные данные (рис. 7.3.3): значения производительности, надежности и стоимости для всех вариантов, а также нормирующие значения для вводимых величин.
4. Ввести в таблицу (рис. 7.3.7) математические ожидания и дисперсии коэффициентов веса (рис. 7.3.5).
На экране: рис. 7.3.7, на котором для всех вариантов значения математических ожиданий М[КА] находятся в ячейках 14:18, а значения дисперсий D[KA] — в ячейках М4:М8. Эти величины выделены тенью и жирным шрифтом.
5. Полученные значения математического ожидания и дисперсии критериев скопировать в ячейки B3:D8 (рис. 7.3.8).
4 В С , О I
А.
3' Вариант М[К] Р[К]
4 Альфа 0 45 0 042
5 Бета 0 47 0 048
8 Гамма 0 43 0 046
7 Дельта 0 51 0 040
в Омега 0 47 0 015
Рис. 7.3.8
А В а . В *
Вариант М[К] D[K]
3 Дельта 0 51 0 042
4 Бета 0 47 0 049
5/ Омега 0 47 0 044
в Альфа 0 45 0 043
Гамма 0 43 0 049
Рис. 7.3.9
6. Выполнить сортировку этих значений по убыванию М[К], как это описано в алг. 7.3.2.
На экране: результат сортировки (рис. 7.3.9) в ячейках B2:D7.
После этого следует приступить к определению достоверности различия критериев для каждой пары сравниваемых вариантов.
9 Зак 115
258
Часть II Задачи оптимизации
Алгоритм 7.3.4. Определение достоверности
различия вариантов
1. Сформировать таблицу для определения tPac4 по зависимости (7.3.2) для каждой пары сравниваемых вариантов. Такая таблица с формулами приведена на рис. 7.3.10.
н ...» ' 4 _
1 tpacs
Бета Омега
4 Дельта X = ABS($C$4 $C$5)/KOPEHb(($D$4.$D$5y5) =ABS($C$4-$C$6}/KOPEHb(($D$4*$D$6y5)
S Бета = 14 X = ABS($C$54Ct6)?KOPEHb(($D$5*$D$6y5)
« Омега =Л =J5 X
Дльсра =К4 =К5
t Г амма =L5 = L6 =L£
К t I
1
3 Альфа Г амма
*4 S 6 7 « = ABS($C$4-$C$7)/KOPEHb(($D$4.$D$7)/5) =ABS($C«5-$C$7)«OPEHb(($O$5.$D$7)(5) = ABS($C$6-$C$7)/KOPEHb((3D$6.$D$7)/5) X = L7 = ABS($C$4-$C$8)?KOPEHb(($D$4.$D$8)/5J = ABS($C$5-$C$8)<KOPEHb(($D$5.$D$8)/5) =ABS($C$64C$8yKOPEHb(($D$6.$O$8)/5) = ABS($C$74C$8)/KOPEHb(($D$7.$O$8)?5) X
Рис. 7.3.10
Таблица со значениями tPac4 после ввода значений М[К] и D[K] из рис. 7.3.9 приведена на рис. 7.3.11.
1 e Н I а К t
1 tpCK4
3 Вариант Дельта Бета Омега Альфа Гамма
Дельта X 0 261 0 291 0 489 0 605
e Бета 0 261 X 0 023 0 212 0 332
« Омега 0291 0 023 X 0193 0 317
7 Альфа 0 489 0 212 0193 X 0130
* Г амма 0 332 0 317 0 317 0130 X
Рис. 7.3.11
2. Определить достоверность различия сравниваемых вариантов. Искомая достоверность определяется с помощью функции Excel, которая вызывается командами Мастер функций, Статистические, СТЬЮДРАСП и имеет формат
СТЬЮДРАСП(1Расч, f, а),
Глава 7 Многопараметрическая оптимизация
259
где tPac4 — величины, определенные в таблице на рис. 7.3.11, f — число степеней свободы: f = 2(п - 1), где п — число экспертов, в рассматриваемом примере f = 2*(5 -1) = 8, а — тип распределения Стьюдента, в нашем случае а = 2.
При работе с этой функцией следует иметь в виду, что функция Excel СТЬЮДРАСП ( ) определяет вероятность того, что сравниваемые варианты не различаются, поэтому для решения задачи определения достоверности различия следует вычислять величину
Рразл = 1 — СТЬЮДРАСГЦ).
Формулы для вычисления этой величины введены в ячейки таблицы, показанной на рис. 7.3.12. Количественные значения достоверности различия вариантов для данных (рис 7.3.9) приведены в таблице на рис. 7.3.13, из которой видно, что достоверность различия сравниваемых вариантов невелика.
гиг a. .... « 1 .. а .. .. 1 к *
Достоверность различия
Вариант} Дельта Бета Омега | Альфа Г амма
о 71 ЕЯ П Дельта | X Бета 1=114 Омега |=Л4 Альфа |=К14 Гамма 1-L14 = 1-СТЬЮДРЙСП(14 8 2) X = J15 =К15 =L15 =1 СТЬЮДРАСГЦ J4 8 21=1 СТЬЮДРАСП(К4 8 2) =1 СТЬЮДРАСП(458 2д=1 СТЫ0ДРАСГЦК58 2) X |=1-СТЫ0ДРАСП(К6 8 2) =К16 1 X =116 |=L17 =1 СТЬЮДРАСГЦ14 8 2} =1СТЬЮДРАСГЦ1582) =1 СТЬЮДРАСГЦ1682) =142ТЬЮДРАСП(17 82) X
Рис. 7.3.12
1 6 н.. 1 .. К i 1
и Достоверность различия
12
13 Вариант А В С D Е
м А X 0 20 0 22 0 36 0 44
В 0 20 X 0 02 016 0 25
ж С 0 22 0 02 X 015 024
п D 0 36 016 015 X 010
» Е 044 025 02+ 010 X
Рис. 7.3.13
Для получения более значительных различий между сравниваемыми вариантами выполним алг. 7.3.4 с исходными данными для других вариантов. Эти исходные данные, в которых значения М[К] в отличие от данных, рассмотренных выше, различаются более существенно, приведены на рис. 7.3.14.
260
Часть II Задачи оптимизации
...<я
'4'4 Вариант М[К] О[К]
А В С D Е 100 0 90 0 70 0 60 0 40 0 010 0 010 0 044 0 043 0 049
Формулы для вычисления значения tp„4 для новых вариантов представлены на рис. 7.3.15, вычисленные значения — на рис. 7.3.16.
Рис. 7.3.14
в И » 5 a ' ‘J
t t^,
3 Вариант А в c
•» *4 « « * А В С D Е X =14 = J4 =К4 =L5 = ABS($C$4 $C$5)/KOPEHb(($D$4v$D$5^5) X =J5 =К5 *L6 =ABS($C$4 $C$6)/KOPEHb(($D$4«$D$6y5) =ABS($C$5-$C#6)/KOPEHb(($D$5^D$G)/5j X =K6 = L6
' - \ ' 'K . r \ L
9 D E
>9 8 ' 8 7 9 =ABS($C$4-$C$7pKOPEHb(($D$4.$D$7)/5J = ABS($C$5.$C$7)*KOPEHb(($D$5.$D$7)45) = ABS($C$6-$C$7)/KOPEHb(($D$6»$D$7)rf5) X =L7 = ABS($C$4-$C$8)?KOPEHb(($D$4.$D$8)/5; = ABS($C$5-$C*8yKOPEHb(($D$5.$D$8)15; =ABS($C$6-$C$8)/KOPEHb(($D$6»$D$8)/5' = ABS($C$7-$C$8)1KOPEHb(($D$7.$D$8)re' X
Рис. 7.3.15
Г SIH i " Л ‘ It 1
%
'S Вариант A в C D E
|в м « й * A В C □ E X 1581 2 874 3 874 4 622 1581 X 1916 2906 2 200 2 874 1916 X 0 755 2 200 3 874 2 906 0 755 X 1476 5546 4 622 2 200 1476 X
Рис. 7.3.16
Формулы для вычисления достоверности различия новых сравниваемых вариантов приведены на рис. 7.3.17, а вычисленные значения достоверности для них — на рис. 7.3.18. Из таблицы на рис. 7.3.18 видно, что достоверность различия сравниваемых вариантов в данном случае достаточно высока.
.Глава 7 Многопараметрическая оптимизация
261
рЯЯГ . .S 1 Н У 1 1 4 , / 'КТ 1/ - 1 Л » *„1
Достоверность различия
OI о Е1 кЛ ея и Вариант) А в 1 с D Е
А X В = 114 С D =К14 Е |=L14 = 1 СТЫааРЙСГЦ)4.8 2)1=1 СТЬЮДРАСЦЛ 8 2) X 1=1 CTblQQPACn(J582) «Л5 I X =К15 1=К1б «L15 J-L18 =1СТЫОаРАСП(К482) =1 СТЫОДРАСП(К5 8 2) = 1-СТЫОДРАСП(К8 8 2) X =L17 =1СТЫСаРЯСП(1482) = 1 СТЫОДРАСП(1.58.2) = 1 СТЬЮДРАСГЦЬб 8 2) 1 СТЬЮДРЯСГ1(1782) X
Рис. 7.3.17
1 ч Л н « I a I ...к.... L
лс Ъ Достоверность различия
13 Вариант А в С D Е
м 15 JL 17 А В С D Е X 0 85 0 98 100 100 0 85 X 0 91 0 98 100 0 98 0 91 X 0 53 0 94 100 0 98 0 53 X 0 82 100 100 0 94 0 82 X
Рис. 7.3.18
Приведенные примеры убедительно показывают, что при сравнении и выборе вариантов неучет достоверности их различия может привести к принятию не достаточно обоснованных решений.
7.4. Список алгоритмов
1. Алгоритм 7.1.1. Непосредственное назначение коэффициентов веса................................238
2. Алгоритм 7.1.2. Определение коэффициентов веса оценки важности параметров в баллах...............240
3. Алгоритм 7.1.3. Определение коэффициентов веса методом парных сравнений..........................242
4. Алгоритм 7.2.1. Оптимизация по обобщенной целевой функции...................................244
5. Алгоритм 7.2.2. Оптимизация по ресурсам........246
6. Алгоритм 7.2.3. Оптимизация методом последовательных уступок..........................248
262 Часть II Задачи оптимизации
7. Алгоритм 7.2.4. Графическое представление последовательных уступок...........................250
8. Алгоритм 7.3.1. Оценка вариантов по обобщенному критерию...........................................252
9. Алгоритм 7.3.2. Сравнение вариантов.............253
10. Алгоритм 7.3.3. Определение математических ожиданий и дисперсий критериев......................255
11. Алгоритм 7.3.4. Определение достоверности различия вариантов...........................................258
Часть Ш
Т иловые
оптимальные решения
& Опткмалыюе jp^pcw
9, За^чкогшмшншп^кш^жш
265
Оптимальное распределение ресурсов
8.1. Основные положения
8.1.1. Классификация задач распределения ресурсов
Если под ресурсами понимать все, что используется в процессе производства, т. е. финансы, сырье, материалы, людей и т. д., то можно сказать, что важнейшими задачами управления, возникающими в экономике, являются задачи распределения ресурсов, классификация которых приведена на рис. 8.1.1.
Рис. 8.1.1
Поясним некоторые вопросы такой классификации Наиболее распространенным методом распределения ресурсов является их распределение по некоторым принятым правилам, например, пропорционально какой-либо величине, "от достигнутого" и т. д. Все эти правила в классификации объединяются понятием эвристические. Другим методом распределения ресурсов является их оптимальное распределение, которое и является предметом рассмотрения в данной книге.
266
Часть III Типовые оптимальные решения
Ресурсы могут быть различными и однотипными. Одновременное распределение различных ресурсов, например, сырья, трудовых ресурсов и финансов было подробно рассмотрено в главах 3, 4, 6.
В этой главе будем решать задачи распределения ресурсов только одного типа. При этом в качестве распределяемого ресурса будем рассматривать финансирование. Однако, следует иметь в виду, что все, что рассматривается применительно к финансам, в полной мере относится к ресурсам любого вида.
Ресурсы всегда распределяются в некоторой организационной системе. С точки зрения структуры, такие системы могут быть одноуровневыми и иерархическими. Большинство реальных систем является иерархическими, в которых число уровней может быть различным. В данной главе в качестве примера рассматриваются трехуровневые структуры, но излагаемый при этом метод распределения ресурсов в иерархических структурах не ограничивает числа их уровней.
Следующий признак распределения ресурсов связан со временем. По этому признаку задачи делятся на две группы:
□ распределение ресурсов в заданные периоды времени (неделя, месяц, год);
□ распределение ресурсов в реальном времени, необходимом для выполнения тех или иных конкретных работ, требующих распределения ресурсов.
8.1.2. Принципы представления информации
Рассмотрим 3 аспекта представляемой информации:
□ содержание;
□ форма;
□ время представления.
Содержание представляемой информации
Есть два подхода к информации, представляемой тому, кто принимает решение: представляется либо вся имеющаяся информация, либо только информация, отобранная по некоторому признаку.
Глава 8 Оптимальное распределение ресурсов
267
Естественно, что всю информацию представлять проще, но для того, кто принимает решения, вся информация является избыточной, т. к. в большом объеме всей представленной информации трудно обратить внимание именно на ту, которая действительно необходима для принятия решения. Из такого положения можно выйти следующим образом: представлять информацию в виде отклонения от некоторой заданной величины. При этом отклонение фактического значения Ф от планируемого значения П может быть как в абсолютных величинах
к1 =Ф-П,
так и в относительных
к2 = Ф/П [%].
Этот способ является исключительно полезным, т. к. не отвлекает того, кто принимает решение, на анализ несущественной информации, а, наоборот, привлекает внимание только к тем величинам, которые требуются для принятия решения.
Форма представления информации
Представляемая информация должна быть наглядной. Такая наглядность обеспечивается двумя способами:
о оформлением таблицы;
□ построением диаграммы.
Следует сказать, что выбор соответствующей графической формы исключительно важен для привлечения внимания именно к тем к величинам, которые важны при принятии данного решения. Кроме того, выбор формы должен соответствовать физическому смыслу величин, о чем мы говорили в главе 2.
Время представления информации
Информация должна представляться своевременно, т. е. с таким расчетом, чтобы было время не только на принятие решения, но и на подготовку к его реализации. Это положение можно пояснить зависимостью
Впи = Ввр - (tnp + tp),
где Впи — дата представления информации,
Ввр — дата начала выполнения принятого решения, tnp — время, необходимое для принятия решения,
268
Часть III. Типовые оптимальные решения
tP — время, необходимое для подготовки к реализации решения.
Применение этой несложной зависимости обеспечит своевременное представление необходимой информации.
8.2. Задачи распределения финансирования
8.2.1. Эвристическое распределение финансирования
Эвристическое управление финансированием производится по следующему алгоритму.
Алгоритм 8.2.1. Составление таблицы для эвристического распределения финансирования
Для выполнения рассматриваемых работ необходимо выполнить следующие этапы:
1. Произвести анализ структуры объекта финансирования.
2. Разработать форму таблицы для распределения финансирования.
3. Выполнить эвристическое распределение финансирования.
4. Ввести учет фактического состояния.
5. Определить показатели, характеризующие состояние работ.
Рассмотрим эти этапы.
Анализ структуры объекта финансирования
На этом этапе определяются объекты и периоды их финансирования. В рассматриваемом примере принимаем, что должно производиться финансирование трех объектов А, Б, В в течение четырех периодов.
рюва 8. Оптимальное распределение ресурсов 269
Разработка формы таблицы для распределение финансирования
Разработанная Сводная таблица приведена на рис. 8.2.1 (формулы) и рис. 8.2.2 (данные).
£ & хдаНХ ...
(ВНОбъект величина период 1 период 2 период1 -2 период 4 период1 -4
план факт =0 2*К4 100 =0 3*K4 120 =E4+F4 =E5+F5 =0 4*K4 =0 5*K10 =I5+J5
ШЛ Объект Б план факт =0 25*К6 45 =0 4*К6 40 =E6+F6 =E7+F7 =0 25*K6 =0 2*K10 =I7*J7
план факт =0 25’К8 60 =0 25*К8 70 =E8+F8 =E9+F9 =0 25*K8 =0 3*K10 =I9+J9
Всего план =04+06*08 =F4+F6+F8 =E10+F10 =J4+J6+J8
факт =D5+D7+D9 =F5+F7+F9 =E11+F11 =J5+J7+J9 =111+J11
Ш1 Показатели К1 =Ф-Пл к2=(Ф/Пл)« =D11-D10 =D11/D10% =F11-F10 =F117F10% =G11-G10 =G117G10% =J11J10 =J11/J10% =K11-K10 =K11/K10%
Рис. 8.2.1
□ISiEJ® Ч“=«" ?'Г ", fsW' - W-
величина период 1 сначала период 2 сначала период 3 сначала период 4 сначала
Е4Ч Объект А план 100 100 150 250 50 300 200 500
факт 100 100 120 220 150 370 370
Объект Б план 50 50 80 130 20 150 50’ 200
факт 45 45 40 85 70 155 155
ЯВЧОбъект В план 75 75 75 150 75 225 75 300
факт 60 60 70 130 80 210 210
№1 Всего план 225 225 305 530 145 675 3251 1000
КП ИМИ факт 205 205 230 435 300 735 0 735
ШЧПоказателк И1 =Ф-Пл -20 -20 -75 -95 155 60 •325 -265
к2=(ФЛл)% 91 91 75 82 207 109 0 73 5
Рис. 8.2.2
СТА’ С
Объект план факт
ОбъектА D4K4 D5:K5
Объект Б Об Кб D7.K7
й,.., Объекте D8K8 D9:K9
В таблице (рис. 8.2.2) данные вводятся в ячейки, показанные на рис. 8.2.3.
Рис. 8.2.3
270 Часть III Типовые оптимальные решения
Эвристическое распределение финансирования
Распределение финансирования эвристическим методом производится, как мы уже отмечали, по некоторым правилам. В рассматриваемом примере в качестве таких правил принимаем следующие:
1. Распределение производится сверху вниз, т. е. от всех объектов и периодов к каждому элементу планирования. Весь объем распределяемого финансирования вводится в ячейку К10, которая выделена тенью.
2. Объем финансирования каждого объекта назначается в долях всего финансирования и вводится в ячейки К4, Кб, К8.
3. Для каждого объекта объем его финансирования по периодам назначается в долях всей суммы финансирования, выделенной для данного объекта. Эти значения для каждого периода вводятся в соответствующие ячейки, например, для объекта А: в D4 вводится = 0,2* К4; в F4 = 0,3* К4 и т. д.
4. В ячейки F4, G4, 14 вводятся суммарные объемы финансирования с начала выполнения работ. Суммарные объемы для всех периодов вычисляются по формулам, введенным в ячейки DIO, F10, НЮ, J10.
Организация учета фактического состояния
Фактическое состояние вводится для каждого объекта и каждого периода в тех единицах, в которых установлен объем всех работ, введенный в ячейку К10. Так, для первого периода фактическое выполнение работ для объекта А вводится в D5; для объекта Б — в D7; для объекта В — в D9. Суммарное фактическое состояние вычисляется по формуле, введенной в D11.
Определение показателей, характеризующих состояние работ
В качестве таких показателей принимаем две величины. Их значения введены в С13.С14, из которых видно, что:
□ к1 показывает отклонение факта от плана в абсолютных значениях,
□ к2 показывает отклонение факта от плана в процентах.
Глава 8 Оптимальное распределение ресурсов
271
Формулы для вычисления этих показателей введены в ячейки D13:K14.
Для наглядного представления состояния работ удобно строить гистограммы. Например, построим диаграмму, характеризующую состояние работ по всему объекту за второй период.
Алгоритм 8.2.2. Графическое представление результатов
1. В таблице (рис. 8.2.2) скопировать С14, F14, G14 в С12, F12, G12 и выделить СЗ, С10:С12, F3:G3, F10:G12.
2. Мастер диаграмм:
> шаг 2 — Гистограмма.
> шаг 3 — Вид 2.
> шаг 4 — переключатель В строках, ввести- 1 стр., 1 столб.
> шаг 5 — ввести название диаграммы.
3. Форматировать диаграмму по алг. 2.2.4-
> убрать фон;
> ввести метки значений.
На экране: рис. 8.2.4.
Рис. 8.2.4.
272
Часть III Типовые оптимальные решения
Аналогично по алгоритмам, приведенным в главе 2, построена диаграмма на рис. 8.2.5.
Рис. 8.2.5
Такие диаграммы, которые показывают результат распределения финансирования и фактическое состояние работ, весьма полезны как для оценки текущего состояния, так и для принятия решений.
8.2.2. Эвристическое распределение финансирования в иерархической структуре
Эвристическое распределение финансирования в иерархической структуре производится по следующему алгоритму
Алгоритм 8.2.3. Эвристическое распределение финансирования в иерархической структуре
1. Определить число уровней и структуру каждого уровня.
Задачу будем решать для иерархической структуры, характеристики которой приведены на рис. 8 2 6
Гюва 8 Оптимальное распределение ресурсов
273
и 9Ш
ж Уровень 1 2 3
Кол -во объектов 3 2 1
НЦ * "ф Кол-во периодов 4 3 4
Рис. 8.2.6
На втором уровне принимаем, что объект А состоит из двух объектов — А1 и А2. Для А1 и А2 будем распределять ресурсы, выделяемые во втором квартале, по месяцам — апрель-июнь. На третьем уровне будем распределять на 4 недели ресурсы, выделяемые для объекта А1 в мае.
2. Сводную таблицу рис. 8.2.1 и рис. 8.2.2 скопировать для каждого уровня.
На рис. 8.2.7. приводятся формулы, на рис. 8.2.8. — данные.
s'. -г < ’ ’ Ds './“l *1 ,Н? W
И'3 1-ый уровень
9 Объект величина 1 квартал 2 квартал 3 квартал 4 квартал ГОД
Объект А план факт =0 2*Н4 100 -0 3"Н4 -G24 •0ГН4 150 •0 4“Н4 =0 5*Н10 = СУММ(О5 G5)
Объект Б план факт =0 25"Н6 46 "0 4”Н6 40 s0 ГНБ 70 •0 25-Н6 = 0 2”Н10 = СУММ(О7С7)
Объект В план факт =0 25'Н8 60 -0 25'Н8 70 «0 26*Н8 80 =0 25“Н8 = 0 З'НЮ =СУММ(О9 G9)
«г Всего план факт “D4+D6+D8 =D5+D7+D9 -Е4+Е6+Е8 =Е5+Е7+Е9 •F4+F6+F8 “F5+F7+F9 -G4+G6+G8 'G5+G7+G9 /Л.
=СУММ(О11 G11)
Л
Показатели к1=Ф-Пл к2*(Ф/Пл)У. •D11-D10 =D11/D107. -Е11-Е10 «Е11/Е10% •F11-F10 •F11/F107, G11-G10 ’G11/G107., = Н11-Н10 = Н11/Н10%
2-ой уровень
Объект величина апрель | май | июнь | квартал 2
Объект А1 план факт =0 2AG19 =0 3AG19 =0 5AG19 =0 6AG23 15 =H33 40 =СУММ(О20 F20)
Ж Объект А 2 план факт =0 25*G21 t=0 5*G21 =0 25*G21 ^=0 4*G23 12 25 14 =CyMM(D22 F22)
Всего план факт =D19+D21 =020+022 •E19+E21 =F19+F21
=E20+E22 =F20+F22 =СУММ(О24 F24)
1»'
О Показатели к1=Ф-Пл к2=(Ф/Пл)7« =D24-D23 =E24-E23 =F24-F23 =G24-G23 =D24/D23% =E24/E23% =F24/F23% =G24/G23%
Рис. 8.2.7
274
Часть III Типовые оптимальные решения
3-ий уровень
I’M | Объект величина 1 неделя 2 неделя 3 неделя 4 неделя май
| <И1 Объект А1 план = 0 2*Н32 s0 3-Н32 х0 2*Н32 =0 3*Н32 •Е19 '' j
факт 6 8 5 7 5 ’СУММОЗЗ G33)
^Показатели к1«Ф-Пл «D33-D32 E33-E32 F33-F32 •G33-G32 ’H33-H32
к2=(Ф/Пп)% =D33/D32*1OO =ЕЗЗ/Е32*100 =F33/F32k100 sG33/G32b100 =НЗЗ/Н32*100
Рис. 8.2.7 (продолжение)
4 », > 1 7' d * I М «1
г« 1-ый уровень
3 Объект величина 1 квартал 2 квартал 3 квартал 4квартал ГОД
JL 4 Объект А план факт 100 100 150 131 5 50 150 200 500 381 5
в 7^ Объект Б план факт 50 45 80 40 20 70 50 200 155
• Объект В план факт 75 60 75 70 75 80 75 300 210
4»/ Всего план факт 225 205 305 241 5 145 300 325 0
«г 746 5
tt.
13 W Показатели к1=Ф-Пл к2-(Ф/Пл)% -20 91 -63 5 79 155 207 -325 0 -253 5 75
2-ой уровень
’IS Объект величина апрель май ИЮНЬ 2 квартал
2в Объект А1 план факт 18 27 45 90 15 2 5 5 40 8 0 5
21 W Объект А 2 план факт 15 30 15 60 12 25 14 51
23 Всего план факт 33 57 27 50 5 60| 'H' j -’/да
24 54 131 5
w>
Показатели к1=Ф-Пл к2 = (ф/Пл)% -6 -6 5 -6 -18 5 82 89 90 88
'Ж V
3-ий уровень
«1 Объект величина 1 неделя 2 неделя 3 неделя 4 неделя I май
32 33 Объект А 1 план факт 5 4 5 8 1 8 5 4 5 8 1|ШУ 7 5 25 5
34
35’ 36 Показатели к1=Ф-Пл к2=(Ф/Пл)% -0 4 93 -0 1 99 -0 4 93 -0 6 -15 93 94
Рис. 8.2.8
Глава 8 Оптимальное распределение ресурсов 275
3. Модифицировать таблицы для 2-го и 3-го уровней в соответствии с рис. 8 2.6 с помощью удаления строк и столбцов
4. Установить правила и ввести формулы для распределения ресурсов на 2-ом уровне (рис. 8 2.7):
> Связь между уровнями обеспечивается вводом в ячейку G23 адреса Е4.
> Ввести формулы для распределения величины, находящейся в ячейке G23, между объектами А1 и А2 в ячейки G19, G21
> Ввести формулы распределения этих величин по месяцам для А1 в ячейки D19.F19, для А2 — в D21:F21.
5. Аналогично ввести зависимости для 3-го уровня в ячейку Н32 = Е19 и в ячейки D32:G32 — правила распределения суммарных ресурсов для объекта А1 в мае месяце по неделям
6. Ввести формулы, учитывающие фактическое состояние
> Данные для 3-го уровня вводятся в ячейки D33 G33
> Переход от 3-го уровня ко 2-му производится по формуле, введенной в Е20 = НЗЗ.
> Переход от 2-го уровня к 1-му производится по формулам, введенным в Е5 = G24.
7. Ввести исходное значение распределяемых ресурсов для первого уровня в ячейку НЮ.
8. Ввести фактическое состояние для третьего уровня в ячейки D33.G33
9. Ввести остальные фактические значения, не входящие в третий уровень D20, F20, D22:F22 и т. д
8.2.3. Постановка задачи оптимального финансирования
В отличие от эвристического распределения финансирования, когда для каждого объекта и каждого периода задается строго определенная величина, при оптимальном финансировании для каждого объекта и каждого периода задаются не конкретные значения, а нижние и верхние граничные условия, т е пределы, в которых должны находиться назначаемые величи
276
Часть III Типовые оптимальные решения
ны. В этих граничных условиях и производится финансирование с целью максимизации эффективности его использования. При этом эффективность определяется по целевой функции.
Оптимальное распределение финансирования производится на основе математической модели, составление которой начнем с таблицы, приведенной на рис. 8.2.9.
11
Объекты П« гриоды Ресурсы
1 J п
М'г' 1 Хи < Xi( Х1л bi
-*74 i Х,1 X, х„ b,
в m X m 1 Х»П| хтл
Потребность Ф d d„
Рис. 8.2.9
В этой таблице приняты обозначения:
1 — номер объекта финансирования;
j — номер периода финансирования;
x,j —объем финансирования i-ro объекта в j-ом периоде.
При принятых обозначениях приведенные ниже величины имеют следующий смысл:
п
— суммарное финансирование i-ro объекта по всем периодам, j=i
m
Ух,., — суммарное финансирование всех объектов в j-ом периоде. i=i
Все эти величины являются искомыми и определяются в результате решения задачи. Для нахождения этих величин необходимо задать исходные данные, которые в различных задачах могут быть различными.
На рис. 8.2.9. приняты следующие обозначения:
Ь, — задаваемая величина ресурсов, выделяемых для i-ro объекта, ф — задаваемая величина ресурсов, потребных в j-om периоде.
Глава 8 Оптимальное распределение ресурсов 277
Математическая модель, как и всегда, включает:
□ целевую функцию;
□ ограничения;
□ граничные условия.
Начнем с ограничений.
Ограничение для i-ro объекта записывается в виде
п
£хц{<=>}Ь., (8.2.1)
j=i
где bi — задаваемая величина ресурсов для i-ro объекта.
Ограничения для j-ro периода записываются в виде
m
£хи{<=>}ф, (8.2 2)
i=i
где ф — задаваемая величина ресурсов в j-ом периоде.
Граничные условия могут быть односторонними и двусторонними. Если нет специальных соображений, то в нижней границе обязательно должна быть назначена неотрицательность переменных
ху > 0. (8.2.3)
Если заданы конкретные значения нижней границы кч, то хч > кц
Назначение верхней границы допустимо, но не обязательно, поэтому в общем виде можно записать
к^х^Ку. (8.2.4)
Целевая функция должна иметь вид
F = ЦсуХу -» max (min), (8.2.5)
j=i 1=1
где су определяет, в каком смысле распределение ресурсов будет оптимальным.
При этом возможны различные варианты. Рассмотрим некоторые из них.
278
Часть III. Типовые оптимальные решения
1. С помощью значений су устанавливается приоритет финансирования i-го объекта в j-ом периоде. В этом случае, чем важнее финансирование, тем выше значение су, оцениваемое в баллах, например, в интервале от 0 до 10.
2. Если Сц является мерой оценки результата финансирования, то целевая функция (8.2.5) максимизируется.
3. Если сц характеризует непроизводительные траты, то целевая функция (8.2.5) минимизируется.
С учетом изложенного, рассматриваемая задача оптимального распределения финансирования может быть сформулирована в виде следующей математической модели:
m п
F = ££сухи -» max(min)
!=1 J=1
п
£хц{<=>}Ь,; i = i?S
н
m
£Хи{<=>}<^; j = l?H
1=1
ки<ху<Ку
(8.2.6)
Система (8.2.6) является задачей линейного программирования и представляет собой частный случай задачи (3.1.1), решение которой производится по блок-схеме, приведенной на рис. 3.3.1.
8.2.4. Решение задачи оптимального финансирования
Для решения задачи оптимального финансирования от общего случая (8.2.6) перейдем к конкретной задаче. Пусть m = 3, п = 4, т. е. будем решать задачу распределения финансирования для трех объектов в течение четырех периодов. Ту же задачу мы рассматривали при эвристическом распределении финансирования в 8.2.1. Величина сц принимается как характеристика результатов, оцениваемая в баллах.
Задачу будем решать при двух вариантах исходных данных. В первом варианте задаются объемы финансирования, выделен
Глава 8. Оптимальное распределение ресурсов 279
ные для каждого объекта; во втором варианте задается суммарный объем финансирования всех объектов. Начнем с первого варианта. Решение задачи включает:
о ввод исходных данных;
□ решение задачи;
□ формирование Сводной таблицы.
Алгоритм 8.2.4. Ввод исходных данных для оптимального распределения финансирования при заданных величинах для каждого объекта
1. Сделать форму для ввода исходных данных задачи (8.2.6) при m = 3, п = 4 (на рис. 8.2.10 приведены формулы, на рис. 8.2.11 — данные).
Форма состоит из трех блоков:
□ ограничений;
□ граничных условий;
□ коэффициентов в целевой функции.
2. В блок ограничений В3:19 ввести с помощью кнопки Автосуммирование:
> Значения левых частей ограничений для объектов в ячейки G4:F7.
> Знаки ограничений в Н4:Н6 и в C8:F8 введены для наглядности. Их ввод для решения задачи будет рассмотрен ниже.
> Значения правых частей для объектов в 14:16 и для периодов в C9:F9.
3. В блок граничных условий A13:F19 ввести отличные от нуля нижние и верхние границы для всех переменных.
4. В блок коэффициентов целевой функции B23:F26 ввести значения коэффициентов.
5. Ввести целевую функцию:
> Курсор в Н29.
> Мастер функций, Математические, СУММПРОИЗВ.
Массив 1 C4:F6.
Массив 2 C24:F26.
> Готово.
280
Часть III Типовые оптимальные решения
=СУММПРОИЗВ(С4 F6,C24 F26) макс
Глава 8 Оптимальное распределение ресурсов
281
Ограничения
га п период 1 период 2 период 3 период 4 левая часть знак в огр задан знач
Объект А Объект Б Объект В 0 0 0 <= <= 500 300 200
о левая часть знак в огр задан значение 0 160 0 <« 150 0 /о 0 >= 100
Гр. условия
1 период 1 период 2 период 3 период 4
|ЕЙ Объект А нижн гр верх гр 50 30 20 40
|113 КЙ1 Объект Б нижн гр верх гр 40 10 70 25 15
та Объект В нижн гр верх гр 25 30 35 60 40
ESI Коэф, в ЦФ
период 1 период 2 период 3 период 4
Объект А 6 5 6 8
Объект Б 10 8 7 9
Объект В 3 5 4 6
та та ЕЗ
ЦФ напр О макс
Рис. 8.2.11
На этом ввод данных в таблицу заканчивается. Решение задачи следует выполнить по алг. 8.2.5.
Алгоритм 8.2.5. Решение задачи оптимального распределения финансирования для алг. 8.2.4
1. Сервис, Поиск решения.
На экране: диалоговое окно Поиск решения.
2. Ввести:
> Целевую функцию Н29.
> Максимизировать.
> Изменяя ячейки C4.F6.
3. Ввести граничные условия:
> Нижние границы:
С4 >= С14
С5 >= С16
282
Часть III Типовые оптимальные решения
С6 >= С18
F6 >= F18
> Верхние границы:
D5 <= D17
Е6 <= Е19
Ввод каждого граничного условия производится командами:
> Добавить.
> Адрес переменной.
> Знак в ограничениях.
> Адрес граничного условия.
> Добавить.
4. Ввести ограничения:
> для объектов:
G4 <= 14
G5 <= 15
G6 <= 16
> для периодов:
С7 <= С9
D7 <= D9
Е7 = Е9
F7 >= F9.
Ввод ограничений производится так же, как и граничных условий. После ввода последнего ограничения вместо Добавить нужно нажать кнопку ОК.
На экране: диалоговое окно Параметры поиска решения
6. Ввести Линейная модель.
7. ОК.
8. Выполнить.
На экране: в ячейках C4:F6 результат решения задачи (рис. 8.2.12).
Глава 8 Оптимальное распределение ресурсов
283
Ограничения
период 1 период 2 30 10 30 период 3 20 25 45 период 4 певая часть знак в огр задан знач
Объект А Объект Б Объект В 50 85 26 400 180 100 500 300 200 <= <= 500 300 200
левая часть знак в огр задан знач 160 160 70 <= 150 90 90 680 >= 100
период^
40
Гр.условия
период 1 период 2 период 3
50 30 20
—=—=
Объект Днижн гр _____[верх гр
Объект а нижн гр _____верх гр Объект внижн гр _____|верх гр
40 10 25
Коэф, в ЦФ
15
40
Объект А
Объект Б
Объект В
период 2
период 3
период 4
период 1
6
10
_______3
ЦФ напр
7500 макс
Рис. 8.2.12
Из полученного решения видно, что объекту А в первом периоде выделено 50, во втором — 30 и т. д. Значение целевой функции находится в ячейке Н29 и равно 7500. Смысл этой величины определяется смыслом коэффициентов сч. Если для установления приоритета они назначались в баллах, то величина целевой функции физического смысла не имеет. Напомним, что мы рассматривали первый вариант задания исходных данных, в котором задавались значения ресурсов, выделенных на каждый объект. /
Теперь перейдем к случаю, когда установлена общая сумма финансирования, которая должна распределяться между всеми объектами.
284
Часть III Типовые оптимальные решения
Алгоритм 8.2.6. Решение задачи оптимального распределения финансирования при заданном его суммарном значении
Ввод исходных данных производится, в основном, так же, как и в алг. 8 2 4, но в форме ввода исходных данных необходимо изменить следующее (рис. 8.2.13):
1. Удалить ограничения для объектов, находящиеся в ячейках Н4:16 (рис. 8.2.11).
2. Ввести строку 7:
в ячейки:
G7 суммирование G4:G6
Н7 знак <=
17 значение всех ресурсов 1000
3. Сервис, Поиск решения...
4. Удалить ограничения:
G4 <= 14
G5 <= 15
G6 <= 16
5. Ввести ограничения:
G7 <= 17
6. Выполнить.
На экране: результат решения задачи, приведенный на рис. 8.2.13.
Из этого решения видно, что при назначении общего ресурса на все объекты результат распределения ресурсов, измеряемый значением целевой функции, увеличился по сравнению с первым вариантом с 7500 до 8650. Это еще раз подтверждает, что каждое ограничение ухудшает целевую функцию.
Глава 8 Оптимальное распределение ресурсов
285
q
t'jfc‘ Ограничения
8 < а, X JL ,» JL А Ж
Объект А Объект Б Объект В Все объекть период 1 период 2 период 3 20 35 35 период 4 левая часть знак в огр задан знач
50 665 25 1 30 10 30 40 20 40 140 730 130 1000 <« 1000
левая часть знак в огр задан знач 740 120 70 <= 150 S0 90 100 > = 100
neguogj
20
нижн гран верх гран нижн гран верх гран нижн гран верх гран
Г^аничньм^слогая^ negjiogl 50
период^
30
пе£>иод4 40
я. за
& W ж дт за л»
Объект АI
Объект Б
Объект В
40
25
25
35
60
10
70
30
Коэф, в целевой функции
период 1 период 2 период 3 период 4
Объект А Объект Б Объект^! 6 10 3 5 8 5 6 7 4 8 9 6
Рис. 8.2.13
ЦФ напр
8650 макс
8.2.5. Распределение недостаточного финансирования
Если ввести задачу оптимального распределения финансирования при условиях, когда потребности в финансах превышают их наличие, тогда на экран выдается сообщение, что поиск не может найти решения. Это является, как известно, признаком несовместности. Естественно, что никакие алгоритмы не могут заменить недостающего финансирования Однако они могут подсказать, как распределять финансирование в таких случаях Решение задачи рассмотрим для первого варианта исходных данных, когда каждому объекту были выделены определенные финансы (рис. 8.2.12). В таблицу (рис 8.2.14) введем в ячейки C9 F9 такие значения, чтобы их сумма 1550 заведомо превышала сумму значений, находящихся в ячейках правой части ограничений по объектам, равную 1000.
286 Часть III Типовые оптимальные решения
Способ преодоления несовместности мы уже рассматривали в главе 3. Здесь будем поступать аналогично. Ограничение для объекта А (рис. 8.2.12) имеет вид
С4 + D4 + Е4 + F4 < 14.
Для преодоления несовместности введем недостающий ресурс. При этом уравнение примет вид
С4 + D4 + Е4 + F4 = 14 + доп. рес.
или
С4 + D4 + Е4 + F4 - доп. рес = 14.
На этом построено решение задачи при недостатке финансирования. Для решения задачи следует пользоваться следующим алгоритмом.
Алгоритм 8.2.7. Преодоление несовместности при недостаточном финансировании
1. Вызвать таблицу (рис. 8.2.12).
2. Вставить столбец G (рис. 8.2.14 — формулы; рис. 8.2.15 — данные).
3. Ввести в блок ограничений:
> Ячейки G3:G6.
> В ячейки Н4:Н6 ввести указанные формулы.
> В ячейки G14:G19 и G24:G26 ничего не вводить.
4. Сервис, Поиск решения...
5. Ввести:
> Изменяемые ячейки: C4:G6.
> Ограничения для объектов:
Н4 = J4
Н5 = J5
Н6 = J6
> Ограничения для периодов:
С7 <= С9
D7 <= D9
Е7 = Е9
F7 >= F9
Глава 8 Оптимальное распределение ресурсов
287
288
Часть III Типовые оптимальные решения
6. Дополнительно к введенному по алг. 8.2.5. ввести:
> Граничные условия:
G4 >= G14
G5 >= G16
G6 >= G18
7. Выполнить.
На экране: результат решения (рис. 8.2.15).
1
JL
JL
ж
X
Ограничения
Объект А Объект Б Объект В левая часть знак в огр задан знач
период 1
50
425
______25
500
период 2 100 20
______30
150
период 3
20 345 ______35
400
период 4
40
420
40
500
медост
0 910
левая часть
210
300
________130
знак в огр за^нач 500 300 200
iTli
400
500
500
150
Граничные условия
Рис. 8.2.15
В полученной таблице G5 = 910. Это значит, что для выполнения финансирования при введенных в ячейки C9:F9 заданных значениях, необходимо увеличить финансирование для объекта Б на 910 единиц.
Аналогично можно определять недостающее финансирование и для второго варианта исходных данных, в котором назначались суммарные ресурсы для всех объектов. Полагаем, что внимательный читатель с этой задачей справится самостоятельно.
Глава 8 Оптимальное распределение ресурсов_ 289
—** """" '' ' 1 ' ........................ ......
8.2.6. Анализ фактического состояния работ
Напомним, что эвристическое распределение финансирования производилось с помощью Сводной таблицы (рис. 8 2.2), в которую вводились:
□ плановые показатели;
□ фактическое состояние;
□ показатели.
Ввод фактического состояния и показателей при оптимальном финансировании не отличается от этих работ при эвристическом финансировании, определение же плановых и их ввод производится по следующему алгоритму.
Алгоритм 8.2.8. Работа со Сводной таблицей
1. Решить задачу оптимального финансирования для условий, приведенных на рис. 8.2.12.
2. Вызвать на экран Сводную таблицу (рис. 8.2.2).
3. Скопировать в Сводную таблицу (рис. 8.2.16) результаты оптимального финансирования (рис. 8.2.12)
оШеджг.; дай.?®» wqww
Объект величина период Г сначала период 2 сначала период 3 сначала период 4 сначала
к Объект А план факт 50 50 100 100 30 80 120 220 20 100 150 370 400 500 370
Объект Б план факт 85 85 45 45 10 95 40. 85 25 120 70 156 400 200 155
Объект В план факт 25 25 60 60 30 66 70 130 25 80 80 210 100 300 210
ж Всего план факт 160 160 205 205 70 230 230 435 70 300 300 735 90р| 1000 0 735
ц Показатели к1«ф-Пл к2-(Ф/Пл)% 45 45 128 128 160 205 329 189 230 435 429 245 -900 -265 0 73 5
Рис. 8.2.16
Переход от ячеек рис. 8.2.12 к ячейкам рис. 8.2.16 приведен на рис. 8.2.17.
О Зак 115
290
Часть III. Типовые оптимальные решения
О
4—,-.в. 1 -с/A o,- b^e-J;- F и.у »
- ' рис 8.2.12 рис 8.2.16
период 1. период 2 период 3 период 4 период 1 период 2 период 3’ период 4
Объект А Объект Б Объект В C4 ; D4 ; Е4 F4 С5 ' D5 Е5 > F5 C6 ' D6 Е6 F6 04 , F4 Н4 J4 06 ’ F6 Н6 J6 D8 F8 “ Н8 J8
Рис. 8.2.17
4. Ввести фактические значения.
5. Оценить величины показателей.
6. Принять необходимые решения, направленные на улучшение показателей.
7. При желании можно построить диаграммы по алгоритмам главы 2.
8.2.7. Оптимальное финансирование в иерархической структуре
Оптимальное распределение финансирования будем производить в той же структуре, в которой в 8.2.2 выполняли эвристическое распределение. Рассмотрим наиболее общий случай: второй вариант задания исходных данных, когда задается общая сумма финансирования для всех объектов (рис. 8.2.13; алг. 8.2.6).
При решении этой задачи для каждого уровня составляются 3 таблицы (рис. 8.2.18 — формулы; рис. 8.2.19 — данные): для ограничений, граничных условий, коэффициентов целевой функции, аналогичные тем, которые использовались при рассмотрении задачи для одного уровня.
Введенные формулы обеспечивают:
□ зависимости для каждого уровня;
□ связь между уровнями.
8. Оптимальное распрвАвление ресурсов
291
Рис. 8.2.18
Рис. 8.2.18 (продолжение)
292 ____________Часть III. Типовые оптимальные решения
— - ' - 3-ий уровень Ограничения
1 неделя 2 неделя 3 неделя 4 неделя левая часть 1 знак вогванич. 1 знач во 2-ом ировне],
Объект А1 =СУММ(С57:Е57) = |xD33
знак в огр задан, знач >= >S S >= 10 ' 0 15 ' 0 t - ’
Гр.условия '• -
1 неделя 2 неделя 3 неделя, 4 неделя
Объект All нижн. гран. 1верхн.гран. 5 15 - - 1
- Коэф. в Ц4> ЦФЗ направление
11 неделя 2 неделя 3 неделя. 4 неделя - CHMMnPOH3B(C57:F57;C68:F68) макс
Объект А1 4 7 2 8
Рис. 8.2.18 (продолжение)
/лава 8. Оптимальное распределение ресурсов_____293
294
Часть III Типовые оптимальные решения
1-ой уровень
JL 4' ggj
X X
w
Объект А Объект Б Объект В Все объекты левая часть знак в огр зад знач
1 квартал 2 квартал 3 квартал 4 квартал левая частьзнак е огр год О
О 0
Л
ЧУ
«.
Л
Объект А
Объект Б
Объект В
.I»
И
-а
»
к-
’4№'.
If
Л.
И
Ж
нижн гр верхи гр нижн гр верхи гр нижн гр верхи гр
1000
10
20
15
4 квартал
25
1 квартал
10
20
10
Коэффициенты в ЦФ
ЦФ1 напр в макс
Объект А Объект Б Объект В
1 квартал 6
10 3
2 квартал
_Эква£тал 6
4
4 квартал
8 S
6
2-ой уровень Ограничения_______
апрель мм май июнь левая часть знак в огр знач в 1-ом ур
Объект А1 0
Объект А2 0
Весь объект А 0 К' ч
левая часть 0 0 0
знак в огр > = >«
зад знач 100 30 10
Г раничные условия
Объект А1
Объект А2
нижн гр верки гр нижн гр верхи гр
апрель
О
май
0
июнь
о
10
ЦФ2 напр О макс
Коэф, в ЦФ
Объект А1
Объект А2
апрель май июнь
1 0 4
7 6 3
Рис. 8.2.19
Глава 8 Оптимальное распределение ресурсов
295
> даты
; в
шшшшшшишшшшявш г> • - а
Объект А1 знак в огр задан знач
Э<«ш уровень Ограничения
1 неделя 2 неделя 3 неделя 4 неделя [левая часть|знак в огр знач во 2-ом
10
о
15
О
о
К
Объект А1 нижн гран верхи гран
Граничн.условия
1 неделя 2 неделя 3 неделя 4 неделя
6
15
Объект А1
Коэф, в Ц»
1 неделя 2 неделя 3 неделя 4 неделя)
4 7 г' 81
црз о
направление макс
Рис. 8.2.19 (продолжение)
Алгоритм 8.2.9. Ввод данных в иерархическую структуру
1. Определить число уровней и форму ввода исходных данных для каждого уровня.
2. Ввести исходные данные во все уровни.
‘ 3. Ввести связь между уровнями.
Переход от 1-го уровня ко 2-ому покажем для распределения ресурсов, выделенных объекту А во 2-м квартале
Для этого необходимо ввести:
> В таблицу коэффициент целевой функции D23 = 0.
> В распределяемые ресурсы второго уровня Н37 = D4
> Целевую функцию в Н21.
Аналогично выполнить переход от 2-го уровня к 3-ему.
4. Сервис, Поиск решения...
5. Назначить
ЦФ = Н21, максимизировать.
Изменяя ячейки: C4:F6, C33.E34; C57 F57
6. Ввести ограничения и граничные условия, приведенные на рис 8.2.20
7. Параметры.... Линейная модель.
8. ОК.
9. Выполнить.
На экране результат решения, приведенный на рис 8 2 21.
296
Часть III Типовые оптимальные решения
1 иякзия Граничные условия и ограничения в иерархической структуре
Уровень структуры Граничные условия Ограничения
Я; НГ ВГ для периодов по ресурсам
’V 1 С4>=С13 С5>=С15 С6>=С17 D4>=D13 F6>=F17 С8>=С10 G7<=I7 D8>=D10 Е8>=Е10 F8>=F10
«ел
9
eft»
.49 2 СЗЗ>=С42 С34>«С44 D33>=D42 Е34>=Е44 С36<=С38 F35=H35 D36<=D38 Е36<=Е38
,49
;4<:
лг
к
47 3 С57>=С63 D57<=064 D57>=D63 Е57>=Е63 F57>=F63 С67>=С69 G57=I57 D57>=D59 Е57>=Е59 F57>’F59
лг 49г
20
Рис. 8.2.20
5 1 I'" ; w/шжш -I
1-ый уровень Ограничения 4 квартал левая частьзнак в огр гор
ES^^B Объект A Объект Б Объект В Все объекть 1 квартал 2 кварта; 10 70 530 20 20 10 3 квартал
m 30 25 135 210 55 815 0 20 50 1000 < 1000
левая часть знак в огр задан знач 560 100 240 100 >= >х >« 80 90 240 100
Граничные условия
1 квартал 2 квартал 3 квартал 4 квартал
|ЙИН Объект A нижн гран верхи гран 10 10 30 25
шьщяз Ki нижн гран верхи гран 15 20
швИН нижн гран верхи гран 20 10 20
Коэфициенты в ЦФ ЦФ1 налр 0005 макс
1 квартал 2 квартал 3 квартал 4 квартал
Объект А Объект Б Объект В 6 10 3 0 8 5 6 7 4 8 9 6
Рис. 8.2.21
Глава 8 Оптимальное распределение ресурсов
297
Объект А1
Объект Д2
2-ой уровень
Ограничения
апрель май июнь левая частьзнак в огр знач 1-ом vp
Объект А1 0 30 10 40
Объект А2 20 10 0 30
Весь объект А 70 =
левая часть 20 40 10
знак в огр < = >= >z
задан знач 100 30 10
Г раничные условия
нижн, гран верхи гран нижн гран верхи гран
апрель
О
май
о
июнь
20
10
ЦФ2 нлпр
350 нэке
Коэфициенты в ЦФ
1ЕВВВЕЕВВВЕЕЁШВ
3-ий уровень Ограничения
1 неделя 2 неделя 3 неделя 4 неделя левая часть|знак в огр знач 2-ом ур
Объект А1 знак в огр задан знач 10 0 15 5 >= >= = > = 10 0 15 0 30
Граничные условия
1 неделя 2 неделя 3 неделя 4 неделя
Объект А1 нижн гран верхи гран 5 15
Коэфициенты в ЦФ ЦФЗ направ
1 неделя 2 неделя 3 неделя 4 неделя 110 макс
Объект А1 4 7 2 8
Рис. 8.2.21 (продолжение)
После получения решения можно перейти к работе со Сводной таблицей.
298
Часть III Типовые оптимальные решения
Алгоритм 8. 2.10. Работа со Сводной таблицей в иерархической структуре
1. Сделать Сводную таблицу по типу рис. 8.2.8, соответствующую требуемой иерархической структуре.
2. Решить задачу оптимального распределения финансирования в иерархической структуре.
3. Скопировать результат решения задачи в ячейки плановых величин.
4. Ввести фактические значения.
5. Оценить значение полученных Показателей: к1, к2.
S. При необходимости можно построить диаграммы.
8.3. Распределение ресурсов во времени
8.3.1. Временные характеристики работ
Любое действие, направленное на достижение цели и требующее времени, будем называть работой, которая характеризуется величинами
TiOK = T1H + t1, (8.3.1)
где Т,н, TiOK — время начала и окончания i-ой работы, t, — продолжительность i-ой работы.
Временные характеристики работ рассмотрим для структуры, приведенной на рис. 8.3.1, и определим их по зависимости
=f(L,T1H,tJ), (8.3.2)
где L — логическая зависимость работ.
' С Е .F
.Г' Работы продолж после работы до работы
3 Работа 1 5 2,3.4
4 Работа 2 10 1 5
5 Работа 3 15 1 5
С Работа 4 20 1 5
7 Работа 5 15 2.3.4
Работы могут быть:
□ последовательными;
□ параллельными;
а комбинированными.
Рис. 8.3.1
299
рлава 8 Оптимальное распределение ресурсов
Для последовательных работ
•прН __ 'Т'ОК ri+l ~ А1
Зависимости для параллельных работ, которыми являются работы 2, 3, 4, имеют вид:
Т2Н = Т” = if,
Т°3К4 = тах(т2ок,Т3ок,Т4ок), (8.3.3)
где TiOK определяется по (8.3.1).
Параллельные работы имеют резерв времени
Д,=Т2°3К4-Т°К (8.3.4)
Работы, не имеющие резерва времени, находятся на критическом пути.
Комбинированные работы представляют собой сочетание последовательных и параллельных работ. Их временные характеристики находятся по соответствующим зависимостям, приведенным выше. Для наглядного представления взаимозависимых работ применяется линейный график, построение которого включает:
□ формирование таблицы временных характеристик;
□ построение линейного графика.
Алгоритм 8.3.1. Формирование таблицы временных характеристик
1. Составить таблицу логической последовательности работ.
Для рассматриваемого примера такая таблица приведена на рис. 8.3.1.
2. Составить таблицу временных характеристик.
В таблицах (рис. 8.3.2, рис. 8.3.3) реализованы зависимости (8.3.1 — 8.3.4). Таблица с формулами приведена на рис. 8.3.2.
3. Ввести исходные данные в ячейки, выделенные тенью (рис. 8.3.3).
300
Часть III Типовые оптимальные решения
ЖЛ 'i i/» Е г I «, M %:
Цаты
3, Работы продолж нач оконч ожидание длител |
4 Работа 1 5 0 =E4+D4 =E4-E$4 =D4
в Работа 2 10 =F$4 =E5+D5 =E5-E$4 =D5
в** Работа 3 15 =F$4 =E6+D6 =E6-E$4 =D6
«у Работа 4 20 =F$4 =E7+D7 =E7-E$4 =D7
* Работа 5 15 =MAKC(F5 F7) =E8+D8 =E8-E$4 =D8 J
1 । 1 4
2
3 резерв | критический путь
& 8 7 =H4-D4 =ЕСЛИ(14=0,"Критич путь","Есть резерв") =MAKC(F$5 F$7)-F5l= ЕСЛИ(15=0/Критич путь","Есть резерв") =MAKC(F$5 F$7)-F6! =ЕСЛИ(16=0,"Критич путь","Есть резерв") =MAKC(F$5 Р$7)-Р71=ЕСЛИ(17=0;'Критич путь","Есть резерв") =H8-D8 |=ЕСЛИ(18=0,"Критич путь","Есть резерв")
Рис. 8.3.2
Таблица с данными приведена на рис 8 3 3 В этой таблице показаны все временные характеристики работ и указано, какие работы находятся на критическом пути При изменении исходных данных пересчет таблицы производится автоматически Эта таблица является основой для построения линейного графика.
С D JE F В И 1 .. 4 1
1
*2^ 1 Д а ты Длительность
*2 Работы продолж| нач оконч ожидание длительн резерв критическим путь
4 Работа 1 1,11 J о 5 0 5 0 Критич путь
Работа 2 J * 1 5 15 5 10 10 Есть резерв
Работа 3 Л 5 20 5 15 5 Есть резерв
7 Работа 4 ‘за 1 5 25 5 20 0 Критич путь
♦ Работа 5 1 25 40 25 15 0 Критич путь
Рис. 8.3.3
Глава 8 Оптимальное распределение ресурсов 301
Алгоритм 8.3.2. Построение линейного графика
j 1. Выделить ячейки СЗ.С8, G3.I8 (рис. 8.3.3).
2. Мастер диаграмм.
> шаг 2 — Линейчатая.
> шаг 3 — Вид 3.
> шаг 4 — Ряд данных в столбцах.
1 столбец 1 строка — метки.
> шаг 5 — добавить легенду,
ввести название диаграммы и оси Y
На экране: встроенный линейный график.
Теперь следует выполнить его форматирование.
3. Курсор на поле диаграммы
4. М2.
На экране: выделенный линейный график.
5. М2.
6. Назначить.
> Рамка — невидимая
> Цвет — белый
> Цвет диаграммы — белый.
7. Курсор на столбик "ожидание" любой работы.
8. М2.
9. Назначить заливку белого цвета
10. Курсор за пределы диаграммы.
11. М1.
На экране отформатированный линейный график (рис. 8.3.4)
Построенный график связан с таблицей, показанной на рис. 8.3.3, и любое изменение в таблице автоматически отражается на графике.
При составлении таблицы (рис. 8 3.3) за начало всех работ принималась величина Е4 = 0 При выполнении практических работ таблицу временных характеристик желательно иметь в датах Такой переход выполняется следующим образом
302
Часть III Типовые оптимальные решения
Рис. 8.3.4
Алгоритм 8.3.3. Перевод таблицы временных характеристик в режим представления дат 1. В таблице (рис. 8.3.3) выделить E14:F18.
2. Формат, Ячейки, Число, Дата.
3. Выбрать нужный формат.
4. В Е14 ввести начальную дату только для первой работы. На экране: все данные в таблице представлены в режиме представления дат (рис. 8.3.5).
' С Ч11 О ЛГ А. .в"* 41 " ,' '.И
• V
Ms, Даты Длительность
Рабом продопж нач оконч ожидан длитеп резерв критический путь
'4' Работа 1 5 аЙЙ 250896 0 5 0 Критич путь
Ж Работа 2 У-!», 26 08 96 04 09 96 5 10 10 Есть резерв
Работа 3 2508 96 0909 96 5 15 5 Есть резерв
Работа 4 25 08 96 14 09 96 5 20 0 Критич путь
,4 Работа 5 14 09 96 2909 96 25 15 0 Критич путь
Рис. 8.3.5
Следует подчеркнуть, что переход к датам на построение линейного графика не влияет.
Глава 8 Оптимальное распределение ресурсов
303
8.3.2. Оптимальное распределение ресурсов во времени
Все работы, представленные на линейном графике, для своего выполнения требуют ресурсов. Задача оптимального распределения ресурсов во времени может решаться в двух постановках:
□ минимизация времени выполнения работ определенной трудоемкости при заданных ресурсах;
□ минимизация потребных ресурсов, обеспечивающих выполнение всех работ в заданный период времени.
Первая постановка:
F = Тпок -> пип
t.=— (а)
R,
Т» =f(L,T,H,t.)
Т°к =TH+ti
тн =тзаД) 1 =
где Qi — потребная трудоемкость i-ой работы,
R, — ресурс, выделенный для i-ой работы.
Вторая постановка'.
F - ^R, -» nun .Д (а)
R, Т» =f(L,T»,tj) т°к = тн + ti •"рОК. < -г зад Ап “ Ап Q = Q?a" TH=T1^, 1 = 1—
(8.3.5)
(8.3.6)
где ь — время выполнения i-ой работы.
В (8.3.5), (8.3.6) зависимости (а) нелинейные, следовательно, эти системы является нелинейными и их следует решать, как задачи нелинейного программирования, которые рассматривались в главе 5.
304 Часть III Типовые оптимальные решения
Решение рассматриваемых задач будем выполнять для задачи в первой постановке, на примере, для которого строился линейный график. Решение задачи во второй постановке производится аналогично.
Алгоритм 8.3.4. Решение задачи оптимального распределения ресурсов
1. Составить таблицу логической последовательности работ (рис. 8.3.6), которая совпадает с рис 8.3.1.
. С О . ЕJ
£
3 Работы после работы до работы
4 Работа 1 2,3.4
S Работа 2 1 5
* в Работа 3 1 5
’7 Работа 4 1 5
« Работа 5 2.3.4
2. Сформировать расчетную таблицу.
Расчетная таблица с формулами приведена на рис. 8.3.7, таблица с данными — на рис. 8.3.8.
Рис. 8.3.6
С 0 JE F « I Я I 1 I J't
11
12 Искомые Задано Пэты
13 Работы t, R. Офакт QriOTP ^«ад Тнач T0K
14 Работа 1 10 5 =D14*E14 10 5 0 =I14+D14
1S Работа 2 10 5 =D15*E15 40 8 =J$14 =115+015
18 Работа 3 10 5 =D16"E16 30 6 =J$14 =I16+D16
17 Работа 4 10 5 =D17*E17 45 15 =J$14 =117+017
18 Работа 5 10 5 =D18*E18 16 2 =MAKC(J15 J17) =I18+D18
M I t J M | t м ~ '# |
11
IT критический путь
13 ожидан цлител резерв
14 15 16 17 IS =114-114 =I15-I$14 =I16-I$14 =I17-I$14 =I18-I$14 =014 •D15 =D16 *D17 = D18 =1.14-014 = MAKC(J$15 J$17)-J15 = MAKC(J$15 J$17)-J16 =MAKC(J$15 J$17)-J17 •L18-D18 =ЕСЛИ(М14=0,“Критич путь","Есть резерв") =ЕСЛИ(М15=0,"Критич путь”,"Есть резерв") =ЕСЛИ(М16=0, "Критич путь","Есть резерв") =ЕСЛИ(М17=0,"Критич путь","Есть резерв") =ЕСЛИ(М18=0,"Критич путь","Есть резерв")
Рис. 8.3.7
/лава 8 Оптимальное распределение ресурсов
305
Работы
Работа 1
Работа 2
Работа 3
Работа 4
Работа 5
Искомые
2 S
50 35
9
В
5 8 60
127 2
Сумма ресурсов 33.7
Задано
Офькг
10
40
30
45
18
Опотр “io
40 30
45 18
5
8
6
15 2
Тиач ]“о
2 2 2 7
Ток 2 7 7 6 16
Длительность
ожид длит
О 2 2 2 7
2 5
5 4 9
резерв
О О О
критич путь Критич путь Критич путь Критич путь Есть резерв Критич путь
о
Рис. 8.3.8
3. В ячейки D14:E18 ввести начальные ненулевые значения ' искомых переменных tj и R„ необходимые, для решения задачи нелинейного программирования, о чем говорилось в главе 5. Такие начальные значения показаны на рис 8.3.7.
‘4. Сервис, Поиск решения...
5. Ввести:
: > Целевая функция J18; минимизировать;
( > Изменяемые ячейки D14:E18;
> Начальная дата 114 = 0.
6. Ввести неотрицательные граничные условия для всех изме-; няемых ячеек:
D14 >= 0
D15 >= 0
, Е18 >= 0
7. Ввести условия д ля трудоемкости Q, = :
F14 = G14
F15 = G15
b F18 = G18
В. Ввести условия для ресурсов R) < R,333 :
Е14 <= Н14
Е15 <= Н15 18
Е18 <= Н18
306
Часть III Типовые оптимальные решения
9. Выполнить.
На экране: результат решения задачи, который приведен на рис. 8.3.8.
По полученным данным можно построить линейный график выполнения работ при оптимальном распределении ресурсов.
Алгоритм 8.3.5. Построение оптимального линейного графика
1. Выделить С13:С18, К13:М18.
2. Выполнить алг. 8.3.2.
На экране: оптимальный линейный график (рис. 8.3.9).
Оптимальный линейный график
Работа 5
Работа 4
□ резерв длит □ ожид
Работа 1
5 дим откачала 15
Рис. 8.3.9
В рассмотренной задаче для выполнения каждой работы могли использоваться ресурсы различного типа (трудовые, сырье и т. д.). Вместе с тем, достаточно часто встречаются задачи, в которых для выполнения всех работ необходимо распределять один ресурс. Как правило, таким ресурсом являются финансы. Решение этой задачи — оптимального распределения финансирования — рассматривается в следующем разделе.
Глава 8 Оптимальное распределение ресурсов
307
8.3.3. Оптимальное распределение финансирования во времени
Оптимальное распределение финансирования во времени производится по следующему алгоритму.
Алгоритм 8.3.6. Оптимальное распределение финансирования во времени
1. Изменить таблицу ввода данных (рис. 8.3.8), как это показано на рис. 8.3.10.
с 0 < Е Е 6 И 1 '*'1
11
Искомые Задано Даты Длительность
13 Работы I. R, Офакг Qnorp Тнач Ток ОЖИД длит резерв критич путь
W4. Работа 1 3 41 2 93 10 10 0 3 0 3 0 Критич путь
м Работа 2 13 08 3 06 40 40 3 16 3 13 0 Критич путь
Работа 3 13 08 2 29 30 30 3 16 3 13 0 Критич путь
Работа 4 13 08 3 44 45 45 3 16 3 13 0 Есть резерв
Работа 5 5 50 3 28 18 18 16 22 16 5 0 Критич путь
СУММ(Е14:Е18)= 15.00
Кзад= 15
м ско= 0.44
Рис. 8.3.10
По сравнению с таблицей на рис. 8.3.7 в ней изменено сле-1 дующее:
> Удалены ячейки Н13:Н18, где задавался К,зад для каждой работы.
> В Е19 введена СУММ(Е14:Е18).
2. Ввести в ячейку Е20 задаваемое суммарное значение распределяемых финансов.
3. Сервис, Поиск решения...
Й. Ввести:
> Целевую функцию: 118, минимизировать.
> Изменяя ячейки: D14:E18.
308
Часть III Типовые оптимальные решения
5. Ввести граничные условия на изменяемые ячейки:
D14 >= О
D15>=0
Е18>=0
6. Ввести требования для трудоемкостей:
F14 = G14
F18 = G18
7. Ввести требования по ресурсам'
= ^зад
1=1
Е19 = Е20
8. Выполнить.
На экране: на рис 8.3.10 приведен результат решения задачи.
Как мы неоднократно отмечали, важным средством анализа решаемых задач является параметрирование. Выполним его и для этой задачи, параметрируя по Кзад.
Алгоритм 8.3.7. Параметрирование по R3afl и графическое представление результатов
1. Выполнить параметрирование по величине Кзад.
2. Результаты параметрирования ввести в таблицу (рис 8.3.11), в ячейках Е24'124 которой приведены задаваемые значения Кзад, а в ячейках Е25:125 — результат решения Ток (где Ток — время окончания всех работ).
3. Построить график Ток = ЦКзад).
> Выделить D24:I25.
> Мастер диаграмм:
шаг 2 — Г рафик.
шаг 3 — Вид 2.
шаг 4 — в строках:
1 стр. 1столб.
шаг 5 — легенды нет, ввести названия.
Глава 8 Оптимальное распределение ресурсов 309
4. Убрать фон (алг. 8.3.9).
s На экране: график Ток = Г(Изад) (рис. 8.3.11).
С помощью этого графика легко по значению одной из величин определить значение другой.
Важной характеристикой распределения ресурсов является степень их неравномерности, которую будем оценивать средне-квадратическим отклонением (СКО) величин R,. СКО определяется с помощью функции СТАНДОТКЛОН( ) по следующему Алгоритму.
Алгоритм 8.3.8. Определение неравномерности распределения финансирования
1. Курсор в Е21 (рис. 8.3.10).
к Мастер функций, Статистические, СТАНДОТКЛОН.
к В поле число 1 ввести Е14:Е18.
к Готово.
' На экране: Е21 = 0,44.
I Напомним, что при этом время окончания всех работ Ток = 118 = 22.
ЗЮ
Часть III Типовые оптимальные решения
Если целью оптимизации является равномерное финансирование всех работ, то следует минимизировать целевую функцию, в качестве которой должна быть назначена функция Excel СТАНДОТКЛОН(). Это выполняется по следующему алгоритму.
Алгоритм 8.3.8. Минимизация неравномерности финансирования
1. Курсор в ячейку Е21.
2. Мастер функций, Статистические, СТАНДОТКЛОН.
3. В поле число 1 ввести Е14:Е18.
4. Готово.
5. Сервис, Поиск решения...
6. Назначить целевую функцию Е21, минимизировать.
Остальные условия вводятся такие же, как в алг. 8.3.6.
7. Выполнить.
На экране: результат решения (рис. 8.3.12).
1 С 0 * F 6 Н 1 * м I
Искомые Зад ано Даты Длительность
и Работы Ri Офакт Опотр Тнач Ток эжид ДЛИТ резерв критич путь
Работа 1 3 33 3 00 10 10 0 3 0 3 0 Критич путь
45 Работа 2 13 33 3 00 40 40 3 17 3 13 2 Критич путь
16 Работа 3 10 00 3 00 30 30 3 13 3 10 5 Есть резерв
47 Работа 4 15 00 3 00 45 45 3 18 3 15 0 Критич путь
45 Работа 5 6 00 3 00 18 18 18 24 18 6 0 Критич путь
45 15
20 Язад= 15
21 ЦФ2 0.00
Рис. 8.3.12
Из этого рисунка видно, что среднее квадратическое отклонение Е21 =0, однако для достижения такой идеальной равномерности приходится платить увеличением продолжительности выполнения всех работ Ток = 118 = 24. Напомним, что при СКО = 0,44 продолжительность всех работ была Ток = 22. Таковы основные задачи оптимального финансирования во времени
Глава 8 Оптимальное распределение ресурсов 377
8.4. Задачи управления проектом
8.4.1. Классификация задач
Под проектом принято понимать комплекс взаимосвязанных работ, направленных на достижение поставленной цели. Проект включает:
□ первоначальное планирование;
□ учет фактического состояния;
□ анализ отклонения факта от плана;
□ принятие необходимых решений.
Первоначальное планирование включает распределение ресурсов во времени как традиционное, так и оптимальное. Классификация основных задач, возникающих при управлении проектом, приведена на рис. 8.4.1, решение которых и составляет содержание данного параграфа.
Рис. 8.4.1
0.4.2. Анализ
Оптимального распределения ресурсов
[Три оптимальном распределении ресурсов во времени в 8.3.2 5ыло получено решение, приведенное на рис. 8.3.8. Для вы-1олнения анализа необходимо модифицировать эту таблицу в ’аблицу, показанную на рис. 8.4.2, по алгоритму (8.4.1).
312
Часть III Типовые оптимальные решения
1 В | С | D I е | F I G | Н I I |
1 !ЙЛ1
Работы Стоимость нач ОКОНЧ ожид ДЛИТ резерв критич путь Исполнитель
Работа 1 100 01 09 96 03 09 96 0 2 0 фитич путь Орлов
чу1- Работа 2 400 03 09 96 08 09 96 2 5 0 Критич путь Сидоров
Работа 3 300 03 09 96 08 09 96 2 5 0 Критич путь фотов
Работа 4 450 03 09 96 06 09 96 2 4 1 Есть резерв Фролов
Ч»' Работа 6 180 08 09 96 17 09 96 7 9 0 Критич путь Орлов
Рис. 8.4.2
Алгоритм 8.4.1. Формирование таблицы
для проведения анализа
1. Вызвать результат оптимального распределения ресурсов (рис. 8.3.8).
2. Значения продолжительности работ D14:D18 (рис. 8.3.8) скопировать в таблицу (рис. 8.4.2) в ячейки G6:G10 и округлить до целых чисел.
3. Перейти от трудоемкости Qi к стоимости работы С, по зависимости
С, = K.Q.,
где К, — стоимость единицы трудоемкости (чел/день).
Пусть для всех работ К, одинаково и равно 10. Ввести соответствующие значения в ячейки С6:С10 столбца Стоимость.
4. Ввести графу Исполнитель и заполнить ее.
5. Перейти в режим представления дат:
> Выделить D6:E10 (рис. 8.4.2).
> Формат, Ячейки, Дата, Тип.
> ОК.
6. Ввести в D6 начальную дату; вводим = 01.09.96.
На экране: рис. 8.4.2.
На основе таблицы, приведенной на этом рисунке, помимо построения линейных графиков, рассмотренных выше, можно решать различные задачи анализа, необходимые для принятия решения. Уделим внимание лишь некоторым из них, рассматривая данные таблицы рис. 8.4.2 как базу данных. Необходимые сведения о работе с базами данных были описаны в главе 2.
Глава 8 Оптимальное распределение ресурсов
313
Здесь же решим следующие типовые задачи:
□ составление заданий исполнителям на назначаемый период;
□ определение "невыгодных" работ;
а вычисление обобщенных показателей.
Составление заданий исполнителям на определенный период
Этот документ является основой для выполнения работ. Рассмотрим, как получить такой документ на примере задания исполнителю Орлову на первую неделю сентября 1996 г.
Алгоритм 8.4.2. Составление задания исполнителю на определенный период
1. Вызвать таблицу (рис. 8.4.2).
2. Сформулировать критерий в ячейках D15:F16.
3. Поместить курсор в пределы таблицы.
4. Данные, Фильтр, Расширенный фильтр...
На экране: диалоговое окно Расширенный фильтр.
Б. Ввести данные для поиска:
> Скопировать результат в другое место.
> Диапазон критериев D15:F16.
> Поместить результат в диапазон B18:J22.
6. ОК.
На экране: искомое задание исполнителю (рис. 8.4.3).
Ггж 8 С D h' В 6 **
1 нач оконч Исполнитель >=01 09 9 <=07 09 9 Орлов
в» Работы Стоимость нач оконч ожид длит резерв критич путь| Исполнитель
Е Работа 1 100 01 09 96 03 09 96 0 2 0 |Критич путь| Орлов
Рис. 8.4.3
314
Часть III Типовые оптимальные решения
Определение "невыгодных" работ
Очевидно, что "невыгодные" работы требуют большего внимания со стороны руководства. "Невыгодность" работ будем оценивать с помощью критерия, который часто называют выработкой. Выработка определяет стоимость работ в единицу времени
V = C/t,
где С — стоимость работы, t — длительность работы.
Принимаем, что работы являются невыгодными при
V < 70.
Поиск таких работ производится с помощью вычисляемого критерия (вычисляемый критерий описан в главе 2).
Алгоритм 8.4.3. Определение “невыгодных” работ
1. Скопировать таблицу (рис. 8.4 2) на новый лист.
2. В ячейку D15 ввести =C6/G6<=70.
3. Определить координаты критерия D14D15.
4. Поместить курсор в пределы таблицы в диапазоне B5 J1O.
5. Данные, Фильтр, Расширенный фильтр...
На экране: диалоговое окно Расширенный фильтр.
6. Ввести данные для поиска:
> Скопировать результаты в другое место.
> Диапазон критериев D14.D15.
> Поместить результат в диапазон В17J23.
7. ОК.
На экране, в ячейках B17:J20 искомый список "невыгодных" работ (рис. 8.4.4).
Глава 8 Оптимальное распределение ресурсов
315
Базовая таблица (рис8.*.2)
Рабом Стоимость нам ОКОНЧ ОЖИД ДЛИТ резерв критич путь Исполните
Работа 1 100 0109 96 0309 96 0 2 0 Критич путь Орлов
Работа 2 400 03 09 96 080996 2 5 0 Критич путь Сидоров
Работа 3 300 030996 080996 2 5 0 Критич путь Кротов
Работа 4 450 03 0996 06 09 96 2 4 1 Есть резерв Фролов
Работа 5 180 08 09 96 17 09 96 7 9 0 Критич путь Орлов
Критерий ИСТИНА
Работы Стоимость нач оконч ожид ДЛИТ резерв критич путь Исполнитель
Работа 1 100 0109 96 03 09 96 0 2 0 Критич путь Орлов
Работа 3 300 03 09 96 08 09 96 2 5 0 Критич путь Кротов
Работа 5 180 08 09 96 1709 96 7 9 0 Критич путь Орлов
Рис. 8.4.4
Вычисление обобщенных показателей
Как отмечалось в 2.3, при работе с базой данных кроме получения списка, включающего записи, удовлетворяющие введенному критерию, можно находить целый ряд обобщенных показателей. Такие обобщенные показатели вычисляются с помощью функций базы данных, рассмотренных также в разделе 2.3.
Рассмотрим два примера вычисления таких показателей:
□ Определение суммарной стоимости тех работ, стоимость которых находится в пределах от 200 до 400
□ Определение средней продолжительности работ, выполняемых Орловым.
Алгоритм 8.4.4. Вычисление обобщенных показателей
1. Скопировать таблицу (рис. 8.4.2) на новый лист.
it. Чтобы определить суммарную стоимость тех работ, стоимость которых находится в пределах от 200 до 400 (пример 1), нужно сформулировать критерий, как это показано на рис. 8.4 5 в ячейках D15:E16.
3. Курсор в С12.
И. Мастер функций, Работа с базой данных, БДСУММ.
318
Часть III. Типовые оптимальные решения
ft,, fl
Объект Величина РМ1 РМ2 РМЗ,
прод' нач ' оконч прод нач оконч прод нач оконч
7 Объект А Агплан А-факт 30 01.09.96 11.10.96 25 '15.09 96 20.10.96 20 15.10.96 12.11.96 8 20.10.96 30.10.96 15 15.11.96 06.12.96 13 22 11 96 '.10.12.96
Объект Б Б-план Б-факт 10 05.09.96 19.09.96 11 20.09.96 05.10.96 25 22.09.96 25.10.96 7 10.10.96 20.10.96 20 .01.11.96 29.11.96 19 25.10.96 20.11.96
Начало отсчета
| 01.09 |
N '? J
ж РМ1 длител. РМ2 длител РМЗ длител.
ш ожидРМ1 планРМ1'фактРМ1 ожидРМ2 планРМ2'фактРМ2 ожидРМЗ планРМЗфактРМЗ
0 40 4 28 3 21
14' 35 0 10 23 18
ж 4 14 3 33 7 28
19 15 5 10 5 26
Рис. 8.4.7
При определении этих величин сделаем еще один шаг, приближающий нас к реальной жизни. Напомним, что при оптимальном распределении ресурсов мы исходили из заданной трудоемкости и определяли потребное время выполнения работ в днях. Поскольку реальные проекты для своей реализации требуют значительного времени, то неучет выходных дней приведет к составлению нереальных планов, поэтому в дальнейшем при определении временных характеристик будем учитывать наличие выходных дней. Временные характеристики будем определять по двум зависимостям: для плановых дат Ток = Тн + t; для фактических дат t = Ток - Тн. Эти зависимости определяются тем, что при вычислении плановых и фактических значений используются различные исходные данные.
После этих пояснений продолжим работу по алгоритму.
2. Ввести формат дат:
> Выделить D6:E9, G6:H9, J6:K9.
> Формат, Ячейки, Число, Дата.
> Назначить формат представления дат.
3. Ввести плановые продолжительности работ в ячейки С6, С8, F6, F8, 16, 18.
Глава 8. Оптимальное распределение ресурсов 3]9
4. Ввести зависимости для плановых дат для РМ1:
> Курсор в Е6.
> Мастер функций, Дата и время, РАБДЕНЬ.
На экране: диалоговое окно РАБДЕНЬ.
> Ввести:
нач. дата — D6
дни — С6
> Готово.
На экране: в Е6 дата окончания работы с учетом того, что работа выполняется только в рабочие дни.
5. Ввести зависимости для фактических дат для РМ1:
> Курсор в С7.
> Мастер функций, Дата и время, ЧИСТРАБДНИ.
На экране: диалоговое окно ЧИСТРАБДНИ.
6. Ввести:
начальная дата — D7
конечная дата — Е7
7. Готово.
На экране: в С7 фактическая продолжительность работы в рабочих днях.
В. Скопировать формулы, введенные для РМ1, в ячейки РМ2 и РМЗ.
В результате ввода плановых продолжительностей и фактических Дат начала и окончания работ будут получены значения в ячейках А4:К9 таблицы, приведенной на рис. 8.4.7.
После формирования таблицы можно приступить к построению линейного графика. При этом следует иметь ввиду, что в Линейном графике практический интерес представляют даты Начала, окончания и продолжительности работ, определенные Не в рабочих днях, а в календарных.
Построение линейного графика проекта с учетом этого требования производится по следующему алгоритму.
320
Часть III Типовые оптимальные решения
Алгоритм 8.4.6. Построение линейного графика проекта
1. Ввести длительности работ для объекта А на рабочем месте РМ1 в блок L5:N9, как это показано на рис.8.4.6:
L6 = D6 - $D$6
Мб = Е6 - D6
N7 = Е7 - D7
2. Ввести данные для РМ2, при этом для РМ2 ожидания вводятся следующим образом:
Об = G6 - Е6
07 = С7 - Е7
и т. д.
3. Аналогично ввести данные для РМЗ.
На этом формирование данных для построения линейного графика заканчивается, и можно приступить к построению графика.
4. Выделить В5:В9, L5:T9 (рис. 8.4.7).
5. Мастер диаграмм.
> шаг 2 — Линейчатая.
> шаг 3 — Вид 3.
> шаг 4 — Ряды данных — в столбцах,
Считать метками по оси X — 1 столб.,
Считать метками легенды —1 стр..
> шаг 5 — ввести название диаграммы, а для оси Y — дни от начала.
На экране: встроенный линейный график.
6. Произвести форматирование диаграммы, в ходе которого выполнить следующее:
> Убрать фон.
> Ожидания обозначить белым цветом.
> Плановые величины обозначить узором с вертикальными линиями.
> Фактические величины обозначить узором с горизонтальными линиями
На экране: отформатированная диаграмма (рис. 8.4.8).
Глава 8 Оптимальное распределение ресурсов
Рис. 8.4.8
Для удобства пользования на рис. 8.4.8 введена таблица перевода дней от начала работ в реальные даты. На основе таблицы (рис. 8.4.7), по данным которой был построен линейный график проекта, можно решать различные задачи, используя базу данных, которые были подробно рассмотрены в разделах 2.3 и 8.4.2.
Кроме того, на основе таблиц (рис. 8.4.6, рис. 8 4.7) можно определять загрузку рабочих мест работами, выполняемыми на различных объектах. Необходимые для этого таблицы приведены на рис. 8.4.9 (формулы), рис. 8.4.10 (данные). По данным таблицы, представленной на рис. 8.4.10, нетрудно построить линейный график загрузки рабочих мест (рис. 8.4.11)
о . .Ж F 6 н • к
1» Величина Объект А Объект Б
и ожид А план А факт А ожид Б план Б факт Б
к РМ1 план РМ1 факт РМ1 46 47 =М6 =N7 48 49 =116+М8 =N9
W
РМ2 планРМ2 фактРМ2 =06 = 07 =Р6 =Q7 =08 =09 =Р8 =Q9
»
а» РМЗ планРМЗ фактРМЗ =R6 = R7 = 56 =T7 =R8 =R9 = S8 =Т9
а
Рис. 8.4.9
11 Зак 115
322
Часть III Типовые оптимальные решения
! В ! . ' В в »"Н Ч К
та
я Величина Объект А Объект Б |
W ожид А план А факт А ожид Б план Б факт Б|
« W РМ1 план РМ1 факт РМ1 0 14 40 35 4 19 18 15
S S РМ2 планРМ2 фактРМ2 4 0 28 10 3 5 33 10
8 Я] РМЗ планРМЗ фактРМЗ 3 23 21 18 7 5 28 2б|
Рис. 8.4.10
ClDlElFlSlHJ 1 I J I К I L I М
33 24 г» 28 27
а » я зг та 34 35 эс жг 3» 33 48
«лздРМЗ *«л₽М2 плэдРМ2
4»КТ РМ1 план РМ1
Загрдзка рабочих мест
О 10 20 30 AdWoT 60 70 30 30
41______________—
«2 дата 01 09 11 09 21 09 01 10 11 10 21 10 31 10 10 11 20 11 30 11 10 12
43 дни от начала 0 10 20 30 40 50 60 70 60 90 100
Рис. 8.4.11
Для построения такого линейного графика необходимо:
1. Выделить Е15:К21 (рис. 8.4.10).
2. Выполнить приведенный выше алг. 8.4.6.
На линейном графике показана разнообразная информация, необходимая для принятия решения.
Глава в Оптимальное распределение ресурсов 323
8.5. Список алгоритмов
1. Алгоритм 8.2.1. Составление таблицы для эвристического распределения финансирования....268
2. Алгоритм 8.2.2. Графическое представление результатов.271
3. Алгоритм 8.2.3. Эвристическое распределение финансирования в иерархической структуре..........272
4 Алгоритм 8.2.4. Ввод исходных данных для оптимального распределения финансирования при заданных величинах для каждого объекта........279
5. Алгоритм 8.2.5. Решение задачи оптимального распределения финансирования для алг. 8.2.4.......281
6. /Алгоритм 8.2.6. Решение задачи оптимального распределения финансирования при заданном его суммарном значении............................284
7. Алгоритм 8.2.7. Преодоление несовместности при недостаточном финансировании..................286
8. Алгоритм 8.2.8. Работа со Сводной таблицей.....289
9. Алгоритм 8.2.9. Ввод данных в иерархическую структуру..........................................295
10. Алгоритм 8. 2.10. Работа со Сводной таблицей в иерархической структуре.........................298
11. Алгоритм 8.3.1. Формирование таблицы временных характеристик.....................................299
12. Алгоритм 8.3.2. Построение линейного графика..301
13. Алгоритм 8.3.3. Перевод таблицы временных характеристик в режим представления дат...........302
14. Алгоритм 8.3.4. Решение задачи оптимального распределения ресурсов.............................304
15. Алгоритм 8.3.5. Построение оптимального линейного графика..................................306
16. Алгоритм 8.3.6. Оптимальное распределение финансирования во времени..........................307
17. Алгоритм 8.3.7. Параметрирование по Кзад и графическое представление результатов............308
324
Часть III Типовые оптимальные решения
18. Алгоритм 8.3.8. Определение неравномерности распределения финансирования.........................309
19. Алгоритм 8.3.8. Минимизация неравномерности финансирования.......................................310
20. Алгоритм 8.4.1. Формирование таблицы для проведения анализа..................................312
21. Алгоритм 8.4.2. Составление задания исполнителю на определенный период..............................313
22. Алгоритм 8.4.3. Определение "невыгодных" работ....314
23. Алгоритм 8.4.4. Вычисление обобщенных показателей.315
24. Алгоритм 8.4.5. Формирование таблицы временных характеристик проекта................................317
25. Алгоритм 8.4.6. Построение линейного графика проекта..............................................320
325
Задачи оптимального проектирования
9.1. Постановка задачи оптимального проектирования
9.1.1. Основные понятия и определения
Каждый объект проектирования (ОП) обладает определенными свойствами. Эти свойства могут быть как количественными, так и качественными. Примерами количественных свойств могут быть масса, производительность, стоимость и т. д. Примерами качественных свойств — надежность, удобство эксплуатации, и, наконец, само понятие "качество".
Как правило, качественные свойства ОП непосредственно оценить числом не удается, поэтому, если надо учитывать качественные свойства, их следует выразить количественными величинами, которые можно измерить. Так, качественное понятие "надежность" можно измерить вероятностью безотказной работы, временем наработки на отказ и т. д.
В дальнейшем будем учитывать только те свойства ОП, которые могут быть измерены. Такие количественные характеристики будем называть параметрами. С точки зрения содержания параметры могут быть техническими и экономическими. Примеры технических параметров — производительность, мощность; примеры экономических параметров — стоимость изделия, трудоемкость изготовления.
Параметры делятся на заданные и искомые. Правила перехода от заданных параметров к искомым называются расчетом. Если в расчет входят только технические параметры, его называют инженерным расчетом. В том случае, когда в расчет наряду с техническими параметрами входят и экономические, расчет является технико-экономическим.
По методу проведения расчеты могут быть проверочными и проектировочными. Для иллюстрации методов расчета вернемся к
326
Часть III. Типовые оптимальные решения
задаче о баке, которую мы уже рассматривали в главе 1. Объем бака
V = abh,
где а, b — стороны основания бака, h — высота бака.
При проверочном расчете задаются некоторыми значениями всех параметров a, b, h и проверяют, равняется ли их произведение заданному значению объема V.
При проектировочном расчете устанавливают зависимость искомых параметров от заданных, которая для бака имеет вид:
При заданном значении V, выбирая различные а и Ь, определяют значение h. Расчет, в котором принимается несколько вариантов значений а и Ь, называется многовариантным.
Рассмотрим, что дает многовариантный расчет.
На рис. 9.1.1 приведено три варианта параметров бака объемом V = 2000. Баки, построенные по результатам этого расчета, показаны на рис. 9.1.2.
Вариант 1
Рис. 9.1.1
Вариант 2
Рис. 9.1.2
Полезность многовариантного проектирования очевидна. Действительно, трудно себе представить, что первый же принятый вариант окажется наилучшим. Однако при проведении многовариантного расчета всегда возникает достаточно сложный вопрос: какой вариант выбрать?
В рассматриваемом случае сравнение различных вариантов будем производить по двум величинам:
S — полной поверхности бака, которая определяет количество необходимого материала;
Глава 9. Задачи оптимального проектирования
327
L — длине сварного шва, показанного на рис. 9.1.3 штриховой линией, которая определяет потребную рабочую силу.
Полная поверхность и длина сварного шва определяются так:
S =2[ab+ (a + b)h],
L = 2(a + 2b) + h.
Значения этих величин для трех рассмотренных вариантов представлены на рис. 9.1.4.
Вариант S L
1 1300 80
2 1000 110
3 1213 166
Рис. 9.1.4
Вариант может быть лучшим только в одном единственном смысле, определяемом назначенным критерием. Сравнивая эти результаты, можно сделать следующие выводы:
1. Наилучшим вариантом в смысле минимального расхода материала является вариант 2, для него S = 1000.
2. Наилучшим вариантом в смысле минимальной длины сварного шва является вариант 1, для него L = 80.
И еще одно важное замечание. Говоря о наилучшем варианте, мы имели в виду наилучший из тех вариантов, для которых был выполнен расчет, т. е. наилучший из рассмотренных вариантов. Но очевидно, что наилучший из рассмотренных совершенно не обязательно будет наилучшим из всех возможных. Даже более того. Трудно себе представить, что в число рассматриваемых вариантов, полученных традиционными методами вариантного проектирования, войдет вариант, наилучший из всех возможных. Такой вариант, наилучший в принятом смысле из всех возможных, может быть получен только в результате оптимального проектирования.
328
Часть III Типовые оптимальные решения
9.1.2. Пример задачи оптимального проектирования
Составим следующую математическую модель:
ЦФ:
ОГР:
ГРУ:
Fj = 2[ab + (a + b)h]-> min abh = 2000
a, b, h > 0
Эта запись означает: минимизировать величину полной поверхности параллелепипеда Fi при условии, что его объем V = abh = 2000, причем все его стороны — только положительные величины.
Эта модель имеет 3 составляющих:
□ целевую функцию (ЦФ);
□ ограничения (ОГР);
□ граничные условия (ГРУ).
Граничные условия показывают предельно допустимые значения искомых переменных a, b, h. Так, в данной задаче все искомые переменные a, b, h должны быть положительными.
Ограничение показывает зависимость между значениями искомых переменных. В данном случае ограничением является зависимость объема бака от размеров его сторон. Очевидно, что есть бесчисленное множество положительных значений трех величин a, b, h, произведение которых равно 2000. Поэтому вводится в модель еще одна составляющая — критерий или целевая функция, которая показывает, в каком смысле решение должно быть наилучшим.
В рассматриваемой задаче проектируемый бак должен быть наилучшим в смысле наименьшего количества материала, необходимого для его изготовления. Заметим, что наша задача может быть поставлена и в другом варианте, в котором в качестве целевой функции принимается длина сварного шва. В этом случае модель будет иметь вид:
F2 - L —> min
V = 2000
a, b, h > 0
Глава 9 Задачи оптимального проектирования
329
После подстановки в нее значений V и L получим систему
F2 = 2 (а + 2b)+ h -» min abh =2000 a, b, h > 0
Результаты решения задачи в этих двух вариантах приведены на рис. 9.1.5.
Целевая функция а b h S L
S —> min 12,6 12,6 12,6 953 88
L -» min 12,6 6,3 25,2 1111 76
Рис. 9.1.5
Из этой таблицы видно, что при решении задачи по разным целевым функциям получаем совершенно разные результаты решения. В первом случае для минимизации потребного металла бак надо изготавливать в виде куба, так как в решении а = b = h = 12,6. При этом потребное количество материала S = 953 единицы. Во втором случае для минимизации длины сварного шва бак должен иметь стороны, относящиеся как 1:2:4. При этом длина сварного шва L - 76. Эти оба решения, каждый в своем смысле, и будут оптимальными.
Сравнение найденных оптимальных решений с наилучшими решениями вариантного проектирования приведено на рис. 9.1.6.
Расчет S L В нижней строке этой табли-цы находится значение F -F AF = _5?p__L8!1Li00. F * опт
Вариантный 1000 80
Оптимальный 953 76
AF 4,9 5,8
Рис. 9.1.6
Эта величина показывает относительное улучшение критерия при оптимальном проектировании по сравнению с лучшим
330 Часть III Типовые оптимальные решения
решением вариантного проектирования. Не вызывает сомнения, что эта величина достаточно условна. Действительно, ведь значение величины FOnT является обоснованным, a FBaP — в значительной мере интуитивным.
Что же дает оптимальное проектирование?
В общем случае дать достоверный ответ на этот вопрос сложно Многое зависит от содержания задачи, числа переменных и ограничений, опыта людей, выполняющих многовариантное проектирование. Однако даже по самым скептическим оценкам, при оптимальном проектировании находится такое решение, которое улучшает значение целевой функции не менее, чем на 5%.
В чем же идея оптимального проектирования? Каким образом применение формул приводит к экономии металла? Или, иными словами, чем оптимальное проектирование отличается от многовариантного?
Такое отличие заключается в следующем:
1. При многовариантном проектировании задают конкретные значения некоторых искомых величин и рассчитывают остальные. В этом случае значение целевой функции является следствием заданных значений величин.
2, При оптимальном проектировании задают не конкретные значения некоторых величин, а граничные условия, т. е предельно допустимые значения всех искомых величин и находят такие значения всех искомых величин, которые, во-первых, удовлетворяют всем ограничениям и граничным условиям, а во-вторых, придают целевой функции оптимальное, т. е. максимальное или минимальное значение.
Глава 9 Задачи оптимального проектирования
331
9.1.3. Классификация задач оптимального проектирования
Классификация задач оптимального проектирования приведена на рис. 9.1.7.
Рис. 9.1.7
При оптимальном проектировании возможны две постановки задачи:
Первая постановка
F, = С(х)—> min
сй=г,_(т(5)) _ (9И)
minx < х < maxx
Т(х)>Тзад
Вторая постановка
F2 = Т(х) —> max
т(5)_= f,(c(x)) , 2)
minx < х < maxx
С(х)<Сзад
где х — параметры объекта проектирования,
С(х) — экономические характеристики,
Т(х) — технические характеристики
Часть III Типовые оптимальные решения
332
В первой постановке необходимо найти такие значения искомых параметров, которые обеспечивали бы получение технических характеристик не хуже заданных при минимизации стоимости.
Во второй постановке необходимо найти такие значения искомых параметров, которые обеспечивали бы при стоимости, не превышающей заданную, максимизацию технических характеристик.
Если мы действительно хотим получить оптимальное решение, то необходимо сформулировать решаемую задачу только в одной из двух постановок.
Остальные элементы классификации не требуют дополнительных пояснений.
При бесконечном разнообразии задач проектирования последовательность работ, в основном, одинаковая, такая как в следующем алгоритме.
Алгоритм 9.1.1. Последовательность работ при оптимальном проектировании
1. Определить задачу оптимального проектирования по классификации, приведенной на рис. 3.1.7.
2. Выяснить назначение объекта проектирования, его структуру.
3. Принять Т(х) — технические и С(х) — экономические параметры, учитываемые при оптимальном проектировании.
4. Определить зависимости параметров объекта проектирования от параметров элементов:
Т(х) = Гз(Т(хЭ1)),
C(iO = f4(C(x,n)).
5. Определить зависимости для каждого элемента
С(хэл) = f5(T(xM)).
6. Сформулировать задачу оптимального проектирования.
7. Идентифицировать сформулированную задачу с точки зрения класса задач оптимизации (линейных, нелинейных, целочисленных, стохастических).
Глава 9. Задачи оптимального проектирования
333
8. Ввести условия задачи в Excel.
9. Решить задачу.
10. Выполнить анализ рассматриваемой задачи.
Таковы основные этапы работы при оптимальном проектировании. Детализация отдельных вопросов, определяемых конкретной задачей, приводится при рассмотрении различных задач.
9.2. Определение необходимых зависимостей
9.2.1. Основные понятия
При оптимальном проектировании важными элементами математической модели являются зависимости между параметрами объекта проектирования, как в форме ограничений, так и целевой функцией. Такие зависимости могут быть теоретическими и статистическими. Примером теоретических зависимостей может служить объем бака V = abh, который был целевой функцией в нашей первой модели, рассмотренной в главе 1. Но, к сожалению, такие теоретические зависимости между параметрами бывают известны далеко не всегда.
Если теоретические зависимости отсутствуют, то необходимые соотношения можно определять на основании имеющихся статистических данных. Для определения статистических зависимостей необходимо выполнить 2 шага:
□ На основании физического смысла статистических данных принять вид аналитических зависимостей, например, полином 2-й степени, экспонента, линейная зависимость и т. д.
□ С помощью метода наименьших квадратов по имеющимся статистическим данным найти значения величин, определяющих конкретный вид принятых зависимостей.
Полученные аналитические зависимости называются уравнениями регрессии и в общем случае имеют вид у = f(xi, Х2,...хп).
Классификация уравнений регрессии приведена на рис. 9.2.1.
334
Часть III. Типовые оптимальные решения
Рис. 9.2.1
Регрессия называется парной, если она описывает зависимость между функцией и одной переменной и имеет вид
У = Цх) (9.2.1)
Регрессия называется множественной, если она описывает зависимость функции от нескольких переменных и имеет вид
у = f(xi, Х2,...Хп). (9.2.2)
Если зависимости (9.2.1) и (9.2.2) являются линейными, то регрессия называется линейной, в противном случае регрессию называют нелинейной. Зависимости между параметрами объектов проектирования, как правило, являются нелинейными. Очень важной характеристикой регрессионных зависимостей является мера их достоверности, которая оценивается величиной R2, находящейся в пределах
0<R2< 1.
При R2 = 0 величины, для которых определяются уравнения регрессии, являются независимыми; при R2 = 1 имеет место функциональная (а не статистическая) зависимость. Принято считать допустимым R2 > 0,7.
Чем больше статистических данных, используемых при определении уравнения регрессии, тем точнее будет определена искомая зависимость. Но при этом следует иметь в виду, что количество статистических данных не может обеспечить получение достоверной зависимости, если в действительности такой
Глава 9. Задачи оптимального проектирования $
зависимости между исследуемыми величинами нет. Вместе тем, есть минимальное количество К необходимых исходных данных, определяемое методом наименьших квадратов, с помощью которого, как мы отмечали, находится уравнение регрессии. К определяется по формуле
К = М + 2, (9.2.3)
где М — количество неизвестных величин в искомом уравнении регрессии.
Например, для уравнения парной регрессии:
□ при линейной зависимости у = b + шх необходимо определить 2 величины: b и т;
□ при уравнении регрессии в виде полинома 2-й степени у = b + mix + тгх2
необходимо определить 3 величины: b, mi, m2.
Уравнение множественной регрессии при решении практических задач принимается, как правило, в виде полинома 2-й степени, для которого число определяемых величин находится по зависимости
м_оц&±о. (92.4)
где и — число искомых переменных в (9.2.2).
Объединяя (9.2.3) и (9.2.4), нетрудно выяснить минимально необходимое количество исходных данных для определения уравнения регрессии:
к= (nt2)(n_tl) + 2. (9.2.5)
2
Подчеркнем, что эта величина К является нижней границей количества исходных данных, необходимых для метода наименьших квадратов. А достоверность полученного результата следует оценивать с помощью уже упомянутой величины R2-
336
Часть III Типовые оптимальные решения
9.2.2. Определение уравнений линейной регрессии
Регрессия является линейной в том случае, когда уравнение (9.2.2) имеет вид:
п
y = b + ^m1x,. (9.2.6)
1=1
Для получения уравнения регрессии необходимо:
□ определить значения b, пь;
□ оценить достоверность полученного уравнения.
Ответы на эти вопросы можно получить с помощью функции Excel ЛИНЕЙН( ) Для определения уравнения регрессии в эту функцию необходимо ввести исходные данные в формате:
=ЛИНЕЙН(интервал_значений_у; блок_значений_х,; константа; статистика).
Ввод константы и статистики обеспечивает представление результатов вычислений в различных вариантах (рис. 9.2.2).
ИСТИНА ЛОЖЬ
Константа Ь*0 ь=о
Статистика Оценка достоверности Оценки нет
Рис. 9.2.2
Если константу не назначать, то результат будет представлен в такой же форме, как и при вводе ИСТИНА, т. е. b * 0. Если не назначать статистику, то результат будет таким же, как при вводе ЛОЖЬ, т. е. данные для оценки достоверности представлены не будут.
Уравнение линейной регрессии будем определять для исходных данных, приведенных на рис 9.2 3. В этой таблице указаны два технических параметра:
xi — производительность (количество операций в час);
Х2 — характеристика качества (время наработки на отказ в днях);
и один экономический;
у — цена аппаратуры (в тыс. руб ).
Глава 9 Задачи оптимального проектирования
337
1 Исходяие даише
-2 Модель Производит Качество Цена
3 *1 *2 9
4 А1 120 450 4500
, 5 Й2 200 360 8000
6 АЗ 300 145 3000
7 Б1 400 212 5500
* Б2 500 265 5400
3 БЗ 860 312 6500
Я> JL 12 13 Н В Ш 17 18
19 23
Предельнее «качения
Мин 120 145
Макс 860 960
Уравнение регрессии
57 39 1721
126 141 933
0 88 769 #НЩ
10 77 3 #ни
12735231 1773102 #ни
у = 1721 + 3.9’х,+5.7’х2 Оценка достоверности по алг.9.2.3
Оценка достоверности по апг.9.2.2 а 1-а
О 04 0.96
23
t=mte Ь 1-Ь
4 52 2 75 184
0 02 0 07 016
0.98 0.93 0 84
В
Рис. 9.2.3
Требуется определить уравнение регрессии, устанавливающее зависимость цены от технических параметров. Эта работа выполняется следующим образом.
Алгоритм 9.2.1. Определение уравнения линейной регрессии
1. Ввести исходные данные, как показано на рис. 9 2.3:
> блок значений х в В4.С9,
> интервал значений у в D4:D9.
2. Определить минимальные и максимальные значения пере менных:
> Курсор в В11.
> Мастер функций, Статистические, МИН.
> Ввести интервал В4.В9
338
Часть III Типовые оптимальные решения
> Готово.
> Курсор в В12.
> Аналогично ввести функцию МАКС().
> Скопировать В11:В12 в С11:С12.
3. Курсор в ячейку в В14.
4. Выделить блок B141D18, в котором
> строк — всегда 5,
> столбцов — п+1=2+1=3.
5. В ячейку В14 ввести =J1HHEI/IH(D4:D9; В4:С9; истина; истина).
6. <Shift>+<Ctrl>+<Enter>.
На экране: результат вычислений.
7. Назначить необходимое число десятичных знаков (рис. 9.2.3).
8. Убрать выделение.
На экране: рис. 9.2.3, на котором в ячейках B14:D18 представлен результат вычисления уравнения линейной регрессии.
Смысл полученных величин показан на рис. 9.2.4, где приняты следующие обозначения:
b, пн,..., mn-i, гпп — неизвестные величины в уравнении линейной регрессии (9.2.6).
Таким образом, искомое уравнение регрессии имеет вид у = 1721 + 3,9xi + 5,7x2.
Напомним, что полученное уравнение описывает зависимость экономического параметра — цены, от технических — производительности и характеристики качества. При этом нельзя забывать, что это уравнение регрессии справедливо только в пределах определенных минимальных и максимальных значений переменных
120 < xi < 860; 145<Х2<960,
на базе которых оно и было получено. Очевидно, что эти границы не должны быть уже, чем значения граничных условий
aj < х3 < bj
в задаче оптимизации, для решения которой и определяется уравнение регрессии.
Глава 9. Задачи оптимального проектирования
339
m п тп., т i b
а [ш п] о [т а [т J о[Ь]
R2 о [g]
Ррасч df
SSreg SSresid
Рис. 9.2.4
Далее в блоке BI41D18 (рис. 9.2.3) представлены величины, необходимые для оценки достоверности полученного уравнения регрессии:
а[ЬЯ, о[т,] — средние квадратические отклонения полученных значений,
R2 — величина, характеризующая достоверность, df — число степеней свободы, определяемое по формуле
df=k-(n+l), (9.2.7)
где к — число строк в таблице исходных данных (к = 6), п — число аргументов (п = 2).
S Тогда df = 6 - (2 + 1) = 3.
I Далее в таблице находятся:
SSreg — регрессионная сумма квадратов, SSresid — остаточная сумма квадратов.
Эти две величины, необходимые для вычисления результатов, при оценке полученных данных не рассматриваются.
После определения уравнения регрессии целесообразно оценить достоверность полученной зависимости. Оценка достоверности зависимости у от xt производится по величине R2, которая для решаемой задачи находится в В16 и равна 0,88. Как отмечалось выше, при R2 = 1 имеется функциональная зависимость, при R2 = 0 зависимость отсутствует (несмотря на найденные значения b и т,). Полученное значение R2 = 0,88 достаточно высокое и подтверждает достоверность наличия зависимости между у и Xi. Но это еще не все.
Можно оценить достоверность самой величины R2. Это производится с помощью F распределения, которое определяет а — вероятность того, что зависимость у от \i отсутствует, еле-
340
Часть III Типовые оптимальные решения
довательно, (1-а) — это вероятность того, что такая зависимость существует. Определение искомой величины (1-а) производится следующим образом.
Алгоритм 9.2.2. Оценка достоверности уравнения регрессии
1. Курсор в ячейку F17 (рис. 9.2.3).
2. Мастер функций, Статистические, РРАСП.
На экране: диалоговое окно FPACn, в которое ввести следующие величины:
> х = Ррасч в ячейку В17
> степени свободы 1 = число аргументов (в примере п = 2)
> степени свободы 2 = df = С17
3. Готово.
На экране: F17 = 0,04.
4. Ввести в G17 = 1 - F17.
На экране- G17 = 0,96.
Все формулы, вводимые в таблицу (рис. 9.2.3), показаны на рис. 9.2.5.
Полученное значение показывает достоверность наличия зависимости у ОТ Xi.
Следующим вопросом, требующим оценки, является достоверность значения определяемых величин b и mi, которая оценивается вероятностью распределения Стьюдента.
Алгоритм 9.2.3. Оценка достоверности значений b и гл,
1. Вычислить величины
t. = mi/oi,
приведенные на рис. 9.2.3, рис. 9.2.5 в ячейках B21:D21.
2. Определить 0-вероятность того, что значения mi и О] не достоверны:
> Курсор в В22
> Мастер функций, Статистические, СТЬЮДРАСП.
Глава 9 Задачи оптимального проектирования
1 \ Г , В ./ . Исходше даише — 04/ с
2, Модель Производит Качество
8 «1 «2
4 Л1 120 450
5 аг 200 960
в аз 300 145
1 Б1 400 212
8 Б2 500 265
8 № БЗ 860 Пределыые значения 312
П Мин = МИН(В4ВЭ) = МИН(С4СЭ)
12 Я Макс = МЯКС(В4В11) Уравнение регрессии = МЙКС(С4С11)
И = ЛИНЕЙН(О4 09 В4 СЗ.ИСТИНА.ИСТИНА) = ЛИНЕЙН(О4 D3 В4 СЗ ИСТИНА ИСТИНА)
15 = ЛИНЕЙН(О4 D9.B4 СЗ.ИСТИНА.ИСТИНА) = ЛИНЕЙН(О4 D3 В4 СЗ ИСТИНА ИСТИНА)
Я = ЛИНЕЙН(О4 D3.B4 СЗ ИСТИНА.ИСТИНА) = ЛИНЕЙН(О4 D3 В4 СЗ ИСТИНА ИСТИНА)
1? ЛИНЕЙН(О4 D3.B4 СЗ.ИСТИНА.ИСТИНА) = ЛИНЕЙН(О4 D3 В4 СЗ ИСТИНА ИСТИНА)
Я 2# = ЛИНЕЙН(О4 03 В4 СЗ.ИСТИНА.ИСТИНА) = ЛИНЕЙН(О4 D3.B4 СЗ ИСТИНА.ИСТИНА) у =1721+ 3.9’х,+5.7’Х; Оценка достоверности по алг.Э.2 3
2t tsmfcr = В14®15 = С14(С15
22 b = СТЫОДРДСП(В21,$С17,2) = СТЫОДРАСП(С21,$С17,2)
28 1-Ь = 1В22 = 1-С22
Рис. 9.2.5
342
Часть III Типовые оптимальные решения
На экране: диалоговое окно СТЬЮДРАСП, в которое вводятся следующие величины:
> х = t, в ячейку В21,
> степени свободы = df в ячейку С17,
> хвосты — 2 (это признак используемого нами 2-степен-ного распределения Стьюдента).
3. Готово.
На экране: В22 = 0,02.
4. Определить (1-Р) — вероятность того, что значения mi достоверны:
> Курсор в В23.
> Ввести в В23 = 1 - В22.
На экране: В22 = 0,98.
5. Скопировать В22:В23 в ячейки C22:D23.
На экране: оценка достоверности определенных величин Ь, mi, m2 в уравнении регрессии. Такова вероятность того, что коэффициенты mi достоверны.
9.2.3. Определение нелинейной регрессии с помощью функции Excel
Для нахождения уравнения регрессии в Excel применяется функция ЛГРФПРИБЛ(), которая обеспечивает получение уравнения регрессии в виде
у = bm*1 xm^.-.m*" (9.2.8)
Число переменных п не ограничено, но для ознакомления с этой функцией и ее наглядным представлением в виде графиков будем рассматривать уравнение регрессии (9.2.8) для случая n = 1, т. е. парной регрессии
у = bmx
Функция ЛГРФПРИБЛ() имеет точно такой же формат ввода, как и функция ЛИНЕЙН( ), и вычисление уравнения нелинейной регрессии с помощью функции ЛГРФПРИБЛ() ведется аналогично работе с функцией ЛИНЕЙН() по следующему алгоритму.
Глава 9 Задачи оптимального проектирования_
Алгоритм 9.2.4. Определение уравнения нелинейной регрессии с помощью функции ЛГРФПРИБЛ()
1. Ввести исходные данные, как это показано на рис. 9.2.6.
Рис. 9.2.6
Для иллюстрации характера зависимости по исходным данным построен график у - f(x), из которого видно, что данная функция является возрастающей.
2. Определить минимальное и максимальное значение х, как это указано в алг. 9.2.3.
3. Курсор в ячейку В14.
4. Выделить блок В14:С18.
5. В ячейку В14 ввести =ЛГРФПРИБЛ (СЗ:С9; ВЗ:В9; истина, истина).
6. <Shift> + <Ctrl> + <Enter>
344
Часть III Типовые оптимальные решения
На экране: результат вычислений.
7. Назначить необходимое число десятичных знаков, как это сделано на рис. 9.2.6.
8. Убрать выделение.
На экране: рис. 9.2.6, на котором в ячейках В14:С18 представлен результат вычисления уравнения нелинейной регрессии. Значения полученных величин приведены на рис. 9.2.7. В данном случае значения в основном те же, что и при определении линейной регрессии, но вместо значений ст[Ь], о[Ш1] даны их логарифмы. Таким образом, искомое уравнение регрессии имеет вид
у = 10,6*1,5х (9.2.9)
Как и в случае линейной регрессии, эта зависимость справедлива для
1 < X < 6
Следует подчеркнуть, что для рассматриваемой возрастающей функции m = 1,5 > 1.
mn mn-i m i b
In a [m n] In ст [m n.j] In ст [m J In ст [b]
R2 In CT [g]
FpacM df •
SSreg SSresid
Рис. 9.2.7
9. Оценить по алг. 9.2.2 достоверность величины R2, находящейся в В16. Результат оценки приведен в ячейках G17:G18.
10. Оценить достоверность определенных коэффициентов b, т> по алг. 9.2.3. Для получения данной оценки необходимо:
> Перейти от m и b к их логарифмам ln(m) и 1п(Ь).
> Определить
t = abs(ln(m) / lno(m)),
t = abs(ln(b) / 1п(сть))
Глава 9. Задачи оптимального проектирования
345
> Далее по алг. 9.2.3.
Результат оценки находится в ячейках А25:С25. Эти оценки показывают высокую достоверность полученных результатов.
Рассмотрим теперь определение уравнения регрессии для убывающей функции. Результат вычислений по алг. 9.2.4 приведен на рис. 9.2.8.
я» I в I с I о | . е...........I Flat н
Исходные даише к у О 50
1 28
2 15
3 10
4 6
5 4
6 3
Предельные значения Мин 0
Макс 6
Уравнение регрессии 0 6 44
0 02 0 08
0.99 012 Оценка достоверности по алг.9.2.2
436 5 а 1-а
6 27 0 07 0 00 1.00
у = 44*0.6" ш<1
Оценка достоверности по алг.9.2.3
In -0 47 3 78
t=abs(lnmte) 20 87 46 26
b 000 000
25 1-b 1.00 1.00
Рис. 9.2.8
Таким образом, уравнение регрессии для убывающей функции при 0 J х J 6 имеет вид
у = 44*0,6х
(9 2 Ю)
и m = 0,6 < 1.
Оценки достоверности, равные 1, показывают высокую точ ность полученного уравнения регрессии.
346
Часть III Типовые оптимальные решения
Аналогично на рис. 9.2.9 представлено уравнение регрессии для функции, имеющей максимум. В данном случае:
R2 = В16 = 0,02, следовательно, полученное уравнение регрессии описывает статистические данные совершенно не удовлетворительно.
На основании приведенных трех примеров можно сделать вывод, что уравнения нелинейной регрессии, определенные с помощью функции ЛГРФПРИБЛ( ), дают приемлемые результаты только для возрастающих или убывающих функций. Если же статистические зависимости имеют максимум или минимум, то применение функции ЛГРФПРИБЛ( ) дает неудовлетворительные результаты. Этот вывод, сделанный на основе анализа функции одной переменной, справедлив для произвольного значения п.
Г/\ава 9. Задачи оптимального проектирования
347
9.2.4. Определение уравнения нелинейной регрессии в форме пользователя
Рассмотрим определение уравнения регрессии для исходных данных, приведенных на рис. 9.2.10 в ячейках B4:D14. Результат определения уравнения линейной регрессии приведен в ячейках B19:D23. Из полученных данных видно, что достоверность полученного уравнения регрессии равна R2 = В21 = 0,64 которая недостаточна. Результат определения уравнения нелинейной регрессии с помощью функции ЛГРФПРИБЛ( ) приведен в ячейках B26:D30. Полученное в данном случае значение R2 = А28 = 0,52 тоже нельзя признать удовлетворительным.
л B...I с F 1 в "йП II Л "1 К II! М 1 * 1 Н
2 Линейная регрессия Нелинейная регрессия
3 *1 *2 Y *2 хГ2 х2’2 >И>2 Y
4 1 2 ЮО 1 2 1 4 2 100
В 4 5 800 4 5 16 25 20 800
JL т 6 7 10 11 1000 1Ю0 6 7 Ю 11 36 49 100 121 60 77 1000 1100
• 8 12 1200 8 12 64 144 96 1200
EI 9 10 13 14 1Ю0 900 9 10 13 14 81 100 169 196 117 140 1100 900
и п 12 13 15 17 750 500 12 13 15 17 144 169 225 289 180 221 750 500
W н * 15 18 300 17 20 Ю0 Пределыме «качения 15 17 18 20 225 324 270 300 289 400 340 100 Пределыше «качения
JL. «а Мин Макс 1 2 Мин 17 20 Макс Линейная регрессия 1 17 2 20 Нелинейная регрессия Оценка достоеерн
W 288 -343 311 364 156 197 482 832 130 по алг 9.2.2
I» 81 92 256 208 98 112 463 506 330 а. 1-а
?» 0.64 28929 «НЮ 0.97 103 77 «ню «НЮ «НЮ «ню 0 00 1 00
7 2* 8 «ню 29 29 5 «ню «ню «ню «НЮ
1050337 580117 «ню 15766181 53836 45 «ню «ню «ню «ню
2«
Нелин регрес с ЛГРФПРИБЛЛ
Я 2 0 199 у=130+832«х.-482’х.*197«х.* 2+ 156’Х.“2-364«Х,’Х.
И 0 0 1
г» 0.52 0 72 «ню Оценка достоверности по алг.9.2 3
а 4 29 8 «ню 175 159 177 104 165 0 39
31 4 44 415 «ню 014 0.06 017 0.83 014 0 86 0 35 0.65 016 0 84 0 71 0.29
Рис. 9.2.10
В таких случаях уравнение регрессии можно находить в виде функции, вид которой назначает пользователь. Будем искать уравнение нелинейной регрессии в виде полинома 2-й степени:
у = b + mixi + П12Х2 + тчх|2 + гшх?2 + msXiX2. (9-2 1' >
348
Часть III Типовые оптимальные решения
В этом случае для нахождения уравнения регрессии необходимо определить величину b и 5 коэффициентов при остальных членах уравнения регрессии. Таким образом, число искомых величин М = 6, что следует также и из зависимости (9.2.4). Следовательно, для определения искомых величин необходимо иметь число строк с исходными данными не менее чем
К = М + 2 = 6 + 2 = 8.
В рассматриваемом примере число строк с исходными данными равно 11, следовательно, исходных данных достаточно для определения уравнения нелинейной регрессии в виде (9.2.11). Данную задачу будем решать по следующему алгоритму.
Алгоритм 9.2.5. Определение уравнения нелинейной регрессии в форме пользователя
1. Ввести обозначения переменных в ячейки F3.J3 и функции — в КЗ (рис. 9.2.10).
2. Ввести формулы для вычисления переменных в H4:J4, как функций F4 и G4.
3. Скопировать H4:J4 на блок H5J14. Введенные формулы показаны на рис. 9.2.11.
Е| F I 6 I н I » I 4 5 К
Ы Г Х1 *2 х1А2 x2A2 X1*X2 Y
4 1 2 =F4A2 =G4A2 =F4*G4 100
5 4 5 =F5A2 =G5A2 =F5‘G5 800
8 6 10 =F6A2 =G6A2 =F6*G6 1000
7 7 11 =F7A2 =G7A2 =F7‘G7 1100
8 8 12 =F8A2 =G8A2 =F8*G8 1200
8 9 13 =F9A2 =G9A2 =F9*G9 1100
18 10 14 =F10A2 =G10A2 =F10*G10 900
11 12 15 =F11A2 =G11A2 =F11*G11 750
12 13 17 =F12A2 =G12A2 =F12*G12 500
13 15 18 =F13A2 =G13A2 =F13*G13 300
14 17 20 =F14A2 =G14A2 =F14"G14 100
Рис. 9.2.11
Глава 9 Задачи оптимального проектирования
--------------------------------------------------- 349
4. Скопировать исходные данные:
> В4-.С14 в F4.G14;
> D4:D14 в К4.К14.
5. Определить предельные значения X] и xj.
6. Курсор в ячейку F19.
7. Выделить F19:K23.
8. <Shift>+<Ctrl>+<Enter>.
На экране, результат вычислений.
9. Назначить необходимое число десятичных знаков
10. Убрать выделение.
На экране: результат вычисления, приведенный на рис. 9.2 10.
На основании полученных данных уравнение регрессии имеет вид
у = 130 + 832xi — 482x2 + 197xi2 + 156хг2 — 364xiX2 При этом оно справедливо для значений xi, хг в пределах
1 < xi < 17; 2<хг<20.
После определения уравнения регрессии необходимо оценить его достоверность.
11. Оценить достоверность полученных результатов
Величина R2 = F21 = 0,97, т. е. значительно выше, чем для случая линейной регрессии, а также для нелинейной регрессии, полученной с помощью функции ЛГРФПРИБЛ( ). Оценка достоверности по алг. 9.2.2 приведена в ячейке N21 = 1,00. Оценка достоверности по алг. 9.2.3, приведенная в ячейках F3FK31, показывает также высокую достоверность полученных коэффициентов в уравнении регрессии.
Полагаем, что на этом примере можно увидеть, что нахождение уравнения линейной регрессии без проверки достоверности полученных коэффициентов в ответственных расчетах нежелательно. Вместе с тем, из рассмотренного примера следует, что в случае недостаточной достоверности линейной регрессии лучше определять уравнение нелинейной регрессии в такой форме, которая назначается пользователем.
350
Часть III Типовые оптимальные решения
у 9.2.5. Определение уравнений парной регрессии
Парная регрессия, как это было отмечено выше, показывает зависимость в виде
У = f(x) (9.2.1)
Поскольку парная регрессия является частным случаем множественной регрессии, то уравнения парной регрессии могут быть, естественно, определены и с помощью методов, рассмотренных выше. Но вместе с тем, Excel позволяет находить уравнение парной регрессии для построенного графика у = f(x). Это производится по следующему алгоритму.
Алгоритм 9.2.6. Определение парной регрессии
1. Ввести исходные данные, как это показано на рис. 9.2.12.
Рис. 9.2.12
Внимательный читатель мог заметить, что это те же данные, приведенные на рис. 9.2.9, для которых с помощью ЛГРФПРИБЛ( ) не удалось получить удовлетворительных результатов по достоверности.
2. Выделить В2:С9.
3. Мастер диаграмм:
> шаг 2 — График,
> шаг 3 — Вид 2,
Глава 9 Задачи оптимального проектирования
------------------------------------------.--------- 351
> шаг 4 — 1 столбец,
> шаг 5 — убрать легенду, ввести название
На экране: встроенный график.
4. Перейти к выделенному графику.
5. Убрать фон.
6. Курсор на график.
7. М1.
На экране, график выделен метками.
8. Вставка, Линия тренда...
На экране: диалоговое окно Линия тренда, ярлычок Тип (рис. 9.2.13).
Характеристики каждого типа регрессии приведены на рис. 9.2.14.
9. Исходя из вида статистических данных, выбрать:
> тип регрессии — Полиномиальная,
> степень — 2.
10. Курсор на ярлычок Параметры.
352
Часть И! Типовые оптимальные решения
Тип парной регрессии Уравнение Определяемые параметры
Линейная у=Ь+шх b, m
Полиномиальная У=Ь+С1Х+С2Х2+ +СпХп Ь, Cl, С2, .. , Сп
Логарифмическая y=b+clnx Ь, с
Экспоненциальная у=сеЬх Ь, с
Степенная у=схь Ь, с
Рис. 9.2.14
11. М1.
На экране: диалоговое окно Линия тренда, Параметры (рис. 9.2.15)
Рис. 9.2.15
12. Назначаем- Показывать уравнение на диаграмме, Поместить на диаграмму R2.
13. ОК.
На экране: на рис. 9.2 12 статистические данные, сглаженная кривая, уравнение парной регрессии, величина R2 = 0,9445
14. Уравнение регрессии для наглядности можно выделить жирным шрифтом и переместить в середину графика
Аналогично, вводя на рис. 9 2.12 другие типы парной регрессии, можно получать уравнения регрессии назначенного вида
Глава 9 Задачи оптимального проектирования
------------ 353
9.2.6. Графическое представление уравнений регрессии
Чтобы определить характер зависимости, описываемый уравне нием регрессии, это уравнение можно представить графически что очевидно возможно для числа переменных п < 2 При п = 1 уравнение регрессии имеет вид графика; при п = 2 — семейства графиков или поверхности. Графическое представление уравнений регрессии состоит из двух этапов-
□ расчет таблиц по уравнению регрессии;
□ графическое представление табличных данных
Расчет таблиц может проводиться для двух видов уравнения регрессии:
□ функция одной переменной (парная регрессия),
□ функция двух переменных.
Начнем со случая парной регрессии.
Алгоритм 9.2.7. Расчет таблиц для нескольких функций одной переменной
1. Назначить ячейку, которая будет использоваться как аргумент функции у = f(x) На рис. 9.2.16 — это ячейка ВЗ.
Рис. 9.2.16
2. В ячейки C3:D3 ввести вычисляемые формулы; число вводимых формул не ограничено
Для наглядности в ячейках C2:D2 показано какие формулы введены в C3:D3. Ввод формул в C2.D2 является иллюстративным и для проведения расчетов не нужен.
3. Начиная с ячейки ВЗ, ввести вниз значения аргумента, для которого следует вычислят^ функции. Это удобно делать с помощью команд Правка, (Запомнить^ Прогрессия... По столбца В примере вводим значения (аргумента в ячейки ВЗ В12
12 Зак 115 3 Ovco л 1< < < \
354
Часть III. Типовые оптимальные решения
4. Выделить область для расчета B3.D12.
5. Данные, Таблица подстановки...
6. Ввести: Представлять значения по строкам в ВЗ.
7. ОК.
На экране: вычисленная таблица.
Далее для наглядности по полученным табличным данным можно построить графики парной регрессии.
Алгоритм 9.2.8. Построение графиков функции одной переменной
1. Выделить B2:D12.
2. Мастер диаграмм:
> шаг 2 — График,
> шаг 3 — Вид 2,
> шаг 4 — в столбцах,
— 1 столбец, 1 строка — метки,
> шаг 5 — добавить легенду, ввести название диаграммы.
На экране: встроенная диаграмма.
3. Выполнить необходимое форматирование по алгоритмам, приведенным в главе 2.
На экране: отформатированная диаграмма (рис. 9.2.17).
Рис. 9.2.17
Глава 9. Задачи оптимального проектирования
---------------- 355
Рассмотрим теперь расчет таблиц и построение графи функции двух переменных. ов 4-151
Алгоритм 9.2.9. Расчет таблицы для функции двух переменных
1. Назначить две ячейки, которые будут использоваться как аргументы функции у = f(xi, хг). На рис. 9.2.18 это ячейки X] = ВЗ; Хг = В4.
В ! В' .-О'-; в . F 6 и : 1 ’ 4 К L м
3 В5=1600-C4WB3-20)n2+16 «(64-16)«2)
«Л -4096 10 12 14 16 18 20 22 24 26 28 30
6 8 176 320 432 512 560 576 560 512 432 320 176
7 10 624 768 880 960 1008 1024 1008 960 880 768 624
5 12 944 1088 1200 1280 1328 1344 1328 1280 1200 1088 944
S 14 1136 1280 1392 1472 1520 1536 1520 1472 1392 1280 1136
19 16 1200 1344 1456 1536 1584 1600 1584 1536 1456 1344 1200
11 18 1136 1280 1392 1472 1520 1536 1520 1472 1392 1280 1136
12 20 944 1088 1200 1280 1328 1344 1328 1280 1200 1088 944
13 22 624 768 880 960 1008 1024 1008 960 880 768 624
14 24 176 320 432 512 560 576 560 512 432 320 176
Рис. 9.2.18
2. В ячейку В5 ввести вычисляемую функцию у = f(xi, хг). При этом в В5 появляется значение этой функции при X] = ВЗ = 0; Х2 = В4 = 0. Если это по каким-либо соображениям не устраивает, то ввести любые другие значения xi, хг. Для наглядности вид функции у = f(xi, хг) показан над таблицей. Это сделано только для наглядности, для выполнения расчета этого не требуется.
3. Ввести задаваемые значения xi в ячейки строки 5; вводим в С5:М5 (как отмечалось, это удобно делать с помощью команд Правка, Заполнить, Прогрессия... По строкам.
4. Ввести задаваемые значения хг в ячейки столбца В; вводим в В6:В14.
5. Выделить В5:М24. (
6. Данные, Таблица подстановки...
На экране: диалоговое окно Таблица подстановки.
356
Часть III Типовые оптимальные решения
7. Ввести: Подставить значения по столбцам в ВЗ Подставлять значения по строкам в В4.
8. ОК.
На экране: вычисленные значения функции у = f(xt,x2).
Далее можно построить графическое представление этой функции.
Алгоритм 9.2.10. Графическое представление функции двух переменных
Графическое представление функции двух переменных, как отмечалось, может иметь вид как семейства кривых, так и поверхности.
Рассмотрим построение поверхности.
1. Выделить В5:М14 (рис. 9.2.8).
2. Мастер диаграмм:
> шаг 2 — Поверхность,
> шаг 3 — Вид 2,
> шаг 4 — Ряды данных — в строках,
1 строка, 1 столбец — метки, > шаг 5 — убрать легенду, ввести название. На экране: график функции у = f(xi, хг), который после форматирования имеет вид, показанный на рис. 9.2.19.
Рис. 9.2.19
Глава 9. Задачи оптимального проектирования
357
Очевидно, что такое наглядное представление уравнения регрессии помогает определить физический смысл рассматриваемой зависимости.
9.2.7. Методика получения исходных данных
Если исходных данных, необходимых для определения уравнения регрессии нет, то их можно получить в результате проведения эксперимента. При этом прежде, чем его проводить, необходимо составить план его проведения, включающий два вопроса:
□ какие значения следует назначать переменным в эксперименте;
□ в каком сочетании различным переменным должны назначаться принятые значения.
Определяя значения переменных, задаваемых при проведении эксперимента, удобно от их абсолютных значений х} перейти к относительным ур Этот переход производится следующим образом:
(9.2.12)
(9.2.13)
(9.2.14)
7=м J AXj
хср = Vtb J 2 лх-=iг J 2
где а3, bj — задаваемые граничные условия в задаче оптимизации:
Если в (9.2.12) подставить Xj = аъ то получим значение относительной переменной] на нижней границе
fa aJ+b/
7Hr=V______LJ^-i
11 bJ~aJ
2
Аналогично получим на верхней границе
Y?r=l.
358
Часть III Типовые оптимальные решения
Среднее значение
Yjcp = 0.
Обратный переход от относительных значений к абсолютным, как это следует из (9.2.12), производится по зависимости
Xj = Xjcp + Дх; х yj. (9.2.15)
С точки зрения числа различных значений, которые назначают переменным в эксперименте, эксперименты бывают двух видов:
□ двухуровневые;
о трехуровневые.
В двухуровневом эксперименте переменным придаются значения унг = - 1, ?вг = 1. В результате такого эксперимента может быть определено уравнение только линейной регрессии, которая, как правило, не отражает фактические зависимости и поэтому имеет низкое значение оценки достоверности R2. Для получения достоверных уравнений регрессии следует проводить трехуровневые эксперименты, в которых переменным назначаются три значения: унг = -1, уср = 0, увг = 1. Таков ответ на первый вопрос.
Теперь перейдем ко второму вопросу: в каком сочетании следует придавать установленные значения различным переменным. Начнем с двух переменных. Возможные сочетания значений переменных, для краткости будем их называть планом эксперимента, который для двухуровневого эксперимента приведен на рис. 9.2.20, план трехуровневого эксперимента — на рис. 9.2.21. , ,
N2 =23=8
N Yi Y2 Y2
1 1 1 1
1 1 1 -1
3 1 -1 1
4 1 -1 -1
5 -1 1 1
6 -1 1 -1
7 -1 -1 1
8 -1 -1 -1
Рис. 9.2.21
N22=22=4
N Yi Y2
1 1 1
2 1 -1
3 -1 1
4 -1 -1
Глава 9 Задачи оптимального проектирования ------------------------------------------------------359
Из этих планов видно, что число проводимых экспепи может быть определено по зависимости р ментов
Ng = Sn,
где S — число уровней, п — число переменных. Аналогичные планы эксперимента для трех переменных приведены для двухуровневого эксперимента на рис. 9.2.22, для трехуровневого — на рис. 9.2.23. N23 =23 = 8 №3=33=27
N Yi У2 Y2 N Yi Y2 Y2
1 1 1 1 1 1 1 1
1 1 1 -1 2 1 1 0
3 1 1 -1
3 1 -1 1
4 1 0 1
4 1 -1 -1 5 1 0 0
5 -1 1 1 6 1 0 -1
6 -1 1 -1 7 1 -1 1
8 1 -1 0
7 -1 -1 1
9 1 -1 -1
8 -1 -1 -1 10 0 1 1
11 0 1 0
гни.
26 -1 -1 0
27 -1 -1 -1
Рис. 9.2.23
Итак, с одной стороны мы знаем минимальное количество экспериментов, необходимое для определения коэффициентов в уравнении регрессии (9.2.5), с другой стороны — нам известно, как планировать двух- и трехуровневые эксперименты. Сравним эти величины.
В таблице на рис. 9.3.24 приведены следующие значения:
п — число переменных,
М — число коэффициентов, которые надо определить в уравнении нелинейной регрессии, в виде полинома 2-й степени.
М Jnt2Xn_+0
2
360
Часть III. Типовые оптимальные решения
К — минимальное количество экспериментов, необходимое для вычисления коэффициентов в уравнении регрессии
К = М + 2,
2П — количество экспериментов в двухуровневом плане,
Зп — количество экспериментов в трехуровневом плане.
п М 2" к 3" N недост. № ИЗЛИШ.
2 6 4 8 9 4 1
3 10 8 12 27 4 15
4 15 16 17 81 1 64
5 35 32 37 243 5 206
Рис. 9.2.24
Из рис. 9.2.24 видно, что минимально потребное число экспериментов К находится в пределах
2П < К < Зп, следовательно, для рассматриваемого вида уравнения регрессии двухуровневых экспериментов недостаточно, а трехуровневые в полном объеме являются излишними. Сравнение этих величин приведено в двух последних столбцах таблицы:
NhC40CT = К — 2П’
Мизл = 3П —К.
Таким образом, проведение трехуровневого эксперимента обеспечит получение исходных данных, достаточных для определения коэффициентов регрессии, но возникает вопрос, как осуществить план эксперимента без проведения излишних экспериментов. Такие планы называются композиционными. Известен целый ряд подходов к их составлению. Для решения нашей основной задачи — определения ограничений в задаче оптимизации — наиболее подходящим является следующий:
1. Принять за основу план двухуровневого эксперимента.
2. Определить недостающее число экспериментов.
ЭДнедост —• К 2П.
3. Вычисленное число недостающих экспериментов МнедОст провести при среднем значении у= 0. В качестве примера на
Глава 9. Задачи оптимального проектирования
361
рис. 9.2.25 приведен композиционный план такого экспе римента для п = 3.
№ 71 72 7з
1 1 1 1
2 1 1 -1
3 1 -1 1
4 1 -1 -1
5 -1 1 1
6 -1 1 -1
7 -1 -1 1
8 -1 -1 -1
9 0 0 0
10 0 0 0
11 0 0 0
12 0 0 0
Рис. 9.2.25
В этом плане первые 8 экспериментов представляют собой двухуровневый план, приведенный на рис. 9.2.22 а дополнительные 4 эксперимента проводятся при средних значениях у = о. В результате проведения эксперимента по такому плану будет получено количество исходных данных, необходимых для определения уравнения регрессии в виде полинома 2-й степени. Аналогично могут быть составлены композиционные планы для любого числа переменных п. И, в заключение, приведем последовательность работ для получения необходимого количества исходных данных.
Алгоритм 9.2.11. Последовательность работ, необходимых для получения исходных данных
1. Определить число переменных п в задаче оптимизации.
2. Принять вид уравнения регрессии и установить число искомых коэффициентов и необходимых исходных данных.
3. Составить план проведения эксперимента для определения значений переменных.
4. Перейти к абсолютным значениям переменных Xj по зависимостям
Xj = Xjcp + Axj,
где Xjcp, Axj определяются по (9.2.13) и (9.2.14).
Составить таблицу для проведения эксперимента в форме рис. 9.2.26.
Таблица (рис. 9.2.6) составлена для трех переменных xi, хг, хз и двух искомых функций, определяемых в результате эксперимента У1, У2.
362
Часть III Типовые оптимальные решения
N XI X2 X3 У1 У2
1 bi Ьз Ьз
2 bi Ь2 аз
3 bl аг Ьз
4 bl a2 аз
5 ai Ьг Ьз
6 ai b2 аз
7 ai аг Ьз
8 ai аг аз
9 cp Xl Cp X2 Ср ХЗ
10 Cp Xl cp X2 ср ХЗ
11 cp Xl cp X2 ср ХЗ
12 CP Xl cp X2 ср хз
Рис. 9.2.26
5. Провести эксперименты по принятому плану.
6. Для каждого сочетания значений х} записать результат эксперимента для значений yi, уг.
Полученная таблица представляет собой исходные данные, необходимые для определения уравнения регрессии. Очевидно, что приведенная методика дает возможность составить план эксперимента для любого количества переменных и определяемых функцией.
9.3. Решение задач оптимального проектирования
9.3.1. Оптимизация параметров изделия
Каждый объект проектирования характеризуется структурой и параметрами. Структура, которая определяет элементы объекта проектирования и связи между ними, должна обеспечить надежное функционирование и достижение поставленных целей. Надо сказать, что понятие объекта проектирования и элемента является в известной степени относительным. Например, с точки зрения организации дорожного движения автомобиль представляет собой элемент, в то время как для завода автомобиль — объект проектирования, а его составляющие — двигатель, ходовая часть и т. д. — это элементы. В дальнейшем под элементом будем понимать такую составляющую объекта проектирования, структуру которой не будем рассматривать. Такую элементарную составляющую будем называть звеном. Каждое звено характеризуется своими параметрами.
После введения этих понятий перейдем к рассмотрению задачи оптимизации параметров изделия. Эта работа производится по следующему алгоритму.
Глава 9. Задачи оптимального проектирования 363
Алгоритм 9.3.1. Последовательность работ при оптимизации параметров изделия
1. Установить назначение изделия и его параметры.
2. Определить структуру изделия и зависимость параметров изделия от параметров звеньев.
3. Сформулировать задачу оптимизации.
4. Определить необходимые данные.
5. Записать задачу оптимизации в форме, необходимой для решения.
6. Решить задачу оптимизации.
7. Выполнить анализ решения задачи.
Этот алгоритм проиллюстрируем на следующем примере.
1. Назначение изделия, его параметры и структура.
Будем рассматривать проектирование изделия, предназначенного для преобразования информации. Принимаем, что это изделие характеризуется двумя параметрами:
техническим: Р — вероятностью безотказной работы; экономическим: С — ценой изделия.
2. Структура изделия приведена на рис. 9.3.1, из которого видно, что изделие состоит из трех звеньев. Зависимости параметров изделия от параметров звеньев имеют вид:
Р = pi р2 рз, (9.3.1)
С = ci + С2 + сз (9.3.2)
Звено 1
Рь С1
Звено 2
Рг; С2
Звено 3
Рз; с3
Pc = Р; Рз Рз -------------►
Сс = С1+С2+С3
Рис. 9.3.1
364
Часть III Типовые оптимальные решения
3. Постановка задачи оптимизации.
Как мы знаем, возможны две постановки задач оптимального проектирования: (9.1.1) и (9.1.2). Наша задача в первой постановке имеет вид:
Fj = С -» min
C = f!(c,)
С, = f2 (Pl )
P = f3(P1)
Р — Рад
(9.3 3)
во второй постановке:
(9.3.4)
4. Определение необходимых исходных данных.
Как следует из (9.3.3), (9.3.4), для решения задачи оптимизации необходимо знать для каждого звена зависимости
р. = f4(ci). i = 1,3
(9.3.5)
Посмотрим, как можно определить искомые зависимости.
Для определения зависимостей (9.3.5) следует:
□ иметь статистические значения р„ с,;
□ принять вид зависимостей (9.3.5);
□ с помощью методов, рассмотренных в 9.2, определить искомые зависимости как уравнения регрессии.
Выполним эти работы.
1. Статистические исходные данные приведены на рис. 9.3.2. Для 1-го звена в ячейках А5:В11, для 2-го звена — в F5:G16, для 3-го звена — в K5:L14.
Глава 9 Задачи оптимального проектирования
365
г
/ a
4
Звено 1 Y
1-Р,
ln(1-Pj)
Исход*ме данные
Звено 2
Р2
1-р2
1п(1-Р2)
6 7 * » Ю It a w a « w
о
100
200
300
400
500
0
04
07
0 85
09
0 98
06
03
015
01
0 02
О -О 510826 -1203973 -189712 -2 302585 -3 912023
0
100
200
300
400
500
600
700
800
900
1000
О
0 34 0 54 0 63
0 71
0 77 0 85 0 91
0 96
0 99
0 99
0 66
0 46
0 375
0 295
0 232
0152
0 089
0 045
0 009
0 01
О
-О 415515
-О 776529
-О 980829
•122078
-1461018
-1883875
-2 419119
-3 101093
-4 710531
-4 60517
Звеио3
X
Со Ра 1-РЭ 1п(1-р3)
0 0 1 0
100 01 09 •0 105361
200 02 08 -0 223144
300 03 07 •0 356675
400 04 06 -0 510826
500 05 05 -0 693147
600 08 02 1609438
700 09 01 -2 302585
800 0 99 0 01 -4 60517
*
X
X
W
Вычисления с помощью фднкцин ЛИНЕЙН()
м 22 23 2*
2в
2»
23 »
-0 01
0 00
0.98
85 54
9 38
0 24
0 33
4 00
0 44
ln(1-Pi)=019-0 01’Ci
1-Pl=EXP(019-0 ОГС1)
p1=bEXF(o.ie>o.orc1)
I 0005 03<1
• • 0 27 0 48
3 00 2 08
ООО 0.92 1013+ 23 39
Уравнения
регрессии
ln(1-P2)=0 34-0 005’Сг
1P2=EXP(0 34-0 005’02)
P2= 1-EXP(0.34-0.005‘C2)
| -0 003
ООО 0.82 2719
3 78
1п(1-Р3)=0 32-0 ООЗ'Са
о зг|
0 24
0 37
6 00
0 83
1 Pq=EXP(O 32-0 003‘Сз)
Pa= 1-EXP(0.32 0.003-Ca)
Рис. 9.3.2
2. Принять вид аналитической зависимости р. = ГдГс,). Так как вероятность безотказной работы может находиться в пределах
0<р,< 1,
функцию f4 (с,) определим в виде
р, = 1 - exp(ci).
(9.3.6)
3. Определение уравнений регрессии.
Поскольку (9.3.6) представляет собой уравнение нелинейной регрессии, найдем коэффициенты этого уравнения по методике, изложенной в 9.2.4, — определение уравнения нелинейной регрессии в форме пользователя. Для этого выполним следующие преобразования.
Из (9.3.6) следует
1 - р> = ехр(с,),
1п( 1 - р,) = с,
(9.3.7)
366
Часть III Типовые оптимальные решения
Учитывая, что в обозначениях, принятых в разделе 9.2,4, функцией у, является
у,= 1п(1 - р.),
а аргументом х, = с,, с помощью функции ЛИНЕЙН( ) находим уравнения линейной регрессии по алгоритму, приведенному в разделе 9.2.4. После несложных преобразований (рис. 9.3.2) определяем искомые уравнения регрессии:
р1 = 1 - ехр(0,19 - 0,01с j)
р2 = 1 - ехр(0,34 - О,ОО5с2) >
Рз = 1 - ехр(0,32 - 0,003с3)
(9.3.8)
В целях наглядности представим зависимости (9.3.8) графически. Для этого по методике, описанной в разделе 9.2.6, получены табличные значения (рис. 9.3.3) уравнений регрессии (9.3.8) и их графики (рис. 9.3.4).
В С D Е
2 3 4 6 в 7 в 9 1« « 12 13 14 15 16 1Т 1в 1» 2» 21 22 23 24 С6=1-ЕХР(0.19-0.01 *С) 06=1-ЕХР(0.34-0.005*С) Е6=1-ЕХР(0.32-0.003*С) С звено 1 звено 2 звено 3 110 0.60 0.19 0.01 160 0 76 0 37 015 210 085 051 027 260 0 91 0 62 0 37 310 0 95 0 70 0 46 360 0 97 0 77 0 53 410 0 98 0 82 0 60 460 0 99 0 86 0 65 510 0 99 0 89 0 70 560 1 00 0 91 0 74 610 1 00 0 93 0 78 660 1 00 0 95 0 81 710 1 00 0 96 0 84 760 1 00 0 97 0 86 810 1 00 0 98 0 88 860 1 00 0 98 I 0 90 910 1 00 0 99 0 91 960 1 00 0 99 0 92 970 1 00 0 99 0 92
Рис. 9.3.3
Глава 9 Задачи оптимального проектирования
367
5. Запись задачи оптимизации в форме, необходимой для ее решения.
Задачу будем решать во второй постановке
F = Р —> max
С = с1 + с2 + с3
Р = Р1Р2Рз
Pj = 1 — ехр(0,19 - 0,01с j) ► р2 = 1 - ехр(0,34 - 0,005с2 ) р3 = 1 -ехр(0,32 - 0,003с 3) С < С
— ч-'зад
(9.3.9)
Для решения задачи введем нижние границы переменных: pi >0,7; рг>0,7; рз>0,7.
Условия решаемой задачи при Сзад= 1500 приведены на рис. 9.3.5.
В I с О ' Г в
2 ЦФ1 P=f(p)
3 звено 1 звено 2 звено 3 = ПРОИЗВЕД(В6 Об)
4 С ио юо too
3 С(НГ) 1 1 1 ОГР1 С=Цс)
S р = 1-ЕХР(019-0 0ГВ4) з1-ЕХР(0 34-0 005’С4) =1 ЕХР(0 32-0 003’04) = СУММ(В4О4)
7 р(НГ) 0 7 07 07
Рис. 9.3.5
368
Часть III Типовые оптимальные решения
6. Решение задачи оптимизации.
Система (9.3.9) является задачей нелинейного программирования, решение которой было рассмотрено в главе 5. Результат решения задачи представлен на рис. 9.3.6.
А ' I. в : С В I £ F . I
8 ЦФ1
< 7 звено 1 звено 2 звено 3 0 66
4 С 396 416 688
S С(НГ) 1 1 1 0ГР1
8 р 0 97695 0 8245 0 82516 1500
7 р(НГ) 0 7 0 7 0 7
« P,=1-EXP(0.19-0.01*C,)
1» Р2=1-ЕХР(0.34-0.005*С2)
И Pj=1-EXP(0.32-0.003*C1)
Рис. 9.3.6
7. Анализ решаемой задачи.
После получения решения можно выполнить все возможные виды анализа, которые уже неоднократно рассматривались. В качестве примера анализа проведем параметрирование по стоимости. Результат анализа после редактирования Итогового сценария и график полученной зависимости вероятности от стоимости приведены на рис. 9.3.7. График помогает принимать решение при выборе оптимальных параметров.
== 4
6 6
7 8
8 Ю » а 13 н is к 17 W 18
А| В | С | О | Е I F | 6 | И I I ] 4 1 К I L Результат параметрирования по стоимости
С 1000 1250 1500 1750 2000 2250 2500 2750 3000 3250 3500
Р 0 40 0 57 0 69 0 78 0 85 0 90 0 93 0 95 0 97 0.98 0 99
Рис. 9.3.7
Глава 9 Задачи оптимального проектирования
369
9.3.2. Оптимизация параметров технологического процесса
В общем случае технологический процесс можно представить в виде схемы, показанной на рис. 9.3.8. Из этой схемы видно, что на вход технологического процесса поступает сырье, которое характеризуется параметрами xi, хг,...хп или сокращенно х. Сырье с помощью технологического процесса, имеющего параметры yi, уг,...ут или у , превращается в готовую продукцию с параметрами zi, Z2,...Zk — z. Эта задача оптимизации параметров имеет вид:
F = z —> max(min) z = f_(x,y) min х < х < max х min у <у <maxy
(9.3.10)
Ставится задача: определить такие значения параметров сырья х и технологического процесса у, находящихся в пределах граничных условий, чтобы параметры готовой продукции z = f( х , у ) имели оптимальное значение (max или min).
Y
Z
Рис. 9.3.8
Алгоритм 9.3.2. Последовательность работ при оптимизации параметров технологического процесса
1. Описать назначение и структуру технологического процесса.
2. Определить параметры, которые будут входить в задачу оптимизации.
3. Составить математическую модель задачи оптимизации.
4. Определить необходимые исходные данные.
5. Решить задачу оптимизации и выполнить анализ решения задачи.
370
Часть III Типовые оптимальные решения
Дальнейшее рассмотрение задачи параметров оптимизации технологического процесса будем вести на примере нанесения лакового покрытия при отделке деталей из древесины. Работу будем выполнять по приведенным выше пунктам.
1. Описываемый техпроцесс заключается в следующем: на деталь из древесины, находящуюся на движущемся конвейере, наносят лаковое покрытие, после чего деталь движется в сушильную камеру. Структура этого процесса приведена на рис. 9.3.9.
Рис. 9.3.9
2. При оптимизации будем учитывать следующее:
Сырье включает два элемента: древесину, на которую наносится лак, в дальнейшем называемую подложкой, и наносимый лак. Параметрами сырья будут:
xi — вязкость лака в принятых единицах, хг — температура подложки, °C.
Технологический процесс будем определять параметром yi — скоростью движения конвейера, м/мин.
Готовая продукция характеризуется двумя параметрами:
zi — внешним видом, оцениваемым в баллах,
Z2 — стоимостью.
3. Математическая модель (9.3.10) при этом будет иметь вид:
Глава 9 Задачи оптимального проектирования
37)
F = Z( —> max
Z| = fI(xl,x2,yI) z2 = f2(x„x2,y!)
minx] <Xj <maxX] minx2 < x2 < maxx2 minyj <У] <maxy1 ^2 — ^2 зад
(9.3.11)
4. Для решения задачи (9.3.11) необходимо определить зависимости
Z1 = fl(xi, Х2, У1), Z2 = fz(Xl, Х2, У2).
Определение зависимостей zi = fi(xi, хг, у i), гг = Г?(Х1, хг, yi) будем вести по методике, изложенной в 9.2.7 в алт. 9.2.10.
4.1. Определить число переменных. Число N переменных xi, хг, yi равно 3.
4.2. Принимаем, что зависимости zi = fi(xi, хг, yi), гг = Гг(Х1, хг, yi) могут быть представлены в виде уравнений линейной регрессии:
г1=Ь1+тцХ1+т12Х2+п113У1
z2 = Ь2 + т21Х; + т22х2 + т23у;
(9.3.12)
При этом для каждого уравнения число искомых коэффициентов равно 4 и минимальное количество исходных данных К = 4 + 2 = 6.
4.3. Составить план проведения эксперимента для относительных значений уь у2, Уз- Выбираем двухуровневый эксперимент, в котором число исходных данных равно 2N = 23 = 8, что больше, чем К, и, следовательно, нас устраивает. Такой план был уже составлен и показан на рис. 9.2.22.
4.4. Перейти к абсолютным значениям и составить таблицу по форме рис. 9.2.26.
Такая таблица приведена на рис. 9.3.10, на котором в ячейках G4:I11 находятся планируемые значения xi, хг, yi, а в J4:K11 — результаты эксперимента.
372
Часть III Типовые оптимальные решения
: / .в.. ,.-Л .. К I
г вязк темп скор кач стоим
3 Xi Xi У, Z1 Zi
4 50 200 12 9 8200
5 50 200 4 10 9200
6 50 120 12 8 7520
7 50 120 4 7 6520
9' 30 200 12 6 5200
9 30 200 4 5 4200
W 30 120 12 4 3520
11 13 И 30 120 качество г-, 4 8 7520
15 -0 03 0 01 0 14 0 87
X 0 15 0 01 0 06 3 65
17 0.60 1 70 #н/д #Н/Д
15 2 01 4 #Н/Д #Н/Д
15 <£V 21 22 17 38 11 50 стоимость #Н/Д #Н/Д
23 -93 75 5 38 137 50 875 00
25 149 87 14 99 59 95 3646 49
25 0.59 1695 58 #н/д #Н/Д
25 1 93 4 #Н/Д #Н/Д
27 16619800 11500000 #H/fl #Н/Д
Рис. 9.3.10
4.5. Определить уравнения линейной регрессии.
Результат определения уравнения линейной регрессии для zi приведен на рис. 9.3.10 в ячейках G15.J19, из которого видно, что R2 = G17 = 0,58, что нельзя признать удовлетворительным. Результат определения уравнения линейной регрессии для Z2 приведен на рис. 9.3.10 в ячейках G23J27. В данном случае R2 = G25 = 0,63 также не может быть признан достаточным. Следовательно, зависимости z, = fs(xlt х2, у,), z2 = f2(x;, х2, у2) не могут быть описаны уравнениями линейной регрессии. В таком случае будем определять уравнения нелинейной регрессии в форме пользователя, как это было рассмотрено в 9.2.4 (алг. 9.2.4) Принимаем уравнения нелинейной регрессии в виде:
Глава 9 Задачи оптимального проектирования
373
А =Ц +ВД +ЩзУ1 +щХ +Щ$Х2 +nW +Щ7Х1Х2 +nWi +nWi
*2 =Ь> +nfeX2 +ПЪУ1 +nW<2 +ПЪХ2 +ПЖ +ВДХ2 +1ЗДУ! H-m^l
(9.3.13)
В каждом из уравнений (9.3.13) требуется определить по 10 коэффициентов, следовательно, необходимо иметь К = N + 2 = 12 экспериментов. Композиционный план, включающий 12 экспериментов, был представлен на рис. 9.2.26. Применительно к нашей задаче он имеет вид, показанный на рис. 9.3.11, в котором в ячейках СЗ:Е14 находятся значения переменных в эксперименте; в F3:K14 — значения, необходимые для определения уравнения нелинейной регрессии; в L3:M14 — результаты эксперимента.
В С I О I В { F i В | И j 1 ,| Л 1 к | 1 I М
1 вязк темп скор кач СТОИМ
2 № *1 «2 S1 »12 2 *2 и/ *Г»г *Гй1 *2‘ai 21 22
3 1 50 200 12 2500 40000 144 10000 600 2400 9 6600
4 2 50 200 4 2500 40000 16 10000 200 800 10 9200
5 3 50 120 12 2500 14400 144 6000 600 1440 8 5600
6 4 50 120 4 2500 14400 16 6000 200 480 7 6200
7 5 30 200 12 900 40000 144 6000 360 2400 6 4560
• 6 30 200 4 900 40000 16 6000 120 800 5 4520
9 7 30 120 12 900 14400 144 3600 360 1440 4 2560
И 8 30 120 4 900 14400 16 3600 120 480 8 7520
И Э ♦0 160 8 1600 25600 64 6400 320 1280 7 6000
12 10 40 160 8 1600 25600 64 6400 320 1280 6 4720
13 11 40 160 8 1600 25600 64 6400 320 1280 5 3720
,* 12 40 160 8 1600 25600 64 6400 320 1280 6 4720
Рис. 9.3.11
На рис. 9.3.12 приведен результат определения уравнения нелинейной регрессии (9.3.13) для zi. При этом получено R2 = С19 = 0,76, что является вполне удовлетворительным. Аналогично на рис. 9.3.13 приведено уравнение для Z2, для которого R2 =СЗ 1 = 0,75, что также является достаточным.
С I О .1 Е 'F | а >1 в 1 L 4 ] к 1 11
Кб 0 002 0 009 0002 Зависимости для качества -2 80 0 01 0 24 44 44 20 572
И 0 004 0 018 0 002 425139 23286 0 6802224 7451463 0 81626686
И 0.76 2 01556 «ни «НИ #Н/Д #Н/Д «ни «ни «ни «ни
2» 0 71453 2 «ни •НИ «ни «ни «ни «ни «ни «ни
21 26125 8125 «ни «ни #н/д #н?д «ни «ни «ни «НН
8RS Уравнение zf=590-20"ib4.442*44’jb0.2441*2 регрессии •0.014’x2*2 2.8>r 2-0.002*i1-i2«0.009'>rj1.0.002-i2'j1
Рис. 9.3.12
374
Часть III Типовые оптимальные решения
(llrll'llll с . О 1 ж ...F 1 .z« ± iJLJ. '! < л .1 к
гз Зависимости для стоимости
2ft 23 54 16 3250 16 280 51162 5075 22622 656766
М 4 6203 18 184812 441031246 24156276 0 7056499941 7730008390 0 84677999296
31 0 75 2030 81 «над «над «над #НВД #Н/Д «над «над «над
32 0 6572 2 #Н(Д «над «над #н/д «над «над «над
33 26Е.07 8743800 «над «над «над #Н?Д #Н/Д «над «над «над
М
35 Уравнение регрессии
33 i1=6567S6-22G22"i1-5075"i2*51162"jl*2S0"«l*2*1C"i2*2-3250"|K2-l 6-1Г12.5.4ЧГj!-2 3‘12’jl
Рис. 9.3.13
На этом заканчивается определение уравнений регрессии, являющихся ограничениями в задаче оптимизации. Продолжим теперь работу по рассматриваемому алг. 9.3.2.
5. Теперь можно решить задачу оптимизации, которая в постановке (9.3.11) представлена на рис. 9.3.14 (формулы). Результат решения этой нелинейной задачи при СзаД < 2000 приведен на рис. 9.3.15.
Анализ задачи оптимизации в данном случае ничем не отличается от анализа тех задач, которые мы рассматривали неоднократно, поэтому повторяться не будем
Глава 9 Задачи оптимального проектирования
375
А с | '/О Е | F ,<d.M V- «Л IM
Своб член «1 «2 ill *1 «Г»2 *Г!И »2’»1 Ц*
1 30 199 12 0 900 39620 144 360 360 360 13
л нг 30 120 4
« вг 50 200 12
ri 21 590 -20 -4 4 44 0 24 0 014 -2 8 -0 0 01 0 Пев часть Првв ЧАСТЬ
1 22 65676В -22622 5075 51162 280 16 3250 -16 54 23 2000 2000
»
» z,=530-20-il-4.4-«2.M-j|.0.24'»r2-O.OM-«2*2-2.rjl*2-0.002’irt2-0.009-«rjl-0.002,«2-Jl “гГ
» | Zi=656766-22622‘x1-5075'»2»51162-j1«280~i1~2«d6*l2~2-3250''j1"2-1 6~»Ki2<5 4~жГ|1»2 З’ж2‘|1
Рис. 9.3.15
9.3.3. Оптимизация структуры объектов проектирования
Каждый объект проектирования состоит из целого ряда звеньев. Достаточно часто необходимые звенья существуют в ряде вариантов. При этом ставится задача — какой вариант звеньев и в каком количестве необходимо принять, чтобы объект проектирования имел оптимальную структуру. Как и раньше, возможны две постановки задачи оптимизации.
Первая постановка'.
F, = С —> mini
Т > Т I
х — зад J
Вторая постановка:
F2 = Т —> maxi
С < С I
— '“'зад J
В дальнейшем детализацию постановки будем производить для первой постановки; работы по второй постановке выполняются аналогично.
Алгоритм 9.3.3. Последовательность работ при оптимизации структуры объекта проектирования
1. Содержательная постановка задачи оптимизации.
2. Представление структуры объекта проектирования в виде набора типов элементов и вариантов, как это показано на рис. 9.3.16.
376
Часть III Типовые оптимальные решения
i’riFl ' . В ЛХ , &/“ . .“ИМ
Обозначения элементов структуры
«3 Варианты Тигы элементов
А в с
4S 1 А1 В1 С1
3 2 А2 В2 С2
у 3 АЗ ... СЗ
Рис. 9.3.16
3. Обозначения параметров элементов показаны на рис. 9.3.17.
Тип________
Вариант Обозначения
А________I В
Д1 Д2 ДЗ j В1 ~В2~
Хд2 Хда | Хв1 Хвг
С1
С______
С2 СЗ
ХС1 Хс2 Хсз
2 3
«
в
А
Рис.9.3.17
4. Математическая постановка задачи в общем случае имеет вид:
F = С(ОП) -ь mm
T(On) = f2(trx/)
F(Xj) = 0
Т(ОП) > Тзад(ОП)
Xj > 0-целые
(9 3.14)
где С (ОП) — стоимость объекта проектирования, cj — стоимость j-ro элемента,
Xj — количество j-ых элементов,
Т (ОП) — технические параметры объекта проектирования,
tj — технические параметры j-ro элемента,
F(Xj) = 0 — зависимость между числом различных элементов,
Тзад (ОП) — задаваемое значение технических параметров объекта проектирования.
Поскольку в (9.3.14) накладывается требование Xj —целые, то система (9.3.14) представляет собой задачу целочисленного программирования.
Глава 9 Задачи оптимального проектирования
377
5. Определение зависимостей, входящих в (9.3.14).
6. Ввод условий задач в Excel.
7. Решение задачи.
8. Анализ задачи.
Работу по данному алгоритму проиллюстрируем на следующем примере.
1. Содержательная постановка.
Требуется выбрать структуру звуковоспроизводящего комплекса.
2. Комплекс должен включать два типа аппаратуры: низкочастотную и высокочастотную.
С О ... I. . Е . F
1 Обозначения вариантов аппаратурь
3 Варианты частоты
4 низкие высокие
S 1 Н1 В1
S 2 Н2 В2
? 3 ВЗ
Рис. 9.3.18
Обозначения типов аппаратуры и ее вариантов приведены на рис. 9.3.18.
3. Значения параметров элементов приведены на рис. 9 3.19.
В С J П Е .. F L 6
1 Параметры элементов
3 частоты низкие высокие
4 Варианты Н1 Н2 В1 В2 ВЗ
5 Обозначения ХЯ1 ХН2 ХВ1 ХВ2 хвз
« Moill/IOCTb ВТ 280 100 20 110 170
7 Стоимость 1900 2450 270 680 1200
3 Вероятность 09 0 95 09 09 0 98
Рис. 9.3.19
4. Математическая модель имеет вид (9.3.14).
5. Определение зависимостей, входящих в (9.3.14):
п
Стоимость: С(ОП) = У\,х, j=i
378
Часть III Типовые оптимальные решения
Мощность: Т(ОП) = W(OIT) = V.w,x,.
j=i
n
Вероятность безотказной работы: Р(ОП) = pjXj .
j=i
Зависимость F(xj) = 0 задается в виде двух зависимостей:
> Общее число низкочастотной аппаратуры задается в виде: Хн1 + Хн2 > 2.
> Отношение количества высокочастотной аппаратуры к низкочастотной должно удовлетворять требованию:
ХЫ1 + хв2+хвЗ > 3
Хн1 + хн2
Тзад(ОП) = \УзаД!
Тогда математическая постановка задачи будет иметь вид:
п
F = £cjXj —> min
j=i
^wjXj>W3M j=i
Пр? -p-
J=1
xHI+xH2 >2
XBI + ХВ2 + хвз
ХН1+хш
Xj >0-целые, j = l,n
(9 3.15)
Система (9.3.15) является нелинейной, следовательно, решаемая задача представляет собой целочисленную задачу нелинейного программирования.
6. Ввод условий задачи в Excel.
Ввод условий задачи включает ввод зависимостей из (9.3.15) и значений параметров, приведенных на рис. 9.3.19. При этом приняты значения W-ид = 300, Рзад = 0,70 Введенные данные показаны на рис. 9.3 20.
Глава 9 Задачи оптимального проектирования
379
А I В t С 1 О ! £ ] F I < ..6 • I В I t~~T
L А Л 5 А JL в_ з
обозначение
величина
НГ
40 11 S 13 м
Стоимость Мощность Вероятность
Переменные ЦФ
*Н1 *Н2 *В1 ХВ2 *83 =G7
11111 0 0 0 0 0
Ограничения левая часть жак в огр правая часть
1900 2450 270 680 1220 =СУММПРОИЗВ(8$3 F$3 87 F7)
280 100 20 110 170 =СУММПРОИЗВ(В$3 F$3 88 F8) >= 1500
09 0 95 09 09 0 98
Сум вероятносп=В9Л63 =С9*СЗ =094)3 =E9*E3=F9AF3 =ПРОИЗВЕД(ВЮ F10)
Доп зависимости
1 =СУММПРОИЗВ(В$3 C$3 В12 С12
1 1 1 =СУММПРОИ38(0$3 F$3 013 F13)
=G13/G12
Рис. 9.3.20
7. Решение задачи и ее анализ
Принимаем Xj° = 1 и далее решаем задачу нелинейного целочисленного программирования по алгоритмам, рассмотренным в главе 5. Результат решения задачи представлен на рис. 9.3.21.
А В С I D I Е I F в 1 И 1 1 '
1 Переменные ЦФ
2 обозначение Хи, ХН2 ХВ1 ХВ2 хи 12220
3 величина 0 2 0 0 6
« НГ 0 0 0 0 0
5 Ограничения
3 левая часть правая часть
7 Стоимость 1900 2450 270 680 1220 12220
8 Мощность 280 100 20 110 170 1220 >= 300
3 Вероятность 0 9 0 95 0 9 0 9 0 98
18 Сум вероятность 1 00 0 90 1 00 1 00 0 89 0 80 > = 0 70
Я Дополнительные зависимости
И 1 1 2 > = 2
13 1 1 1 6
И 3 >= 3
Рис. 9.3.21
Как и в предыдущем разделе, анализ задачи, о котором говорилось уже неоднократно, выполнять не будем.
Приведенные примеры наглядно показывают преимущества оптимального проектирования, реализованного средствами Excel 7.0.
380
Часть III. Типовые оптимальные решения
9.4. Список алгоритмов
1. Алгоритм 9.1.1. Последовательность работ при оптимальном проектировании.....................332
2. Алгоритм 9.2.1. Определение уравнения линейной регрессии..........................................337
3. Алгоритм 9.2.2. Оценка достоверности уравнения регрессии.........................................340
4. Алгоритм 9.2.3. Оценка достоверности значений b и .................................... 340
5. Алгоритм 9.2.4. Определение уравнения нелинейной регрессии с помощью функции ЛГРФПРИБЛ()...........343
6. Алгоритм 9.2.5. Определение уравнения нелинейной регрессии в форме пользователя....................348
7. Алгоритм 9.2.6. Определение парной регрессии....350
8. Алгоритм 9.2.7. Расчет таблиц для нескольких функций одной переменной...........................353
9. Алгоритм 9.2.8. Построение графиков функции одной переменной...................................354
10. Алгоритм 9.2.9. Расчет таблицы для функции двух переменных....................................355
11. Алгоритм 9.2.10. Графическое представление функции двух переменных...........................356
12. Алгоритм 9.2.11. Последовательность работ, необходимых для получения исходных данных.........361
13. Алгоритм 9.3.1. Последовательность работ при оптимизации параметров изделия................363
14. Алгоритм 9.3.2. Последовательность работ при оптимизации параметров технологического процесса...369
15. Алгоритм 9.3.3. Последовательность работ при оптимизации структуры объекта проектирования.......375
Оглавление
381
Оглавление
Предисловие................................................3
Часть I. Предварительные сведения
Глава 1. Что такое оптимальное решение.....................9
1.1. Типовые задачи оптимизации.........................9
1.1.1. Откуда появились вопросы......................9
1.1.2. Основные методы решения задач................13
1.2. Классификация задач оптимизации...................17
1.2.1. Пример математической модели.................17
1.2.3. Классификация математических моделей.........23
Г.З. Последовательность работ при принятии оптимальных решений..............................................26
1.3.1. Основные этапы работ.........................26
1.3.2. Анализ решаемых задач........................28
Глава 2. Типовые работы при оптимизации.................30
2.1. Работа с электронной таблицей.....................30
2.1.1. Основные положения...........................30
2.1.2. Панели инструментов..........................39
2.1.3. Ввод и форматирование данных.................43
2.1.4. Основные задачи копирования и переноса.......47
2.1.5. Некоторые дополнительные процедуры...........50
2.2. Построение диаграмм...............................55
2.2.1. Основные положения...........................55
2.2.2. Создание встроенных диаграмм.................56
2.2.3. Работа с выделенными диаграммами.............61
2.2.4. Построение диаграмм с рисунками..............67
. 2.3. Работа с базами данных...........................70
2.3.1. Основные положения...........................70
2.3.2. Поиск........................................74
2.3.3. Функции базы данных..........................80
2.4. Список алгоритмов.................................82
Часть II. Задачи оптимизации
Глава 3. Задачи линейного программирования................87
3.1. Методы решения задач..............................87
3.1.1. Постановка задачи............................87
3.1.2. Задача распределения ресурсов................91
3.1.3. Основные положения симплекс-метода...........93
3.2. Методы анализа задач..............................97
3.2.1. Если решения нет.............................97
382
Оглавление
3 2 2 Двойственность в задачах линейного программирования 99
3 2 3 Анализ оптимального решения 104
3 2 4 Вариантный анализ 109
3 3 Решение задач линейного программирования с помощью Excel 112
3 3 1 Блок-схема решения задачи 112
3 3 2 Ввод условий задачи ИЗ
3 3 3 Решение задачи 118
3 3 4 Графическое представление результатов решения 121
3 3 5 Преодоление несовместности 122
3 3 6 Устранение неограниченности целевой функции 126
34 Анализ задач линейного программирования в Excel 128
3 4 1 Анализ оптимального решения 128
3 4 2 Параметрический анализ 132
3 4 3 Решение по нескольким целевым функциям 139
3 4 4 Решения по заказу 143
3 4 5 Решение задач при условных исходных данных 145
35 Список алгоритмов 149
Глава 4. Задачи целочисленного программирования ..150
4 1 Постановка задачи и метод решения 150
4 1 1 Целочисленная задача линейного программирования 150
4 1 2 Метод ветвей и границ 152
42 Решение и анализ задач в Excel 156
4 2 1 Решение задач целочисленного программирования 156
4 2 2 Представление результатов решения по итерациям 159
4 2 3 Анализ задач целочисленного программирования 163
43 Задачи с булевыми переменными 167
4 3 1 Решение задач с булевыми переменными 167
4 3 2 Анализ задач с булевыми переменными 170
4 3 3 Задачи дискретного программирования 174
44 Список алгоритмов 174
Глава 5. Задачи нелинейного программирования ..175
5 1 Методы решения задач нелинейного программирования 175
5 1 1 Основные понятия 175
5 1 2 Поиск решения при безусловной оптимизации 177
5 1 3 Решение задачи условной оптимизации 181
52 Решение задач нелинейного программирования в Excel 183
5 2 1 Пример задачи нелинейного программирования 183
5 2 2 Решение задачи нелинейного программирования в Excel 185
5 2 3 Анализ оптимального решения 189
5 2 4 Вариантный анализ 190
53 Решение и анализ нелинейных целочисленных задач 193
5 3 1 Решение нелинейных целочисленных задач 193
5 3 2 Задачи дискретного программирования 195
5 3 3 Анализ нелинейных целочисленных задач 198
54 Список алгоритмов 199
Оглавление 383
Глава 6. Задачи стохастического программирования.............200
6 1 Постановка задачи 200
6 1 1 Основные понятия 200
612 Нормальный закон распределения случайной величины 203 6 13 Варианты постановки задачи стохастического
программирования 211
6 2 Решение и анализ задач в М-посгановке 212
62 1 Детерминированный эквивалент 212
6 2 2 Подготовка данных 214
6 2 3 Решение задачи 218
6 2 4 Анализ задачи 220
6 3 Решение и анализ задач в Р-постановке 225
6 3 1 Варианты задач в Р-постановке 225
6 3 2 Задачи с детерминированными ограничениями 228
6 3 3 Задачи с вероятностными ограничениями 232
6 3 4 Анализ задач 235
6 4 Список алгоритмов 236
Глава 7. Многопараметрическая оптимизация...................237
7 1 Определение коэффициентов веса параметров 237
7 1 1 Постановка задачи 237
7 1 2 Непосредственное назначение коэффициентов веса 238
7 1 3 Оценка важности параметров в баллах 240
7 1 4 Метод парных сравнений 241
7 2 Оптимизация по нескольким параметрам 244
7 2 1 Обобщенная целевая функция 244
7 2 2 Оптимизация по ресурсам 246
7 2 3 Метод последовательных уступок 248
7 3 Задачи сравнения вариантов 251
7 3 1 Оценка вариантов по обобщенному критерию 251
7 3 2 Учет разброса экспертных оценок 254
7 4 Список алгоритмов 261
Часть III. Типовые оптимальные решения
Глава 8. Оптимальное распределение ресурсов.................265
8 1 Основные положения 265
8 1 1 Классификация задач распределения ресурсов 265
8 1 2 Принципы представления информации 266
8 2 Задачи распределения финансирования 268
8 2 1 Эвристическое распределение финансирования 268
8 2 2 Эвристическое распределение финансирования
в иерархической структуре 272
8 2 3 Постановка задачи оптимального финансирования 275
8 2 4 Решение задачи оптимального финансирования 278
8 2 5 Распределение недостаточного финансирования 285
8 2 6 Анализ фактического состояния работ 289
384
Оглавление
8.2.7. Оптимальное финансирование в иерархической структуре..............................................290
8.3. Распределение ресурсов во времени......................298
8.3.1. Временные характеристики работ....................298
8.3.2. Оптимальное распределение ресурсов во времени....303
8.3.3. Оптимальное распределение финансирования во времени.............................................307
8.4. Задачи управления проектом............................311
8.4.1. Классификация задач..............................311
8.4.2. Анализ оптимального распределения ресурсов.......311
8.4.3. Временные характеристики проекта.................317
8.5. Список алгоритмов.....................................323
Глава 9. Задачи оптимального проектирования...................325
9.1. Постановка задачи оптимального проектирования.........325
9.1.1. Основные понятия и определения...................325
9.1.2. Пример задачи оптимального проектирования........328
9.1.3. Классификация задач оптимального проектирования...331
9.2. Определение необходимых зависимостей..................333
9.2.1. Основные понятия................................333
9.2.2. Определение уравнений линейной регрессии........336
9.2.3. Определение нелинейной регрессии с помощью функции Excel..........................................342
9.2.4. Определение уравнения нелинейной регрессии в форме пользователя...................................347
9.2.5. Определение уравнений парной регрессии..........350
9.2.6. Графическое представление уравнений регрессии...353
9.2.7. Методика получения исходных данных..............357
9.3. Решение задач оптимального проектирования.............362
9.3.1. Оптимизация параметров изделия...................362
9.3.2. Оптимизация параметров технологического процесса.369
9.3.3. Оптимизация структуры объектов проектирования....375
9.4. Список алгоритмов.....................................380
Литература
1. Ф. Новиков, А. Яценко. Microsoft Office в целом, BHV, 1996.
2. Б. Курицкий. Оптимизация вокруг нас, Машиностроение, 1989.
3. М. Додж и др. Эффективная работа с Excel 7.0, Питер, 1996.
4. Р. Персон. Excel 7.0 для Windows 95 в подлиннике, BHV, 1997.
5. Running Excel 5.0 для Windows 95, Microsoft Press, 1995.