C
은 {c1,c2,c3....cn}
컨테이너 집합을 말하며, 각 컨테이너에는 유한 집합의 정수 {i1,i2,i3...im}
이 포함되어 있다고 가정합니다. 또한 정수가 둘 이상의 컨테이너에 존재할 수 있다고 가정합니다. 유한 정수 집합 S
{s1,s2,s3...sz}
이 주어진 경우 S
에 모든 정수를 포함하는 C
의 가장 작은 하위 집합의 크기를 찾습니다.주어진 모든 요소를 포함하는 컨테이너의 최소 수
수백 개의 정수가 포함 된 수천 개의 컨테이너가있을 수 있습니다. 그러므로이 문제를 해결하려면 무차별 한 힘이 느리다.
나는 Greedy 알고리즘을 사용하여 문제를 해결하려고했습니다. 즉, S
집합의 정수가 가장 큰 컨테이너를 선택할 때마다 실패했지만 실패했습니다!
누구든지이 문제에 대한 빠른 알고리즘을 제안 할 수 있습니까?
알고리즘은 생물 정보학과 어떤 관련이 있습니까? –
이것은 잘 알려진 [표지 문제] (http://en.wikipedia.org/wiki/Set_cover_problem)입니다. 이것은 NP 완성이므로 효율적인 알고리즘은 알려져 있지 않습니다. 욕심 많은 알고리즘은 수행 할 수있을뿐만 아니라 수행합니다 (P = NP가 아니면). –
나는 모든 주어진 유전자를 포함하는 GO 용어의 가장 작은 창 크기를 찾으려고 노력하고있다 .... 단순화를 위해 정수와 컨테이너를 사용했다. –