
- •Что такое оптимальное решение
- •1.1. Типовые задачи оптимизации
- •1.1.1. Откуда появились вопросы
- •1.1.2. Основные методы решения задач
- •1.2. Классификация задач оптимизации
- •1.2.1. Пример математической модели
- •1.2.2. Общий случай задачи оптимизации
- •1.2.3. Классификация математических моделей
- •1.3. Последовательность работ при принятии оптимальных решений
- •1.3.1. Основные этапы работ
- •1.3.2. Анализ решаемых задач
- •Типовые работы при оптимизации
- •2.1. Работа с электронной таблицей
- •2.1.1. Основные положения
- •Блок назначения команд
- •Блок ввода команд
- •2.1.2. Панели инструментов
- •Закрыть.
- •2.1.3. Ввод и форматирование данных
- •Формат, ячейки...
- •Сервис, параметры...
- •2.1.4. Основные задачи копирования и переноса
- •2.1.5. Некоторые дополнительные процедуры
- •Защита файлов
- •Файл, сохранить как...
- •Параметры...
- •Файл, сохранить как...
- •Параметры...
- •Сервис, защита.
- •Комментарии
- •Вставка, примечание...
- •Вставка, примечание...
- •Вставка, примечание...
- •Вставка, примечание...
- •Запись...
- •Вставка, примечание...
- •2.2. Построение диаграмм
- •2.2.1. Основные положения
- •2.2.2. Создание встроенных диаграмм
- •2.2.3. Работа с выделенными диаграммами
- •Вставка, метки значений...
- •2.2.4. Построение диаграмм с рисунками
- •2.3. Работа с базами данных
- •2.3.1. Основные положения
- •Данные, сортировка...
- •Данные, сортировка...
- •Параметры...
- •Правка, копировать...
- •Правка, специальная вставка...
- •2.3.2. Поиск
- •Условие...
- •2.3.3. Функции базы данных
- •2.4. Список алгоритмов
- •Задачи линейного программирования
- •3.1. Методы решения задач
- •3.1.1. Постановка задачи
- •3.1.2. Задача распределения ресурсов
- •3.1.3. Основные положения симплекс-метода
- •Признак 1
- •Признак 2
- •3.2. Методы анализа задач
- •3.2.1. Если решения нет
- •3.2.2. Двойственность в задачах линейного программирования
- •3.2.3. Анализ оптимального решения
- •Анализ влияния изменения cj
- •Анализ влияния изменения bi
- •3.2.4. Вариантный анализ
- •Первая постановка
- •Вторая постановка
- •3.3. Решение задач линейного программирования с помощью Excel
- •3.3.1. Блок-схема решения задачи
- •3.3.2. Ввод условий задачи
- •Сервис, поиск решения...
- •Добавить...
- •3.3.3. Решение задачи
- •Параметры...
- •Максимальное время
- •Предельное число итераций
- •3.3.4. Графическое представление результатов решения
- •3.3.5. Преодоление несовместности
- •3.3.6. Устранение неограниченности целевой функции
- •3.4. Анализ задач линейного программирования в Excel
- •3.4.1. Анализ оптимального решения
- •Отчет по результатам
- •Отчет по устойчивости
- •Отчет по пределам
- •3.4.2. Параметрический анализ
- •2.2. Сервис, поиск решения...
- •2.3. Выполнить.
- •2.4. Сохранить сценарий...
- •4.1. Сервис, сценарии...
- •4.2. Отчет...
- •3.4.3. Решение по нескольким целевым функциям
- •3.4.4. Решения по заказу
- •Сервис, поиск решения...
- •Выполнить.
- •3.4.5. Решение задач при условных исходных данных
- •3.5. Список алгоритмов
1.1.2. Основные методы решения задач
человек хорошо или плохо решает все возникающие перед ним задачи. процесс принятия решений может быть неформализованным и формализованным. принятие неформализованных решений — это творчество, если угодно, искусство.
чтобы принять неформализованное решение, человеку зачастую ничего не надо. есть вопрос. пусть даже не совсем четкий. сел, подумал, решил. правда, никакой гарантии правильности решения при этом нет. достаточно часто человек принимает решение вообще без всяких обоснований, руководствуясь так называемым здравым смыслом, опытом, интуицией и другими аналогичными понятиями, которые никому совершенно ничего не объясняют. а потом для убедительности и убеждения самого себя и других придумывают достаточно веские и обоснованные причины, доказывающие правильность интуитивно принятого решения.
что же касается формализованных решений, то они принимаются по четким рекомендациям. при этом различные люди, руководствуясь этими рекомендациями, будут принимать одни и те же решения. принятие формализованных решений — наука. этому можно научить. принятие формализованных решений базируется на двух основных методах: логическом моделировании и оптимизации.
при логическом моделировании используются так называемые правила, которые составляют высококвалифицированные специалисты, а применяют правила те люди, кто должен принимать решения.
правила определяют, что надо делать в тех или иных случаях. для этого служат логические функции: и, или, если, не. самое простое правило выглядит примерно так: если идет дождь, то возьми зонт. это правило можно уточнить: если идет дождь и надо выйти из дома, то возьми зонт или одень плащ.
очевидно, что с помощью подобных уточнений можно давать достаточно конкретные рекомендации по принятию решений в весьма сложных ситуациях.
такие правила являются хорошей подсказкой при принятии решений исполнителями более низкой квалификации. для реализации логического моделирования на компьютерах разработан специальный язык пролог (программирование логики). но логическое моделирование не является предметом рассмотрения нашей книги. книга посвящена методу оптимизации как средству принятия оптимальных решений.
принятие оптимальных решений базируется на "трех китах":
математической модели;
решении задачи на компьютере;
исходных данных.
начнем с "кита №1" — математической модели. математика всегда пыталась давать ответы на возникающие вопросы. и если, сравнительно недавно, надо было подсчитать число сделанных топоров, то теперь математику используют и для принятия оптимальных решений.
математическое моделирование имеет два существенных преимущества: дает быстрый ответ на поставленный вопрос, на что в реальной обстановке могут потребоваться иногда даже годы; предоставляет возможность широкого экспериментирования, осуществить которое на реальном объекте зачастую просто невозможно.
чтобы моделирование было успешным, надо выполнить три правила, которые, по мнению древних, являются признаком мудрости. эти правила, применительно к задачам математического моделирования, формулируются так:
учитывать главные свойства моделируемого объекта;
пренебрегать его второстепенными свойствами;
уметь отделить главные свойства от второстепенных.
составление математической модели начинается с содержательной постановки задачи. на этом этапе приходится иметь дело со специалистами в предметной области (по управлению, проектированию, разработке технологических процессов и т. д.). эти специалисты люди, как правило, очень добросовестные, однако, прекрасно зная свой предмет, не всегда имеют представление о том, что именно требуется для принятия оптимального решения. поэтому содержательная постановка задачи зачастую оказывается перенасыщенной сведениями, которые для постановки задачи совершенно излишни.
но в жизни, к сожалению, не всегда бывает легко отделить главное от второстепенного и составить приемлемую математическую модель. составление модели — это искусство, творчество. до какого-то уровня научить можно, но не более того. а там, где творчество, очень важны личные качества: знания, способности, если угодно, талант.
если двое смотрят на одно и то же, это не означает, что оба видят одно и то же. и слова древних греков "если двое делают одно и то же, это не значит, что получится одно и то же" в полной мере относятся к составлению математических моделей. не вызывает сомнения, что для успешного принятия оптимального решения необходимо знать, что такое математическая модель, и представлять, каким образом компьютер находит это решение.
если модель описывает зависимость между исходными данными и искомыми величинами, то алгоритм представляет собой последовательность действий, которые надо выполнить, чтобы от исходных данных перейти к искомым величинам.
никто не смешивает диагноз заболевания с методом лечения. так же и здесь. можно считать, что математическая модель — это аналог диагноза, а алгоритм — метода лечения.
кстати, не совсем обычное слово "алгоритм", которое мы будем широко использовать в книге, по мнению историков, имеет такое происхождение. в IX в. в багдаде жил арабский ученый аль-джафар магомет бен муса хорезми, родом из хивы (ныне город в узбекистане). автор работ по астрономии и о солнечных часах, он также написал учебник по математике для купцов и стряпчих, в котором употребил не римские, как было принято, а арабские цифры. его основополагающие трактаты по арифметике и алгебре в XII в. были переведены на латинский язык и оказали большое влияние на развитие математики в западной европе. сокращенное имя этого ученого — аль хорезми, которое на латинском языке было написано как алгоритми. вот откуда произошло слово "алгоритм".
алгоритмы задач принятия решений настолько сложны, что без применения компьютера реализовать их практически невозможно. итак, мы подошли ко "второму киту" — компьютеру. компьютер с помощью программного обеспечения реализует алгоритмы поиска оптимального решения, которые преобразуют исходные данные в искомый результат. таким программным обеспечением, выполняющим поиск оптимальных решений, является Excel 7.0 для Windows 95. поиску оптимальных решений с помощью Excel 7.0 и посвящена наша книга. следует отметить, что в части поиска оптимальных решений Excel 5.0 для Windows 3.1 отличается несущественно от Excel 7.0 для Windows 95.
и, наконец, "третий кит" — исходные данные. никакая хорошая сходимость алгоритма, никакое быстродействие и оперативная память компьютера не заменят достоверности исходных данных. по этому поводу можно было бы сказать много правильных слов, но мы ограничимся лишь тем, что приведем хорошо известную пословицу: что посеешь, то и пожнешь! от себя добавим: и никакие комбайны (то бишь математические модели и программы) не заменят качественных семян!