나는 각각 (상대적으로 작은) 상수 C로 경계가 정해진 N 개의 양의 정수 집합을 가지고 있습니다.이 작은 수의 부분 집합을 (또는 값이 K와 같습니다.임계 값 이상의 최소 부분 집합 합을 찾기위한 선형 알고리즘
관련된 숫자는 크게는 아니지만 (< 100) 최악의 경우에도 성능이 좋아야합니다. 필자는 Pisinger의 동적 프로그래밍 알고리즘을 작업에 적용 할 수 있을지도 모른다고 생각했습니다. 그것은 오 (노스 캐롤라이나) 시간에 실행되며, 나는 양수의 한정된 요구 사항을 충족하는 일이.
[편집] : 숫자는 정렬되지 않으며 중복 될 수 있습니다.
그러나 알고리즘 자체를 잘 이해하지 못합니다. 사실, 그것이 여전히 기반으로 가정은 확실하지 않다 ...
- 내 필요에 맞게이 알고리즘을 적용 할 수 있습니까?
또는 거기에 비슷한 선형 알고리즘을 사용할 수 있습니까?
의사 코드 또는 자세한 설명을 제공 할 사람이 있습니까?
감사합니다. NP 집 - 합계 코드
링크는 내가 조사되었다 Fast solution to Subset sum algorithm by Pisinger
(사과를이 저조한/포맷/등 난 ... 아직 StackOverflow의 새로운이야 말로 경우.)
은 이것이 배낭 문제의 변형이 아닙니까? – phoeagon
예. 특히, Subset-Sum (자체는 배낭의 특별한 경우)의 변형입니다. – Athena
나중에 참조 할 수 있도록 중복이있는 경우 "집합"이라는 용어를 사용하지 마십시오. "collection"은 더 나은 용어입니다. –