2012-11-22 3 views
0

Ok 이것은 추상적 인 알고리즘 적 과제이며, 그것을 사용하려고하는 일급 비밀이기 때문에 추상적으로 남아 있습니다.오브젝트의 최적의 배치는 pairwise 유사 가중치를 사용합니다.

O = {o_1, ..., o_N}의 객체 집합과 S_ij가 객체 o_i와 o_j의 쌍으로의 상관 관계 인 대칭성 유사도 행렬 S가 있다고 가정합니다.

개체가 놓일 수있는 개별 위치가있는 1 차원 공간이 있다고 가정합니다 (행에 N 개의 상자가 있거나 사용자를 위해 의자가있는 것처럼).

특정 배치를 가지고 우리는 한 목표물의 위치에서 다른 대상체의 위치로 이동하는 비용을 우리가 목표물에 도달 할 때까지 통과해야하는 상자의 수로 측정하여 쌍의 개체 유사성을 곱할 수 있습니다. 그 위치 직전 또는 직전에 위치에서 상자로 이동하는 것은 비용이 들지 않습니다.

세 개체에 대해 우리는 다음과 같은 유사성 행렬 어디로 예를 상상해 : 나무 상자에서 객체의 가장 좋은 순서 분명히 그런

 1.0 0.5 0.8 

S = 0.5 1.0 0.1 

    0.8 0.1 1.0 

입니다 :

[o_3] [o_1] [o_2] 

비용 이 순서는 한 객체에서 다른 객체로 이동하는 데 필요한 비용의 합계입니다. 한편

[o_3] [o_1] [o_2] 

:

[o_1] [o_2] [o_3] 

비용을 것 = 비용 그래서 여기에 우리는 o_2 및 1BOX * 0.1sim = 0.1, 같은 동일한 o_3 사이의 거리에 대한 비용이있다 (o_1 -> o_3) = 1box * 0.8sim = 0.8.


대상 우리가 객체의 모든 가능한 쌍에 대한 위에서 언급 한 전체 비용을 최소화하는 방법으로 사용할 수있는 위치에있는 N 객체의 위치를 ​​결정하는 것입니다!

analogue은 테이블과 의자가 하나의 행 (상자와 같은)에 나란히 서 있고 N 명의 의자에 앉아 있어야한다고 상상하는 것입니다. 이제 그 사람들은 몇 가지 관계를 가지고 있습니다. 즉, 그들 중 한 사람이 다른 사람과 이야기하기를 원할 가능성이 얼마나 높습니다. 이것은 여러 개의 의자에 의해 일어 서서 그 사람에게 이야기하는 것입니다. 사람들이 두 개의 연속적인 의자에 앉으면 서로 이야기하기 위해 움직일 필요가 없습니다.

그래서 어떻게하면 두 개 ppl 사이의 모든 거리 - 비용이 최소화되도록 이들 ppl을 줄일 수 있습니까? 즉, 밤에는 손님이 걸어 다니는 총 거리가 최소 가까이에 있음을 의미합니다.

탐욕스러운 검색은 ... 좋습니다. 잊어 버리십시오! 나는 몇몇 문학을 찾을 수있는 그런 문제의 표준 공식이 있고, 다른 검색 접근법 (예 : 동적 프로그래밍, 금기 검색, 조합 최적화 분야의 시뮬레이션 어닐링 등)이 있다면 듣고 싶다.

앞으로 귀하의 아이디어를 듣고 싶습니다.

추신.제 질문은이 스레드와 공통점이 있습니다 Algorithm for ordering a list of Objects,하지만 여기서는 문제가 더 좋고 아마 약간 다를 것이라고 생각합니다.

+1

더 많은 설명이나 예를 추가 할 수 있습니까? 나는 제로 비용의 경우가 제로 비용 인 이유를 이해하지 못한다. 비용 행렬은 모두 양의 값이며 각 결과에는 다른 상자로 구분 된 한 쌍의 쌍이 포함됩니다. –

+0

상자 1에서 상자 2로 이동하면 상자를 무시하지 않습니다. 따라서 비용은 0 상자 * 유사도 = 0입니다.이 경우 유사도는 문제를 변경하지 않기 때문에 비용으로 간주 할 수 있지만 주문 가능한 최소 비용은 0이 아닙니다. – argyris

+1

상자 1에서 상자 2로, 또는 상자 2에서 상자 3으로 이동하는데 비용이 전혀 들지 않아도 아무런 문제가 없습니다. 상자 1에서 상자 3으로 이동할 경우의 비용에 대해 혼란 스럽습니다. –

답변

0

(내 자신의) 스레드에 단순한 정렬 방식을 도우겠습니다.

1. 유사성 매트릭스의 위쪽 절반을 주문하십시오.
2. 유사 가중치가 가장 높은 오브젝트 쌍으로 시작하여 가운데 위치에 놓습니다.

3. 다음 객체는 왼쪽이나 오른쪽에 놓을 수 있습니다. 그래서 왼쪽 또는 오른쪽에 놓을 때 객체를 선택할 때마다 은 미리 배치 된 객체에 대해 가장 많은 비용을 부담합니다. 고토 2 단계

