1pi=1wirisumwi(ci - pi -ri) — различия между версиями
Dimitrova (обсуждение | вклад) (→Доказательство корректности алгоритма) |
Dimitrova (обсуждение | вклад) (→Доказательство корректности алгоритма) |
||
| Строка 31: | Строка 31: | ||
Итого имеем, что ответ для <tex>S_{2}</tex> больше, чем ответ для <tex>S_{3}</tex>. Следовательно расписание <tex>S_2</tex> неоптимальное. Получили противоречие. Значит не существует такого момента времени, когда расписание <tex>S_{1}</tex> отличается от оптимального. Следовательно мы доказали, что оно оптимальное. | Итого имеем, что ответ для <tex>S_{2}</tex> больше, чем ответ для <tex>S_{3}</tex>. Следовательно расписание <tex>S_2</tex> неоптимальное. Получили противоречие. Значит не существует такого момента времени, когда расписание <tex>S_{1}</tex> отличается от оптимального. Следовательно мы доказали, что оно оптимальное. | ||
}} | }} | ||
| + | |||
| + | ==Псевдокод== | ||
Версия 21:54, 18 июня 2012
Содержание
Постановка задачи
Рассмотрим задачу:
- Дано работ и один станок.
- Для каждой работы известно её время появления и вес . Время выполнения всех работ равно .
Требуется выполнить все работы, чтобы значение было минимальным.
Описание алгоритма
Пусть — текущий момент времени.
Для каждого очередного значения , которое изменяется от до времени окончания последний работы, будем:
- Выбирать работу из множества невыполненных работ, у которой и значение максимально.
- Если мы смогли найти работу , то выполняем её в момент времени
- Увеличиваем на один.
Доказательство корректности алгоритма
| Теорема: |
Расписание, построенное данным алгоритмом, является корректным и оптимальным. |
| Доказательство: |
|
Доказательство будем вести от противного. Первая скобка отрицательная: . Вторая скобка тоже отрицательная из того, что в работа с весом выполняется раньше, значит её вес должен быть больше . |