- •Пример Задача о красках
- •Поиск решения
- •Виды ячеек и зависимости
- •Основы теории
- •Поиск решения Общие рекомендации по разработке структур электронных таблиц
- •Стиль оформления ограничений
- •Проблема начальных значений
- •Управление процессом поиска решения
- •Группа параметров, определяющих время процесса поиска
- •Группа параметров контроля процесса поиска
- •Сохранение и загрузка моделей
- •Результаты поиска решения
- •Сценарии
- •Анализ отчетов
- •Геометрическая интерпретация задачи о красках
- •Отчет по результатам
- •Отчет по устойчивости
- •Отчет по устойчивости для линейной модели
- •Отчет по устойчивости для нелинейной модели
- •Отчет по пределам
- •Вариант 1 Определение топливной смеси
- •Вариант 2 Оптимизация производства карамели
- •Вариант 3 Оптимизация объемов производства изделий
- •Вариант 4 Оптимизация размещения рекламы
- •Вариант 5 Оценка номенклатуры изделий
- •Вариант 6 Оценка развития производства
- •Вариант 7 Оптимизация ассортимента молочного завода
- •Вариант 8 Составление плана загрузки станков
- •Вариант 9 Выбор варианта раскроя
Основы теории
Формулировка любой оптимизационной задачи требует использования некоторой базовой системы понятий.
Любая переменная (изменяемая ячейка в ЭТ) обычно интерпретируется как некоторый ресурс (например, ресурс времени, материала, продукта, валюты), выраженный в количественном измерении (минуты, тонны, штуки, рубли). Задача оптимизации состоит в том, чтобы подобрать такие значения переменных, при которых целевая функция (целевая ячейка ЭТ) принимает максимальное, минимальное или заданное значение (оптимальное значение), при этом найденные значения переменных в совокупности составляют оптимальное решение задачи.
В классическом исследовании операций задачи математического программирования делятся на несколько различных типов в зависимости от вида целевой функции и ограничений. К основным типам относятся задачи линейного и нелинейного программирования. Для первого типа характерна целевая функция, линейно зависящая от переменных (ресурсов) исследуемой системы, и такие же линейные ограничения. Если же целевая функция или хотя бы одно из ограничений нелинейно зависит от переменной (хотя бы одной), задача относится к типу нелинейного программирования. В качестве примеров нелинейностей можно привести зависимости видов Xi*Xj, Xi/Xj, log(Xi) (вычисление логарифма от Xi), MIN(Xi,Xj,Xk), Xj2 (квадрат Xj) и т. д. Здесь Xi, Xj — переменные задачи.
Если оптимизационная задача должна решаться в целых числах, когда хотя бы одна из переменных модели должна измеряться в штуках (станках, автобусах и т. п.), говорят о целочисленном программировании. Наконец, если хотя бы одна из переменных может принимать только одно из двух значений (0 или 1), говорят о булевском программировании.
Вычислительные алгоритмы поиска решения для разных классов задач характеризуются разной степенью сложности, наиболее сложными являются задачи целочисленного программирования, к наиболее простым относятся задачи линейного программирования. Класс задач линейного программирования весьма широк, эти задачи имеют наиболее эффективную реализацию и характеризуются наглядной экономической интерпретацией результатов. Поэтому любую исследуемую систему желательно привести к линейной модели. К сожалению, это не всегда возможно.
Любой вычислительный алгоритм решения оптимизационной задачи имеет характер итерационного процесса, постепенно (шаг за шагом) приближающегося к оптимальному решению. Такие процессы поиска решения характеризуются точностью вычислений, количеством итераций и временем поиска решения. Все эти характеристики определяются в разделе Параметры окна Поиск решения.
Итерационные процессы поиска должны обладать свойством сходимости вычислений. Это свойство заключается в том, что разность результатов, получаемых на n-ом и (n+1)-ом шаге вычислений, должна с ростом n стремиться к нулю:
Здесь - значения изменяемых ячеек на n-ой и (n + 1)-ой итерации. Практически п ограничивается конкретным значением N — количеством итераций. Количество итераций определяет число шагов в последовательности приближений текущего решения задачи к оптимальному, при этом время, затраченное на реализацию такой последовательности, определяет время поиска оптимального решения. По умолчанию в программе Solver: N = 100.
Точность вычислений оптимального решения задачи определяется количеством значащих цифр в представлении значений изменяемых ячеек . Понятие точности тесно связано с понятием отклонения , которое может задаваться в процентах от абсолютной величины XN.
Итерационные процессы могут отличаться также методами реализации вычислений. Для линейных моделей используется главным образом так называемый симплекс-метод, для нелинейных — метод Ньютона и метод сопряженных градиентов. Они кратко комментируются в разделе «Поиск решения».