слуговування вимог, щоб функція штрафу
В
була мінімальною. -Фактичний час завершення обслуговування вимоги k. br/>
. Опис алгоритму
. Ініціалізація даних
. Вибір початкової розстановки
. Визначення функції штрафу
. Запам'ятати поточну розстановку як оптимальну
. Поки існують нерозглянуті варіанти. Генерувати наступну розстановку. Обчислити функцію штрафу. Якщо поточна розстановка краще, запам'ятати розстановку як оптимальну
. Висновок даних
Алгоритм роботи програми:
Змінні:
c: вектор;
i, j: ціле;
Початок :: = n-1;
Поки (c [i]> = c [i +1]) i: = i-1;: = n;
Поки (c [j] <= c [i]) j: = j-1;: переставити (i, j);
i: = i +1; j: = n;
Поки (i
н.ц.
c: переставити (i, j);
i: = i +1;: = j-1;
к.ц.
Кінець.
3. Опис програми
Змінні і масиви, використовувані в програмі:
int n - кількість вимог;
int [] tk - тривалість обслуговування вимог;
int [] dk - директивний термін;
int [] c - пріоритет виконання;
int [] sigma - підготовка приладу до обслуговування;
int [] tek - поточний розклад;
int [] order - порядок обробки завдань;
int [] best - оптимальний розклад;
int f - значення функції штрафу;
int perest [] - масив перестановок;
Класи і методи використовувані в програмі:
Клас Perebor виконує генерацію перестановок за допомогою алгоритму повного перебору
В· Метод getPerms повертає отримані перестановки
В· Метод permut генерує перестановки
В· Метод vector міняє місцями вимоги згідно з алгоритмом
В· Метод inv - реверс отриманого вектора перестановок
В· Метод factorial обч...