이 객체를 떠나 나중에 배치하면이 비용이되기 때문에 3 단계의 선택은 남아있는, 그리고 (더 사전 배치 개체)보다의 다시 큰 . 비용이 많이 드는 게재 위치는 될 수있는 한 빨리 완료해야합니다.

이것은 너무 간단하며 좋은 해결책을 발견하지 못합니다.

완전한 순서는 "스왑"의를 사용하여 개선

2. 시도 (임의 또는 다른 알고리즘에서) 어떻게 든 생성과

1. 시작하는 또 다른 방법 개체 쌍.

저는 로컬 미니 마가 큰 제지가 될 것이라고 생각합니다.

+0

즉 기본적이다 [제 맞추기 감소 (http://docs.jboss.org/drools/release/5.5.0.Final/drools-planner-docs/html_single/index.html#d0e6126), 맞죠? –

+0

@ Geoffrey De Smet. 흠, 나는 비슷하다고 생각하지만 차이점이 있습니다. 예를 들어, FFD에서는 값 비싼 움직임이 나중에 더 많은 비용이나 불가피하게 될 것이라고 예상합니다. 여기에서 나중에 선택이 이루어지면 더 많은 비용이 들게 될 것입니다. o 객체가 이미 배치 된 객체와 유사하지 않은 경우 및 o 객체를 배치 할 때까지 배치 될 객체를 제외합니다. – argyris

0

다음은 이미 게시 된 방법의 변형입니다. 나는 이것이 최적이라고 생각하지 않지만 시작일 수 있습니다.

Create a list of all the pairs in descending cost order. 
While list not empty: 
    Pop the head item from the list. 
    If neither element is in an existing group, create a new group containing 
    the pair. 
    If one element is in an existing group, add the other element to whichever 
    end puts it closer to the group member. 
    If both elements are in existing groups, combine them so as to minimize 
    the distance between the pair. 

그룹은 그룹의 순서 역전이 필요할 수 조합, 데이터 구조 것을 지원하도록 설계되어야한다.

+0

답변 해 주셔서 감사합니다. 그러나 몇 가지 점을 볼 수 있습니다. a) 두 번째 "if"문에서 한 쌍의 유사성 (비용) 만보고 그룹에 개체를 넣을 수 있습니다. 그러나 아직 할당되지 않은 객체는 할당 된 그룹의 객체가 아닌 다른 객체와 더 높은 유사성을가집니다. b) 두 그룹의 조합은 너무 순진하고 오직 한 쌍의 비용을 최소화하는 것으로 보인다. – argyris

+0

수백 또는 수천 개의 객체의 스케일을 생각해 보면 내가 언급했거나 이처럼 단순한 알고리즘이 무엇인지 알 수 있습니다. – argyris

+0

이제 질문에 대해 다시 확신하지 못합니다. 나는 그 목적이 교환의 최대 비용을 최소화하는 것이라고 생각했다. "유사성의 합"에 대한 의견은 우리가 교류 비용의 합을 최소화해야한다고 제안합니다. –

1

두 번째 할당 문제의 인스턴스처럼 들립니다. 이 전문 분야는 위치가 한 줄로 만 배치되어 있기 때문에 가능하지만 해결하기가 쉽지 않을 것입니다. 일반적으로 QAP는 NP 하드입니다. 내가 문제를 잘못 해석하지 않으면 P = NP를 동시에 입증하지 않고 다항식 시간에 문제를 해결하는 최적의 알고리즘을 찾을 수 없습니다.

인스턴스가 작 으면 분기 및 바인딩과 같은 정확한 방법을 사용할 수 있습니다. 문제가 더 어려울 경우 금기 검색이나 다른 메타 이론을 사용할 수도 있습니다. HeuristicLab에는 QAP 및 일부 메타에 대한 구현이 있습니다. GUI에서 문제를 구성하고 유사성과 거리 행렬을 적절한 매개 변수에 붙여 넣기 만하면됩니다. 강력한 금기 검색으로 시작하십시오. 그것은 오래된 알고리즘이지만 여전히 잘 작동하는 알고리즘입니다. Taillard는 자신을 위해 구현하려는 경우 자신의 웹 사이트에 C 코드도 있습니다. 구현은 해당 코드를 기반으로합니다.

QAP에서 많은 출판이 이루어졌습니다.보다 현대적인 알고리즘은 유전 검색 능력을 지역 검색 휴리스틱 스 (예 : Stützle IIRC의 Genetic Local Search)와 결합시킨다.

+0

온라인에서 일부 정의를 읽음으로써 내가 이해하는 한, 이것은 밀접한 공식입니다. 1D 또는 2D 공간은 아무런 차이를 만들지 않습니다. 위치가 선상에있을 때 특정 순서가 있기 때문에 이점을 활용하고 일부 검사를 피할 수 있습니다. – argyris

+0

이 사실 QAP의 특별한 경우는 "선형 배열 문제"라고합니다 (http://www.opt.math.tu-graz.ac.at/~cela/papers/qap_bericht.pdf) – argyris

+0

에게 나는 이것을 생각하지 않는다 선형 문제로 분류됩니다. 할당 된 거리를 최소화하려는 개체간에 상관 관계가 있습니다. 그것은 문제를 2 차로 만든다. 선형 할당 문제에서 할당은 절대 위치에 의해서만 다른 객체의 상대적 위치의 영향을받지 않습니다. – Andreas

관련 문제