JP2001005846A - Cyclic sequence scheduling method - Google Patents

Cyclic sequence scheduling method

Info

Publication number
JP2001005846A
JP2001005846A JP17365399A JP17365399A JP2001005846A JP 2001005846 A JP2001005846 A JP 2001005846A JP 17365399 A JP17365399 A JP 17365399A JP 17365399 A JP17365399 A JP 17365399A JP 2001005846 A JP2001005846 A JP 2001005846A
Authority
JP
Japan
Prior art keywords
search
cyclic sequence
cyclic
evaluation
value
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.)
Pending
Application number
JP17365399A
Other languages
Japanese (ja)
Inventor
Tatsuhiro Sato
達広 佐藤
Toshiro Sasaki
敏郎 佐々木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP17365399A priority Critical patent/JP2001005846A/en
Publication of JP2001005846A publication Critical patent/JP2001005846A/en
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Abstract

PROBLEM TO BE SOLVED: To provide a cyclic sequence scheduling method for efficiently preparing a high-quality cyclic sequence schedule. SOLUTION: A cyclic sequence group initializing part 0112 generates the set of cyclic sequences while utilizing an input data base 0101 as the set of resources or jobs. A cyclic sequence group evaluating part 0113 calculates evaluation values while utilizing an evaluation function data base 0104, an evaluation weight data base 0107 and a normalization coefficient data base 0105 concerning all the cyclic sequences in the cyclic sequence set. An updating means determining part 0114 determines an updating means out of the updating means of plural cyclic sequences by deciding search conditions while using an updating strategy data base 0106. A cyclic sequence group updating part 0114 updates the cyclic sequence in one part of the cyclic sequence set to the other cyclic sequence while utilizing the updating means determined by the updating means determining part 0114. A normalization coefficient calculating part 0116 calculates a normalization coefficient effective for a cyclic sequence search part from the input data base 0101 and the evaluation function data base 0104 and stores it in the normalization coefficient data base 0105.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【発明の属する技術分野】本発明は、生産・交通・物流
分野におけるスケジューリング業務を計算機で支援する
方法及び装置に関するものであり、具体的には計算機を
利用した計画の立案方法、立案過程の制御方法、立案結
果の検証方法に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and an apparatus for supporting a scheduling operation in the fields of production, transportation and logistics by a computer, and more specifically, to a method of preparing a plan using a computer and a control of a planning process. The method and the verification method of the planning result.

【従来の技術】生産・交通・物流等の分野において、与
えられた人員、物資、拠点や作業等に関する割当て順
序、使用順序、到達順序や実施順序といった何らかの順
序を、特定の制約条件と評価指標の下で決定する問題を
順序付け問題、または順序スケジューリング問題と呼
ぶ。その中でも、物流分野における荷物の配送計画や交
通分野における車両の運用ローテーション等、与えられ
た物資や作業の全てをもれなくかつ一度づつ辿って元に
戻る、いわゆる巡回系列を求める問題を、特に巡回系列
スケジューリング問題、もしくは巡回系列探索問題と呼
ぶ。最も古典的で古くから研究レベルでの解法研究が盛
んな巡回系列問題として、与えられた複数の都市を全て
訪問するコスト最小の巡回系列を探索する巡回セールス
マン問題(Traveling Salseman Plobrem, 以下TSP)を挙
げることができる。TSPの解法としては、何らかの手段
によって作成した初期解に対する部分的な変更を繰り返
し、設定された評価関数の下での最適解に徐々に接近し
ていく反復改良型の探索アルゴリズムの一種である遺伝
的アルゴリズム(Genetic Algorithm, 以下GA)の枠組み
を用いて解を求める方式が公知である。((1)片山他,
「巡回セールスマン問題に対する効率的な混合型遺伝的
アルゴリズムの一検討」,電子情報通信学会論文誌A,Vo
l.J81-A, No.12) 反復改良型の探索アルゴリズムとしては、GAの他にも線
形計画法(LP)、局所探索法、局所探索法の改良アルゴリ
ズムであるタブー探索法やアニーリング法等様々な手法
が挙げられるが、共通する利点は、制約条件や評価指標
の変化に対する追随性が高いという点である。ある評価
指標が不要となったり、新たな評価指標が必要となった
場合には、対応する部分評価関数を削除・追加して新た
な評価関数を作成するだけで、その変化に応じた計画の
立案が可能となる。指標間のトレードオフが変化した場
合も、同様に部分評価関数の重みを変更するだけで対応
することができる。反復改良型の探索アルゴリズムは上
記の様な利点を備えるため、制約条件と評価指標が計画
作成状況に応じて変化し易い実際レベルの計画作成問
題、または計画作成システムへの適用が有望視されてお
り、そうした例として、鉄道分野における車両の配車計
画や、車両基地内の車両配置計画等を対象とする資源割
当計画作成システムが公知である。((2)特願平8-10971
3) また、反復改良型の探索アルゴリズムにおける解の評価
処理方法としては、部分評価関数を適用して得られた出
力値に、あらかじめ設定した評価関数の重みを乗じて線
形和をとったものを全体評価値とする方式が公知であ
る。((3)特願平9-301979)
2. Description of the Related Art In the fields of production, transportation, logistics, etc., certain orders such as assignment order, use order, arrival order, and execution order for given personnel, materials, bases, work, etc. are determined by specific constraints and evaluation indexes. Is determined as an ordering problem or an order scheduling problem. Among them, the problem of finding a so-called cyclic sequence, in which all of the given goods and work are traced back one at a time, such as a package distribution plan in the logistics field and a vehicle operation rotation in the transport field, is called a cyclic sequence. This is called a scheduling problem or a cyclic sequence search problem. Traveling Salseman Plobrem (TSP), a search for the least costly traveling sequence that visits a given city as one of the most classical traveling sequence problems that has been actively studied at the research level for a long time Can be mentioned. To solve the TSP, the genetic solution, which is a type of iteratively improved search algorithm that repeats partial changes to the initial solution created by some means and gradually approaches the optimal solution under the set evaluation function A method of finding a solution using a framework of a genetic algorithm (hereinafter referred to as GA) is known. ((1) Katayama et al.
"A Study on Efficient Hybrid Genetic Algorithm for Traveling Salesman Problem", IEICE Transactions A and Vo
l.J81-A, No.12) In addition to GA, linear search (LP), local search, and improved local search methods such as tabu search method and annealing method are also available. Although there are various methods, a common advantage is that the method is highly responsive to changes in constraints and evaluation indices. When a certain evaluation index becomes unnecessary or a new evaluation index becomes necessary, a new evaluation function can be created simply by deleting or adding the corresponding partial evaluation function, and a plan according to the change can be created. Planning is possible. Even when the trade-off between the indices changes, it can be dealt with just by changing the weight of the partial evaluation function. Since the iteratively improved search algorithm has the advantages described above, it is promising that its application to an actual level planning problem or a planning system in which constraints and evaluation indices are likely to change depending on the planning situation. As such an example, a resource allocation plan creation system for a vehicle allocation plan in a railway field, a vehicle arrangement plan in a depot, and the like is known. ((2) Japanese Patent Application 8-10971
3) In addition, as a method of evaluating the solution in the iteratively improved search algorithm, an output value obtained by applying a partial evaluation function is multiplied by a weight of an evaluation function set in advance to obtain a linear sum. A method of setting the overall evaluation value is known. ((3) Japanese Patent Application No. 9-301979)

【発明が解決しようとする課題】GAをはじめとする反
復改良型の探索アルゴリズムは、資材や人員の配置計画
といった、組合せ最適化の分野におけるいわゆる資源割
当て問題に対しては非常に強力な道具である。制約条件
や評価指標が曖昧なために定式化が困難な実レベルの問
題であっても容易に適用可能であり、効率的に質の高い
計画案を探索・作成することができる。しかしながら、
巡回系列探索問題を含む順序付け問題に対しては、その
適用が困難であることが近年指摘されており、対象問題
の性質を利用して問題をよりやさしい問題に変形した
り、反復改良型アルゴリズムを基盤として対象問題固有
の知識を利用した個別処理を組み込むことで対応するこ
とが多い。前記公知例(1)も、TSPに固有の性質を探索処
理の中に組み込んだ方法であり、他の巡回系列探索問題
に適用可能な汎用的な探索アルゴリズムではない。他の
問題に適用するためには、取り扱いが容易な評価関数だ
けではなく、探索処理内部も固有知識により再構築する
必要があるため、開発に手間がかかり、保守・拡張性も
低いものとなる。また、反復改良型探索アルゴリズム
は、ユーザによる探索の直接的な制御が困難であるとい
うことも問題であった。ユーザは探索を途中で一時停止
させて、各種の探索パラメータや評価関数を変更した
り、計画案の一部を固定してから探索を再開することが
できるが、探索のやり方そのものを変えることができな
いため、例えば探索が局所解に陥り、それ以上探索を続
けても解の改善が可能性が低くなった場合に、探索空間
を強制的に広げて広域探索を実行させる、といった直接
的な制御をおこなうことができなかった。さらには、従
来例ではユーザは評価指標の重みを変更することで解探
索への重要度を制御することができたが、一般的に部分
評価関数はそれぞれ出力値が全く異なるものであるた
め、統一的な尺度で重みを設定することができず、ユー
ザの意図を解探索に正確に反映することが困難であると
いう問題点もあった。本発明の目的は、実際レベルの巡
回系列探索問題に対して、制約条件及び評価指標の重要
度と探索過程の制御に関するユーザ意図を柔軟かつ正確
に反映し、高品質な計画案を効率的に作成可能なスケジ
ューリング支援システムを提供することにある。
An iteratively improved search algorithm such as GA is a very powerful tool for so-called resource allocation problems in the field of combinatorial optimization, such as material and staffing planning. is there. Even a real-level problem that is difficult to formulate due to ambiguous constraints and evaluation indices can be easily applied, and a high-quality plan can be efficiently searched and created. However,
It has recently been pointed out that it is difficult to apply the ordering problem including the cyclic sequence search problem, and it is possible to transform the problem into a more easy problem by using the properties of the target problem, or to use an iterative improvement algorithm. In many cases, this is handled by incorporating individual processing using knowledge specific to the target problem as a base. The above-mentioned known example (1) is also a method in which a property unique to TSP is incorporated in the search processing, and is not a general-purpose search algorithm applicable to other cyclic sequence search problems. In order to apply to other problems, it is necessary to reconstruct not only the evaluation function that is easy to handle but also the inside of the search process with unique knowledge, which requires much time for development and lowers maintenance and expandability. . Another problem with the iteratively improved search algorithm is that it is difficult for the user to directly control the search. The user can pause the search, change various search parameters and evaluation functions, or restart the search after fixing a part of the plan, but the search method itself can be changed. Direct control, for example, when the search falls into a local solution and the possibility of improving the solution is low even if the search is continued further, the search space is forcibly expanded to execute a wide area search. Could not be performed. Furthermore, in the conventional example, the user was able to control the importance to the solution search by changing the weight of the evaluation index. However, since the partial evaluation functions generally have completely different output values, There is also a problem that weights cannot be set on a unified scale, and it is difficult to accurately reflect a user's intention in a solution search. SUMMARY OF THE INVENTION An object of the present invention is to flexibly and accurately reflect the importance of constraints and evaluation indices and a user intention regarding control of a search process for an actual level cyclic sequence search problem, and efficiently create a high-quality plan. It is to provide a scheduling support system that can be created.

【課題を解決するための手段】上記目的は、入力データ
ベースから入力データを受け入れて巡回系列を複数個作
成する巡回系列群初期化部と、評価関数データベースと
正規化係数データベースと評価重みデータベースを利用
して巡回系列を評価する巡回系列群評価部と、更新戦略
データベースを利用して巡回系列の更新手段を決定する
更新手段決定部と、新たな巡回路を生成する巡回系列群
更新部とを内部に備える巡回系列探索部と、巡回系列探
索部で得られた探索結果の巡回系列を計画案の形式に変
換して計画案データベースに格納する計画案変換部と、
評価関数データベースと入力データベースとを利用して
正規化係数を計算し正規化係数データベースに格納する
正規化係数算出部と、各データベースの変更と計画案の
評価と修正をおこなうユーザ介入部を作成することによ
り達成される。
The object of the present invention is to utilize a cyclic sequence group initialization unit for receiving input data from an input database and generating a plurality of cyclic sequences, an evaluation function database, a normalization coefficient database, and an evaluation weight database. A cyclic sequence group evaluator that evaluates the cyclic sequence, an updating unit determiner that determines an update unit of the cyclic sequence using an update strategy database, and a cyclic sequence group update unit that generates a new cyclic circuit. A cyclic sequence search unit, and a plan conversion unit that converts the cyclic sequence of the search result obtained by the cyclic sequence search unit into a plan form and stores it in a plan database,
Create a normalization coefficient calculation unit that calculates a normalization coefficient using the evaluation function database and the input database and stores it in the normalization coefficient database, and a user intervention unit that evaluates and modifies each database change and plan. This is achieved by:

