JP4386456B2 - 工程の処理順序を決定するシステム、プログラムおよび方法 - Google Patents

工程の処理順序を決定するシステム、プログラムおよび方法 Download PDF

Info

Publication number
JP4386456B2
JP4386456B2 JP2007143969A JP2007143969A JP4386456B2 JP 4386456 B2 JP4386456 B2 JP 4386456B2 JP 2007143969 A JP2007143969 A JP 2007143969A JP 2007143969 A JP2007143969 A JP 2007143969A JP 4386456 B2 JP4386456 B2 JP 4386456B2
Authority
JP
Japan
Prior art keywords
determination unit
processed
order
condition
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007143969A
Other languages
English (en)
Other versions
JP2008299531A (ja
Inventor
貴行 恐神
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007143969A priority Critical patent/JP4386456B2/ja
Priority to US12/127,276 priority patent/US8201174B2/en
Publication of JP2008299531A publication Critical patent/JP2008299531A/ja
Application granted granted Critical
Publication of JP4386456B2 publication Critical patent/JP4386456B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • General Factory Administration (AREA)

Description

本発明は、工程の処理順序を決定する技術に関する。特に、本発明は、工程の処理順序によっては、先に処理した工程の結果を後に修正し得る場合において、工程の処理順序を適切に決定する技術に関する。
自動車などの製品の設計工程においては完成までの期間の短縮が費用および利益の観点から重要である。そこでエンジニアの作業時間を短縮するために、最適な設計を自動的に生成したり、決定すべきパラメータの最適値を自動的に決定する技術が提案されている(特許文献1−4を参照。)。例えば、特許文献1は、設計の中で決定すべきパラメータ値を自動的に最適に決定するための技術を開示している。特許文献2は壁パネルの最適な配置設計を求める技術を開示している。特許文献3および4は回路の設計において、回路のパラメータを最適化するための技術を開示している。
特開2004−030661号公報 特開2000−235591号公報 特開平5−174092号公報 特開2000−29919号公報 T. R. Browning, "Applying the Design Structure Matrix to System Decomposition and Integration Problems: A Review and New Directions," IEEE Transactions on Engineering Management, 48(3): 292-306, 2001. http://www.iese.uiuc.edu/pdlab/GE498AY/4DSMs.pdf R. P. Smith and S. D. Eppinger, "A predictive model of sequential iteration in engineering design," Management Science, 43(8): 1104-1120, 1997. http://web.mit.edu/eppinger/www/pdf/Smith_MS_Aug1997.pdf J. L. Rogers, "Integrating a genetic algorithm into a knowledge-based system for ordering complex design processes," NASA, Hampton, VA, TM-110 247, 1996. http://citeseer.ist.psu.edu/cache/papers/cs/3461/ftp:zSzzSztechreports.larc.nasa.govzSzpubzSztechreportszSzlarczSz96zSzNASA-96-tm110247.pdf/rogers96integrating.pdf Steven D. Eppinger, "Model-Based Approaches to Managing Concurrent Engineering," Journal of Engineering Design, vol. 2, no. 4, pp. 283-290, 1991. http://web.mit.edu/eppinger/www/pdf/Eppinger_JED_1991.pdf
しかしながら、自動車やその部品の設計は非常に複雑であり、コンピュータを用いてそれらを自動化する技術は提案されていない。さらに、自動車などの大規模な製品の設計は膨大な数の工程を要し、また、それぞれの工程は相互に依存することもあるので、どの工程から順に開始するかを決定することさえも非常に困難である。たとえば、ある2つの工程が相互に依存する場合には、そのどちらの工程を先に処理しても、既に処理した工程の結果を、その後に処理した工程の結果と整合するように修正しなければならない場合がある。この修正の処理に要する時間は工程の処理順序によって異なる。したがって、工程の処理順序を適切に決定しなければ、修正の処理に要する時間の合計が膨大となって設計全体の効率を低下させてしまうおそれがある。
参考技術として、作業手順を適切に決定するための技術(非特許文献1−4を参照。)を挙げる。これらの技術を、自動車の設計工程に応用できるとも考えられる。しかしながら、非特許文献1の技術を自動車に応用した場合、工程の数が多すぎて現実的な時間で順序決定のための計算が完了しない。また、非特許文献2−3の技術は、最適な順序を近似的に算出するものであるため、決定した処理順序に改善の余地がある場合がある。
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の形態においては、複数の工程の処理順序を決定するシステムであって、工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために生じる修正処理の所要時間の期待値を記憶している記憶装置と、第1の工程より後に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より先に処理した方がその第2の工程より後に処理するよりも修正処理の所要時間が短いという、第1条件が満たされるか否かを、前記記憶装置から読み出した各期待値に基づき判断する第1判断部と、第1条件が満たされる場合に、第1の工程をそれぞれの第2の工程より先に処理すると決定する第1決定部と、前記第1決定部により決定された処理順序に従う範囲内で、他の工程の処理順序を決定して、決定した処理順序を出力するスケジュール部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させるプログラム、および、当該システムにより工程の処理順序を決定する方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施の形態に係る決定システム10の全体構成を示す。決定システム10は、入力部100と、記憶装置110と、本体部120とを備える。入力部100は、確率データ20、処理時間データ30および順序制約データ40の入力を受け付ける。確率データ20は、工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために修正処理が生じる確率を示す。処理時間データ30は、工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるための処理時間を示す。順序制約データ40は、ある第1の工程を他の第2の工程よりも先に処理しなければならない制約を複数含んでいる。
入力部100は、工程の組ごとに、入力を受け付けた確率および処理時間の積を算出し、修正処理の所要時間の期待値を表す期待値データ50を生成して、記憶装置110に格納する。また、入力部100は、入力を受け付けた順序制約データ40を記憶装置110に格納する。本体部120は、これらのデータに基づいて、全ての工程を設計に矛盾が無いように完了させることを前提に、修正処理の所要時間の期待値を最小化できるような、工程の最適な処理順序を決定して出力する。
図2aは、本実施の形態に係る確率データ20のデータ構造の第1例を示す。自動車などの製品を設計する場合において、各工程はその製品の一部分の要素の設計を決定するために予め定められている。ここで、製品の一部分の要素とは、その製品の部分または部品のことをいう。例えば、図2aに示す4つの工程は、それぞれ、自動車の部分または部品である、「ドアオープニングライン」、「Aピラー板厚」、「Aピラー基本断面」および「フロントガラスモール」の設計を決定する工程である。ある部分または部品の設計を決定する、とは、その部分または部品の形状および材料の少なくとも1つを決定することをいう。より具体的には、部品の設計の決定には、部品の形状を決定するためにその長さ、幅、厚みまたは角度などの数値を決定することが含まれる。これに加えて、各工程は、その製品の生産工程の一部分の設計を決定するために予め定められたものであってもよい。例えば、各工程は、金属板を金型でプレス加工する生産工程において、使用する金型の形状および金型の数の少なくとも一方を決定するものであってもよい。
図2aに示す確率データ20によると、Aピラー基本断面の設計を決定する工程の後に、Aピラー板厚の設計を決定する工程を処理した場合において、先に処理したAピラー基本断面の設計に戻ってその内容を修正しなければならない確率は80%である。他の工程の組についての数値の意味は同様であり、例えばAピラー板厚を先に、フロントガラスモールをその後に決定した場合において、その決定と先に決定したAピラー板厚の設計との間に矛盾が生じたために修正しなければならない確率は50%である。空欄は修正処理が発生しないこと、即ち確率が0%であることを示す。
図2aは、製品の設計を決定するために必要な数多くの工程の一部を抽出して例示的に説明するものである。この例示を拡張・一般化して、26の工程について修正処理の発生確率を図式化したものを図2bに示す。
図2bは、本実施の形態に係る確率データ20のデータ構造の第2例を示す。この第2例では、各工程の識別子をアルファベット一文字で表している。実際には各工程には、製品またはその生産工程のどの部分の設計を決定するか、あるいは、どのような数値を決定するか、という、具体的な設計の内容が予め対応して定められている。また、先に処理する工程の識別子を行方向に、後に処理する工程の識別子を列方向に配列して示し、各工程の組に対応する数値は修正処理の発生確率を示す。一例として、工程cを先に、工程aをその後(工程cの次とは限らない)に処理した場合において、工程cの結果を修正する処理が発生する確率は20%である。
以上のように図2a−bとして示した確率の数値は、製品を設計するエンジニアによって決定されて入力されてもよいし、過去に類似の製品を設計した場合の作業日誌に基づいて算出されて入力されてもよい。以降、工程aより後に工程bを処理した場合にその工程aの結果を工程bの結果に整合させるために修正処理が生じる確率を、関数pを用いて、p[b][a]と表す。
図3aは、本実施の形態に係る処理時間データ30のデータ構造の第1例を示す。図3aは、図2aに示す4つの工程、即ち、「ドアオープニングライン」、「Aピラー板厚」、「Aピラー基本断面」および「フロントガラスモール」の設計を決定する工程に対応している。そして、処理時間データ30は、これらの工程のうち任意の2つの工程の組のそれぞれについて、一方の工程より後に他方の工程を処理した場合にその一方の工程において決定した設計をその他方の工程において決定した設計と整合させるために生じる設計変更の、平均の処理時間を示している。
具体的には、Aピラー基本断面の設計を決定する工程の後に、Aピラー板厚の設計を決定する工程を処理した場合において、先に設計したAピラー基本断面を修正するために要する処理時間の平均は4時間である。他の工程の組についても数値の意味は同様であり、例えばAピラー板厚を先に、フロントガラスモールをその後に決定した場合において、先に決定したAピラー板厚の設計を修正するために要する処理時間の平均は8時間である。
図3aは、製品の設計を決定するために必要な数多くの工程の一部を抽出して例示的に説明するものである。この例示を拡張・一般化して、26の工程について修正の処理時間を図式化したものを図3bに示す。
図3bは、本実施の形態に係る処理時間データ30のデータ構造の第2例を示す。この第2例は、図2bに示す確率データ20に対応しており、各工程の識別子をアルファベット一文字で表している。実際には各工程には、製品またはその生産工程のどの部分の設計を決定するか、あるいは、どのような数値を決定するか、という、具体的な設計の内容が予め対応して定められている。また、先に処理する工程の識別子を行方向に、後に処理する工程の識別子を列方向に配列して示し、各工程の組に対応する数値は修正の処理時間の平均を示す。一例として、工程cを先に、工程aをその後に処理した場合において、工程cの結果を修正する処理時間の平均は8時間である。
以上のように図3a−bとして示した修正の処理時間の数値は、製品を設計するエンジニアによって決定されて入力されてもよいし、過去に類似の製品を設計した場合の作業日誌に基づいて算出されて入力されてもよい。以降、工程aより後に工程bを処理した場合にその工程aの結果を工程bの結果に整合させるために必要な修正の処理時間を、関数wを用いて、w[b][a]と表す。
図4は、本実施の形態に係る順序制約データ40のデータ構造の一例を示す。特定の工程の組については、一方の工程を必ず先に処理しなければ、他方の工程を全く処理できない場合がある。入力部100は、このような特定の組とその処理の順序とを示す情報として順序制約データ40の入力を受け付ける。図4に示す順序制約データ40の例では、各工程の識別子をアルファベット一文字で表している。実際には各工程には、製品またはその生産工程のどの部分の設計を決定するか、などの具体的な設計の内容が予め対応して定められている。また、先に処理する工程の識別子を列方向に、後に処理する工程の識別子を行方向に配列して示す。
ある工程aを先に、工程bをその後に処理しなければならない順序制約をconstraint(a,b)=1およびconstraint(b,a)=−1と表す。即ち、数値1は、ある工程の順列についてその順に処理しなければならない順序制約があることを示し、数値−1は、その逆順に処理しなければならない順序制約があることを示す。図4は、このような関数constraintの数値を、任意の2つの工程の順列について表したものである。一例として、工程iは工程jよりも先に処理しなければならないことを表している。
他の例として、入力部100は、順序制約データ40の入力を受け付けなくてもよい。この場合には、入力部100は、順序制約を修正処理の発生確率および修正時間に反映させた確率データ20および処理時間データ30の入力を受け付ける。例えば、この確率データ20は、その順序制約に反する順序で工程を処理した場合の修正処理の発生確率として、例えば100%などの極めて高い数値を含む。同様に、処理時間データ30は、その順序制約に反する順序で工程を処理した場合の修正処理の時間として、例えば全工程の組合せの中で最大の修正時間と同一の修正時間などの、極めて大きい数値を含む。このように、順序制約データ40の入力は必須ではなく、順序制約データ40を用いずとも順序制約を実質的に反映して処理順序を決定することもできる。
入力部100は、以上のように確率データ20、処理時間データ30、および、必要に応じてさらに順序制約データ40の入力を受け付けると、続いて確率データ20および処理時間データ30に基づいて期待値データ50を生成して、記憶装置110に格納する。この結果として記憶装置110が記憶する期待値データ50の一例を図5に示す。
図5は、本実施の形態に係る期待値データ50のデータ構造の一例を示す。入力部100が算出する修正処理の所要時間の期待値は、工程の組ごとに入力を受け付けた確率および処理時間の積である。図5は、この所要時間の積を示す数値を示している。また、先に処理する工程の識別子を行方向に、後に処理する工程の識別子を列方向に配列した表形式によって表している。一例として、工程cを先に、工程aをその後に処理した場合における所要時間の期待値は1.6時間である。以降、工程aより後に工程bを処理した場合にその工程aの結果を工程bの結果に整合させるための修正処理の所要時間の期待値を、関数tを用いて、t[b][a]と表す。t[b][a]=p[b][a]×w[b][a]である。
図6は、本実施の形態に係る本体部120の機能構成を示す。本体部120は、第1判断部600と、第1決定部610と、第3決定部620と、第2判断部630と、第2決定部640と、スケジュール部650とを有する。これらの各部は、後述のCPU1000が、コンピュータにインストールされたプログラムを実行することによって実現される。第1判断部600は、他の何れかの工程との間で処理順序が未決定の工程を順次選択する。選択した工程を第1の工程と呼ぶ。そして、第1判断部600は、選択したその第1の工程が予め定められた第1条件および第2条件の何れかを満たすかを判断する。
第1条件は、その第1の工程より後に処理し得る第2の工程の何れについても、その第1の工程をその第2の工程より先に処理した方がその第2の工程より後に処理するよりも修正処理の所要時間が「短くなる」という条件である。この「短くなる」という条件は、「長くならない」という条件であってもよい。即ち、何れの第2の工程についても、第1の工程をその先に処理した方が所要時間が短いか等しい場合に、第1条件が満たされると判断してもよい。このように等しい場合も条件成立とすることで、第1条件が満たされ易くなるので、工程の最適順序を探索する空間を一層狭めることができる。
また、第2条件は、その第1の工程より先に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より後に処理した方がその第2の工程より先に処理するよりも修正処理の所要時間が「短くなる」という条件である。この「短くなる」という条件は、「長くならない」という条件であってもよい。即ち、何れの第2の工程についても、第1の工程をその後に処理した方が所要時間が短いか等しい場合に、第2条件が満たされると判断してもよい。このように等しい場合も条件成立とすることで、第2条件が満たされ易くなるので、工程の最適順序を探索する空間を一層狭めることができる。これらの第1および第2条件の判断は、記憶装置110から読み出した、工程の組の各々についての所要時間の期待値に基づいて行われる。
そして、第1決定部610は、第1条件が満たされると判断されるたびに、第1の工程をそれぞれの第2の工程より先に処理すると決定する。また、第1決定部610は、第2条件が満たされると判断されるたびに、第1の工程をそれぞれの第2の工程より後に処理すると決定する。決定された順序は、記憶装置110に格納される。ある工程aの次に工程bを処理すると決定してそれを記憶装置110に格納することを、以降の説明ではdoBefore[a][b]=1、および、doBefore[b][a]=−1という式で表す。なお、doBeforeは、第1引数の工程の後に第2引数の工程を処理する場合に1を、その逆の順に処理する場合に−1を、順序が未決定の場合に0を返す関数である。
第1判断部600は、第1条件および第2条件についてのこれらの判断を、第1決定部610または後述の第2決定部640等によって次々に順序が決定された結果第1条件および第2条件の何れかを満たす第1の工程がなくなるまで繰り返す。
第3決定部620は、第1決定部610および後述の第2決定部640の少なくとも何れかによって新たに順序が決定されたことに応じ、その決定された順序に基づき推移法則を適用して新たに順序を決定する。具体的には、第1の工程および第2の工程をこの順に処理すると決定された場合において、第3決定部620は、第1の工程より先に処理することが既に決定されている第3の工程を、第2の工程より先に処理すると決定する。また、第3決定部620は、第2の工程より後に処理することが既に決定されている第4の工程を、第1の工程より後に処理すると決定する。
第2判断部630は、相互の処理順序が未決定の工程の各組を順次選択する。選択した工程の組を第1の工程および第2の工程と呼ぶ。そして、第2判断部630は、第1の工程より後であって第2の工程より先に処理し得る工程の集合Cを求める。集合Cは、既に第1決定部610または第2決定部640により決定され、記憶装置110に格納された処理順序(即ちdoBeforeの値)、および、順序制約データ40に基づいて求められる。そして、第2判断部630は、集合Cの何れの部分集合についても、第1の工程、当該部分集合内の各工程、および、第2の工程をこの順に処理した方が、第2の工程、当該部分集合内の各工程、および、第1の工程をこの順に処理するよりも、設計変更の所要時間を「短縮できる」という、第3条件が満たされるかを判断する。この判断は、記憶装置110から読み出した所要時間についての各期待値に基づいて行われる。なお、この「短縮できる」という条件は、「増加させない」という条件であってもよい。即ち、第1の工程、部分集合内の各工程、および、第2の工程をこの順に処理した方が、第2の工程、部分集合内の各工程、および、第1の工程をこの順に処理するよりも、設計変更の所要時間を短縮できるか、あるいは、変化しない場合に、第3条件が満たされると判断してもよい。このように等しい場合も条件成立とすることで、第3条件が満たされ易くなるので、工程の最適順序を探索する空間を一層狭めることができる。
第2決定部640は、この第3条件が満たされると判断されるたびに、第1の工程を第2の工程より先に処理すると決定する。第2判断部630は、以上の第3条件についての判断を、第3条件を満たす第1の工程および第2の工程の組がなくなるまで繰り返す。
以上、第1−第3の何れの条件も満たされなくなった時点において決定済の処理順序は、記憶装置110から読み出され、第2判断部630からスケジュール部650に対し出力される。この処理順序を示すデータを部分順序データ150とする。
次に、スケジュール部650は、順序制約データ40に規定された順序制約、ならびに、第1決定部610、第2決定部640および第3決定部620により決定された処理順序に従う範囲内で、順序未決定の工程の集合である未決定集合内の工程の処理順序を決定して、決定した処理順序を出力する。処理順序の決定は、例えば、全数探索、動的計画法または局所探索法によるものであってよい。全数探索は、例えば、未決定集合内の工程の組合せの中で決定可能な全ての順序について、その順序を決定したと仮定した場合の修正処理の所要時間の合計を求め、その合計を最小とする順序を決定順序とすることをいう。このような全数探索などの方法は、工程の数が多いと現実的な時間で完了しないか、あるいは、完了するとしても十分に効率的な解が得られない場合がある。ただし、第1決定部610および第2決定部640により未決定の工程数を十分に減少して探索空間を狭めることができるので、現実的な時間で完了させることができる。
他の方法として、スケジュール部650は、以下の方法によって未決定部分の順序を決定してもよい。スケジュール部650は、まず、未決定集合を示す未決定データ170を決定システム10から読み出す。そして、スケジュール部650は、未決定集合に含まれる各工程について、その工程を未決定集合の中で最初に処理すると仮定した場合におけるその未決定集合の中における各工程の処理順序を、第1決定部610および第2決定部640を再帰的に利用することにより決定する。これは、例えば、未決定集合中の工程の処理順序を決定する問題を部分問題とし、その部分問題を示す部分問題データ175を記憶装置110に格納したうえで、第1判断部600に処理開始を指示することによって実現される。
未決定集合は第1決定部610および第2決定部640によっては順序が決定されなかった工程の集合であるから、未決定集合の中でどの工程を最初に処理すると最適であるかは、第1決定部610および第2決定部640により決定不能である。しかしながら、未決定集合の中で最初に処理するべき工程を仮定してしまえば、その残りの工程の処理順序を第1決定部610および第2決定部640により決定できる場合がある。スケジュール部650は、このようにして複数の工程の各々を最初に処理すると仮定した場合における最適な処理順序の各々を求める。そして、スケジュール部650は、求めた処理順序のうち最も修正処理の所要時間が短い処理順序を選択して、処理順序データ160に含めて出力する。
以下、図7から図19を参照して、順序決定の各処理について更に詳しく説明する。
図7は、本実施の形態に係る決定システム10の処理段階の概要を示すフローチャートである。入力部100は、確率データ20、処理時間データ30および順序制約データ40の入力を受け付ける(S700)。製品の設計に必要な工程がまだ入力されていない場合には、入力部100は、これらの入力も更に受け付ける。入力部100は、確率データ20および処理時間データ30に基づいて期待値データ50を算出して、順序制約データ40と共に記憶装置110に格納する。これに加えて、入力部100は、決定済みの処理順序を記憶するための領域を記憶装置110内に確保してもよい。
そして、順序制約データ40を入力した場合には、入力部100は、以下のS702およびS704の処理を行う。まず、入力部100は、順序制約データ40に規定された順序制約を、決定済みの処理順序を記憶するためのその領域に複写して、決定済みの処理順序とする(S702)。このようにすれば、以降の処理において順序制約を特に別途に考慮しなくてよい。そして、入力部100は、それぞれの順序制約について第3決定部による処理をさせる(S704)。具体的には、入力部100は、各順序制約について、その順序制約において先に処理することが規定されている第1の工程を第1引数とし、その順序制約において後に処理することが規定されている第2の工程を第2引数として、第3決定部620に処理をさせる。これにより、第3決定部620は、その第1の工程より先に処理することが他の順序制約により規定されている第3の工程を、その第2の工程より先に処理すると決定し、その第2の工程より後に処理することが他の順序制約により規定されている第4の工程をその該第1の工程より後に処理すると決定する。この結果、以降に順次決定する順序と順序制約とが矛盾することを防止できる。
次に、第1判断部600は、第1条件および第2条件のいずれかを満たす工程の検出を試みる(S705)。検出されたことを条件に(S710:YES)、第1決定部610は、第1の工程およびそれぞれの第2の工程の間の処理順序を決定する(S720)。その後に決定システム10はS705に処理を戻して、他の工程が第1条件および第2条件のいずれかを満たすか更に判断する。一方、第1条件または第2条件を満たす工程が検出されないことを条件に(S710:NO)、第2判断部630は、第3条件を満たす工程の検出を試みる(S730)。検出されたことを条件に(S740:YES)、第2決定部640は、第1の工程および第2の工程の間の処理順序を決定する(S750)。
その後に決定システム10は、S705に処理を戻す。この結果、第1判断部600は、第2決定部640により処理順序が決定された後に、その決定によって新たに第1または第2条件が満たされるようになったか否かをさらに判断する。一方、第3条件を満たす工程が検出されない場合には(S740:NO)、この場合には第1条件または第2条件を満たす工程も検出できないので、スケジュール部65が、別の方法によって、順序未決定の他の工程についての処理順序を決定する(S760)。
図8は、S705における処理の詳細を示すフローチャートである。まず、第1判断部600は、製品の設計に必要な全ての工程の集合をCとする(S800)。次に、第1判断部600は、集合Cが空集合か否かを判断する(S810)。空集合であれば(S810:YES)、第1判断部600は、第1条件および第2条件のいずれかを満たす工程が検出されないと判断する(S860)。一方、空集合でなければ(S810:NO)、第1判断部600は、集合Cから工程を1つ取得する。工程を取得する、とは、集合Cから工程を選択したうえで、選択したその工程を集合Cから取り除くことをいう。このような集合の操作は、集合に含まれる各工程の識別子をRAM1020などのメモリに記憶したうえで、そのRAM1020に読出しや書込みのアクセスをすることによって実現される。このような集合操作やこれに類する操作の実現方法は、当業者にとって自明なものであるから以降その詳細な説明を省略する。
S820において取得した工程を工程aとする。工程aは本発明に係る第1の工程の候補となる工程である。続いて、第1判断部600は、この工程aが第1条件および第2条件のいずれかを満たすか判断する(S830)。何れも満たさないことを条件に(S840:NO)、第1判断部600は、S810に処理を戻し、第1条件および第2条件のいずれかを満たすか順次判断する処理を、第1条件および第2条件のいずれかを満たす第1の工程がなくなるまで繰り返す。一方、第1条件および第2条件のいずれかが満たされることを条件に(S840:YES)、第1判断部600は、第1条件および第2条件のいずれかを満たす工程が検出されたと判断し、第1条件を満たす場合には数値1を、第2条件を満たす場合には数値−1をそれぞれ第1決定部610に対し出力する(S850)。
図9aは、S830における処理の詳細を示すフローチャートである。第1判断部600は、第1の工程の候補として選択した工程aとの間で処理順序が未決定の他の工程cがあるか否かを判断する(S900)。この判断は、数式を用いて、「a≠cかつdoBefore[a][c]=0を満たすcが存在するか?」と表される。実現方法の1つとして、第1判断部600は、記憶装置110に記憶された決定済みの順序にアクセスして、工程aが何れかの工程との間で順序が未決定かどうかを判断すればよい。そのような工程cがなければ(S900:NO)、第1判断部600は、工程aが第1条件および第2条件の何れも満たさないと判断する(S990)。
そのような工程cがあれば(S900:YES)、第1判断部600は、工程aより先に処理し得る工程の集合をCとする(S910)。工程aより先に処理し得る工程の集合とは、順序制約データ40により規定される順序制約、ならびに、第1決定部610、第3決定部620および第2決定部640の何れかによって既に決定された処理順序に従っても、工程aより先に処理する可能性のある工程の集合のことをいう。この集合Cは、数式を用いて、c≠aかつdoBefore[c][a]≠1を満たすcの集合として表される。
次に、第1判断部600は、工程Cが空集合か否かを判断する(S920)。Cが空集合であれば(S920:YES)、第1判断部600は、工程aが第1条件を満たすと判断し、数値1を出力する(S925)。Cが空集合でなければ(S920:NO)、第1判断部600は、集合Cから工程を1つ取得して、工程cとする(S930)。この工程cは、工程aより後に処理し得る工程、即ち第2の工程の一例である。次に、第1判断部600は、工程aをその工程cより先に処理した方がその工程cより後に処理するよりも修正時間の所要時間が長くないかどうかを判断する(S940)。この判断は、数式を用いて、「t[a][c]<t[c][a]が成立するか?」と表される。
所要時間が長くなければ(S940:NO)、第1判断部600はS900に処理を戻して集合C内の他の工程についても所要時間の条件が満たされるかどうかを判断する。所要時間が長ければ(S940:YES)、第1判断部600は、工程aは第1条件を満たさないと判断して、続いて第2条件の充足性を判断するために、工程aより後に処理し得る工程の集合をCとする(S950)。工程aより後に処理し得る工程も、工程aより先に処理し得る工程の判断と同様に、順序制約データ40に規定された順序制約および既に決定された処理順序に従っても工程aより後に処理する可能性があるかどうかによって判断される。
次に、第1判断部600は、集合Cが空集合か否かを判断する(S960)。集合Cが空集合であれば(S960:YES)、第1判断部600は、工程aが第2条件を満たすと判断し、数値−1を出力する(S965)。一方、集合Cが空集合でなければ(S960:NO)、第1判断部600は、集合Cから工程を1つ取得して、工程cとする(S970)。そして次に、第1判断部600は、工程aをその工程cより後に処理した方がその工程cより先に処理するよりも修正時間の所要時間が長いかどうかを判断する(S980)。この判断は、数式を用いて、「t[a][c]>t[c][a]が存在するか?」と表される。
所要時間が長ければ(S980:YES)、第1判断部600は、第1および第2条件の何れも満たさないと判断する(S990)。所要時間が長くなければ(S980:NO)、第1判断部600は、S960に処理を戻して、集合C内の他の工程についても所要時間の条件が満たされるかどうかを判断する。
以上の処理により、第1判断部600は、ある工程aが第1条件および第2条件のいずれかを満たすか否か、および、満たすとすればどちらを満たすかを判断することができる。
図9bは、第1条件を満たすかどうかの判断を示す概念図である。図9bでは、各工程を模式的にノードとして表し、既に決定した処理順序又は順序制約を2重線の矢印のエッジで表す。また、順序は未決定だがこの順に処理するとこの逆順に処理するよりも修正時間の期待値を短縮できる関係を単線の矢印のエッジで表す。また、特に規定の無い場合は、図上方に記載の工程から図下方に記載の工程の順に処理すると、その逆に処理するよりも、修正処理の所要時間の期待値を短縮できることを表している。また、説明の簡略のため、エッジにより結ばれていない工程の組については、その処理順序をここでは考慮しない。
ノードaは、ノードbよりも後、かつ、ノードfよりも先に処理されることが既に決定されている。そして、ノードaとノードaとの間では処理順序が決定されてないが、ノードaをノードaよりも先に処理した方が修正処理の期待値を短縮できる。このような場合は、ノードaについて第1条件が満たされる。ノードaより先に処理することが決定済みのノードbを除外して考えれば、全てのノード(即ちこの例ではノードfおよびノードa)よりも先に処理した方が修正処理の期待値を短縮できるからである。
他方、ノードaは、ノードcより後、かつ、ノードeより先に処理されることが既に決定されている。そして、ノードaは、ノードdとの間では処理順序が決定されてないが、ノードaをノードdよりも先に処理した方が修正処理の期待値を短縮できる。しかしながら、ノードaを、順序未決定のノードaより先に処理しても処理時間の期待値が短縮されない。したがって、ノードaは第1条件を満たさない。ただし、ノードaをノードaよりも先に処理することを決定した後には、ノードaより後に処理し得るノードはノードdおよびノードeのみとなるので、ノードaは第1条件を満たす。
このように、第1判断部600は、工程aおよび工程aの処理順序をこの順に決定する。工程の数が多い実際の課題では、第1判断部600は、先に処理すべき工程から順に順次各工程の処理順序を決定してゆく。また、第2条件についてもこの例と同様である。即ち、第1判断部600は、第2条件の判断を通じて、後に処理すべき工程から順に順次各工程の処理順序を決定してゆく。
図10は、S720における処理の詳細を示すフローチャートである。第1条件または第2条件を満たす工程が検出された場合において、まず、第1決定部610は、条件を満たす工程aとの間で処理順序が未決定の工程の集合をBとする(S1000)。第1決定部610は、集合Bが空集合か否かを判断する(S1010)。空集合であれば(S1010:YES)、第1決定部610は、第1条件または第2条件成立による順序の決定を終了する。Bが空集合でなければ(S1010:NO)、第1決定部610は、Bから工程を1つ取得して、工程bとする(S1020)。
次に、第1決定部610は、工程aが第1条件を満たす場合には工程aを工程bの先に処理すると決定する(S1030)。工程aが第2条件を満たす場合には、第1決定部610は、工程aを工程bの後に処理すると決定する。これらの決定の処理は、まとめて、doBefore[a][b]=(戻り値)およびdoBefore[b][a]=−(戻り値)と表される。(戻り値)は、第1判断部600が出力する値を表す。「戻り値」の名称は、第1判断部600をプログラム言語の仕様のうえでの関数として実現する場合に、第1判断部600の出力はこの関数の戻り値として表されることに由来する。
次に、第1決定部610は、戻り値が数値1か数値−1かを判断する(S1040)。数値1の場合(S1040:1)、第1決定部610は、工程aおよび工程bをこの順に配列した順列を引数として、第3決定部620に順序決定の処理をさせる(S1050)。この引数という用語も、戻り値と同様に、第3決定部620をプログラム言語の仕様の上での関数として実現する場合に、その関数に与える入力パラメータは関数の引数として表されることに由来する。一方、戻り値が数値−1の場合に(S1040:−1)、第1決定部610は、工程bおよび工程aをこの順に配列した順列を引数として、第3決定部620に順序決定の処理をさせる(S1060)。
図11aは、S730における処理の詳細を示すフローチャートである。第2判断部630は、まず、相互の処理順序が未決定の工程の各順列の集合をDとする(S1100)。そして、第2判断部630は、集合Dが空集合かどうかを判断する(S1110)。空集合であれば(S1110:YES)、第2判断部630は、第3条件を満たす工程の組が検出されないと判断して(S1120)、処理を終了する。一方、Dが空集合でなければ(S1110:NO)、第2判断部630は、Dから工程の組を取得して、工程aおよび工程bとする(S1130)。工程aは本発明の第1の工程であり、工程bは本発明の第2の工程である。
次に、第2判断部630は、工程aおよび工程bの組が第3条件を満たすか判断する(S1140)。第3条件とは、工程aより後であって工程bより先に処理し得る工程、または、工程bより後であって工程aより先に処理し得る工程の集合Cについて、この集合Cの何れの部分集合についても、工程a、当該部分集合内の各工程、および、工程bをこの順に処理した方が、工程b、当該部分集合内の各工程、および、工程aをこの順に処理するよりも、設計変更の所要時間の期待値を増加させないという条件である。この第3条件が満たされない場合には(S1150:NO)、第2判断部630は、S1110に処理を戻して、第3条件を満たす第1の工程および第2の工程の組がなくなるまで順次判断する処理を繰り返す。第3条件が満たされる場合には(S1150:YES)、第2判断部630は、第3条件を満たす工程が検出されたと判断して(S1160)、処理を終了する。
図11bは、第3条件を満たすかどうかの判断を示す概念図である。工程aより後であって工程bより先に処理し得る工程、または、工程bより後であって工程aより先に処理し得る工程の集合Cには、いま、工程c1、工程c2、および工程c3が含まれるものとする。すると、工程aの後かつ工程bの先、または、工程bの後かつ工程aの先に処理され得る工程の集合は、集合Cの全ての部分集合、即ち、空集合φ、{c1}、{c2}、{c3}、{c1,c2}、{c1,c3}、{c2,c3}、および、{c1,c2,c3}の何れかとなる。
この例について第3条件の充足性を判断するアイデアについて説明する。まず、工程aを工程bより先に処理するか後に処理するかの判断は、工程aおよび工程bの関係に基づき発生する修正処理のみならず、その間に処理し得る集合Cの部分集合に属する工程と工程a、bとの間の関係に基づく修正処理に基づき行わなければならない。工程aおよび工程bの関係に基づくと、工程aを工程bより後に処理するよりも、工程aを工程bより先に処理した方が修正処理の所要時間を短縮できるかどうかが判断の基準となる。短縮できることを、数式では、t[b][a]<t[a][b]と表し、短縮できる時間を、t[a][b]−t[b][a]と表すことができる。
そして、集合Cに含まれる各工程cについて、工程a、c、bをこの順に処理することで、工程b、c、aをこの順に処理する場合と比較して増加する修正処理の所要時間を求めたうえで、どの工程cを選んで集合Cの部分集合としても、この増加する時間の合計が、上記の短縮できる時間以下となるかどうかを判断すればよい。例えば工程c1について、工程a、c1、bをこの順に処理することで増加する所要時間の期待値は、数式を用いて、t[c1][a]+t[b][c1]−t[c1][b]−t[a][c1]と表すことができる。この計算を、集合Cに含まれる各工程について行ったうえで、集合Cに含まれる各部分集合についてそれに含まれる各工程についての計算結果を合計すれば、各部分集合について増加する時間の合計を求めることができる。
このようにして短縮される時間と増加する時間の合計とを、全部分集合について比較すれば、工程aをbより先に処理するべきかどうかが判断できる。しかしながら、集合Cの部分集合の数が多い場合には、上記のアイデアをそのままコンピュータの上で実現したのでは計算に時間がかかりすぎる場合がある。以下、図12aを参照して、大部分の部分集合についての判断を省略しつつも、第3条件の判断を適切かつ効率的に実現する方法について説明する。
図12aは、S1140における処理の詳細を示すフローチャートである。まず、第2判断部630は、工程bを工程aより先に処理する場合と比較して、工程aを工程bより先に処理することで短縮できる設計変更の所要時間の期待値を算出する(S1200)。この算出は、数式を用いて、diff=t[b][a]−t[a][b]として表される。算出される数値が負の数の場合にはその絶対値で表される時間を短縮できることを示し、数値が正の数の場合にはその絶対値で表される時間が増加してしまうことを示す。
次に、第2判断部630は、工程a、b以外の全工程の集合をCとする(S1210)。そして、第2判断部630は、集合Cから工程を1つ取得して工程cとする(S1220)。次に、第2判断部630は、工程cを工程aおよびbの何れよりも後に処理することが決定済みか、または、工程cを工程aおよびbの何れよりも先に処理することが決定済みかを判断する(S1230)。このように決定済みの場合には、工程cを工程aおよびbの一方よりも後、かつ他方よりも先に処理することはできない。したがって、決定済みの場合には(S1230:YES)、第2判断部630は、S1250に処理を移して次の工程について判断する。
一方、このように決定済みでは無い場合には(S1230:NO)、第2判断部630は、工程cを、工程aより後かつ工程bより先に処理する場合と比較して工程bより後かつ工程aより先に処理することにより、設計変更の所要時間の期待値を増加させる場合についてのみ、その増分を算出して、S1200にて算出した短縮される時間から減じる(S1240)。この増分は、数式を用いて、t[c][a]+t[b][c]−t[c][b]−t[a][c]と表される。また、短縮される所要時間の期待値からこの増分を減じる処理は、数式を用いて、diff=diff+max(0,t[c][a]+t[b][c]−t[c][b]−t[a][c])と表される。
この結果、工程aを工程bより先に処理しても修正処理の所要時間の期待値が増加するようになった場合には(S1250:YES)、第2判断部630は、第3条件を満たす工程の組が検出されないと判断し(S1260)、処理を終了する。この判断は、数式を用いて、「diff>0が成立するか?」と表される。一方、工程aを工程bより先に処理することで所要時間の期待値が増加しない場合には(S1250:NO)、第2判断部630は、続いて集合Cが空集合かどうかを判断する(S1270)。空集合でなければ(S1270:NO)、第2判断部630は、S1220に処理を戻して、集合Cに含まれる他の工程についての判断に処理を移す。一方、空集合であれば(S1270:YES)、第2判断部630は、第3条件を満たす工程の組が検出されたと判断する(S1280)。
以上、図12aを参照して説明したように、第2判断部630は、工程aより後かつ工程bより先に処理する場合と比較して工程bより後かつ工程aより先に処理することにより、設計変更の所要時間の期待値を増加させる各々の工程について、その期待値の増分を算出することができる。そして、第2判断部630は、工程aを工程bより先に処理することで短縮できる設計変更の所要時間の期待値が、上記の期待値の増分の合計以上であることを条件に、第3条件を満たすと判断する。このようにすることで、集合Cの全ての部分集合を判断の対象とせずに、工程aの後かつ工程bの先に処理することで修正処理の所要時間を最も長くする部分集合についてのみ判断の対象として、所要時間の判断に要する処理時間を節約することができる。
図12bは、第3条件の充足を効率的に判断するための工夫を示す概念図である。工程aより後かつ工程bより先に処理することで、その逆順に処理するよりも、修正処理の所要時間の期待値を増加させてしまう工程を、工程c1および工程c3とする。この場合、上記図12aのS1240において、これらの工程c1および工程c3を工程aより後かつ工程bより先に処理することによって増加させる期待値のみを、変数diffの値に加える。そして、工程aより後かつ工程bより先に処理することで所要時間を短縮できる工程c2については、その短縮できる時間を変数diffの値に反映させない。
これは即ち、第2判断部630が、工程aより後かつ工程bより先に処理することで修正処理を最も長くしてしまう部分集合である{c1,c3}についてのみを判断の対象としていることに他ならない。このように、本来は8つの部分集合を判断の対象としなければならないところを、1つの部分集合のみを判断の対象とすることで、判断に要する時間を短縮することができる。これは、集合Cのサイズが大きい場合には一層顕著になる。
図13は、S750における処理の詳細を示すフローチャートである。工程aおよび工程bの組が第3条件を満たす場合に、第2決定部640は、工程aを工程bより先に処理すると決定する(S1300)。この決定は、数式を用いて、doBefore[a][b]=1およびdoBefore[b][a]=−1と表される。そして、工程aを第1引数とし、工程bを第2引数として、第3決定部620を実現するための関数を呼び出し、第3決定部620により処理をさせる(S1310)。
図14は、S704、S1050、S1060およびS1210として共通して機能する処理の詳細を示すフローチャートを示す。第3決定部620は、まず、第1引数である工程aおよび第2引数である工程b以外の全工程の集合をCとする(S1400)。そして、第3決定部620は、集合Cから工程を1つ選択して、工程cとする(S1410)。この工程cは、本発明に係る第3の工程または第4の工程の候補となる工程である。そして、第3決定部620は、工程cおよび工程aの間で処理順序が決定しておらず、かつ、工程cを工程bより後に処理することが既に決定されているかを判断する(S1420)。
そのような場合には(S1420:YES)、第3決定部620は、工程cを工程aより後に処理すると決定する(S1430)。これにより、工程a、bの処理順序、および、既に決定されていた他の処理順序に推移法則を適用して、工程a、cの処理順序を定めることができる。そして、第3決定部620は、工程aおよび工程cの順列を新たに引数として、本図の処理を再帰的に適用する(S1440)。
次に、第3決定部620は、工程cおよび工程aの間で処理順序が決定しておらず、かつ、工程cを工程aより先に処理することが既に決定されているかを判断する(S1450)。そのような場合には(S1450:YES)、第3決定部620は、工程cを工程bの先に処理すると決定する(S1460)。そして、第3決定部620は、工程cおよび工程bの順列を新たに引数として、本図の処理を再帰的に適用する(S1470)。
続いて、第3決定部620は、S1410において選択した工程cを集合Cから取得したうえで(S1480)、集合Cが空集合かどうかを判断する(S1490)。Cが空集合であれば(S1490:YES)、第3決定部620は、本図の処理を終了する。Cが空集合でなければ(S1490:NO)、第3決定部620は、S1410に処理を戻して集合Cに含まれる他の工程についての判断を行う。
このように、第1決定部610および第2決定部640、ならびに、第3決定部620自体によって新たに処理順序が1つ決定されるたびに、第3決定部620は、その処理順序および既に決定された他の処理順序に推移法則を適用して新たな処理順序を決定することができる。これにより、ある工程の組についてその処理順序を推移的に決定できるにもかかわらず未決定としてその後の処理を行うことを防止し、処理順序の循環などの矛盾の発生を防止できる。
以上、図7から図14を参照して工程の処理順序を決定する処理の流れを説明したが、図中で用いられる集合C、工程a、b、cなどのシンボルは、それが定義された処理ステップを含む図中でのみ有効であり、引数や戻り値などの明示がある場合を除き、他の図で定義された同一のシンボルとは無関係である。即ちこれらは、これらの処理をプログラム言語を用いて実装した場合の局所変数・プライベート変数としての役割を果たす。一方で、doBeforeやtなどの、記憶装置110に記憶されるものとして予め定義したデータは、複数の図の処理に渡って普遍的に存在するものである。即ちこれらは、これらの処理をプログラム言語を用いて実装した場合の大域変数・公開変数としての役割を果たす。
図15aは、本実施の形態に係る決定システム10により生成された部分順序データ150の一例を示す。図15bは、部分順序データ150において工程の配列順序をその処理順序に並べ替えて示す。ここで部分順序データ150として示す数値は、上述の説明で用いた関数doBeforeの値である。doBeforeの第1引数に相当する工程の識別子を列方向に、doBeforeの第2引数に相当する工程の識別子を行方向に、それぞれ配列している。例えば、doBefore[b][d]は、b行d列の要素、即ち数値1である。これは、工程bを工程dよりも先に処理すると決定されたことを示す。
部分順序データ150を参照すると、工程bを最初に処理して、その次に、d、a、c、i、j、k、m、n、q、r、w、l、yをこの順に処理することが決定されている。また、工程h、gをこの順に最後に処理することが決定されている。また、工程yの後であって工程hより先に、工程e、f、s、t、u、v、o、x、p、zを処理することは決定されているが、これらの工程の間の処理順序は部分的にしか決定されていない。これらの集合を、第1決定部610、第3決定部620および第2決定部640によっては処理順序が決定しなかった、未決定集合と呼ぶ。続いて、スケジュール部650は、この未決定集合の中における工程の処理順序を、他の方法によって決定する。この結果として決定された処理順序が処理順序データ160である。
図16は、本実施の形態に係る決定システム10により生成された処理順序データ160の一例を示す。図は、各工程の配列順序を決定された処理順序と同じになるように並べ替えたうえで、修正処理に要する所要時間の期待値を示している。対角線の左下に示す数値が、各工程の組ごとに発生する修正処理の所要時間の期待値である。例えば工程i、jをこの順に処理した場合において、発生する修正処理の所要時間の期待値は8時間である。スケジュール部650は、処理順序データ160として示すこの表形式のデータを、画面に表示してもよい。これにより、画面を参照したエンジニアは、自動車等の製品を設計するための最適な順序を把握して、設計作業の効率化に役立てることができる。さらに、スケジュール部650は、修正処理の所要時間の期待値の合計を、対角線の左下に示す数値を合計することによって算出し、この表形式のデータと共に表示してよい。この例の場合は、合計時間である114時間が表示される。
以上、図1から図16を参照して説明した決定システム10によれば、予め定められた工程の集合のうちの多くの部分について、その最適な処理順序を、第1決定部610および第2決定部640等による極めて迅速な処理によって決定することができる。これにより、探索空間を狭めて最適順序を探し出し易くすることができる。例えば、残りの工程については、全数探索などの従来手法によっても現実的な時間で最適な処理順序を決定でき、あるいは、人手による試行錯誤によっても適切な処理順序を決定することができる。
続いて、図17−20を参照して、スケジュール部650が未決定集合の中の工程の処理順序までをも、更に効率的に決定する処理について説明をすすめる。
図17は、本実施の形態に係るスケジュール部650が読み出す未決定データ170の一例を示す。スケジュール部650は、まず、未決定データ170として例示するように、部分順序データ150のうち未決定集合内の工程に対応する部分を選択して記憶装置110から読出し、また、期待値データ50のうち未決定集合内の工程に対応する部分を選択して記憶装置110から読み出す。未決定データ170を参照すると、工程s、t、u、vをこの順に処理することは決定済みであるが、これらの工程を未決定集合の中で最初に処理するのか、最後に処理するのか、あるいは、これらの工程の間に他の工程を処理するのかは決定されていない。また、工程oより工程pを後に処理することは決定済みであるが、これらの工程を未決定集合の中で何番目に処理するのかは決定されていない。
スケジュール部650は、この未決定データ170に基づいて、第1決定部610および第2決定部640を再帰的に利用しながら、未決定集合中の工程の処理順序を決定してゆく。
図18は、本実施の形態に係るスケジュール部650の処理の概要を示す。スケジュール部650は、未決定集合{efstuvoxpz}に含まれる各工程について、その工程を未決定集合の中で最初に処理すると仮定し、その各仮定における未決定集合内の最適な処理順序を決定する。即ち例えば、まず、工程eを最初に処理すると仮定して、その残りの工程の最適な処理順序を決定する。次に、工程fを最初に処理すると仮定して、その残りの工程の最適な処理順序を決定する。但し、未決定データ170に従うと工程t、u、v、pは最初に処理しないことが決定済みなので、これらの工程を最初に処理するという仮定は行わない。
続いて、各仮定における最適な処理順序を決定する手法について説明する。スケジュール部650は、未決定データ170にある仮定を加えた場合における未決定集合中の処理順序を生成して、部分問題データ175とする。その一例を図19に示す。
図19は、本実施の形態に係るスケジュール部650が出力する部分問題データ175の一例を示す。工程eを最初に処理すると決定した結果、工程eは未決定集合中の他の何れの工程よりも先に処理されることが決定される。即ちdoBefore[e][f]やdoBefore[e][s]などは全て1になる。スケジュール部650は、このような部分問題データ175を生成して記憶装置110に格納する。そして、スケジュール部650は、順序制約データ40に代えて部分問題データ175を参照させるように設定したうえで、第1判断部600、第1決定部610、第3決定部620、第2判断部630および第2決定部640に図1から図16を参照して説明した処理と同様の処理を再帰的に行わせる。この結果、それぞれの仮定に対応して最適な処理順序が決定され得る。スケジュール部650は、このようにして決定された最適な処理順序のそれぞれについて、修正処理の所要時間の期待値を算出する。そして、スケジュール部650は、算出した期待値が最も短い処理順序を選択して出力する。
以上、図17−図19を参照して説明したように、スケジュール部650は、新たな仮定を加えて一部の処理順序を決定することで、未決定集合内の工程の処理順序までをも第1判断部600、第1決定部610、第3決定部620、第2判断部630および第2決定部640により決定させることができる。これにより、一部の工程のみならず全てについて、極めて効率的に最適な処理順序を決定することができる。
図20は、本実施の形態に係る決定システム10として機能するコンピュータのハードウェア構成の一例を示す。コンピュータは、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ1040は、コンピュータが使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、コンピュータの起動時にCPU1000が実行するブートプログラムや、コンピュータのハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
コンピュータに提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して、記録媒体から読み出されコンピュータにインストールされて実行される。プログラムがコンピュータ等に働きかけて行わせる動作は、図1から図19において説明した決定システム10における動作と同一であるから、説明を省略する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータに提供してもよい。
以上、図1から図20を参照して説明したように、本実施の形態に係る決定システム10によれば、内容が高度なため依存関係が複雑な複数の工程の処理順序を、その所要時間を最小化するように決定することができる。この決定には、工程の数(即ち設計のために決定しなければならない要素の数)に応じて指数関数的に計算時間が増加する全数探索などの手法と比較して、極めて高速に完了する。したがって、自動車設計などの実際の製品設計に適用することで、その開発期間を短縮し、または、余剰期間を追加機能の開発や品質向上に充当することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることのできることが当業者にとって明らかである。例えば、第1−第3条件の判断順序は上記の例に限定されるものではなく、各条件の判断を繰り返し行うものであれば、他の順序であってよい。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、本実施の形態に係る決定システム10の全体構成を示す。 図2aは、本実施の形態に係る確率データ20のデータ構造の第1例を示す。 図2bは、本実施の形態に係る確率データ20のデータ構造の第2例を示す。 図3aは、本実施の形態に係る処理時間データ30のデータ構造の第1例を示す。 図3bは、本実施の形態に係る処理時間データ30のデータ構造の第2例を示す。 図4は、本実施の形態に係る順序制約データ40のデータ構造の一例を示す。 図5は、本実施の形態に係る期待値データ50のデータ構造の一例を示す。 図6は、本実施の形態に係る本体部120の機能構成を示す。 図7は、本実施の形態に係る決定システム10の処理段階の概要を示すフローチャートである。 図8は、S705における処理の詳細を示すフローチャートである。 図9aは、S830における処理の詳細を示すフローチャートである。 図9bは、第1条件を満たすかどうかの判断を示す概念図である。 図10は、S720における処理の詳細を示すフローチャートである。 図11aは、S730における処理の詳細を示すフローチャートである。 図11bは、第3条件を満たすかどうかの判断を示す概念図である。 図12aは、S1140における処理の詳細を示すフローチャートである。 図12bは、第3条件の充足を効率的に判断するための工夫を示す概念図である。 図13は、S750における処理の詳細を示すフローチャートである。 図14は、S704、S1050、S1060およびS1210として共通して機能する処理の詳細を示すフローチャートを示す。 図15aは、本実施の形態に係る決定システム10により生成された部分順序データ150の一例を示す。 図15bは、部分順序データ150において工程の配列順序をその処理順序に並べ替えて示す。 図16は、本実施の形態に係る決定システム10により生成された処理順序データ160の一例を示す。 図17は、本実施の形態に係るスケジュール部650が読み出す未決定データ170の一例を示す。 図18は、本実施の形態に係るスケジュール部650の処理の概要を示す。 図19は、本実施の形態に係るスケジュール部650が出力する部分問題データ175の一例を示す。 図20は、本実施の形態に係る決定システム10として機能するコンピュータのハードウェア構成の一例を示す。
符号の説明
10 決定システム
20 確率データ
30 処理時間データ
40 順序制約データ
50 期待値データ
100 入力部
110 記憶装置
120 本体部
150 部分順序データ
160 処理順序データ
170 未決定データ
175 部分問題データ
600 第1判断部
610 第1決定部
620 第3決定部
630 第2判断部
640 第2決定部
650 スケジュール部

Claims (16)

  1. 複数の工程の処理順序を決定するシステムであって、
    工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために生じる修正処理の所要時間の期待値を記憶している記憶装置と、
    第1の工程より後に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より先に処理した方がその第2の工程より後に処理するよりも修正処理の所要時間が短いという、第1条件が満たされるか否かを、前記記憶装置から読み出した各期待値に基づき判断する第1判断部と、
    第1条件が満たされる場合に、第1の工程をそれぞれの第2の工程より先に処理すると決定する第1決定部と、
    第1の工程より後であって第2の工程より先に処理し得る工程、または、第2の工程より後であって第1の工程より先に処理し得る工程の集合Cについて、この集合Cの何れの部分集合についても、第1の工程、当該部分集合内の各工程、および、第2の工程をこの順に処理した方が、第2の工程、当該部分集合内の各工程、および、当該第1の工程をこの順に処理するよりも、設計変更の所要時間を短縮できるという、第3条件が満たされるかを、前記記憶装置から読み出した各期待値に基づいて判断する第2判断部と、
    第3条件が満たされる場合に、第1の工程を第2の工程より先に処理すると決定する第2決定部と、
    前記第1決定部および前記第2決定部により決定された処理順序に従う範囲内で、他の工程の処理順序を決定して、決定した処理順序を出力するスケジュール部と
    を備えるシステム。
  2. 前記複数の工程は、ある製品を設計するために予め定められたものであり、
    それぞれの工程は、その製品の一部分の設計を決定し、または、その製品の生産工程の一部分の設計を決定するものであり、
    前記記憶装置は、工程の組ごとに、一方の工程より後の他方の工程を処理した場合にその一方の工程において決定した設計を他方の工程において決定した設計と整合させるために生じる設計変更の所要時間の期待値を記憶している
    請求項1に記載のシステム。
  3. 前記第1判断部は、さらに、第1の工程より先に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より後に処理した方がその第2の工程より先に処理するよりも修正処理の所要時間が短いという、第2条件が満たされるか否かを判断し、
    前記第1決定部は、第2条件が満たされる場合に、第1の工程をそれぞれの第2の工程より後に処理すると決定する
    請求項1または請求項2に記載のシステム。
  4. 前記第1判断部は、他の工程との間の処理順序が未決定の各工程を順次第1の工程とし、その第1の工程が前記第1条件および前記第2条件の何れかを満たすか判断する処理を、前記第1条件および前記第2条件の何れかを満たす第1の工程がなくなるまで繰り返し
    前記第1決定部は、前記第1判断部により前記第1条件および前記第2条件のいずれかが満たされると判断されるたびに、第1の工程およびそれぞれの第2の工程の間の処理順序を決定する
    請求項3に記載のシステム。
  5. 前記記憶装置は、さらに、ある工程を他の工程よりも先に処理しなければならないことを示す順序制約を記憶しており、
    前記第1判断部は、前記記憶装置から読み出した順序制約に基づき、その順序制約および既に決定した処理順序に従う範囲内で、第1の工程より先または後に処理し得る第2の工程を検索し、第1条件または第2条件を満たすか否かを判断し、
    前記第2判断部は、前記記憶装置から読み出した順序制約に基づき、その順序制約および既に決定した処理順序に従う範囲内で、第1の工程より後であって第2の工程より先に処理し得る工程、または、第2の工程より後であって第1の工程より先に処理し得る工程の集合を検索し、第3条件を満たすか判断する
    請求項1から4のいずれかに記載のシステム。
  6. 前記第2判断部は、それぞれの工程の組を順次第1の工程および第2の工程とし、その第1の工程および第2の工程の組が第3条件を満たすか判断する処理を、第3条件を満たす第1の工程および第2の工程の組がなくなるまで繰り返し、
    前記第2決定部は、前記第2判断部により前記第3条件が満たされると判断されるたびに、第1の工程および第2の工程の間の処理順序を決定する
    請求項4に記載のシステム。
  7. 前記第1判断部は、前記第2決定部により処理順序が決定された後に、さらに、他の工程との間で処理順序が未決定の各工程を順次第1の工程とし、その第1の工程が前記第1条件および前記第2条件の何れかを満たすか判断する処理を、前記第1条件および前記第2条件の何れかを満たす第1の工程がなくなるまで繰り返し、
    前記第2判断部は、前記第1決定部により処理順序が決定された後に、さらに、相互の処理順序が未決定の工程の各組を順次第1の工程および第2の工程とし、その第1の工程および第2の工程の組が第3条件を満たすか判断する処理を、第3条件を満たす第1の工程および第2の工程の組がなくなるまで繰り返し、
    前記スケジュール部は、前記第1判断部および前記第2判断部により繰り返された判断に基づき前記第1決定部および前記第2決定部により処理順序が決定されたことに応じて、決定されたその処理順序に従う範囲内で、他の工程の処理順序を決定する
    請求項4または6に記載のシステム。
  8. 前記第2判断部は、
    第2の工程を第1の工程より先に処理する場合と比較して、第1の工程を第2の工程より先に処理することで短縮できる設計変更の所要時間の期待値を算出し、
    前記集合Cに含まれる工程のうち、第1の工程より後かつ第2の工程より先に処理する場合と比較して第2の工程より後かつ第1の工程より先に処理することにより、設計変更の所要時間の期待値を増加させる各々の工程について、その期待値の増分を算出し、
    前記の短縮できる所要時間の期待値が前記の期待値の増分の合計以上であることを条件に、第3条件を満たすと判断する
    請求項1から7のいずれかに記載のシステム。
  9. 前記第1決定部および前記第2決定部の少なくとも何れかによって第1の工程および第2の工程の間の処理順序が新たに決定されたことに応じ、第1の工程より先に処理することが既に決定されている第3の工程を、第2の工程より先に処理すると決定し、第2の工程より後に処理することが既に決定されている第4の工程を、第1の工程より後に処理すると決定する第3決定部を更に備える、請求項1から8のいずれかに記載のシステム。
  10. 前記記憶装置は、さらに、第1の工程を第2の工程よりも先に処理しなければならないことを示す順序制約を複数記憶しており、
    前記第3決定部は、ある順序制約に規定された前記第1の工程より先に処理することが他の順序制約により規定されている第3の工程を、当該順序制約に規定された前記第2の工程より先に処理すると決定し、当該第2の工程より後に処理することが他の順序制約により規定されている第4の工程を、当該第1の工程より後に処理すると決定する、請求項9に記載のシステム。
  11. 前記スケジュール部は、
    前記第1決定部および前記第2決定部によっては処理順序が決定しなかった工程の集合である未決定集合に含まれる各工程について、その工程を未決定集合の中で最初に処理すると仮定した場合におけるその未決定集合の中における各工程の処理順序を、前記第1決定部および前記第2決定部により決定し、
    決定した各処理順序のうち、設計変更による所要時間の期待値が最も小さい処理順序を選択して出力する
    請求項1から10のいずれかに記載のシステム。
  12. 前記複数の工程は、自動車を設計するために予め定められたものであり、
    それぞれの工程は、その自動車の部品の形状および材料の少なくとも一部を決定し、または、その自動車の生産工程の少なくとも一部を決定するものであり、
    前記記憶装置は、工程の組ごとに、一方の工程より後の他方の工程を処理した場合にその一方の工程において決定した設計を他方の工程において決定した設計と整合させるために生じる設計変更の所要時間の期待値を記憶しており、
    前記スケジュール部は、前記第1決定部により決定された処理順序に従う範囲内で、他の工程の処理順序を決定して、決定した処理順序を自動車の設計順序として出力する
    請求項1から11のいずれかに記載のシステム。
  13. 工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために修正処理が生じる確率の入力、および、その一方の工程の結果をその他方の工程の結果に整合させるための処理時間の入力を受け付け、工程の組ごとに受け付けた確率および所要時間の積を算出し、処理時間の期待値として前記記憶装置に格納する、入力部を更に備える請求項1から12のいずれかに記載のシステム。
  14. 複数の工程の処理順序を決定するシステムであって、
    工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために生じる修正処理の所要時間の期待値を記憶している記憶装置と、
    第1の工程より先に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より後に処理した方がその第2の工程より先に処理するよりも修正処理の所要時間の期待値が短縮できるという、第2条件を満たすか否かを、前記記憶装置から読み出した各期待値に基づき判断する第1判断部と、
    第2条件を満たす場合に、第1の工程をそれぞれの第2の工程より後に処理すると決定する第1決定部と、
    第1の工程より後であって第2の工程より先に処理し得る工程、または、第2の工程より後であって第1の工程より先に処理し得る工程の集合Cについて、集合Cの何れの部分集合についても、第1の工程、当該部分集合内の各工程、および、第2の工程をこの順に処理した方が、第2の工程、当該部分集合内の各工程、および、当該第1の工程をこの順に処理するよりも、設計変更の所要時間の期待値を短縮できるという、第3条件を満たすかを、前記記憶装置から読み出した各期待値に基づいて判断する第2判断部と、
    第3条件を満たす場合に、第1の工程を第2の工程より先に処理すると決定する第2決定部と、
    前記第1決定部および前記第2決定部により決定された処理順序に従う範囲内で、他の工程の処理順序を決定して、決定した処理順序を出力するスケジュール部と
    を備えるシステム。
  15. 複数の工程の処理順序を決定するシステムとしてコンピュータを機能させるプログラムであって、
    工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために生じる修正処理の所要時間の期待値を記憶している記憶装置を有するコンピュータを、
    第1の工程より後に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より先に処理した方がその第2の工程より後に処理するよりも修正処理の所要時間が短いという、第1条件が満たされるか否かを、前記記憶装置から読み出した各期待値に基づき判断する第1判断部と、
    第1条件が満たされる場合に、第1の工程をそれぞれの第2の工程より先に処理すると決定する第1決定部と、
    第1の工程より後であって第2の工程より先に処理し得る工程、または、第2の工程より後であって第1の工程より先に処理し得る工程の集合Cについて、集合Cの何れの部分集合についても、第1の工程、当該部分集合内の各工程、および、第2の工程をこの順に処理した方が、第2の工程、当該部分集合内の各工程、および、当該第1の工程をこの順に処理するよりも、設計変更の所要時間の期待値を短縮できるという、第3条件を満たすかを、前記記憶装置から読み出した各期待値に基づいて判断する第2判断部と、
    第3条件を満たす場合に、第1の工程を第2の工程より先に処理すると決定する第2決定部と、
    前記第1決定部および前記第2決定部により決定された処理順序に従う範囲内で、他の工程の処理順序を決定して、決定した処理順序を出力するスケジュール部と
    して機能させるプログラム。
  16. 複数の工程の処理順序をコンピュータにより決定する方法であって、
    前記コンピュータは、工程の組ごとに、一方の工程より後に他方の工程を処理した場合にその一方の工程の結果をその他方の工程の結果に整合させるために生じる修正処理の所要時間の期待値を記憶している記憶装置を有し、
    第1の工程より後に処理し得る第2の工程の何れについても、第1の工程をその第2の工程より先に処理した方がその第2の工程より後に処理するよりも修正処理の所要時間が短いという、第1条件が満たされるか否かを、前記記憶装置から読み出した各期待値に基づき判断するステップと、
    第1条件が満たされる場合に、第1の工程をそれぞれの第2の工程より先に処理すると決定するステップと、
    第1の工程より後であって第2の工程より先に処理し得る工程、または、第2の工程より後であって第1の工程より先に処理し得る工程の集合Cについて、集合Cの何れの部分集合についても、第1の工程、当該部分集合内の各工程、および、第2の工程をこの順に処理した方が、第2の工程、当該部分集合内の各工程、および、当該第1の工程をこの順に処理するよりも、設計変更の所要時間の期待値を短縮できるという、第3条件を満たすかを、前記記憶装置から読み出した各期待値に基づいて判断するステップと、
    第3条件を満たす場合に、第1の工程を第2の工程より先に処理すると決定するステップと、
    これらのステップにより決定された処理順序に従う範囲内で、他の工程の処理順序を決定して、決定した処理順序を出力するステップと
    を備える方法。
JP2007143969A 2007-05-30 2007-05-30 工程の処理順序を決定するシステム、プログラムおよび方法 Expired - Fee Related JP4386456B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007143969A JP4386456B2 (ja) 2007-05-30 2007-05-30 工程の処理順序を決定するシステム、プログラムおよび方法
US12/127,276 US8201174B2 (en) 2007-05-30 2008-05-27 Technique of determining performing order of processes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007143969A JP4386456B2 (ja) 2007-05-30 2007-05-30 工程の処理順序を決定するシステム、プログラムおよび方法

Publications (2)

Publication Number Publication Date
JP2008299531A JP2008299531A (ja) 2008-12-11
JP4386456B2 true JP4386456B2 (ja) 2009-12-16

Family

ID=40089769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007143969A Expired - Fee Related JP4386456B2 (ja) 2007-05-30 2007-05-30 工程の処理順序を決定するシステム、プログラムおよび方法

Country Status (2)

Country Link
US (1) US8201174B2 (ja)
JP (1) JP4386456B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142132B2 (ja) * 2007-11-01 2013-02-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 設計プロセスの順序の決定を支援する技術
JP4655145B2 (ja) * 2008-12-16 2011-03-23 富士ゼロックス株式会社 プログラム及び情報処理装置
WO2012053059A1 (ja) * 2010-10-19 2012-04-26 株式会社日立製作所 設計支援装置
JP2013242761A (ja) * 2012-05-22 2013-12-05 Internatl Business Mach Corp <Ibm> マルコフ決定過程システム環境下における方策パラメータを更新するための方法、並びに、その制御器及び制御プログラム
WO2015162711A1 (ja) * 2014-04-23 2015-10-29 株式会社日立製作所 設計プロセス決定支援装置
WO2019013225A1 (ja) * 2017-07-14 2019-01-17 パナソニックIpマネジメント株式会社 表示装置、製造システム及び表示方法
JP7311373B2 (ja) * 2019-09-20 2023-07-19 株式会社日立製作所 計算機システム、計画の生成方法、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05174092A (ja) 1991-12-25 1993-07-13 Toshiba Corp 回路設計支援装置
JP3107207B2 (ja) 1998-07-13 2000-11-06 日本電気株式会社 論理回路改善方法および論理回路改善方式
JP2000235591A (ja) 1999-02-15 2000-08-29 Kobe Steel Ltd 壁パネル配置設計方法及びその装置
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
JP2003030395A (ja) 2001-07-10 2003-01-31 Toshiba Corp プロジェクト管理方法及び装置及びプログラム及び記録媒体
EP1376412B1 (en) 2002-06-21 2009-08-12 Honda Research Institute Europe GmbH Autonomous experimental design optimization
JP4319007B2 (ja) 2003-10-31 2009-08-26 トヨタ自動車株式会社 開発工期短縮支援方法

Also Published As

Publication number Publication date
US20080301679A1 (en) 2008-12-04
US8201174B2 (en) 2012-06-12
JP2008299531A (ja) 2008-12-11

Similar Documents

Publication Publication Date Title
JP4386456B2 (ja) 工程の処理順序を決定するシステム、プログラムおよび方法
US11741361B2 (en) Machine learning-based network model building method and apparatus
Schmidt et al. Optimization methods for l1-regularization
US20220121903A1 (en) Method of performing splitting in neural network model by means of multi-core processor, and related product
CN1834903B (zh) 使文本适合于图形内形状的方法和系统
CN110612513B (zh) 用于使用可变级并行执行数据处理操作的系统和方法
EP3076310B1 (en) Variable virtual split dictionary for search optimization
US6735600B1 (en) Editing protocol for flexible search engines
JP2020123270A (ja) 演算装置
CN115237410A (zh) 一种用户界面的生成方法及装置
WO2022078400A1 (zh) 一种对多维数据进行处理的设备、方法和计算机程序产品
CN109472364B (zh) 量子程序的处理方法及装置、存储介质和电子装置
Cristofari An almost cyclic 2-coordinate descent method for singly linearly constrained problems
Stout Strict L∞ isotonic regression
US8127259B2 (en) Synthesis constraint creating device, behavioral synthesis device, synthesis constraint creating method and recording medium
KR20230132369A (ko) 양자 회로에서의 리소스 감소
US11676002B2 (en) Neural network accelerating method and device with efficient usage of total video memory size of GPUs
CN115828992A (zh) 处理神经网络模型的方法
Sampaio DEFT-FUNNEL: an open-source global optimization solver for constrained grey-box and black-box problems
CN114391151A (zh) 增强自然语言生成平台
Huybers et al. A parallel relation-based algorithm for symbolic bisimulation minimization
JP5478936B2 (ja) 情報処理装置、情報処理方法
KR102529184B1 (ko) Cnn 기반 ai 모델의 누산 방법 및 장치
US20220343572A1 (en) Systems and methods for converting composite image data
US20220309556A1 (en) Vehicular search recommendations using machine learning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090515

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090518

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090819

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090915

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090916

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090928

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131009

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees