Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на мм.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
522 Кб
Скачать
☆

Вопрос 19

Введение

Динамическое программирование (ДП) определяет оптимальное решение n-мерной задачи путем ее декомпозиции на n этапов, каждый из которых представляет собой подзадачу относительно одной переменной. Вычислительное преимущество такого подхода состоит в том, что мы занимаемся решением одномерных оптимизационных задач подзадач вместо большой n-мерной задачи.

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

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

  • задача о наибольшей общей подпоследовательности;

  • cвязь динамического программирования и регулярных выражений;

  • задача об оптимальной триангуляции;

  • задача о загрузке.

Вопрос 20

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

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

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

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

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

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

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

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

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