Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методички / Лаб_3_Динамическое_программирование.docx
Скачиваний:
0
Добавлен:
28.06.2026
Размер:
30.27 Кб
Скачать

Задание 5. Возведение в степень

Секретарю Софии необходимо составить рабочее расписание начальника на предстоящую неделю. У неё имеется список из ста возможных мероприятий: встреч, совещаний, переговоров, презентаций и рабочих звонков. Для каждого мероприятия известны день недели, время начала, время окончания, а также краткое описание. Начальник может посещать мероприятия только в пределах рабочего времени с 8:00 до 18:00. Перерыва на обед у него нет. Одновременно участвовать в двух мероприятиях он не может.

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

Требуется реализовать жадный алгоритм выбора мероприятий и вывести итоговое расписание в удобном виде: день недели, время начала, время окончания, название мероприятия и его описание.

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

Примечание: Мероприятия лежат в файле works.txt.

Задание 6.1 Поездка до Владивостока.

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

stations = [120, 260, 410, 560, 730, 890, 1040, 1190, 1360, 1520, 1680, 1840, 2010, 2170, 2330, 2480, 2650, 2810, 2970, 3140, 3300, 3460, 3630, 3790, 3950, 4120, 4280, 4440, 4610, 4770, 4930, 5100, 5260, 5420, 5590, 5750, 5910, 6080, 6240, 6400, 6570, 6730, 6890, 7060, 7220, 7380, 7550, 7710, 7870, 8040, 8200, 8360, 8530, 8690, 8850, 9020, 9180, 9340, 9510, 9670, 9830, 10000, 10160, 10320]

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

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

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