2. Прикладные области
• Информационно-управляющие системы реального
времени (встроенные системы):
– авиационные,
– корабельные,
– автомобильные,
– роботы,
– автоматизированные системы управления технологическими
процессами.
• Центры обработки данных в том числе и
распределенные ЦОД.
– Предоставление вычислительных ресурсов пользователям
(например, «Ростелеком»).
– Использование ЦОД для обеспечения собственных
потребностей в вычислениях (например, «Сбербанк»).
3. Задачи комбинаторной оптимизации
Множество решений включает всевозможные:
• размещения исходно заданных объектов,
• упорядочивания исходно заданных объектов,
• разбиения на группы исходно заданных объектов.
Комбинаторная оптимизация включает в себя задачи
оптимизации, в которых множество допустимых
решений дискретно или может быть сведено к
дискретному множеству.
4. Этапы решения задачи
• Содержательная формулировка задачи
• Математическая формулировка задачи
• Анализ свойств задачи
• Выбор класса алгоритмов (или выбор
известного алгоритма)
• Разработка и реализация алгоритма
• Исследование свойств алгоритма
5. Задача о рюкзаке
(содержательная формулировка)
Дан рюкзак заданного объема и набор предметов.
Каждый предмет характеризуется:
• стоимостью
• и объемом.
Требуется упаковать рюкзак так, чтобы:
суммарная стоимость упакованных предметов была
максимальной;
суммарный объем упакованных предметов не превышал
объем рюкзака.
6. Задача о рюкзаке
(математическая формулировка)
Дано:
•b - объем рюкзака,
•{(ai , ci), I = 1,…,n}
n – число предметов,
ai и ci. - объем и стоимость предмета i.
Решение будем описывать вектором:
X = (x1,, x2, ….,xn)
Если предмет упакован в рюкзак, то xi=1, если нет xi=0.
8. Задача о рюкзаке
(анализ свойств задачи)
Если все коэффициенты ai целые числа и b целое число, то
задача является NP-трудной.
Если все коэффициенты ai вещественные, то задача может
быть решена жадным алгоритмом сложности O(n∙log n).
9. Задача о рюкзаке
(алгоритм решения непрерывной задачи)
Вычислим относительную стоимость всех товаров в расчете
на единицу объема:
Оптимальный жадный алгоритм для непрерывной задачи
заключается в следующем:
•сначала в рюкзак укладывается по максимуму товар с самой
дорогой относительной стоимостью,
•если товар закончился, а рюкзак не заполнен, то
укладывается следующий по относительной стоимости товар,
затем следующий, и так далее, пока не набран вес b .
ii ac
10. Задача коммивояжера
Задачу коммивояжёра можно представить в виде нахождения
маршрута на графе.
Вершины графа – города.
Ребра - пути сообщения между
этими городами.
Каждому ребру сопоставлен вес.
Задача заключается в отыскании кратчайшего маршрута, в
который входит по одному разу каждая вершина графа.
Длина маршрута - сумма весов входящих в него ребер.
11. Задача коммивояжера
Маршрут может быть описан циклической перестановкой
номеров городов:
где - номер города находящийся в i –ой позиции
перестановки.
Пространством поиска решений является множество
перестановок n городов, таких, что все разные
и
Данная задача принадлежит к классу NP-трудных задач.
),,,( 121 nn jjjjJ
ij
njjj ,, 21
11 njj
13. Алгоритмы имитации отжига
• Алгоритмы имитации отжига с некоторой вероятностью
допускают переход в состояние с более высоким значением
целевой функции:
• где T - некоторая температура, - изменение целевой
функции.
• В ходе работы алгоритма температура постепенно снижается.
0),exp(
0,1
)( 1
F
T
F
F
XXP kk
F
15. Генетический алгоритм Холланда
(SGA)
• Основан на использовании
механизмов естественной эволюции:
1. Изменчивость → операция мутации
2. Наследственность → операция
скрещивания
3. Естественный отбор → операция селекции
16. Основные понятия
• Популяция - это множество битовых строк.
• Каждая строка - одно из возможных
решений задачи.
• По строке может быть вычислена функция
выживаемости, которая характеризует
качество решения.
• Основные операции алгоритма: селекция,
скрещивание и мутация выполняются над
элементами популяции.
17. Схема ГА
1. Сгенерировать случайным образом начальную
популяцию.
2. Вычислить функцию выживаемости для каждой строки
популяции.
3. Выполнить операцию селекции.
4. Выполнить операцию скрещивания:
– Выбрать пары для скрещивания.
– Для каждой выбранной пары выполнить скрещивание, получить
двух потомков и произвести в популяции замену родителей на их
потомков.
5. Выполнить операцию мутации.
6. Если критерий останова не достигнут, перейти к п.2,
иначе завершить работу.
21. Критерий останова
• Процесс продолжается итерационно
• Варианты критерия останова:
– Выполнение заданного числа итераций
– Выполнение заданного числа итераций без улучшения
функции выживаемости
– Достижение заданного значения функции выживаемости
23. Муравьиные алгоритмы
(биологическая модель)
1. Изначально
вероятности выбора
маршрутов равны
2. Муравьи, выбравшие
кратчайший маршрут,
возвращаются
быстрее, количество
феромона на коротких
маршрутах больше
3. Вероятность выбора
кратчайшего маршрута
повышается
24. Муравьиные алгоритмы
(МА для решения задачи коммивояжера)
Общая схема итерации:
• «Создание» муравьев
• Построение маршрутов
муравьями
• Обновление
феромонного следа на
найденных маршрутах
25. Муравьиные алгоритмы
(построение маршрута)
- количество феромона на ребре (i,j),
τij(t) - значение локальной целевой функции на ребре
(i,j),
Lk – множество вершин, включенных в табу-список
муравья k,
a ≥ 0 и b ≥ 0 - параметры алгоритма, определяющие
важность феромонного следа и локальной целевой
функции.
)(tij
29. Муравьиные алгоритмы
(использование для построения расписаний)
Построение маршрутов
Построение расписаний
по маршрутам
Обновление
феромонного следа
Вычисление целевых
функции
останов?
нет
да
30. Конструктивные алгоритмы построения
расписаний
• Жадные алгоритмы
• Метод ветвей и границ
• Алгоритмы сочетающие жадные стратегии и
стратегии ограниченного перебора
523 76
2
4
t
1
2 3
4
t
1
2 3 5
4
t
1
6 7
31. Задача построения расписания выполнения
работ в одноприборном устройстве
• Шина может рассматриваться как
одноприборное устройство, обслуживающее
исходно заданный набор работ без
прерываний.
• Расписание выполнения работ, представляет
собой упорядоченное множество
• - исходно заданный набор работ
JjsH
HN
kj
,1
*
)},,{( jjj fstJ
32. Задача построения расписания выполнения
работ в одноприборном устройстве
• Множество корректных расписаний
определим набором ограничений:
*
'
H
))()(())()((),),((:
)(:
)()()(:
3
2
1
ljljljlj
jjj
jjjj
ffsffsssljHljg
tsfHjg
ffssHjg
33. Жадные алгоритмы
(построение расписания выполнения работ
в одноприборном устройстве)
• Для частной задачи:
• известен оптимальный жадный алгоритм
сложности O(n∙log n).
jjj
HH
sftj
H
:
max*'
34. Жадные алгоритмы
(GrA - алгоритм построения расписания для
одноприборного устройства)
1. Упорядочиваем работы по возрастанию fj.
Заявки с одинаковым значением fj
располагаем в произвольном порядке.
Сложность - O(n∙log n).
2. Размещаем в расписание работу j=1.
3. Ищем первую работу для которой si≤ fj ,
размещаем ее в расписание и j=i.
4. Шаги 2, 3 повторяем пока список не
исчерпан. Количество повторов - O(n).
40. Алгоритмы сочетающие жадные стратегии и
стратегии ограниченного перебора
Выбор очередной ВМ (k1)
Построение мн. допустимых серверов (А)
для размещения ВМ
А=0
Разместить ВМ
Выбор места
размещения (k2)
Вызов процедуры
ограниченного перебора
нет да
42. Направления работы
Разработка алгоритмов решения конкретных задач структурного
синтеза и планирования вычислений:
• информационно-управляющие системы реального времени,
• центры обработки данных.
Разработка новых подходов к построению алгоритмов и
модификаций известных классов алгоритмов. Примеры:
• генетический алгоритм с самообучением,
• метод построения алгоритмов сочетающих жадные стратегии и
ограниченный перебор.
Машинное обучение:
• алгоритмы построения и обучения нейросетей для встроенных систем;
• алгоритмы построения и обучения нейросетей для больших баз данных.