경도와 위도 좌표를 사용하여 최적화 된 보행리스트를 작성하는 방법


10

앞으로 몇 주 동안 수십 명의 자원 봉사자가 문을 두드리는 프로모션을 진행할 정치 캠페인을 진행하고 있습니다. 이름, 주소 및 long / lat 좌표가있는 목록이 제공되면 최적화 된 보행 목록을 만드는 데 사용할 수있는 알고리즘은 무엇입니까?


3
교차 게시 는 잘못된 형태로 보입니다. 왜이 태그가 SQL입니까?
Air

(대략적인) 여행 판매원 문제 (TSP) 해결 ...
Debasis 2016 년

위도를 넘어서 지리학은 어떤가요? 그리드 도시? 막 다른 골목으로가는 작은 길을 가진 거의 나무 모양의 교외? 대규모 영향을 미칩니다.
Spacedman

답변:


6

Steve Kallestad가 말했듯이, 이것은 TSP 문제이며 근사한 솔루션을 찾는 훌륭한 무료 솔버가 있습니다.

찾고있는 것에 너무 많은 노력을 기울일 수 있지만 Google Maps API와 함께 해당 솔버 중 하나를 사용하여 좌표 사이의 실제 도보 거리를 찾을 수 있습니다 : https://developers.google.com/maps / documentation / directions / # DirectionsRequests

(이 API를 사용한 적이 없으므로 얼마나 쉽고 효과적인지 모르겠습니다)


4

사람들은 여행하는 판매원 문제 와 밀접한 관련이있는 문제 를보고 해결할 수 없다고 생각합니다.

이 주제에 대해 많은 작업이 수행되었으며 솔루션을 사용할 수 없음을 나타내는 것은 아닙니다. 매개 변수 및 원하는 솔루션에 따라 작동하는 것을 찾을 수 있습니다.

OpenOpt python 라이브러리를 살펴볼 수 있습니다 .

살펴볼 또 다른 자원은 TSP Solver and Generator 입니다.

R을 사용하는 경우 사용 가능한 TSP 패키지가 있습니다 .

실제로 문제에 대한 해결책을 구현하는 것은 여기에서 다루기에는 너무 많지만 좋은 출발점이 될 것입니다. 이 패키지와 내가 제공 한 링크 내의 문서에서 사용 가능한 매우 다양한 알고리즘 전략이 있음을 알 수 있습니다. 작은 지역과 작은 "영업 사원"이 있으므로 합리적인 시간 내에 전략을 계산하는 데 필요한 계산 능력을 데스크탑에서 사용할 수 있어야합니다.

실질적으로 가장 최적의 전략을 찾을 필요는 없습니다. 아주 좋은 것이 필요합니다. 가장 압도적으로 보이는 TSP 패키지를 선택하여 활용하십시오.


이 문제를 해결하는 열쇠는 대략 최적의 경로 전략을 목표로하는 것이라고 Steve K에 동의합니다. "최고"와 "충분히 좋은"의 차이는 많지 않습니다.
MrMeritology

물론 최적을 찾을 수 있지만 모든 가능성을 반복하는 데는 우주의 나이보다 오래 걸릴 수 있습니다. 당신의 대답은 이것을 언급하지 않습니다.
Spacedman

2

@SpacedMan이 주석에서 언급했듯이 거리 레이아웃은 도보 목록 최적화에 큰 영향을 미칩니다. 질문 제목에 "위도와 경도"만 포함했습니다. 그러나 그 문제를 해결한다고해서 "보행자 목록"이 아니라 "왕관 모양의 파리 목록"이됩니다.

거리를 설명하는 간선 가중치를 사용하여 거리 레이아웃을 그래프로보고 필요한 모든 주소 간 최단 순회를 찾으려하면 문제를 " 최단 경로 문제 "로 생각하게됩니다. Dijkstra의 알고리즘 은 가장 잘 알려진 솔루션입니다 (다른 솔루션도 있습니다). 순진한 구현 에서는 주소 목록의 크기가 적당한 경우 O (n 2 )로 수렴됩니다 . 그렇지 않으면 위의 링크에서 최적화 된 버전을 찾으십시오.

라이브러리 및 자원이 문제점을 해결하기 시작하는 경우 언어 또는 플랫폼을 지정하지 않기 때문에 Open Street Maps 위키 및 일반적으로 해당 프레임 워크 및 라이브러리 페이지 에서 라우팅 솔버컴파일을 가리켜 보겠습니다 .


1

여기에 미친 아이디어가 있습니다. 이웃을 알고 자원 봉사 활동을 한 자원 봉사자와 대화하십시오. 그들의 조언과 아이디어를 얻으십시오. 아마도 알고리즘이 생성하지 않을 것이라는 통찰력이있을 것이며, 이러한 수정은 컴퓨터에서 생성 된 경로 목록에 유용 할 것입니다. 한 가지 예 : 조명이 느리거나 조명이없는 이동량이 많은 거리를 건너지 마십시오. 또 다른 예 : 같은 거리의 반대편에서 일하는 자원 봉사자 쌍은 그 거리에서만 일하는 자원 봉사자보다 안전하다고 느낄 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.