Задачи календарного планирования

Автор работы: Пользователь скрыл имя, 19 Декабря 2011 в 17:25, курсовая работа

Краткое описание

Актуальность темы. В отечественной практике при построении автоматизированных систем управления производством активно используются новые управленческие технологии: управление ресурсами, промышленная логистика, управление проектами. Несмотря на различия в сфере применения данных технологий, цель их использования одна - оптимизировать использование имеющихся материальных ресурсов путем составления расписаний.
Достаточно глубоко рассматривались отечественными и зарубежными учеными задачи составления расписаний, и результаты их исследований достаточно полно изложены в литературе, но на практике расписание составляют, как правило, вручную. Эффективность составления расписания зависит от большого количества факторов, а известные методы предлагают решение лишь частных задач, общее решение задач теории расписания отсутствует.

Содержание работы

I. Введение………………………………………………………………….стр. 3

II. Современное состояние вопроса. Актуальность проблемы
составления оптимального расписания ………………………………стр. 4

III. Программное обеспечение календарного планирования и контроля.

Анализ рынка………………………………………………………… ...стр. 6

Базовые функциональные возможности системы календарного
планирования………………………………………………………… ...стр. 8

IV. Применение метода ветвей и границ для задач календарного планирования.

Понятие о методе ветвей и границ………………………………… …стр. 11

Применение метода ветвей и границ для задач календарного планирования……………………………………………………………стр. 18

V. Список использованной литературы……………………………… стр. 23

Содержимое работы - 1 файл

Добычин курсовая.doc

— 236.50 Кб (Скачать файл)

          Найдем  решение задач линейного программирования (I) и (II). Очевидно, здесь возможен один из следующих четырех случаев:

    1.   Одна  из  задач  неразрешима,   а другая имеет целочисленный  оптимальный план. Тогда этот  план и значение целевой функции  на нем и дают решение исходной  задачи.

    2. Одна  из задач неразрешима, а другая имеет оптимальный план, среди компонент которого есть дробные числа. Тогда рассматриваем вторую задачу и в ее оптимальном плане выбираем одну из компонент, значение которой равно дробному числу, и строим две задачи, аналогичные задачам (I) и (II).

    3. Обе  задачи разрешимы. Одна из задач  имеет оптимальный целочисленный  план, а в оптимальном плане  другой задачи есть дробные  числа. Тогда вычисляем значения  целевой функции на этих планах  и сравниваем их между собой.  Если на целочисленном оптимальном плане значение целевой функции больше или равно ее значению на плане, среди компонент которого есть дробные числа, то данный целочисленный план является оптимальным для исходной задачи и он вместе со значением целевой функции на нем дает искомое решение.

          Если  же значение целевой функции больше на плане, среди компонент которого есть дробные числа, то следует взять  одно из таких чисел и для задачи, план которой рассматривается, необходимо построить две задачи, аналогичные (I) и (II).

    4. Обе задачи разрешимы, и среди оптимальных планов обеих задач есть дробные числа. Тогда вычисляем значение целевой функции на данных оптимальных планах и рассматриваем ту из задач, для которой значение целевой функции является наибольшим. В оптимальном плане этой задачи выбираем одну из компонент, значение которой является дробным числом, и строим две задачи, аналогичные (I) и (II).

          Таким образом, описанный выше итерационный процесс может быть представлен  в виде некоторого дерева, на котором  исходная вершина отвечает оптимальному плану Х0 задачи (1)-(3), а каждая соединенная с ней ветвью вершина отвечает оптимальным планам задач (I) и (II). Каждая из этих вершин имеет свои ветвления. При этом на каждом шаге выбирается та вершина, для которой значение функции является наибольшим. Если на некотором шаге будет получен план, имеющий целочисленные компоненты, и значение функции на нем окажется больше или равно, чем значение функции в других возможных для ветвления вершинах, то данный план является оптимальным планом исходной задачи целочисленного программирования и значение целевой функции на нем является максимальным.

          Итак, процесс нахождения решения задачи целочисленного программирования (1)-(4) методом ветвей и границ включает следующие основные этапы:

    1°.  Находят решение задачи линейного программирования (1)-(3).

    2°. Составляют дополнительные ограничения для одной из переменных, значение которой в оптимальном плане задачи (1)-(3) является дробным числом.

    3°.  Находят решение задач (I) и (II), которые получаются из задачи (1)-(3) в результате присоединения дополнительных ограничений.

    4°.  В случае необходимости составляют  дополнительные ограничения для  переменной, значение которой является  дробным, формулируют задачи, аналогичные  задачам (I) и (II), и находят их решение. Итерационный процесс продолжают до тех пор, пока не будет найдена вершина, соответствующая целочисленному плану задачи (1)-(3) и такая, что значение функции в этой вершине больше или равно значению функции в других возможных для ветвления вершинах.

          Описанный выше метод ветвей и границ имеет более простую логическую схему расчетов, чем метод Гомори. Поэтому в большинстве случаев для нахождения решения конкретных задач целочисленного программирования с использованием ЭВМ применяется именно этот метод.

 

    Проиллюстрируем метод ветвей и границ на примере.

    Решить  задачу

    Z = Зх1 + х2 — max

    при ограничениях:

    4xl + Зх2 < 18,

    x1 + 2x2 £ 6,

    0 £ x1 £ 5,

    0 £ x2 £ 4,

    х1, x2 — целые числа.

    Решение.

    За  нижнюю границу линейной функции  примем, например, ее значение в точке (0,0), т.е. Z0 = Z (0; 0) = 0.

    I этап. Решая задачу симплексным методом, получим Zmax = 13 при Х1* = (4,5; 0; 0; 1,5; 0,5; 4); так как первая компонента х1* дробная, то из области решения исключается полоса, содержащая дробное оптимальное значение х1*, т.е. 4 < х1 < 5. Поэтому задача 1 разбивается на две задачи 2 и 3: 

 

    Задача 2

    Z=3x1+x2→max

    при ограничениях:

    4xl + Зх2 < 18

    x1 + 2x2 £ 6

    0 £ x1 £ 4

    0 £ x2 £ 4

    х1, x2 — целые числа.

    Задача 3

    Z=3x1+x2→max

    при ограничениях:

    4xl + Зх2 < 18

    x1 + 2x2 £ 6

    5 £ x1 £ 5

    0 £ x2 £ 4

    х1, x2 — целые числа. 
     

    Список  задач: 2 и 3. Нижняя граница линейной функции не изменилась: Z0= 0.

    II этап. Решаем (по выбору) одну из задач списка, например задачу 3 симплексным методом.

    Получим, что условия задачи 3 противоречивы.

    III этап.   Решаем задачу 2 симплексным методом. Получим Zmax = 14/3 при X3*= (4; 2/3; 0; 2/3; 0; 10/3). Хотя Z(X3*) = 14/3 > Z0 = 0, по-прежнему сохраняется Z0 = 0, ибо план нецелочисленный. Так как х2* — дробное число, из области решений исключаем полосу 0 < x2 < 1 и задачу 2 разбиваем на две задачи 4 и 5. 

 

