Автор работы: Пользователь скрыл имя, 22 Декабря 2011 в 07:30, реферат
Целочисленное программирование возникло в 50-60-е годы нашего века из нужд практики - главным образом в работах американских математиков Дж.Данцига и Р.Гомори. Первоначально целочисленное программирование развивалось независимо от геометрии чисел на основе теории и методов математической оптимизации, прежде всего линейного программирования. Однако в последние время исследования в этом направлении все чаще проводятся средствами математики целых чисел.
Найдем
решение задач линейного
1. Одна из задач неразрешима, а другая имеет целочисленный оптимальный план. Тогда этот план и значение целевой функции на нем и дают решение исходной задачи.
2.
Одна из задач неразрешима,
а другая имеет оптимальный
план, среди компонент которого
есть дробные числа. Тогда
3.
Обе задачи разрешимы. Одна
из задач имеет оптимальный
целочисленный план, а в оптимальном
плане другой задачи есть
Если же значение целевой функции больше на плане, среди компонент которого есть дробные числа, то следует взять одно из таких чисел и для задачи, план которой рассматривается, необходимо построить две задачи, аналогичные (I) и (II).
4.
Обе задачи разрешимы, и среди
оптимальных планов обеих
Таким образом, описанный выше итерационный процесс может быть представлен в виде некоторого дерева, на котором исходная вершина отвечает оптимальному плану Х0 задачи (1)-(3), а каждая соединенная с ней ветвью вершина отвечает оптимальным планам задач (I) и (II). Каждая из этих вершин имеет свои ветвления. При этом на каждом шаге выбирается та вершина, для которой значение функции является наибольшим. Если на некотором шаге будет получен план, имеющий целочисленные компоненты, и значение функции на нем окажется больше или равно, чем значение функции в других возможных для ветвления вершинах, то данный план является оптимальным планом исходной задачи целочисленного программирования и значение целевой функции на нем является максимальным.
Итак, процесс нахождения решения задачи целочисленного программирования (1)-(4) методом ветвей и границ включает следующие основные этапы:
1.
Находят решение задачи
2.
Составляют дополнительные
3. Находят решение задач (I) и (II), которые получаются из задачи (1)-(3) в результате присоединения дополнительных ограничений.
4.
В случае необходимости
Описанный выше метод ветвей и границ имеет более простую логическую схему расчетов, чем метод Гомори. Поэтому в большинстве случаев для нахождения решения конкретных задач целочисленного программирования с использованием ЭВМ применяется именно этот метод.
Приведем обобщенную схему алгоритма Гомори. Структурно он делится на так называемые большие итерации. Каждая большая итерация содержит этапы:
1.
Сначала задача решается
2.
В оптимальном плане (симплекс-
3. Построение для найденного компонента условия отсечения. Исходя из уравнения, в систему ограничений добавляем неравенство, в котором коэффициенты будут дробными частями коэффициентов данного уравнения. Переводим к каноническому виду добавляя новую переменную xn+1, .И соответственно добавляем в симплекс-таблицу новый базисный вектор по новой переменной xn+1.
Замечание:
При
добавлении в симплекс-таблицу нового
базисного вектора по новой переменной xn+1 мы
получаем недопустимое (отрицательное)
решение. Для того, чтобы избавиться от
недопустимого решения выбираем столбец
замещения так, чтобы строкой замещения
стала новая добавленная строка по переменной xn+1. Продолжаем
пересчет симплекс-таблицы. Если снова
получаем дробное решение, то еще вводим
дополнительный базисный вектор, и так
до получения целочисленного решения. Но
следует заметить, что если область допустимых
решений очень мала, то она может и не содержать
целых значений, это необходимо проверить
графически. Если область допустимых решений
не содержит целочисленного решения, то
в применении метода Гомори нет необходимости,
целого решения не будет.
3. Пример решения целочисленных задач.
Задача.
В мебельный магазин завезли диваны, кресла, столы и стулья, расходы на содержание продукции показаны в таблице 1.1.
Диваны | Кресла | Столы | Стулья | ||
Цены на изделия, тыс.руб. | 1 | 1 | 1 | 1 | 16 |
Расход
труда,
чел-час |
6 | 6 | 4 | 3 | 110 |
З/п работников | 4 | 6 | 10 | 13 | 150 |
Прибыль от реализации продукции | 60 | 70 | 120 | 130 |
Определить такую производственную программу, при которой прибыль от реализации будет максимальной.
Решение:
Построение экономико-математической модели:
Пусть Х (х1…х4) – оптимальная производственная программа мебельного магазина, где:
х1 – количество диванов;
х2 – количество кресел;
х3 – количество столов;
х4 – количество стульев.
Система ограничений:
1*x1+1*x2+1*x3+1*x4 ≤ 16
6*x1+5*x2+4*x3+3*x4 ≤ 110
4*x1+6*x2+10*x3+13*x4 ≤ 150
х1…х4≥ 0
х1…х4 - целые
Целевая функция:
F (х1…х4) = 60*x1+70*x2+120*x3+130*x4 → max
Ответ: Х (1;1;14;0); F = 1810
MS
Excel содержит модуль «Поиск
Рис.1.1. Модуль «Поиск решения» программы MS Excel
Далее, переходим к решению. Выбираем в меню «Сервис | Поиск решения». Открывается диалоговое окно «Поиск решения». Здесь указывается ячейки целевой функции, переменных и устанавливаются ограничения исходя из системы ограничений. Можно начать решение, или установить «параметры» решения.
В
параметрах поиска решений выбираем
«линейная модель» и «
«Линейная модель» - служит для ускорения поиска решения линейной задачи оптимизации.
По-умолчанию
выбран метод поиска «Ньютона», есть
возможность выбрать «
«Метод Ньютона» - реализация квазиньютоновского метода, в котором запрашивается больше памяти, но выполняется меньше итераций, чем в методе сопряженных градиентов.
«Метод сопряженных градиентов» - реализация метода сопряженных градиентов, в котором запрашивается меньше памяти, но выполняется больше итераций, чем в методе Ньютона. Данный метод следует использовать, если задача достаточно велика и необходимо экономить память, а также если итерации дают слишком малое отличие в последовательных приближениях.
Причем здесь нет возможности выбрать ни графический симплекс-метод, ни симплекс-таблиц. Применение метода позволяющего найти целочисленное решение определяется лишь добавление условия на каждую переменную – «целое».
Такой подход к решению задач хорошо подходит для проведения практических расчетов, когда важен лишь результат решения, а не сам процесс получения оптимального решения.
Если Вам важен сам процесс решения задачи с применением какого-либо метода решения, модуль «Поиск решения» может быть использован лишь для сравнения результатов решения задачи в качестве проверки правильности применения методов. Тут следует отметить, что некоторые задачи могут иметь несколько вариантов оптимального решения. Так, например, транспортная задача (частный случай задачи ЛП, и может быть представлена в виде целевой функции и системы ограничений) может иметь два (и более) оптимальных плана перевозок с одинаковой стоимостью.
Заключение
В данной работе была рассмотрена сущность целочисленного программирования. Затронуты специальные методы решения целочисленных задач. Такие задачи возникают при моделировании разнообразных производственно-экономических, технических, военных и других ситуаций. В то же время ряд проблем самой математики может быть сформулирован как целочисленные экстремальные задачи.
Задачи
такого типа весьма актуальны, так как
к их решению сводится анализ разнообразных
ситуаций, возникающих в экономике, технике,
военном деле и других областях. Эти задачи
интересны и с математической точки зрения.
С появлением ЭВМ, ростом их производительности
повысился интерес к задачам такого типа
и к математике в целом.
Список используемых источников:
1. Конюховский П.В. Математические методы исследования операций в экономике. - СПб: Питер, 2007
2. В.Г.Карманов. Математическое программирование: Учебное пособие, стереотип - М: ФИЗМАТ, 2009
3. В.В. Федосеев, А.Н. Гармаш, Д.М. Дайитбегов.: Экономико-математические методы и прикладные модели, 2007
4. http://www.math.mrsu.ru/
Информация о работе Целочисленная модель математического программирования