형식 문제
0/1 배낭 문제
용량 제약 아래 가치를 최대화하도록 항목을 고르기.
다른 이름: Knapsack Problem · 0/1 Knapsack · 배낭 문제
마지막 검증: 2026-05-27
정의
각 항목이 무게 와 가치 를 가질 때, 를 지키며 를 최대화하도록 를 선택한다.
예시
용량 인 배낭과 네 개의 항목이 있다고 하자.
| 항목 | 무게 | 가치 |
|---|---|---|
| 1 | 5 | 10 |
| 2 | 4 | 7 |
| 3 | 6 | 9 |
| 4 | 3 | 4 |
무게 합이 10을 넘지 않는 부분집합 중 가치 합이 가장 큰 것은 항목 로, 무게 , 가치 이다. 흥미롭게도 항목 은 무게 으로 용량을 꽉 채우지만 가치는 에 그친다 — 용량을 더 채운다고 해가 더 좋아지는 것은 아니다.
왜 여기 있나
배낭 문제는 절단·적재와 두 가지로 얽힌다: (1) 동적 계획법이라는 공통 방법, (2) 1D 절단 재고의 열 생성에서 가격 산정 부분문제가 곧 배낭 문제다.
관련 노드
아래 깊이 1 그래프를 참고하라.
주장 & 증거
모든 관계는 등가 수준과 증거 등급을 가진 하나의 주장입니다. 증거 정책을 참고하세요.
| 관계 | 주장 | 등가 | 증거 | 출처 |
|---|---|---|---|---|
| 사용 방법동적 계획법 (Dynamic Programming) | 0/1 배낭 문제는 의사다항(pseudo-polynomial) 동적 계획법으로 정확히 풀 수 있다. | — | A |
|
| 직접 벤치마크OR-Library | OR-Library는 배낭 계열을 포함한 표준 테스트 인스턴스를 배포한다. | — | B |
|
| 방법 공유1D 절단 재고 | 절단 재고의 열 생성에서 가격 산정 부분문제가 (정수) 배낭 문제로 나타나, 두 문제는 방법론적으로 맞물린다. | E3 | A |
|
| 사용 방법분기 한정 (Branch and Bound) | 0/1 배낭 문제는 동적 계획법 외에 분기 한정으로도 정확히 풀 수 있다. | — | A |
|
| 사용 방법정수 선형 계획법 (Integer Linear Programming) | 0/1 배낭 문제는 이진 변수와 단일 용량 제약을 갖는 0/1 정수 선형 계획으로 직접 정식화된다. | — | A |
|
| 오픈소스 구현Google OR-Tools | Google OR-Tools는 0/1 배낭을 푸는 KnapsackSolver를 오픈소스로 제공한다. | — | C |
이웃 그래프
직접 연결된 그래프 이웃입니다. 깊이를 전환해 확장하세요.
노드를 클릭하면 열리고 · 엣지를 클릭하면 주장이 보입니다
함께 보기
직접 연결되어 있지 않지만, 공유하는 연결과 설명으로 보아 개념적으로 가까운 노드입니다.