
- •Оглавление
- •1. Множества
- •1.1. Основные понятия
- •1.2. Способы задания множеств
- •1.3. Операции над множествами
- •Приоритеты операций над множествами
- •1.4. Свойства операций над множествами
- •1.5. Методы доказательства теоретико-множественных тождеств
- •1.5.1. Метод двух включений
- •1.5.2. Метод эквивалентных преобразований
- •1.5.3. Метод характеристических функций
- •1.5.4. Метод логических функций
- •1.5.5. Теоретико-множественный метод
- •1.6. Способы представления множества в памяти эвм
- •1.7. Алгоритмы реализации операций над множествами
- •Практическое занятие 1.1 Операции над множествами
- •Задания
- •Варианты заданий
- •Практическое занятие 1.2 Теоретико-множественные тождества
- •Задания
- •Варианты заданий
- •Контрольные вопросы
- •2. Комбинаторные объекты
- •2.1. Введение
- •2.2. Метод поиска с возвращением
- •2.3. Подмножества
- •2.4. Перестановки
- •2.5. Размещения
- •2.6. Размещения с повторениями
- •2.7. Сочетания
- •2.8. Перестановки с повторениями
- •2.9. Сочетания с повторениями
- •2.10. Упорядоченные разбиения множества
- •2.11. Разбиения множества
- •2.12. Использование алгоритмов порождения комбинаторных объектов при проектировании полнопереборных алгоритмов решения задач выбора
- •2.13. О неэффективности полнопереборных алгоритмов. Пример
- •Времена обработки деталей на станках a и b
- •Времена окончания обработки деталей на станках a и b
- •Времена окончания обработки деталей на станках a и b
- •Времена окончания обработки деталей на станках a и b
- •Практическое занятие 2.1 Алгоритмы порождения комбинаторных объектов
- •Задания
- •Практическое занятие 2.2 Разбиения множеств
- •Задания
- •Количество упорядоченных разбиений
- •Практическое занятие 2.3
- •Задачи выбора
- •Цель занятия: приобретение практических навыков в использовании алгоритмов порождения комбинаторных объектов при проектировании алгоритмов решения задач выбора.
- •Задания
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
Времена обработки деталей на станках a и b
Номер детали |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Время обработки на станке А |
20 |
16 |
8 |
6 |
14 |
14 |
20 |
Время обработки на станке B |
21 |
18 |
12 |
10 |
10 |
8 |
18 |
Таблица 2.4
Времена окончания обработки деталей на станках a и b
Шаг обработки |
Номер детали |
Станок А |
Станок В |
1 |
1 |
20 |
41 |
2 |
2 |
36 |
59 |
3 |
3 |
44 |
71 |
4 |
4 |
50 |
81 |
5 |
5 |
64 |
91 |
6 |
6 |
78 |
99 |
7 |
7 |
98 |
117 |
Если обрабатывать детали в последовательности (2,4,3,7,6,5,1), то время обработки всех деталей будет 119. Времена окончания обработки каждой детали на станках A и B для этой последовательности представлены в таблице 2.5.
Таблица 2.5
Времена окончания обработки деталей на станках a и b
Шаг обработки |
Номер детали |
Станок А |
Станок В |
1 |
2 |
16 |
34 |
2 |
4 |
22 |
44 |
3 |
3 |
30 |
56 |
4 |
7 |
50 |
74 |
5 |
6 |
64 |
82 |
6 |
5 |
78 |
92 |
7 |
1 |
98 |
119 |
Для определения последовательности обработки деталей, при которой время обработки всех деталей минимально, можно использовать полнопереборный алгоритм решения задачи выбора. Траекториями задачи будут все перестановки деталей, в данном случае 7!=5040, функционал траектории – время обработки всех деталей в последовательности, соответствующей перестановки (траектории). Для решения задачи необходимо перебрать все траектории (5040), для каждой траектории вычислить функционал (алгоритм на рис.2.29) и выбрать траекторию с минимальным значением функционала. Для определения последовательности обработки 16-ти деталей на ЭВМ потребуется несколько лет.
Можно предложить другой, более эффективный, алгоритм решения этой задачи:
1. i1:=1 – номер наименьшего (по номеру) свободного места в решении Р;
i2:=n – номер наибольшего (по номеру) свободного места в решении Р.
2. Выполнить п.3 n раз, n – количество деталей.
3. Найти минимум среди (a1,a2,…,an,b1,b2,…,bn),
где ai – время обработки i-ой детали на станке A;
bi – время обработки i-ой детали на станке B.
Если это ai, то Pi1:=i (поставить i-ую деталь на i1-ое место в решении) и i1:=i1+1, если же это bi, то Pi2:=i и i2:=i2+1. Элементы ai и bi далее не рассматривать.
Результат определения последовательности обработки 16-ти деталей этим алгоритмом на ЭВМ будет получен практически мгновенно.
По этому алгоритму для данных (табл.2.3) получим последовательность (4,3,2,1,7,5,6). Времена окончания обработки каждой детали на станках A и B для этой последовательности представлены в табл. 2.6.
Таблица 2.6