Смекни!
smekni.com

Разработка математической модели и ПО для задач составления расписания (стр. 6 из 12)

Заметим, что если положить

Разработка математической модели и ПО для задач составления расписания= avs, отсечение (23) будет обладать двумя важными свойствами. Во-первых,

Разработка математической модели и ПО для задач составления расписания

Это означает, что прямая допустимость таблицы сохраниться, еслииспользовать отсечение (23) в качестве ведущей строки. Во-вторых,

Разработка математической модели и ПО для задач составления расписания, т.е. ведущий элемент равен 1 (если отсечение используетсякак ведущая строка). Легко удостовериться (путем исследования формул изменениябазисных переменных), что преобразование симплексной таблицы с единичнымведущим элементом сохраняет целочисленность элементов симплексной таблицы.

Эти идеи послужили основанием прямого алгоритма вцелочисленном программировании:

Шаг 0. Начать со столбцовой таблицы, в которой ai0

Разработка математической модели и ПО для задач составления расписания0 (i
Разработка математической модели и ПО для задач составления расписания
1) и все элементы a0j, aijи ai0 – целые.

Шаг 1. Проверить выполнение условий a0j

Разработка математической модели и ПО для задач составления расписания0 (j
Разработка математической модели и ПО для задач составления расписания
1); если они выполнены, то конец,текущее базисное решение оптимально; если нет – перейти к шагу 2.

Шаг 2. Выбрать ведущий столбец s с a0si0/ais среди строк с ais> 0. Эта строка служит производящей дляотсечения Гомори.

Шаг 3. Получить отсечение Гомори из производящей строки идописать ее внизу таблицы, т.е. добавить к ограничениям задачи уравнение (23),где

Разработка математической модели и ПО для задач составления расписания.

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

Доказательство конечности алгоритма см.[2], стр. 346-353.

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

Разработка математической модели и ПО для задач составления расписания

Строка v может стать производящей тогда и только тогда, когда

Разработка математической модели и ПО для задач составления расписания

где

Разработка математической модели и ПО для задач составления расписанияопределяется из условия

Разработка математической модели и ПО для задач составления расписания

Определим множество V(s) как совокупность строк,удовлетворяющих условию (25).

Следующие два правила представляют собой примеры допустимыхправил выбора производящей строки:

Правило 1.

1. Составить последовательныйконечный список индексов строк таким образом, чтобы индекс каждой строки вошелв него по меньшей мере один раз. Перейти к 2.

2. Если список пуст или не содержитни одного индекса из V(s), вернуться к 1.; в противном случае найти в списке первый индекс v

Разработка математической модели и ПО для задач составления расписанияV(s). Выбрать строку v какпроизводящую. Вывести из списка индекс v и все предшествующие емуиндексы. Перейти к 3.

3. Последовательно выбирать строку v, взятую в 2.,как производящую, до тех пор, пока v

Разработка математической модели и ПО для задач составления расписанияV(s). Как только v
Разработка математической модели и ПО для задач составления расписания
V(s), вернуться к 2.

Правило 2.

1. Пусть Vt(s) – множество V(s),соответствующее t-й таблице. Если Vt(s) содержит более одного элемента: Vt(s) = {v1, v2, …, vk+2}, то в качестве производящей выбрать такую строку

Разработка математической модели и ПО для задач составления расписания, что в последовательности множеств V1(s1), V2(s2), …, Vt(s) строка
Разработка математической модели и ПО для задач составления расписания
появилась раньше (непозднее) остальных
Разработка математической модели и ПО для задач составления расписания
и затем сохраняласьвплоть до Vt(s); перейти к 2.

2. Последовательно выбирать строку v, взятую в 1.,до тех пор, пока

Разработка математической модели и ПО для задач составления расписания. Как только
Разработка математической модели и ПО для задач составления расписания
, вернуться к 1.

Подробнее об алгоритме можно прочитать в [2], стр. 344.

2.2.3.ТЕХНИКА ПОЛУЧЕНИЯ НАЧАЛЬНОГО ДОПУСТИМОГО БАЗИСА

Решение каждым из приведенных выше методов можетпроизводиться только в том случае, если задача линейного программирования является или прямо, или двойственнодопустимой. Такая допустимость означает наличие начального допустимого базиса висходной задаче. Если задача допустима и прямо, и двойственно, то полученноерешение – оптимально. В большинстве случаев после постановки задачиоказывается, что она не допустима ни прямо, ни двойственно. Поэтому приведемалгоритм получения начального допустимого базиса.

Пусть задача линейного программирования записана вканонической форме:

минимизировать

Разработка математической модели и ПО для задач составления расписания

при условиях

Разработка математической модели и ПО для задач составления расписания

Разработка математической модели и ПО для задач составления расписания

Все bi можно сделать неотрицательными, умножив, если надо, соответствующееуравнение на –1. Тогда можно добавить в каждое уравнение искусственнуюпеременную

Разработка математической модели и ПО для задач составления расписания (искусственныепеременные должны быть неотрицательными) таким образом, чтобы из искусственныхпеременных образовать начальный базис:

Разработка математической модели и ПО для задач составления расписания
Разработка математической модели и ПО для задач составления расписания

Разработка математической модели и ПО для задач составления расписания
Разработка математической модели и ПО для задач составления расписания

Разработка математической модели и ПО для задач составления расписания
Разработка математической модели и ПО для задач составления расписания