Algorithmen-Entwurfsparadigmen und Metaheuristiken
알고리즘 설계 패러다임: Divide & Conquer, Backtracking, Dynamic Programming, Greedy, Metaheuristics
중요한 독일어·영어 용어는 유지하되 설명과 학습 동선은 한국어 중심으로 제공합니다.
이 챕터의 문항별 독립 학습 페이지
단원 페이지에는 개요와 학습 순서만 둡니다. 각 문항의 용어·비유·수식·단계별 풀이·실제 채점은 아래 독립 페이지에서 이어집니다.
II-15 · 2개 선택
알고리즘 설계 패러다임에 대한 설명 중 정확히 두 개를 고르시오.
독립 개념 강의와 실제 채점 열기 →II-16 · 2개 선택
알고리즘 설계 방법에 대한 설명 중 정확히 두 개를 고르시오.
독립 개념 강의와 실제 채점 열기 →II-17 · 2개 선택
알고리즘 설계 방법에 대한 설명 중 정확히 두 개를 고르시오.
독립 개념 강의와 실제 채점 열기 →
30초 핵심 요약
D&C는 부분문제를 재귀로 풀고 결합한다. DP는 겹치는 부분문제의 답을 저장해서 반복 계산을 없앤다. Greedy는 매 단계 local best를 고르지만 별도 증명 없이는 항상 최적이 아니다. Backtracking은 해 공간을 깊이우선으로 탐색하며 막히면 되돌린다. Metaheuristic은 임의의 최적화 문제 탐색을 이끄는 일반적 방법이며, Hill Climbing은 local optimum에 갇힐 수 있다.
동적 계획법(DP)의 실행시간은 상태 수 × 상태 전이 비용으로 계산한다. 탐욕법(Greedy)의 정확성은 지역 최선 선택(local choice)만으로 보장되지 않으며, 그 선택이 안전하다는 별도 증명이 필요하다.
강한 단어를 먼저 표시하라: nur, immer, jede, gleich groß, durchschnittlich, optimal, nicht überlappend.
시험 연결
II
2
\(\text{exactly}_{\text{two}}\)exactly(two)
- II-15
- II-16
- II-17
시험 복기 자료(Gedächtnisprotokoll)는 당시 문항 표현을 추정하는 근거일 뿐 정답지는 아니다. 각 선택지의 참·거짓은 2026년 여름학기 강의와 공식 연습 자료를 기준으로 독립적으로 판정한다.
정답 라벨을 외우는 것이 아니라, 문장 안의 'nur', 'immer', 'durchschnittlich', 'gleich große', 'nicht überlappend' 같은 단어가 어떤 전제나 반례를 요구하는지 즉시 판정한다.
먼저 알아야 할 용어와 전제
- 재귀(recursion)와 부분문제(Teilproblem)의 개념
- 최적화 문제(Optimierungsproblem)와 최적 부분 구조(optimal substructure)
- 그래프 알고리즘 Dijkstra, Kruskal, Prim의 기본 역할
- DP 표 D[i][j]의 state, boundary, transition 읽기
개념 강의
이 단원의 핵심은 '문제를 어떻게 쪼개거나 탐색하거나 고를 것인가'이다. D&C는 나눠서 재귀로 풀고 합치는 구조, DP는 같은 작은 문제를 또 풀지 않도록 기억하는 구조, Greedy는 지금 좋아 보이는 선택을 확정하는 구조, Backtracking은 선택을 해 보고 막히면 되돌리는 구조, Metaheuristic은 최적화 문제의 탐색을 일반적으로 안내하는 구조다.
분할 정복(Divide & Conquer)은 입력을 부분문제로 나누고 재귀적으로 푼 뒤 결과를 결합하며, 실행시간은 분할·재귀 호출·결합 전체의 점화식으로 결정된다. 백트래킹(Backtracking)은 해 공간을 깊이 우선 탐색처럼 따라가다가 현재 경로가 완전한 해가 될 수 없으면 결정을 취소한다. 동적 계획법(Dynamic Programming)은 겹치는 부분문제의 중간 결과를 저장하고 재사용하며 최적 부분 구조(optimal substructure)가 중요하다. 탐욕법(Greedy)은 현재 가장 유리해 보이는 후보를 고르지만 전역 최적성을 위해 별도의 탐욕 선택 성질이 필요하다. 메타휴리스틱(Metaheuristik)은 다양한 최적화 문제의 탐색을 이끄는 문제 독립적 상위 전략으로, 좋은 해를 찾을 수 있어도 보통 최적 보장은 없다.
- 재귀 트리(recursion tree)와 점화식(recurrence)
- 최적 부분 구조(optimal substructure)와 겹치는 부분문제(overlapping subproblems)의 구분
- 지역 최적해(local optimum)와 전역 최적해(global optimum)의 구분
- 결정문제(decision problem)와 최적화 문제(optimization problem)의 구분
분할 정복의 정확성은 부분문제의 해를 결합했을 때 전체 해가 되는 구조에 의존한다. 동적 계획법은 상태의 의미, 경계값, 전이, 계산 순서, 최종 답 칸, 시간·공간 복잡도를 함께 설명해야 한다. 탐욕법은 현재의 선택이 안전하다는 증명이나 강한 전제가 필요하다. 백트래킹은 visited, used, path 같은 상태를 분기 실패 뒤 정확히 되돌리는 불변식이 중요하다. 메타휴리스틱과 언덕 오르기(Hill Climbing)는 지역 최적해(local optimum)에 멈출 수 있다.
분할 정복은 \(T(n)=\)T(n)=부분문제 비용의 합+분할·결합 비용과 같은 점화식으로 분석한다. 백트래킹은 최악의 경우 지수 시간이 들 수 있으며 가지치기(pruning)가 실제 탐색량을 줄인다. 동적 계획법의 실행시간은 대개 상태 수와 상태당 전이 비용의 곱이다. 최소 편집 거리(Minimum Edit Distance)는 (m+1)(n+1)개 상태와 \(O(1)\)O(1) 전이를 사용해 \(\Theta(\text{mn})\)Θ(mn)이다. 탐욕법과 메타휴리스틱의 비용은 정렬, 반복 예산, 이웃 탐색 비용 같은 구현 전제에 따라 달라진다.
분할 정복의 부분문제가 항상 같은 크기일 필요는 없으며 QuickSort는 피벗에 따라 불균형하게 나뉠 수 있다. 분수 배낭(fractional knapsack)에 맞는 밀도 기반 탐욕 규칙이 0/1 배낭에서는 깨질 수 있다. Dijkstra는 탐욕 알고리즘이지만 음수 간선에서는 최소 거리 정점을 확정하는 선택이 안전하지 않다. 언덕 오르기는 지역 최적해, 평탄 구간(plateau), 이웃 선택에 취약하다. 백트래킹은 결정문제뿐 아니라 모든 후보를 검사하며 최선값을 갱신하는 최적화 문제에도 사용할 수 있다.
- immer
- nur
- jede
- keine
- durchschnittlich
- optimal
- lokal
- global
- gleich groß
- nicht überlappend
설계 패러다임·DP·Greedy 실험실
다음 상태를 먼저 예측한 뒤 한 단계 실행하여 확인하세요.
새 문장 판별 체크리스트
- 문장에 nur 또는 hängt nur가 있으면 다른 비용 항이 있는지 먼저 찾는다.
- immer 또는 stets가 보이면 가장 작은 반례를 만든다: coin change 1,3,4 또는 Greedy-TSP, local optimum.
- DP 문장에서는 overlapping subproblems와 optimal substructure를 구분한다. 'nicht überlappend'는 보통 D&C 쪽 표현이다.
- Greedy 문장에서는 local choice와 global optimum 보장을 분리한다. local choice만으로는 증명이 아니다.
- Backtracking 문장에서는 decision/search/optimization 모두 가능한지 보되, 최악 시간은 지수적일 수 있음을 기억한다.
- Metaheuristic 문장에서는 '좋은 해를 찾는다'와 '최적해를 항상 찾는다'를 절대 동일시하지 않는다.
능동 회상
- D&C 실행시간이 combine 단계에만 의존하지 않는 이유를 recurrence 형태로 말해 보라. — \(T(n)=\text{subproblem} \text{calls} + \text{divide}/\text{combine} \text{work}\)
T(n)=subproblem calls + divide/combine work형태다. 예를 들어 MergeSort는 \(T(n)=2T(n/2)+\Theta(n)\)T(n)=2T(n/2)+Θ(n)이므로 combine만 보면 전체 \(\Theta(n \log n)\)Θ(n log n)을 놓친다. - DP를 exam answer로 설명할 때 반드시 말해야 하는 여섯 요소는 무엇인가? — 상태의 의미(state meaning), 경계값·기저 사례(boundary/base case), 상태 전이(transition), 계산 순서, 최종 답이 있는 칸, 실행시간·공간복잡도다.
- Greedy가 실패할 수 있음을 보여 주는 최소 반례 하나를 말하라. — 동전 1,3,4로 6을 만들 때 greedy는 4+1+1을 고르지만 최적은 3+3이다. 또는 0/1 knapsack density greedy 반례.
- Backtracking이 Brute Force와 다른 핵심 행동은 무엇인가? — 현재 경로가 완전한 해가 될 수 없다고 판단하면 그 branch를 버리고 마지막 선택을 되돌린 뒤 다른 선택을 시도한다.
- Hill Climbing이 항상 최적해를 찾지 못하는 이유를 한 문장으로 말하라. — 주변 이웃 중 더 나은 해가 없으면 멈추므로 global optimum이 다른 지역에 있어도 local optimum에 갇힐 수 있다.
구두시험 질문
- Greedy와 DP의 차이를 'local choice'와 'overlapping subproblems'라는 단어를 써서 설명하라.
- II-15 C가 왜 false인지 DP와 Greedy의 전제 차이로 설명하라.
- Backtracking을 decision problem과 optimization problem에 적용할 때 각각 무엇을 반환하거나 유지하는가?
시험 직전 요약
분할 정복(D&C)은 나누고 재귀적으로 푼 뒤 결합한다. 동적 계획법(DP)은 겹치는 부분문제의 중간 결과를 저장한다. 탐욕법(Greedy)은 현재의 최선 선택에 더해 정확성 증명이 필요하다. 백트래킹(Backtracking)은 깊이 우선 탐색처럼 진행하며 상태 복원과 가지치기를 한다. 메타휴리스틱(Metaheuristic)은 최적화를 안내하는 일반 탐색 전략이지 최적해 보장이 아니다.
분할 정복은 점화식(recurrence)으로 분석한다. 동적 계획법은 상태 수 × 전이 비용으로 계산한다. 백트래킹은 지수 시간이 걸릴 수 있다. 탐욕법과 메타휴리스틱의 실행시간은 구현과 반복 횟수 제한에 따라 달라진다.
부분문제를 같은 크기로 나눈다고 정확성이 보장되는 것은 아니다. DP로 풀린다고 탐욕 선택도 최적이라는 뜻은 아니다. 언덕 오르기(Hill Climbing)는 지역 최적점에 멈출 수 있다. 확률분포 없이 '평균적으로(durchschnittlich)'라고만 하면 의심해야 한다.
각 선택지를 볼 때 정의, 전제조건, 보장 범위, 최소 반례를 차례로 확인한다.
출처
- 출처 파일: AuD Gedächtnisprotokoll SoSe 2025.md; 근거 페이지·구간: MC section II-15 to II-17; 뒷받침하는 내용: 근거 내용: SoSe 2025 복기 자료의 세 문항 문언·선택지·배점과 정확히 두 개 선택 규칙을 확인한다.; 검증 상태: verified; 자료의 역할: reconstructed_exam; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Vorlesung\07AdvancedDesigns.pdf; 근거 페이지·구간: p. 3; 뒷받침하는 내용: 근거 내용: 강의 개요는 분할 정복(Divide & Conquer)을 서로 겹치지 않는 부분문제의 재귀 풀이로, 백트래킹(Backtracking)을 해 공간 탐색으로, 동적 계획법(Dynamic Programming)을 겹치는 부분문제의 재사용으로 설명한다. 탐욕법(Greedy)은 국소적으로 최선인 선택을 쌓고, 메타휴리스틱(Metaheuristik)은 최적화 탐색을 안내하는 상위 전략이다.; 검증 상태: verified; 자료의 역할: current_lecture; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Vorlesung\07AdvancedDesigns.pdf; 근거 페이지·구간: pp. 56-69; 뒷받침하는 내용: 근거 내용: 최소 편집 거리(Minimum Edit Distance)를 접두사 상태 D[i][j]의 동적 계획법 표로 모델링하고 복사·치환·삭제·삽입 전이를 제시한다.; 검증 상태: verified; 자료의 역할: current_lecture; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Vorlesung\07AdvancedDesigns.pdf; 근거 페이지·구간: pp. 73-81; 뒷받침하는 내용: 근거 내용: 탐욕 원리(Greedy principle), 탐욕 알고리즘의 예인 Dijkstra·Kruskal, 국소 선택이 전역 최적해를 보장하지 않음을 보이는 Greedy-TSP 반례를 설명한다.; 검증 상태: verified; 자료의 역할: current_lecture; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Vorlesung\07AdvancedDesigns.pdf; 근거 페이지·구간: pp. 83-97; 뒷받침하는 내용: 근거 내용: 휴리스틱·메타휴리스틱의 정의와 국소 탐색, 언덕 오르기(Hill Climbing), 지역·전역 최적해, 담금질 기법(Simulated Annealing), 금기 탐색(Tabu Search), 진화 알고리즘을 설명한다.; 검증 상태: verified; 자료의 역할: current_lecture; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet03.pdf; 근거 페이지·구간: pp. 1-3; 뒷받침하는 내용: 근거 내용: 연습문제는 분할 정복(Divide-and-Conquer) 패러다임의 설명을 요구하고 MergeSort와 QuickSort의 재귀 분할·결합을 예시한다.; 검증 상태: verified; 자료의 역할: exercise_sheet; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet03-GrpSol.pdf; 근거 페이지·구간: pp. 1-4; 뒷받침하는 내용: 근거 내용: 공식 그룹 해설은 MergeSort가 왼쪽·오른쪽 부분을 재귀 정렬한 뒤 병합하고, QuickSort가 분할 후 두 부분을 재귀 정렬하는 과정을 보인다.; 검증 상태: verified; 자료의 역할: official_solution; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet12.pdf; 근거 페이지·구간: pp. 1-4; 뒷받침하는 내용: 근거 내용: 연습문제는 분할 정복·FFT, 백트래킹, 동적 계획법, 탐욕 알고리즘, WordSearch 백트래킹, 메모이제이션, 최소 편집 거리, 분수 배낭과 0/1 배낭의 차이를 다룬다.; 검증 상태: verified; 자료의 역할: exercise_sheet; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet12-Sol.pdf; 근거 페이지·구간: pp. 1-10; 뒷받침하는 내용: 근거 내용: 공식 해설은 백트래킹이 깊이 우선 탐색과 결정 되돌리기를 사용하고, 동적 계획법이 중간 결과를 저장해 중복 계산을 피하며, 탐욕법은 일반적인 최적 보장이 없고 밀도 기반 탐욕 규칙이 0/1 배낭에서 깨짐을 설명한다.; 검증 상태: verified; 자료의 역할: official_solution; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet13.pdf; 근거 페이지·구간: pp. 1-2; 뒷받침하는 내용: 근거 내용: 연습문제는 메타휴리스틱, 결정문제와 계산문제의 차이, P/NP, 환원(reduction), NP-난해성, NP-완전성을 소개한다.; 검증 상태: verified; 자료의 역할: exercise_sheet; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Übung\AuD26_Sheet13-Sol.pdf; 근거 페이지·구간: pp. 1-5; 뒷받침하는 내용: 근거 내용: 공식 해설은 결정문제가 0/1 답을 요구하고 환원이 문제의 난이도를 비교하는 도구임을 설명하며, 해밀턴 경로의 다항 시간 검증을 보인다.; 검증 상태: verified; 자료의 역할: official_solution; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text) - 출처 파일: Vorlesung\08NP.pdf; 근거 페이지·구간: pp. 40-47, 67-72; 뒷받침하는 내용: 근거 내용: 결정문제와 환원 용어를 보조하는 자료다. 백트래킹의 결정문제 적용을 설명할 때만 사용하며, 원래 설계 패러다임 선택지 판정의 직접 근거로 쓰지 않는다.; 검증 상태: verified; 자료의 역할: current_lecture; 추출 품질: \(\text{clean}_{\text{text}}\)
clean(text)
AI 후속 학습 프롬프트
마지막 생성: 2026-08-03 03:24