별의 공부 블로그 🧑🏻‍💻

🗒️ Knapsack problem (2)

728x90
  1. 2021.06.25 분할 가능 배낭 문제(Fractional Knapsack Problem)

    분할 가능 배낭 문제(Fractional Knapsack Problem) 0-1 배낭 문제 에서 다음 조건 추가 주어진 물건(O)을 원하는 형태로 얼마든지 분할 할 수 있음. 각 물건의 일부분만을 배낭에 담을 수 있음. 실생활의 예) 상인이 기름, 곡물, 밀가루와 같은 품목을 다룰 경우 각 품목을 원하는 양만큼 덜어내서 배낭에 담을 수 있음. 일반 배낭 문제가 NP-완전 문제 인 것과 달리 분할 가능 문제 는 간단한 솔루션이 존재함. 각 물건을 단위 무게(W)당 가격(V)을 기준으로 정렬함. 그리디 방식 에 따라 단위 무게당 가격이 높은 순서 로 물건을 선택함. 분할 가능 배낭 문제의 예 배낭 용량(T)이 8인 경우에 선택할 수 있는 최선의 물건 조합 코드 #include #include #include..

  2. 2021.06.25 0-1 배낭 문제(0-1 Knapsack Problem)

    0-1 배낭 문제(0-1 Knapsack Problem) 조건 물건들의 집합 O = {O₁, O₂, ..., On}이 있을 경우 Wi : i번째 물건 Oi의 무게 Vi : i번째 물건의 가격(Value) 최대 무게를 T까지 견딜 수 있는 가방(배낭)이 1개 주어짐. 물건들을 가방에 담아야 함. 가방에 넣은 물건들의 가격(V) 합이 최대가 되도록 물건 선택 단, 물건들의 무게 합이 T를 넘지 않아야 함. 예 : 무역을 하는 상인이 매출의 일정 비율을 이익으로 가져갈 떄 이익을 극대화하려면 최대한 비싼 물건들을 가지고 다니면서 팔아야 하지만, 사용할 수 있는 운송 수단(또는 배낭)에는 최대 T 무게까지의 물건말 실을 수 있음. 각각의 물건에 대한 무게(W)와 가격(V)은 이미 알고 있음. 물건들을 어떻게 조..

728x90


📖 Contents 📖