동적 프로그래밍이란 무엇입니까?

동적 프로그래밍은 컴퓨터 과학 분야를 언급 할 때 문제를 작은 문제 세트로 나누어 복잡한 문제를 해결하기위한 유사한 컴퓨터 알고리즘 그룹을 설명합니다. 1950 년대 Richard Bellman이 처음으로 만든 Dynamic Programming은 하위 문제 또는 최적의 하위 구조와 겹치는 문제와 함께 작동합니다. 역동적 인 프로그래밍이 어떻게 작동하는지 이해하기 위해이 두 용어의 개념을 이해하는 것이 가장 좋습니다.

겹치는 하위 문제는 복잡한 방정식을 묘사합니다. 복잡한 방정식은 작은 방정식 세트로 나뉘어 작은 방정식의 일부를 한 번 이상 재사용하여 답변에 도달합니다. 예를 들어, 숫자 세트를 사용하여 가능한 모든 결과를 계산하도록 지시 된 수학적 방정식은 다른 결과를 한 번만 계산하면서 동일한 결과를 여러 번 계산할 수 있습니다. 동적 프로그래밍은 결과를 계산 한 후 처음으로 결과를 저장하고 응답을나중에 다시 계산하는 대신 방정식. 긴 복잡한 프로세스와 방정식을 다룰 때 시간을 절약하고 훨씬 적은 단계를 사용하여 더 빠른 솔루션을 만듭니다.

최적의 하위 구조는 모든 하위 문제에 대한 최상의 답변을 찾은 다음 최고의 전체 답변을 만들어 솔루션을 만듭니다. 복잡한 문제를 작은 문제로 나눈 후 컴퓨터는 수학 시스템을 사용하여 각 문제에 대한 최상의 답변을 결정합니다. 작은 답변에서 원래 문제에 대한 답을 계산합니다. 이 과정에는 결함이 있습니다. 수학적으로 가장 잘 작동하는 솔루션을 제공하지만 문제의 유형과 실제 세계와 관련된 방법에 따라 실생활에서 최상의 솔루션이 될 수도 있고 아닐 수도 있습니다.

이러한 작업 중

동적 프로그래밍 알고리즘은 솔루션의 가장 짧은 경로를 찾으려고합니다. 중 하나를 취할 수 있습니다이 작업을 수행하기위한 두 가지 접근 방식. 하향식 접근법은 방정식을 작은 방정식으로 나누고 필요할 때 이러한 방정식에 대한 답을 재사용합니다. 상향식 접근법은 방정식을 분해 한 후 가장 작은 수학적 값을 해결 한 다음 가장 큰 수학적 값을 해결하려고합니다. 두 가지 접근 방식은 시간을 절약하지만 동적 프로그래밍은 원래 문제가 방정식을 해결하기 위해 어느 시점에서 재사용되는 작은 방정식으로 분해 될 수있는 경우에만 작동합니다.

.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?