식료품 점을 통한 최단 경로 찾기 (쇼핑 목록)를 찾는 방법을 찾고 있습니다. 경로는 지정된 시작 위치에서 시작하고 여러 끝 위치에서 끝날 수 있습니다 (여러 체크 아웃 카운터가 있음). 또한 경로에 미리 정의 된 제약 조건이 있습니다 (예 : "쇼핑 목록의 항목 x는 경로의 마지막 항목, 두 번째 마지막 항목 또는 세 번째 항목이어야합니다"). 주어진 경로에 대해 참 또는 거짓을 리턴하는 함수가 있습니다. 마지막으로, 이것은 (스마트 폰에서) 제한된 CPU 전력으로 1 초 정도 계산되어야합니다. 이것이 가능하지 않다면, 최적 경로에 대한 근사도 가능합니다.식료품 점을 통한 최단 경로 계산
이것이 가능합니까? 지금까지는 A * 또는 Dijkstra와 같은 것을 사용하여 목록의 모든 항목 사이의 거리를 계산해야한다고 생각합니다. 그 후, 여행 판매원 문제처럼 취급해야합니까? 내 문제에는 지정된 시작 노드, 지정된 끝 노드 및 여행 판매원 문제가 아닌 몇 가지 제약이 있기 때문입니다.
@Bart : 스마트 폰에서 TSP를 해결하고 싶습니다 ... 초 단위로 ... 그 쯤. 나는 그것이 매우 짧은 목록이 아니라면 힘든 시간을 보낼 것이라고 생각합니다 :) 당신은 간단한 경험적/탐욕적인 접근법을 시도 했습니까? 대부분의 슈퍼마켓에는 유클리드 거리가 있기 때문에 "충분히 좋은"솔루션을 제공 할 수 있습니다. 또한 당신이 뭔가를한다면 인간이 결과를 보는 것이 더 합리적이라고 생각합니다. 그것은 우리가 실제로하는 것과 흡사합니다. 그것은 15m 더 긴 걷는 것을 의미 할지도 모르지만, 나는 여전히 대부분의 인간이 ndp에 의해 묘사 된 것과 비슷한 것을 할 것이라고 생각합니다. 그들이 달리 지시 받았다면 당황 할 수 있습니다. –
편집 : '대부분의 슈퍼마켓에는 유클리드 거리가 있기 때문에'충분히 읽을만한 솔루션 '을 제공해야합니다.'슈퍼마켓의 거리가 ineq의 삼각형을 만족하므로 "충분한 해결책"을 줄 수 있습니다. –
감사합니다. 불완전한 경로는 괜찮지 만 항목 수가 적 으면 최적 경로를 찾을 수 있으면 항목 수가 많으면 근사값을 찾을 수 있으면 좋을 것입니다. 이것은 단지 이론적 인 과제이므로, 구현할 필요가 없습니다. 나는 Ant Optimization이 좋을 것이라고 생각하고 있습니다. 왜냐하면 나는 약간의 시간 제한에서 잘라 버리고 지금까지 발견 된 최상의 근사값을 얻을 수 있기 때문입니다. – Bart