J2ni2Cmax — различия между версиями
Watson (обсуждение | вклад) (→Описание алгоритма) |
Watson (обсуждение | вклад) (→Описание алгоритма) |
||
Строка 18: | Строка 18: | ||
<li><tex>I21</tex> - множество всех работ, которые должны выполнится сначала на <tex>M2</tex> затем на <tex>M1</tex>. </li> | <li><tex>I21</tex> - множество всех работ, которые должны выполнится сначала на <tex>M2</tex> затем на <tex>M1</tex>. </li> | ||
<ul> | <ul> | ||
− | + | Реiим задачу [[F2Cmax|<tex>F2 \mid \mid C_{max}</tex>]] для <tex>I12</tex> и для <tex>I21</tex>. Получим расписание <tex>S12</tex> и <tex>S21</tex>. | |
Тогда оптимальное расписание для нашей задачи будет следующим: | Тогда оптимальное расписание для нашей задачи будет следующим: | ||
<ol> | <ol> | ||
− | <li>Расписание <tex>M1</tex>: <tex>I12</tex> в соответсвии с расписанием <tex>S12</tex>. <tex>I1</tex> в произвольном порядке. Затем <tex>I21</tex> в соответсвии с <tex>S21</tex>. | + | <li>Расписание <tex>M1</tex>: <tex>I12</tex> в соответсвии с расписанием <tex>S12</tex>. <tex>I1</tex> в произвольном порядке. Затем <tex>I21</tex> в соответсвии с <tex>S21</tex>. </li> |
− | <li>Расписание <tex>M2</tex>:<tex>I21</tex> в соответсвии с расписанием <tex>S21</tex>. Затем <tex>I2</tex> в произвольном порядке. Затем <tex>I12</tex> в соответсвии с <tex>S12</tex>. | + | <li>Расписание <tex>M2</tex>:<tex>I21</tex> в соответсвии с расписанием <tex>S21</tex>. Затем <tex>I2</tex> в произвольном порядке. Затем <tex>I12</tex> в соответсвии с <tex>S12</tex>. </li> |
<ul> | <ul> | ||
Версия 14:34, 22 июня 2013
Содержание
Постановка задачи
Рассмотрим задачу:
- Дано работ и станка.
- Для каждой работы известно её время выполнения на каждом станке.
- Для каждой работы известна последовательность станков - порядок, в котором нужно выполнить работу. .
- Длина любой последовательности .
Требуется минимизировать время окончания выполнения всех работ.
Описание алгоритма
- первый станок. - второй станок. Разобьем все работы на четыре множества:
- - множество всех работ, которые должны выполнится только на .
- - множество всех работ, которые должны выполнится только на .
- - множество всех работ, которые должны выполнится сначала на затем на .
- - множество всех работ, которые должны выполнится сначала на затем на .
- Расписание : в соответсвии с расписанием . в произвольном порядке. Затем в соответсвии с .
- Расписание : в соответсвии с расписанием . Затем в произвольном порядке. Затем в соответсвии с .
-
Реiим задачу для и для . Получим расписание и .
Тогда оптимальное расписание для нашей задачи будет следующим:
Доказательство корректности алгоритма
Теорема: |
Расписание, построенное данным алгоритмом, является корректным и оптимальным. |
Доказательство: |
Доказательство будем вести от противного. Первая скобка отрицательная: |
Псевдокод
while if