모든 직항 항공편 목록이 있습니다. 이걸로 나는 A와 B가 연결되는 항공편을 얻고 싶습니다. 이 문제에 적합한 알고리즘 또는 데이터 구조는 무엇입니까? 감사.항공편 일정 알고리즘
답변
기본적으로 이것은 각 출발 또는 도착이 노드가되고 각 비행이 가장자리 인 그래프를 통과하는 문제입니다. 일반적으로 가장자리에 비용을 적용합니다 - 사용자의 선호도에 따라 "비용"은 티켓 가격 (최저가를 얻는 데 드는 비용) 또는 비행 시간 (최단 비행 시간을 얻기위한 비용) 일 수 있습니다. 같은 공항에서의 도착과 출발은 비용이 도중 체류 시간 인 가장자리로 연결됩니다. (가격 관점에서는 일반적으로 비용이 0이됩니다).
직항 노선은 그래프를 생성합니다. 노드는 공항입니다. 가장자리는 직행 비행기가있는 공항 사이이며, 각 가장자리에는 무게가 있다고합니다. A와 B 사이의 모든 단순 경로를 찾으려하고 아마도 경로 모음으로 끝내기를 원할 것입니다. 그래프의 깊이 우선 검색을 할 수 있습니다.
그래프를 인코딩하는 일반적인 두 가지 방법은 인접 목록 (즉, 각 노드에 대해 가장자리가있는 노드 목록)입니다. 또는 NxN 행렬 (N 노드의 경우) 위치 (i, j)의 값은 노드 i와 노드 j 사이의 가장자리 비용을 알려줍니다.
주어진 데이터 구조. 노드 A에서 시작하여 노드 B에서 끝나는 깊이 우선 탐색을 사용할 수 있습니다. 순환을 방지하기 위해 알고리즘이 현재 경로에있는 노드를 다시 방문하는 것을 방지해야합니다.
기존 문제 Shortest path problem. 알고리즘을보고있는 경우 위키 백과 페이지에 몇 가지 옵션이 표시되거나 ACO과 같은 알고리즘이 있지만 옵션은 있지만 유스 케이스 및 솔루션 제공 방법에 따라 다릅니다. .
이 내용은 traveling salesman problem의 변형이며 결과는 NP-complete입니다.
- 1. joomla 항공편 검색 연장을 찾고
- 2. ASP.NET에서 일정/일정 표 만들기
- 3. codeigniter 및 jquery를 사용하여 일정/일정 관리 일정 만들기
- 4. 일정 잡기 (일정표와 반대) - 일정 식별 방법?
- 5. 일일 일정
- 6. 온라인 일정
- 7. 일정 기능
- 8. 일정 관리
- 9. 가시성 일정
- 10. UILocalNotification 일정
- 11. AirNav 라이브 항공편 추적 프로그램에 사용되는지도 구성 요소는 무엇입니까?
- 12. 그래프 알고리즘, 근사 알고리즘
- 13. 알고리즘
- 14. 스케줄링 알고리즘
- 15. 탄성/스네이크 라인 알고리즘
- 16. 지속적으로 데이터 알고리즘 업데이트
- 17. 알고리즘 정의되지 않은 사용자 알고리즘
- 18. 월간 기준으로 반복되는 일정 이벤트에 대한 일정 잡기
- 19. Celery로 일정 잡기 및 일정 잡기 문제가 있습니다.
- 20. 일정 캘린더 채우기
- 21. BREW의 일정 응용 프로그램
- 22. 일정 2 FixedRate 작업
- 23. PHP RSS 기반 일정
- 24. Codeigniter 일정 언어 문제
- 25. 블랙 베리 일정
- 26. jQuery를 전체 일정
- 27. 있는 NSDate 일정 술어
- 28. jQuery를 일정 제어
- 29. 전체 일정 너비
- 30. Silverlight 일정 컨트롤
http://jung.sourceforge.net/ – jball
연결 수, 전체 이동 시간, 지연 최소화에 관심이 있으십니까? – jball
이것은 숙제 문제처럼 들리나요? –