JP5845716B2 - 巡回路決定のためのプログラム、情報処理方法及び装置 - Google Patents

巡回路決定のためのプログラム、情報処理方法及び装置 Download PDF

Info

Publication number
JP5845716B2
JP5845716B2 JP2011179546A JP2011179546A JP5845716B2 JP 5845716 B2 JP5845716 B2 JP 5845716B2 JP 2011179546 A JP2011179546 A JP 2011179546A JP 2011179546 A JP2011179546 A JP 2011179546A JP 5845716 B2 JP5845716 B2 JP 5845716B2
Authority
JP
Japan
Prior art keywords
point
points
candidate
data storage
storage unit
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2011179546A
Other languages
English (en)
Other versions
JP2013041532A (ja
Inventor
秀直 岩根
秀直 岩根
松本 和宏
和宏 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011179546A priority Critical patent/JP5845716B2/ja
Priority to US13/585,870 priority patent/US20130046467A1/en
Publication of JP2013041532A publication Critical patent/JP2013041532A/ja
Application granted granted Critical
Publication of JP5845716B2 publication Critical patent/JP5845716B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/343Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
    • 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/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Automation & Control Theory (AREA)
  • Navigation (AREA)

Description

本技術は、巡回路決定のための技術に関する。
巡回セールスマン問題(Traveling Salesman Problem)は、例えばn個の都市(作業地点又は作業場所とも呼ぶ)と各都市間の距離を入力として、各都市を1度ずつ訪問して元に戻る巡回路の中で総移動距離が最小のものを得る問題である。この問題はNP困難問題として知られており、組み合わせ最適化問題の中でも難しいとされる問題の代表格となっている。しかしながら、配送計画、基盤穿孔、鋼板の圧延計画など多くの応用を有するため、このような問題を何らかの方法で短時間で処理することが好ましい。
従来から知られている巡回路の決定方法には、総当たり法や動的計画法などで厳密に解く方法があるが、このような方法では、巡回地点の数に対して指数関数的に巡回路候補が増加するため、現実的な時間内に処理が完了しない場合がある。また、最適解に準ずる解を得る方法としては、最近近傍法といった方法もあるが、十分な精度の解が得られる保証はない。
最近近傍法では、適当な点から出発して、まだ訪問していない点で現在地点から最も近い点へ移動し、全ての点を訪問したら出発地点へ戻ることによって巡回路を構築する。
なお、多目的最適化問題を解くために、初期解を高速に求める手法により、初期パレート解を探索する初期パレート解探索部と、遺伝的アルゴリズム手法により、探索された初期パレート解を用いてパレート最適解集合を探索するパレート解集合探索部とを用いる手法が存在する。しかしながら、巡回セールスマン問題については触れられていない。
特開2004−30413号公報 特開2006−152767号公報 特開2000−67125号公報
本技術の目的は、一側面によれば、巡回路を高速に求める技術を提供することである。
本技術に係る情報処理方法は、(A)複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって複数の地点のうち巡回順番が決定されていない地点の各々について、複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、第1の地点と当該候補地点との間の移動コストの値と、複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1のステップと、(B)特定された点のうちパレート解となる点に対応する候補地点を抽出する第2のステップと、(C)抽出された候補地点から第2の地点を特定する第3のステップと、(D)第1乃至第3のステップを繰り返すことで、複数の地点について巡回路の候補を生成する第4のステップとを含む。
巡回路を高速に求めることができる。
図1は、第1の実施の形態に係る情報処理装置の機能ブロック図である。 図2は、第1データ格納部に格納されるデータの一例を示す図である。 図3は、第2データ格納部に格納されるデータの一例を示す図である。 図4は、第1の実施の形態に係る処理フローを示す図である。 図5Aは、第1の実施の形態の処理を説明するための図である。 図5Bは、第1の実施の形態の処理を説明するための図である。 図5Cは、第1の実施の形態の処理を説明するための図である。 図5Dは、第1の実施の形態の処理を説明するための図である。 図5Eは、第1の実施の形態の処理を説明するための図である。 図5Fは、第1の実施の形態の処理を説明するための図である。 図5Gは、第1の実施の形態の処理を説明するための図である。 図5Hは、第1の実施の形態の処理を説明するための図である。 図5Iは、第1の実施の形態の処理を説明するための図である。 図6Aは、移動コストと第2コストとで張られる平面におけるパレート最適解を特定するための処理を説明するための図である。 図6Bは、移動コストと第2コストとで張られる平面におけるパレート最適解を特定するための処理を説明するための図である。 図6Cは、移動コストと第2コストとで張られる平面におけるパレート最適解を特定するための処理を説明するための図である。 図7は、第1の実施の形態における処理フローを示す図である。 図8は、第2の実施の形態に係る情報処理装置の機能ブロック図である。 図9は、第2の実施の形態に係る処理フローを示す図である。 図10Aは、第2の実施の形態の処理を説明するための図である。 図10Bは、第2の実施の形態の処理を説明するための図である。 図10Cは、第2の実施の形態の処理を説明するための図である。 図10Dは、第2の実施の形態の処理を説明するための図である。 図10Eは、第2の実施の形態の処理を説明するための図である。 図10Fは、第2の実施の形態の処理を説明するための図である。 図10Gは、第2の実施の形態の処理を説明するための図である。 図10Hは、第2の実施の形態の処理を説明するための図である。 図10Iは、第2の実施の形態の処理を説明するための図である。 図11は、第2の実施の形態に係る処理フローを示す図である。 図12は、コンピュータの機能ブロック図である。
[実施の形態1]
本技術の第1の実施の形態に係る情報処理装置10を、図1に示す。本実施の形態に係る情報処理装置10は、第1データ格納部11と、第2データ格納部12と、生成部13と、第3データ格納部14と、選択部15とを有する。第1データ格納部11は、巡回すべき複数の地点のうち2地点の各組み合わせについて移動コスト(例えば距離又は移動時間など)のデータを格納している。第2データ格納部12は、巡回すべき複数の地点の各々について予め定められた1又は複数のコストの値と、巡回すべき複数の地点の各々について評価に用いる値とを格納している。
生成部13は、第1データ格納部11及び第2データ格納部12に格納されているデータを用いて巡回路候補を生成して第3データ格納部14に格納する。選択部15は、第1データ格納部11及び第2データ格納部12に格納されているデータを用いて、巡回路候補を評価して適切な巡回路を特定して、出力する。
次に、図2乃至図7を用いて情報処理装置10の処理内容を説明する。説明をわかりやすくするために、地点A乃至地点Dを巡回する場合を考える。図2に、第1データ格納部11に格納されている移動コストのデータの一例を示す。具体的には、地点A乃至地点Dの2地点の各組み合わせについて移動コスト値(例えば移動時間)が登録されるようになっている。本例では、地点Aから地点Bへの移動コスト値と、地点Bから地点Aへの移動コスト値とは同じ例を示しているが、異なる場合もある。また、図3に、第2データ格納部12に格納されているコスト値のデータの一例を示す。具体的には、地点A乃至地点Dの各々について、第2のコスト(例えば災害復旧における重要度など(低いほど重要度が高い))の値が登録されるようになっている。本例では、説明を簡単にするために1種類のコストを取り扱うが、複数のコストを取り扱う場合もある。
次に、図4及び図7の処理フローを説明する。生成部13は、第1データ格納部11及び第2データ格納部12に登録されている巡回地点を、配列である残り地点リスト[0]に設定する(ステップS1)。上で述べた例では、図5Aにおける(1)に示すように、残り地点リスト[0]=A,B,C,Dとなる。また、生成部13は、第1データ格納部11及び第2データ格納部12に登録されている巡回地点を、配列であるパレートリスト[0]に設定する(ステップS3)。図5Aにおける(2)に示すように、パレートリスト[0]=A,B,C,Dとなる。なお、巡回地点において開始地点が決まっている場合には、パレートリスト[0]に開始地点を設定すればよい。そして、生成部13は、カウンタiを1に初期化する(ステップS5)。
その後、生成部13は、パレートリスト[i−1]から1つの地点を選択し、配列である順路[i]に設定する(ステップS7)。このステップの選択はどのように行っても良い。例えばパレートリスト[0]から地点Aを選択して、図5Aの(3)に示すように、順路[1]=Aと設定する。そして、生成部13は、パレートリスト[i−1]から、選択した地点を除去する(ステップS9)。地点Aを選択した場合には、地点Aを除去するので、図5Aの(4)に示すように、パレートリスト[0]=B,C,Dとなる。
さらに、生成部13は、残り地点リスト[i]に、残り地点リスト[i−1]から選択地点を除去したものを設定する(ステップS11)。地点Aを選択した場合には、残り地点リスト[0]=A,B,C,Dから地点Aを除去して、図5Aの(5)に示すように、残り地点リスト[1]=B,C,Dと設定する。そして、生成部13は、残り地点リスト[i]が空になったか判断する(ステップS13)。空になった場合には端子Aを介して図7の処理に移行する。
一方、残り地点リスト[i]が空ではない場合には、生成部13は、残り地点リスト[i]に含まれる地点に対応する、コスト空間内の点を特定して、これらの点の中からパレート最適解を抽出し、抽出されたパレート最適解に対応する地点を、パレートリスト[i]に設定する(ステップS15)。
図5Aの(5)の状態では、残り地点リスト[1]=B,C,Dであり、移動コストと第2のコストで張られる平面(一般的には空間)における点を特定する。具体的には、先に順路として特定された地点Aから地点Bへの移動コスト値=10(図2)と、地点Bの第2のコスト値=50(図3)とを第1データ格納部11及び第2データ格納部12から読み出せば、図6Aに示す平面における点X1が特定される。同様に、地点Aから地点Cへの移動コスト値=30(図2)と、地点Cの第2のコスト値=20(図3)とを第1データ格納部11及び第2データ格納部12から読み出せば、図6Aに示す平面における点X3が特定される。さらに、地点Aから地点Dへの移動コスト値=20(図2)と、地点Dの第2のコスト値=50(図3)とを第1データ格納部11及び第2データ格納部12から読み出せば、図6Aに示す平面における点X2が特定される。パレート最適解は、コスト空間における非劣解である。図6Aの場合には、第2コストの値が同一であるが移動コストが大きい点X2は、点X1より明らかに劣っているので、点X2はパレート最適解ではない。一方、第2のコストは小さいが移動コストは大きいので、点X3は点X1より劣っているとは言えない。逆も同様である。従って、点X3及び点X1は、パレート最適解である。従って、点X3に対応する地点Cと、点X1に対応する地点Bとが抽出されて、図5Bの(1)に示すように、パレートリスト[1]に設定される。
その後、生成部13は、iを1インクリメントして(ステップS17)、処理はステップS7に戻る。
上で述べた例では、パレートリスト[1]から地点Bを選択して、図5Bの(2)に示すように、順路[2]=Bと設定する(ステップS7)。さらに、パレートリスト[1]から、選択地点Bを除去すると(ステップS9)、図5Bの(3)に示すように、パレートリスト[1]=Cとなる。さらに、残り地点リスト[2]に、残り地点リスト[1]から選択地点Bを除去したものを設定する(ステップS11)。すなわち、図5Bの(4)に示すように、残り地点リスト[2]=C,Dとなる。
このように残り地点リスト[2]は空ではないので、残り地点リスト[2]に含まれる地点C及び地点Dに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS15)。
図5Bの(4)の状態では、残り地点リスト[2]=C,Dであり、移動コストと第2コストで張られる平面における点を特定する。具体的には、先に順路として特定された地点Bから地点Cへの移動コスト値=30(図2)と、地点Cの第2のコスト値=20(図3)とで、図6Bに示す平面における点Y1が特定される。また、地点Bから地点Dへの移動コスト値=15(図2)と、地点Dの第2のコスト値=50(図3)とで、図6Bに示す平面における点Y2が特定される。点Y1及びY2のどちらも優れているとは言えないのでパレート最適解である。従って、点Y1に対応する地点Cと、点Y2に対応する地点Dとが抽出されて、図5Cの(1)に示すように、パレートリスト[2]に設定される。ここで、iが1インクリメントされて、i=3になる。
そして、パレートリスト[2]から地点Cを選択して、図5Cの(2)に示すように、順路[3]=Cと設定する(ステップS7)。さらに、パレートリスト[2]から、選択地点Cを除去すると(ステップS9)、図5Cの(3)に示すように、パレートリスト[2]=Dとなる。さらに、残り地点リスト[3]に、残り地点リスト[2]から選択地点Cを除去したものを設定する(ステップS11)。すなわち、図5Cの(4)に示すように、残り地点リスト[3]=Dとなる。
このように残り地点リスト[3]は空ではないので、残り地点リスト[3]に含まれる地点Dに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS15)。但し、残り地点リスト[3]に1つしか地点が含まれない場合には、そのままパレート最適解に指定してよい。すなわち、図5Dの(1)に示すように、パレートリスト[3]=Dとなる。ここで、iが1インクリメントされて(ステップS17)、i=4となる。
そして、パレートリスト[3]から地点Dを選択して、図5Dの(2)に示すように、順路[4]=Dと設定する(ステップS7)。さらに、パレートリスト[3]から、選択地点Dを除去すると(ステップS9)、図5Dの(3)に示すように、パレートリスト[3]=φとなる。さらに、残り地点リスト[4]に、残り地点リスト[3]から選択地点Dを除去したものを設定する(ステップS11)。すなわち、図5Dの(4)に示すように、残り地点リスト[4]=φとなる。このように処理すれば、残り地点リスト[4]が空になるので、端子Aを介して図7の処理に移行する。
図7において、生成部13は、順路のデータを巡回路候補としてコピーして、第3データ格納部14に格納する(ステップS19)。これによって、1つの巡回路候補が生成されたことになる。上の例では、A,B,C,Dという巡回路候補が第3データ格納部14に格納される。以下は、他の巡回路候補の可能性を探索するための処理である。
そして、生成部13は、iを1デクリメントして(ステップS21)、iが0になったか判断する(ステップS23)。i=0でない場合には、生成部13は、パレートリスト[i−1]が空であるか判断する(ステップS25)。空であればステップS21に戻る。一方、空でなければ処理は端子Bを介して図4のステップS7に戻る。
上で述べた例では、i=3の場合、図5Cの(3)において、パレートリスト[2]=Dであるから、図4のステップS7に戻る。
そして、パレートリスト[2]から地点Dを選択して、図5Eの(1)に示すように、順路[3]=Dと設定する(ステップS7)。さらに、パレートリスト[2]から、選択地点Dを除去すると(ステップS9)、図5Eの(2)に示すように、パレートリスト[2]=φとなる。さらに、残り地点リスト[3]に、残り地点リスト[2](図5Bの(4))から選択地点Dを除去したものを設定する(ステップS11)。すなわち、図5Eの(3)に示すように、残り地点リスト[3]=Cとなる。
このように残り地点リスト[3]は空ではないので、残り地点リスト[3]に含まれる地点Cに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS15)。但し、残り地点リスト[3]に1つしか地点が含まれない場合には、そのままパレート最適解に指定してよい。すなわち、図5Fの(1)に示すように、パレートリスト[3]=Cとなる。ここで、iが1インクリメントされて(ステップS17)、i=4となる。
そして、パレートリスト[3]から地点Cを選択して、図5Fの(2)に示すように、順路[4]=Cと設定する(ステップS7)。さらに、パレートリスト[3]から、選択地点Cを除去すると(ステップS9)、図5Fの(3)に示すように、パレートリスト[3]=φとなる。さらに、残り地点リスト[4]に、残り地点リスト[3]から選択地点Cを除去したものを設定する(ステップS11)。すなわち、図5Fの(4)に示すように、残り地点リスト[4]=φとなる。このように処理すれば、残り地点リスト[4]が空になるので、端子Aを介して図7の処理に移行する。
そして、図7のステップS19では、第2の巡回路候補A,B,D,Cが、第3データ格納部14に格納される。
その後、i=3の場合、図5Eの(2)でパレートリスト[2]=φになっているので、iを1デクリメントする(ステップS21)。i=2の場合、図5Bの(3)に示すように、パレートリスト[1]=Cとなっている。そこで図4のステップS7に戻る。
そして、パレートリスト[1]から地点Cを選択して、図5Gの(1)に示すように、順路[2]=Cと設定する(ステップS7)。さらに、パレートリスト[1]から、選択地点Cを除去すると(ステップS9)、図5Gの(2)に示すように、パレートリスト[1]=φとなる。さらに、残り地点リスト[2]に、残り地点リスト[1](図5Aの(5))から選択地点Cを除去したものを設定する(ステップS11)。すなわち、図5Gの(3)に示すように、残り地点リスト[2]=B,Dとなる。
このように残り地点リスト[2]は空ではないので、残り地点リスト[2]に含まれる地点B及びDに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS15)。
図5Gの(3)の状態では、残り地点リスト[2]=B,Dであり、移動コストと第2コストで張られる平面における点を特定する。具体的には、先に順路として特定された地点Cから地点Bへの移動コスト値=30(図2)と、地点Bの第2のコスト値=50(図3)とを第1データ格納部11及び第2データ格納部12から読み出せば、図6Cに示す平面における点Z1が特定される。また、地点Cから地点Dへの移動コスト値=15(図2)と、地点Dの第2のコスト値=50(図3)とを第1データ格納部11及び第2データ格納部12から読み出せば、図6Cに示す平面における点Z2が特定される。点Dの方が移動コスト値が小さいので、点Dがパレート最適解となる。従って、点Z2に対応する地点Dが抽出されて、図5Hの(1)に示すように、パレートリスト[2]に設定される。ここで、iが1インクリメントされて(ステップS17)、i=3になる。
そして、パレートリスト[2]から地点Dを選択して、図5Hの(2)に示すように、順路[3]=Dと設定する(ステップS7)。さらに、パレートリスト[2]から、選択地点Dを除去すると(ステップS9)、図5Hの(3)に示すように、パレートリスト[2]=φとなる。さらに、残り地点リスト[3]に、残り地点リスト[2](図5Gの(3))から選択地点Dを除去したものを設定する(ステップS11)。すなわち、図5Hの(3)に示すように、残り地点リスト[3]=Bとなる。
このように残り地点リスト[3]は空ではないので、残り地点リスト[3]に含まれる地点Bに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS15)。但し、残り地点リスト[3]に1つしか地点が含まれない場合には、そのままパレート最適解に指定してよい。すなわち、図5Iの(1)に示すように、パレートリスト[3]=Bとなる。ここで、iが1インクリメントされて(ステップS17)、i=4となる。
そして、パレートリスト[3]から地点Bを選択して、図5Iの(2)に示すように、順路[4]=Bと設定する(ステップS7)。さらに、パレートリスト[3]から、選択地点Bを除去すると(ステップS9)、図5Iの(3)に示すように、パレートリスト[3]=φとなる。さらに、残り地点リスト[4]に、残り地点リスト[3]から選択地点Bを除去したものを設定する(ステップS11)。すなわち、図5Iの(4)に示すように、残り地点リスト[4]=φとなる。このように処理すれば、残り地点リスト[4]が空になるので、端子Aを介して図7の処理に移行する。
そして、図7のステップS19では、第3の巡回路候補A,C,D,Bが、第3データ格納部14に格納される。このような処理にてパレートリスト[1]まで空になる。なお、パレートリスト[0]にはB,C及びDが設定されているので、開始地点を入れ替えた処理を実施することになる。開始地点がAで固定の場合には、巡回路候補の生成が完了することになる。
図7の処理の説明に戻って、選択部15は、第3データ格納部14に格納されている巡回路候補を評価して、評価が最も高い巡回路候補を特定する(ステップS27)。例えば、第1データ格納部11に格納されている移動コスト値と、第2データ格納部12に格納されている各地点の他の値(例えば優先度など)とを組み合わせて、各巡回路候補の評価値を算出する。
その後、選択部15は、評価結果を、表示装置又は他のコンピュータなどに出力する(ステップS29)。巡回路候補をそのまま出力する場合もある。
このような処理を実施することによって、パレート最適解をたどるような処理を実施しているので、少なくとも最近近傍法による巡回路を含む巡回路候補を得ることができる。但し、パレート最適解をたどるようにしているので、最近近傍法より好ましい巡回路候補を得ることができる。また、移動先の地点をパレート最適解で絞り込むため、総当り法などよりも高速に処理を行うことができる。
[実施の形態2]
第2の実施の形態に係る情報処理装置100の機能ブロック図を図8に示す。
本実施の形態に係る情報処理装置100は、第1データ格納部110と、第2データ格納部120と、巡回路候補生成部130と、第3データ格納部140と、巡回路選択部150とを有する。第1データ格納部110は、巡回すべき複数の地点のうち2地点の各組み合わせについて移動コスト(例えば距離又は移動時間など)のデータを格納している。第2データ格納部120は、巡回すべき複数の地点の各々について予め定められた1又は複数のコストの値と、巡回すべき複数の地点の各々について評価に用いる値とを格納している。
巡回路候補生成部130は、第1データ格納部110及び第2データ格納部120に格納されているデータを用いて巡回路候補を生成して第3データ格納部140に格納する。巡回路選択部150は、第1データ格納部110及び第2データ格納部120に格納されているデータを用いて、巡回路候補を評価して適切な巡回路を特定して、出力する。
次に、図9乃至図11を用いて情報処理装置100の処理内容を説明する。説明をわかりやすくするために、第1の実施の形態と同様に、地点A乃至地点Dを巡回する場合を考える。そして、図2に示したようなデータが、第1データ格納部110に格納されているものとする。さらに、図3に示したようなデータが、第2データ格納部120に格納されているものとする。
巡回路候補生成部130は、第1データ格納部110及び第2データ格納部120に登録されている巡回地点を、配列である残り地点リスト[0]に設定する(図9:ステップS101)。上の例では、図10Aにおける(1)に示すように、残り地点リスト[0]=A,B,C,Dとなる。また、巡回路候補生成部130は、第1データ格納部110及び第2データ格納部120に登録されている巡回地点を、配列であるパレートリスト[0]に設定する(ステップS103)。図10Aにおける(2)に示すように、パレートリスト[0]=A,B,C,Dとなる。なお、巡回地点において開始地点が決まっている場合には、パレートリスト[0]に開始地点を設定すればよい。また、巡回路候補生成部130は、配列である選択済み地点リスト[0]に空を設定する(ステップS105)。図10Aにおける(3)に示すように、選択済み地点リスト[0]=φと設定される。そして、巡回路候補生成部130は、カウンタiを1に初期化する(ステップS107)。
その後、巡回路候補生成部130は、パレートリスト[i−1]の要素から選択済み地点リスト[i−1]の要素を除外したもの({パレートリスト[i−1]−選択済み地点リスト[i−1]}と表すものとする)から1つの地点を選択し、配列である順路[i]に設定する(ステップS109)。このステップにおける選択はどのように行っても良い。選択済み地点リスト[0]は空なので、パレートリスト[0]から例えば地点Aを選択して、図10Aの(4)に示すように、順路[1]=Aと設定する。また、巡回路候補生成部130は、選択済み地点リスト[0]に、選択した地点を設定する(ステップS111)。地点Aを選択した場合には、図10Aの(5)に示すように、選択済み地点リスト[0]=Aとなる。
さらに、巡回路候補生成部130は、残り地点リスト[i]に、残り地点リスト[i−1]から選択地点を除去したものを設定する(ステップS113)。地点Aを選択した場合には、残り地点リスト[0]=A,B,C,Dから地点Aを除去して、図10Aの(6)に示すように、残り地点リスト[1]=B,C,Dと設定する。そして、巡回路候補生成部130は、残り地点リスト[i]が空になったか判断する(ステップS115)。空になった場合には端子Cを介して図11の処理に移行する。
一方、残り地点リスト[i]が空ではない場合には、巡回路候補生成部130は、残り地点リスト[i]に含まれる地点に対応する、コスト空間内の点を特定して、これらの点の中からパレートを抽出し、抽出されたパレート最適解に対応する地点を、パレートリスト[i]に設定する(ステップS117)。このステップは、第1の実施の形態におけるステップS15と同様である。
具体的には、図10Aの(6)の状態では、残り地点リスト[1]=B,C,Dであり、移動コストと第2のコストで張られる平面(一般的には空間)における点を特定する。具体的には、先に順路として特定された地点Aから地点Bへの移動コスト値=10(図2)と、地点Bの第2のコスト値=50(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Aに示す平面における点X1が特定される。同様に、地点Aから地点Cへの移動コスト値=30(図2)と、地点Cの第2のコスト値=20(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Aに示す平面における点X3が特定される。さらに、地点Aから地点Dへの移動コスト値=20(図2)と、地点Dの第2のコスト値=50(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Aに示す平面における点X2が特定される。図6Aの場合には、点X3及び点X1が、パレート最適解である。従って、点X3に対応する地点Cと、点X1に対応する地点Bとが抽出されて、図10Bの(1)に示すように、パレートリスト[1]に設定される。
その後、巡回路候補生成部130は、選択済み地点リスト[i]に空を設定する(ステップS119)。図10Bの(2)に示すように、選択済み地点リスト[1]=φと設定される。次に巡回する地点の候補を正しく特定するためである。そして、巡回路候補生成部130は、iを1インクリメントして(ステップS121)、処理はステップS109に戻る。
上で述べた例では、パレートリスト[1]の要素から選択済み地点リスト[1]の要素を除外したものから地点Bを選択して、図10Bの(3)に示すように、順路[2]=Bと設定する(ステップS109)。さらに、選択済み地点リスト[1]に、選択地点Bを設定する(ステップS111)。そうすると、図10Bの(4)に示すように、選択済み地点リスト[1]=Bとなる。さらに、残り地点リスト[2]に、残り地点リスト[1]から選択地点Bを除去したものを設定する(ステップS113)。すなわち、図10Bの(5)に示すように、残り地点リスト[2]=C,Dとなる。
このように残り地点リスト[2]は空ではないので、残り地点リスト[2]に含まれる地点C及びDに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS117)。
図10Bの(5)の状態では、残り地点リスト[2]=C,Dであり、移動コストと第2コストで張られる平面における点を特定する。具体的には、先に順路として特定された地点Bから地点Cへの移動コスト値=30(図2)と、地点Cの第2のコスト値=20(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Bに示す平面における点Y1が特定される。また、地点Bから地点Dへの移動コスト値=15(図2)と、地点Dの第2のコスト値=50(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Bに示す平面における点Y2が特定される。点Y1及びY2のどちらも優れているとは言えないのでパレート最適解である。従って、点Y1に対応する地点Cと、点Y2に対応する地点Dとが抽出されて、図10Cの(1)に示すように、パレートリスト[2]に設定される。また、図10Cの(2)に示すように、選択済み地点リスト[2]を空に設定する(ステップS119)。ここで、iが1インクリメントされて(ステップS121)、i=3になる。
そして、パレートリスト[2]の要素から選択済み地点リスト[2]の要素を除外したものから地点Cを選択して、図10Cの(3)に示すように、順路[3]=Cと設定する(ステップS109)。さらに、選択済み地点リスト[2]に、選択地点Cを設定する(ステップS111)。そうすると、図10Cの(4)に示すように、選択済み地点リスト[2]=Cとなる。さらに、残り地点リスト[3]に、残り地点リスト[2]から選択地点Cを除去したものを設定する(ステップS113)。すなわち、図10Cの(5)に示すように、残り地点リスト[3]=Dとなる。
このように残り地点リスト[3]は空ではないので、残り地点リスト[3]に含まれる地点Dに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS117)。但し、残り地点リスト[3]に1つしか地点が含まれない場合には、そのままパレート最適解に指定してよい。すなわち、図10Dの(1)に示すように、パレートリスト[3]=Dとなる。また、図10Dの(2)に示すように、選択済み地点リスト[3]を空に設定する(ステップS119)。ここで、iが1インクリメントされて(ステップS121)、i=4となる。
そして、パレートリスト[3]の要素から選択済み地点リスト[3]の要素を除外したものから地点Dを選択して、図10Dの(3)に示すように、順路[4]=Dと設定する(ステップS109)。さらに、選択済み地点リスト[3]に、選択地点Dを設定する(ステップS111)。そうすると、図10Dの(4)に示すように、選択済み地点リスト[3]=Dとなる。さらに、残り地点リスト[4]に、残り地点リスト[3]から選択地点Dを除去したものを設定する(ステップS113)。すなわち、図10Dの(5)に示すように、残り地点リスト[4]=φとなる。このように処理すれば、残り地点リスト[4]が空になるので、端子Cを介して図11の処理に移行する。
図11において、巡回路候補生成部130は、順路のデータを巡回路候補としてコピーして、第3データ格納部140に格納する(ステップS123)。これによって、1つの巡回路候補が生成されたことになる。上の例では、A,B,C,Dという巡回路候補が第3データ格納部140に格納される。以下は、他の巡回路候補の可能性を探索するための処理である。
そして、巡回路候補生成部130は、iを1デクリメントして(ステップS125)、iが0になったか判断する(ステップS127)。i=0でない場合には、巡回路候補生成部130は、パレートリスト[i−1]の要素から選択済み地点リスト[i−1]の要素を除外したもの({パレートリスト[i−1]−選択済み地点リスト[i−1]}と表す)が空であるか判断する(ステップS129)。空であればステップS125に戻る。一方、空でなければ処理は端子Dを介して図9のステップS109に戻る。
上で述べた例では、i=3の場合、図10Cの(1)と(4)において、{パレートリスト[2]−選択済み地点リスト[2]}=Dであるから、図9のステップS109に戻る。
そして、{パレートリスト[2]−選択済み地点リスト[2]}から地点Dを選択して、図10Eの(1)に示すように、順路[3]=Dと設定する(ステップS109)。さらに、選択済み地点リスト[2]に選択地点Dを追加すると(ステップS111)、図10Eの(2)に示すように、選択済み地点リスト[2]=C,Dとなる。さらに、残り地点リスト[3]に、残り地点リスト[2](図10Bの(5))から選択地点Dを除去したものを設定する(ステップS113)。すなわち、図10Eの(3)に示すように、残り地点リスト[3]=Cとなる。
このように残り地点リスト[3]は空ではないので、残り地点リスト[3]に含まれる地点Cに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS117)。但し、残り地点リスト[3]に1つしか地点が含まれない場合には、そのままパレート最適解に指定してよい。すなわち、図10Fの(1)に示すように、パレートリスト[3]=Cとなる。さらに、図10Fの(2)に示すように、選択済み地点リスト[3]に空が設定される(ステップS119)。ここで、iが1インクリメントされて(ステップS121)、i=4となる。
そして、{パレートリスト[3]−選択済み地点リスト[3]}から地点Cを選択して、図10Fの(3)に示すように、順路[4]=Cと設定する(ステップS109)。さらに、選択済み地点リスト[4]に、選択地点Cを追加する(ステップS111)。そうすると、図10Fの(4)に示すように、選択済み地点リスト[4]=Cとなる。さらに、残り地点リスト[4]に、残り地点リスト[3]から選択地点Cを除去したものを設定する(ステップS113)。すなわち、図10Fの(5)に示すように、残り地点リスト[4]=φとなる。このように処理すれば、残り地点リスト[4]が空になるので、端子Cを介して図11の処理に移行する。
そして、図11のステップS123では、第2の巡回路候補A,B,D,Cが、第3データ格納部140に格納される。
その後、i=3の場合、図10Eの(2)及び図10Cの(1)から、{パレートリスト[2]−選択済み地点リスト[2]}=φになっているので、iを1デクリメントする(ステップS125)。i=2の場合、図10Bの(1)及び(4)から、{パレートリスト[1]−選択済み地点リスト[1]}=Cとなっている。そこで図9のステップS109に戻る。
そして、{パレートリスト[1]−選択済み地点リスト[1]}から地点Cを選択して、図10Gの(1)に示すように、順路[2]=Cと設定する(ステップS109)。さらに、選択済み地点リスト[1]に、選択地点Cを追加すると(ステップS111)、図10Gの(2)に示すように、選択済み地点リスト[1]=B,Cとなる。さらに、残り地点リスト[2]に、残り地点リスト[1](図10Aの(6))から選択地点Cを除去したものを設定する(ステップS113)。すなわち、図10Gの(3)に示すように、残り地点リスト[2]=B,Dとなる。
このように残り地点リスト[2]は空ではないので、残り地点リスト[2]に含まれる地点B及びDに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS117)。
図10Gの(3)の状態では、残り地点リスト[2]=B,Dであり、移動コストと第2コストで張られる平面における点を特定する。具体的には、先に順路として特定された地点Cから地点Bへの移動コスト値=30(図2)と、地点Bの第2のコスト値=50(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Cに示す平面における点Z1が特定される。また、地点Cから地点Dへの移動コスト値=15(図2)と、地点Dの第2のコスト値=50(図3)とを第1データ格納部110及び第2データ格納部120から読み出せば、図6Cに示す平面における点Z2が特定される。点Z2の方が移動コスト値が小さいので、点Z2がパレート最適解となる。従って、点Z2に対応する地点Dが抽出されて、図10Hの(1)に示すように、パレートリスト[2]に設定される。さらに、図10Hの(2)に示すように、選択済み地点リスト[2]は空に設定される(ステップS119)。ここで、iが1インクリメントされて(ステップS121)、i=3になる。
そして、{パレートリスト[2]−選択済み地点リスト[2]}から地点Dを選択して、図10Hの(3)に示すように、順路[3]=Dと設定する(ステップS109)。さらに、図10Hの(4)に示すように、選択済み地点リスト[2]に選択地点Dを追加する(ステップS111)。さらに、残り地点リスト[3]に、残り地点リスト[2](図10Gの(3))から選択地点Dを除去したものを設定する(ステップS113)。すなわち、図10Hの(5)に示すように、残り地点リスト[3]=Bとなる。
このように残り地点リスト[3]は空ではないので、残り地点リスト[3]に含まれる地点Bに対応する、コスト空間内の点を特定して、それらの点からパレート最適解を抽出する(ステップS117)。但し、残り地点リスト[3]に1つしか地点が含まれない場合には、そのままパレート最適解に指定してよい。すなわち、図10Iの(1)に示すように、パレートリスト[3]=Bとなる。さらに、図10Iの(2)に示すように、選択済み地点リスト[3]を空に設定する(ステップS119)。ここで、iが1インクリメントされて(ステップS121)、i=4となる。
そして、{パレートリスト[3]−選択済み地点リスト[3]}から地点Bを選択して、図10Iの(3)に示すように、順路[4]=Bと設定する(ステップS109)。さらに、選択済み地点リスト[3]に、選択地点Bを追加すると、図10Iの(4)に示すように、選択済み地点リスト[3]=Bとなる。さらに、残り地点リスト[4]に、残り地点リスト[3]から選択地点Cを除去したものを設定する(ステップS113)。すなわち、図10Iの(5)に示すように、残り地点リスト[4]=φとなる。このように処理すれば、残り地点リスト[4]が空になるので、端子Cを介して図11の処理に移行する。
そして、図11のステップS123では、第3の巡回路候補A,C,D,Bが、第3データ格納部140に格納される。このような処理にて{パレートリスト[1]−選択済み地点リスト[1]}まで空になる。なお、{パレートリスト[0]−選択済み地点リスト[0]}はB,C及びDであるので、開始地点を入れ替えた処理を実施することになる。開始地点がAで固定の場合には、巡回路候補の生成が完了することになる。
図11の処理の説明に戻って、巡回路選択部150は、第3データ格納部140に格納されている巡回路候補を評価して、評価が最も高い巡回路候補を特定する(ステップS131)。例えば、第1データ格納部110に格納されている移動コスト値と、第2データ格納部120に格納されている各地点の他の値(例えば優先度など)とを組み合わせて、各巡回路候補の評価値を算出する。何らかの評価関数を用いても良い。
その後、巡回路選択部150は、評価結果を、表示装置又は他のコンピュータなどに出力する(ステップS133)。巡回路候補をそのまま出力するようにしても良い。
このような処理を実施することによって、パレート最適解をたどるような処理を実施しているので、少なくとも最近近傍法による巡回路を含む巡回路候補を得ることができる。但し、パレート最適解をたどるようにしているので、最近近傍法より好ましい巡回路候補を得ることができる。また、移動先の地点をパレート最適解で絞り込むため、総当り法などよりも高速に処理を行うことができる。
なお、ステップS117では、パレート最適解を全て抽出するような処理を行っていたが、例えば移動コストに重点を置いて、移動コストが閾値以下であるパレート最適解を抽出すれば、当該移動コストが閾値以下であるパレート最適解を優先的に選択するようにしても良い。
以上本技術の実施の形態を説明したが、本技術はこれに限定されない。例えば、機能ブロック図については、必ずしも実際のプログラムモジュール構成とは一致しない場合がある。また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、並列実施しても良い。
さらに、上では1台のコンピュータで実施する例を示したが、例えば複数台のコンピュータで機能分担を行うようにしても良い。さらに、ネットワークを介して接続されるサーバなどでこのような処理を、同じくネットワークに接続されている端末装置からの要求に応じて実施し、処理結果についても端末装置に送信するようにしても良い。
なお、上で述べた情報処理装置10及び100は、コンピュータ装置であって、図12に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理方法は、(A)複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって複数の地点のうち巡回順番が決定されていない地点の各々について、複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、第1の地点と当該候補地点との間の移動コストの値と、複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、(B)特定された点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、(C)抽出された候補地点から第2の地点を特定する第3の処理と、(D)第1乃至第3の処理を繰り返すことで、複数の地点について巡回路の候補を生成する第4の処理とを含む。
このようにパレート解により次の巡回地点を絞り込むことで、高速に巡回路の候補を生成することができるようになる。また、パレート解を用いているので移動コストを含むコストの観点でより好ましい解が得られる。
なお、本実施の形態に係る情報処理方法は、抽出された候補地点が複数である場合には、第3の処理で特定された第2の地点以外の、抽出された候補地点の中から第3の地点を特定する第5の処理と、第1乃至第3の処理を繰り返すことで、第1の地点までの部分経路と第3の地点からの部分経路とを含む巡回路の他の候補を生成する第6の処理とをさらに含むようにしても良い。パレート解が複数存在する場合に、それらについて網羅的に巡回路候補を生成することができるようになる。
さらに、上で述べた第4の処理は、第2の地点の候補地点が1つである場合、当該候補地点を最終巡回地点に設定する処理を含むようにしてもよい。このような場合には処理を簡略化できる。
さらに、上で述べた第2の処理が、移動コストが閾値未満のパレート最適解を優先的に抽出する処理を含むようにしても良い。移動コストを重視する場合には、このような処理を行うようにしても良い。
さらに、本実施の形態に係る情報処理方法は、生成された巡回路の候補の中から、採用すべき巡回路を特定する第7の処理を実施するようにしても良い。例えば、最も評価が高い巡回路を特定すれば、より好ましい巡回路を得ることができるようになる。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、
抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
を、コンピュータに実行させるためのプログラム。
(付記2)
抽出された前記候補地点が複数である場合には、前記第3の処理で特定された前記第2の地点以外の、抽出された前記候補地点の中から第3の地点を特定する第5の処理と、
前記第1乃至第3の処理を繰り返すことで、前記第1の地点までの部分経路と前記第3の地点からの部分経路とを含む巡回路の他の候補を生成する第6の処理と、
を、さらに前記コンピュータに実行させるための付記1記載のプログラム。
(付記3)
前記第4の処理が、
前記第2の地点の候補地点が1つである場合、当該候補地点を最終巡回地点に設定する処理
を含む付記1又は2記載のプログラム。
(付記4)
前記第2の処理が、前記移動コストが閾値未満のパレート最適解を優先的に抽出する処理を含む
付記1乃至3のいずれか1つ記載のプログラム。
(付記5)
生成された前記巡回路の候補の中から、採用すべき巡回路を特定する第7の処理
を、さらに前記コンピュータに実行させるための付記1乃至4のいずれか1つ記載のプログラム。
(付記6)
複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、
抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
を、コンピュータが実行する情報処理方法。
(付記7)
複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部と、
前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部と、
前記複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、抽出された前記候補地点から前記第2の地点を特定する第3の処理と、前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する生成部と、
を有する情報処理装置。
10 情報処理装置
11 第1データ格納部
12 第2データ格納部
13 生成部
14 第3データ格納部
15 選択部
100 情報処理装置
110 第1データ格納部
120 第2データ格納部
130 巡回路候補生成部
140 第3データ格納部
150 巡回路選択部

Claims (11)

  1. 複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
    特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、
    抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
    抽出された前記候補地点が複数である場合には、前記第3の処理で特定された前記第2の地点以外の、抽出された前記候補地点の中から第3の地点を特定する第5の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記第1の地点までの部分経路と前記第3の地点からの部分経路とを含む巡回路の他の候補を生成する第6の処理と、
    を、コンピュータに実行させるためのプログラム。
  2. 前記第2の処理が、前記移動コストが閾値未満のパレート解となる点に対応する候補地点を優先的に抽出する処理を含む
    請求項1記載のプログラム。
  3. 生成された前記巡回路の候補の中から、採用すべき巡回路を特定する第7の処理
    を、さらに前記コンピュータに実行させるための請求項1又は2記載のプログラム。
  4. 複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
    特定された前記点のうち前記移動コストが閾値未満のパレート解となる点に対応する候補地点を抽出する第2の処理と、
    抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
    を、コンピュータに実行させるためのプログラム。
  5. 複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
    特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、
    抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
    生成された前記巡回路の候補の中から、採用すべき巡回路を特定する第5の処理と、
    を、コンピュータに実行させるためのプログラム。
  6. 複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
    特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、
    抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
    抽出された前記候補地点が複数である場合には、前記第3の処理で特定された前記第2の地点以外の、抽出された前記候補地点の中から第3の地点を特定する第5の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記第1の地点までの部分経路と前記第3の地点からの部分経路とを含む巡回路の他の候補を生成する第6の処理と、
    を、コンピュータが実行する情報処理方法。
  7. 複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
    特定された前記点のうち前記移動コストが閾値未満のパレート解となる点に対応する候補地点を抽出する第2の処理と、
    抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
    を、コンピュータが実行する情報処理方法。
  8. 複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、
    特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、
    抽出された前記候補地点から前記第2の地点を特定する第3の処理と、
    前記第1乃至第3の処理を繰り返すことで、前記複数の地点について巡回路の候補を生成する第4の処理と、
    生成された前記巡回路の候補の中から、採用すべき巡回路を特定する第5の処理と、
    を、コンピュータが実行する情報処理方法。
  9. 複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部と、
    前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部と、
    前記複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、抽出された前記候補地点から前記第2の地点を特定する第3の処理とを繰り返すことで、前記複数の地点について巡回路の候補を生成し、抽出された前記候補地点が複数である場合には、前記第3の処理で特定された前記第2の地点以外の、抽出された前記候補地点の中から第3の地点を特定し、前記第1乃至第3の処理を繰り返すことで、前記第1の地点までの部分経路と前記第3の地点からの部分経路とを含む巡回路の他の候補を生成する生成部と、
    を有する情報処理装置。
  10. 複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部と、
    前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部と、
    前記複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、特定された前記点のうち前記移動コストが閾値未満のパレート解となる点に対応する候補地点を抽出する第2の処理と、抽出された前記候補地点から前記第2の地点を特定する第3の処理とを繰り返すことで、前記複数の地点について巡回路の候補を生成する生成部と、
    を有する情報処理装置。
  11. 複数の地点のうち2地点の各組み合わせについての移動コストの値を格納する第1のデータ格納部と、
    前記複数の地点の各々における1又は複数のコストの値を格納する第2のデータ格納部と、
    前記複数の地点のうち巡回順番が決定された第1の地点の次に巡回する第2の地点の候補地点であって前記複数の地点のうち巡回順番が決定されていない地点の各々について、前記第1のデータ格納部から、前記第1の地点と当該候補地点との間の移動コストの値と、前記第2のデータ格納部から、当該候補地点の1又は複数のコストの値とを読み出し、移動コストと1又は複数のコストとで張られる空間における点を特定する第1の処理と、特定された前記点のうちパレート解となる点に対応する候補地点を抽出する第2の処理と、抽出された前記候補地点から前記第2の地点を特定する第3の処理とを繰り返すことで、前記複数の地点について巡回路の候補を生成する生成部と、
    生成された前記巡回路の候補の中から、採用すべき巡回路を特定する特定部と、
    を有する情報処理装置。
JP2011179546A 2011-08-19 2011-08-19 巡回路決定のためのプログラム、情報処理方法及び装置 Expired - Fee Related JP5845716B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011179546A JP5845716B2 (ja) 2011-08-19 2011-08-19 巡回路決定のためのプログラム、情報処理方法及び装置
US13/585,870 US20130046467A1 (en) 2011-08-19 2012-08-15 Method and apparatus for determining traveling route

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011179546A JP5845716B2 (ja) 2011-08-19 2011-08-19 巡回路決定のためのプログラム、情報処理方法及び装置

Publications (2)

Publication Number Publication Date
JP2013041532A JP2013041532A (ja) 2013-02-28
JP5845716B2 true JP5845716B2 (ja) 2016-01-20

Family

ID=47713226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011179546A Expired - Fee Related JP5845716B2 (ja) 2011-08-19 2011-08-19 巡回路決定のためのプログラム、情報処理方法及び装置

Country Status (2)

Country Link
US (1) US20130046467A1 (ja)
JP (1) JP5845716B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990010B2 (en) * 2011-12-21 2015-03-24 Here Global B.V. System and method for using skyline queries to search for points of interest along a route
US20140278802A1 (en) * 2013-03-15 2014-09-18 Google Inc. Producing and providing data for rendering a travel cost heatmap
EP3611471B1 (en) * 2018-08-14 2021-03-10 Bayerische Motoren Werke Aktiengesellschaft Methods and devices arranged for routing autonomous driving
US11650062B2 (en) 2020-06-10 2023-05-16 Honor Rene'e Roll Domestic destinator

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363126B1 (en) * 2002-08-22 2008-04-22 United Parcel Service Of America Core area territory planning for optimizing driver familiarity and route flexibility
US20100030594A1 (en) * 2008-07-29 2010-02-04 Garret Frederick Swart Method for User Driven Multi-objective Optimization of Travel Plans
US8010242B1 (en) * 2008-08-06 2011-08-30 On Time Systems, Inc. Flight planning system and method
JP4454043B1 (ja) * 2009-04-23 2010-04-21 株式会社ナビタイムジャパン 経路案内システム、経路探索サーバ、経路案内仲介サーバおよび経路案内方法
US7987143B2 (en) * 2009-09-29 2011-07-26 Livermore Software Technology Corporation Methods and systems for multi-objective evolutionary algorithm based engineering desgin optimization
US8417409B2 (en) * 2009-11-11 2013-04-09 Google Inc. Transit routing system for public transportation trip planning
US8634975B2 (en) * 2010-04-16 2014-01-21 The Boeing Company Vessel performance optimization reporting tool
US20120065834A1 (en) * 2010-09-10 2012-03-15 Accenture Global Services Limited Driving management system and method
WO2012103228A1 (en) * 2011-01-25 2012-08-02 Nextgen Aerosciences, Llc Method and apparatus for dynamic aircraft trajectory management
US8494771B2 (en) * 2011-09-07 2013-07-23 Microsoft Corporation Journey planning in public transportation networks

Also Published As

Publication number Publication date
JP2013041532A (ja) 2013-02-28
US20130046467A1 (en) 2013-02-21

Similar Documents

Publication Publication Date Title
CN103095804B (zh) 用于在集群存储系统中进行负载平衡的方法和系统
EP3997633A1 (en) Automated generation of machine learning models for network evaluation
JP5679074B2 (ja) ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
CN109685204B (zh) 图像处理方法及装置、存储介质及电子设备
JP5845716B2 (ja) 巡回路決定のためのプログラム、情報処理方法及び装置
JP5862245B2 (ja) 配置装置、配置プログラムおよび配置方法
JP2018026042A (ja) 移動制御プログラム、移動制御装置及び移動制御方法
JP2017134582A (ja) グラフインデックス探索装置及びグラフインデックス探索装置の動作方法
US20180174072A1 (en) Method and system for predicting future states of a datacenter
CN116319518B (zh) 一种基于知识图谱最短路径的信息获取方法及装置
US20150199364A1 (en) Data analyzing apparatus and program
Wangsom et al. Multi-objective scientific-workflow scheduling with data movement awareness in cloud
WO2010058785A1 (ja) 経路計算順決定方法、プログラムおよび計算装置
KR102326586B1 (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
JP6374823B2 (ja) 経路配置方法、経路配置装置、及びプログラム
JP6172145B2 (ja) 並列割当最適化装置、並列割当最適化方法および並列割当最適化プログラム
JP5403834B2 (ja) 詳細なルーティング可能性推定を計算するための方法および装置
JP7276116B2 (ja) データ生成プログラム、情報処理装置およびデータ生成方法
CN111756635B (zh) 用于网络规划的方法、网络规划设备和计算机可读介质
JP6989014B2 (ja) システム構成導出装置、方法およびプログラム
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
JP5126694B2 (ja) 学習システム
Lin et al. System reliability for a multistate flow network with multiple joint minimal paths under time constraint
KR101591595B1 (ko) 대용량 그래프 데이터베이스에서 링크를 예측하는 방법
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R150 Certificate of patent or registration of utility model

Ref document number: 5845716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees