Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л9.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
709.63 Кб
Скачать

3.1.3. Задачи частично-целочисленного программирования

В задачах этого подкласса в отличие от задач целочисленного программирования часть оптимизационных переменных являются действительными. Класс таких задач очень широк. Обобщенная формализованная запись такого рода задач приведена выше (3.1). Для важного частного случая линейных частично-целочисленных задач она имеет следующий вид:

, (3.7)

где c,e - векторы-строки (соответственно п- и р -мерные) коэффициентов целевой функции при действительных и целочисленных переменных; А,D - матрицы ( А - -мерные, B - - мерные), определяющие левые части ограничений; b - m -мерный вектор правых частей ограничений.

ЗК, как задача частично-целочисленного программирования.

Рассмотренная выше ЗК может быть отнесена к рассматриваемому классу, если другим образом формализовать условия формирования решения в виде Гамильтонового контура. Необходимость другой формы записи этих условий определяется тем, что даже для задач среднего размера количество всевозможных разбиений множества городов на подмножества S и очень велико. В новой компактной форме эти ограничения записываются с введением дополнительных неотрицательных действительных переменных u[i]≥0 ( ) :

, . (3.7)

Эти неравенства обеспечивают выполнение условия прохождения каждого обхода через город № 1. Например, решение, показанное на рис.3.2,а, исключается, так как содержит обход 4-5-6, не проходящий через город №1. Проверка этого утверждения на примере, показанном на рис.3.2а заключается в следующем: необходимо записать ограничения (3.7) для дуг обхода 4-5-6 и сложить эти неравенства. После этого очевидным станет факт их невыполнения. В то же время эти ограничения не исключают ни одного обхода. В этом легко убедиться, если для любого Гамильтонового контура зафиксировать соответствующим образом значения x[i,j] и определить значение каждой переменной u[i] как порядковый номер, под которым i -и город посещается при обходе. Все неравенства в этом случае превращаются в тождества.

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

Предприятие имеет на плановый период портфель заказов, включающий р разработок. Каждая j -я разработка характеризуется количественной оценкой эффекта e[j], получаемого от ее выполнения, и объемом работ d[i,j], который должен быть выполнен по профилю i -го подразделения предприятия ( ). Общий объем работ, который может быть выполнен каждым i -ым подразделением, - b[i].

Существует возможность передачи работ из одних подразделений в другие, родственные им по специализации. Эта возможность отражается матрицей a[i,j] (a[i,j]=1, если i-е подразделение может выполнять работы j -го подразделения, a[i,j] = 0 - в противном случае).

Введем в рассмотрение следующие оптимизационные переменные: бинарные переменные w[j] (j=1,n) (w[j]=1, если j разработка включается в план предприятия, w[j] = 0 - в противном случае) и действительные переменные y[i,j]≥0 ( ; i¹j)-объем работ i-го подразделения предприятия, переданный для выполнения j-ому подразделению. Необходимо так составить тематический план предприятия, чтобы при ограничениях на объемы работ, выполняемых каждым подразделением с учетом их взаимозаменяемости, обеспечить максимальный эффект от выполнения разработок, включенных в тематический план разрабатывающего предприятия. Формализованная запись задачи будет иметь следующий вид:

(3.8)

Задачи c альтернативными ограничениями.

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

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

Однако возможны эквивалентные преобразования этих ограничений. В результате этого они приводятся к обычной форме записи, используемой в задаче частично-целочисленного программирования. Рассмотрим некоторые варианты альтернативных ограничений и способы их преобразования.

Пусть дано альтернативное ограничение следующего вида:

либо k(x)³0, либо h(x)³0, где xÎD (3.9)

где x - вектор действительных переменных, выбираемый из некоторой подобласти D Евклидова пространства.

Геометрическая интерпретация альтернативного ограничения (3.9) показана на рис.3.3. Это ограничение выделяет из области D два подмножества, отмеченных двойной штриховкой.

Рис.3.3.

Для осуществления эквивалентных преобразований определяются

нижние границы функций k(x) и h(x) на множестве D :

; ,

и бинарная оптимизационная переменная w, принимающая значения 0 или 1.

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

сложная задача: она является оценочной, а не оптимизационной.

Тогда альтернативное ограничение (3.9) может быть эквивалентно представлено системой из следующих двух неравенств:

, . (3.10)

Видно, что при w = 0 работает ограничение k(x)³0, второе же ограничение выполняется тривиально, а при w = 1 - ситуация противоположная.

Второй вариант альтернативного ограничения:

