KR20150117209A - 여행 계획 시스템 - Google Patents

여행 계획 시스템 Download PDF

Info

Publication number
KR20150117209A
KR20150117209A KR1020150040600A KR20150040600A KR20150117209A KR 20150117209 A KR20150117209 A KR 20150117209A KR 1020150040600 A KR1020150040600 A KR 1020150040600A KR 20150040600 A KR20150040600 A KR 20150040600A KR 20150117209 A KR20150117209 A KR 20150117209A
Authority
KR
South Korea
Prior art keywords
travel
interval
trip
traveler
intervals
Prior art date
Application number
KR1020150040600A
Other languages
English (en)
Inventor
다비드 벵끄
에드몽 아부드
세드릭 라모히니에르
Original Assignee
아마데우스 에스.에이.에스.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/248,535 external-priority patent/US20150294238A1/en
Priority claimed from EP14305520.0A external-priority patent/EP2930673A1/en
Application filed by 아마데우스 에스.에이.에스. filed Critical 아마데우스 에스.에이.에스.
Publication of KR20150117209A publication Critical patent/KR20150117209A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)

Abstract

본 발명은 중간기착, 구간 시간 및 활동의 제약사항을 가진 여행자 조건을 충족시키는 여행 제안을 생성하는 방법, 시스템, 및 컴퓨터 프로그램 제품에 관한 것이다. 여행 계획 모듈은 여행자로부터 여행 요청과 관련된 데이터를 수신하는데, 여행 요청은 출발지, 도착지,그리고 중간기착을 요청하는 여행 제약사항(54, 56)을 포함한다. 여행 계획 모듈(52)은 여행 제약사항의 충족을 위해 요청되는 최소의 구간 수를 결정하고, 최소의 요청 구간 수보다 크거나 동일한 수의 연결을 포함하는 각 루트로 구성된 루트 세트를 생성한다. 여행 계획 모듈은 스케쥴 데이터베이스로부터 수신한 데이터를 바탕으로 다수의 후보 여행 제안(76)을 생성하기 위해 루트들 중의 각 루트를 스케쥴된 구간에 채운다. 여행 제약사항을 만족하지 않는 후보 여행 제안은 폐기될 수 있으며, 잔여 후보 여행 제안은 여행자에게 제시된다.

Description