Задача 4

Z=3x1+x2→max

при ограничениях:

4xl + Зх2 < 18

x1 + 2x2 £ 6

0 £ x1 £ 4

0 £ x2 £ 0

х1, x2 — целые числа. 

Задача 5

Z=3x1+x2→max

при ограничениях:

4xl + Зх2 < 18

x1 + 2x2 £ 6

0 £ x1 £ 4

1 £ x2 £ 4

х1, x2 — целые числа. 
 

Список  задач: 4 и 5. Значение Z0 = 0.

IV этап. Решаем задачу 4 симплексным методом.

Получим Zmax = 12 при X4* = (4; 0; 2; 2; 0; 0). Задачу исключаем из списка, но при этом меняем Z0; Z0 = Z(X4*) = 12, ибо план Х4* целочисленный.

V этап. Решаем задачу 5 симплексным методом.

Получим Zmax = 12,25 при X5* = (3,75; 1; 0; 0,25; 0,25; 0; 3). Z 0 не меняется, т.е. Z0 = 12, ибо план X5* нецелочисленный. Так как х1* — дробное, из области решений исключаем полосу 3<x1<4, и задача 5 разбивается на две задачи: 6 и 7. 
 

Задача 6

Z=3x1+x2→max

при ограничениях:

4xl + Зх2 < 18

x1 + 2x2 £ 6

0 £ x1 £ 3

1 £ x2 £ 4

х1, x2 — целые числа. 

    Задача 7

    Z=3x1+x2→max

    при ограничениях:

    4xl + Зх2 < 18

    x1 + 2x2 £ 6

    4 £ x1 £ 4

    1 £ x2 £ 4

    х1, x2 — целые числа 

Список  задач: 6 и 7. Значение Z0 = 12.

VI этап. Решаем одну из задач списка, например задачу 7, симплексным методом.

Получим, что условия задачи 7 противоречивы.

VII этап. Решаем задачу 6 симплексным методом.

Получим Zmax = 10,5 ,при   X6* = (3; 1,5; 1,5; 0; 0; 0,5; 2,5).

Так какZ(X6*) = 10,5 < Z0 = 12, то задача исключается из списка.

Итак, список задач исчерпан и оптимальным  целочисленным решением исходной задачи будет  X* = Х4* = (4; 0; 2; 2; 0; 0), а оптимум линейной функции Zmax = 12

Замечание 1. Нетрудно видеть, что каждая последующая задача, составляемая в процессе применения метода ветвей и границ, отличается от предыдущей лишь одним неравенством — ограничением. Поэтому при решении каждой последующей задачи нет смысла решать ее симплексным методом с самого начала (с I шага). А целесообразнее начать решение с последнего шага (итерации) предыдущей задачи, из системы ограничений которой исключить "старые" (одно или два) уравнения — ограничения и ввести в эту систему "новые" уравнения — ограничения.

 

Применение  метода ветвей и границ для задач календарного планирования 

       Метод ветвей и границ является универсальным  методом решения комбинаторных  задач дискретного программирования. Сложность практического применения метода заключается в трудностях нахождения способа ветвления множества на подмножества и вычисления соответствующих оценок, которые зависят от специфики конкретной задачи.

       Рассмотрим  применение разновидности метода ветвей и границ— метода «последовательного конструирования и анализа вариантов» для решения задачи календарного планирования трех станков.

       Заданы  п деталей di (i = 1, 2, ..., n), последовательно обрабатываемых на трех станках R1, R2, R3,  причем технологические маршруты всех деталей одинаковы. Обозначим ai ,bi ,ciдлительность обработки деталей di на первом, втором и третьем станках соответственно.

Информация о работе Задачи календарного планирования