2009-03-04 4 views
2

이기종 컬렉션 사이에 일치 금액. 예를 들어 완벽하게 일치하거나 매우 다를 수 있습니다 (클래스가 다르더라도 여전히 동일한 정보를 나타내고 동일한 점수를 얻을 수 있습니다.)내가 문제가 생겼어요

이제 두 개의 컬렉션 중 하나 인 A와 B 중 하나 , As와 Bs를 쌍으로 묶어 가장 좋은 방법으로 컬렉션이 다른 것보다 더 큰 고아를 남기거나 또는 As 또는 Bs 중 일부가 너무 다르기 때문에 일치하는 가장 좋은 방법은 무엇입니까? ?

첫 번째 시도는 각 셀이 일치 항목의 점수 (0 = 완전 함, 더 큰 숫자가 더 나쁨)와 가장 낮은 누적 된 점수를 찾는 모든 경로를 반복하는 2 차원 배열을 만드는 것입니다. 이것은 효과가 있고 결과는 완벽하지만 숨 막힐 정도로 느립니다.

효율적인 알고리즘에 대한 아이디어가 있습니까?

당신이 궁금해하는 경우, 내 A 클래스는 오디오 믹서 입력 채널을 나타내며 B는 동일하게 지속되는 상태 (장면이라고 함)를 나타냅니다. 내가 해결하려고하는 문제는 장면 (B)가 기존 채널 중 하나 (A)와 약간 또는 훨씬 다른 기존 믹서로 장면을 가져 오는 방법입니다. 일치시키기 위해 약간 수정할 수 있다면 그냥 채널 (A)을 추가하고 싶지 않습니다. 예를 들어, 나는 B와 완벽하게 일치하기 위하여는 A에 효과 삽입을 추가하고 마이크

답변

2

다른 A.

을 추가 할 필요 피할 수 있습니다 이것은 양자 일치 문제 같은데 아마 해결 될 수있다 에지에 가중치를 부여하기 위해 유사도 메트릭을 사용하여 표준 최대 흐름/최소값 솔루션을 사용합니다.

This maybe helpful

0

나는 알고리즘 만 일반적인 제안이 없습니다. 당신은 당신이 지출하고자하는만큼의 시간을 보내고 그 길에서 발견 한 최선의 선택을 취할 때까지 무작위로 가능성을 샘플링 할 수 있습니다. 이 방법은 일반적으로 최적의 솔루션을 찾지 못하지만 대개 프로그램하기가 쉽습니다. 그리고 문제에 따라 최적으로 근접 할 수도 있습니다. 무작위 샘플의 수가 증가하면 품질이 어떻게 향상되는지 실험하고 볼 수 있습니다. 운이 좋으면 적은 수의 샘플로 충분할 수 있습니다.

0

나는 그것을 경험적으로 할 것이다.

먼저 정확한 일치 집합을 수집합니다.

그런 다음 임계 값이 있고 해당 임계 값보다 나은 일치를 수집하십시오.

임계 값을 확장하고 하나 또는 두 세트가 모두 소모 될 때까지 반복합니다.

이제 시험판 경기가 있습니다. 가장 좋지 않을 수 있습니다.

일치하는 링크를 무작위로 순차 나열하고 각 비용에 따른 확률에 따라 시뮬레이션 어닐링을 반복 실행합니다.

이 기능을 사용하면 일치하는 공간을 탐색 할 수 있으며, 근처에 일치하는 것이 더 있으면 찾아야합니다.