Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AaSD.docx
Скачиваний:
2
Добавлен:
06.02.2024
Размер:
823.97 Кб
Скачать
  1. Жадные алгоритмы. Задача о выборе заявок. Свойства задач, для которых применимы жадные алгоритмы.

Определение: Жадные алгоритмы (Greedy algorithms) - это алгоритмический подход, при котором на каждом шаге выбирается локально оптимальное решение в надежде, что это приведет к глобально оптимальному решению. Жадные алгоритмы принимают решения на основе текущего состояния, без пересмотра принятых решений в будущем.

Задача о выборе заявок (Task Scheduling Problem):Пусть даны n заявок на проведение занятий в одной и той же аудитории. Два различных занятия не могут перекрываться по времени. В каждой заявке указаны начало и конец занятия. Разные заявки могут пересекаться, и тогда можно удовлетворить только одну из них. Необходимо набрать максимальное количество совместимых друг с другом заявок.

Пример алгоритма решения задачи о выборе заявок с использованием жадного подхода:

1. Сортируем все заявки по времени окончания по возрастанию.

2. Инициализируем пустое множество выбранных заявок.

3. Для каждой заявки в отсортированном списке:

- Если текущая заявка не пересекается с ранее выбранными заявками, добавляем ее в множество выбранных заявок.

4. Возвращаем множество выбранных заявок.

Свойства задач, для которых применимы жадные алгоритмы:

- Жадный выбор локально оптимальных решений должен привести к глобально оптимальному решению.

- Задача должна иметь определенную структуру, в которой локально оптимальное решение можно объединить, чтобы получить глобально оптимальное решение.

Однако, не все задачи могут быть решены с помощью жадных алгоритмов, и иногда жадный выбор может привести к неправильному или неоптимальному решению. Поэтому важно тщательно анализировать свойства задачи и проверять применимость жадного подхода перед его использованием.

  1. Эвристические методы решения задач. Эвристика жадного выбора и локального поиска. Примеры. Задача о покрытии, задача о камнях. Метаэвристики

Определение: Эвристические методы решения задач - это приближенные алгоритмы, которые позволяют находить решения задач с достаточно высокой эффективностью, но без гарантии оптимальности. Эвристики основаны на использовании опыта, эмпирических наблюдений и простых правил, чтобы принимать быстрые решения.

1. Эвристика жадного выбора: Эта эвристика основана на принципе выбора локально оптимального решения на каждом шаге в надежде достичь глобально оптимального решения. Примеры:

- Задача о покрытии (Set Cover Problem): Формулировка: Задано конечное множество X и семейство F его подмножеств. Каждый элемент X принадлежит хотя бы одному из подмножеств семейства F. Требуется найти минимальное число подмножеств из F, которые все вместе покрывают множество X. Матмодель: найти покрытие , для которого X = , где

- Задача о камнях: Формулировка: Имеется n камней с весами . Необходимо разложить их на m куч так, чтобы вес самой тяжёлый кучи был минимальным. Предлагаемый алгоритм: На каждом шаге будем брать самый тяжёлый камень из оставшихся и класть его в самую лёгкую кучу.

2. Локальный поиск: Этот метод начинает с некоторого начального решения и осуществляет локальные изменения в надежде на улучшение решения. Примеры:

- Задача о покрытии: Эвристика локального поиска может использоваться для улучшения решения, выбирая лучшие подмножества и осуществляя локальные изменения для устранения ненужных элементов.

Определение: Метаэвристики - это общие методы для решения сложных оптимизационных задач, которые позволяют эффективно искать решения в больших пространствах поиска. Они обычно комбинируют различные эвристические подходы. Примеры метаэвристик включают генетические алгоритмы, муравьиные алгоритмы, отжиг и рой частиц.

Важно отметить, что эвристические методы и метаэвристики обеспечивают приближенные решения, которые могут быть неоптимальными, но в то же время позволяют решать задачи с большими объемами данных и высокой сложностью, для которых полный перебор или оптимальные алгоритмы неэффективны.