J2ni2Cmax — различия между версиями
Zemskovk (обсуждение | вклад) м (→Источники информации) |
м (rollbackEdits.php mass rollback) |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 9: | Строка 9: | ||
==Описание алгоритма== | ==Описание алгоритма== | ||
− | <tex>M_{1}</tex> - первый станок. <tex>M_{2}</tex> - второй станок. | + | <tex>M_{1}</tex> {{---}} первый станок. <tex>M_{2}</tex> {{---}} второй станок. |
Разобьем все работы на четыре множества: | Разобьем все работы на четыре множества: | ||
Строка 22: | Строка 22: | ||
* Расписание <tex>M_{2}</tex>: сначала <tex>I_{21}</tex> в соответсвии с расписанием <tex>S_{21}</tex>. Затем <tex>I_{2}</tex> в произвольном порядке. Затем <tex>I_{12}</tex> в соответсвии с <tex>S_{12}</tex>. | * Расписание <tex>M_{2}</tex>: сначала <tex>I_{21}</tex> в соответсвии с расписанием <tex>S_{21}</tex>. Затем <tex>I_{2}</tex> в произвольном порядке. Затем <tex>I_{12}</tex> в соответсвии с <tex>S_{12}</tex>. | ||
− | Примечание: во время выполнения <tex>I_{21}</tex> на <tex>M_{1}</tex> или <tex>I_{12}</tex> на <tex>M_{2}</tex> могут возникнуть простои | + | '''Примечание''': во время выполнения <tex>I_{21}</tex> на <tex>M_{1}</tex> или <tex>I_{12}</tex> на <tex>M_{2}</tex> могут возникнуть простои |
из-за того, что работа ещё не выполнилась на предыдущем станке. | из-за того, что работа ещё не выполнилась на предыдущем станке. | ||
Строка 35: | Строка 35: | ||
|proof= | |proof= | ||
Рассмотрим два случая: | Рассмотрим два случая: | ||
− | #<tex>T_{1}(I_{12}) + T_{1}(I_{1}) \geqslant T_{2}(I_{21}) </tex>. Тогда <tex>M_{1}</tex> работает без прерываний, т.к к моменту завершения выполнения <tex>I_{1}</tex> на <tex> M_{1} </tex> все работы <tex>I_{21}</tex> выполнены на <tex>M_{2}</tex>. | + | #<tex>T_{1}(I_{12}) + T_{1}(I_{1}) \geqslant T_{2}(I_{21}) </tex>.<br>Тогда <tex>M_{1}</tex> работает без прерываний, т.к к моменту завершения выполнения <tex>I_{1}</tex> на <tex> M_{1} </tex> все работы <tex>I_{21}</tex> выполнены на <tex>M_{2}</tex>. |
− | #<tex>T_{1}(I_{12}) + T_{1}(I_{1}) < T_{2}(I_{21}) </tex>. Тогда <tex>M_{2}</tex> работает без прерываний, т.к к моменту завершения выполнения <tex>I_{2}</tex> на <tex> M_{2} </tex> все работы <tex>I_{12}</tex> выполнены на <tex>M_{1}</tex> . | + | #<tex>T_{1}(I_{12}) + T_{1}(I_{1}) < T_{2}(I_{21}) </tex>.<br>Тогда <tex>M_{2}</tex> работает без прерываний, т.к к моменту завершения выполнения <tex>I_{2}</tex> на <tex> M_{2} </tex> все работы <tex>I_{12}</tex> выполнены на <tex>M_{1}</tex> . |
Строка 45: | Строка 45: | ||
|proof= | |proof= | ||
[[Файл: j2ni2cmax.jpg|400px|thumb|right| | [[Файл: j2ni2cmax.jpg|400px|thumb|right| | ||
− | Рис. 1 - Расположение работ. | + | Рис. 1 {{---}} Расположение работ. |
<br> | <br> | ||
В серой области могут быть прерывания. | В серой области могут быть прерывания. |
Текущая версия на 19:29, 4 сентября 2022
Задача: |
Рассмотрим задачу:
|
Содержание
Описание алгоритма
— первый станок. — второй станок.
Разобьем все работы на четыре множества:
- — множество всех работ, которые должны выполниться только на .
- — множество всех работ, которые должны выполниться только на .
- — множество всех работ, которые должны выполниться сначала на затем на .
- — множество всех работ, которые должны выполниться сначала на затем на .
Решим задачу для и для независимо. Получим расписание и .
Тогда оптимальное расписание для нашей задачи будет следующим:
- Расписание : сначала в соответсвии с расписанием . Затем в произвольном порядке. Затем в соответсвии с .
- Расписание : сначала в соответсвии с расписанием . Затем в произвольном порядке. Затем в соответсвии с .
Примечание: во время выполнения
на или на могут возникнуть простои из-за того, что работа ещё не выполнилась на предыдущем станке.Доказательство корректности алгоритма
— время выполнения множества работ на станке .
— множество всех работ, которые нужно сделать хотя бы раз на -м станке, то есть .
Лемма: |
Расписание, построенное данным алгоритмом, обладает следующим свойством: один из станков работает без простоев. |
Доказательство: |
Рассмотрим два случая:
|
Сложность алгоритма
Время работы алгоритма равно времени работы алгоритма , то есть .
Источники информации
- Peter Brucker. «Scheduling Algorithms» — «Springer», 2006 г. — 179 — 180 стр. — ISBN 978-3-540-69515-8