【発明の実施の形態】以下、本発明の一実施例として、
鉄道車両基地における、車両運用ローテーション作成支
援システムについて説明する。本実施例は、鉄道車両基
地における車両運用業務を支援するシステムであり、車
両を本線上で営業運転をおこなうか否か、営業運転をす
る場合はどの運行ダイヤを担当するか、また修理、点
検、清掃といった保守作業をいつ、どこでおこなうかと
いった、車両の日々の運用予定を立案する際に用いられ
る基本計画(車両運用ローテーション)を作成するもので
ある。まず、図1の入力データDB0101に格納される車両
運用ローテーション作成の入力データについて説明す
る。図2は運行ダイヤの例である。図2では6通りのダイ
ヤが示されており、それぞれに対して数字0201のように
重複しない番号がつけられている。横軸0202は路線の運
行時間帯を表している。各ダイヤにおける黒い棒線は、
本線上で営業運転をすることを意味しており、丸記号02
03はラベル0204が表す車両基地もしくは駅からの出発
を、三角記号0205はラベル0206が表す車両基地もしくは
駅への到着を表す。また、ラベル0207は運行ダイヤを構
成する部分ダイヤの名称を表す。例えば番号2のダイヤ
は、朝6時過ぎに駅Aを出発して、その後お昼頃まで本線
上で営業運転をおこない基地Xに入庫する(部分ダイヤD
2)、その後は夕方に再び本線へ戻り営業運転を再開し、
一日の運転を終えて最終的に基地Yへ入庫する(部分ダイ
ヤD3)。この例のように、ダイヤの中には営業運転の途
中で車両基地に一旦入庫したのちに再び営業運転をおこ
なうものもあれば、番号1のダイヤのように本線上で終
日営業運転をおこなうものもある。以降の記述では、運
行ダイヤを指定するために、ダイヤ2といったダイヤ番
号かD2-D3といった部分ダイヤの名前の組合せのいずれ
かを用いることとする(図2においてはダイヤ2とD2-D3は
同一の運行ダイヤを指す)。これらの運行ダイヤを実施
するために、各ダイヤに対して車両が重複なく(1対1)、
もれなく毎日割り当てられる。また、車両基地に終日在
線しておこなわなければならない特別作業があること
と、車両故障といった突発的事態に対応するための待機
車両を用意する必要から、(車両総数 - ダイヤ総数)分
の車両は営業運転をおこなわない、すなわちダイヤが割
り当てられない予備車両として車両基地に終日在線する
ことになる。この予備の車両基地への配分も入力データ
として入力DB0101に格納される。車両には安全性・快適
性を維持するために各種の保守作業(清掃、点検、修理
等)を施す必要がある。保守作業の中には、車両を営業
運転からはずして車両基地に長期間在線させなければな
らないものもあれば、営業運転の合間の数十分〜数時間
程度の比較的短い時間で作業を完了できる比較的簡単な
ものもある。短期作業の一例として、列車検査(または
仕業検査)と呼ばれる作業を挙げることができる、この
作業は、各車両に対して一定期間(現在3日)以内の間隔
で定期的に実施するという実施の回帰条件が法律で明確
に規定されている。各鉄道会社では、日々の輸送業務を
安全・確実・快適に実現するために、各車両の実施ダイ
ヤ(予備)と保守作業の予定を数日〜数週間分にわたって
あらかじめ作成しておき、その予定に沿って日々の車両
運用業務を実施している。この運用の予定のことを車両
運用計画と呼ぶ。車両運用計画を参照することにより、
ある車両が特定の一日において、営業運転をおこなう
か、それとも予備在線するか、営業運転ならばどのダイ
ヤを担当するか、予備ならばどの車両基地に在線する
か、また保守作業を受けるか、受けるならばどこで、い
つ、何を受けるか、といった車両運用業務に関するあら
ゆる情報を取得することが可能である。図3に本実施例
で用いる運用情報のデータ構造を示す。図3では、ある
車両のある一日の運用に関する情報が、例としてデータ
フィールドに格納されている。項目0301は実施する運行
ダイヤもしくは予備の識別記号を表し、例では図2の運
行ダイヤ一覧における上から2番目のダイヤ(D2-D3)が割
り当てられていることを示す。項目0302は実施する作業
を表す。作業の実施予定がない場合には、空の作業に対
応するヌル文字列「---」を設定する。項目0303は該当
作業の実施時間帯である。本実施例では説明をわかり易
くするために、作業実施時間帯を昼間と夜間の二つに大
きくわけ、この項目には「昼間」もしくは「夜間」のい
ずれかの情報を設定することにする。項目0304は作業の
実施場所である。ちなみに図2のダイヤ2は昼間に一旦基
地Yに入庫して、その後夕方再び出庫して営業運転をお
こなう運行形態をとっており、この運用データに組み込
まれた列車検査を実際に実施可能であることがわかる。
列車検査以外の作業が存在して、それらを複数実施可能
な場合には、項目0302,0303,0304の各項目を作業数に応
じて増加することで対応する。図4は運用データのイメ
ージ形式である。運用イメージ0401は、図3の運用デー
タを視覚化したものである。ラベル0403は作業内容を表
し、ラベルが位置する時間帯において該当作業を実施す
ることを表す。運用イメージ0402は、予備運用を視覚化
したものである。ラベル0404は該当運用が予備であるこ
とと、その在線場所を示し、例では基地Yで終日在線す
ることを表している。また、作業ラベルから長期作業を
当日実施する予定であることが読みとれる。車両運用計
画を立案するにあたっては、先に述べた列車検査が通常
最も回帰条件が厳しいため、鉄道各社はともに列車検査
の実施間隔が絶対に回帰日数を超過しないように細心の
注意を払っている。また回帰日数が短いということは、
それだけ対象となる車両が多いため、必然的に作業量も
膨大なものとなり、実施場所・時間帯等に偏りがなく、
効率的に作業が実施できるような計画を立案することも
重要な課題となっている。他の作業については、長期作
業は回帰日数ががかなり長い(数ヶ月から数年単位)た
め、前もって作業計画を立案しておき、その作業計画を
優先しつつ比較的容易に運用計画を立案することができ
る。また、清掃作業等、回帰条件は厳密なものではな
く、目安として設定されているものに関しては、一旦運
用計画を作成した後に、実施可能であるための条件を崩
さない限りにおいて後から適宜予定を組んでいくことで
対応できる。車両運用計画の作成目的の中で最も重要な
ものは運用業務の安全・効率化であることはいうまでも
ないが、運用業務のパターン化も計画作成上の重要な観
点のひとつである。日々の業務内容がある一定のパター
ンに沿っていれば、運用業務に携わる現場作業者が業務
内容を毎日苦労して覚える必要がなくなり、記憶違いに
よるミスを大幅に減らすことができる。またたとえ完全
なパターン化が無理であっても、業務の大部分がパター
ンに沿っていれば、パターンからの相違点に着目するだ
けで業務内容を容易に理解することができる。さらに
は、パターンを利用した計画作成はゼロから計画を立案
する作業と比べて、計画作成者にかかる負担がはるかに
少ないというメリットもある。そこで、ダイヤ数が多く
複数の車両基地で車両を分散管理する大規模路線を擁す
る鉄道会社の多くは、(1)車両運用計画の基本パターン
をダイヤ改正毎に作成し、(2)基本パターンを調整する
ことによりある期間の実際の運用計画を作成している。
この車両運用計画の基本パターンが本実施例が作成対象
とする車両運用ローテーションである。図5は車両運用
ローテーションの視覚イメージである。本実施例におけ
る車両運用ローテーションとは列車検査以外の作業予定
が全く存在しないと仮定した場合の車両1個に対する運
用のサイクリックな割り当て順序のことである。図5に
おいて、ある車両が計画作成期間の初日に運用0501が割
り当てられたと仮定する。運用0501の夜入庫場所は駅A
で、運用0502の朝出庫場所は同じく駅Aであるため、矢
印に沿って翌日に運用0502を実施することは物理的に可
能である。運用0502以降も同様に矢印に沿って運用050
3、0504、0d5005、0506、0507、0508、再び戻って0501
と順次運用していくことが可能であり、以降何度でもこ
のサイクリックな運用を繰り返すことができる。また、
このように矢印に沿って車両を運用することにより、列
車検査を規定回帰日数の3日以内に必ず実施することが
可能である。以上から、列車検査以外の作業が存在しな
いと仮定した場合には、車両に対して車両運用ローテー
ションを機械的に適用するだけで実施可能な車両運用計
画を作成することができる。車両運用ローテーションに
は、全てのダイヤと予備が重複なく含まれている。この
ことから、車両運用ローテーションは1車両に対する理
想的な割り当て順序を表すと同時に、全車両に対する1
日の運用内容をも同時に表している。従って図6に示す
ように、長期作業等、列車検査以外の作業予定が全く無
いという理想的な状況を仮定するならば、全ての車両に
対して割り当て開始位置をずらして運用ローテーション
パターンを適用するだけで高品質の車両運用計画を得る
ことができる。当然ながら長期作業の予定が全く存在し
ない、などという状況はほとんどなく、通常はいくつか
の車両に対して長期作業を施す必要があるため、実際に
は整合性をとるために、計画作成者が他の作業計画を考
慮に入れつつ、車両運用ローテーションを部分的に崩し
て計画を立案することになる。図7に車両運用ローテー
ションのデータ形式を示す。一次元配列の構造を持って
おり、配列要素は運用データへのポインタである。要素
の並びの順番が運用を割り当てていく順序に対応する。
図では配列中の2番目のポインタ0701が運用0702を指し
ている。配列要素数は予備を含めたダイヤの総数に等し
く、それぞれの運用に含まれるダイヤと予備は互いに異
なる。本実施例の車両運用ローテーション作成支援シス
テムは、図1に示すように入力DB0101から運行ダイヤと
予備の配分からなる入力データを受け入れて、図7の形
式の車両運用ローテーションを作成し計画案DB0102に格
納する。実行可能な車両運用ローテーションを作成する
にあたっては、以下に示す制約条件を遵守することが求
められる。 (1)ダイヤ(予備)の接続が物理的に正しい順番で運用が
並んでいること。すなわちローテーション中の任意の運
用Aの次に位置する運用Bの朝出発場所(予備ならば在線
場所)が、運用Aの夜入庫場所(夜ならば在線場所)と常に
等しいこと(接続条件)。 (2)ローテーションに沿って運用割当てをおこなうこと
により、列車検査を法律で定められた規定の回帰日数以
内に実施できること(回帰条件)。また、実行可能なだけ
ではなく高品質な車両運用ローテーションを得るために
考慮すべき評価指標としては、以下に示すものが例とし
て挙げられる。 (1)列車検査の総本数が少ない (2)予備のばらつきが少ない (3)作業可能な空き時間帯のばらつきが少ない (4)列車検査の場所・時間帯の偏りが少ない (5)列車検査の実施間隔がなるべく均等である (6)予備にはなるべく列車検査を割り当てない 評価指標のいくつかは互いにトレードオフの関係にある
ため、優先順位を考慮しながら両者を巧みにバランスさ
せつつ計画を作成しなければならない。また評価指標と
その重みは各車両基地の車両運用の方針や計画作成者が
異なればそれに応じて様々に変化するため、そうした変
化に柔軟に対応して車両運用ローテーションを作成する
ことが求められる。接続条件は、ローテーションに含ま
れるダイヤと予備の並びの順序から充足の可否を判定す
ることが可能である。また回帰条件は、3日以内に列車
検査を設定できるようにダイヤと予備を並べていくこと
で満足でき、ダイヤと予備の並びの順序に依存した条件
と捉えることができる。したがって、車両運用ローテー
ション作成問題は、本質的にはダイヤと予備を並べてい
く順序、すなわち全てのダイヤと予備をもれなく巡回す
る系列を求める巡回系列探索問題に帰着できる。本実施
例では、車両運用ローテーション作成問題を巡回系列探
索問題と捉えて解探索をおこない、実行可能な高品質の
車両運用ローテーションを作成する。以降ではその具体
的な作成方法について図1を中心に説明する。まず入力D
B0101より入力データを取得し、巡回系列探索部0111へ
渡す。巡回系列探索部は、内部処理として巡回系列群初
期化部0112、巡回系列群評価部0113、更新手段決定部01
14、巡回系列群更新部0115を持ち、入力データに対応す
る巡回系列探索問題を解き、探索結果を巡回系列DB0103
へ出力する。なお入力データに関して、以降では特に断
らない限り、運行ダイヤは図2に示す6個のデータを用
い、予備は車庫Xと車庫Yにそれぞれひとつづつ配分する
こととする。また、ダイヤと予備をまとめて扱うために
通し番号をつけることにし、ダイヤに対してはダイヤ番
号と同じ番号を、車庫Xの予備には番号7、車庫Yの予備
には番号8をそれぞれ与える。以下では図8の処理フロー
を用いて本実施例における巡回系列探索部の概要を説明
する。本実施例においては、探索アルゴリズムの枠組み
として、生物の進化機構を模倣した最適化手法である遺
伝的アルゴリズム(Genetic Algorithm, GA)を用いる。G
Aは、探索問題の解を一個の生物個体、解くべき問題の
制約と評価指標を個体の生存環境とそれぞれ捉える。探
索の初期状態で規定サイズの個体集団をランダムに生成
し、各個体の環境への適応度に応じて自然淘汰、交配、
突然変異といった遺伝的操作を繰り返して新たな個体を
次々に生成する。1回の遺伝的操作により個体集団の世
代が更新されると考え、規定世代の繰返しの後に得られ
た集団において最も適応度の高い個体を最終的な解とし
て出力する。GAは、何らかの手段によって作成した初期
解に対する部分的な更新を繰返し、設定された評価関数
の下での最適解に徐々に接近していく反復改良型の探索
方法である。本発明は、図1における巡回系列探索部の
内部処理0112,0113,0114,0115を備えることができれ
ば、探索の枠組はGAに限らず線形計画法(LP)、局所探索
法、局所探索法の改良型であるタブー探索法やアニーリ
ング法等の他の反復改良型を利用することも可能であ
る。図8の処理フローにおいて、まずステップ0801にお
いて世代数カウンタを1に初期化する。次にステップ080
2において巡回系列を表す個体を複数個生成する。この
処理が図1の巡回系列群初期化処理0112に該当する。図9
に個体(巡回系列)のデータ構造を示す。データ数(ダイ
ヤ+予備の総数)に等しいデータフィールドを持つ配列
構造であり、各フィールドにはデータ番号が格納され
る。個体表現は外見上は単純な配列であるが、数値の格
納方法に以下に示す制約がある特殊なデータである。 (1)格納される数値に重複がない (2)全てのデータ(ダイヤもしくは予備)に対して、隣接
するデータ(端のデータの場合は配列の他の端のデータ)
との間で接続条件を満足する。接続条件とは、前述した
「夜入庫場所と朝出庫場所が等しい」という条件であ
る。図9の個体データが表すダイヤと予備の並びは、図5
の車両運用ローテーションの並びと一致しており、全て
のデータが接続条件を満足している。入力データから任
意に抽出した二つのデータ間の接続可能性は、図10に示
す接続制約グラフを用いて判定することができる。接続
制約グラフは(データ数+1)個の頂点を持つ有向グラ
フである。各頂点につけられた0以外の番号は入力デー
タのデータ番号を表す。番号0の頂点はダミー頂点であ
り、後述する個体生成処理において、配列の先頭データ
を決定するために用いられる。頂点を結ぶ枝が二つのデ
ータの接続可能性を表しており、例えば図10の接続制約
グラフにおいて、頂点1から頂点8への枝が存在するとい
うことは、対応する運行ダイヤ1から車庫Yの予備へ接
続可能であるということを意味する。実際に運行ダイヤ
1の夜入庫場所は車庫Yであり接続可能なので、接続制
約グラフは実際のデータ間の接続可能性を正しく表して
いる。なお、ダミー頂点は他の全てのデータと相互に接
続可能であるとする。個体データは、接続制約グラフ上
に存在する全ての頂点をもれなく一回づつ辿る巡回系列
のひとつに対応している。例えば図9に例を示す個体デ
ータは、図11に示す巡回系列0→5→2→8→3→1→6→4→
7→0に対応している。頂点0から接続する頂点が個体配
列の先頭を表しており、それ以降の番号の並びは配列に
格納するデータ番号を表し、機械的な変換処理により図
11の巡回系列から図9の個体データを取得することがで
きる。図11のように、グラフ上の全ての頂点をちょうど
一回づつ経由する巡回系列は、離散数学の分野において
ハミルトン閉路と呼ばれており、本実施例は有向グラフ
上のハミルトン閉路をGAの個体表現に用いると捉えるこ
とができる。そこで以降の説明においては、GAの個体、
巡回系列、ハミルトン閉路の三者は同一のものを指すこ
ととし、文脈に合わせて用語を切替えて使用することと
する。図8の個体群生成処理0802の説明を続ける。本処
理では、入力データから得られた接続制約グラフにおい
て、ハミルトン閉路をランダムに選択することにより個
体データを生成する。個体データのランダム生成処理の
概要を図12の処理フローを用いて説明する。ステップ12
01では、頂点数nにサイズが等しい配列Aと、配列A上の
位置を指定するためのインデックスIを用意する。配列A
にはこの処理が終了した時点でハミルトン閉路を表す頂
点系列が格納されることになる。ステップ1202ではイン
デックスIを1にして、全ての頂点に未選択の印付けを
おこなう。次にステップ1203において、配列Aの先頭に
ダミー頂点0を格納し、頂点0を選択済みとしてインデッ
クスIの値を1増やす。ステップ1204では、配列Aの先頭
からI-1番目の頂点を取り出し、それをv1とする。ステ
ップ1205においてIがn+1に等しい、すなわち頂点v1がハ
ミルトン閉路の最後の頂点かどうかを判定し、判定結果
がYesであればステップ1206へ進み、v1が配列Aの先頭頂
点へ接続可能であるかを判定し、結果がYesであれば全
体処理の結果をtrueとして処理を終了する。結果がNoの
場合には全体処理の結果をfalseとして処理を終了す
る。ステップ1205の判定結果がNoの場合にはステップ12
09へ進む。ここでは頂点v1から接続可能な頂点のうち、
未だ選択されていないものを全て集めてその集合をSと
する。ステップ1210において、Sが空集合であるかを判
定し、空集合の場合にはステップ1208へ進んで全体処理
の結果をfalseとし、処理を終了する。Sが空集合ではな
い場合にはステップ1211へ進み、まず集合Sからランダ
ムに頂点を1個選択しそれをv2とする。さらにv2を選択
済みとし、インデックスIの値を1増やし、処理フロー
中の点線で囲まれた部分(サブルーチンR)を再帰的に実
行する。サブルーチンRは自分自身の呼出しを再帰的に
おこなっていき、その結果として配列Aの各位置の頂点
を先頭から順に選択していくことになる。この再帰呼出
しの結果がfalseの場合は、ステップ1214へ進みv2を未
選択に戻し、Iの値を1減らして別の頂点を選択するた
めにステップ1211へ戻る。結果がtrueの場合には、配列
Aの最後まで頂点選択が成功したのでステップ1207へ進
み、全体処理の結果をtrueとして処理を終了する。全体
処理の結果がtrueの場合は、ダミー頂点0を始点として
作成したハミルトン閉路の頂点が、閉路の順番に沿って
配列Aに先頭から格納される。与えられた接続制約グラ
フにハミルトン閉路が存在するならば、上記の生成処理
により、任意のハミルトン閉路をひとつ生成することが
できる。ハミルトン閉路が存在しない場合には、処理結
果はfalseを返すことになる。巡回系列探索問題におい
ては、接続制約グラフはハミルトン閉路を少なくともひ
とつ持っていることを前提とするので、結果がfalseと
なる場合はなく、本処理を実行することによりハミルト
ン閉路を必ず取得できる。図8の個体群生成処理0802に
戻って処理を続ける。本処理によって得たハミルトン閉
路を表す配列Aに対して、先頭から2番目の頂点から最
後の頂点までを順序を変えずに個体データにコピーする
ことにより、個体データを1個生成する。生成する個体
の数は図1の探索パラメータDBからパラメータとして指
定される。図13に探索パラメータのデータ構造の例を示
す。図に示すように探索パラメータは、(1)個体数、(2)
探索世代数、(3)自然淘汰率、(4)突然変異率の4個のデ
ータフィールドを少なくとも備えている。個体群生成処
理において生成する個体の数を規定するのは、フィール
ド1301の個体数であり、図では30個の個体生成を指示し
ている。他のパラメータの意味と用途については以降で
順次説明する。図8に戻り巡回路探索処理の説明を続け
る。ステップ0802では、個体群の評価をおこなう。この
処理が図1の巡回系列群評価処理0113に該当する。個体
が表すダイヤと予備の並びから得られる車両運用ローテ
ーションに対して、接続条件と回帰条件のふたつの制約
条件とあらかじめ設定した様々な評価指標の充足度のチ
ェックをおこなう。各制約条件及び評価指標に対して個
別に部分評価関数がライブラリとして与えられているも
のとする。部分評価関数は、対応する制約条件または評
価指標が完全に充足している場合には値が0で、充足度
合が低くなるにつれて値が増加するペナルティ関数であ
ることを唯一の条件とする。例えば、評価指標「列車検
査の総本数が少ない」に対しては下記に示す関数を与え
ることができる。
BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, as one embodiment of the present invention,
A vehicle operation rotation creation support system in a railway depot will be described. The present embodiment is a system for supporting a vehicle operation operation at a railway depot, and determines whether or not a vehicle is to be operated on business on a main line, which operation schedule is in charge of business operation, and repair and inspection. A basic plan (vehicle operation rotation) used when planning a daily operation schedule of a vehicle, such as when and where maintenance work such as cleaning is performed, is created. First, the input data for creating the vehicle operation rotation stored in the input data DB 0101 of FIG. 1 will be described. FIG. 2 is an example of an operation schedule. FIG. 2 shows six types of diamonds, each of which is given a unique number such as numeral 0201. The horizontal axis 0202 represents the operation time zone of the route. The black bar in each diamond is
This means operating on the main line.
03 indicates departure from the depot or station indicated by the label 0204, and triangular symbol 0205 indicates arrival at the depot or station indicated by the label 0206. A label 0207 represents the name of a partial diagram that constitutes the operation diagram. For example, the timetable of No. 2 departs from station A after 6 o'clock in the morning, then operates on the main line until noon and enters base X (partial timetable D
2) After that, return to the main line again in the evening and resume commercial operation,
After one day of operation, the vehicle finally enters the base Y (partial diamond D3). As in this example, some of the schedules that enter the depot once during business operation and then re-enter business operation, and those that operate all day on the main line like the number 1 diamond There is also. In the following description, in order to specify an operation schedule, either a diamond number such as diamond 2 or a combination of partial diamond names such as D2-D3 is used (in FIG. 2, diamond 2 and D2-D3 are the same). Service schedule). In order to implement these service schedules, vehicles for each schedule are not duplicated (one-to-one),
Allocated every day without exception. In addition, because there is special work that must be performed all day at the depot, and it is necessary to prepare standby vehicles to respond to unexpected situations such as vehicle breakdowns, vehicles for (total number of vehicles-total number of trains) The vehicle will not be in business operation, that is, will remain at the depot all day as a spare vehicle to which no schedule is assigned. The allocation to the spare depot is also stored in the input DB 0101 as input data. It is necessary to perform various maintenance work (cleaning, inspection, repair, etc.) on vehicles to maintain safety and comfort. Some of the maintenance work requires removing the vehicle from commercial operation and keeping the train at the depot for a long period of time, while completing the work in a relatively short time of about tens of minutes to several hours between commercial operations Some are relatively simple to do. An example of short-term work can be work called train inspection (or work inspection), which is implemented on a regular basis at regular intervals (currently three days) for each vehicle. Regression conditions are clearly stipulated by law. In order to realize daily transportation operations safely, reliably, and comfortably, each railway company prepares a schedule (maintenance) and maintenance work for each vehicle in advance for several days to several weeks, and that schedule Along with daily vehicle operations. This operation schedule is called a vehicle operation plan. By referring to the vehicle operation plan,
Whether a vehicle will be in commercial operation or on standby on a particular day, which schedule will be in charge for commercial operation, which depot will be in standby, and whether maintenance will be performed, It is possible to obtain all information on vehicle operation such as where, when, and what to receive. FIG. 3 shows a data structure of operation information used in the present embodiment. In FIG. 3, information relating to a certain day's operation of a certain vehicle is stored in a data field as an example. Item 0301 represents a service schedule to be implemented or a spare identification symbol, and in the example, indicates that the second diagram from the top (D2-D3) in the service schedule list in FIG. 2 is assigned. Item 0302 represents the work to be performed. If no work is scheduled to be performed, set a null character string “---” corresponding to an empty work. Item 0303 is the execution time zone of the work. In this embodiment, in order to make the description easy to understand, the work execution time zone is divided into two, that is, daytime and nighttime, and information of either “daytime” or “nighttime” is set in this item. Item 0304 is a place where the work is performed. By the way, the diagram 2 in Fig. 2 has an operation mode in which it enters the base Y once in the daytime, then exits again in the evening and performs commercial operation, and the train inspection incorporated in this operation data can be actually performed You can see that.
If work other than train inspection exists and a plurality of work can be performed, the items 0302, 0303, and 0304 are increased by increasing the number of work according to the number of work. FIG. 4 shows an image format of operation data. The operation image 0401 is a visualization of the operation data in FIG. A label 0403 indicates the content of the work, and indicates that the corresponding work is performed in the time zone where the label is located. The operation image 0402 is a visualization of the preliminary operation. A label 0404 indicates that the corresponding operation is a backup and the location where the line is located. In the example, the label 0404 indicates that the line is to be stayed at the base Y all day. In addition, it can be seen from the work label that long-term work is scheduled to be performed on the day. In planning a rolling stock operation plan, the train inspections mentioned above are usually the most rigorous in terms of regression conditions, so all railway companies take great care to ensure that train inspection intervals do not exceed the number of return days. . Also, the short return period means that
Because there are so many vehicles to be targeted, the amount of work inevitably becomes enormous, and there is no bias in the implementation place, time zone, etc.
It is also an important issue to formulate a plan so that work can be carried out efficiently. For other work, long-term work requires a long return cycle (months to years), so work plans should be prepared in advance, and operation plans can be made relatively easily while prioritizing the work plans. be able to. In addition, the regression conditions such as cleaning work are not strict, and for those that are set as a guideline, once an operation plan has been created, an appropriate plan will be made later as long as the conditions for feasibility are not disrupted. We can cope by assembling. It goes without saying that the most important thing in creating a vehicle operation plan is to improve the safety and efficiency of operation work, but patterning of operation work is also one of the important viewpoints in preparing a plan. If the daily work contents follow a certain pattern, the field workers involved in the operation work do not have to struggle to remember the work contents every day, and mistakes due to mistakes in memory can be greatly reduced. Even if complete patterning is impossible, if most of the work follows the pattern, the contents of the work can be easily understood only by focusing on the differences from the pattern. Furthermore, creating a plan using patterns has the advantage that the burden on the plan creator is far less than the task of creating a plan from scratch. Therefore, many railway companies that have a large number of trains and have large-scale routes that manage vehicles at multiple depots in a distributed manner have (1) created a basic pattern for rolling stock operation plans every time the schedule is revised, and (2) By coordinating, an actual operation plan for a certain period is created.
The basic pattern of the vehicle operation plan is the vehicle operation rotation to be created by the present embodiment. FIG. 5 is a visual image of the vehicle operation rotation. The vehicle operation rotation in the present embodiment is a cyclic allocation order of operations for one vehicle when it is assumed that there is no work schedule other than the train inspection. In FIG. 5, it is assumed that a certain vehicle is assigned operation 0501 on the first day of the planning period. Station A at night for operation 0501
Then, since the morning delivery place of operation 0502 is also station A, it is physically possible to execute operation 0502 the next day along the arrow. Operation 050 and subsequent operations are also performed along the arrow.
3,0504,0d5005,0506,0507,0508, go back again 0501
Can be operated sequentially, and this cyclic operation can be repeated any number of times thereafter. Also,
By operating the vehicles along the arrows in this way, it is possible to perform the train inspection without fail within three days of the prescribed return. As described above, when it is assumed that there is no operation other than the train inspection, a vehicle operation plan that can be executed only by mechanically applying the vehicle operation rotation to the vehicle can be created. The vehicle operation rotation includes all schedules and spares without duplication. From this, the vehicle operation rotation represents the ideal assignment order for one vehicle, and at the same time,
The operation details of the day are also shown at the same time. Therefore, as shown in FIG. 6, if an ideal situation is assumed in which there is no work schedule other than train inspection, such as long-term work, the operation rotation pattern is applied to all vehicles by shifting the allocation start position. Alone can provide a high quality vehicle operation plan. Obviously, there are few situations where there is no long-term work schedule, and it is usually necessary to perform long-term work on some vehicles. In consideration of other work plans, a plan will be made by partially breaking the vehicle operation rotation. FIG. 7 shows the data format of the vehicle operation rotation. It has a one-dimensional array structure, and the array elements are pointers to operation data. The order of arrangement of the elements corresponds to the order of assigning operations.
In the figure, the second pointer 0701 in the array points to operation 0702. The number of array elements is equal to the total number of diamonds including spares, and the diamonds and spares included in each operation are different from each other. The vehicle operation rotation creation support system of the present embodiment accepts input data consisting of operation schedules and spare allocations from the input DB 0101 as shown in FIG. 1, creates a vehicle operation rotation in the format of FIG. Store. In creating an executable vehicle operation rotation, it is necessary to observe the following constraints. (1) The operations of the diamond (spare) connection are arranged in the physically correct order. That is, the morning departure location of the operation B located next to any operation A during the rotation (presence location on the spare line) is always equal to the night storage location of the operation A (presence location on the night) (connection condition). (2) Train inspections can be performed within the specified number of return days specified by law by allocating operations according to the rotation (return conditions). The following are examples of evaluation indices to be considered in order to obtain not only feasible but also high-quality vehicle operation rotation. (1) The total number of train inspections is small (2) There is little variation in spares (3) There is little variation in vacant hours where work is possible (4) There is little deviation in locations and time zones of train inspections (5) Train inspections (6) Avoid allocating train inspections as much as possibleBecause some of the evaluation indicators are in a trade-off relationship with each other, consider the priorities and carefully balance the two to plan. Must be created. In addition, the evaluation index and its weight change variously according to the vehicle operation policy and plan creator of each depot, so that it is required to flexibly respond to such changes and create a vehicle operation rotation. Regarding the connection condition, it is possible to determine whether or not the connection is satisfied from the order of the arrangement of the diamond and the spare included in the rotation. In addition, the regression condition can be satisfied by arranging the diamond and the spare so that the train inspection can be set within three days, and can be regarded as a condition depending on the order of the arrangement of the diamond and the spare. Therefore, the vehicle operation rotation creation problem can be essentially reduced to the order of arranging diamonds and spares, that is, a cyclic sequence search problem for finding a sequence that circulates all diamonds and spares. In this embodiment, the vehicle operation rotation creation problem is regarded as a cyclic sequence search problem, and a solution search is performed to create an executable high-quality vehicle operation rotation. Hereinafter, a specific creation method will be described mainly with reference to FIG. First input D
The input data is obtained from B0101 and passed to the cyclic sequence search unit 0111. The cyclic sequence search unit includes a cyclic sequence group initialization unit 0112, a cyclic sequence group evaluation unit 0113, and an update unit determination unit 01 as internal processing.
14. Having a cyclic sequence group updating unit 0115, solves a cyclic sequence search problem corresponding to input data, and stores the search result in a cyclic sequence DB0103.
Output to Unless otherwise specified, the operation schedule uses the six data shown in FIG. 2 and the spare data is allocated to the garage X and the garage Y one by one. In addition, serial numbers are assigned to the diamonds and the spare in order to handle them together. The same number as the diamond number is given to the diamond, the number 7 is given to the spare of the garage X, and the number 8 is given to the spare of the garage Y. Hereinafter, an outline of the cyclic sequence search unit in the present embodiment will be described using the processing flow of FIG. In the present embodiment, a genetic algorithm (Genetic Algorithm, GA), which is an optimization method that imitates the evolutionary mechanism of an organism, is used as a framework of a search algorithm. G
A perceives the solution of the search problem as one living individual, and the constraints of the problem to be solved and the evaluation index as the individual's survival environment. In the initial state of the search, a population of a specified size is randomly generated, and natural selection, mating,
Genetic operations such as mutation are repeated to generate new individuals one after another. It is considered that the generation of the individual population is updated by one genetic operation, and the individual with the highest fitness in the population obtained after the repetition of the specified generation is output as the final solution. GA is an iteratively improved search method in which partial updating of an initial solution created by some means is repeated, and the approach gradually approaches an optimal solution under a set evaluation function. The present invention, if the internal processing 0112,0113,0114,0115 of the cyclic sequence search unit in FIG. 1 can be provided, the search framework is not limited to GA linear programming (LP), local search method, local search method Other iterative improvements, such as the improved taboo search and annealing methods, can also be used. In the processing flow of FIG. 8, first, in step 0801, the generation number counter is initialized to 1. Then step 080
In step 2, a plurality of individuals representing a cyclic sequence are generated. This processing corresponds to the cyclic sequence group initialization processing 0112 in FIG. Figure 9
Shows the data structure of an individual (cyclic sequence). It has an array structure having data fields equal to the number of data (diamond + total number of spares), and each field stores a data number. Although the individual expression is a simple array in appearance, it is special data that has the following restrictions on the method of storing numerical values. (1) There are no duplicates in the stored values. (2) For all data (diamond or spare), adjacent data (in the case of end data, the data at the other end of the array)
And the connection conditions are satisfied. The connection condition is the above-mentioned condition that “the night storage location and the morning storage location are equal”. The arrangement of diamonds and spares represented by the individual data of FIG. 9 is shown in FIG.
, And all the data satisfy the connection conditions. The connection possibility between the two data arbitrarily extracted from the input data can be determined using the connection constraint graph shown in FIG. The connection constraint graph is a directed graph having (number of data + 1) vertices. A number other than 0 attached to each vertex indicates the data number of the input data. The vertex of number 0 is a dummy vertex, and is used to determine the head data of the array in the individual generation processing described later. The branch connecting the vertices indicates the possibility of connection of the two data. For example, in the connection constraint graph of FIG. 10, the existence of the branch from the vertex 1 to the vertex 8 means that the corresponding operation diagram 1 It means that it can be connected to the spare. Since the actual parking place of the operation schedule 1 is the garage Y and is connectable, the connection restriction graph correctly represents the connection possibility between actual data. It is assumed that the dummy vertex can be connected to all other data. The individual data corresponds to one of the cyclic sequences that trace all the vertices existing on the connection constraint graph once without exception. For example, the individual data shown in FIG. 9 is an example of the cyclic sequence 0 → 5 → 2 → 8 → 3 → 1 → 6 → 4 →
It corresponds to 7 → 0. The vertices connected from vertex 0 represent the head of the individual array, and subsequent numbers represent the data numbers stored in the array.
The individual data of FIG. 9 can be obtained from the eleven cyclic sequences. As shown in FIG. 11, a cyclic sequence that passes through all the vertices on the graph exactly once is called a Hamiltonian cycle in the field of discrete mathematics, and in this embodiment, the Hamiltonian cycle on the directed graph is represented by an individual representation of GA. It can be understood that it is used for. Therefore, in the following explanation, GA individuals,
The cyclic sequence and the Hamiltonian cycle are the same, and the terms are switched according to the context. The description of the population generation processing 0802 in FIG. 8 will be continued. In this process, individual data is generated by randomly selecting a Hamiltonian cycle in a connection constraint graph obtained from input data. The outline of the random generation processing of individual data will be described with reference to the processing flow of FIG. Step 12
In 01, an array A having a size equal to the number n of vertices and an index I for specifying a position on the array A are prepared. Array A
Stores a series of vertices representing a Hamiltonian cycle when this processing is completed. In step 1202, the index I is set to 1 and all vertices are marked as unselected. Next, in step 1203, a dummy vertex 0 is stored at the head of the array A, and the value of the index I is incremented by 1 assuming that vertex 0 has been selected. In step 1204, the (I-1) -th vertex from the beginning of the array A is extracted and set as v1. In step 1205, it is determined whether I is equal to n + 1, that is, vertex v1 is the last vertex of the Hamiltonian cycle, and if the determination result is Yes, the process proceeds to step 1206, where v1 can be connected to the first vertex of array A. It is determined whether there is any, and if the result is Yes, the result of the entire process is set to true and the process ends. If the result is No, the result of the entire process is set to false and the process ends. If the determination result of step 1205 is No, step 12
Go to 09. Here, of the vertices that can be connected from vertex v1,
Collect all the items that have not yet been selected and call the set S. In step 1210, it is determined whether or not S is an empty set. If S is an empty set, the process proceeds to step 1208, where the result of the entire process is set to false, and the process ends. If S is not an empty set, the process proceeds to step 1211. First, one vertex is randomly selected from the set S and set as v2. Further, v2 has been selected, the value of the index I is increased by 1, and the portion (subroutine R) enclosed by the dotted line in the processing flow is recursively executed. The subroutine R recursively calls itself, and as a result, the vertices at each position of the array A are sequentially selected from the top. If the result of this recursive call is false, proceed to step 1214, return v2 to unselected, return to step 1211 to reduce the value of I by 1 and select another vertex. An array if the result is true
Since the vertex selection has been successful up to the end of A, the process proceeds to step 1207, and the process ends with the result of the entire process set to true. If the result of the whole process is true, the vertices of the Hamiltonian cycle created starting from the dummy vertex 0 are stored in the array A from the beginning in the order of the cycles. If a Hamiltonian cycle exists in the given connection constraint graph, one arbitrary Hamiltonian cycle can be generated by the above generation processing. If there is no Hamiltonian cycle, the processing result will return false. In the cyclic sequence search problem, since it is assumed that the connection constraint graph has at least one Hamiltonian cycle, the result does not become false, and the Hamiltonian cycle can always be obtained by executing this processing. Returning to the population generation process 0802 in FIG. 8, the process is continued. One piece of individual data is generated by copying the array A representing the Hamiltonian cycle obtained by this process from the second vertex to the last vertex into the individual data without changing the order. The number of individuals to be generated is specified as a parameter from the search parameter DB in FIG. FIG. 13 shows an example of the data structure of the search parameter. As shown in the figure, the search parameters are (1) the number of individuals, (2)
It has at least four data fields of the number of search generations, (3) natural selection rate, and (4) mutation rate. It is the number of individuals in the field 1301 that defines the number of individuals to be generated in the individual group generation processing. In the figure, generation of 30 individuals is instructed. The meaning and use of the other parameters will be sequentially described below. Returning to FIG. 8, the description of the tour search process will be continued. In step 0802, the population is evaluated. This process corresponds to the cyclic sequence group evaluation process 0113 in FIG. For the vehicle operation rotation obtained from the arrangement of the diamonds and spares represented by the individual, two constraints, connection conditions and regression conditions, and the satisfaction of various preset evaluation indexes are checked. It is assumed that a partial evaluation function is individually provided as a library for each constraint condition and evaluation index. The only condition that the partial evaluation function is a penalty function whose value is 0 when the corresponding constraint condition or evaluation index is completely satisfied, and whose value increases as the degree of satisfaction decreases. For example, the following function can be given to the evaluation index “the total number of train inspections is small”.