여행 계획 시스템{TRAVEL PLANNING SYSTEM}
본 발명은 일반적으로 컴퓨터 및 컴퓨터 소프트웨어에 관한 것으로, 보다 상세하게는 여행자 한정된 제약사항(constraint)에 기초하여 여행 제안을 생성하는 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다.
열차 또는 항공편과 같은 항공사 구간(carrier segment)을, 출발지를 목적지에 연결하는 하나 이상의 여행 제안으로 조합하는 것에 의해 트립(trip)을 계획하는 여행 계획 프로그램이 이용가능하다. 하나 이상의 여행 제안은 이후 여행 시간 또는 가격과 같은 기준에 기초하여 여행자 또는 여행사 직원에 제시될 수 있다.
종래의 여행 계획 시스템은 서치 엔진에 내장된 미리 선택된 여행자 선호도와 최적화 규칙에 기초하여 출발지와 목적지 간에 "최상의" 여행 제안을 결정하는 서치 엔진에 기초한다. 일반적으로 입력될 수 있는 여행자 선호도는 거리 또는 여행 시간과 비용 기준을 포함하고, 여기서 여행자는 일반적으로 속도를 우선하기를 원하는지 또는 비용을 우선하기를 원하는지를 식별한다. 속도가 우선인 경우, 여행 계획 시스템은 일반적으로 출발지와 목적지 간에 최단 또는 최고속 여행 제안을 리턴한다. 비용이 우선 관심사인 경우, 여행 계획 시스템은 최저 비용 여행 제안을 여행자에 제시할 수 있다. 어느 경우이든, 여행자는 원하는 출발지, 목적지, 출발 시간 및 도착 시간을 여행 계획 프로그램에 제공할 수 있다. 여행 계획 프로그램은 요청된 출발 및 도착 시간에 대응하는 시간 기간 동안 출발지와 목적지 간에 가능한 여행 옵션을 결정하고 비교할 수 있다.
일부 경우에, 여행 계획 시스템은 컴퓨터 예약 시스템에 의해 제공된 데이터를 사용하여 여행 제안을 생성할 수 있다. 컴퓨터 예약 시스템은 일반적으로 여행 제품 비용과 이용가능성에 대한 정보를 저장하고 검색하는 하나 이상의 데이터베이스를 포함한다. 컴퓨터 예약 시스템은 또한 항공, 철도, 셔틀, 또는 버스 구간, 호텔 룸, 렌탈 카(rental car) 및 다른 여행 관련된 서비스를 부킹(book)하는 것과 관련된 거래를 수행할 수 있다. 다수의 여행 서비스 제공자에 예약을 부킹하도록 구성된 컴퓨터 예약 시스템은 일반적으로 글로벌 분배 시스템(Global Distribution System:GDS)라고 언급된다. GDS는 일반적으로 아마데우스 IT 홀딩사(Amadeus IT Holding SA)와 같은 제3자의 서비스 제공자에 의해 운영된다. 제3자의 서비스 제공자는 여행 서비스 제공자 시스템을 간접 판매자 시스템에 연결하는 GDS 서비스를 제공할 수 있다. GDS는 간접 판매자가 다수의 여행 서비스 제공자에 의해 제공된 여행 서비스를 서치하고 판매할 수 있게 할 수 있다. 여행사와 같은 간접 판매자는 GDS에 가입하여 여행 서비스 제공자에 의해 제공되는 여행 정보에 액세스하고 여행 서비스에 예약을 부킹할 수 있다. 여행자에 대해 여행 제품을 부킹할 때, 여행사 직원은 GDS에 의해 제공된 데이터를 사용하여 요청된 출발지와 목적지를 연결하는 이용가능한 캐리어 구간을 결정할 수 있다. 따라서, 여행자는 가입한 여행사를 통해 GDS에 간접적으로 액세스를 할 수 있다.
온라인 여행사 시스템은 인터넷을 통해 GDS로부터 검색된 데이터에 대한 액세스를 여행자에 제공하여, 여행자로 하여금 여행 제품을 자율적으로 쇼핑할 수 있게 할 수 있다. 이를 위해, 온라인 여행사 시스템은 GDS에 연결되어 이용가능한 구간 및 가격과 같은 여행 정보에 액세스할 수 있고, 여행 계획 프로그램을 사용하여 여행 제품을 서치할 수 있다. 여행자는 여행사 시스템에 액세스하고 웹 브라우저를 사용하여 인터넷을 통해 여행 기준을 입력할 수 있다. 여행사 시스템은 여행 정보에 액세스하거나 및/또는 항공편, 호텔 룸 또는 렌탈 카와 같은 여행 제품을 예약하고 브라우저를 통해 결과를 여행자에 디스플레이할 수 있다.
종래의 여행 계획 시스템은 일반적으로 최소 개수의 연결, 최단 총 여행 시간 또는 최저 비용을 가지는 여행 제안을 제공하는 구간을 단순히 선택하는 것에 의해 여행자에 디스플레이할 여행 제안을 결정한다. 여행 제안은 특정 캐리어에 의해 제공된 구간으로 제한되거나 또는 특정 특징, 예를 들어 제1 등급 좌석을 제안할 수 있도록 여행 제안은 또한 필터링될 수 있다. 따라서, 종래의 여행 계획 시스템에 의해 여행자에 제공된 여행 제안은 일반적으로 여행에 소비된 시간, 원하는 편의성 레벨 및 여행 서비스의 비용 사이에 절충을 나타낸다.
일부 경우에, 여행자는 운송 수단(conveyance)으로부터 하차(disembark)할 수 있는 스케줄된 중간기착(stopover) 또는 미리 결정된 구간 길이를 가지는 트립과 같은 비종래(unconventional) 여행 배열을 요구하는 특정 요구를 구비할 수 있다. 종래의 여행 계획 시스템은 최고속 또는 최저 비용으로 이용가능한 여행 제안에 기초하여 여행 제안을 단순히 최적화하기 때문에, 이들 시스템은 이들 유형의 여행 제약사항을 고려할 수 없다. 여행자 또는 여행사 직원은 여행자의 시간 제약사항을 충족시키는 여행 배열을 수동으로 선택하여야 한다. 이것은 일반적으로 트립이 여행자의 제약사항을 충족시키는 중간기착 또는 구간을 포함하도록 트립 구간을 별개로 서치하거나 부킹할 것을 요구한다. 이러한 시행 착오 접근법은 기껏해야 성가시고, 수동 공정으로 부과된 인위적인 한계에 기초하여 순차적으로 선택이 이루어지기 때문에 최적의 여행 제안을 리턴할 것 같지 않다. 이것은 특히 복잡한 여행 배열에서 그러할 수 있다.
따라서, 여행자가 계획된 중간기착과 요구된 구간 길이를 포함하는 트립 제약사항을 설정할 수 있게 하는 자동화된 여행 계획을 위한 개선된 시스템, 방법 및 컴퓨터 프로그램 제품이 요구된다.
이들 및 다른 문제를 해결하기 위해, 첨부된 독립 청구항 1에 한정된 여행 제안을 생성하는 방법, 첨부된 청구항 12에 한정된 여행 제안을 생성하는 시스템, 및 첨부된 청구항 15에 한정된 컴퓨터 프로그램이 제공된다. 선호되는 실시예는 종속 청구항에 한정된다.
본 발명의 여러 실시예에 따른 방법 및 시스템은 사용자가 여행을 중단(break)하기를 원하는 장소를 미리 지정함이 없이 구간별 시간 제약사항을 충족시키는 최적화된 여정 옵션을 생성할 수 있게 한다. 특히, 본 발명은 사용자가 각 가능한 연결을 수동으로 서치하고 연결 위치에서 이용가능한 가능한 활동 또는 서비스를 조사할 필요를 제거한다.
본 발명의 추가적인 잇점은 첨부 도면 및 상세한 설명을 살펴보면 이 기술 분야에 통상의 지식을 가진 자에게는 명백해질 것이다. 임의의 추가적인 잇점은 본 명세서에 포함되는 것으로 의도된다.
본 명세서에 포함되고 본 명세서의 일부를 구성하는 첨부 도면은, 본 발명의 여러 실시예를 도시하고, 상기 주어진 본 발명의 일반적인 설명, 및 하기 주어진 실시예의 상세한 설명과 함께, 본 발명의 실시예를 설명하는 역할을 한다.
도 1은 네트워크를 통해 통신하는 복수의 연산 시스템을 포함하는 예시적인 동작 환경의 개략도.
도 2는 도 1의 예시적인 연산 시스템의 개략도.
도 3은 라우팅(routing) 데이터베이스와 통신하고 여행 제안을 생성하는 계산 엔진 및 스케줄링 엔진을 포함하는 여행 계획 모듈의 개략도.
도 4는 도 3의 라우팅 데이터베이스에서 구간을 색인(index)하는데 사용되는 밀도 시트(density sheet)의 개략도.
도 5는 출발지를 목적지에 연결하는 루트(route)를 생성하고 이 루트에 기초하여 여행 제안을 생성하는 여행 계획 모듈에 의해 실행될 수 있는 공정을 도시하는 흐름도.
도 6은 도 5의 공정의 추가적인 상세 흐름도.
도 7은 도 6의 공정의 추가적인 상세 흐름도.
도 8은 도 5의 공정의 추가적인 상세 흐름도.
본 발명의 실시예에 따른 방법, 시스템 및 컴퓨터 프로그램 제품은 여행 제약사항을 충족시키는 최적화된 여행 제안을 생성할 수 있게 한다. 특히, 실시예는 여행자가 본 명세서에서 중간기착(stopover)이라고 언급되는 여행 중단(break)을 포함하기를 원하는 장소 또는 시간을 미리 지정할 필요 없이 구간별 시간 제약사항을 충족시키는 트립을 여행자가 계획할 수 있게 한다. 본 발명의 실시예는 여행자가 각 가능한 중간기착 위치를 수동으로 검색하고, 구간별 시간 제약사항을 가지는 트립을 계획할 때 중간기착 위치에서 이용가능한 가능한 활동 또는 서비스를 조사할 필요성을 제거할 수 있다.
본 발명의 실시예는 하나 이상의 네트워크 연결된 컴퓨터 또는 서버를 포함하는 연산 시스템에 의해 구현될 수 있다. 연산 시스템은 여행 관련된 시스템, 예를 들어, 여행 계획 모듈을 위한 처리 및 데이터베이스 기능을 제공할 수 있다. 여행 계획 모듈은 여행자에 의해 계획된 트립에 대한 트립 요구조건 세트를 한정하는 데이터를 수신하도록 구성될 수 있다. 이 데이터는 시작 위치 또는 "출발지", 종료 위치 또는 "목적지"와, 하나 이상의 트립 제약사항을 한정할 수 있다. 트립 제약사항은 트립이 여행자가 비행기, 열차 또는 버스와 같은 운송 수단으로부터 하차할 수 있는 중간기착을 구간들 사이에 포함할 것을 요구하는 요구조건을 포함할 수 있다. 트립 제약사항은 중간기착이 특정 위치에 또는 특정 시간에, 특정 지속시간 동안 일어나거나, 또는 특정 활동을 포함할 것을 지정할 수 있다. 트립 제약사항은 또한 최대 또는 최소 허용가능한 구간 지속시간, 허용가능한 구간 유형(예를 들어, 항공, 철도, 수상(water) 또는 도로 구간) 또는 구간 유형의 원하는 조합(예를 들어, 철도 구간과 항공 구간)과 같은 하나 이상의 트립 구간에 대한 제약사항을 지정할 수 있다. 여행자로부터 수신된 데이터는 트립 제약사항을 충족하는 여행 제안을 랭킹(ranking)매기는 기준을 한정하는 데이터를 또한 포함할 수 있다. 수신된 정보에 기초하여, 여행 계획 모듈은 트립 제약사항을 충족하는 복수의 트립 제안을 결정하고, 이 제안을 여행자에 디스플레이되게 할 수 있다.
여행 계획 모듈은 온라인 여행사 시스템과 같은 여행사 시스템을 통해 여행 배열을 서치하거나 여행 배열을 생성하는 여행자가 트립 제약사항을 지정하고 이 제약사항을 충족하는 여행 제안을 제시받을 수 있게 할 수 있다. 예를 들어, 여행자는 최소 또는 최대 허용가능한 구간 지속시간, 또는 최소 또는 최대 허용가능한 중간기착 지속시간을 입력할 수 있다. 여행자에 제시된 여행 제안은 허용가능한 구간 지속시간에 대응하는 지속시간을 가지는 구간을 포함하거나, 또는 최소 허용가능한 중간기착 지속시간을 제공하는 여행 제안만이 여행자에 디스플레이되도록 필터링될 수 있다. 여행자는 중간기착을 위한 특정 시간 또는 장소를 지정할 필요 없이 구간과 중간기착 시간 제약사항을 충족하는 여행 제안을 서치할 수 있다. 특히, 본 발명의 실시예는 여행자가 원하는 구간과 중간기착 요구조건을 충족하는 트립을 부킹하기 위해 각 가능한 중간기착 위치를 수동으로 서치하거나 또는 잠재적인 중간기착에서 이용가능한 가능한 활동 또는 서비스를 조사할 필요성을 제거할 수 있다.
이제 도 1을 참조하면, 본 발명의 일 실시예에 따른 동작 환경(10)은 전역 분산 시스템(Global Distribution System: GDS)(12), 하나 이상의 여행 제품 제공자 시스템, 예를 들어, 항공사 시스템(carrier system)(14), 하나 이상의 여행 쇼핑 또는 간접 판매자 시스템, 예를 들어, 여행사 시스템(16), 여행 계획 시스템(18) 및 하나 이상의 여행자 시스템(20)을 포함할 수 있다. 각 GDS(12), 항공사 시스템(14), 여행사 시스템(16), 여행 계획 시스템(18) 및 여행자 시스템(20)은 네트워크(22)를 통해 통신할 수 있다. 항공사 시스템(14)은 GDS(12) 및/또는 여행사 시스템(16)이 항공사 티켓을 예약하고 지불할 수 있게 하는 각 항공사를 위한 컴퓨터 예약 시스템(Computer Reservation System: CRS) 및/또는 빌링 시스템을 각각 포함할 수 있다. 항공사 시스템(14)은 또한 직접 또는 GDS(12)를 통해 서로 상호 작용하며, 발권 항공사(validating carrier)가 운영 항공사에 의해 제공된 좌석 티켓을 판매할 수 있게 할 수 있다. 운영 항공사는 제공된 서비스에 대해 발권 항공사에 비용을 청구할 수 있다. 네트워크(22)는 데이터를 교환할 수 있게 하는 하나 이상의 사설 및/또는 공중 네트워크(예를 들어, 인터넷)를 포함할 수 있다.
GDS(12)는 여행사 직원, 발권 항공사 또는 다른 간접 판매자가 이용가능한 구간을 서치하고 GDS(12)를 통해 하나 이상의 항공사 시스템(14)에 대한 예약을 부킹하게 하는 것에 의해 항공사 시스템(14)과 여행사 시스템(16) 사이에 통신을 제공하도록 구성될 수 있다. 이를 위해, GDS(12)는 네트워크(22)를 통해 각 항공사 시스템(14)으로 링크를 유지할 수 있다. 이들 링크는 GDS(12)가 항공사 시스템(14)으로부터 구간에 대한 스케줄링과 이용가능성 데이터를 획득하고, 항공사 시스템(14)에 대한 여행 제안 예약 요청을 획득하게 할 수 있다. 항공사 시스템과 여행사 시스템(14, 16)은 GDS(12)에 단일 연결을 통해 다수의 항공사에 대한 구간에 대한 항공편, 열차 또는 다른 유형을 부킹할 수 있다. GDS(12)는 다수의 항공사로부터 오는 구간을 포함하는 트립의 여행 일정 및/또는 호텔과 렌탈 카 예약과 같은 트립을 포함하는 다른 여행 서비스에 대한 전체 데이터 세트를 포함하는 승객 이름 레코드(Passenger Name Record: PNR)를 저장하거나 및/또는 유지할 수 있다.
여행사 시스템(16)은 공중이 액세스가능한 웹사이트를 제공하는 웹 서버를 포함할 수 있다. 이 웹사이트는 여행 요청에 일치하는 여행 제품을 서치하는 능력과 같은 여행 계획 특징에 액세스를 제공하도록 구성될 수 있다. 이를 위해, 여행사 시스템(16)은 GDS(12), 항공사 시스템(14), 여행사 시스템(16) 및 여행 계획 시스템(18)에 의해 호스팅되는 하나 이상의 데이터베이스로부터 데이터에의 액세스를 여행자에 제공할 수 있다. 본 발명의 대안적인 실시예에서, 여행사 시스템(16)은 여행 서비스 제공자 또는 여행사 직원으로 액세스를 제한하는 전용 시스템일 수 있고, 이 경우에 액세스는 사설 웹사이트 또는 다른 애플리케이션을 통해 제공될 수 있다.
여행 계획 시스템(18)은 네트워크(22) 또는 일부 다른 적절한 연결을 통해 여행사 시스템(16)과 통신할 수 있다. 본 발명의 대안적인 실시예에서, 여행 계획 시스템(18)의 전부 또는 일부는 다른 시스템(12, 14, 16, 20)의 하나 이상에 통합될 수 있다. 임의의 경우에, 여행자 또는 여행사 직원은 여행 계획 시스템(18)을 사용하여 여행자로부터 수신된 여행 요청을 충족하는 여행 제안을 여행사 시스템(16)을 사용하여 생성하거나 및/또는 서치할 수 있다.
여행자 시스템(20)은 네트워크(22)를 통해 통신하도록 구성된 임의의 적절한 연산 시스템일 수 있다. 예를 들어, 여행자 시스템(20)은 여행자가 네트워크(22)를 통해 여행 서비스를 서치하고 부킹하게 하는 데스크탑, 랩탑, 또는 태블릿 컴퓨터, 스마트 폰 또는 임의의 다른 연산 디바이스를 포함할 수 있다. 본 발명의 일 실시예에서, 여행자 시스템(20)은 여행사 시스템(16)에 의해 호스팅되는 웹-서버 애플리케이션과 통신하는 웹-브라우저 애플리케이션을 포함할 수 있다. 웹-서버 애플리케이션은 GDS(12), 항공사 시스템(14) 및/또는 여행 계획 시스템(18)과 통신하며 이용가능한 여행 구간에 관한 데이터를 획득하고, 여행 요청을 충족하는 여행 제안을 생성할 수 있다.
이제 도 2를 참조하면, 동작 환경(10)의 GDS(12), 항공사 시스템(14), 여행사 시스템(16), 여행 계획 시스템(18) 및 여행자 시스템(20)은 컴퓨터(30)와 같은, 집합적으로 컴퓨터라고 언급되는 하나 이상의 연산 디바이스 또는 시스템에서 구현될 수 있다. 컴퓨터(30)는 프로세서(32),메모리(34), 대용량 저장 메모리 디바이스(36), 입력/출력(I/O) 인터페이스(38) 및 사람 기계 인터페이스(Human Machine Interface: HMI)(40)를 포함할 수 있다. 컴퓨터(30)는 또한 네트워크(22) 및/또는 I/O 인터페이스(38)를 통해 하나 이상의 외부 자원(42)에 동작가능하게 연결될 수 있다. 외부 자원은 서버, 데이터베이스, 대용량 저장 디바이스, 주변 디바이스, 클라우드-기반 네트워크 서비스, 또는 컴퓨터(30)에 의해 사용될 수 있는 임의의 다른 적절한 연산 자원을 포함할 수 있으나 이들로 제한되지 않는다.
프로세서(32)는 마이크로프로세서, 마이크로-제어기, 디지털 신호 프로세서, 마이크로컴퓨터, 중심 처리 유닛, 필드 프로그래밍가능한 게이트 어레이, 프로그래밍가능한 논리 디바이스, 상태 기계, 논리 회로, 아날로그 회로, 디지털 회로 또는 메모리(34)에 저장된 동작 명령에 기초하여 (아날로그 또는 디지털) 신호를 조작하는 임의의 다른 디바이스로부터 선택된 하나 이상의 디바이스를 포함할 수 있다. 메모리(34)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 휘발성 메모리, 비-휘발성 메모리, 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 플래쉬 메모리, 캐시 메모리, 또는 정보를 저장할 수 있는 임의의 다른 디바이스를 포함하지만 이들로 제한되지 않는 단일 메모리 디바이스 또는 복수의 메모리 디바이스를 포함할 수 있다. 대용량 저장 메모리 디바이스(36)는 하드 드라이브, 광 드라이브, 테이프 드라이브, 비-휘발성 솔리드 스테이트 디바이스, 또는 정보를 저장할 수 있는 임의의 다른 디바이스와 같은 데이터 저장 디바이스를 포함할 수 있다. 데이터베이스(44)는 대용량 저장 메모리 디바이스(36)에 상주할 수 있고, 본 명세서에 설명된 여러 시스템 및 모듈에 의해 사용되는 데이터를 수집하고 조직하는데 사용될 수 있다.
프로세서(32)는 메모리(34)에 상주하는 운영 시스템(46)의 제어 하에 동작할 수 있다. 운영 시스템(46)은 메모리(34)에 상주하는 애플리케이션(48)과 같은 하나 이상의 컴퓨터 소프트웨어 애플리케이션으로 구현된 컴퓨터 프로그램 코드가 프로세서(32)에 의해 실행되는 명령을 구비하도록 연산 자원을 관리할 수 있다. 대안적인 실시예에서, 프로세서(32)는 애플리케이션(48)을 직접 실행할 수 있고, 이 경우에 운영 시스템(46)은 생략될 수 있다. 하나 이상의 데이터 구조(50)는 또한 메모리(34)에 상주할 수 있고, 데이터를 저장하거나 조작하는데 프로세서(32), 운영 시스템(46) 및/또는 애플리케이션(48)에 의해 사용될 수 있다.
I/O 인터페이스(38)는 프로세서(32)를 네트워크(22) 및/또는 외부 자원(42)과 같은 다른 디바이스 및 시스템에 동작가능하게 연결하는 기계 인터페이스를 제공할 수 있다. 애플리케이션(48)은 네트워크(22) 및/또는 외부 자원(42)과 협력하여 동작하며 I/O 인터페이스(38)를 통해 통신하며 본 발명의 실시예를 포함하는 여러 특징, 기능, 애플리케이션, 공정 및/또는 모듈을 제공할 수 있다. 애플리케이션(48)은 또한 하나 이상의 외부 자원(42)에 의해 실행되거나, 또는 컴퓨터(30) 외부의 다른 시스템 또는 네트워크 성분에 의해 제공되는 기능 및/또는 신호에 의존하는 프로그램 코드를 구비할 수 있다. 사실, 가능한 하드웨어 및 소프트웨어 구성은 거의 끝 없이 주어질 수 있으므로, 이 기술 분야에 통상의 지식을 가진 자라면 본 발명의 실시예가 클라우드 연산 서비스와 같은 네트워크(22)를 통해 서비스로 제공된 연산 자원(하드웨어와 소프트웨어)에 의해 제공되거나 다수의 컴퓨터 또는 다른 외부 자원(42) 중에 분산된 컴퓨터(30) 외부에 위치된 애플리케이션을 포함할 수 있다는 것을 이해할 수 있을 것이다.
HMI(40)는 컴퓨터(30)의 사용자가 컴퓨터(30)와 직접 상호 작용할 수 있게 하는 알려진 방식으로 컴퓨터(30)의 프로세서(32)에 동작가능하게 연결될 수 있다. HMI(40)는 비디오 및/또는 영숫자 디스플레이, 터치 스크린, 스피커 및 정보를 사용자에 제공할 수 있는 임의의 다른 적절한 오디오 및 비주얼 지시자를 포함할 수 있다. HMI(40)는 사용자로부터 명령 또는 입력을 수신하고 입력된 정보를 프로세서(32)에 송신할 수 있는 영숫자 키보드, 포인팅 디바이스, 키패드, 푸시버튼, 제어 노브(control knob), 마이크로폰 등과 같은 입력 디바이스 및 제어부를 더 포함할 수 있다.
이제 도 3을 참조하면 본 발명의 일 실시예에 따라, 여행 계획 모듈(52)은 출발지 및 목적지 데이터(54), 출발 및 도착 시간 데이터(55), 트립 제약사항 데이터(56) 및 여행자 선호도 데이터(57)와 같은 여행 요청에 관한 데이터를 수신하도록 구성될 수 있다. 여행 계획 모듈(52)은 애플리케이션(48)(도 2)으로 표현될 수 있다. 출발지 및 목적지 데이터(54)는 시작 위치-종료 위치 쌍(예를 들어, 도시 쌍), 출발 및 도착 도시에 있는 특정 위치 또는 액세스 지점, 예를 들어, 항공편 구간을 위한 공항, 철도 구간을 위한 열차역, 버스 또는 다른 도로 기반 운송 형태를 위한 거리 주소, 또는 여행 요청에 의해 한정된 임의의 다른 적절한 시작 및 종료 위치를 한정할 수 있다. 출발지 및 목적지 데이터(54)는 GPS(Global Positioning Satellite) 좌표와 같은 지리적 좌표를 더 한정하거나 또는 지리적 좌표로 변환될 수 있다. 출발지는 여행자에 의해 입력되거나, 또는 여행자 시스템(20)에 의해 획득된 GPS 좌표에 기초하여 결정될 수 있다. 예를 들어, 스마트 폰 또는 다른 모바일 디바이스를 포함하는 여행자 시스템(20)은 GPS 수신기를 포함할 수 있고, 여행자의 위치를 여행 계획 모듈(52)에 제공할 수 있다. 출발 및 도착 시간 데이터(55)는 출발지로부터 출발하여 목적지에 도착하기 원하는 날짜와 시간을 한정할 수 있다.
트립 제약사항 데이터(56)는 원하는 트립을 포함하는 구간 또는 중간기착 중 하나 이상에 하나 이상의 시간 제약사항에 관한 조건을 한정할 수 있다. 이들 조건은 (1) 최소 또는 최대 허용가능한 구간 지속시간과 같은 구간 제약사항, 및 (2) 최소 또는 최대 허용가능한 중간기착 지속시간과 같은 중간기착 제약사항을 포함할 수 있다. 여행자 선호도 데이터(57)는 트립 요청에 포함되거나, 또는 데이터베이스에 사용자 프로파일의 일부로 유지될 수 있다. 데이터(54-57)는 여행사 시스템(16)이 여행자 시스템(20)으로부터 여행 요청을 수신한 것에 응답하여 예를 들어 여행사 시스템(16)으로부터 수신될 수 있다.
여행자 선호도 데이터(57)는 사용자 인터페이스를 통해 인에이블된 옵션을 식별하는 여행자 입력에 대응하는 데이터를 포함할 수 있다. 선택된 옵션은 여행사 시스템(16)에 의해 여행자에 제공된 옵션에 적어도 부분적으로 의존할 수 있다. 여행자에 제공된 예시적인 선택가능한 옵션은, (1) 선호되는 항공사, 예를 들어, 항공사, 철도 또는 버스 라인; (2) 예를 들어, 전세 항공편(charter flight)과 같은 선호되는 항공편 서비스; (3) 예를 들어, 난스탑(non-stop) 또는 직항 구간과 같은 선호되는 연결 모드; (4) 트립이 항공 구간과 철도 구간과 같은 2개 이상의 구간 유형을 포함하여야 하는지 여부를 지정하는 선택을 포함하는 다중-모드 옵션; (5) 스케줄을 ±d 일의 시간 창(time window)으로 자동적으로 시프트하는 시간 슬라이딩 창(time sliding window) 옵션; (6) 예를 들어, 개인, 회사 또는 여행사와 같은 여행자 유형; 및 (7) 특정 연결 위치의 지정을 포함할 수 있다. 여행자 선호도 데이터(57)는 랭킹 기준을 결정하기 위해 여행 계획 모듈(52)에 의해 사용될 수 있다.
여행 계획 모듈(52)은 스케줄링 데이터베이스(62), 라우팅 데이터베이스(63), 동작 데이터베이스(64) 및 활동 데이터베이스(65)와 통신할 수 있다. 각 데이터베이스(62-65)는 데이터베이스(44)(도 2) 내 데이터베이스(50)로 표현될 수 있다. 여행 계획 모듈(52)은 루트 세트(72)를 생성하는 계산 엔진(70)과 스케줄링 엔진(74)을 포함할 수 있다. 스케줄링 엔진(74)은 트립 제약사항 데이터(56)와 여행자 선호도 데이터(57)를 고려하여 루트 세트(72)에 기초하여 여행 제안(76)을 생성할 수 있다. 여행 제안(76)은 랭킹 기준에 기초하여 랭킹매겨지거나 및/또는 선택될 수 있다. 스케줄링 엔진(74)은 또한 활동 데이터베이스(65)로부터 검색된 데이터와, 여행 제안(76)에 있는 중간기착에 기초하여 하나 이상의 활동 추천(78)을 생성할 수 있다.
스케줄링 데이터베이스(62)는 구간에 대해 스케줄된 출발 및 도착 시간과, 구간을 제공하는 항공사와 같은 구간 스케줄 정보를 제공할 수 있다. 구간 스케줄 정보는 여행 제안(76)을 생성하기 위해 여행 계획 모듈(52)에 의해 사용될 수 있다. 이를 위해, 스케줄링 데이터베이스(62)는 항공편, 열차, 버스 루트와 같은 서비스 정보의 색인된 리스트로서 하나 이상의 항공사에 의해 제공되는 이용가능한 구간, 및 이 서비스와 각 구간에 대한 항공사를 식별하는 식별 번호에 관한 데이터를 포함할 수 있다. 각 구간은 "시장(market)"을 형성하는 2개의 위치를 연결하는 항공편, 열차 또는 버스와 같은 스케줄된 운송 서비스를 한정할 수 있다. 이 구간은 시장에서 일방향 여행을 제공하는 특정 운송 서비스를 한정할 수 있다. 예시적인 구간은 난스탑 직항 운송 서비스(예를 들어, 시장을 연결하는 단일 레그(leg)를 가지는 항공편), 중간 위치에 기착(stop)을 하는 직항 운송 서비스, 및/또는 다수의 레그(예를 들어, 여행자에 비행기를 환승할 것을 요구하는 항공편)들 사이에 하나 이상의 연결을 포함하는 운송 서비스를 포함할 수 있으나 이들로 제한되지 않는다.
스케줄링 데이터베이스(62)는 하나 이상의 항공사에 대해 스케줄된 구간에 관한 데이터를 포함할 수 있다. 이 데이터는 시작 및 종료 위치, 또는 구간에 의해 서비스되는 시장, 스케줄된 출발 및 도착 시간, 비용, 이용가능성, 구간의 유형(항공, 철도 또는 버스 서비스), 여행 시간, 서비스 등급, 및 구간에 관한 임의의 다른 데이터를 포함할 수 있다. 스케줄링 데이터베이스(62)는 여행 제안(76)을 한정하는데 사용되는 구간 정보를 제공할 수 있다. 본 발명의 일 실시예에서, 스케줄링 데이터베이스(62)는 구간을 제공하는 항공사에 의해 각각 유지되는 복수의 데이터베이스, 복수의 소스로부터 구간 정보를 취합하는 중심 데이터베이스, 또는 별개의 및 중심 데이터베이스의 조합을 포함할 수 있다.
라우팅 데이터베이스(63)는 항공사에 의해 제공되는 하나 이상의 구간에 의해 서비스되는 시장을 한정하는 데이터를 포함할 수 있다. 이 데이터는 시장을 한정하는 시작 쌍에 의해 색인될 수 있고, 시장을 서비스하는 각 구간에 의해 커버되는 거리 및 이 각 구간을 완료하는데 요구되는 시간, 구간이 이용가능한 날짜 또는 요일, 및 구간을 제공하는 항공사를 나타내는 데이터를 포함할 수 있다. 라우팅 데이터베이스(63)는 복수의 위치, 또는 "링크"에 의해 연결된 "노드"를 포함하는 하나 이상의 운송 네트워크를 한정하는 데이터를 제공할 수 있고, 여기서 링크된 노드의 각 쌍은 적어도 하나의 구간에 의해 서비스되는 시장에 대응한다. 예를 들어, 하나 이상의 구간을 가지는 시장은 링크에 의해 연결된 2개의 노드에 의해 한정될 수 있다. 공통 위치를 공유하는 2개의 시장(예를 들어, 시카고-뉴욕 및 뉴욕-파리)은 2개의 링크(시카고를 뉴욕을 연결하는 하나 이상의 구간, 및 뉴욕을 파리에 연결하는 하나 이상의 구간)에 의해 연결된 3개의 노드(시카고, 뉴욕 및 파리)에 의해 한정될 수 있다.
라우팅 데이터베이스(63)는 출발지와 목적지에 대응하는 노드를 연결하는 링크를 선택하는 것에 의해 계산 엔진(70)이 출발지를 목적지에 연결하는 루트를 생성할 수 있게 할 수 있다. 이들 루트는 여행 제안(76)을 생성하는데 사용될 수 있는 스케줄된 구간을 스케줄링 데이터베이스(62)에서 식별하기 위해 스케줄링 엔진(74)에 의해 사용될 수 있다. 본 발명의 대안적인 실시예에서, 스케줄링 데이터베이스(62)와 라우팅 데이터베이스(63)는 단일 데이터베이스로 통합될 수 있다. 여행 계획 모듈(52)은 또한 여행 제안(76)을 생성하기 위해 스케줄링 데이터베이스에 저장된 데이터에만 의존할 수 있고, 이 경우 라우팅 데이터베이스는 제거될 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 본 발명의 실시예가 라우팅 데이터베이스(63)를 포함하는 시스템으로 제한되지 않는다는 것을 이해할 수 있을 것이다.
동작 데이터베이스(64)는 여행 제안(76)에 영향을 미칠 수 있는 일회성 이벤트에 관한 실시간 데이터를 제공할 수 있다. 예를 들어, 동작 데이터베이스(64)는 현재 또는 예측된 날씨 상태, 취소된 항공편, 열차 탈선, 도로 건설, 파업 및 스케줄된 구간을 제공하는 항공사의 능력에 영향을 미칠 수 있는 다른 이벤트에 관한 데이터를 포함할 수 있다. 본 발명의 일 실시예에서, 여행 계획 모듈(52)은 여행 제안을 생성할 때 일회성 이벤트를 고려하기 위해 동작 데이터베이스(64)에 의해 제공된 데이터를 사용할 수 있다. 예를 들어, 여행 계획 모듈(52)은 취소된 항공편을 체크하고 여행 제안 생성 공정으로부터 임의의 영향을 받은 구간을 제거하도록 구성될 수 있다.
여행 계획 모듈(52)은 클라우드-기반 서비스로서, GDS(12), 여행사 시스템(16), 여행 계획 시스템(18)과 같은 하나 이상의 연산 시스템에서 실행되는 하나 이상의 애플리케이션(48)에 의해 또는 임의의 다른 적절한 연산 시스템에 의해 제공될 수 있다. 본 발명의 일 실시예에서, 여행사 시스템(16)은 하나 이상의 여행 제안(76) 및/또는 활동 추천(78)을 생성하는데 사용되는 데이터(54-57)를 여행 계획 모듈(52)에 제공할 수 있다. 여행 제안(76)과 활동 추천(78)은 여행자 시스템(20)을 통해 여행자에 디스플레이하기 위해 여행사 시스템(16)으로 송신될 수 있다.
여행 계획 모듈(52)은 각 여행 제안이 트립 제약사항을 충족시키도록 중간기착을 통해 출발지와 목적지를 연결하는 2개 이상의 구간을 포함하는 여행 제안(76)을 생성하도록 구성될 수 있다. 트립 제약사항은 또한 레스토랑, 호텔 또는 레저 활동이 중간기착 위치에서 또는 그 부근에서 이용가능할 요구조건과 같은 활동 관련된 제약사항을 포함할 수 있다. 이 경우에, 여행 계획 모듈(52)은 원하는 활동 관련된 제약사항을 충족시키는 중간기착 위치를 통해 출발지와 목적지를 연결하는 구간을 선택할 수 있다.
여행 계획 모듈(52)은 여행자 선호도 데이터(57)에 기초하여 여행 제안(76)을 필터링할 수 있다. 여행 계획 모듈(52)은 특정 항공사(예를 들어, AIR FRANCE
Figure pat00001
)에 대해, 또는 항공사에 독립적인 다수의 운송 모드에 대해 특정 운송 모드(예를 들어, 항공 여행만)를 가지는 트립을 수케줄하는데 사용될 수 있다. 다수의 운송 모드를 포함하는 여행에서, 여행 제안(76)은 상이한 운송 모드(예를 들어, 항공 구간과 철도 구간)를 포함하는 구간을 포함할 수 있다. 이 경우에, 여행자는 여행 요청에서 선호되는 운송 모드와 관련된 여행자 선호도를 지정할 수 있다.
여행 요청은 요청된 트립에 대해 출발지와 목적지를 한정하는 데이터를 포함할 수 있다. 출발지는 트립이 시작하는 원하는 지리적 위치 또는 출발 지점에 대응할 수 있는 반면, 목적지는 트립이 종료하는 원하는 지리적 위치 또는 도착 지점에 대응할 수 있다. 여행자는 또한 사용자 인터페이스를 통해 원하는 출발 및 도착 날짜와 시간을 한정하는 데이터를 입력할 수 있다. 이 데이터는 출발지로부터 출발하기를 원하는 날짜와 시간, 및 목적지에 도착하기를 원하는 날짜와 시간을 포함할 수 있다. 여행자는 또한 전술된 바와 같이 여행 제안(76)을 랭킹매기는데 사용되는 기준을 제공할 수 있는 하나 이상의 여행자 선호도를 한정하는 데이터를 입력할 수 있다. 여행 계획 모듈(52)은 여행 제안을 랭킹매기는데 사용되는 기준을 사용하여 여행자 선호도와 보다 가까이 일치하는 여행 제안이 여행자에 보다 두드러지게 디스플레이되도록 할 수 있다. 예를 들어, 여행 계획 모듈(52)은 여행 요청을 충족시키는 여행 제안의 총 수 중에서, 여행자 선호도를 충족시키는 부분만이 여행자에 디스플레이되도록 구성될 수 있다. 예시적인 여행자 선호도는 구간의 비용을 포함하는 랭킹 기준, 선호되는 운송 모드 또는 여행 제안을 포함하는 구간 유형, 구간에 대한 서비스 등급, 구간의 거리, 및 임의의 시간적 트립 제약사항 이상의 원하는 구간 여행 시간을 한정할 수 있다.
구간 제약사항은 트립의 원하는 구간별 관련된 하나 이상의 시간 제약사항을 포함할 수 있다. 예를 들어, 구간 제약사항은 트립의 구간에 대한 시간 제약사항(예를 들어, 적어도 하나의 구간은 최소 구간 시간을 초과하는 지속시간을 가져야 한다), 또는 트립의 모든 구간에 대한 시간 제약사항(예를 들어, 구간은 최대 시간 제약사항을 초과하는 지속시간을 가질 수 없다)을 포함할 수 있다. 예시적인 구간 제약사항은 요청된 트립의 적어도 하나의 구간에 의해 제공되어야 하는 최소 지속시간을 한정할 수 있는 최소 구간 시간, 및 임의의 구간에 대해 최대 허용가능한 지속시간을 한정할 수 있는 최대 구간 시간을 포함할 수 있다.
최소 구간 시간 제약사항은, 예를 들어, 여행자가 기간 트립의 일부 동안 중단 없는 기간(uninterrupted period)을 원할 때 지정될 수 있다. 이 중단 없는 시간 기간은 일하기, 읽기, 휴식(resting) 또는 임의의 다른 적절한 활동과 같은 트립 동안 계획된 활동을 하기 위해 여행자에 의해 사용될 수 있다. 본 발명의 일 실시예에서, 최소 구간 시간은 특정 시간 창과 연관될 수 있다. 이 시간 창은 중단 없는 시간 기간이 발생하는 원하는 시간 기간을 지정할 수 있다. 이를 위해, 발생 제약사항의 시간은 최소 지속시간을 갖는 구간이 발생하여야 하는 시간 창을 한정하거나, 또는 구간의 스케줄된 발생 내에 있어야 하는 시간 창을 한정할 수 있다.
최대 구간 시간 제약사항은 요청된 트립의 임의의 구간에 대해 허용된 최대 지속시간을 한정할 수 있다. 여행자가 최대 구간 시간을 초과하는 시간 동안 연속적으로 여행할 수 없거나 여행을 원치 않는 경우 여행자는 최대 구간 시간을 지정할 수 있다. 예를 들어, 여행자는 여행을 주기적으로 중단하고, 의료 상의 이유 또는 개인적인 편의를 위해 운송 수단을 빠져나가기를 원할 수 있다. 최대 구간 시간은 여행자가 트립의 각 구간의 지속시간을 제한하게 할 수 있다.
중간기착 제약사항은 트립을 포함하는 하나 이상의 중간기착에 대해 하나 이상의 시간 제약사항을 한정할 수 있다. 예를 들어, 여행자가 트립 동안 중단을 원하는 경우, 여행자는 최소 허용가능한 중간기착 지속시간을 초과하는 지속시간을 갖는 중간기착을 요구하는 중간기착 제약사항을 지정할 수 있다. 예시적인 중간기착 제약사항은 중간기착에 대해 최소 및/또는 최대 분/시간과 같은 중간기착에 대해 원하는 지속시간을 한정하는 시간 제약사항을 포함할 수 있다. 시간 제약사항은 트립 동안 구간 동안 수행하기에 곤란하거나 불가능할 수 있는 하나 이상의 작업(task) 또는 이벤트를 스케줄하기에 충분한 지속시간의 중단을 가지는 것을 보장하기 위해 여행자에 의해 지정될 수 있다. 예를 들어, 여행자는 전화 통화(phone call)를 수행하거나, 웹에 연결하여 이메일을 체크하거나, 점심을 먹거나, 클라이언트와 만나거나, 비지니스 활동을 수행하거나, 의료 상의 치료에 접근하거나, 휴식하는 시간을 스케줄하거나, 또는 중간기착 위치를 관광하는 것과 같은 레크리에이션 활동을 스케줄하기를 원할 수 있다. 중간기착 제약사항은 중간기착이 발생하여야 하는 시간 창(즉, 이 창은 중간기착을 포함한다)을 한정하거나, 또는 중간기착 동안 발생하여야 하는 시간 창(즉, 이 창은 중간기착에 의해 포함된다)을 한정할 수 있다.
중간기착 제약사항은 또한 문화 활동 또는 중간기착 위치에 있는 시설에 의해 제공되는 활동과 같은 중간기착 동안 여행자가 참가하기를 원하는 활동을 식별하는 데이터에 기초하여 결정될 수 있다. 원하는 활동을 식별하는 데이터는 여행자에 의해 제출된 여행 요청에 포함되거나, 또는 여행자 프로파일에 기초하여 결정될 수 있다. 예를 들어, 여행사 시스템(16)은 데이터베이스에 여행자 프로파일을 유지할 수 있다. 여행자 프로파일은 여행자가 서명하거나 또는 여행사 시스템(16)에 사용자로 등록한 것에 응답하여 생성될 수 있다. 활동 관련된 제약사항은 또한 특정 여행자 선호도로부터 결정될 수 있다.
여행 계획 모듈(52)은 여행 제안(76)이 원하는 활동을 수용할 수 있도록 활동 관련된 제약사항을 여행 제안(76)을 결정하는 공정에 적용할 수 있다. 예를 들어, 여행자는 트립이 중단을 제공하는 적어도 n 시간의 중간기착, 및 중단 동안 여행자가 참가하기를 원하는 하나 이상의 활동을 지정하는 추가적인 트립 제약사항을 포함할 것을 지정할 수 있다. 예시적인 중간기착 제약사항은 (1) 예를 들어 호텔에 체크인하는 것에 의해 또는 캠핑하는 것에 의해 휴식하기 위한 n 시간의 중간기착; (2) 레스토랑 또는 호텔에서 식사를 하기 위한 n 분의 중간기착; (3) 문화 활동, 자연 활동 또는 유람과 같은 관광 활동에 참가하기 위한 n 시간의 중간기착; (4) 쇼핑을 위한 n 시간의 중간기착; (5) 걷기, 수영, 골프, 테니스 등과 같은 운동 활동을 위한 n 시간의 중간기착; 또는 (6) 극장, 영화 또는 콘서트를 관람하는 것과 같은 오락(entertainment)을 위한 n 시간과 m 분의 중간기착을 포함할 수 있다.
여행 계획 모듈(52)은 구간을 선택하고 출발지와 목적지를 연결하는 여행 제안을 생성할 때 트립 제약사항을 고려하도록 구성될 수 있다. 여행 계획 모듈(52)은 트립 제약사항 데이터(56)를 충족시키는 구간과 중간기착을 포함하는 여행 제안(76)을 출력할 수 있다. 여행 계획 모듈(52)은 또한 여행 요청에 한정되거나 또는 여행자 프로파일에 기초한 중간기착 활동을 고려한 여행 제안(76)을 생성할 수 있다. 여행 제안(76)은 활동이 일어나는 지속시간과 위치를 가지는 중간기착을 포함할 수 있다. 나아가, 여행 계획 모듈(52)은 중간기착에서 이용가능한 활동을 결정하고 사용자 프로파일에 대응하는 이용가능한 활동에 기초하여 활동 추천(78)을 제공할 수 있다.
연속성을 우선시하고 총 여행 시간을 최소화하는 종래의 여행 계획 제품 비해, 여행 계획 모듈(52)은 여행자가 동적으로 트립 제약사항을 고려하여 여행 제안을 요청할 수 있게 한다. 이를 위해, 여행 계획 모듈(52)은 원하는 시간적 요구조건에 대한 트립 제안을 최적화할 수 있다. 여행 계획 모듈(52)은 구간과 중간기착 제약사항을 충족시키는 트립을 또한 한정하는 구간을 필터링하는데 적용될 수 있는 시간 연속성 제약사항을 또한 적용할 수 있다.
동작시, 여행자는 사용자 인터페이스를 통해 여행 요청을 제출할 수 있다. 사용자 인터페이스는, 예를 들어, 여행사 시스템(16)과 여행자 시스템(20) 사이에 상호 작용을 하는 것에 의해 제공될 수 있다. 본 발명의 일 실시예에서, 사용자 인터페이스는 여행사 시스템(16)에서 실행되는 웹 서버 애플리케이션에 의해 생성된 웹페이지에 액세스하는 것에 응답하여 여행자 시스템(20)에서 실행되는 브라우저 애플리케이션에 의해 여행자에 디스플레이될 수 있다. 여행자는 예를 들어 양식을 채우는 것에 의해 사용자 인터페이스에 데이터를 입력하는 것에 의해 여행 요청을 제출할 수 있다. 여행 계획 모듈(52)은 제출된 요청을 수신하거나, 또는 요청으로부터 추출되거나 결정된 데이터를 수신할 수 있다.
여행 요청을 수신한 것에 응답하여, 여행 계획 모듈(52)은 여행 요청 레코드를 생성할 수 있다. 여행 요청 레코드는 구간과 중간기착 제약사항에 대한 필드와 함께 제출된 요청 양식에 포함된 정보에 대응하는 필드를 포함할 수 있다. 본 발명의 일 실시예에서, 여행 계획 모듈(52)은, 예를 들어, 이름 인식 기능을 사용하여 여행 요청을 스캔하는 것에 의해 요청에 의해 한정된 출발지와 목적지를 식별할 수 있다. 여행 계획 모듈(52)은 예를 들어, 하나 이상의 룩업 테이블을 사용하여 출발지와 목적지와 연관된 식별자를 결정할 수 있다. 이들 식별자를 사용하여 구간을 제공하는 하나 이상의 항공사에 가장 가까운 액세스 지점을 결정할 수 있다. 이 액세스 지점은 트립에 대한 유효 시작 및 종료 위치로 사용될 수 있다.
계산 엔진(70)은 스케줄링 데이터베이스(62) 및/또는 라우팅 데이터베이스(63)로부터 수신된 데이터에 기초하여 루트 세트(72)를 생성하도록 구성될 수 있다. 루트 세트(72)의 각 루트는 원하는 여행 날짜에 출발지와 목적지를 연결하는 링크의 조합을 포함할 수 있고, 중간기착 위치에 대응하는 노드를 통해 출발지와 목적지를 연결하는 적어도 2개의 링크를 포함할 수 있다. 여행 계획 모듈(52)은 루트 세트(72)의 각 루트에 대해 루트 레코드를 생성할 수 있다. 본 발명의 일 실시예에서, 계산 엔진(70)은 라우팅 데이터베이스(63)에 저장된 라우팅 데이터에 의존하는 비-시간표 기반 엔진일 수 있다. 즉, 계산 엔진(70)은 루트를 포함하는 시장을 서비스하는 구간에 대해 스케줄된 출발 및 도착 시간에 관계없이 출발지와 목적지를 연결하는 루트를 생성할 수 있다.
이제 도 4를 참조하면, 라우팅 데이터베이스(63)는 구간 데이터를 복수의 밀도 테이블(density table)(80)로 구성할 수 있다. 각 밀도 테이블(80)은 스케줄 데이터베이스(62)에 저장된 구간 데이터의 특정 표현을 포함할 수 있고, 대응하는 시장을 서비스하는 구간 세트를 한정할 수 있다. 본 발명의 일 실시예에서, 밀도 테이블(80)은 시장을 한정하는 시작 위치-종료 위치 쌍(82)에 기초하여 색인될 수 있고(예를 들어, NCE-PAR), 거리(84)(예를 들어, 428 km), 추정된 여행 시간(86)(예를 들어, 60 분으로 추정된 항공편 시간 또는 EFT), 구간이 이용가능한 날짜(88)(예를 들어, 12-MAR-10), 구간을 제공하는 항공사를 식별하는 하나 이상의 항공사 코드(90)(예를 들어, 1A, 6X, AF, DL), 및 각 항공사에 의해 시장에서 운영되는 대응하는 서비스 번호(92)(예를 들어, 항공사 1A에 대해 175개의 서비스)를 포함하는 시장을 서비스하는 구간 세트에 관한 정보를 포함할 수 있다. 밀도 테이블(80)은 스케줄 데이터베이스(62)로부터 수신된 정보에 기초하여 생성되고, 스케줄 데이터베이스(62)의 구조화된 표현을 제공하기 위해 라우팅 데이터베이스(63)에 저장될 수 있다.
라우팅 데이터베이스(63)는 계산 엔진(70)이 하나 이상의 중간기착 위치를 통해 출발지와 목적지를 연결하는 루트를 신속히 결정할 수 있게 한다. 계산 엔진(70)은 랭킹 기준에 기초하여 루트 세트(72)에 있는 각 루트를 랭킹매기도록 더 구성될 수 있다. 루트를 랭킹매기는데 사용되는 기준은 여행 시간, 비용 및 거리와 관련된 기준을 포함할 수 있다. 본 발명의 일 실시예에서, 랭킹 기준은 여행자 선호도에 기초할 수 있고, 밀도 테이블(80)의 내용, 예를 들어, 거리(84)와 추정된 여행 시간(86)에 기초하여 적용될 수 있다.
루트 세트(72)를 생성하기 위해, 계산 엔진(70)은 최저 거리 또는 비용 면에서 출발지와 목적지를 연결하는 최상의 루트를 결정할 수 있다. 계산 엔진(70)은 또한 트립 제약사항 데이터(56)에 의해 한정된 트립 제약사항을 충족시키기에 충분한 개수의 중간기착을 제공하는 루트를 생성할 수 있다. 루트 생성은 또한 활동 관련된 제약사항을 고려할 수 있다. 루트 세트(72)는 출발지를 목적지에 연결하거나, 또는 유효 출발지 및 목적지 위치를 연결하는 2개 이상의 링크를 포함하는 하나 이상의 루트를 포함할 수 있다. 각 루트는 트립 제약사항을 충족시킬 수 있도록 결정된 위치에서 최소 개수(예를 들어, 적어도 하나)의 중간기착을 포함할 수 있다. 더욱이, 각 중간기착을 한정하는 구간은 여행 시간, 거리 및/또는 루트 연속성을 최적화하도록 선택될 수 있다.
스케줄 엔진(74)은 루트 세트(72)에 루트를 채우는데 사용되는 구간, 및 여행 제안(76)으로 선택하기 위해 채워진 루트를 결정하도록 구성될 수 있다. 스케줄 엔진(74)은 구간과 중간기착 제약사항과 관련된 조건을 충족시키는 출발 및 도착 시간을 가지는 구간을 스케줄할 것을 시도할 수 있다. 구간의 스케줄을 한정하는 데이터는 스케줄 데이터베이스(62)에 저장될 수 있고, 여기서 각 구간은 하나 이상의 항공사에 의해 제공될 수 있다. 스케줄 엔진(74)은 루트를 포함하는 구간에 대해 이용가능한 도착 및 출발 시간을 획득하고, 트립 제약사항을 충족시키는 여행 제안을 생성할 수 있다. 스케줄 엔진(74)이 분석해야 하는 루트의 수를 관리가능한 수로 제한하는 것에 의해, 루트 세트(72)는 여행 제안(76)의 생성을 가속시킬 수 있다.
각 여행 제안(76)은 여행자가 여행을 중단할 수 있는 적어도 하나의 "강제된" 중간기착을 포함할 수 있다. 중간기착은 여행 제안을 포함하는 구간이 구간 제약사항과 활동 관련된 제약사항을 충족시키도록 구성될 수 있다. 나아가 스케줄 엔진(74)은 중간기착의 시간과 위치에서 이용가능한 활동 데이터베이스(65)의 활동에 기초하여 활동 추천(78)을 생성할 수 있다.
여행 제안(76)의 전부 또는 일부는 사용자 인터페이스에 디스플레이될 수 있고, 랭킹 기준에 기초하여 결정된 순서에 따라 디스플레이될 수 있다. 사용자 인터페이스는 또한 각 여행 제안의 비용과 같은 추가적인 정보를 디스플레이할 수 있다. 하나 이상의 활동 추천(78)이 여행사가 이러한 활동과 관련된 서비스를 교차 판매할 수 있도록 디스플레이될 수 있다. 본 발명의 일 실시예에서, 사용자 인터페이스는 특정 유형의 정보만이 여행 제안(76)과 연관하여 디스플레이되도록 여행자에 의해 구성가능할 수 있다. 예를 들어, 사용자 인터페이스는 여행사 시스템(16)이 여행사 직원 전용이라면 상이한 데이터를 디스플레이하도록 구성될 수 있다. 사용자 인터페이스는 또한 여행 제안을 하이퍼링크로 디스플레이하여 여행자가 이 링크를 선택하는 것에 의해 여행자를 다른 웹페이지로 인도하여 여행자가 여행 제안에 대해 보다 많은 정보를 획득할 수 있도록 할 수 있다.
사용자 인터페이스는 여행자가 여행 제안을 단순히 선택하는 것에 의해 선호되는 여행 제안을 부킹할 수 있도록 더 구성될 수 있다. 여행자가 여행 제안을 선택한 것에 응답하여, 여행사 시스템(16)은 여행 제안의 구간을 제공하는 항공사를 나열하는 대응하는 트립에 대해 부킹가능한 여행 일정을 생성할 수 있다. 여행사 시스템(16)은 또한 여행 제안에 제공된 정보를 사용하여 외부 웹 사이트(예를 들어, 항공사 웹 사이트)에 분명히 연결하는 것에 의해 여행 일정에 있는 항목에 대해 추가적인 쇼핑을 촉진할 수 있다.
이제 도 5를 참조하면, 여행 계획 모듈(52)에 의해 실행될 수 있는 공정(100)을 도시하는 흐름도가 제시된다. 블록(102)에서, 여행 요청이 여행자로부터 수신된다. 여행 요청은 출발지 및 목적지 데이터(54), 출발 및 도착 시간 데이터(55), 및 트립 제약사항 데이터(56)를 한정할 수 있다. 여행 요청은 또한 여행자 선호도 데이터(57)의 전부 또는 일부를 한정할 수 있다.
데이터(54-57)를 수신한 것에 응답하여, 공정(100)은 블록(104)으로 진행하고, 트립 제약사항을 충족시키는데 요구되는 최소의 구간 개수를 결정할 수 있다. 예를 들어, 단일 중간기착을 요구하는 트립 제약사항을 가지는 트립에 요구되는 최소의 구간 개수는 2개의 구간일 수 있다. 최소의 구간 개수를 결정한 것에 응답하여, 공정(100)은 블록(106)으로 진행할 수 있다.
블록(106)에서 공정(100)은 루트 세트(72)를 생성할 수 있다. 루트 세트(72)의 각 루트를 포함하는 링크는 라우팅 데이터베이스(63)로부터 수신된 데이터에 기초하여 결정될 수 있다. 이 루트는 랭킹 기준에 대응하여 랭킹매겨질 수 있다. 루트를 랭킹매기는데 사용되는 예시적인 랭킹 기준은 비용, 여행 시간 및/또는 거리를 포함할 수 있다. 각 루트는 이 루트가 하나 이상의 중간기착 위치를 통해 출발지와 목적지를 연결하고, 최소의 구간 개수보다 크거나 동일한 개수의 링크를 구비하고, 랭킹 기준을 최적화하도록 구성될 수 있다. 랭킹 공정은, 예를 들어, 더 낮은 상대적인 비용, 총 여행 시간을 가지거나, 또는 더 짧은 거리를 커버하는 루트가 더 높은 상대적인 비용, 총 여행 시간을 가지거나, 또는 더 긴 거리를 커버하는 루트에 비해 더 높은 랭킹을 가지도록 구성될 수 있다. 본 발명의 일 실시예에서, 루트 세트(72)는 여행자 선호도 데이터(57) 및/또는 중간기착 활동의 위치 또는 타이밍에 기초하여 필터링될 수 있다. 각 중간기착에서 이용가능한 활동의 위치, 타이밍 및 유형은 활동 데이터베이스(65)로부터 수신된 데이터에 기초하여 결정될 수 있다. 루트 세트(72)를 생성한 것에 응답하여, 공정(100)은 블록(108)으로 진행할 수 있다.
블록(108)에서, 여행 제안(76) 세트는 루트 세트(72)로부터 하나 이상의 루트에 기초하여 생성될 수 있다. 이를 위해, 루트들이 선택되고 이 루트에 출발 및 도착 시간 데이터(55)에 기초한 구간과 스케줄 데이터베이스(62)로부터 수신된 구간 스케줄 데이터가 채워질 수 있다. 링크에 대해 스케줄된 구간의 조합이 있는 경우 최종 여행 제안이 트립 제약사항을 충족시키게 하는 루트를 포함하는 루트가 선택될 수 있다. 선택된 루트를 채우는 것은 선택된 루트의 각 링크에 대해 스케줄된 구간을 선택하는 것에 의해 출발지와 목적지를 연결하는 구간의 하나 이상의 조합을 생성하는 것을 포함할 수 있다. 각 링크가 2개 이상의 구간에 의해 서비스될 수 있으므로, 2개 이상의 구간 조합이 각 루트에 대해 생성될 수 있다. 여행 제안(76)은 트립 제약사항을 충족시키는 구간의 조합으로부터 생성될 수 있고, 공정은 블록(110)으로 진행할 수 있다.
블록(110)에서, 여행 제안(76) 세트는 여행자가 원하는 여행 제안을 선택할 수 있도록 여행자에 디스플레이될 수 있다. 본 발명의 일 실시예에서, 여행 제안(76)은 여행 제안에 포함된 중간기착 위치에 대해 활동 추천을 더 포함할 수 있다. 공정(100)은 여행자가 종래의 여행 계획 시스템의 시간 연속성 요구조건을 극복하게 하는 여행 스케줄 방법을 제공할 수 있다. 이것은 종래의 여행 계획 방법이 제공하지 못하는 구간과 중간기착 제약사항을 여행자가 입력하게 하는 것에 의해 달성될 수 있다.
이제 도 6을 참조하면, 블록(106)에 대해 전술된 바와 같이 루트 세트(72)를 생성하는 것에 대한 공정(100)을보다 상세히 도시하는 본 발명의 일 실시예에 따른 흐름도가 제시된다. 루트는 (도시된 바와 같이) 병렬로 또는 회귀적인 방식으로 k, k+1, k+2, ... k+n개의 링크를 구비하는 링크의 조합을 선택하는 것에 의해 생성될 수 있고, 여기서 k = 트립 제약사항을 충족시키는데 요구되는 최소 구간 개수이다. 도 5에 대해 전술된 바와 같이, 루트를 포함하는 링크의 조합은 라우팅 데이터베이스(63)로부터 수신된 데이터에 기초하여 결정될 수 있다.
블록(106)을 통한 각 경로는 각 루트가 K n 개의 링크에 의해 연결된 K n +1개의 노드를 포함하는 네트워크에 의해 모델링되도록, 지시된 링크 개수를 가지는 루트 세트를 생성할 수 있고, 여기서 n = 1 내지 N이다. 이들 네트워크는 출발지를 나타내는 노드가 중간기착을 나타내는 노드를 통해 목적지를 나타내는 노드에 연결되도록 구성될 수 있고, 라우팅 데이터베이스(63)로부터 수신된 데이터에 기초하여 생성될 수 있다. 즉, 각 네트워크는 출발지를 나타내는 노드를 중간기착 위치를 나타내는 K n -1개의 연결 노드를 통해 목적지를 나타내는 노드로 연결하는 K n 개의 링크를 포함할 수 있다. 각 모델은 여행 계획 모듈(52)에 의해 처리하기에 적절한 대응하는 루트의 수학적 표현을 제공할 수 있다.
각 링크는 하나 이상의 구간이 스케줄되어 있는 시장에 대응할 수 있고, 랭킹 기준과 연관될 수 있다. 네트워크는 K N 개의 최대 링크 개수까지 하나 이상의 링크를 가지는 루트를 기술할 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 본 발명의 실시예는 루트를 한정하는 다른 방법을 사용할 수 있고, 전술된 네트워크 모델로 제한되지 않는다는 것을 이해할 수 있을 것이다.
블록(112a)에서, 계산 엔진(70)은 최소 링크 개수(K 1)를 가지는 루트를 생성할 수 있다. 여행 계획 모듈(52)은 트립 제약사항 데이터(56)에 기초하여 최소 링크 개수(K 1 )를 결정하도록 구성되거나, 또는 최소 링크 개수(K 1)가 여행 계획 모듈(52)에 제공될 수 있다. 계산 엔진(70)은 출발지를 목적지에 연결하는 K 1개의 링크를 구비하는 루트를 생성할 수 있다. 루트는 시작 위치-종료 위치 쌍(82), 거리(84), 추정된 여행 시간(86) 또는 날짜(88)와 같은 라우팅 데이터베이스(63)로부터 수신된 시장 정보에 기초하여 생성될 수 있다. 계산 엔진(70)은 또한 시장에 관한 통계적 정보와 같은 루트를 생성하는데 사용하기 위한 다른 데이터를 수신할 수 있다.
계산 엔진(70)은 중간기착-관련된 활동 제약사항과 관련된 하나 이상의 조건을 충족하지 않는 루트를 거부할 수 있다. 예를 들어, 원하는 국부적 활동을 제공하지 않는 중간기착 위치에서 종료하는 링크는 거부될 수 있다. 계산 엔진(70)은 또한 구간 제약사항, 예를 들어, 최소 구간 개수(경우에 따라 K 1 내지 K N ), 최소 허용가능한 구간 지속시간, 또는 최대 허용가능한 구간 지속시간을 충족할 수 없는 링크를 구비하는 루트를 거부할 수 있다. 선택된 루트는 K 1개의 링크를 구비하는 루트의 서브셋에 추가될 수 있다. 블록(114a)에서, 랭킹 기준은 서브셋에 있는 각 루트에 적용되어 루트는 거리, 비용 또는 추정된 여행 시간과 같은 미리 한정된 랭킹 기준에 기초하여 서브셋에서 랭킹 매겨질 수 있다.
블록(112a 및 114a)에 대해 설명된 상기 공정은 K 2 내지 K N 개의 링크를 구비하는 루트에 대해 블록(112b-112n)과 블록(114b 내지 114n)에서 반복되어 랭킹매겨진 루트의 N개의 서브셋을 생성할 수 있다. 이것은 병렬로 또는 순차적으로 수행될 수 있는데, 유사한 공정이 N개의 서브셋이 생성될 때까지 루트의 각 서브셋을 생성하도록 수행될 수 있다. N개의 서브셋이 생성된 것에 응답하여, 공정(100)은 블록(116)으로 진행할 수 있다.
블록(116)에서, 루트의 서브셋의 하나 이상의 부분이 랭킹 기준에 기초하여 선택되어 루트 세트(72)를 제공할 수 있다. 예를 들어, 상위 랭킹된 루트의 일부가 하나 이상의 서브셋으로부터 선택될 수 있다. 이 부분은 이 부분을 루트 세트(72)에 추가하기 전에 미리 한정된 필터링 기준에 기초하여 필터링될 수 있다. 이것은 구간 시간 제약사항을 충족시킬 수 있는 랭킹이 높은 링크를 포함하는 루트 세트를 생성할 수 있다.
이제 도 7을 참조하면, 본 발명의 일 실시예에 따라 블록(112a-112n)에 대해 전술된 루트를 생성하는 것에 대한 공정(100)을 보다 상세히 도시하는 흐름도가 도시된다. 루트를 설명하는 네트워크 모델을 사용하여, 공정(100)은 출발지를 나타내는 노드로부터 시작하고 그 다음 가능한 중간기착 위치를 나타내는 인접한 노드 또는 연결 노드(C1 내지 CN + 1)를 결정할 수 있다. 공정(100)은 최종 루트가 출발지 노드를 N-1개의 연결 노드를 통해 목적지 노드로 연결하는 N개의 링크를 포함할 때까지 추가적인 노드들을 직렬로 연결할 수 있다. 예로서, N=2에서, 각 최종 루트는 동일한 시작 및 종료 노드를 구비할 수 있고(즉, 노드는 출발지와 목적지를 각각 나타낸다), 각 루트는 상이한 연결 노드(C1)를 구비한다.
블록(122)에서, 공정은 구간 시간 제약사항 또는 다른 미리 한정된 파라미터의 값에 기초하여 최대 구간 시간(SMAX)을 추정할 수 있다. 이를 위해, SMAX는 여행 제안(76)을 위해 최대 허용가능한 여행 시간, 및/또는 하나 이상의 구간 시간 제약사항(예를 들어, 적용가능한 경우 최소 또는 최대 허용가능한 구간 지속시간) 중 하나 이상에 기초하여 결정될 수 있다. 최대 허용가능한 여행 시간은 출발지로부터 목적지로 특정 운송 모드를 사용하여 여행하는 것이 허용가능한 최대 시간 기간을 한정할 수 있다. 최대 허용가능한 여행 시간은 예를 들어, 루트의 링크로 표현된 시장에 관한 통계적 정보를 사용하여 여행 계획 모듈(52)에 의해 연산될 수 있다.
본 발명의 일 실시예에서, 최대 허용가능한 여행 시간은 하나 이상의 구간 제약사항에 기초하여 결정될 수 있다. 예를 들어, 구간 제약사항이 최대 허용가능한 구간 지속시간을 포함하는 경우, 최대 허용가능한 여행 시간은 최대 허용가능한 구간 지속시간으로 설정될 수 있다. 즉, 최대 허용가능한 구간 지속시간 값은 미리 한정된 최대 허용가능한 여행 시간을 오버라이드(override)할 수 있다. 구간 제약사항이 최소 허용가능한 구간 지속시간으로 구성되는 경우, 최대 허용가능한 여행 시간은 최소 허용가능한 구간 지속시간이 최대 허용가능한 여행 시간을 초과하는 경우 최소 허용가능한 구간 지속시간으로 설정될 수 있다. 본 발명의 대안적인 실시예에서, 최대 허용가능한 여행 시간은 추가적인 시간 오프셋을 최소 허용가능한 구간 지속시간 값에 추가하는 것에 의해 업데이트될 수 있다. 이 추가적인 시간 오프셋 값은 트립의 하나 이상의 특성에 의존할 수 있다. 예를 들어, 추가적인 오프셋은 구간이 국제 항공편 또는 국내 항공편에 대응하는지 여부에 따라 추가될 수 있다. 최대 허용가능한 여행 시간을 결정한 것에 응답하여, 공정(100)은 블록(124)으로 진행할 수 있다.
블록(124)에서, 공정(100)은 출발지를 나타내는 노드일 수 있는 시작 지점(P)을 선택할 수 있다. 공정(100)은 블록(126)으로 진행하고, 연결 노드(C1)를 제공할 수 있는 가능한 인접한 노드를 결정할 수 있다. 이 예시적인 경우에, 인접한 노드는 현재 노드에서 시작 위치를 가지는 구간의 종료 위치에 대응할 수 있다. 공정(100)은 현재 노드를 인접한 노드에 연결하는 링크를 네트워크 모델에 추가할 수 있고, 인접한 노드는 연결 노드(C1)의 그 다음 층을 제공할 수 있다. 인접한 노드가 현재 노드에 연결된 경우, 공정(100)은 블록(128)으로 진행할 수 있다.
블록(128)에서, 공정(100)은 부분적으로 생성된 루트 각각에 대해 루트 지속시간을 결정할 수 있다. 루트 지속시간은 시작 지점(P)을 각 연결 노드(C1)에 연결하는 링크를 서비스하는 구간에 대해 추정된 여행 시간(86)에 기초하여 결정될 수 있다. 공정은 최대 허용가능한 여행 시간을 초과하는 지속시간을 가지는 임의의 부분적으로 생성된 루트를 폐기할 수 있다.
현재 노드를 그 다음 연결 노드에 연결하는 링크를 분석하는 것에 더하여, 공정(100)은 그 다음 연결 노드에 의해 표시된 중간기착이 임의의 지정된 중간기착-관련된 활동 제약사항과 관련된 조건을 충족하는지를 결정할 수 있다. 보다 구체적으로, 중간기착-관련된 활동 제약사항에 의해 한정된 활동은 활동 데이터베이스(65)로부터 수신된 데이터와 비교될 수 있다.
활동 데이터베이스(65)는 위치 및/또는 활동에 의해 색인된 활동 리스트를 유지할 수 있다. 예시적인 활동은 관광, 식사 및 오락과 관련된 것을 포함할 수 있다. 각 활동은 연관된 활동에 참가하는데 요구되는 최소 시간 기간을 나타내는 최소 요구된 중간기착 지속시간과 연관될 수 있다. 공정(100)은 중간기착-관련된 활동 제약사항에 의해 한정된 활동을 현재 연결 노드에 대응하는 위치에서 이용가능한 활동과 비교할 수 있다. 위치에서 이용가능한 활동은 활동 데이터베이스(65)에 질문하는 것에 의해 결정될 수 있다. 적어도 하나의 활동에 일치하는 것이 발견되는 경우, 이들 활동은 여행 제안(76)에 포함하기 위해 미리 선택될 수 있다.
각 미리 선택된 활동에서, 활동과 연관된 최소 요구된 중간기착 지속시간은 구간 제약사항에 의해 요구되는 중간기착 지속시간과 비교될 수 있다. 예를 들어, 중간기착 시간 제약사항이 중간기착이 N분의 지속시간을 가질 것을 요구하는 경우, 미리 선택된 활동과 연관된 최소 요구된 중간기착 지속시간이 중간기착 지속시간 이하인 경우 현재 연결 위치는 중간기착 후보일 수 있다. 루트를 포함하는 적어도 하나의 중간기착에 대해 중간기착 지속시간 또는 이용가능한 활동이 중간기착-관련된 활동 제약사항을 충족할 수 없는 경우, 대응하는 루트는 폐기될 수 있다. N이 2를 초과하는 경우, 루트를 포함하는 각 중간기착이 고려될 수 있도록 루트가 N-1개의 연결 노드를 통해 완료될 때까지 루트를 폐기하는 판정은 지연될 수 있다.
블록(130-133)에 도시된 바와 같이, 상기 공정은 출발지 노드가 K개의 링크와 K-1개의 연결 노드를 포함하는 하나 이상의 루트에 의해 목적지 노드에 연결될 때까지 각 연결 노드(C2 내지 CK)에 대해 반복될 수 있다. 이 공정은 루트의 서브셋이 최소 구간 개수를 넘는 원하는 개수의 구간에 대해 생성될 때까지 각 가능한 연결 노드에 대해 및 K의 값에 대해 병렬로 또는 순차적으로 반복될 수 있다.
도 7에 도시된 공정에서 생성된 루트는 트립 제약사항에 의해 요구되는 조건의 적어도 일부분에 순응하는, N개의 링크를 각각 구비하는 루트 세트를 포함할 수 있다. 그 다음 가능한 연결 노드가 목적지를 나타내는 노드인 것에 응답하여, 공정(100)은 블록(134)으로 진행하고, 대응하는 루트 서브셋에 루트를 추가할 수 있다.
이제 도 8을 참조하면, 블록(108)에 대해 전술된 바와 같이 여행 제안(76)을 생성하는 것에 대한 공정(100)을 보다 상세히 도시하는 본 발명의 일 실시예에 따른 흐름도가 도시된다.
블록(142)에서, 스케줄링 엔진(74)은 블록(144)으로 진행하기 전에 루트 세트(72)로부터 루트를 선택할 수 있다. 블록(144)에서, 스케줄 엔진(74)은 선택된 루트를 포함하는 링크 각각에 대해 항공사에 의해 스케줄된 구간을 결정하거나 또는 식별할 수 있다. 구간은, 예를 들어, 각 링크에 의해 표시된 시장에 스케줄된 구간과 관련된 데이터에 대해 스케줄 데이터베이스(62)에 질문하는 것에 의해 결정될 수 있다. 스케줄된 구간과 관련된 데이터를 수신한 것에 응답하여, 공정은 블록(146)으로 진행할 수 있다.
블록(146)에서, 공정(100)은 스케줄된 구간을 루트에 있는 각 링크에 할당하거나, 또는 루트를 채우는 것에 의해 현재 루트에 대한 하나 이상의 후보 여행 제안을 생성할 수 있다. 스케줄 엔진(74)은 선택된 루트에 대한 스케줄된 구간의 모든 가능한 조합을 나타내거나, 총 가능한 조합의 일부분만을 나타내는 후보 여행 제안을 생성하거나, 또는 여행 요청으로부터 획득된 출발 및 도착 시간 데이터(55)와 호환가능한 구간을 결정하고 후보 여행 제안을 이 구간으로만 제한할 수 있다. 임의의 경우에, 후보 여행 제안을 생성한 것에 응답하여, 공정(100)은 블록(148)으로 진행할 수 있다.
블록(148)에 응답하여, 스케줄 엔진(74)은 각 후보 여행 제안을 분석하여 후보 여행 제안이 모든 트립 제약사항을 충족하는지를 결정할 수 있다. 특히, 스케줄 엔진(74)은 후보 여행 제안이 구간과 중간기착 시간 제약사항을 충족시키는지를 결정할 수 있다. 이 제약사항은 최소 및 최대 허용가능한 중간기착 지속시간, 중간기착 시간 창, 최소 및 최대 허용가능한 구간 지속시간, 및 구간 시간 창을 포함할 수 있다. 중간기착 지속시간의 경우에, 서치 엔진은 최소 허용가능한 중간기착 지속시간과 중간기착을 위한 최소 연결 시간 중 더 큰 것을 선택할 수 있다.
최소 연결 시간은, 예를 들어, 도착 구간의 하차 지점(예를 들어, 항공편의 도착 게이트)으로부터 출발 구간의 탑승 지점(예를 들어, 항공편의 출발 게이트)으로 여행 하는데 요구되는 추정된 시간 기간일 수 있다. 최소 연결 시간은 스케줄 조합의 각 연결에 대해 미리 한정될 수 있고, 여행자가 주어진 연결을 하는데 요구되는 최소 지속시간을 한정할 수 있다. 최소 연결 시간은 (예를 들어, 공항으로부터 요구된 열차역으로 여행하는) 연결 구간의 운송 모드에 의존할 수 있고, 각 연결과 연관하여 스케줄 데이터베이스(62)에 저장될 수 있다. 임의의 경우에, 하나 이상의 트립 제약사항을 충족하지 않는 후보 여행 제안은 폐기될 수 있다. 스케줄 엔진(74)은 블록(150)으로 진행할 수 있다.
블록(150)에서, 공정(100)은 루트 세트(72)에 있는 모든 루트가 분석되었는지를 결정할 수 있다. 모든 루트가 분석된 것이 아니라면(판정 블록(150)에서 "아니오" 분기), 공정(100)은 블록(152)으로 진행하고, 블록(144)으로 리턴하기 전에 그 다음 루트를 선택하여 분석할 수 있다. 모든 루트가 분석된 경우(판정 블록(150)에서 "예" 분기), 공정은 블록(154)으로 진행하고, 생성된 여행 제안을 리턴할 수 있다.
명세서에 설명된 본 발명의 실시예 중 어느 것을 구현하는 프로그램 코드는 여러 상이한 형태의 프로그램 제품으로 개별적으로 또는 집합적으로 분배될 수 있다. 특히, 프로그램 코드는 컴퓨터 판독가능한 저장 매체를 포함할 수 있는 컴퓨터 판독가능한 매체 및 통신 매체를 사용하여 분배될 수 있다. 본질적으로 비-일시적인 것인 컴퓨터 판독가능한 저장 매체는, 컴퓨터-판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보를 저장하기 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비-휘발성, 및 이동식 및 비-이동식 유형적인 매체를 포함할 수 있다. 컴퓨터 판독가능한 저장 매체는 RAM, ROM, 소거가능한 프로그래밍가능한 판독 전용 메모리(EPROM), 전기적으로 소거가능한 프로그래밍가능한 판독 전용 메모리(EEPROM), 플래쉬 메모리 또는 다른 솔리드 스테이트 메모리 기술, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 또는 다른 광 저장매체, 자기 카세트, 자기 테이프, 자기 디스크 저장매체 또는 다른 자기 저장 디바이스, 또는 컴퓨터에 의해 판독될 수 있고 원하는 정보를 저장하는데 사용될 수 있는 임의의 다른 매체를 더 포함할 수 있다. 통신 매체는 컴퓨터 판독가능한 명령, 데이터 구조 또는 다른 프로그램 모듈을 구현할 수 있다. 예로서, 비제한적으로, 통신 매체는 유선 매체, 예를 들어 유선 네트워크 또는 직접-유선 연결, 및 무선 매체, 예를 들어 음향, RF, 적외선 및 다른 무선 매체를 포함할 수 있다. 상기한 바의 임의의 조합도 컴퓨터 판독가능한 매체의 범위 내에 포함될 수 있다.
본 명세서에 설명된 방법은 임의의 유형의 컴퓨터의 프로세서에 공급된 컴퓨터 프로그램 명령에 의해 본 명세서에 특정된 기능/동작을 구현하는 명령을 실행하는 프로세서를 갖는 기계를 생성하도록 구현될 수 있다. 이들 컴퓨터 프로그램 명령은 또한 컴퓨터 판독가능한 매체에 저장되어 컴퓨터를 특정 방식으로 기능하게 할 수 있다. 이를 위해, 이 컴퓨터 프로그램 명령은 컴퓨터에 로딩되어 일련의 동작 단계를 수행하고 이에 의해 명령의 실행시 본 명세서에 특정된 기능/동작을 구현하는 공정을 제공하는 컴퓨터 구현된 공정을 생성할 수 있다.
나아가, 본 명세서에 설명된 프로그램 코드는 프로그램 코드가 본 발명의 특정 실시예에서 구현되는 애플리케이션 또는 소프트웨어 성분에 기초하여 식별될 수 있다. 그러나, 이에 따라 임의의 특정 프로그램 용어는 단지 편의상 사용된 것일 뿐이어서, 본 발명은 이러한 용어로 식별되거나 암시된 임의의 특정 애플리케이션에서만 사용하는 것으로 제한되는 것은 아닌 것으로 이해된다. 본 명세서에 개시된 여러 특징, 애플리케이션, 및 디바이스는 또한 단독으로 또는 임의의 조합으로 사용될 수 있는 것으로 더 이해된다. 나아가, 컴퓨터 프로그램이 루틴, 절차, 방법, 모듈, 객체 등으로 구성될 수 있는 방식은 일반적으로 끝없이 가능하고, 프로그램 기능이 일반적인 컴퓨팅 시스템(예를 들어, 운영 시스템, 라이브러리, API, 애플리케이션, 애플릿 등) 내에, 또는 하나 이상의 하드웨어 플랫폼에 걸쳐 여러 소프트웨어 계층 중에 할당될 수 있는 방식은 여러 가지가 있을 수 있으므로, 본 발명은 본 명세서에 설명된 프로그램 기능의 특정 조직과 할당으로 제한되지 않는 것으로 이해된다.
본 명세서에 사용된 용어는 단지 특정 실시예를 설명하려는 것일 뿐, 본 발명을 이들 실시예로 제한하려고 의도된 것이 전혀 아니다. 본 명세서에 사용된 바와 같이, "일" 및" 상기" 라는 단수 용어는, 달리 명시적인 언급이 없는 한, 복수의 형태를 포함하는 것으로 의도된다. 본 명세서에 사용될 때 "포함하는" 및/또는 "구비하는" 이라는 용어는, 언급된 특징, 정수, 단계, 동작, 요소 및/또는 성분이 존재하는 것을 의미하는 것일 뿐, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 성분 및/또는 그룹이 존재하거나 추가되는 것을 배제하는 것은 아닌 것으로 이해된다. 나아가, "포함하는", "구비하는", "가지는", "있는", "구성된"이라는 용어 또는 이들의 변형어가 상세한 설명이나 청구범위에 사용되는 경우, 이들 용어는 "포함하는" 이라는 용어와 유사한 방식으로 포괄적인 의미로 의도된 것으로 이해된다.
본 발명의 실시예는 여러 예를 설명하는 것으로 예시되었고, 이들 실시예는 상당히 상세히 설명되었으나, 이것이 첨부된 청구범위를 이러한 상세사항으로 제한하거나 한정하는 것으로 출원인이 의도한 것은 전혀 아니다. 추가적인 잇점과 변형은 이 기술 분야에 통상의 지식을 가진 자에게는 용이하게 일어날 수 있을 것이다. 그리하여 더 넓은 측면에서 본 발명은 도시되거나 설명된 특정 상세, 대표적인 장치와 방법 및 예시적인 예로 제한되지 않는다.

Claims (15)

  1. 출발지와 목적지 간을 여행하는 여행 제안을 생성하는 방법으로서,
    여행 요청은 출발지, 목적지, 및 중간기착(stopover)을 요구하는 트립 제약사항(trip constraint)을 한정하는 데이터를 포함하는데, 컴퓨터에서 여행 요청을 수신하는 단계(102);
    구간의 조합은 트립 제약사항을 충족시키고, 중간기착에 의해 연결된 제1 구간과 제2 구간을 포함하는데, 컴퓨터에 의해, 출발지를 목적지에 연결하는 구간의 조합을 결정하는 단계(104, 106, 108); 및
    구간의 조합을 포함하는 제1 여행 제안을 한정하는 단계(110)를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 여행 요청은 여행자 선호도를 한정하는 데이터를 더 포함하고,
    트립 제약사항을 충족하는 제2 여행 제안을 한정하는 단계;
    여행자 선호도에 기초하여 랭킹 기준을 한정하는 단계; 및
    랭킹 기준에 기초하여 제1 여행 제안과 제2 여행 제안을 랭킹매기는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    여행자 선호도는 항공사에 관한 선호도, 구간의 유형, 구간의 유형의 조합, 여행 시간, 중간기착 위치 또는 중간기착 시간을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 출발지를 목적지에 연결하는 구간의 조합을 결정하는 단계는,
    링크의 조합은 제1 링크와 제2 링크를 포함하는데, 출발지를 목적지에 연결하는 링크의 조합을 포함하는 루트(route)를 한정하는 단계;
    제1 링크를 서비스하는 제1 구간 세트에 대해 데이터베이스에 질문하는 단계;
    제2 링크를 서비스하는 제2 구간 세트에 대해 데이터베이스에 질문하는 단계;
    제1 구간 세트로부터 제1 구간을 선택하는 단계; 및
    제2 구간 세트로부터 제2 구간을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    트립 제약사항을 충족하는데 요구되는 최소 구간 개수를 결정하는 단계를 더 포함하고, 링크의 조합은 최소 구간 개수 이상의 개수의 링크를 포함하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    데이터베이스는 항공 구간의 스케줄, 철도 구간의 스케줄, 또는 버스 구간의 스케줄을 한정하는 데이터를 포함하는 것을 특징으로 하는 방법.
  7. 제4항에 있어서, 루트는 복수의 루트 중 하나이고, 각 루트는 출발지를 목적지에 연결하는 링크의 상이한 조합을 포함하고,
    랭킹 기준을 한정하는 단계;
    랭킹 기준에 기초하여 복수의 루트를 랭킹매기는 단계; 및
    랭킹에 기초하여 복수의 루트로부터 루트를 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    랭킹 기준은 루트의 거리, 루트의 여행 시간 또는 루트의 비용을 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    트립 제약사항은 제1 여행 제안에 대해 중간기착 제약사항, 구간 제약사항 또는 시간 제약사항을 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    중간기착 제약사항은 중간기착 동안 스케줄된 활동에 기초하여 결정되는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    중간기착 동안 활동을 선택하는 단계; 및
    활동을 여행자에 추천하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 출발지와 목적지 간을 여행하는 여행 제안을 생성하는 장치로서,
    프로세서; 및
    프로세서에 연결되고 명령을 포함하는 메모리를 포함하고, 상기 명령은, 상기 프로세서에 의해 실행될 때, 상기 장치로 하여금,
    출발지, 목적지, 및 중간기착을 요구하는 트립 제약사항을 한정하는 데이터를 포함하는 여행 요청을 수신하는 동작;
    구간의 조합은 트립 제약사항을 충족하고, 중간기착에 의해 연결된 제1 구간과 제2 구간을 포함하는데, 출발지를 목적지에 연결하는 구간의 조합을 결정하는 동작; 및
    구간의 조합을 포함하는 제1 여행 제안을 한정하는 동작을 수행하게 하는 것을 특징으로 하는 장치.
  13. 제12항에 있어서, 상기 명령은, 상기 장치로 하여금,
    트립 제약사항을 충족하는 제2 여행 제안을 한정하는 동작;
    여행자 선호도에 기초하여 랭킹 기준을 한정하는 동작; 및
    랭킹 기준에 기초하여 제1 여행 제안과 제2 여행 제안을 랭킹매기는 동작을 더 수행하게 하는 것을 특징으로 하는 장치.
  14. 제12항에 있어서, 상기 명령은, 상기 장치로 하여금,
    링크의 조합은 제1 링크와 제2 링크를 포함하는데, 출발지를 목적지에 연결하는 링크의 조합을 포함하는 루트를 한정하는 동작;
    제1 링크를 서비스하는 제1 구간 세트에 대해 데이터베이스에 질문하는 동작;
    제2 링크를 서비스하는 제2 구간 세트에 대해 데이터베이스에 질문하는 동작;
    제1 구간 세트로부터 제1 구간을 선택하는 동작; 및
    제2 구간 세트로부터 제2 구간을 선택하는 동작을 수행하도록 하여,
    출발지를 목적지에 연결하는 구간의 조합을 결정하게 하는 것을 특징으로 하는 장치.
  15. 컴퓨터 프로그램 제품으로서,
    비-일시적인 컴퓨터 판독가능한 저장 매체; 및
    비-일시적인 컴퓨터 판독가능한 저장 매체에 저장된 명령을 포함하고, 상기 명령은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    출발지, 목적지, 및 중간기착을 요구하는 트립 제약사항을 한정하는 데이터를 포함하는 여행 요청을 수신하는 동작;
    구간의 조합은 트립 제약사항을 충족하고, 중간기착에 의해 연결된 제1 구간과 제2 구간을 포함하는데, 출발지를 목적지에 연결하는 구간의 조합을 결정하는 동작; 및
    구간의 조합을 포함하는 제1 여행 제안을 한정하는 동작을 수행하게 하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020150040600A 2014-04-09 2015-03-24 여행 계획 시스템 KR20150117209A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP14305520.0 2014-04-09
