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

Задание 3. Расшифровка сигнала

Даны две символьные последовательности, полученные из двух перехваченных фрагментов зашифрованных сообщений:

a="QWJXNTZLPMRAVKSDHUEYCIFOGBQRWPELKJHGFDSAMNBVCXZQWERTYUIOPLKJHGFDSAZXCVBNMQWERTYUIOPASDFGHJKLZXCVBNMTRXQPLMNSHADOWPROTOCOLDELTASEVENXK91REDNODEALPHAOMEGASIGMATRACEVECTORCYBERLATTICEPHANTOMKEYMIRRORCHAINQUANTUMDRIFTHELIXSIGNALCRYPTONOVAARCGRIDZETAFRAMEDELTAFORGESTELLARCODEXIONPATHWAYNEXUSLOCKSEQUENCEPRIMEGLYPHAXIOMLAYEROBSIDIANLINKVORTEXCHANNELSPECTRALCOREMATRIXFUSIONTHREADKRYPTOSPHEREZLQMWNXPTRAKVSHDUEYFICOGBLRAPQMTNZXCVWQPOIUYTREWQLKJHGFDSAMNBVCXZQWERT"

b="MNBVCXZLKJHGFDSAPOIUYTREWQZXCVBNMASDFGHJKLQWERTYUIOPMNBVCXZLKJHGFDSAQWERTYUIOPZXCVBNMLKJHGFDSAPROTOCOLSHADOWDELTASEVENXK91REDNODEALPHAOMEGASIGMATRACEVECTORCYBERLATTICEPHANTOMKEYMIRRORCHAINQUANTUMDRIFTHELIXSIGNALCRYPTONOVAARCGRIDZETAFRAMEDELTAFORGESTELLARCODEXIONPATHWAYNEXUSLOCKSEQUENCEPRIMEGLYPHAXIOMLAYEROBSIDIANLINKVORTEXCHANNELSPECTRALCOREMATRIXFUSIONTHREADKRYPTOSPHEREPLKMIJNUHBYGVTFCRDXESZWAQOMNPLKJIHGFEDCBAVTREWQLZXCVBNMASDFGHJKQWERTYUIOPLKJHG"

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

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

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

Задание 4. Минимальная стоимость пути.

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

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

Примечание: для генерации матрицы используйте следующий код:

grid = [

[((i * 13 + j * 19 + 5) % 7) + 1 for j in range(128)]

for i in range(128)

]

for i in range(40, 90):

for j in range(50, 55):

grid[i][j] = 20

for i in range(70, 100):

for j in range(80, 120):

grid[i][j] = 15