JP7792641B2 - Route search device, route search method, and route search program - Google Patents
Route search device, route search method, and route search programInfo
- Publication number
- JP7792641B2 JP7792641B2 JP2022132622A JP2022132622A JP7792641B2 JP 7792641 B2 JP7792641 B2 JP 7792641B2 JP 2022132622 A JP2022132622 A JP 2022132622A JP 2022132622 A JP2022132622 A JP 2022132622A JP 7792641 B2 JP7792641 B2 JP 7792641B2
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- route
- vertices
- value
- objective function
- 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.)
- Active
Links
Landscapes
- Navigation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明の実施形態は、経路探索装置、経路探索方法、および経路探索プログラムに関する。 Embodiments of the present invention relate to a route search device, a route search method, and a route search program.
車両による物資の輸送は、現代社会に必要不可欠である。輸送のための最適な経路の探索は、重要な課題である。例えば、災害ときに、車両による電力、水等を含む物資を複数の需要点に供給することが必要な場合、各需要点で物資(電力または水)の枯渇による被害を最小にするような経路探索が必要となる。 Transporting goods by vehicle is essential in modern society. Finding the optimal route for transportation is an important issue. For example, in the event of a disaster, if it is necessary to supply goods including electricity and water by vehicle to multiple demand points, it is necessary to find a route that minimizes damage caused by a shortage of goods (electricity or water) at each demand point.
従来、経路探索をする方法としては、車両の出発点と需要点を頂点とし、地点間の泥を辺とみなすことで離散最低化手法を用いた技術がある。例えば、特許文献1は、需要点を順次挿入していく技術を開示している。さらに、例えば、非特許文献1は、需要点を分割し、巡回セールスマン問題を解く技術を開示している。 Traditional route search methods include a technique that uses a discrete minimization method by treating the vehicle's starting point and demand points as vertices and the mud between points as edges. For example, Patent Document 1 discloses a technique for sequentially inserting demand points. Furthermore, for example, Non-Patent Document 1 discloses a technique for dividing demand points and solving the traveling salesman problem.
特許文献1では、車両の移動コストや積荷の総重量を最適化することを目的としており、「各需要点の物資枯渇による被害の最大値」(以下、遅延コストと記載する)を最小化する目的では有用でない経路を出力する場合がある。例えば、車両の出発点からは遠いが早急に到達しなければならない需要点が存在した場合、移動コストを最小化する経路探索では遅延コストとしては大きなその点を最後に訪れる経路を出力する。そのため、特許文献1で開示される技術は、遅延コストを最小化することができないという問題がある。 Patent Document 1 aims to optimize vehicle travel costs and total cargo weight, and may output routes that are not useful for minimizing the "maximum amount of damage due to resource depletion at each demand point" (hereinafter referred to as delay cost). For example, if there is a demand point that is far from the vehicle's starting point but must be reached quickly, a route search that minimizes travel costs will output a route that visits that point last, as this point has a large delay cost. As a result, the technology disclosed in Patent Document 1 has the problem of being unable to minimize delay costs.
また、非特許文献1で開示される手法では、各需要点の重要度および物資が枯渇し始める時刻が影響する遅延コストを最小化するという問題に対してと良い分割を提供できないという問題がある。 Furthermore, the method disclosed in Non-Patent Document 1 has the problem that it cannot provide a good division for the problem of minimizing delay costs, which are affected by the importance of each demand point and the time when supplies begin to run out.
この発明の課題は、上記事情に着目してなされたもので、その目的とするところは、最大遅延コストを最小化する経路を探索するという問題の最適解に近い解を求めることができる技術を提供することにある。 The subject of this invention was made in light of the above circumstances, and its purpose is to provide technology that can find a solution that is close to the optimal solution to the problem of searching for a route that minimizes the maximum delay cost.
実施形態に係る車両の初期位置から需要点をすべて回り、且つ各頂点の遅延コストの最大値を最小にする経路を、列生成法を用いて探索するための経路探索装置は、前記車両の初期位置および前記需要点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得するデータ取得部と、前記需要点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出する算出部と、前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記経路を探索する探索部と、を備えるものである。 According to an embodiment, a route search device uses a column generation method to search for a route that travels from the vehicle's initial position to all demand points and minimizes the maximum delay cost at each vertex. The route search device includes: a data acquisition unit that acquires vertex information including the vehicle's initial position and the demand points; point information including the time until the delay cost corresponding to each vertex reaches a predetermined cost, the work time at each vertex, and weights; and condition data including travel time between the vertices; a calculation unit that calculates an upper bound for a route that can be traveled at or below the predetermined cost and the maximum objective function value for the weights based on dynamic programming that further constrains the way the demand points are passed; and a search unit that rounds the value corresponding to the upper bound to an integer and uses a local search method as appropriate to search for the route.
この発明の一態様によれば、最大遅延コストを最小化する経路を探索するという問題の最適解に近い解を求めることができる経路探索装置、経路探索方法、および経路探索プログラムを提供することができる。 One aspect of the present invention provides a route search device, a route search method, and a route search program that can find a solution close to the optimal solution to the problem of searching for a route that minimizes the maximum delay cost.
以下、図面を参照しながら経路探索装置、経路探索方法、および経路探索プログラムについて詳細に説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重複する説明を省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。 The route search device, route search method, and route search program will be described in detail below with reference to the drawings. Note that in the following embodiments, parts with the same numbers perform similar operations, and redundant explanations will be omitted. For example, when there are multiple identical or similar elements, a common symbol may be used to describe each element without distinguishing between them, or a sub-number may be used in addition to the common symbol to describe each element with distinction between them.
[実施形態]
(目的)
最初に、2次元平面上のD+S個の頂点があり、各頂点をvi,i∈{1,...,D+S}と表記する。ここで、DおよびSは、正の整数であるとする。D個の頂点は、車両の初期配置点に対応し、S個の頂点は、需要点に対応する。すなわち、D台の車両がSこの地点を周ることになる。需要点に対応する各vi,i∈{1,...,D+S}に対して、電源切断時間di、仕事時間wi∈R>0、重要度αi∈Z>0、であるとする。ここで、RおよびZは、非負の実数集合である。また、各2頂点vi,vj,i,j∈{1,...,D+S}に対してその間の移動時間t(vi,vj)∈R>0であるとする。
[Embodiment]
(the purpose)
Initially, there are D+S vertices on a two-dimensional plane, and each vertex is denoted as v i ,iε{1,...,D+S}. Here, D and S are assumed to be positive integers. The D vertices correspond to the initial placement points of vehicles, and the S vertices correspond to demand points. That is, D vehicles will travel around this point. For each v i ,iε{1,...,D+S} corresponding to a demand point, the power-off time is assumed to be di , the work time is assumed to be wi εR >0 , and the importance is assumed to be α i εZ >0 . Here, R and Z are non-negative real number sets. Also, for each two vertices v i ,v j ,i,jε{1,...,D+S}, the travel time between them is assumed to be t(v i ,v j )εR >0 .
車両が頂点viで時刻Tiに仕事を終えたとき、その頂点の遅延コストc(vi)を以下のように定義する。 When a vehicle finishes work at a vertex v i at time T i , the delay cost c(v i ) of that vertex is defined as follows:
c(vi):=max{αi(Ti-di),0}
すなわち、遅延コストは、時刻Tiまで各頂点における重要度および電源断時間の関数である。
c(v i ):=max {α i (T i −d i ), 0}
That is, the delay cost is a function of the importance and power down time at each vertex up to time T i .
この際、D台の車両が全頂点を周り、且つ各頂点の遅延コストの最大値を最小にするような経路を求めるとする。 In this case, suppose we want to find a route that allows D vehicles to visit all vertices and minimizes the maximum delay cost at each vertex.
ここで、この最適化問題の遅延コストがλ以上になるかどうかという実行可能性問題を考慮してみる。ここで、λは、実行可能性問題を考慮する際の任意の遅延コストであって良い。この問題は、集合分割問題として定式化することが可能である。すなわち、経路rに対して対応するベクトルbr∈ZS+Dをrが対応する頂点を通る成分は1、それ以外の成分を0のベクトルとして定義する。通過する全頂点がコストλ以下であって、且つ同じ頂点を2度通らない経路に対応するベクトル全体を並べた行列をAλとする。その場合、整数計画問題として、
find x
s.t. Aλx=1
x∈{0,1}A
と定式化することができる。
Here, consider the feasibility problem of whether the delay cost of this optimization problem is equal to or greater than λ. Here, λ may be any delay cost when considering the feasibility problem. This problem can be formulated as a set partitioning problem. That is, a vector b r ∈ Z S+D corresponding to a route r is defined as a vector in which the components passing through the vertex corresponding to r are 1 and the other components are 0. Let A λ be a matrix listing all vectors corresponding to routes that pass through all vertices with a cost equal to or less than λ and that do not pass through the same vertex twice. In that case, the integer programming problem is
find x
s.t.A λ x=1
x∈{0,1} A
This can be formulated as follows:
この整数計画問題の線形緩和問題
find x
s.t. Aλx=1
0≦x≦1
を列生成法で解く。
A linear relaxation of this integer programming problem
find x
s.t.A λ x=1
0≦x≦1
is solved using the column generation method.
例えば、λを二分探索しながら反復することにより解くことで得られる値をλL,Pと記載するとする。このλL,Pは、元問題の最適値の下界になる。例えば、元問題の整数計画問題を解けば最適値を取得することができる。しかしながら、上述の方法では、元問題の制約を緩和した問題を解くことになる。そのため、上述の方法で得られる値であるλL,Pは、最適値より良い値、すなわち、元問題の下界となる。 For example, let us denote the value obtained by solving λ by iteratively performing a binary search as λ L,P . This λ L,P is a lower bound on the optimal value of the original problem. For example, the optimal value can be obtained by solving the integer programming problem of the original problem. However, the above-mentioned method solves a problem in which the constraints of the original problem are relaxed. Therefore, the value λ L,P obtained by the above-mentioned method is a value better than the optimal value, i.e., a lower bound on the original problem.
列生成法の列を追加する部分は、時空間ネットワーク上の動的計画法により実行される。すなわち、与えられた重みyに対してyTbrを最大化するようなコストλ以下の経路rを、縦軸が各頂点、横軸が時間ステップである表を逐次的に埋めていくことにより、算出することができる。重みyは、各頂点の重みであり、反復ごとに変化値であって良い。より厳密には、重みyは、現在の行列が成す線形計画問題(LP)の双対解であり、双対問題の制約を狭める列ベクトルを見出すための重みである。 The column-adding part of the column generation method is performed by dynamic programming on a space-time network. That is, a path r with a cost λ or less that maximizes y T b r for a given weight y can be calculated by sequentially filling in a table in which the vertical axis represents each vertex and the horizontal axis represents the time step. The weight y is the weight of each vertex and may be a value that changes with each iteration. More precisely, the weight y is the dual solution of the linear programming problem (LP) formed by the current matrix, and is a weight used to find a column vector that narrows the constraints of the dual problem.
しかしながら、この算出方法を厳密に実行すると、同じ頂点を2回通らないという制約により、表の各マスに対して今まで通過した頂点の種類ごとの経路についての情報を保持しておく必要がある。そのため、算出までに指数関数時間掛かる場合があり、経路が増えると現実的に算出することが困難になる。そこで、動的計画部分を適切に変更し、maxyTbrの取りうる範囲を上下から抑えることにより、二分化探索後にλL,Pの上界と下界を得るアルゴリズムを説明することが本発明の目的となる。 However, if this calculation method is strictly implemented, due to the constraint that the same vertex must not be passed twice, it is necessary to store information about the paths that have been passed through each type of vertex for each cell in the table. This can take exponential time to calculate, and as the number of paths increases, it becomes difficult to calculate in practice. Therefore, the purpose of this invention is to explain an algorithm that appropriately modifies the dynamic programming portion and restricts the range of maxy T br from both above and below, thereby obtaining the upper and lower bounds of λ L,P after a bisection search.
(構成)
図1は、実施形態に係る経路探索装置1のハードウェア構成の一例を示すブロック図である。
経路探索装置1は、入力されたデータを解析して、出力データを生成し出力する、コンピュータである。経路探索装置1は、任意の場所に設置されて良い。経路探索装置1は、例えば、電源車または給水車等が配備される基地局の所定の場所に設置される。
(composition)
FIG. 1 is a block diagram showing an example of the hardware configuration of a route search device 1 according to an embodiment.
The route search device 1 is a computer that analyzes input data and generates and outputs output data. The route search device 1 may be installed at any location. For example, the route search device 1 is installed at a predetermined location of a base station where a power supply vehicle, a water supply vehicle, or the like is deployed.
図1に示すように、経路探索装置1は、制御部10、プログラム記憶部20、データ記憶部30、通信インタフェース40、および入出力インタフェース50を備える。制御部10、プログラム記憶部20、データ記憶部30、通信インタフェース40、および入出力インタフェース50は、バスを介して互いに通信可能に接続されている。さらに通信インタフェース40は、ネットワークを介して外部装置と通信可能に接続されてよい。また、入出力インタフェース50は、入力装置51および出力装置52と通信可能に接続される
制御部10は、経路探索装置1を制御する。制御部10は、中央処理ユニット(CPU:Central Processing Unit)等のハードウェアプロセッサを備える。例えば、制御部10は、様々なプログラムを実行することが可能な集積回路であっても良い。
As shown in FIG. 1 , the route search device 1 includes a control unit 10, a program storage unit 20, a data storage unit 30, a communication interface 40, and an input/output interface 50. The control unit 10, the program storage unit 20, the data storage unit 30, the communication interface 40, and the input/output interface 50 are communicatively connected to one another via a bus. The communication interface 40 may also be communicatively connected to an external device via a network. The input/output interface 50 is also communicatively connected to an input device 51 and an output device 52. The control unit 10 controls the route search device 1. The control unit 10 includes a hardware processor such as a central processing unit (CPU). For example, the control unit 10 may be an integrated circuit capable of executing various programs.
プログラム記憶部20は、記憶媒体として、例えば、EPROM(Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の随時書込みおよび読出しが可能な不揮発性メモリと、ROM(Read Only Memory)等の不揮発性メモリとを組み合わせて使用することができる。プログラム記憶部20は、各種処理を実行するために必要なプログラムを格納している。すなわち、制御部10は、プログラム記憶部20に格納されたプログラムを読み出して実行することにより各種制御および動作を実現し得る。 The program storage unit 20 can use a combination of non-volatile memory that can be written to and read from at any time, such as an EPROM (Erasable Programmable Read Only Memory), HDD (Hard Disk Drive), or SSD (Solid State Drive), and non-volatile memory such as a ROM (Read Only Memory) as a storage medium. The program storage unit 20 stores the programs necessary to execute various processes. In other words, the control unit 10 can achieve various controls and operations by reading and executing the programs stored in the program storage unit 20.
データ記憶部30は、記憶媒体として、例えば、HDD、メモリカード等の随時書込みおよび読出しが可能な不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとを組み合わせて使用したストレージである。データ記憶部30は、制御部10がプログラムを実行して各種処理を行う過程で取得および生成されたデータを記憶するために用いられる。 The data storage unit 30 is a storage medium that combines non-volatile memory, such as a HDD or memory card, which can be written to and read from at any time, with volatile memory, such as RAM (Random Access Memory). The data storage unit 30 is used to store data acquired and generated in the process of the control unit 10 executing programs and performing various processes.
通信インタフェース40は、1つ以上の有線または無線の通信モジュールを含む。例えば、通信インタフェース40は、ネットワークを介して外部装置と有線または無線接続する通信モジュールを含む。通信インタフェース40は、Wi-Fiアクセスポイントおよび基地局等の外部装置と無線接続する無線通信モジュールを含んでも良い。さらに、通信インタフェース40は、近距離無線技術を利用して外部装置と無線接続するための無線通信モジュールを含んでも良い。すなわち、通信インタフェース40は、制御部10の制御の下、外部装置との間で通信を行い、過去の実績データを含む各種情報を送受信することができるものであれば一般的な通信インタフェースで良い。 The communication interface 40 includes one or more wired or wireless communication modules. For example, the communication interface 40 includes a communication module that establishes a wired or wireless connection with an external device via a network. The communication interface 40 may also include a wireless communication module that establishes a wireless connection with an external device such as a Wi-Fi access point or base station. Furthermore, the communication interface 40 may also include a wireless communication module that establishes a wireless connection with an external device using short-range wireless technology. In other words, the communication interface 40 may be any general communication interface that can communicate with an external device under the control of the control unit 10 and send and receive various information, including past performance data.
入出力インタフェース50は、入力装置51および出力装置52等と接続される。入出力インタフェース50は、入力装置51および出力装置52との間で情報の送受信を可能にするインタフェースである。入出力インタフェース50は、通信インタフェース40と一体であってもよい。例えば、経路探索装置1と、入力装置51、または出力装置52の少なくとも1つとは、近距離無線技術等を使用して無線接続されており、当該近距離無線技術を用いて情報の送受信を行ってもよい。 The input/output interface 50 is connected to the input device 51, output device 52, etc. The input/output interface 50 is an interface that enables the transmission and reception of information between the input device 51 and the output device 52. The input/output interface 50 may be integrated with the communication interface 40. For example, the route search device 1 and at least one of the input device 51 or the output device 52 may be wirelessly connected using short-range wireless technology, etc., and information may be transmitted and received using this short-range wireless technology.
入力装置51は、例えば、ユーザが経路探索装置1に対して各種データを入力するためのキーボードやポインティングデバイス等を含む。また、入力装置51は、プログラム記憶部20またはデータ記憶部30に格納するべきデータを、USBメモリ等のメモリ媒体から読み出すためのリーダや、そのようなデータをディスク媒体から読み出すためのディスク装置を含んでも良い。 The input device 51 includes, for example, a keyboard or pointing device that allows the user to input various data to the route search device 1. The input device 51 may also include a reader for reading data to be stored in the program storage unit 20 or data storage unit 30 from a memory medium such as a USB memory, or a disk device for reading such data from a disk medium.
出力装置52は、経路探索装置1から経路探索装置1の管理者に表示すべき映像を表示するディスプレイ等を含む。 The output device 52 includes a display that displays images from the route search device 1 to be displayed to the administrator of the route search device 1.
図2は、実施形態における経路探索装置1のソフトウェア構成を、図1に示したハードウェア構成に関連付けて示すブロック図である。
制御部10は、データ取得部101と、上界・下界算出部102と、解算出部103と、誤差評価部104と、出力制御部105と、を備える。また、データ記憶部30は、データ記憶部301と、処理データ記憶部302と、を備える。
FIG. 2 is a block diagram showing the software configuration of the route search device 1 according to the embodiment in relation to the hardware configuration shown in FIG.
The control unit 10 includes a data acquisition unit 101, an upper and lower bound calculation unit 102, a solution calculation unit 103, an error evaluation unit 104, and an output control unit 105. The data storage unit 30 includes a data storage unit 301 and a processed data storage unit 302.
データ取得部101は、条件データを取得する。条件データは、車両の初期位置および需要点を含む頂点情報と、各地点それぞれに対応する遅延コストが所定のコスト(λ)に到達するまでの時間、各頂点における仕事時間、および重み情報を含む地点情報と、地点間の移動時間と、を含む。
データ取得部101は、取得した条件をデータ記憶部301に記憶して良い。
The data acquisition unit 101 acquires condition data. The condition data includes vertex information including the initial position of the vehicle and a demand point, point information including the time until the delay cost corresponding to each point reaches a predetermined cost (λ), the work time at each vertex, and weight information, and travel time between points.
The data acquisition unit 101 may store the acquired conditions in the data storage unit 301 .
上界・下界算出部102は、表作成部1021と、経路制御部1022と、目的関数算出部1023と、コスト判定部1024と、をさらに備える。 The upper and lower bound calculation unit 102 further includes a table creation unit 1021, a path control unit 1022, an objective function calculation unit 1023, and a cost determination unit 1024.
表作成部1021は、データ記憶部301に記憶された条件データに基づいて表を作成する。表は、例えば、各行が各頂点に対応し、各列は、所定間隔の時刻に対応する表で良い。所定間隔の時刻は、例えば、各頂点間の最低移動時間を基準としても良い。そして、表作成部1021は、初期状態として、車両が最初に配置されたマス(頂点)に条件データに基づいた重みの値を入力する。表作成部1021は、作成した表を経路制御部1022に出力する。 The table creation unit 1021 creates a table based on the condition data stored in the data storage unit 301. For example, the table may be one in which each row corresponds to a vertex and each column corresponds to a time at a predetermined interval. The time at a predetermined interval may be based on the minimum travel time between vertices, for example. Then, as the initial state, the table creation unit 1021 inputs a weight value based on the condition data into the square (vertex) where the vehicle is initially placed. The table creation unit 1021 outputs the created table to the route control unit 1022.
また、表作成部1021は、移動した頂点に対応するマスに経路と目的関数値を入力する。表作成部1021は、経路制御部1022および目的関数算出部1023から受信した情報に基づいて、移動した頂点に対応するマスに経路と目的関数値を入力して良い。 The table creation unit 1021 also inputs the path and the objective function value into the square corresponding to the moved vertex. The table creation unit 1021 may input the path and the objective function value into the square corresponding to the moved vertex based on information received from the path control unit 1022 and the objective function calculation unit 1023.
経路制御部1022は、需要点の通り方の制約をさらに制約または緩和した動的計画法に基づいて、車両を任意の経路で移動させる。すなわち、経路制御部1022は、車両を他の頂点に移動させる。経路制御部1022は、移動した頂点についての情報を表作成部1021および目的関数算出部1023に出力する。 The route control unit 1022 moves the vehicle along an arbitrary route based on dynamic programming, which further restricts or relaxes the constraints on the route of the demand points. That is, the route control unit 1022 moves the vehicle to another vertex. The route control unit 1022 outputs information about the moved vertex to the table creation unit 1021 and the objective function calculation unit 1023.
目的関数算出部1023は、条件データに基づいて移動した頂点での目的関数値を算出する。目的関数算出部1023は、算出した目的関数値を表作成部1021に出力する。 The objective function calculation unit 1023 calculates the objective function value at the moved vertex based on the condition data. The objective function calculation unit 1023 outputs the calculated objective function value to the table creation unit 1021.
コスト判定部1024は、遅延コストがλ以上であるかどうかを判定する。 The cost determination unit 1024 determines whether the delay cost is greater than or equal to λ.
解算出部103は、適宜局所探索法を用いて解を算出する。解算出部103は、上界に対応する値を整数解に丸める。そして、解算出部103は、適宜局所探索法を用いて解を算出する。すなわち、解算出部103は、経路を探索する探索部として動作する。 The solution calculation unit 103 calculates a solution using a local search method as appropriate. The solution calculation unit 103 rounds the value corresponding to the upper bound to an integer solution. The solution calculation unit 103 then calculates a solution using a local search method as appropriate. In other words, the solution calculation unit 103 operates as a search unit that searches for a path.
誤差評価部104は、解算出部103が算出した解と、上界・下界算出部102から受信した下界の差を算出する。誤差評価部104は、当該誤差に基づいて元問題の最適値との誤差を評価する。例えば、下界<元問題の最適解のコストであるため、(解算出部103が算出した解のコスト-下界)>(解算出部103が算出した解のコスト-最適解のコスト)となる。すなわち、解算出部103が算出した解と最適解との誤差は、解算出部103が算出した解と下界との差よりも小さい値であると評価することが可能である。 The error evaluation unit 104 calculates the difference between the solution calculated by the solution calculation unit 103 and the lower bound received from the upper bound/lower bound calculation unit 102. The error evaluation unit 104 evaluates the error from the optimal value of the original problem based on this error. For example, since the lower bound < the cost of the optimal solution to the original problem, (cost of the solution calculated by the solution calculation unit 103 - lower bound) > (cost of the solution calculated by the solution calculation unit 103 - cost of the optimal solution). In other words, it is possible to evaluate the error between the solution calculated by the solution calculation unit 103 and the optimal solution as being smaller than the difference between the solution calculated by the solution calculation unit 103 and the lower bound.
(動作)
最初に、下界および上界の算出方法について説明する。
・下界(緩和)の算出方法
元問題では、同じ頂点を2回通らないという制約があったが、下界を算出する際は、近制約の代わりに、2回通って良いが連続で同じ点を通らないという緩和した制約のもとで動的計画法を実行する。この緩和した制約により、今まで通った頂点の情報を記憶する必要がなくなり、単に各マスに1つの経路(直前に通った経路)を保持すれば良い。そのため、動的計画の算出時間は、多項式時間で算出可能となる。問題が緩和する方向に動くため、目的関数値の最大値maxyTbr以上の値が得られることになる。そのため、二分探索実行後は、λL,Pの下界が算出される。
(operation)
First, the method for calculating the lower and upper bounds will be described.
- Calculation method for lower bound (relaxation)
In the original problem, there was a constraint that the same vertex must not be passed twice. However, when calculating the lower bound, dynamic programming is performed under a relaxed constraint, instead of the near constraint, that allows passing twice, but does not pass through the same point consecutively. This relaxed constraint eliminates the need to store information about vertices that have been passed so far; it is sufficient to simply store one path (the path passed most recently) for each square. Therefore, the calculation time for dynamic programming can be calculated in polynomial time. As the problem moves in the direction of relaxation, a value greater than or equal to the maximum value of the objective function maxy T b r is obtained. Therefore, after performing the binary search, the lower bound of λ L,P is calculated.
例えば、現在の整数計画問題を厳密に解けば、当然、λL,Pの値が厳密に求めることができる。ここで、現在の整数計画問題の制約を緩和すると、λL,Pの下界が取得することができる。λL,Pは、目的関数値の最大値の下界であるため、λL,Pの下界は、目的関数値の最大値の下界の下界、すなわち、目的関数値の最大値の下界となる。ここで、λL,P自体が元問題の最適値の下界であるため、このλL,Pの下界は、元問題の下界として利用することが可能である。 For example, if the current integer programming problem is solved exactly, the value of λ L,P can naturally be obtained exactly. Here, by relaxing the constraints of the current integer programming problem, a lower bound of λ L,P can be obtained. Since λ L,P is a lower bound of the maximum value of the objective function value, the lower bound of λ L,P is a lower bound of the lower bound of the maximum value of the objective function value, i.e., a lower bound of the maximum value of the objective function value. Here, since λ L,P itself is a lower bound of the optimal value of the original problem, this lower bound of λ L,P can be used as a lower bound of the original problem.
・上界(制限)の算出方法
同じ頂点を2回通らないという制約はそのままに、各マスに2個以上の経路が保持される場合、その時点での目的関数値が最大のものを1つだけ残すという制約を新たに加える。この制約により、下界のときと同様に、各マスに1つの経路を保持すれば良い。そのため、動的計画の算出時間は、多項式時間で算出可能となる。探索する経路が狭まるので、目的関数値の最大値maxyTbr以下の値が算出される。二分探索実行後は、λL,Pの上界が算出される。
・How to calculate the upper bound (limit)
While maintaining the constraint that the same vertex must not be passed twice, a new constraint is added that if two or more paths are held in each cell, only the one with the largest objective function value at that time is left. Due to this constraint, just as with the lower bound, it is sufficient to hold one path in each cell. Therefore, the calculation time for the dynamic program can be calculated in polynomial time. As the number of paths to be searched is narrowed, a value equal to or less than the maximum value of the objective function value maxy T br is calculated. After the binary search is performed, the upper bound of λ L,P is calculated.
例えば、λL,Pの上界は、目的関数値の最大値の下界の上界となる。そのため、目的関数値の最大値自体との大小関係は定まらない。しかしながら、λL,Pの上界と下界の値が近いか否かにより、緩和の制度を評価することが可能となる。 For example, the upper bound of λ L,P is the upper bound of the lower bound of the maximum objective function value. Therefore, the magnitude relationship with the maximum objective function value itself is not determined. However, it is possible to evaluate the accuracy of the relaxation depending on whether the upper and lower bounds of λ L,P are close to each other.
また、経路の制約に変更がないので、線形緩和問題の実行可能解を同時に出力することが可能であり、二分化探索後に算出された値を適当な値に丸めることにより、元問題の実行可能解を取得することが可能となる。 In addition, since there are no changes to the path constraints, it is possible to simultaneously output a feasible solution to the linear relaxation problem, and by rounding the value calculated after the bisection search to an appropriate value, it is possible to obtain a feasible solution to the original problem.
(動作)
図3は、本実施形態における目的関数値の下界を算出する処理手順の一例を示すフローチャートである。
経路探索装置1の制御部10がプログラム記憶部20に格納されたプログラムを読み出して実行することにより、このフローチャートの動作が実現される。この動作は、ユーザまたは経路探索装置1の管理者が入力装置51に条件データを入力することにより開始する。または、任意の時刻にデータ記憶部30に記憶された条件データを取得することにより開始しても良い。この場合、以下で説明するステップST101は、省略して良い。
(operation)
FIG. 3 is a flowchart showing an example of a processing procedure for calculating a lower bound of an objective function value in this embodiment.
The operation of this flowchart is realized by the control unit 10 of the route search device 1 reading and executing a program stored in the program storage unit 20. This operation is started when a user or an administrator of the route search device 1 inputs condition data into the input device 51. Alternatively, it may be started by obtaining condition data stored in the data storage unit 30 at any time. In this case, step ST101 described below may be omitted.
ステップST101で、データ取得部101は、条件データを取得する。条件データは、例えば、車両の初期位置および需要点を含む頂点情報、頂点情報それぞれに対応する遅延コストが所定のコスト(λ)に到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報、頂点間の移動時間等を含んで良い。データ取得部101は、取得した条件をデータ記憶部301に記憶して良い。 In step ST101, the data acquisition unit 101 acquires condition data. The condition data may include, for example, vertex information including the vehicle's initial position and demand point, the time until the delay cost corresponding to each vertex information reaches a predetermined cost (λ), location information including the work time and weight at each vertex, and travel time between vertices. The data acquisition unit 101 may store the acquired conditions in the data storage unit 301.
ステップST102で、上界・下界算出部102は、下界を算出する。上界・下界算出部102は、データ記憶部301に記憶された条件データに基づいて下界を算出する。 In step ST102, the upper and lower bound calculation unit 102 calculates the lower bound. The upper and lower bound calculation unit 102 calculates the lower bound based on the condition data stored in the data storage unit 301.
図4は、下界の算出方法の具体的な処理手順の一例を示すフローチャートである。
ステップST201で、表作成部1021は、表を作成する。表作成部1021は、データ記憶部301に記憶された条件データに基づいて表を作成する。表は、例えば、各行が各頂点に対応し、各列は、所定間隔の時刻に対応する表で良い。所定間隔の時刻は、例えば、各頂点間の最低移動時間を基準としても良い。そして、表作成部1021は、初期状態として、車両が最初に配置されたマス(頂点)に条件データに基づいた重みの値を入力する。表作成部1021は、作成した表を経路制御部1022に出力する。
FIG. 4 is a flowchart showing an example of a specific processing procedure for calculating the lower bound.
In step ST201, the table creation unit 1021 creates a table. The table creation unit 1021 creates the table based on the condition data stored in the data storage unit 301. The table may be, for example, a table in which each row corresponds to a vertex and each column corresponds to a time at a predetermined interval. The time at a predetermined interval may be based on, for example, the minimum travel time between each vertex. Then, as an initial state, the table creation unit 1021 inputs a weight value based on the condition data into the square (vertex) where the vehicle is initially placed. The table creation unit 1021 outputs the created table to the route control unit 1022.
ステップST202で、経路制御部1022は、車両を任意の経路で移動させる。経路制御部1022は、同じ頂点を2回通っても良いが連続で同じ点を通らないという制約を守れる任意の経路で車両を移動させる。すなわち、経路制御部1022は、車両を他の頂点に移動させる。経路制御部1022は、移動した頂点についての情報を表作成部1021および目的関数算出部1023に出力する。 In step ST202, the route control unit 1022 moves the vehicle along an arbitrary route. The route control unit 1022 moves the vehicle along an arbitrary route that satisfies the constraint that the vehicle may pass through the same vertex twice, but not pass through the same point consecutively. In other words, the route control unit 1022 moves the vehicle to another vertex. The route control unit 1022 outputs information about the vertex to which the vehicle has been moved to the table creation unit 1021 and the objective function calculation unit 1023.
ステップST203で、目的関数算出部1023は、条件データに基づいて移動した頂点での目的関数を算出する。目的関数算出部1023は、算出した目的関数を表作成部1021に出力する。 In step ST203, the objective function calculation unit 1023 calculates the objective function at the moved vertex based on the condition data. The objective function calculation unit 1023 outputs the calculated objective function to the table creation unit 1021.
ステップST204で、表作成部1021は、移動した頂点に対応するマスに経路と目的関数値を入力する。表作成部1021は、経路制御部1022および目的関数算出部1023から受信した情報に基づいて、移動した頂点に対応するマスに経路と目的関数値を入力して良い。 In step ST204, the table creation unit 1021 inputs the path and the objective function value into the cell corresponding to the moved vertex. The table creation unit 1021 may input the path and the objective function value into the cell corresponding to the moved vertex based on information received from the path control unit 1022 and the objective function calculation unit 1023.
ステップST205で、コスト判定部1024は、遅延コストがλ以上であるかどうかを判定する。遅延コストがλ未満であった場合、処理は、ステップST202に戻る。一方、遅延コストがλ以上であった場合、処理は、ステップST206に進む。 In step ST205, the cost determination unit 1024 determines whether the delay cost is equal to or greater than λ. If the delay cost is less than λ, the process returns to step ST202. On the other hand, if the delay cost is equal to or greater than λ, the process proceeds to step ST206.
ステップST206で、表作成部1021は、最大目的関数値を誤差評価部104に出力する。表作成部1021は、最大目的関数値が入力されたマスを検索し、検索された最大目的関数値を下界として、誤差評価部104に出力する。また、表作成部1021は、最大目的関数値を処理データ記憶部302に記憶させて良い。このようにして、上界・下界算出部102は、前記頂点の通り方の制約を緩和した動的計画法に基づいて、コストλ以下で巡回できる経路および重みでの目的関数値の最大値の下界を算出することができる。 In step ST206, the table creation unit 1021 outputs the maximum objective function value to the error evaluation unit 104. The table creation unit 1021 searches for the square into which the maximum objective function value is input, and outputs the searched maximum objective function value as a lower bound to the error evaluation unit 104. The table creation unit 1021 may also store the maximum objective function value in the processing data storage unit 302. In this way, the upper and lower bound calculation unit 102 can calculate the lower bound of the maximum objective function value for a route and weight that can be traversed at a cost of λ or less, based on dynamic programming that relaxes the constraints on how the vertices are passed.
図3に戻り、ステップST103で、上界・下界算出部102は、上界を算出する。上界・下界算出部102は、データ記憶部301に記憶された条件データに基づいて上界を算出する。 Returning to FIG. 3, in step ST103, the upper bound/lower bound calculation unit 102 calculates the upper bound. The upper bound/lower bound calculation unit 102 calculates the upper bound based on the condition data stored in the data storage unit 301.
図5は、上界の算出方法の具体的な処理手順の一例を示すフローチャートである。
ステップST301~ステップST303は、図4を参照して説明したステップST201~ステップST203と同様の処理で良いため、ここでの重複した説明を省略する。
FIG. 5 is a flowchart showing an example of a specific processing procedure for calculating the upper bound.
Steps ST301 to ST303 may be the same as steps ST201 to ST203 described with reference to FIG. 4, and therefore a duplicated description will be omitted here.
ステップST304で、表作成部1021は、移動した頂点に対応するマスに2つ以上の経路が存在するかどうか判定する。例えば車両が2台以上ある場合、異なる経路をたどって同じ地点に到着する場合がある。表作成部1021は、このような場合があるかどうかを判定することになる。そして、移動した頂点に対応するマスに2つ以上の経路が存在しないと判定した場合、処理はステップST305に進む。一方、移動した頂点に対応するマスに2つ以上の経路が存在すると判定した場合、処理はステップST306に進む。 In step ST304, the table creation unit 1021 determines whether two or more routes exist in the square corresponding to the moved vertex. For example, if there are two or more vehicles, they may arrive at the same point by following different routes. The table creation unit 1021 determines whether this is the case. If it is determined that two or more routes do not exist in the square corresponding to the moved vertex, the process proceeds to step ST305. On the other hand, if it is determined that two or more routes exist in the square corresponding to the moved vertex, the process proceeds to step ST306.
ステップST305で、表作成部1021は、移動した頂点に対応するマスに経路と目的関数を知入力する。表作成部1021は、経路制御部1022および目的関数算出部1023から受信した情報に基づいて、移動した頂点に対応するマスに経路と目的関数値を入力して良い。 In step ST305, the table creation unit 1021 inputs the path and the objective function into the cell corresponding to the moved vertex. The table creation unit 1021 may input the path and the objective function value into the cell corresponding to the moved vertex based on information received from the path control unit 1022 and the objective function calculation unit 1023.
ステップST306で、表作成部1021は、目的関数算出部1023から受信した目的関数値のうち最大の目的関数値と、その目的関数値に対応する経路を移動した頂点に対応するマスに入力する。すなわち、表作成部1021は、異なる経路で同じ地点に到達した車両が複数あった場合、目的関数値の最大のものを1つだけ残す。 In step ST306, the table creation unit 1021 enters the maximum objective function value among the objective function values received from the objective function calculation unit 1023 and the path corresponding to that objective function value into the cell corresponding to the vertex traveled. In other words, if there are multiple vehicles that arrive at the same point via different paths, the table creation unit 1021 keeps only the one with the maximum objective function value.
ステップST307は、図4を参照して説明したステップST205と同様の処理で良いため、ここでの重複した説明を省略する。 Step ST307 can be performed using the same processing as step ST205 described with reference to Figure 4, so a duplicated explanation will be omitted here.
ステップST308で、表作成部1021は、最大目的関数値を解算出部103に出力する。表作成部1021は、最大目的関数値が入力されたマスを検索し、検索された最大目的関数値を上界として、解算出部103に出力する。また、表作成部1021は、最大目的関数を処理データ記憶部302に記憶させて良い。このようにして、上界・下界算出部102は、需要点の通り方の制約をさらに制約した動的計画法に基づいて、コストλ以下で巡回できる経路および重みでの目的関数値の最大値の上界を算出することができる。 In step ST308, the table creation unit 1021 outputs the maximum objective function value to the solution calculation unit 103. The table creation unit 1021 searches for the square into which the maximum objective function value is input, and outputs the searched maximum objective function value as an upper bound to the solution calculation unit 103. The table creation unit 1021 may also store the maximum objective function in the processing data storage unit 302. In this way, the upper bound/lower bound calculation unit 102 can calculate an upper bound for the maximum objective function value for a route and weight that can be traveled at a cost of λ or less, based on dynamic programming that further restricts the constraints on how demand points are routed.
図3に戻って、ステップST104で、解算出部103は、適宜局所探索法を用いて解を算出する。解算出部103は、上界に対応する値を整数解に丸める。そして、解算出部103は、適宜局所探索法を用いて解を算出する。当該解は、元問題の最適解に近い解になる。そして解算出部103は、算出した解を誤差評価部104に出力するとともに、処理データ記憶部302に出力する。 Returning to FIG. 3 , in step ST104, the solution calculation unit 103 calculates a solution using a local search method as appropriate. The solution calculation unit 103 rounds the value corresponding to the upper bound to an integer solution. The solution calculation unit 103 then calculates a solution using a local search method as appropriate. This solution is close to the optimal solution for the original problem. The solution calculation unit 103 then outputs the calculated solution to the error evaluation unit 104 and to the processing data storage unit 302.
ステップST105で、誤差評価部104は、誤差を評価する。誤差評価部104は、解算出部103から受信した解と、上界・下界算出部102から受信した下界の差を算出する。誤差評価部104は、当該誤差に基づいて元問題の最適値との誤差を評価する。そして、誤差評価部104は、評価結果についての情報を処理データ記憶部302に出力する。 In step ST105, the error evaluation unit 104 evaluates the error. The error evaluation unit 104 calculates the difference between the solution received from the solution calculation unit 103 and the lower bound received from the upper bound/lower bound calculation unit 102. The error evaluation unit 104 evaluates the error from the optimal value of the original problem based on the error. The error evaluation unit 104 then outputs information about the evaluation result to the processing data storage unit 302.
ステップST106で、出力制御部105は、結果を出力する。出力制御部105は、入出力インタフェース50を通じて、処理データ記憶部302に記憶された上界、下界、解、評価結果等を含む算出結果を出力装置52に出力する。そして、出力制御部105は、当該結果を出力装置52のディスプレイに表示させるように制御して良い。 In step ST106, the output control unit 105 outputs the results. The output control unit 105 outputs the calculation results, including the upper bound, lower bound, solution, evaluation results, etc. stored in the processing data storage unit 302, to the output device 52 via the input/output interface 50. The output control unit 105 may then control the output device 52 to display the results on its display.
(算出例)
重みをyとし、コストλに対してコストλ以下で巡回できる経路r内での目的関数値yTbrの最大値の上界と下界を算出する具体的な例について説明する。
(Calculation example)
A specific example will be described in which the weight is y and the upper and lower bounds of the maximum value of the objective function value y T b r within a route r that can be traveled at a cost λ or less will be calculated.
条件データとして、車両の台数は、2台であり、初期地点は、それぞれv1,v2に配置されるとする。需要点は、3つで、それぞれv3,v4,v5とする。 As condition data, the number of vehicles is two, and the initial points are v 1 and v 2. The number of demand points is three, and the demand points are v 3 , v 4 , and v 5 .
図6は、各頂点間の移動時間の一例を示した図である。
各頂点間の移動時間は、図6に示すようであるとする。なお、この値の単位は、例えば、時間であってよい。
FIG. 6 is a diagram showing an example of the travel time between vertices.
The travel time between each vertex is as shown in Fig. 6. The unit of this value may be, for example, time.
また、遅延コストがλに到達する時間をdλ 3:1,dλ 4:1.25,dλ 5:1とし、仕事時間をw3=0,w4=0,w5=0とする。さらに、重みy=(1,2,3,4,5)Tとする。 Also, the times when the delay cost reaches λ are d λ 3 : 1, d λ 4 : 1.25, and d λ 5 : 1, and the work times are w 3 = 0, w 4 = 0, and w 5 = 0. Furthermore, the weight is y=(1, 2, 3, 4, 5) T .
この条件下での目的関数値yTbrの最大値は、11である。この値の上界と下界を算出する例を説明する。 The maximum value of the objective function value y T br under these conditions is 11. An example of calculating the upper and lower bounds of this value will be described.
表作成部1021が各頂点に対応する表を用意する。そして、表作成部1021は、車両の初期位置に対応するマスすなわち、v1およびv2のマスに重みに対応する値を入力する。 The table creation unit 1021 prepares a table corresponding to each vertex, and then inputs values corresponding to the weights into the squares corresponding to the initial positions of the vehicles, i.e., the squares of v1 and v2 .
そして、経路制御部1022は、現在のマスに対応する頂点から任意の1頂点に車両を移動させる。目的関数算出部1023は、対応する頂点に対する目的関数値を算出する。そして、表作成部1021は、移動した頂点に対応するマスに経路と目的関数値を入力する。これを遅延コストがλに到達するまで繰り返す。 Then, the route control unit 1022 moves the vehicle from the vertex corresponding to the current square to an arbitrary vertex. The objective function calculation unit 1023 calculates the objective function value for the corresponding vertex. The table creation unit 1021 then inputs the route and objective function value into the square corresponding to the moved vertex. This is repeated until the delay cost reaches λ.
図7は、目的関数値の最大値の下界を算出する場合の一例を示した図であり、図8は、目的関数値の最大値の上界を算出する場合の一例を示した図である。 Figure 7 shows an example of calculating the lower bound of the maximum objective function value, and Figure 8 shows an example of calculating the upper bound of the maximum objective function value.
下界を算出する際、同じ頂点を2度通っても良いが連続では通らないという制約に緩和して表への入力が行われる。図7に示すように、時刻1.25で同じ頂点を2回通る経路が入力されており、本来の目的関数値の最大値よりも大きな値が算出されることがわかる。 When calculating the lower bound, the constraint is relaxed to allow the same vertex to be passed twice, but not consecutively, and the path is entered into the table. As shown in Figure 7, a path that passes through the same vertex twice at time 1.25 is entered, and it can be seen that a value greater than the maximum value of the original objective function is calculated.
また、上界を算出する際、同じ頂点を2回通らないという制約の下で、目的関数値と経路を左から順に表に入力が行われる。図8に示すように、時刻0.75で、目的関数値9の経路v1,v3,v5と、目的関数値11の経路v2,v4,v5が同じマスに入力することになるが、目的関数値の大きい後者のみが残されることになる。 In addition, when calculating the upper bound, the objective function values and paths are entered into the table from left to right under the constraint that the same vertex must not be passed twice. As shown in Figure 8, at time 0.75, the path v1 , v3 , and v5 with an objective function value of 9 and the path v2 , v4 , and v5 with an objective function value of 11 are entered into the same cell, but only the latter path with the larger objective function value remains.
(実施形態の作用効果)
以上説明した実施形態によれば、適切に緩和および制限による下界および上界を算出し、上界に対応する値を丸め、局所探索法により解を算出することにより、明らかに大域的最適解から外れた局所最適解に陥ることを防ぎ、且つ、実用上良い解を得ることができる。また、下界との差を取ることにより、元問題の最適値のとの誤差を評価することができる。
(Effects of the embodiment)
According to the embodiment described above, by calculating the lower and upper bounds by appropriate relaxation and restriction, rounding the value corresponding to the upper bound, and calculating the solution by a local search method, it is possible to avoid falling into a local optimum that is clearly different from the global optimum and obtain a practically good solution. In addition, by taking the difference from the lower bound, it is possible to evaluate the error from the optimum value of the original problem.
これにより、例えば、災害ときに、各地点の重要性を加味することにより、被害を少なく抑えて被災地に水または電気を供給する経路を算出することが可能となる。 This makes it possible, for example, in the event of a disaster, to calculate routes to supply water or electricity to affected areas while minimizing damage by taking into account the importance of each location.
[他の実施形態]
なお、この発明は上記実施形態に限定されるものではない。例えば、経路探索装置1は、上界および下界を求めずに上界のみを求め、解のみを算出しても良い
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
Other Embodiments
It should be noted that the present invention is not limited to the above-described embodiments. For example, the route search device 1 may calculate only the upper bound without calculating the upper and lower bounds, and calculate only the solution. Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, as well as within the scope of the claims and their equivalents.
1…経路探索装置
10…制御部
101…データ取得部
102…上界・下界算出部
1021…表作成部
1022…経路制御部
1023…目的関数算出部
1024…コスト判定部
103…解算出部
104…誤差評価部
105…出力制御部
20…プログラム記憶部
30…データ記憶部
301…データ記憶部
302…処理データ記憶部
40…通信インタフェース
50…入出力インタフェース
51…入力装置
52…出力装置
DESCRIPTION OF SYMBOLS 1... Path search device 10... Control unit 101... Data acquisition unit 102... Upper and lower bound calculation unit 1021... Table creation unit 1022... Path control unit 1023... Objective function calculation unit 1024... Cost determination unit 103... Solution calculation unit 104... Error evaluation unit 105... Output control unit 20... Program storage unit 30... Data storage unit 301... Data storage unit 302... Processed data storage unit 40... Communication interface 50... Input/output interface 51... Input device 52... Output device
Claims (4)
前記車両の初期位置および前記需要点に対応する頂点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および各頂点の重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得するデータ取得部と、
前記頂点の通り方の制約を同じ頂点を2回通っても良いが連続で同じ頂点を通らないと緩和した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の下界を算出し、
前記頂点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出する、
算出部と、
前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記各頂点の遅延コストの最大値を最小にする経路を探索する探索部と、
前記探索された経路の解と、前記下界との差を取ることにより、前記探索された経路の解と前記経路の最適値との誤差が前記経路の解と前記下界との差よりも小さい値であると評価する評価部と、
を備え、前記目的関数値は、前記所定のコスト以下で巡回できる経路に対して対応するベクトルと前記重みにより定義され、前記頂点の通り方の制約は、同じ頂点を2回通らない制約であり、前記頂点の通り方の制約をさら制約することは、同じ時点で同じ頂点に2台以上の車両が来た場合、その時点での前記目的関数値の最大のものを1つだけ残すという制約をさらに追加することである、経路探索装置。 A route search device for searching, using a column generation method, for a route that travels from an initial position of a vehicle to all vertices corresponding to demand points, and minimizes the maximum value of delay costs at each vertex, which is a function of the importance of each vertex, the time when the vehicle finishes work at any one of the vertices, and the time when supplies at each vertex are depleted, comprising:
a data acquisition unit that acquires condition data including vertex information including vertices corresponding to the initial position of the vehicle and the demand points, point information including the time until the delay cost corresponding to each vertex reaches a predetermined cost, the work time at each vertex, and the weight of each vertex, and travel time between the vertices;
calculating a route that can be traveled at or below the predetermined cost and a lower bound of the maximum value of the objective function at the weight based on dynamic programming in which the constraint on how the vertices are passed is relaxed to allow the same vertex to be passed twice, but not consecutively;
calculating an upper bound on the maximum value of the objective function value for the weight and a route that can be traveled at a cost equal to or less than the predetermined cost based on dynamic programming with further constraints on the manner in which the vertices are passed ;
A calculation unit;
a search unit that rounds the value corresponding to the upper bound to an integer value and searches for a path that minimizes the maximum value of the delay cost of each vertex by using a local search method as appropriate;
an evaluation unit that evaluates that the error between the searched route solution and the optimum value of the route is smaller than the difference between the searched route solution and the lower bound by calculating the difference between the searched route solution and the lower bound;
wherein the objective function value is defined by the weight and a vector corresponding to a route that can be traveled at or below the predetermined cost , the constraint on how to pass through the vertices is a constraint that the same vertex is not passed through twice, and further constraining the constraint on how to pass through the vertices is by adding a constraint that, when two or more vehicles arrive at the same vertex at the same time, only one with the largest objective function value at that time is left.
前記車両の初期位置および前記需要点に対応する頂点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および各頂点の重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得することと、
前記頂点の通り方の制約を同じ頂点を2回通っても良いが連続で同じ頂点を通らないと緩和した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の下界を算出することと、
前記頂点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出することと、
前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記各頂点の遅延コストの最大値を最小にする経路を探索することと、
前記探索された経路の解と、前記下界との差を取ることにより、前記探索された経路の解と前記経路の最適値との誤差が前記経路の解と前記下界との差よりも小さい値であると評価することと、
を備え、前記目的関数値は、前記所定のコスト以下で巡回できる経路に対して対応するベクトルと前記重みにより定義され、前記頂点の通り方の制約は、同じ頂点を2回通らない制約であり、前記頂点の通り方の制約をさら制約することは、同じ時点で同じ頂点に2台以上の車両が来た場合、その時点での前記目的関数値の最大のものを1つだけ残すという制約をさらに追加することである、経路探索方法。 A route search method executed by a route search device for searching, using a column generation method, for a route that travels from an initial position of a vehicle around all vertices corresponding to demand points, and minimizes a maximum value of delay costs at each vertex, the maximum value being a function of the importance of each vertex, the time when the vehicle finishes work at any one of the vertices, and the time when supplies are depleted at each vertex, the method comprising:
acquiring condition data including vertex information including vertices corresponding to the initial position of the vehicle and the demand points, point information including the time until the delay cost corresponding to each vertex reaches a predetermined cost, the work time at each vertex, and the weight of each vertex, and travel time between the vertices;
calculating a route that can be traveled at a cost equal to or less than the predetermined cost and a lower bound of the maximum value of the objective function at the weight, based on dynamic programming in which the constraint on how the vertices are passed is relaxed so that the same vertex may be passed twice, but not consecutively;
calculating an upper bound on the maximum value of the objective function for the weight and a route that can be traveled at a cost equal to or less than the predetermined cost based on dynamic programming with further constraints on the manner in which the vertices are passed;
rounding the value corresponding to the upper bound to an integer value and searching for a path that minimizes the maximum value of the delay cost of each of the vertices using a local search method as appropriate;
calculating a difference between the solution of the searched route and the lower bound, and evaluating that the error between the solution of the searched route and the optimum value of the route is smaller than the difference between the solution of the searched route and the lower bound;
wherein the objective function value is defined by the weight and a vector corresponding to a route that can be traveled at or below the predetermined cost , the constraint on how to pass through the vertices is a constraint that the same vertex is not passed through twice, and further restricting the constraint on how to pass through the vertices is by adding a further constraint that, when two or more vehicles arrive at the same vertex at the same time, only one with the largest objective function value at that time is left.
前記車両の初期位置および前記需要点に対応する頂点を含む頂点情報と、各頂点情報に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および各頂点の重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得することと、
前記頂点の通り方の制約を同じ頂点を2回通っても良いが連続で同じ頂点を通らないと緩和した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の下界を算出することと、
前記頂点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出することと、
前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記各頂点の遅延コストの最大値を最小にする経路を探索することと、
前記探索された経路の解と、前記下界との差を取ることにより、前記探索された経路の解と前記経路の最適値との誤差が前記経路の解と前記下界との差よりも小さい値であると評価することと、
を経路探索装置のプロセッサによって実行させるための命令を備え、
前記目的関数値は、前記所定のコスト以下で巡回できる経路に対して対応するベクトルと前記重みにより定義され、前記頂点の通り方の制約は、同じ頂点を2回通らない制約であり、前記頂点の通り方の制約をさら制約することは、同じ時点で同じ頂点に2台以上の車両が来た場合、その時点での前記目的関数値の最大のものを1つだけ残すという制約をさらに追加することである、経路探索プログラム。 A route search program for searching, using a column generation method, for a route that travels from an initial position of a vehicle to all vertices corresponding to demand points, and minimizes the maximum value of delay costs at each vertex, which is a function of the importance of each vertex, the time when the vehicle finishes work at any one of the vertices, and the time when supplies at each vertex are depleted, the program comprising:
acquiring condition data including vertex information including vertices corresponding to the initial position of the vehicle and the demand point, point information including the time until the delay cost corresponding to each vertex information reaches a predetermined cost, the work time at each vertex, and the weight of each vertex, and travel time between the vertices;
calculating a route that can be traveled at a cost equal to or less than the predetermined cost and a lower bound of the maximum value of the objective function at the weight, based on dynamic programming in which the constraint on how the vertices are passed is relaxed so that the same vertex may be passed twice, but not consecutively;
calculating an upper bound on the maximum value of the objective function for the weight and a route that can be traveled at a cost equal to or less than the predetermined cost based on dynamic programming with further constraints on the manner in which the vertices are passed;
rounding the value corresponding to the upper bound to an integer value and searching for a path that minimizes the maximum value of the delay cost of each of the vertices using a local search method as appropriate;
calculating a difference between the solution of the searched route and the lower bound, and evaluating that the error between the solution of the searched route and the optimum value of the route is smaller than the difference between the solution of the searched route and the lower bound;
an instruction to cause a processor of the route search device to execute the above;
A route search program, wherein the objective function value is defined by the weight and a vector corresponding to a route that can be traveled at or below the specified cost , the constraint on how to pass through the vertices is a constraint that the same vertex is not passed through twice, and further restricting the constraint on how to pass through the vertices is by adding a constraint that if two or more vehicles arrive at the same vertex at the same time, only the one with the largest objective function value at that time is left.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022132622A JP7792641B2 (en) | 2022-08-23 | 2022-08-23 | Route search device, route search method, and route search program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022132622A JP7792641B2 (en) | 2022-08-23 | 2022-08-23 | Route search device, route search method, and route search program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024030066A JP2024030066A (en) | 2024-03-07 |
| JP7792641B2 true JP7792641B2 (en) | 2025-12-26 |
Family
ID=90105686
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022132622A Active JP7792641B2 (en) | 2022-08-23 | 2022-08-23 | Route search device, route search method, and route search program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7792641B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118231015B (en) * | 2024-03-29 | 2025-10-17 | 中广核核电运营有限公司 | Nuclear power unit equipment aging replacement strategy determination method, device, equipment and product |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005096928A (en) | 2003-09-25 | 2005-04-14 | Jfe Steel Kk | Vehicle operation plan creation method, apparatus and program |
| JP2020057050A (en) | 2018-09-28 | 2020-04-09 | 株式会社ライナロジクス | Information processing apparatus and information processing program |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06266697A (en) * | 1993-03-15 | 1994-09-22 | Hitachi Ltd | Problem solving device |
-
2022
- 2022-08-23 JP JP2022132622A patent/JP7792641B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005096928A (en) | 2003-09-25 | 2005-04-14 | Jfe Steel Kk | Vehicle operation plan creation method, apparatus and program |
| JP2020057050A (en) | 2018-09-28 | 2020-04-09 | 株式会社ライナロジクス | Information processing apparatus and information processing program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2024030066A (en) | 2024-03-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9300134B2 (en) | Methods and systems for power restoration planning | |
| US20130132369A1 (en) | Batched shortest path computation | |
| Nagata et al. | A new genetic algorithm for the asymmetric traveling salesman problem | |
| Church et al. | Integrating normative location models into gis: Problems and prospects with the p-median model (94-5) | |
| US12536445B2 (en) | Method and system for evolved SARSA reinforcement learning for flow shop scheduling | |
| US20180032955A1 (en) | System and method of minimizing waiting time in vehicle routing and scheduling with narrow time-windows | |
| US9175965B2 (en) | Apparatus and method for coordinate coding, and method and apparatus for distance calculation | |
| US12340339B2 (en) | Information processing apparatus, information processing method, and information processing program | |
| CN102915401A (en) | Journey planning in public transportation networks | |
| US9292800B2 (en) | Statistical estimation of origin and destination points of trip using plurality of types of data sources | |
| Kummer et al. | A biased random‐key genetic algorithm for the home health care problem | |
| JP7792641B2 (en) | Route search device, route search method, and route search program | |
| Curtin et al. | A comparative analysis of traveling salesman solutions from geographic information systems | |
| Carić et al. | A modelling and optimization framework for real-world vehicle routing problems | |
| Ribeiro et al. | Efficient heuristics for the workover rig routing problem with a heterogeneous fleet and a finite horizon | |
| US20210248186A1 (en) | Optimization apparatus, optimization method, and storage medium | |
| US20150235247A1 (en) | Computer implemented system and method for determining a multi stage facility location and allocation | |
| Sui et al. | NeuralGLS: learning to guide local search with graph convolutional network for the traveling salesman problem | |
| Abeywickrama et al. | Optimizing bipartite matching in real-world applications by incremental cost computation | |
| CN116069340A (en) | Automatic driving model deployment method, device, equipment and storage medium | |
| US20260073265A1 (en) | Quantum computation support method and information processing apparatus | |
| Sylejmani et al. | Solving the tourist trip planning problem with attraction patterns using meta-heuristic techniques | |
| González et al. | A parallel memetic algorithm to solve the capacitated vehicle routing problem with time windows | |
| Moreno-Pérez et al. | Parallel variable neighborhood searchs | |
| CN115727861A (en) | Vehicle path planning method and device, computer equipment and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20220830 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220830 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20230104 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20230106 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20230208 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240806 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250226 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250318 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250519 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250819 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251020 |
|
| 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: 20251202 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251208 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7792641 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |