>  기사  >  일반적으로 사용되는 5가지 알고리즘

일반적으로 사용되는 5가지 알고리즘

Guanhui
Guanhui원래의
2020-05-12 15:46:284693검색

일반적으로 사용되는 5가지 알고리즘

일반적으로 사용되는 다섯 가지 알고리즘

1. 탐욕 알고리즘

탐욕 알고리즘은 문제의 국소 최적해를 얻을 수 있지만 동시에 전역 최적해를 얻을 수는 없습니다. , 그것이 좋은 것인지 나쁜 것인지는 탐욕스러운 전략의 선택에 달려 있다. 간단하고 국소적인 최적해를 얻을 수 있는 것이 특징입니다. 개를 때리는 막대기 방법과 마찬가지로 동일한 막대기 방법에 대해 홍기공과 육유자의 수준이 매우 다릅니다. 따라서 이 역시 탐욕스러운 알고리즘이며 서로 다른 탐욕 전략은 매우 다른 결과를 가져옵니다.

2. 동적 프로그래밍 알고리즘

최적화 문제에서 하위 문제와 최적 하위 구조가 반복되면 동적 프로그래밍이 등장할 때입니다. 동적 프로그래밍 알고리즘의 핵심은 반복되는 하위 문제의 결과를 캐시하는 메모리를 제공하여 재귀 프로세스에서 많은 반복 계산을 피하는 것입니다. 동적 프로그래밍 알고리즘의 어려움은 문제를 동적 프로그래밍 알고리즘으로 해결할 수 있는 문제로 변환하는 방법입니다. 반복되는 하위 문제의 수가 상대적으로 적으면 동적 프로그래밍의 효과가 떨어집니다. 문제에 반복되는 하위 문제가 많은 경우 동적 프로그래밍은 효율성 향상에 매우 좋지 않습니다. 무술과 마찬가지로, 상대가 강하면 강해지고, 상대가 강하면 약해진다.

3. 분할 정복 알고리즘

분할 정복 알고리즘의 논리는 더 간단합니다. 분할 정복 알고리즘은 큰 문제를 여러 하위 문제로 나눈 다음 하위 문제를 아래쪽으로, 기본 사례까지 계속해서 나누고, 기본 사례의 솔루션을 통해 단계적으로 위쪽으로 계속 나누는 것입니다. , 마침내 원래의 큰 문제를 해결합니다. 분할 정복 알고리즘은 재귀의 일반적인 응용 프로그램입니다.

4. 역추적 알고리즘

역추적 알고리즘은 깊이 우선 전략의 일반적인 응용 프로그램입니다. 이 경로가 다른 경우 이전

분리된 경로로 돌아가는 것입니다. 다른 경로를 선택하세요. 모든 경로를 통과할 때까지 계속 반복하세요. Eight Queens 문제는 역추적 알고리즘의 고전적인 문제이고 또 다른 고전적인 응용 시나리오는 미로 문제입니다.

5. 분기 및 경계 알고리즘

역추적 알고리즘은 깊이 우선이므로 분기 및 경계 방법은 너비 우선의 전형적인 예입니다. 일반적으로 역추적 방법은 문제에 대한 모든 솔루션을 얻기 위해 전체 솔루션 공간을 탐색하는 반면, 분기 및 바인딩 방법은 하나의 솔루션을 얻는 것(일반적으로 최적의 솔루션을 얻기 위해)입니다.

추천 튜토리얼: "PHP 튜토리얼"

위 내용은 일반적으로 사용되는 5가지 알고리즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.