【数1】 評価値算出用の評価関数は図1の評価関数DB0104から取
得する。図14に評価関数データの例を示す。項目1401は
評価関数を区別する番号が格納される。項目1402は制約
条件または評価指標の名前である。項目1703は部分評価
関数が有効であるかを示す論理値であり、Trueであれば
有効、Falseであれば無効をそれぞれ意味する。項目170
4は評価関数に対応するライブラリ内の処理ルーチンへ
のポインタである。各部分評価関数は、重要度が均一で
はない。例えば必ず充足しなければならない接続条件と
回帰条件に対応する部分評価関数は他より重要度が極め
て高い。また、評価指標のひとつである予備のばらつき
は、予備の割り当てがなるべく均一の間隔で行われたほ
うが、車両の使用頻度が均一なるため好ましいという観
点からの指標であるが、実際の車両運用業務においては
それほど重要な要素とは考えられておらず、対応する部
分評価関数の重要度は相対的に低いものとなる。また部
分関数にどれだけの重要度を与えるか、という問題は主
観的な要素が多分に含まれる。そこで、本実施例におい
ては、部分関数の重みをシステム操作者により外部変更
可能なデータとして与え、図1の評価重みDBに格納して
管理する。図15に評価重みデータの例を示す。項目1501
は部分評価関数の番号が格納される。項目1502には重み
が格納される。重みとして与える数値は、一定の範囲の
整数値であり、全ての部分関数に対してその範囲の数値
を一個与える。図15の例では、範囲を0〜100としてお
り、番号1、すなわち接続条件に対応する評価関数の重
みは100で、番号8、すなわち予備への列車検査の割り当
てに対応する評価関数の重みは10であることが読み取れ
る。評価処理においては、有効な部分評価関数を順次個
体に適用して部分評価値を得て、その値を重みを考慮し
ながら結合して全体評価値を得る。最も単純な結合方法
は、部分評価値に重みを乗じて足し合わせる線形加重和
である。この方式の最大の欠点は、部分評価関数に対し
て統一的な尺度で重みを与えることが困難だということ
である。例えば評価指標「列車検査を場所と時間帯に偏
りなく設定する」という評価指標に対応する部分評価関
数(番号6)は、各場所及び各時間帯に対する設定要求本
数と実際の設定本数の比(最小0、最大1)を算出して、そ
のばらつき(標準偏差)を出力とするからその出力値範囲
は0〜1である。これに対して、図15の評価重みデータで
同じ重みを与えている予備のばらつきに対応する部分関
数(番号4)は、総数8個のダイヤ及び予備の並びにおける
2個の予備の間隔のばらつきを評価するものであるか
ら、その出力値は最小で0(間隔均等の場合)であり、最
大で3(予備が並ぶ場合)となり、出力値の上限が異なる
ため、同じ重みを与えてもその意味合いは全く異なるも
のとなる。このように出力値の範囲が異なると重みの影
響度に違いが出てしまうため、パラメータとして重みを
設定する際に一定の方針で値を決定することが困難とな
る。そこで本発明では、評価値の算出の際に全ての部分
関数の出力値をある一定の範囲に揃えてから重みを乗ず
ることにより、重みの意味の統一を実現する。出力値の
範囲を揃えることを以下では出力値の正規化と呼ぶこと
にする。例えば、出力値範囲が0〜xi (i=1,...,n)をと
るようなある部分評価関数eiの出力値vを0〜Xに正規化
するには、出力値に係数ci=X/xiを掛ける。この係数ci
を正規化係数と呼ぶ。正規化係数は図1の正規化係数DB0
105に格納される。図16に正規化係数データの例を示
す。項目1601は部分評価関数の番号が格納される。項目
1602には正規化係数が格納される。例では、出力値の最
大値を100に揃えるとした場合の正規化係数が格納され
ており、番号1の接続条件に対応する部分関数の正規化
係数は25.0、番号2の回帰条件に対応する部分関数の正
規化係数は50.0であることが読み取れる。以上から、有
効な部分関数をei (i=1,...,n)、それらに対応する重み
と正規化係数をそれぞれwi、ciとすると、個体の全体評
価値Eの算出方法は下記の式で表される。
(Equation 1) The evaluation function for calculating the evaluation value is obtained from the evaluation function DB0104 in FIG. FIG. 14 shows an example of the evaluation function data. Item 1401 stores a number for distinguishing the evaluation function. Item 1402 is the name of the constraint or evaluation index. Item 1703 is a logical value indicating whether or not the partial evaluation function is valid. True indicates valid, and False indicates invalid. Item 170
4 is a pointer to a processing routine in the library corresponding to the evaluation function. Each partial evaluation function is not uniform in importance. For example, the partial evaluation function corresponding to the connection condition and the regression condition that must be satisfied is much more important than others. Also, the dispersion of the spare, which is one of the evaluation indices, is an index from the viewpoint that it is preferable that the allocation of the spare is performed at a uniform interval as much as possible, since the frequency of use of the vehicle is uniform, which is preferable. Are not considered to be so important elements, and the importance of the corresponding partial evaluation function is relatively low. The problem of how much importance is given to a partial function has many subjective factors. Therefore, in this embodiment, the weights of the partial functions are given as data that can be externally changed by the system operator, and are stored and managed in the evaluation weight DB of FIG. FIG. 15 shows an example of the evaluation weight data. Item 1501
Stores the number of the partial evaluation function. The item 1502 stores a weight. The numerical value given as the weight is an integer value in a certain range, and one numerical value in the range is given to all partial functions. In the example of FIG. 15, the range is 0 to 100, and the weight of the evaluation function corresponding to the number 1, that is, the connection condition is 100, and the weight of the evaluation function corresponding to the number 8, that is, the assignment of the train inspection to the spare, is 100. It can be read that it is 10. In the evaluation processing, effective partial evaluation functions are sequentially applied to individuals to obtain partial evaluation values, and the values are combined while considering weights to obtain an overall evaluation value. The simplest combination method is a linear weighted sum in which partial evaluation values are multiplied by weights and added. The biggest drawback of this method is that it is difficult to weight partial evaluation functions on a uniform scale. For example, the partial evaluation function (No. 6) corresponding to the evaluation index of the evaluation index `` set the train inspection equally to the place and time zone '' is a ratio of the number of set request numbers and the actual set number for each place and each time zone ( Since the minimum (0, maximum 1) is calculated and the variation (standard deviation) is output, the output value range is 0 to 1. On the other hand, the partial function (No. 4) corresponding to the preliminary variation giving the same weight in the evaluation weight data of FIG. 15 is the variation in the interval between the two preliminary in the total of eight diamonds and the preliminary. Therefore, the output value is 0 (in the case of equal intervals) at the minimum and 3 (in the case where spares are arranged) at the maximum, and the upper limit of the output value is different. The implications are completely different. As described above, if the output value range is different, the degree of influence of the weight differs, so that it is difficult to determine the value according to a certain policy when setting the weight as a parameter. Therefore, in the present invention, when calculating the evaluation values, the output values of all the partial functions are adjusted to a certain range and then multiplied by the weight, thereby realizing the unification of the meaning of the weight. Aligning the output value range is hereinafter referred to as output value normalization. For example, to normalize the output value v of a partial evaluation function ei whose output value range is 0 to xi (i = 1, ..., n) to 0 to X, the coefficient ci = Multiply X / xi. This coefficient ci
Is called a normalization coefficient. The normalization coefficient is the normalization coefficient DB0 in Fig. 1.
Stored in 105. FIG. 16 shows an example of the normalization coefficient data. Item 1601 stores the number of the partial evaluation function. item
1602 stores a normalization coefficient. In the example, the normalization coefficient when the maximum value of the output value is assumed to be 100 is stored.The normalization coefficient of the partial function corresponding to the connection condition of No. 1 is 25.0, and it corresponds to the regression condition of No. 2. It can be seen that the normalization coefficient of the partial function is 50.0. From the above, assuming that the effective partial functions are ei (i = 1, ..., n) and the corresponding weights and normalization coefficients are wi and ci, respectively, the method of calculating the overall evaluation value E of the individual is as follows: It is expressed by an equation.

【数2】 個体評価処理では、評価関数データ、評価重みデータ、
正規化係数データをそれぞれデータベースから取得した
後に、この式に従って個体1個の評価値を算出し、全て
の個体の評価値を算出するまで処理を繰り返す。ここで
問題となるのは、各部分評価関数の正規化係数をどのよ
うに設定するかということである。部分評価関数の出力
上限値の論理値は、部分評価の処理を論理的に解析する
ことで求められるので、それを用いて上記の手法から正
規化係数の論理値を算出することは可能である。しかし
ながら、評価処理が複雑になればなるほど解析は困難に
なり、部分評価関数の数が増えればそれに比して解析の
手間が非常に膨大なものとなる。またたとえ全ての部分
評価関数の出力上限値を論理的に算出することができた
としても、出力の実際値は入力データの性質に依存して
変化するため、実際の出力上限値は必ずしも論理的な上
限値に一致するとは限らず、それよりも遥かに小さな値
となる場合が数多く発生する。そのため、正規化係数の
算出に論理的な上限値を用いると評価関数の重み付けを
正しくおこなうことができない。そこで本発明では、図
1において入力データDB0101から巡回系列探索部0111に
データが入力される度に、正規化係数算出部0116におい
て入力データに応じた正規化係数の実際値を算出して正
規化係数DB0105に格納する。正規化係数の算出方法を図
17の処理フローを用いて説明する。まずステップ1701に
おいて、評価関数DBから評価関数データを取得して部分
評価関数の総数(nとする)に等しいサイズの配列Aを用意
する。さらにAの全ての要素の値を-1に初期化する。処
理の終了時にはこの配列Aに正規化係数が格納されるこ
とになる。次にステップ1702においてループカウンタi
を1に初期化して、ステップ1703でループの終了判定を
おこなう。iの値が定数として与えた規定回数以下の場
合にはステップ1705へ進む。規定回数の値は1以上の任
意の値であるが、大きな値を設定すればそれだけ得られ
る正規化係数の精度が高まる。ステップ1705では図12で
説明したハミルトン閉路のランダム生成フローを用い
て、任意の個体を1個取得する。次にステップ1705では
評価関数カウンタjの値を1に初期化する。ステップ1706
ではループの終了判定をおこなう。jの値が関数の総数n
を下回った場合はステップ1707へ進み、番号jの評価関
数を評価関数データから取得して先に生成した個体に適
用し評価値xを算出する。ステップ1708において配列Aの
左からj番目の値と評価値xの値を比較し、xの方が大き
い場合にはステップ1709へ進み配列Aのj番目の値をxに
更新したのちにステップ1710へ進む。xがAのj番目の値
以下の場合には直接ステップ1710へ進み、jの値を1増や
して再びステップ1706へ戻る。ステップ1706においてj
が関数の総数nを上回った場合にはステップ1711に進み
ループカウンタiの値を1増やしてからステップ1703へ戻
る。ステップ1703においてiが規定回数を上回った場合
には、ステップ1712に進み、配列Aに格納された数値が
各部分評価関数の出力上限の近似値であるとして、全て
の値を定数Xで割って正規化係数を算出し、さらに再び
配列Aに格納して処理を終了する。定数Xは上限を揃える
値である。このようにして得られた配列Aは、左からk番
目の値が番号kの部分評価関数の正規化係数を表す。上
記の処理を要約すると、(1)入力データから個体をラン
ダムに規定回数作成し、そのつど部分評価関数を適用し
て評価値を得て部分評価関数の最高値を更新していき、
(2)最終的に得られた最高値を出力上限値の近似値とし
て用いて正規化係数を算出する、というものである。上
記の処理を用いて正規化係数を算出することにより、論
理的な出力上限値を用いる場合よりも遥かに精度の高い
正規化係数を得ることができる。図8の巡回系列探索フ
ローに戻って説明を続ける。ステップ0803において個体
群の評価をおこなった後にステップ0804に進み、世代数
カウンタiの値を1増やす。次にステップ0805において処
理の終了判定をおこなう。iの値が探索パラメータの探
索世代数により規定される値を下回っている場合には探
索を続行するためにステップ0806へ進み個体の交叉手段
を決定する。交叉手段決定処理は、図1の更新手段決定
部0114に対応する処理であり、図8のステップ0807の遺
伝的操作において新たな個体を生成する交叉処理の方法
を決定する部分である。本処理を説明するためには、個
体の交叉処理について説明する必要があるので、まず遺
伝的操作の説明を先におこなうこととする。遺伝的操作
は図1の巡回系列群更新部0115に対応する処理であり、
巡回系列の集団において、巡回系列の削除と追加をおこ
なって集団の内容を変化させる。図18の処理フローを用
いて遺伝子操作処理の概要を説明する。まずステップ18
01において、個体集団のコピーを作成しそれをSとす
る。次にステップ1802において、規定個数の個体を個体
集団から削除する。規定個数は探索パラメータの自然淘
汰率項目の値を用いて計算する定数である。図13におけ
る探索パラメータの例では、自然淘汰率は30となってお
り、これは集団の30%の個体を削除するという意味であ
る。集団サイズが30の場合には、規定個数nはその30%の
9であり、自然淘汰処理において9個の個体を削除する。
削除する個体の選択方法は評価値を用いて行ない、全て
の個体を評価値の良いものから順に上から下に並べ、評
価値の悪いものから順に下からn個の個体を削除する。
ステップ1803ではループカウンタiを1に初期化する。ス
テップ1804ではループの終了判定をおこない、カウンタ
iの値が削除した個体数n以下の場合にはステップ1805へ
進み処理を続行する。ステップ1805では、削除前の集団
をコピーした個体集団Sから個体を2個選択し、それぞれ
親個体A、親個体Bとする。選択の方法は全くランダムで
も良いし、個体の評価値の良さに比例した選択確率を与
え、評価値の良い親個体が選択される割合を高めるよう
にしてもよい。ただし、親個体Aと親個体Bに同じ個体を
選択することはしないこととする。次にステップ1806に
おいて、先に選択した2つの個体A及びBと図8のステッ
プ0806で決定した交叉手段を用いて交叉を実行する。交
叉とは、ある個体を基にして新たな個体を生成する処理
のことである。基にする個体は親個体、生成する個体は
子個体と呼ばれる。以下では交叉手段について説明す
る。まず、全ての交叉手段の基になる最も基本的な交叉
手段は、親個体Aと親個体Bのどちらかを任意に選択し、
それに対して図19に示すような部分的な変更をおこなっ
たものを子個体とするものである。図19において、親個
体は図11のハミルトン閉路と同じものであり、経路が環
状になるように頂点の位置を修正したものである。親個
体の任意の枝aを親個体に存在しない枝a'に置き換え、
同様にして任意の枝b及びcをそれぞれ親個体に存在しな
い枝b',c'に置き換えることで子個体が得られる。枝a',
b',c'は、必ず接続制約グラフに存在するものを選択す
る。この操作により、子個体として接続制約グラフ上の
有効なハミルトン閉路を常に得ることができる。組合わ
せ数学の分野においては、巡回グラフπ上の任意のλ本
の枝を他の枝に置き換えて得られる巡回グラフの集合を
πのλ近傍と呼ぶ。ハミルトン閉路も巡回グラフの一種
であることから、基本交叉手段は、親個体を基にしてそ
の3近傍における任意の巡回グラフをひとつ生成する処
理と捉えることができる。ただし、得られる個体が接続
違反を生じない有効なハミルトン閉路であることを保証
するために、新たに加える枝は接続制約グラフ上に存在
するものから必ず選択することとする。基本交叉手段
は、2つの親個体のうちのどちらか一方を選択してそれ
を雛形として子個体を生成する処理であるが、枝の選択
処理において、他方の親個体の性質に関わる何らかの情
報を利用して枝の選択範囲を狭めるように処理を変更す
ることで複数の交叉手段を与える。子個体の雛形として
親個体Aを選択し、親個体Bには含まれるが親個体Aには
含まれない全ての枝の集合をSとすると、本実施例にお
いては以下の6種類の処理を交叉手段として与える。 [手段1]「基本交叉」前述のとおり [手段2]「1枝継承交叉」 1本の枝を集合Sから必ず選択
し、残りの枝を任意に選択する。例えば集合S={枝a:頂
点0→頂点4,枝b:頂点6→頂点3, 枝c:頂点1→頂点8}とし
た場合、親個体Aに追加する新たな枝のうちの1本は必ず
枝a,b,cのいずれかとし、残りの2本は基本交叉手段と同
じく接続制約グラフ上の任意の枝を選択して子個体を生
成する。 [手段3]「1頂点継承交叉」 1本の枝を集合Sのいずれか
の枝と始頂点が等しいものから選択し、残りの枝を任意
に選択する。例えば集合Sを前記とおなじものとする
と、親個体Aに追加する新たな枝のうちの1本は必ず枝a,
b,cの始頂点である頂点0,6,1のいずれかを始頂点とする
枝とし(終点は問わない)、残りの2本は基本交叉手段と
同じく接続制約グラフ上の任意の枝を選択して子個体を
生成する。 [手段4]「複合交叉その1」 1枝継承交叉を実施して子個
体を得て、さらにそれに対して基本交叉を施したものを
最終的な子個体とする。 [手段5]「複合交叉その2」 1頂点継承交叉を実施して子
個体を得て、それに対して基本交叉を施したものを最終
的な子個体とする。 [手段6]「複合交叉その3」 1枝継承交叉を実施して子個
体を得て、その個体と親個体Bとの間でさらに1頂点継承
交叉をおこなう。 上記に挙げた交叉手段以外にも、親個体から枝を2本、3
本と継承するものや、頂点を2個、3個と継承するもの、
または組合せる交叉手段とその数を変えた様々な複合交
叉が考えられる。どのような交叉手段が必要となるかは
対象とする問題毎に異なるため、上記の交叉手段を基本
として必要なものを適宜設計して組み込んでおく。2つ
の個体間の相対距離Lを、L = (頂点総数) - (共通する
枝の個数)と定義する。この定義から2つの個体が全く同
一の場合には、共通する枝の個数は頂点総数に等しくな
るため距離は0である。また、距離が最大となるのは共
通する枝が全くない場合で、その場合の距離は頂点総数
に一致する。上記に示した各交叉手段から生成できる子
個体の組み合わせ総数と、親個体A及びBの相対距離の関
係を表したグラフを図20に示す。このグラフは頂点総数
をn、横軸に相対距離、縦軸に組み合わせ総数をとった
ものであり、組み合わせ総数の変化を表す全ての直線ま
たは曲線には、対応する交叉手段のラベルとそれらを近
似した関数式を付けてある。基本交叉は親個体1個から
子個体を生成するため、親同士の相対距離とは無関係に
常に一定の組み合わせ総数を保つ。それ以外の交叉は相
対距離に応じて組み合わせ総数が変化し、グラフより相
対距離が小さくなるに従って生成する子個体の可能な組
み合わせの数が減少していくことがわかる。また、複合
交叉その2とその3は、組み合わせ総数が基本交叉よりも
少なくなるのは相対距離が2より小さくなる、すなわち1
か0であるが、相対距離が1ということはありえず、また
交叉の親個体は互いに異なることを仮定しているため相
対距離0もありえない。従ってこれら2つの交叉は基本交
叉よりも組み合わせ総数が常に多く、探索の範囲が極め
て大きい。交叉手段はどれも親個体を部分的に変更し
て、親個体に似た個体を子個体として生成する処理であ
るので、探索処理において世代ループが進むに従って、
個体集団における任意の2つの個体の相対距離は減少し
ていくと考えられる。そこで、基本交叉以外の交叉手段
を用いれば、相対距離の減少に伴って子個体の可能な組
み合わせ総数も減少していく。そうなればそれだけ探索
範囲が狭まることになり探索がよりきめ細かくなるた
め、より良い評価値を持つ個体を発見する可能性が高ま
る。しかしながら、選択範囲が狭くなる速度があまりに
もはやければ、探索領域を広域的に探索する、いわゆる
広域探索が十分におこなわれず、良好な個体が存在しな
い狭い範囲に探索領域が陥ってしまい、不十分な探索結
果しか得られない可能性が高まることになる。選択範囲
を狭める速度、狭める割合(直線、2次曲線等)や選択範
囲の初期値等の最適な値は、適用対象の問題の性質によ
り異なる。そこで本発明では、複数の交叉手段をあらか
じめ用意しておき、それらを問題に合わせて選択するこ
とができる。また探索の途中で探索の状況に応じて交叉
手段を切り換える手段を提供する。これが図8の交叉手
段決定部0806の役割である。図18に戻って遺伝子操作処
理の説明を続ける。ステップ1807では、生成した子個体
と同じ個体が集団の中に既に存在するかどうかをチェッ
クして、もし存在するならばステップ1806へ戻って交叉
をやり直す。同じ個体が存在しない場合はステップ1808
に進み、子個体を集団に追加し、さらにループカウンタ
iの値を1増やしてステップ1804に戻る。ステップ1804に
おいてカウンタiの値が個体を削除した数nを上回った場
合はステップ1809に進む。ステップ1809では、新たに生
成した個体を対象として突然変異を実行する。突然変異
とは、個体の一部を他の個体や探索状況とは無関係にラ
ンダムに変更する処理であり、探索が局所解に陥った場
合に、探索範囲を広げるための補助的な役割を果たす。
個体1個に対して以下の方法で突然変異をおこなう。 (1)個体の任意の頂点を始点として、経路に沿って一周
するまで頂点をひとつずつ選択していく。 (2)頂点を選択する度に、探索パラメータの突然変異率
に設定された値を用いて変異を実際におこなうかどうか
の確率判定をおこなう。図13の探索パラメータでは、突
然変異率は0.1であり、これは0.1%、すなわち確率千分
の一を意味する。 (3)確率判定の結果、変異をおこなうことが決定した場
合は、以下の処理を実施する。まず、着目頂点を頂点
x、xから伸びる枝の終点を頂点y、xにつながる枝の始点
を頂点zとして2つの枝をカットする。これに対して個体
上のある頂点x'において、x'から伸びる枝の終点を頂点
y'、x'につながる枝の始点を頂点z'として同様に2つの
枝をカットする。この状態で枝z→x'、x'→y、z'→x、x
→y'が接続制約グラフ上に存在するかどうかを調べ、存
在する場合には実際にこれらの枝を追加する。存在しな
い場合は、枝が存在するような頂点x'が見つかるまで処
理を繰り返す。突然変異は図21に示すように、二つの頂
点xとx'の位置を接続制約グラフを満たす限りにおいて
交換する操作であり、この結果得られる個体は常に接続
条件を満たす有効なハミルトン閉路である。以上で図8
の遺伝的操作処理0807の説明を終え、前に戻って交叉手
段決定処理0806の説明をおこなう。組込み済みの複数の
交叉手段(更新手段)を、解探索の途中で動的に切り換え
て適用するために、1世代毎に図8の交叉手段決定処理08
06において交叉手段を選択する。本発明では、更新手段
切換えの条件を指定するために、更新手段決定処理を起
動した時点での巡回系列探索がどのような状態にあるか
を表す探索状況データを定義して利用する。探索状況デ
ータは、探索に関わる様々な要素に関する複数のデータ
フィールドから構成され、少なくとも探索ステップ数、
その時点までに得られた最良巡回系列の評価値とその改
善速度、巡回系列群の密度(相対距離の平均値)の値範囲
をそれぞれ指定するための独立したフィールドを持つ。
図22に本実施例における探索状況データの例を示す。探
索に関係する要素のフィールドが上下に並んだリストで
構造で、各フィールドは、要素の名前ラベル、値の下
限、値の上限、有効判定用フラグ、の4個のスロットを
持っている。上下限値スロットに具体的な数値を格納す
ることにより、対応する要素の値範囲を指定することが
できる。また、数値のかわりにヌル値「---」を格納す
ることで任意の値を表すことができる。上下限値スロッ
トの両方に同じ値が格納されている場合は、値の範囲で
はなく特定の値を指定することを意味する。有効判定用
フラグには、論理値trueまたはfalseを格納する。値tru
eは対応する要素を探索状況の判定に用いることを意味
し、値falseは対応要素をはずして探索状況を調査する
ことを意味する。探索ステップがある探索状況データA
に一致するかどうかを判定する際には、まずA内の有効
なフィールドを独立に取り上げて、現在の探索ステップ
中の対応要素の値が指定した値範囲に納まっているかど
うかをチェックし、その結果が全て成功の場合にのみ、
「該当探索ステップは探索状況Aである」と判定する。
以下では探索状況データの各フィールドの説明をおこな
う。フィールド2201は探索の世代数に関するものであ
り、例では「200世代以上」を指定している。フィール
ド2202は個体群中の最良個体の改善速度に関するもので
ある。ここで最良個体の改善速度とは、最良個体の評価
値の変化率を意味し、例えば以下の式で与えることがで
きる。
(Equation 2) In the individual evaluation processing, evaluation function data, evaluation weight data,
After acquiring the normalization coefficient data from the database, the evaluation value of one individual is calculated according to this equation, and the process is repeated until the evaluation values of all the individuals are calculated. The problem here is how to set the normalization coefficient of each partial evaluation function. Since the logical value of the output upper limit value of the partial evaluation function is obtained by logically analyzing the processing of the partial evaluation, it is possible to use it to calculate the logical value of the normalization coefficient from the above method. . However, the more complicated the evaluation process becomes, the more difficult the analysis becomes. If the number of partial evaluation functions increases, the labor of the analysis becomes extremely enormous. Even if the output upper limit values of all partial evaluation functions can be calculated logically, the actual output upper limit value is not necessarily a logical value because the actual output value changes depending on the nature of the input data. The value does not always match the upper limit, and a value much smaller than that often occurs. Therefore, if a logical upper limit value is used for calculating the normalization coefficient, the evaluation function cannot be correctly weighted. Therefore, in the present invention, FIG.
In 1, every time data is input from the input data DB0101 to the cyclic sequence search unit 0111, the normalization coefficient calculation unit 0116 calculates the actual value of the normalization coefficient according to the input data and stores it in the normalization coefficient DB0105. Diagram of how to calculate the normalization coefficient
This will be described with reference to a processing flow of 17. First, in step 1701, evaluation function data is obtained from the evaluation function DB, and an array A having a size equal to the total number (n) of partial evaluation functions is prepared. Furthermore, the values of all elements of A are initialized to -1. At the end of the process, the normalization coefficients are stored in the array A. Next, in step 1702, the loop counter i
Is initialized to 1 and the end of the loop is determined in step 1703. If the value of i is equal to or less than the specified number of times given as a constant, the process proceeds to step 1705. The value of the specified number of times is an arbitrary value of 1 or more, but the larger the value is set, the higher the accuracy of the obtained normalization coefficient becomes. In step 1705, one arbitrary individual is obtained using the random generation flow of the Hamiltonian cycle described in FIG. Next, in step 1705, the value of the evaluation function counter j is initialized to 1. Step 1706
Then, the end of the loop is determined. j is the total number of functions n
If the value is less than, the process proceeds to step 1707, where the evaluation function with the number j is obtained from the evaluation function data and applied to the previously generated individual to calculate the evaluation value x. In step 1708, the j-th value from the left of array A is compared with the value of evaluation value x, and if x is larger, the process proceeds to step 1709, where the j-th value in array A is updated to x, and then step 1710 Proceed to. If x is equal to or smaller than the j-th value of A, the process directly proceeds to step 1710, increments the value of j by 1, and returns to step 1706 again. J in step 1706
If the value exceeds the total number n of functions, the flow advances to step 1711 to increase the value of the loop counter i by 1, and then returns to step 1703. If i exceeds the specified number in step 1703, the process proceeds to step 1712, where it is assumed that the numerical value stored in array A is an approximate value of the output upper limit of each partial evaluation function, and all values are divided by a constant X. The normalization coefficient is calculated, stored in the array A again, and the process ends. The constant X is a value that aligns the upper limit. The array A thus obtained represents the normalization coefficient of the partial evaluation function whose k-th value from the left is number k. To summarize the above processing, (1) Individuals are randomly created from the input data a prescribed number of times, and each time a partial evaluation function is applied to obtain an evaluation value and update the highest value of the partial evaluation function,
(2) The normalization coefficient is calculated using the finally obtained maximum value as an approximate value of the output upper limit value. By calculating the normalization coefficient using the above processing, it is possible to obtain a normalization coefficient with much higher accuracy than when using the logical output upper limit value. Returning to the cyclic sequence search flow of FIG. 8, the description will be continued. After the individual group is evaluated in step 0803, the process proceeds to step 0804, and the value of the generation number counter i is increased by one. Next, in step 0805, the end of the process is determined. If the value of i is smaller than the value defined by the number of generations to be searched for the search parameter, the process proceeds to step 0806 to continue the search and determines the individual crossing means. The crossover means determination processing is processing corresponding to the update means determination unit 0114 in FIG. 1, and is a part that determines a crossover method for generating a new individual in the genetic operation in step 0807 in FIG. In order to explain this processing, it is necessary to explain the crossover processing of individuals, so that the genetic operation will be described first. The genetic operation is processing corresponding to the cyclic sequence group updating unit 0115 in FIG. 1,
In the group of the cyclic series, the contents of the group are changed by deleting and adding the cyclic series. The outline of the gene manipulation processing will be described with reference to the processing flow of FIG. First step 18
At 01, a copy of the population is created and designated as S. Next, in step 1802, the specified number of individuals is deleted from the individual population. The specified number is a constant calculated using the value of the natural selection rate item of the search parameter. In the example of the search parameters in FIG. 13, the natural selection rate is 30, which means that 30% of individuals in the population are deleted. If the group size is 30, the specified number n is 30% of that
9, which deletes nine individuals in the natural selection process.
The method of selecting an individual to be deleted is performed by using the evaluation values, all the individuals are arranged in descending order from the one with the highest evaluation value, and n individuals are deleted from the bottom in descending order of the evaluation value.
In step 1803, the loop counter i is initialized to 1. In step 1804, the loop end is determined, and the counter
If the value of i is equal to or less than the number n of deleted individuals, the process proceeds to step 1805 to continue the process. In step 1805, two individuals are selected from the individual population S from which the population before deletion is copied, and are set as parent individuals A and B, respectively. The selection method may be completely random, or a selection probability proportional to the evaluation value of the individual may be given to increase the selection ratio of a parent individual having a good evaluation value. However, the same individual is not selected as the parent individual A and the parent individual B. Next, in step 1806, crossover is executed with the two individuals A and B selected previously using the crossover means determined in step 0806 in FIG. Crossover is a process of generating a new individual based on a certain individual. The individual on which it is based is called a parent individual, and the resulting individual is called a child individual. Hereinafter, the crossover means will be described. First, the most basic crossover means on which all crossover means are based is arbitrarily selecting either parent individual A or parent individual B,
On the other hand, a child individual that has been partially modified as shown in FIG. 19 is used as a child individual. In FIG. 19, the parent individual is the same as the Hamiltonian cycle shown in FIG. 11, and the positions of the vertices are modified so that the path becomes annular. Replace any branch a of the parent individual with a branch a 'that does not exist in the parent individual,
Similarly, a child individual can be obtained by replacing arbitrary branches b and c with branches b ′ and c ′ that do not exist in the parent individual. Branch a ',
b 'and c' always select those that exist in the connection constraint graph. By this operation, an effective Hamiltonian cycle on the connection constraint graph can always be obtained as a child individual. In the field of combinatorial mathematics, a set of cyclic graphs obtained by replacing arbitrary λ branches on the cyclic graph π with other branches is referred to as λ neighborhood of π. Since the Hamiltonian cycle is also a kind of cyclic graph, the basic crossover means can be regarded as a process of generating one arbitrary circular graph in the vicinity of the three based on the parent individual. However, in order to guarantee that the obtained individual is a valid Hamiltonian cycle which does not cause a connection violation, a newly added branch is necessarily selected from those existing on the connection constraint graph. The basic crossover means is a process of selecting one of the two parent individuals and generating a child individual using it as a model. In the branch selection process, some information relating to the properties of the other parent individual is obtained. A plurality of crossover means are provided by changing the processing so as to narrow the selection range of the branches by utilizing. When a parent individual A is selected as a model of a child individual, and a set of all branches included in the parent individual B but not included in the parent individual A is S, in the present embodiment, the following six types of processing are performed. Give as crossover means. [Means 1] "Basic crossover" As described above [Means 2] "One branch inheritance crossover" One branch is always selected from the set S, and the remaining branches are arbitrarily selected. For example, if the set S = {branch a: vertex 0 → vertex 4, branch b: vertex 6 → vertex 3, branch c: vertex 1 → vertex 8}, one of the new branches to be added to the parent individual A Is always one of the branches a, b, and c, and the remaining two select an arbitrary branch on the connection constraint graph similarly to the basic crossover means to generate a child individual. [Means 3] "One vertex inherited crossover" One branch is selected from those whose start vertices are equal to any of the branches of the set S, and the remaining branches are arbitrarily selected. For example, if the set S is the same as above, one of the new branches to be added to the parent individual A is always a branch a,
A branch whose starting vertex is any of vertices 0, 6, and 1 that are the starting vertices of b and c (regardless of the end point), and the remaining two are any branches on the connection constraint graph similar to the basic crossover means. Select to generate offspring individuals. [Means 4] “Compound Crossover 1” A one-branch inheritance crossover is performed to obtain a child individual, which is further subjected to a basic crossover as a final child individual. [Means 5] “Compound Crossover 2” 1 A child individual is obtained by performing one-vertex inheritance crossover, and a product obtained by performing a basic crossover on the obtained individual is defined as a final child individual. [Means 6] "Compound Crossover 3" One branch inheritance crossover is performed to obtain a child individual, and further one vertex inheritance crossover is performed between the individual and the parent individual B. In addition to the crossover means listed above, two or three branches from the parent individual
What inherits with a book, what inherits two or three vertices,
Alternatively, various crossovers in which the crossover means to be combined and the number thereof are changed can be considered. Since what kind of crossing means is required differs for each problem to be solved, necessary ones are appropriately designed and incorporated based on the above-mentioned crossing means. The relative distance L between two individuals is defined as L = (total number of vertices)-(number of common branches). From this definition, if two individuals are exactly the same, the distance is 0 because the number of common branches is equal to the total number of vertices. The distance is maximized when there are no common branches, and the distance in that case matches the total number of vertices. FIG. 20 is a graph showing the relationship between the total number of child individuals that can be generated from each of the crossover means described above and the relative distance between parent individuals A and B. In this graph, the total number of vertices is taken as n, the horizontal axis is taken as the relative distance, and the vertical axis is taken as the total number of combinations. The function expression is attached. Since the basic crossover generates a child individual from one parent individual, a constant total number of combinations is always maintained regardless of the relative distance between the parents. For the other crossovers, the total number of combinations changes according to the relative distance, and it can be seen from the graph that as the relative distance decreases, the number of possible combinations of the offspring individuals decreases. In addition, compound crossovers 2 and 3 have a relative distance smaller than 2 when the total number of combinations is smaller than the basic crossover, that is, 1
Although it is 0, the relative distance cannot be 1 and the relative distance 0 cannot be assumed because the crossing parent individuals are assumed to be different from each other. Therefore, these two crossings always have a larger total number of combinations than the basic crossover, and the search range is extremely large. Since the crossover means is a process of partially changing the parent individual and generating an individual similar to the parent individual as a child individual, as the generation loop progresses in the search process,
The relative distance between any two individuals in the population is thought to decrease. Therefore, if a crossover means other than the basic crossover is used, the total number of possible combinations of offspring individuals decreases with a decrease in the relative distance. Then, the search range becomes narrower and the search becomes more detailed, so that the possibility of finding an individual having a better evaluation value increases. However, if the speed at which the selection range is narrowed is no longer too large, the search area is searched in a wide area, that is, the so-called wide area search is not sufficiently performed, and the search area falls into a narrow area where no good individual exists, which is insufficient. It is more likely that only a simple search result will be obtained. Optimum values such as the speed of narrowing the selection range, the rate of narrowing (straight line, quadratic curve, etc.) and the initial value of the selection range differ depending on the nature of the problem to be applied. Therefore, in the present invention, a plurality of crossover means can be prepared in advance and selected according to the problem. Also provided is a means for switching the crossover means according to the state of the search during the search. This is the role of the crossover determining unit 0806 in FIG. Returning to FIG. 18, the description of the gene manipulation processing will be continued. In step 1807, it is checked whether or not the same individual as the generated offspring individual already exists in the group. If so, the process returns to step 1806 to repeat the crossover. If the same individual does not exist, step 1808
And add the offspring to the group, and add a loop counter
The value of i is incremented by 1 and the process returns to step 1804. If the value of the counter i exceeds the number n of deleted individuals in step 1804, the process proceeds to step 1809. In step 1809, mutation is performed on the newly generated individual. Mutation is the process of randomly changing a part of an individual independently of other individuals or the search situation, and plays an auxiliary role in expanding the search range when the search falls into a local solution .
Mutation is performed on one individual by the following method. (1) Starting at an arbitrary vertex of an individual, select vertices one by one until the circuit goes around the route. (2) Every time a vertex is selected, a probability determination as to whether or not the mutation is actually performed is performed using the value set for the mutation rate of the search parameter. In the search parameters of FIG. 13, the mutation rate is 0.1, which means 0.1%, that is, one thousandth of the probability. (3) As a result of the probability judgment, when it is determined that mutation is to be performed, the following processing is performed. First, the vertex of interest
Cut two branches with the end point of the branch extending from x and x as the vertex y and the start point of the branch connected to x as the vertex z. On the other hand, for a vertex x 'on the individual, the end point of the branch extending from x' is
Similarly, two branches are cut with the starting point of the branch connected to y 'and x' as the vertex z '. In this state, branches z → x ′, x ′ → y, z ′ → x, x
→ Check whether y 'exists on the connection constraint graph, and if so, add these branches. If not, the process is repeated until a vertex x ′ having a branch is found. Mutation is an operation of exchanging the positions of two vertices x and x 'as long as they satisfy the connection constraint graph, as shown in FIG. 21, and the resulting individual is always a valid Hamiltonian cycle that satisfies the connection conditions . Fig. 8
After the description of the genetic operation processing 0807 of the above, the processing returns to the previous step to explain the crossover means determination processing 0806. In order to dynamically switch and apply a plurality of built-in crossover means (update means) during solution search, the crossover means determination processing 08 shown in FIG.
At 06, the crossover means is selected. In the present invention, in order to specify a condition for updating means switching, search state data indicating the state of the cyclic sequence search at the time of starting the updating means determination processing is defined and used. The search situation data is composed of a plurality of data fields for various elements involved in the search, and at least the number of search steps,
It has independent fields for specifying the evaluation value of the best cyclic sequence obtained up to that point, its improvement speed, and the value range of the density (average relative distance) of the cyclic sequence group.
FIG. 22 shows an example of search status data in this embodiment. The field of the element related to the search is structured in a vertically arranged list, and each field has four slots: an element name label, a lower limit of the value, an upper limit of the value, and a flag for validity determination. By storing specific numerical values in the upper and lower limit value slots, the value range of the corresponding element can be designated. Also, an arbitrary value can be represented by storing a null value “---” instead of a numerical value. When the same value is stored in both the upper and lower limit value slots, it means that a specific value is specified instead of the value range. A logical value true or false is stored in the validity determination flag. Value tru
e means that the corresponding element is used for determining the search situation, and the value false means that the corresponding element is removed and the search situation is investigated. Search situation data A with search step
To determine if matches, first take the valid fields in A independently and check whether the value of the corresponding element in the current search step is within the specified value range, Only if all the results are successful,
It is determined that “the corresponding search step is search situation A”.
Hereinafter, each field of the search status data will be described. A field 2201 relates to the number of generations in the search, and specifies "200 or more generations" in the example. Field 2202 relates to the rate of improvement of the best individual in the population. Here, the improvement speed of the best individual means the rate of change of the evaluation value of the best individual, and can be given by, for example, the following equation.

【数3】 図22の例では、「改善速度が10.0以下」の状況を指定し
ている。個体群の任意の2つの個体の相対距離の平均値
を個体群密度と呼ぶことにする。次のフィールド2203は
この個体群密度の値範囲を指定する部分であり、例では
「相対距離の平均値が6.0以下」の状況を指定してい
る。フィールド2204は、最良個体の全体評価値を指定す
る部分であり、例では有効判定用フラグがfalseになっ
ているため、探索状況の判定には使用されない。以降の
フィールドは最良解の部分評価関数の出力値に関するも
のである。全ての部分関数にひとつのフィールドがもれ
なく割り当てられる。図22の例は、「世代数が200世代
以上で、最良解の改善速度が10.0以下、個体群の密度が
6.0以下になり、接続条件と回帰条件の違反が解消さ
れ、列車検査の設定に偏りがない状況」を表す。これを
要約すると「探索初期の広域的な探索が一段落し、局所
的な探索へ移行しつつある段階で、必須条件と評価指標
の一部を満たしたやや質の良い実行可能な解が既に得ら
れた状況」を指定していると捉えられる。こうした状況
の下では、評価指標の充足度が高いより良い計画案を得
るために、探索の範囲を絞り込むことでさらにきめの細
かい探索をおこなうことが有効であると考えられる。逆
に、探索ステップがある程度進んでも接続条件と回帰条
件の2つの制約条件を満たした実行可能解が見つからな
い状況では、探索範囲を広げれば実行可能解に到達する
可能性が高まる場合が多いと考えられる。本発明では、
このような探索状況に応じた探索範囲の調節を実現する
ために、探索状況データと更新手段から構成される更新
戦略データを定義して利用する。更新戦略データは、探
索状況データと更新手段の1対1のペアであり、例えば更
新戦略データXを探索状況データAと更新手段Mのペアと
すると、Xは「ある探索ステップにおいて、現在の探索
状況がAに一致するならば、更新手段をMに切り換える」
ことを意味する。図23に本実施例における更新戦略デー
タの例を示す。項目2301には探索状況へのポインタが、
項目2302には探索状況に対応する更新手段へのポインタ
がそれぞれ格納される。この更新戦略データは図1の更
新戦略DBに必要な個数だけ格納される。更新戦略DBには
この更新戦略データに加えて、現在の探索ステップがど
の探索状況データにも合致しない場合に選択するデフォ
ルトの更新手段も格納される。本実施例において、例え
ばデフォルトの更新手段が基本交叉であり、図23の更新
戦略データの探索状況項目が指しているのが、図22の探
索状況データだとすると、この更新戦略データは、「探
索中盤で局所的な探索に切り換えるために、更新手段を
基本交叉から1枝継承交叉に切替える」ということを意
味する。更新手段決定処理の具体的な内容を、図24の処
理フローを用いて説明する。まずステップ2401において
ループカウンタiの値を1に初期化する。次にステップ24
02においてループの終了判定をおこない、iの値が更新
戦略DBに格納された更新戦略データの総数以下である場
合には処理を続行するためステップ2403へ進む。ステッ
プ2403では、データベースからi番目の更新戦略を取り
出し、ステップ2404において、それに含まれる探索状況
データが現在の探索状況に一致するかどうかを判定し、
一致している場合にはステップ2405へ進み、それに含ま
れる更新戦略を選択して処理を終了する。ステップ2404
において、探索状況データが一致しない場合にはステッ
プ2406でループカウンタiの値を1増やしてステップ2402
へ戻る。ステップ2402において、ループカウンタiの値
が更新戦略総数を上回った場合にはステップ2407へ進
み、データベースに登録されたデフォルトの更新手段を
選択して処理を終了する。図8の巡回路探索フローに戻
って説明を続ける。ステップ0806で選択した交叉手段
(更新手段)を用いてステップ0807における遺伝的操作に
おいて個体の更新(巡回系列更新)をおこなった後に再び
ステップ0803へ戻り処理を繰り返す。ステップ0805の処
理の終了判定において、ループカウンタiの値が探索世
代数を上回った時点でループを抜け、最終的に得られた
個体群(巡回系列群)の中で最も評価値の高いものを探索
結果として図1の巡回系列DB0103に格納して巡回系列探
索処理を終了する。図1に戻って本発明の説明を続け
る。巡回系列探索部で得られた巡回系列を、計画案変換
部0117において対象問題に合わせたデータ形式に変換し
てその結果を計画案DBに格納する。本実施例において
は、巡回系列を図7に示す車両運用ローテーションデー
タの形式への変換をおこなう。この際、運用データには
列車検査の有無と列車検査の場所及び時間帯に関するデ
ータ設定項目があるが、ここには巡回系列探索時おける
列車検査に関連した部分評価関数の評価値に沿うように
値を設定する。作成された計画案は、ユーザ介入部0118
において、システム操作者から表示装置を介して妥当性
のチェックを受ける。操作者より入力装置を介して承認
指示を受けた場合は、計画案は正式な計画として登録さ
れ、帳票フォーマットに変換された上でプリンタから出
力される。ユーザ介入部において、システム操作者は入
出力装置を介して計画案を部分的に修正したり、評価関
数DB0104、更新戦略DB0106、評価重みDB0107、探索パラ
メータDB0108を操作してデータ内容を変更することがで
きる。データの変更は、巡回系列探索部で探索を開始す
る前の段階、探索途中の任意の段階、及び探索が終了し
て計画案が出力された以降のそれぞれで自由におこなう
ことができる。計画の作成結果がシステム操作者の承認
を得られない不満足なものであった場合は、システム操
作者の指示により何度でも作成をやり直すことができ
る。
(Equation 3) In the example of FIG. 22, the situation where the “improvement speed is 10.0 or less” is specified. The average value of the relative distance between any two individuals in the population will be referred to as population density. The next field 2203 is a part for specifying the value range of the population density. In the example, a situation where the average value of the relative distance is 6.0 or less is specified. The field 2204 is a part for specifying the overall evaluation value of the best individual. In the example, the validity determination flag is false, and is not used for determining the search status. The following fields relate to the output value of the partial evaluation function of the best solution. One field is assigned to every partial function. The example in FIG. 22 shows that "the number of generations is 200 or more, the improvement rate of the best solution is 10.0 or less, and the density of the population is
6.0 or less, connection condition and regression condition violations are resolved, and train inspection settings are not biased. " Summarizing this, `` At the stage when the broad search in the early stage of the search has been settled and the search is being shifted to the local search, a rather good and feasible solution that satisfies some of the essential conditions and some of the evaluation indexes has already been obtained. Is specified. Under these circumstances, in order to obtain a better plan with a high degree of satisfaction of the evaluation index, it is considered effective to perform a more detailed search by narrowing the search range. Conversely, in a situation where a feasible solution that satisfies the two constraints of the connection condition and the regression condition is not found even if the search step proceeds to some extent, if the search range is expanded, the possibility of reaching the feasible solution is often increased. Conceivable. In the present invention,
In order to achieve such adjustment of the search range according to the search situation, update strategy data composed of search situation data and update means is defined and used. The update strategy data is a one-to-one pair of the search situation data and the update means.For example, if the update strategy data X is a pair of the search situation data A and the update means M, X If the situation matches A, switch the updating means to M. ''
Means that. FIG. 23 shows an example of the update strategy data in this embodiment. Item 2301 contains a pointer to the search status,
The item 2302 stores a pointer to the updating means corresponding to the search situation. The required number of update strategy data is stored in the update strategy DB of FIG. In addition to the update strategy data, the update strategy DB also stores default update means to be selected when the current search step does not match any search situation data. In the present embodiment, for example, assuming that the default updating means is the basic crossover and the search status item of the update strategy data in FIG. 23 points to the search status data in FIG. In order to switch to local search, the updating means is switched from the basic crossover to the one-branch inheritance crossover. " The specific contents of the update means determination processing will be described using the processing flow of FIG. First, in step 2401, the value of the loop counter i is initialized to 1. Then step 24
At 02, a loop end determination is made. If the value of i is less than or equal to the total number of update strategy data stored in the update strategy DB, the process proceeds to step 2403 to continue the process. In step 2403, the i-th update strategy is extracted from the database, and in step 2404, it is determined whether the search situation data included in the update strategy matches the current search situation,
If they match, the process proceeds to step 2405, where an update strategy included in the update strategy is selected, and the process ends. Step 2404
In step 2406, if the search status data does not match, the value of the loop counter i is increased by 1 in step 2406 and
Return to If the value of the loop counter i exceeds the total number of update strategies in step 2402, the process proceeds to step 2407, where the default update means registered in the database is selected, and the process ends. Returning to the tour search flow of FIG. 8, the description will be continued. Crossover means selected in step 0806
After the individual is updated (cyclic sequence update) in the genetic operation in step 0807 using (update means), the process returns to step 0803 again to repeat the processing. In the end determination of the process of step 0805, the loop exits the loop when the value of the loop counter i exceeds the number of search generations, and the group having the highest evaluation value among the finally obtained individuals (cyclic group) is determined. The search result is stored in the cyclic sequence DB 0103 of FIG. 1, and the cyclic sequence search processing ends. Returning to FIG. 1, the description of the present invention will be continued. The cyclic sequence obtained by the cyclic sequence search unit is converted into a data format suitable for the target problem by the plan conversion unit 0117, and the result is stored in the plan DB. In the present embodiment, the cyclic sequence is converted into the vehicle operation rotation data format shown in FIG. At this time, the operation data includes data setting items related to the presence / absence of train inspection and the location and time zone of train inspection. Here, the operation data is set so as to follow the evaluation value of the partial evaluation function related to train inspection during the cyclic sequence search. Set the value. The created plan is stored in the user intervention unit 0118.
, The system operator receives a validity check via a display device. When an approval instruction is received from the operator via the input device, the plan is registered as a formal plan, converted into a form format, and output from the printer. In the user intervention section, the system operator partially modifies the plan via the input / output device or changes the data content by operating the evaluation function DB0104, the update strategy DB0106, the evaluation weight DB0107, and the search parameter DB0108. Can be. The data can be freely changed at each stage before the search is started by the cyclic sequence search unit, at any stage during the search, and after the search is completed and the plan is output. If the plan creation result is unsatisfactory because the approval of the system operator cannot be obtained, the plan can be re-created any number of times according to the instruction of the system operator.

【発明の効果】本発明によれば、高品質な巡回系列スケ
ジュールの効率的な作成を実現することができる。
According to the present invention, efficient creation of a high-quality cyclic sequence schedule can be realized.

【図面の簡単な説明】[Brief description of the drawings]

【図1】実施形態のシステム構成図である。FIG. 1 is a system configuration diagram of an embodiment.

【図2】計画運行ダイヤの説明図である。FIG. 2 is an explanatory diagram of a scheduled operation schedule.

【図3】運用情報のデータ構造図である。FIG. 3 is a data structure diagram of operation information.

【図4】運用情報の説明図である。FIG. 4 is an explanatory diagram of operation information.

【図5】車両運用ローテーションの説明図である。FIG. 5 is an explanatory diagram of a vehicle operation rotation.

【図6】車両運用計画作成方法の説明図である。FIG. 6 is an explanatory diagram of a vehicle operation plan creation method.

【図7】車両運用ローテーションのデータ構造図であ
る。
FIG. 7 is a data structure diagram of a vehicle operation rotation.

【図8】巡回系列探索部の処理の流れを示すフローチャ
ートである。
FIG. 8 is a flowchart showing a flow of processing of a cyclic sequence search unit.

【図9】巡回系列のデータ構造図である。FIG. 9 is a data structure diagram of a cyclic sequence.

【図10】接続制約グラフの説明図である。FIG. 10 is an explanatory diagram of a connection constraint graph.

【図11】接続制約グラフ上のハミルトン閉路の説明図
である。
FIG. 11 is an explanatory diagram of a Hamiltonian cycle on a connection constraint graph.

【図12】ハミルトン閉路生成処理の流れを示すフロー
チャートである。
FIG. 12 is a flowchart illustrating a flow of a Hamiltonian circuit generation process.

【図13】探索パラメータのデータ構造図である。FIG. 13 is a data structure diagram of a search parameter.

【図14】評価関数のデータ構造図である。FIG. 14 is a data structure diagram of an evaluation function.

【図15】評価重みのデータ構造図である。FIG. 15 is a data structure diagram of evaluation weights.

【図16】正規化係数のデータ構造図である。FIG. 16 is a data structure diagram of a normalization coefficient.

【図17】正規化係数算出部の処理の流れを示すフロー
チャートである。
FIG. 17 is a flowchart illustrating a flow of processing of a normalization coefficient calculation unit.

【図18】遺伝的操作の処理の流れを示すフローチャー
トである。
FIG. 18 is a flowchart illustrating a flow of a genetic operation process.

【図19】基本交叉手段の説明図である。FIG. 19 is an explanatory diagram of a basic crossover means.

【図20】交叉手段の生成可能な個体の組み合わせ総数
と親個体の相対距離の関係を示す図である。
FIG. 20 is a diagram showing the relationship between the total number of combinations of individuals that can be generated by the crossover means and the relative distance of parent individuals.

【図21】突然変異の説明図である。FIG. 21 is an explanatory diagram of a mutation.

【図22】探索状況データの例を示す図である。FIG. 22 is a diagram illustrating an example of search situation data.

【図23】更新戦略データの例を示す図である。FIG. 23 is a diagram illustrating an example of update strategy data.

【図24】更新手段決定部の処理の流れを示すフローチ
ャートである。
FIG. 24 is a flowchart showing a flow of processing of an updating means determining unit.

【符号の説明】[Explanation of symbols]

0101…入力DB、0102…計画案DB、0103…巡回系列DB、01
04…評価関数DB、0105…正規化係数DB、0106…更新戦略
DB、0107…評価重みDB、0108…探索パラメータ、0111…
巡回系列探索部、0112…巡回系列群探索部、0113…巡回
系列群評価部、0114…更新手段決定部、0115…巡回系列
群更新部、0116…正規化係数算出部、0117…計画案変換
部、0118…ユーザ介入部、0121…入力装置、0122…表示
装置、0123…プリンタ。
0101… Input DB, 0102… Plan DB, 0103… Circulation Series DB, 01
04… Evaluation function DB, 0105… Normalization coefficient DB, 0106… Update strategy
DB, 0107: evaluation weight DB, 0108: search parameter, 0111 ...
Cyclic sequence search unit, 0112: Cyclic sequence group search unit, 0113: Cyclic sequence group evaluation unit, 0114: Update means determination unit, 0115: Cyclic sequence group update unit, 0116: Normalization coefficient calculation unit, 0117: Plan conversion unit 0118: User intervention unit, 0121: Input device, 0122: Display device, 0123: Printer.

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B046 AA00 AA04 BA08 GA01 GA02 KA05 5B049 BB07 BB31 CC32 CC40 DD00 EE03 EE05 EE31 FF02 FF03 FF04  ──────────────────────────────────────────────────続 き Continued on the front page F term (reference) 5B046 AA00 AA04 BA08 GA01 GA02 KA05 5B049 BB07 BB31 CC32 CC40 DD00 EE03 EE05 EE31 FF02 FF03 FF04

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】生産、交通、物流分野において、複数のリ
ソースまたはジョブの巡回系列を表すスケジュールの作
成を計算機で支援する方法に関して、A)リソースまたは
ジョブの集合である入力データから巡回系列の集合を生
成する第1のステップと、B)作成した巡回系列集合中の
全ての巡回系列に対して、評価関数と評価重みと正規化
係数を利用して評価値を算出する第2のステップと、C)
複数の巡回系列の更新手段の中から更新戦略を用いて探
索状況を判定して更新手段を決定する第3のステップ
と、D)この更新手段を利用して巡回系列集合中の一部の
巡回系列を別の巡回系列に更新する第4のステップとを
内部に含む巡回系列探索ステップと、E)入力データと評
価関数から巡回系列探索ステップに対して有効な正規化
係数を算出する第5のステップとを備えたことを特徴と
する巡回系列スケジューリング方法。
1. A method for supporting, by a computer, the creation of a schedule representing a cyclic sequence of a plurality of resources or jobs in the field of production, transportation and logistics. A) A set of cyclic sequences from input data which is a set of resources or jobs. A first step of generating, and B) for all cyclic sequences in the created cyclic sequence set, a second step of calculating an evaluation value using an evaluation function, an evaluation weight, and a normalization coefficient, C)
A third step of determining a search condition by using an update strategy from among a plurality of cyclic sequence update means and determining an update means; andD) using some of the cyclic sequences in the cyclic sequence set using the update means. A cyclic sequence search step including a fourth step of updating the sequence to another cyclic sequence, and E) a fifth step of calculating a normalization coefficient effective for the cyclic sequence search step from the input data and the evaluation function. And a cyclic sequence scheduling method.
JP17365399A 1999-06-21 1999-06-21 Cyclic sequence scheduling method Pending JP2001005846A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17365399A JP2001005846A (en) 1999-06-21 1999-06-21 Cyclic sequence scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17365399A JP2001005846A (en) 1999-06-21 1999-06-21 Cyclic sequence scheduling method