US14/248,535 US20150294238A1 (en) 2014-04-09 2014-04-09 Travel planning system
US14/248,535 2014-04-09
EP14305520.0A EP2930673A1 (en) 2014-04-09 2014-04-09 Travel planning system

Publications (1)

Publication Number Publication Date
KR20150117209A true KR20150117209A (ko) 2015-10-19

Family

ID=54258909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150040600A KR20150117209A (ko) 2014-04-09 2015-03-24 여행 계획 시스템

Country Status (3)

Country Link
KR (1) KR20150117209A (ko)
AU (1) AU2015201752A1 (ko)
CA (1) CA2885591A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102199087B1 (ko) * 2020-01-31 2021-01-06 최은경 빅데이터 기반 여행 수요 예측 방법 및 이를 위한 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240037459A1 (en) * 2022-08-01 2024-02-01 Hopper, Inc. Database operations and analysis for virtual interlining of travel routes
CN116070776B (zh) * 2023-02-24 2024-03-29 中外运空运有限公司 一种航空货运产品的智能拼接方法与系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102199087B1 (ko) * 2020-01-31 2021-01-06 최은경 빅데이터 기반 여행 수요 예측 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
AU2015201752A1 (en) 2015-10-29
CA2885591A1 (en) 2015-10-09

Similar Documents