либо , ( ), либо , где xÎD. (3.11)

По аналогии с предыдущим случаем после определения нижних границ функций ki(x) и hj(x) и введения бинарной переменной w эквивалентная альтернативному ограничению (3.11) система неравенств будет иметь следующий вид:

, . (3.12)

Рассмотрим вариант многоальтернативного ограничения:

- должно выполняться одно из следующих ограничений

, , где xÎD. (3.13)

Для его преобразования необходимо ввести m бинарных переменных w[i] и определить нижние границы всех функций ki(x). Эквивалентная запись ограничения в обычной форме будет иметь следующий вид:

. (3.14)

Вариант так называемого полного альтернативного ограничения имеет вид:

если h(x)³0 , то k(x) ³0, иначе (если h(x)£0) l(x) ³0, где xÎD. (3.15)

С целью осуществления эквивалентного преобразования для функций h(x), k(x), l(x) вводятся их нижние границы на D: kin, hin, lin, a для функции h(x) - еще и верхняя граница:

.

Тогда с использованием бинарной переменной w альтернативному ограничению (3.15) будет эквивалентна следующая система неравенств:

где xÎD. (3.16)

Очевидно, если множество D определяется линейными ограничениями и таковыми же являются функции h(x), k(x), l(x) в альтернативных ограничениях и целевая функция исходной задачи, то в результате эквивалентных преобразований получается линейная задача частично-целочисленного линейного программирования.

Задача составления графика обработки деталей на станках

Таблица 3.1

Детали

Станки

T

F

M

A

10

4

-

B

5

6

3

В качестве примера задач с альтернативными ограничениями приведем задачу составления графика обработки деталей на станках, который обеспечивает минимальное время всего цикла обработки. Чтобы не усложнять изложение, рассмотрим данную задачу лишь в частной постановке для случая обработки деталей двух видов (А и В, например, трубки и втулки) на трех станках (токарном (T), фрезерном (F) и шлифовальном (M)).

Технологическая последовательность обработки

трубок (А) - T®F (на шлифовальном станке они не обрабатываются),

а втулок (В) - F® Т®М.

В табл. 3.1 в условных единицах приведены времена обработки деталей на станках.

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

Альтернативными ограничениями в данной задаче являются условия невозможности одновременной обработки на одном станке разных деталей.

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

, (3.17)

; (3.18)

; (3.19)

либо , либо , или, что одно и то же: (3.20)

(либо , либо

либо , либо , или, что одно и то же: (3.21)

(либо , либо ).

В этой задаче первые два ограничения определяют установленную технологическую последовательность обработки деталей: (3.18) – для детали А, а (3.19) – для В.

Альтернативные ограничения исключают планирование обработки деталей А и В одновременно на токарном станке (3.20), на фрезерном станке (3.21).

После эквивалентных преобразований получаем следующую задачу частично-целочисленного программирования:

,

;

;

; (3.22)

, (3.23)

где М – нижняя граница функций типа k(x), h(x) для всех альтернативных ограничений данной задачи (3.20, 3.21). Может быть с гарантией определена как М= -56 (взятая со знаком минус удвоенная сумма всех чисел в табл.3.1).

Задачи с разрывными целевыми функциями.

Целевая функция

,

где , не всегда адекватно отображает реальную ситуацию.

В некоторых случаях возникает необходимость использовать разрывную функцию с начальным ненулевым значением в точке разрыва:

(3.24)

Задача с такой функцией относится к классу нелинейного программирования. Однако она может быть преобразована к линейной задаче частично-целочисленного программирования (если, конечно, ограничения имеют линейный вид). Это делается путем введения n бинарных оптимизационных переменных w[j], линейных функций вида

(3.25)

и ограничений

(3.26)

где М[j] - верхняя граница для x[j] в рассматриваемой задаче, которая считается известной (минимальное возможное значение x[j] при этом предполагается равным единице). Ограничения (3.26) осуществляют синхронизацию изменения переменных x[j] и w[j], не ограничивая выбор значений x[j].

Примером такого рода задач является транспортная задача с фиксированными доплатами (наличием таких доплат она отличается от рассмотренной в 1.1.3. Т-задачи):

,

, , (3.27)

, ,

, ,

где - нелинейная стоимость перевозки, определяемая следующим образом:

(3.28)

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

(3.29)

Если все a[i] и b[j] – целые числа, то задача становится задачей целочисленного программирования.

Методы неявного перебора.

Применяются для решения задач целочисленного программирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]