Publications (1)

Publication Number Publication Date
JP2001005846A true JP2001005846A (en) 2001-01-12

Family

ID=15964615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17365399A Pending JP2001005846A (en) 1999-06-21 1999-06-21 Cyclic sequence scheduling method

Country Status (1)

Country Link
JP (1) JP2001005846A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899561B2 (en) 2004-12-15 2011-03-01 Panasonic Corporation Operating time reducing method, operating time reducing apparatus, program and component mounter
JP2012053777A (en) * 2010-09-02 2012-03-15 Fujitsu Ltd Data allocation device, data allocation method and data allocation program
WO2012111217A1 (en) * 2011-02-15 2012-08-23 株式会社日立製作所 Resource management plan creation device and resource management plan creation method
CN113928380A (en) * 2021-09-07 2022-01-14 中车唐山机车车辆有限公司 All-weather train operation method and device, electronic equipment and storage medium
EP4071029A4 (en) * 2019-12-02 2024-01-10 Hitachi Ltd Scheduling system and scheduling method
JP7421180B2 (en) 2020-05-29 2024-01-24 国立大学法人秋田大学 Picking work support system and its program

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899561B2 (en) 2004-12-15 2011-03-01 Panasonic Corporation Operating time reducing method, operating time reducing apparatus, program and component mounter
JP2012053777A (en) * 2010-09-02 2012-03-15 Fujitsu Ltd Data allocation device, data allocation method and data allocation program
WO2012111217A1 (en) * 2011-02-15 2012-08-23 株式会社日立製作所 Resource management plan creation device and resource management plan creation method
GB2501650A (en) * 2011-02-15 2013-10-30 Hitachi Ltd Resource management plan creation device and resource management plan creation method
EP4071029A4 (en) * 2019-12-02 2024-01-10 Hitachi Ltd Scheduling system and scheduling method
JP7421180B2 (en) 2020-05-29 2024-01-24 国立大学法人秋田大学 Picking work support system and its program
CN113928380A (en) * 2021-09-07 2022-01-14 中车唐山机车车辆有限公司 All-weather train operation method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
Waddell et al. Microsimulation of urban development and location choices: Design and implementation of UrbanSim
JP3928268B2 (en) Operation equipment operation plan creation method and system
CA2584657A1 (en) Method and system for sequencing and scheduling
El Raoui et al. Coupling soft computing, simulation and optimization in supply chain applications: review and taxonomy
Sargut et al. Multi-objective integrated acyclic crew rostering and vehicle assignment problem in public bus transportation
Amaya et al. A model and computational tool for crew scheduling in train transportation of mine materials by using a local search strategy
JP2001005846A (en) Cyclic sequence scheduling method
González-Ramírez et al. A GRASP-tabu heuristic approach to territory design for pickup and delivery operations for large-scale instances
Powell Designing lookahead policies for sequential decision problems in transportation and logistics
Amiama et al. Spatial decision support system for the route management for milk collection from dairy farms
JP7227118B2 (en) RESOURCE OPERATION PLANNING SUPPORT DEVICE, RESOURCE OPERATION PLANNING SUPPORT METHOD, AND PROGRAM
Patel et al. Design and optimization of Milk-run material supply system with simultaneous pickups and deliveries in time windows
Naghshnilchi A Capacitated Vehicle Routing Problem considering Satisfaction Level of Customers: A Genetic Algorithm
Yan et al. Scheduling approach for concurrent product development processes
Hoffman et al. Simulating dynamic vehicle routing problems with athos
Jafari et al. The for-profit dial-a-ride problem on dynamic networks
Ou et al. A Coordination-Based Algorithm for Dedicated Destination Vehicle Routing in B2B E-Commerce.
Pena et al. A Two-Stage Heuristic for a Real Multi-compartment and Multi-trip Vehicle Routing Problem with Time Windows
Barbosa et al. A hybrid metaheuristic for the bus driver rostering problem
Abdulfattah Using modified grey wolf optimization to solve traveling salesman problem
Janssens et al. An exact algorithm for the full truckload pick–up and delivery problem with time windows: concept and implementation details
Saemi et al. Solving a new mathematical model for the integrated cockpit crew pairing and rostering problem by meta-heuristic algorithms under the COVID-19 pandemic
Su et al. A two-stage matheuristic algorithm for classical inventory routing problem
Andersson et al. Route optimization applied to school transports–A method combining column generation with greedy heuristics
Steenkamp Examination timetabling at the University of Cape Town: a tabu search approach to automation