Publication Publication Date Title
US20150294238A1 (en) Travel planning system
US11709903B2 (en) Accommodation search
US8725612B2 (en) Personalized real-time location-based travel management
US9009167B2 (en) Method and system of planning and/or managing a travel plan
US8082186B2 (en) Method and a system for generating a custom itinerary according to user specifications
US20160117618A1 (en) Determining alternative travel itineraries using current location
US20150178642A1 (en) Dynamic travel planner
US9739626B2 (en) Journey planning method and system
US20140351037A1 (en) Travel planning
US20110282701A1 (en) Searching for Airline Travel Based Upon Seat Characteristics
US20150286960A1 (en) Media input reservation system
WO2014186248A1 (en) Guidebook transit routing
KR20150117209A (ko) 여행 계획 시스템
EP2930673A1 (en) Travel planning system
US20220092483A1 (en) Customer experience generator with shareable profile and autopay
AU2015201731A1 (en) Media input reservation system
JP6976346B2 (ja) データ管理システムにおける非標準データ管理
EP2927847A1 (en) Journey planning method and system
US20170243309A1 (en) Non-transitory computer-readable recording medium, itinerary display method, and itinerary display device
JP6982898B2 (ja) 情報検索プログラム及び情報検索装置
KR102223499B1 (ko) 여정 계획 방법 및 시스템
EP2887278A1 (en) Dynamic travel planner
JP2003216701A (ja) フライトプラン作成装置
AU2014277801A1 (en) Dynamic travel planner

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application