좋아 빠른 개요배낭 문제와?
나는 배낭 문제
http://en.wikipedia.org/wiki/Knapsack_problem
으로 보았다 그리고 난 그것이 내가 내 프로젝트를 위해 필요하지만, 내 프로젝트의 복잡한 부분은 내가 여러 필요가 어떻게 될지 알고 메인 자루 안의 자루.
모든 "가방"을 들고있는 대형 배낭에는 "가방"이 x 개 밖에 없습니다 (예를 들어 9 개라고 말하면됩니다). 각 가방은 다른 값을가집니다.
- 무게
- 비용
- 크기
- 용량
등, 그 모든 값이 정수 숫자이다. 0-100을 가정합니다.
내부 가방에도 유형이 지정되며 프로그램 입력에 동일한 유형의 여러 항목이 주어 지지만 외부 가방에는 해당 유형 중 하나만있을 수 있습니다.
주머니에 넣을 수있는 최대 무게를 지정해야하며 작은 가방의 다른 모든 속성은 가중치별로 그룹화해야합니다.
예
외부 가방 :
- 보유 수 (9 개) 작은 가방
- 무게 이하 98 [부여 또는 5를 양쪽 걸릴]
- 각 중 하나를 보유해야합니다 유형은 한 번에 각 유형 중 하나만 보유 할 수 있습니다.
내부 가방 :
- 비용, 100 %
- 크기에 가중, 67 %
- 용량에 가중, 44 %
프로그램에 가중 여러 가방의 입력을 받게됩니다 다음 라에 들어가기 위해 작은 가방의 조합을 작동해야합니다 rger bag을 사용하면 입력에 따라 여러 가지 솔루션이 제공되며 프로그램에서 가장 적합한 솔루션을 출력합니다.
나는이 접근법에 대한 가장 좋은 방법이 무엇이라고 생각하는지 궁금합니다.
Java 또는 C#으로 프로그래밍합니다. PHP로 프로그래밍하고 싶지만 알고리즘이 웹 서버에서 매우 비효율적 일 것입니다.당신이
이-Zack
P#에 그래서 당신은 정말 내부 가방을 채우는 걱정하지 않는다? 가방 (바깥 쪽 주머니)에 같은 종류의 여러 항목 (안쪽 주머니)을 넣을 수 없다는 추가 조건으로 항목 (안쪽 주머니)을 가방 (바깥 쪽 주머니)에 넣기 만하면됩니다. 권리? –
모든 내부 가방을 외부 가방에 넣거나 하나의 외부 가방 만 채우십시오 - 그래서 빈 포장 또는 배낭입니까? –
예, 그리고 바깥 쪽 주머니가 너무 많은 무게만을 포함 할 수 있다는 제약 때문에 저는 이런 유형의 문제를 더 깊이 생각하고 있었고 그것은 상자 포장 또는 배낭 중 하나 또는 둘 모두로 보입니다. 미래에는 내부 가방을 채울 필요가있을 수 있지만 먼저이 문제에 집중하고 싶습니다. –