logo

역추적 알고리즘

역추적 알고리즘 최고의 솔루션을 찾기 위해 다양한 옵션을 탐색하는 데 도움이 되는 문제 해결 전략과 같습니다. 그들은 다양한 경로를 시도하여 작업하고, 하나가 작동하지 않으면 올바른 경로를 찾을 때까지 되돌아가서 다른 경로를 시도합니다. 이는 서로 다른 조각이 완벽하게 맞을 때까지 테스트하여 퍼즐을 푸는 것과 같습니다.

역추적

스윙이 있는 자바

내용의 테이블



역추적 알고리즘이란 무엇입니까?

역추적 시도를 통해 점진적으로 해결책을 찾는 문제 해결 알고리즘 기술입니다. 다양한 옵션 그리고 타락 만약 그들이 다음과 같은 결과를 낳는다면 막 다른 골목 .

미로에서 길을 찾거나 퍼즐을 푸는 것과 같이 문제를 해결하기 위해 다양한 가능성을 탐색해야 하는 상황에서 일반적으로 사용됩니다. 스도쿠 . 막다른 골목에 도달하면 알고리즘은 이전 결정 지점으로 되돌아가서 솔루션을 찾거나 모든 가능성이 소진될 때까지 다른 경로를 탐색합니다.

역추적 알고리즘은 어떻게 작동하나요?

역추적 알고리즘 문제에 대한 가능한 모든 해결책을 재귀적으로 탐색함으로써 작동합니다. 초기 솔루션을 선택하는 것부터 시작한 다음 해당 솔루션의 가능한 모든 확장을 탐색합니다. 확장이 솔루션으로 이어지는 경우 알고리즘은 해당 솔루션을 반환합니다. 확장이 솔루션으로 이어지지 않으면 알고리즘은 이전 솔루션으로 역추적하여 다른 확장을 시도합니다.

다음은 역추적 알고리즘의 작동 방식에 대한 일반적인 개요입니다.

끈으로 길게
  1. 초기 솔루션을 선택하십시오.
  2. 현재 솔루션의 가능한 모든 확장을 살펴보세요.
  3. 확장이 해결책으로 이어지는 경우 해당 해결책을 반환하십시오.
  4. 확장을 통해 해결되지 않으면 이전 해결 방법으로 돌아가서 다른 확장을 시도해 보세요.
  5. 가능한 모든 해결 방법을 찾을 때까지 2~4단계를 반복합니다.

역추적 알고리즘의 예

예: 미로에서 최단 경로 찾기

입력: 2차원 배열로 표현되는 미로, 여기서 0 열린 공간을 상징하며 1 벽을 나타냅니다.

연산:

  1. 출발점에서 시작하세요.
  2. 네 가지 가능한 방향(위, 아래, 왼쪽, 오른쪽) 각각에 대해 해당 방향으로 이동해 보세요.
  3. 해당 방향으로 이동하면 종료 지점에 도달하면 이동한 경로를 반환합니다.
  4. 해당 방향으로 움직여도 끝점에 도달하지 못하는 경우 이전 위치로 돌아가서 다른 방향을 시도해 보세요.
  5. 끝점에 도달하거나 가능한 모든 경로를 탐색할 때까지 2~4단계를 반복합니다.

역추적 알고리즘을 언제 사용해야 합니까?

역추적 알고리즘은 다음과 같은 특징이 있는 문제를 해결하는 데 가장 적합합니다.

  • 문제에 대한 가능한 해결책은 여러 가지가 있습니다.
  • 문제는 더 작은 하위 문제로 나눌 수 있습니다.
  • 하위 문제는 독립적으로 해결될 수 있습니다.

역추적 알고리즘의 응용

역추적 알고리즘은 다음을 포함하여 다양한 응용 프로그램에서 사용됩니다.

  • 퍼즐 풀기(예: 스도쿠, 크로스워드 퍼즐)
  • 미로에서 최단 경로 찾기
  • 일정 문제
  • 자원 할당 문제
  • 네트워크 최적화 문제

역추적 알고리즘의 기본:

  • 역추적과 Branch-N-Bound 기술의 차이점
  • 역추적과 재귀의 차이점은 무엇입니까?

역추적 알고리즘의 표준 문제:

  • 기사의 여행 문제
  • 미로 속의 쥐
  • N 퀸 문제 | 역추적-3
  • 부분합 문제
  • m 색칠 문제
  • 해밀턴 사이클
  • 스도쿠 | 역추적-7
  • 자석 퍼즐
  • 잘못된 괄호 제거
  • n 비트 그레이 코드를 생성하는 역추적 접근 방식
  • 주어진 문자열의 모든 순열을 인쇄하는 프로그램을 작성하세요.

역추적 알고리즘의 쉬운 문제:

  • 모든 하위 집합을 찾기 위해 역추적
  • 주어진 문자열이 합계 문자열인지 확인
  • 두 정점 사이의 가능한 모든 경로 수 계산
  • 주어진 집합의 모든 개별 하위 집합 찾기
  • 소스에서 k 길이를 초과하는 경로가 있는지 확인
  • 지정된 소스에서 대상까지의 모든 경로를 인쇄합니다.
  • 공백을 넣어 만들 수 있는 모든 문자열을 인쇄합니다.

역추적 알고리즘에 대한 중간 문제:

  • 줄다리기
  • 8 여왕 문제
  • 조합합
  • Knight의 투어 문제에 대한 Warnsdorff의 알고리즘
  • 미로의 모퉁이 셀에서 중간 셀까지의 경로 찾기
  • 최대 K개의 스왑을 수행하여 가능한 최대 개수 찾기
  • 여러 걸음이나 점프가 허용되는 미로 속의 쥐
  • O(n) 공간의 N 퀸

역추적 알고리즘의 어려운 문제:

  • 사전순의 거듭제곱 집합
  • 역추적을 사용한 단어 나누기 문제
  • 세트를 동일한 합을 갖는 K개의 부분집합으로 분할
  • 장애물이 있는 매트릭스에서 가능한 가장 긴 경로
  • 지뢰가 있는 경로에서 가장 짧은 안전 경로 찾기
  • 문자열의 모든 회문 파티션을 인쇄합니다.
  • N-Queen 문제의 모든 솔루션 인쇄
  • 가장 긴 공통 하위 시퀀스를 모두 사전순으로 인쇄합니다.

빠른 링크 :

  • 데이터 구조와 알고리즘 배우기 | DSA 튜토리얼
  • 역추적 알고리즘 인터뷰 질문 상위 20개
  • 역추적에 관한 '동영상'