КОМПЬЮТЕРНЫЕ И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
(COMPUTER & INFORMATION TECHNOLOGIES)
УДК 004.42
Акмырадова М.Б.
преподаватель кафедры «Прикладная математика и информатика» Туркменский государственный университет имени Махтумкули
(Туркменистан, г. Ашгабад)
Назарова С.Н.
преподаватель кафедры «Прикладная математика и информатика» Туркменский государственный университет имени Махтумкули
(Туркменистан, г. Ашгабад)
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ В РЕШЕНИИ ПРАКТИЧЕСКИХ ЗАДАЧ
Аннотация: в данной статье рассматриваются особенности развития обучения программирования и их влияние на решение практических задач. Проведен перекрестный и сравнительный анализ влияния выбора направления развития программирование. Даны рекомендации по внедрению разработок в развитие обучения интеллектуальных процессов в программировании.
Ключевые слова: анализ, метод, исследование, психология, программирование.
Динамическое программирование — это метод, который разбивает проблемы на подзадачи и сохраняет результат для будущих целей, поэтому нам не нужно снова вычислять результат. Подзадачи оптимизируются для оптимизации общего решения, известного как свойство оптимальной подструктуры. В основном динамическое программирование используется для решения задач оптимизации. Здесь задачи оптимизации означают, что мы пытаемся найти минимальное или максимальное решение проблемы.
579
Динамическое программирование гарантирует поиск оптимального решения задачи, если такое решение существует.
Определение динамического программирования гласит, что это метод решения сложной задачи путем разбиения сначала на набор более простых подзадач, решения каждой подзадачи только один раз, а затем сохранения их решений, чтобы избежать повторяющихся вычислений.
Давайте разберем этот подход на примере.
Рассмотрим пример ряда Фибоначчи. Следующий ряд является рядом Фибоначчи:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ,...
Числа в приведенном выше ряду рассчитаны не случайно. Математически мы могли бы записать каждый из терминов, используя следующую формулу:
Б(п) = Б(п-1) + Р(п-2),
С базовыми значениями F (0) = 0 и F (1) = 1. Чтобы вычислить другие числа, мы следуем приведенному выше соотношению. Например, F(2) — это сумма А(0) и Д(1), равная 1.
Как мы можем вычислить F(20)?
Член F(20) будет рассчитываться с использованием п-й формулы ряда Фибоначчи. В подходе динамического программирования мы пытаемся разделить проблему на похожие подзадачи. Мы следуем этому подходу в приведенном выше случае, когда F (20) в аналогичные подзадачи, т. е. F (19) и F (18). Если мы повторим определение динамического программирования, то оно говорит, что подобная подзадача не должна вычисляться более одного раза. Тем не менее, в приведенном выше случае подзадача вычисляется дважды. В приведенном выше примере F(18) вычисляется два раза; аналогично F(17) также вычисляется дважды. Тем не менее, этот метод весьма полезен, поскольку он решает аналогичные подзадачи, но мы должны быть осторожны при сохранении результатов, потому что мы не особенно заботимся о сохранении результата,
который мы вычислили один раз, тогда это может привести к пустой трате ресурсов.
В приведенном выше примере, если мы вычисляем F(18) в правом поддереве, это приводит к колоссальному использованию ресурсов и снижению общей производительности.
Решение вышеуказанной проблемы состоит в том, чтобы сохранить вычисленные результаты в массиве. Сначала мы вычисляем F(16) и F(17) и сохраняем их значения в массиве. F(18) вычисляется путем суммирования значений F(17) и F(16), которые уже сохранены в массиве. Вычисленное значение F(18) сохраняется в массиве. Значение F(19) вычисляется с использованием суммы F(18) и F(17), и их значения уже сохранены в массиве. Вычисленное значение F(19) сохраняется в массиве. Значение F(20) может быть вычислено путем сложения значений F(19) и F(18), а значения F(19) и F(18) хранятся в массиве. Окончательное вычисленное значение F(20) сохраняется в массиве.
Ниже приведены шаги, которым следует динамическое программирование:
Он разбивает сложную проблему на более простые подзадачи.
Он находит оптимальное решение этих подзадач.
В нем хранятся результаты подзадач (запоминание). Процесс сохранения результатов подзадач известен как запоминание.
Он повторно использует их, так что одна и та же подзадача вычисляется более одного раза.
Наконец, вычислите результат сложной задачи.
Вышеуказанные пять шагов являются основными шагами динамического программирования. Применяется динамическое программирование, обладающее такими свойствами, как:
Те проблемы, которые имеют перекрывающиеся подзадачи и оптимальные подструктуры. Здесь оптимальная подструктура означает, что решение задач оптимизации может быть получено путем простого объединения оптимального решения всех подзадач.
В случае динамического программирования сложность памяти будет увеличиваться, так как мы сохраняем промежуточные результаты, но сложность времени будет уменьшаться.
СПИСОК ЛИТЕРАТУРЫ:
1. Бессмертный, И. А. Системы искусственного интеллекта : учеб. пособие для СПО / И. А. Бессмертный. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2018. — 130 с.
2. Гниденко, И. Г. Технология разработки программного обеспечения : учеб. пособие для СПО / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. — М. : Издательство Юрайт, 2017. — 235 с.
3. Гордеев, С. И. Организация баз данных в 2 ч. Часть 2 : учебник для вузов / С. И. Гордеев, В. Н. Волошина. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2019. — 501 с.
4. Жмудь, В. А. Моделирование замкнутых систем автоматического управления : учеб. пособие для академического бакалавриата / В. А. Жмудь. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2019. — 128 с.
Akmyradova M.B.
Lecturer at the Department of Applied Mathematics and Informatics Turkmen State University named after Magtymguly (Turkmenistan, Ashgabat)
Nazarova S.N.
Lecturer at the Department of Applied Mathematics and Informatics Turkmen State University named after Magtymguly (Turkmenistan, Ashgabat)
DYNAMIC PROGRAMMING IN SOLVING PRACTICAL PROBLEMS
Abstract: this article discusses the features of the development ofprogramming training and their influence on the solution of practical problems. A cross and comparative analysis of the influence of the choice of the direction of development of programming was carried out. Recommendations are given for the implementation of developments in the development of teaching intellectual processes in programming.
Keywords: analysis, method, research, psychology, programming.