6 에서 자주 사용 하 는 알고리즘 디자인: 궁 거 법, 분 치 법, 동태 계획, 욕심 법, 역 추적 법 과 분계선 법
1. 직접 옮 겨 다 니 기 (궁 거 법)
프로그램 실행 상 태 는 옮 겨 다 닐 수 있 습 니 다. 알고리즘 을 옮 겨 다 니 며 모든 상 태 를 실행 하면 가장 좋 은 실행 가능 한 해 를 찾 을 수 있 습 니 다.극소 규모 나 복잡 도 선형 성장 을 해결 하 는 데 적용 되 며 선형 규 모 는 크 지 않 은 상태 다.
2. 분 치 법
직접적 으로 해결 하기 어 려 운 큰 문 제 를 규모 가 작은 똑 같은 작은 문제 로 나 누 어 각각 격파 하고 나 누 어 해결 하도록 한다.
사상 전략:
한 규모 가 n 인 문제 에 대해 만약 에 이 문 제 를 쉽게 해결 할 수 있다 면 (예 를 들 어 규모 n 이 비교적 작다) 직접 해결 해 야 한다. 그렇지 않 으 면 이 를 k 개의 규모 가 비교적 작은 서브 문제 로 분해 한다. 이런 서브 문 제 는 서로 독립 되 고 원래 의 문제 형식 과 같 으 며 이런 서브 문 제 를 재 귀적 으로 해결 한 다음 에 각 서브 문제 의 해 제 를 원래 의 문제 로 합 친다.
특징:
1) 이 문제 의 규 모 를 어느 정도 축소 하면 쉽게 해결 할 수 있다 2) 이 문 제 는 몇 개의 규모 가 작은 똑 같은 문제 로 나 눌 수 있다. 즉, 이 문 제 는 가장 좋 은 서브 구조 성 을 가진다. 3) 이 문제 로 분 해 된 하위 문제 의 해 를 이용 하여 이 문제 의 해 로 합 칠 수 있다. 4) 이 문제 에서 분 해 된 각 하위 문 제 는 서로 독립 된 것 이다. 즉, 하위 문제 사이 에 공공 하위 문 제 를 포함 하지 않 는 다.
첫 번 째 특징 은 절대 다수의 문제 가 모두 만족 할 수 있다 는 것 이다. 왜냐하면 문제 의 계산 복잡성 은 일반적으로 문제 규모 의 증가 에 따라 증가 하기 때문이다. 두 번 째 특징 은 분 치 법 을 응용 하 는 전제 이 고 대부분 문제 가 만족 할 수 있다. 이 특징 은 재 귀 사상의 응용 을 나타 낸다. 세 번 째 특징 은 관건 이다. 분 치 법 을 이용 할 수 있 느 냐 없 느 냐 는 문제 가 세 번 째 특징 을 가지 고 있 느 냐 에 달 려 있다. 만약 에 첫 번 째 와 두 번 째 특징 을 가지 고 세 번 째 특징 을 가지 지 않 으 면 욕심 법 이나 동태 계획 법 을 사용 하 는 것 을 고려 할 수 있다. 제4 조 특징 은 분 치 법의 효율 과 관련된다. 만약 에 각 서브 문제 가 독립 적 이지 않 으 면 분 치 법 은 불필요 한 일 을 많이 하고 공공 서브 문 제 를 반복 적 으로 풀 어야 한다. 이때 분 치 법 을 사용 할 수 있 지만 보통 동태 계획 법 을 사용 하 는 것 이 좋다.
기본 단계:
1 분해: 원래 의 문 제 를 몇 개의 규모 가 작고 서로 독립 되 며 원래 의 문제 형식 과 같은 서브 문제 로 분해한다. 2. 해결: 만약 에 서브 문제 의 규모 가 작고 해결 되 기 쉬 우 면 직접 해결 하고 그렇지 않 으 면 각 서브 문 제 를 재 귀적 으로 해결한다. 3. 합병: 각 하위 문제 의 해 를 원래 문제 의 해 로 합 친다.
분 치 법 을 적용 하여 해답 을 구 하 는 고전적 인 문제:
매번 결정 은 현재 상태 에 의존 하고 곧 상태의 전 이 를 일으킨다.하나의 결정 서열 은 바로 변화 하 는 상태 에서 발생 한 것 이기 때문에 이런 다단 계 에서 결정 을 최적화 하여 문 제 를 해결 하 는 과정 을 동태 계획 이 라 고 한다.
사상 전략:
구 해 야 할 문 제 를 몇 개의 키 문제 (단계) 로 분해 하고 순서대로 서브 단계, 앞의 문제 의 해 를 구하 여 뒤의 문제 의 해결 에 유용 한 정 보 를 제공 했다.어떤 문 제 를 풀 때 여러 가지 가능 한 부분 해 를 열거 하고 결정 을 통 해 가장 좋 은 부분 해 를 달성 할 수 있 는 부분 해 를 보류 하 며 다른 부분 해 를 버린다.각 하위 문 제 를 순서대로 해결 하고, 마지막 하위 문 제 는 초기 문제 의 풀이 이다.
특징:
동적 계획 을 채택 하여 해답 을 구 할 수 있 는 문 제 는 일반적으로 세 가지 성질 을 가 져 야 한다. (1) 최 적 화 된 원리: 만약 에 문제 의 최 적 화 된 해석 에 포 함 된 서브 문제 의 해석 도 최 적 화 된 것 이 라면 이 문 제 는 최 적 화 된 서브 구 조 를 가지 고 있다 고 한다. 즉, 최 적 화 된 원 리 를 만족 시 키 는 것 이다. (2) 무 후 효성: 즉, 특정한 단계 의 상태 가 확정 되면 이 상태 이후 의 결정 에 영향 을 받 지 않 는 다.즉, 어떤 상태 이후 의 과정 은 이전의 상태 에 영향 을 주지 않 고 현재 상태 와 만 관련 이 있다 는 것 이다. (3) 중첩 자 문제 가 있다. 즉, 자 문제 간 에 독립 되 지 않 고 한 자 문 제 는 다음 단계 의 결정 에서 여러 번 사 용 될 수 있다.(이 성질 은 동적 기획 이 적용 되 는 필수 조건 이 아니 지만 이 성질 이 없 으 면 동적 기획 알고리즘 은 다른 알고리즘 에 비해 우세 하지 않다)
기본 단계:
(1) 최 적 화 된 성질 을 분석 하고 그 구조 적 특징 을 묘사한다. (2) 재 귀적 정의 가 가장 좋다. (3) 아래 에서 위로 또는 위 에서 아래로 의 기억 화 방식 (비망록 법) 으로 최 적 치 를 계산한다. (4) 최 우수 치 를 계산 할 때 얻 은 정보 에 따라 구조 문제 의 최 적 화 를 말한다.
, , , 。 , ( )。 。 , : →│ 1│→│ 2│→…→│ n│→
동적 계획 을 적용 하여 해답 을 구 하 는 고전적 인 문제:
문 제 를 풀 때 는 항상 현재 로 서 는 가장 좋 은 선택 을 한다.즉, 전체적인 최 적 화 를 고려 하지 않 고 그 가 한 것 은 특정한 의미 에서 국 지적 으로 만 최 적 화 된 것 이다.
사상 전략:
욕심 알고리즘 은 고정된 알고리즘 프레임 워 크 가 없고 알고리즘 디자인 의 관건 은 욕심 전략의 선택 이다.반드시 주의해 야 할 것 은 욕심 알고리즘 이 모든 문제 에 대해 전체적인 최 적 화 를 얻 을 수 있 는 것 이 아니 라 선택 한 욕심 전략 은 반드시 비효 율 성 을 가 져 야 한 다 는 것 이다. 즉, 특정한 상태 이후 의 과정 은 예전 의 상태 에 영향 을 주지 않 고 현재 상태 와 만 관련 이 있다.그래서 사용 하 는 욕심 전략 에 대해 서 는 그 만족 여 부 를 꼼꼼 히 분석 해 야 한다.
기본 단계:
1. 수학 모형 을 만들어 문 제 를 묘사한다. 2. 해답 을 구 하 는 문 제 를 몇 개의 하위 문제 로 나눈다. 3. 모든 문 제 를 해결 하고 서브 문제 의 부분 적 인 최 적 화 를 얻는다. 4. 하위 문제 의 해 를 부분 적 으로 가장 잘 풀 어 원래 문 제 를 푸 는 해 를 합성 한다.
탐욕 법 을 적용 하여 해답 을 구 하 는 고전적 인 문제:
역 추적 알고리즘 은 실제 적 으로 매 거 진 검색 시도 과정 과 유사 하 다. 주로 검색 시도 과정 에서 문제 의 해 를 찾 는 것 이다. 해결 조건 이 만족 하지 않 는 것 을 발견 하면 '역 추적' 으로 돌아 가 다른 경 로 를 시도 한다. 역 추적 법 은 우수한 검색 법 을 선택 하여 우수한 조건 에 따라 앞으로 검색 하여 목 표를 달성 하 는 것 이다.그러나 어떤 단 계 를 탐색 할 때 원래 의 선택 이 좋 지 않 거나 목 표를 달성 하지 못 한 것 을 발견 하면 한 걸음 물 러 서서 다시 선택한다. 이런 통 하지 않 으 면 되 돌아 가 는 기술 은 역 추적 법 이 고 역 추적 조건 을 만족 시 키 는 특정한 상태의 점 을 '역 추적 점' 이 라 고 한다. 많은 복잡 하고 규모 가 큰 문 제 는 모두 역 추적 법 을 사용 할 수 있 으 며 '통용 문제 풀이 방법' 이라는 미칭 이 있다.
사상 전략:
문 제 를 포함 하 는 모든 해 공간 트 리 에서 깊이 우선 검색 전략 에 따라 루트 노드 에서 공간 트 리 를 깊이 탐색 합 니 다.어떤 결점 을 탐색 할 때 먼저 이 결점 에 문제 의 해 가 포함 되 어 있 는 지 판단 하고 포함 되 어 있 으 면 이 결점 에서 출발 하여 계속 탐색 해 야 한다. 만약 에 이 결점 에 문제 의 해 가 포함 되 어 있 지 않 으 면 한 층 한 층 조상 결점 으로 거 슬러 올라간다.(사실 역 추적 법 은 암시 적 그림 의 깊이 에 대한 우선 검색 알고리즘 이다). 역 추적 법 으로 문제 의 모든 해 를 구 할 때 는 뿌리 로 거 슬러 올 라 가 야 하고, 뿌리 가 맺 힌 모든 실행 가능 한 자 수 는 모두 수색 되 어야 끝난다.
특징:
(1) 주어진 문제 에 대해 문제 의 해결 공간 을 확인한다. 먼저 문제 의 해결 공간 을 명 확 히 정의 하고 문제 의 해결 공간 은 적어도 문제 의 하 나 를 포함해 야 한다. (2) 노드 의 확장 검색 규칙 확인 (3) 깊이 우선 순위 로 공간 을 검색 하고 검색 과정 에서 가지치기 함수 로 잘못된 검색 을 피한다.(제약 함수 로 확장 노드 에서 제약 에 만족 하지 않 는 하위 트 리 를 자 르 고 한계 함수 로 가장 잘 풀 리 지 않 는 하위 트 리 를 자 릅 니 다. 이 두 가지 함 수 는 모두 가지치기 함수 라 고 합 니 다. 가지치기 함 수 를 사용 하면 잘못된 검색 을 피하 고 역 추적 법의 검색 효율 을 높 일 수 있 습 니 다.)
역 추적 법 을 적용 하여 해답 을 구 하 는 고전적 인 문제:
역 추적 법 과 유사 하 며 문제 풀이 공간 트 리 T 에서 문 제 를 검색 해 푸 는 알고리즘 이기 도 하 다.그러나 일반적인 상황 에서 분계 법 은 역 추적 법의 구 해 목표 와 다르다.역 추적 법의 구 해 목 표 는 T 에서 제약 조건 을 만족 시 키 는 모든 해 를 찾 는 것 이 고 분계 법의 구 해 목 표 는 제약 조건 을 만족 시 키 는 해 를 찾 거나 제약 조건 을 만족 시 키 는 해 에서 특정한 목표 함수 수 치 를 극 대 또는 극소 의 해 를 찾 는 것 이다. 즉, 특정한 의미 에서 가장 좋 은 해 를 찾 는 것 이다.
정책:
확장 노드 에서 선생님 은 모든 아들 노드 (분기) 가 된 다음 현재 활성 점 표 에서 다음 확장 점 을 선택 하 십시오.다음 확장 노드 를 효과적으로 선택 하여 검색 프로 세 스 를 가속 화하 기 위해 모든 활성 점 에서 함수 값 (한계) 을 계산 하고 계 산 된 함수 값 에 따라 현재 활성 점 표 에서 가장 유리 한 결점 을 확장 노드 로 선택 하여 검색 을 해 공간 트 리 에 가장 좋 은 지점 으로 추진 하여 가능 한 한 빨리 최 적 화 를 찾 을 수 있 도록 합 니 다.
소 급 법 과 의 차이:
역 추적 법: [방식 이 다 름] 깊이 우선 스 택 활성 점 을 검색 하 는 모든 실행 가능 한 하위 노드 가 옮 겨 다 닌 후에 야 스 택 에서 제약 조건 을 만족 시 키 는 모든 해 를 찾 을 수 있 습 니 다 [목표 가 다 름].
분기 한계 법: [방식 이 다 름] 범위 우선 또는 최소 소모 우선 검색 대기 열, 우선 대기 열 각 노드 는 한 번 만 활성 화 된 기회 로 제약 조건 을 만족 시 키 는 해 나 특정한 의미 에서 의 최 적 화 를 찾 을 수 있 습 니 다 [목표 가 다 름].
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Coq에서 증명된 이중 부정 주위의 증명이중 부정 가져오기 이중 부정 해소를 증명할 수 없지만 삼중 부정 해소를 증명할 수 있다 이중 부정 해소의 이중 부정 이중 부정 해소와 배중률 동치 고전 이론을 얻으려면 직관주의 이론에 어느 것을 넣어도 된다는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.