machine.【0004】有限状態機械の状態数を最小化するという問題は古くから様々な研究が行われているが、与えられる有限状態機械の記述が不完全な場合(不完全指定の場合)には問題が複雑になる。従って状態数の多い有限状態機械の場合には、現実的な計算時間では解が求まらないことが多い。そこでより高速な状態数最小化方法が必要とされている。needed.【0005】不完全指定を含む有限状態機械の状態数を最小化する従来の方法は、次の2つの論文に記述されている。有限状態機械の状態数最小化方法に関する先願については、次の2つがある。対象とする本発明とは直接関係がない。is,基本的に上述の2つの論文(a)、(b)の手法に基づいたものである。(b)の手法を従来技術として、有限状態機械の具体例をあげて説明する。machine.【0007】従来より、有限状態機械の状態数を最小化するために、与えられた状態のグループ化の候補に対応するプライム・コンパチブルをすべて計算する方法が採られている。得られたプライム・コンパチブルの中からすべての状態を含む最小閉包集合を求めることにより、状態数の最小化を行っている。states.【0008】図18は、1つの有限状態機械の状態遷移表を示している。有限状態機械は、通常、このような状態遷移を表す情報により与えられる。)は現在の状態を表し、各行のA、B、C、D、E、Fは有限状態機械の複数の状態の各々に対応する。2はそれぞれ特定の入力を表す。State)と出力zが“NS,z”のように記されている。Aが入力されると次状態Eに遷移し、0が出力されることを表す。状態遷移表中の“−”は、出力zの値が指定されていないことを示している。値と呼ばれ、それがどのような値でもよいことを意味する。したがって、状態数が少なくなるように、その値を適当に決めることができる。すべてのセルが完全に指定されていて、ドントケア値が含まれない。1に対しては出力がそれぞれドントケア値および1である。1に対しては(C,E)自身である。Eは1つの状態にまとめることが可能である。1に対する出力のドントケア値を1に置き換えればよい。これらの状態C、Eのように、2つの状態を1つの状態にまとめることができるとき、それらの状態はコンパチブル(compatible:両立的)であるという。1に対して次状態が異なり、かつ、次状態対が(A,B)自身でもない。したがって、AとBがコンパチブルであるためには、対応する次状態どうしがコンパチブルでなければならない。AとBがコンパチブルであるためには、EとFもコンパチブルでなければならない。I1に対してそれぞれの出力が異なり、1つの状態にまとめることができない。(Incompatible:非両立的)であるという。manner).【0012】さらに、2つ以上の状態の集合に対しては、その集合内の任意の2つの状態の組がコンパチブルのとき、その状態集合はコンパチブルであるといい、コンパチブルでない状態集合はインコンパチブルであるという。以下、コンパチブルな状態集合のことを単にコンパチブルと呼ぶ。table)を示している。マージャ・テーブルは、有限状態機械の各状態を行および列に割り当てた表で、表の各エントリには、対応する状態対がコンパチブルでないときには×印、コンパチブルのときにはそのインプライド・ペアが記入される。1]【0015】マージャ・テーブルのエントリに記されたインプライド・ペアがインコンパチブルであれば、そのエントリの行と列に対応する状態対もインコンパチブルとなる。この場合には、そのエントリを×に書き直す必要がある。インコンパチブルなインプライド・ペアを持つエントリがなくなるまで、このような更新を繰り返し行うことにより、マージャ・テーブルが簡約化される。simplification.例えば、図19のマージャ・テーブルにおいては、状態Dを行としBを列とするエントリは×であるため、状態対(B,D)はインコンパチブルであることが分かる。compatible.したがって、状態対(B,D)をインプライド・ペアとして持つ状態対(D,F)もまたインコンパチブルである。インコンパチブルな状態対(D,F)をインプライド・ペアとして持つ状態対(B,F)もまたインコンパチブルとなる。これらの更新を行った結果、マージャ・テーブルは図20に示すようになる。20.【0016】図20のマージャ・テーブルからコンパチブルなすべての状態対が確認できる。状態対(A,B)、(A,C)、(B,C)はすべてコンパチブルであるから、これらの状態から構成される集合{A,B,C}はコンパチブルである。other,極大なコンパチブルを求めることができる。ここで、極大なコンパチブルとは、他のいかなるコンパチブルにも真に包含されることのないコンパチブルを意味する。D,E}、{C,E,F}となる。コンパチブルの定義より、極大コンパチブルの任意の部分集合もまたコンパチブルであり、すべてのコンパチブルはある極大コンパチブルの部分集合である。2に対するインプライド・セットは{B,C}である。set).【0018】(1)そのコンパチブル自身に含まれない。(2)他のインプライド・セットに含まれない。コンパチブル{C,E,F}のクラス・セットは{{C,D,E},{B,C}}である。1つの状態にまとめ得る状態集合の候補となる。example,コンパチブル{C,E,F}を解に含めるということは、状態C、E、Fを1つの状態にまとめることを意味する。このとき、このコンパチブルのクラス・セットに含まれる各インプライド・セットについて、それを包含するコンパチブルが少なくとも1つこの解に含まれていなければならないというのがクラス・セットの制約による閉包性条件である。したがって、状態数の最小化とは、与えられた有限状態機械の各状態を含むコンパチブルが少なくとも1つ存在し、かつ、解に含められたコンパチブルの閉包性条件をすべて満足する、要素数最小のコンパチブルの集合を求めることである。compatible.【0020】コンパチブルの集合の中から最小解を1つだけ求めればよい場合には、解の候補としてすべてのコンパチブルは必ずしも必要ではない。{{D,E},{B,C}}であることが分かる。18よりコンパチブル{A,C,F}のクラス・セットもまた{{D,E},{B,C}}である。コンパチブル{C,F}の閉包性条件は{A,C,F}のそれと等価である。したがって、{C,F}を含む最小解において、そのかわりに{A,C,F}を含めても解の最小性は保証されるので、コンパチブル{C,F}を解の候補から除く(exclude)ことができる。このとき、コンパチブル{A,C,F}はコンパチブル{C,F}を支配するという。compatible)という。That.【0021】最大のコンパチブルの大きさをnとすると、大きさnのコンパチブルは他のコンパチブルに真に含まれることはないので、必ずプライム・コンパチブルである。したがって、大きさnのコンパチブルをすべてプライム・コンパチブルを要素とする集合に含める。それと共に、それらのクラス・セットも求めておく。図18の有限状態機械の場合は最大コンパチブルの大きさは3であり、それらのプライム・コンパチブルとクラス・セットは、図21に示すようになる。21.【0022】次に、大きさn−1のコンパチブルを順に生成していき、今までに生成したプライム・コンパチブルに支配されていなければ、それらをプライム・コンパチブルの集合に含める。このとき、大きさn−1のコンパチブルは、大きさnのコンパチブルの部分集合として生成されるか、大きさn−1の極大コンパチブルとして生成されるかのいずれかである。プライム・コンパチブルの集合に含めるものについてはクラス・セットを求めておく。大きさ2のプライム・コンパチブルとそれらのクラス・セットは、図22に示すようになる。here,プライム・コンパチブル{C,E}のクラス・セットはφ(空集合)となる。クラス・セットがφの場合、そのプライム・コンパチブルの部分集合は必ずそのプライム・コンパチブルに支配されるので、そのような部分集合は以降のコンパチブルの生成過程において生成する必要はない。later-compatible.【0023】以下同様にして、プライム・コンパチブルの大きさが1になるか、生成したすべてのプライム・コンパチブルのクラス・セットがφになるまで処理を繰り返す。その結果として、すべてのプライム・コンパチブルが生成される。図23は、生成されたすべてのプライム・コンパチブルとそれらのクラス・セットを示している。set.【0024】このようにして得られたプライム・コンパチブルの集合から、状態数が最小のプライム・コンパチブルの集合を求めるには、分枝限定法などの探索法が用いられる。分枝限定法とは、最適解の探索問題を部分問題に分割し、最適解を与えないと結論できるものを除いていく手法である。このような探索の結果、状態数が最小となる解が求められる。C},{C,D},{E,F}}である。{E,F}をγとおくと、対応する有限状態機械の状態遷移表は図24に示すようになる。18と異なり、すべての次状態と出力が完全に指定されている。[0025]【発明が解決しようとする課題】しかしながら、上述のような従来のプライム・コンパチブルの計算方法には次のような問題がある。problems.【0026】他のコンパチブルに支配されないコンパチブルであるプライム・コンパチブルを生成するためには、条件(4)に示すように、任意の2つのコンパチブルのクラス・セットどうしの包含関係を調べる必要がある。クラス・セットは、与えられた有限状態機械の状態の集合を1つの要素とする集合である。したがって、一般に、集合の集合であるクラス・セットどうしの包含関係を調べることは容易ではなく、これを行うことは計算時間の増大につながる。this.【0027】本発明は、有限状態機械の状態集合の任意の集合どうしの包含性判定をすることなく、より効率的にプライム・コンパチブルを計算して、状態数の最小化を行う装置および方法を提供することを目的とする。[0028]【課題を解決するための手段】図1は、本発明の状態数最小化装置の原理図である。4、出力手段5、およびシグネチャ計算手段6を備える。関する第1の状態遷移情報を入力する。コンパチブル生成手段2は、第1の状態遷移情報から第1のプライム・コンパチブル集合を生成する。information.【0030】シグネチャ計算手段6は、第1のプライム・コンパチブル集合内の任意の状態対について、第1のプライム・コンパチブル集合に含まれないインプライド・ペアを第1の状態遷移情報から求め、各インプライド・ペアを次の状態対として持つ各状態対に含まれる状態から構成される状態集合を生成し、生成された状態集合のうち、他の状態集合を含まない状態集合を、第1のプライム・コンパチブル集合のシグネチャとして求める。set,シグネチャを含む部分集合が排除されたプライム・コンパチブル集合の解を生成する。4は、上記プライム・コンパチブル集合の解をもとに状態数を削減し、出力手段5は、削減された状態により表現される第2の状態遷移情報を出力する。Primeコンパチブル集合の代わりに第3のプライム・コンパチブル集合を用いて、第3のプライム・コンパチブル集合のシグネチャを求める。コンパチブル排除手段3は、プライム・コンパチブル集合の解に含まれる部分集合のうち、第3のプライム・コンパチブル集合にも含まれる部分集合が、第3のプライム・コンパチブル集合のシグネチャを含むか否かを調べ、第3のプライム・コンパチブル集合のシグネチャを含む部分集合を、プライム・コンパチブル集合の解から排除する。4、およびシグネチャ計算手段6は、演算処理装置12およびデータ記憶装置13に対応する。[0036]【作用】コンパチブル生成手段2は、入力手段1が入力した多数の状態を含む第1の状態遷移情報から第1および第3のプライム・コンパチブル集合を生成する。これらのプライム・コンパチブル集合は、例えば第1の状態遷移情報に含まれる複数の状態の極大コンパチブル集合として生成される。第1のプライム・コンパチブル集合の各部分集合を、新たなプライム・コンパチブル集合の候補として解に含める。set.【0037】コンパチブル排除手段3は、プライム・コンパチブル集合の候補である各部分集合が第1のプライム・コンパチブル集合のシグネチャを含むか否かを調べ、その結果により、各部分集合をプライム・コンパチブル集合の解から排除するかどうかを決める。ある部分集合がシグネチャを含めば、これをプライム・コンパチブル集合の解から排除し、シグネチャを含まなければ第2のプライム・コンパチブル集合としてプライム・コンパチブル集合の解に残す。signature.【0038】さらに、コンパチブル生成手段2が生成した第3のプライム・コンパチブル集合がある部分集合を含む時、コンパチブル排除手段3は、その部分集合が第3のプライム・コンパチブル集合のシグネチャを含むか否かを調べて、その部分集合を残すかどうかを決める。itコンパチブル集合の解から排除し、シグネチャを含まなければプライム・コンパチブル集合の解に残す。4は、それに含まれる状態数を分岐限定法等により削減し、第2の状態遷移情報を生成することができる。出力手段5が出力した第2の状態遷移情報から、対応する論理回路等を合成することもできる。newコンパチブル集合になり得るかどうかが容易に判定される。したがって、従来のようにクラス・セットどうしの包含関係を調べる必要がなく、計算時間が短縮される。primeコンパチブル集合の各部分集合が他のコンパチブル集合に支配されるかどうかをほぼ正確に判定することができる。コンパチブル排除手段3は、ある部分集合が第1または第3のプライム・コンパチブル集合のシグネチャを含めば、これを被支配コンパチブル集合と判断し、プライム・コンパチブル集合の解から排除する。シグネチャを用いればプライム・コンパチブル集合のみを残すことができる理由については、実施例において詳しく説明する。参照しながら、本発明の実施例について詳細に説明する。図2は、実施例の状態数最小化装置の構成図である。13、プログラム記憶装置14、およびこれらの各装置を接続するバス20を備える計算機システムである。入出力装置11は、例えばキーボードやマウス等の入力装置とディスプレイ装置から成る計算機端末であり、有限状態機械の状態遷移表の入力や最小化された状態の状態遷移表の出力等を行う。CPU(中央処理装置)であり、データ記憶装置13に記憶されたデータを用いて、プログラム記憶装置14に格納された各種プログラムを実行し、演算等を行う。データ記憶装置13は、入力された状態遷移表や生成されるコンパチブル等のデータを記憶する。input.【0043】プログラム記憶装置14は、マージャ・テーブル作成プログラム15、極大コンパチブル生成プログラム16、シグネチャ生成プログラム17、コンパチブル生成プログラム18、および被支配コンパチブル排除プログラム19を格納している。マージャ・テーブル作成プログラム15は、状態遷移表の情報から与えられた状態のマージャ・テーブルを作成するプログラムであり、極大コンパチブル生成プログラム16は、マージャ・テーブルから極大コンパチブルを生成するプログラムである。シグネチャ生成プログラム17は、与えられたコンパチブルのシグネチャを生成するプログラムであり、コンパチブル生成プログラム18は、特定の条件の下でコンパチブルの部分集合を生成するプログラムである。19は、シグネチャ生成プログラム17が生成するシグネチャを用いて、コンパチブル生成プログラム18が生成するコンパチブルから他のコンパチブルに支配されるものを排除し、プライム・コンパチブルを算出するプログラムである。compatible.【0045】ここで、本発明で用いるシグネチャのより厳密な定義を与えることにする。最初に公知のクラス・セットの定義を述べる。条件を満足するすべてのインプライド・セットdからなる集合である。おいて、|d|はdの大きさを表す。このように定義されたCS(c)を用いると、コンパチブル同士の支配関係の定義は次のようになる。2つの条件を満たすとき、cはc′を支配するという。)なるものを導入する。classセットは次のように定義される。4]【0054】なるインプライド・ペアの集合をペアワイズ・クラス・セットと呼び、PWCS(c)と書く。このとき、次の定理が成り立つ。theorem.【0055】定理1:コンパチブルcがc′を支配するとき、以下の(5)、(6′)を満足する。定理1は、定義1の(6)が成り立つために(6′)が成り立つことが必要であることを意味している。1の証明は以下の通りである。条件(5)のもとで、定義1の(6)が成り立つときに(6′)が成り立つことを証明すればよい。5]【0058】c′)なるインプライド・ペアpが存在したとすると、CS(c)にはpを含むインプライド・セットが必ず存在する。6]【0060】るから、CS(c′)にはpを含むインプライド・セットは存在しない。CS(c′)となり、(6)に反する。7]【0062】6′)が成り立たなければ、(6)も成り立たない。ここで、条件(6′)の十分性について検討してみる。8]【0064】が存在したとする。c'⊂c,各入力に対して、cのインプライド・セットはc′のインプライド・セットを必ず包含する。したがって、qは次の2つの条件のうちいずれかを満足する。conditions.【0065】(α)qはCS(c′)内のどのインプライド・セットとも共通部分を持たない。(β)CS(c′)内にqを真に含むインプライド・セットrが存在する。9PWCS(c′)が成り立つ。'),(6′)に反する。10]【0070】成り立たなければ、(6′)も成り立たない。したがって、(6′)が成り立てば(6)が成り立ち、条件(5)のもとで、(6′)は(6)の十分条件となる。PWCS(c′)であるとは限らない。11]【0073】の十分性は保証されない。定理1は、コンパチブルcに含まれるあるコンパチブルc′がcに支配されるとき、c′はcのすべてのインプライド・ペアをインプライド・ペアとして持つことを示している。dで、以下を満たすものをcのシグネチャという。cに対するすべてのシグネチャからなる集合を表す。PWCS(c)に属するインプライド・ペアをインプライド・ペアとするような状態対に含まれる状態からなる極小集合である。したがって、シグネチャdを求める時には、まずコンパチブルc内の任意の状態対に対する次状態の状態対のうち、cに含まれるものを除外する必要がある。pride,ペアとする状態対から適当なものを選び、それらに含まれる状態からなる集合を生成すればよい。コンパチブルの1つのインプライド・ペアを複数の状態対がインプライしている場合、そのうちのどの1つをシグネチャに含めてもよいので、そのシグネチャは複数個存在することになる。signatureを書き換えると、次のようになる。コンパチブルcがc′を支配するとき、以下の(5)、(6′′)を満足する。定理2の証明は以下の通りである。条件(5)のもとで、定理1の(6′)が成り立つときに(6′′)が成り立つことを証明すればよい。したがって、(6′′)が成り立つ。(11).【0080】図3は、条件(11)におけるコンパチブルc、c′とシグネチャdの関係を示している。条件(11)および図3から、コンパチブルcのシグネチャdは、そのコンパチブルcと被支配コンパチブルc′とに共通に含まれることが分かる。thing,あるコンパチブルの部分集合がそのコンパチブルに支配されないことを、比較的容易に確認できる。各コンパチブルcのシグネチャdを用いて、条件(11)を満足するコンパチブルc′を被支配コンパチブルと推定して、それらをすべてのコンパチブルの中から除いていくことにより、プライム・コンパチブルの候補を削減することができる。dに対して条件(11)が成り立てば、そのときのコンパチブルc′が除外される。'を、{A,B}の被支配コンパチブルと推定する。そこで、これらをプライム・コンパチブルの候補から除外する。candidate.【0082】この方法では、あるコンパチブルの部分集合がそのコンパチブルに支配されることを完全には確認できないため、プライム・コンパチブルをいつも正確に求められるとは限らない。現実には、定理1の(6′)が成り立つ時には大抵定義1の(6)が成り立つ。Naritateの(6′)が成り立つので、定理2を用いてコンパチブルを除くことにより、プライム・コンパチブルをほぼ正確に求められると考えられる。したがって、有限状態機械の状態数を最小化する実用的な方法の1つとして有効である。2の状態数最小化装置によるプライム・コンパチブル計算処理について説明する。図4は、プライム・コンパチブル計算処理のフローチャートであり、図5は、図4のステップS6およびS12で行われるシグネチャ計算処理のフローチャートである。図6は、図4のステップS9およびS10で行われる被支配コンパチブル排除の例を示している。FIG.【0083】図4において処理が開始されると、まず入出力装置11から状態遷移表等の状態遷移に関する情報(状態遷移情報)が入力される(ステップS1)。次に、演算処理装置12は、マージャ・テーブル作成プログラム15を実行して、状態遷移情報からマージャ・テーブルを作成し(ステップS2)、極大コンパチブル生成プログラム16を実行して、極大コンパチブルを生成する(ステップS3)。13に格納する(ステップS5)。ステップS6においては、演算処理装置12はシグネチャ生成プログラム17を実行して、与えられたコンパチブルcのシグネチャを定義4に従って生成する。···,pmを生成する(ステップS21)。m)を構成する2つの状態が、コンパチブルcに同時に含まれることはない。次に、各インプライド・ペアpiを次状態対として持つc内の状態対の集合それぞれから1つずつ状態対を選択し、任意の状態対集合を生成する(ステップS22)。その状態対集合に含まれる各状態対を構成する状態を要素とする状態集合を生成する。cのシグネチャとする(ステップS23)。これらのシグネチャは、他の状態集合を含まないという意味において、極小な状態集合となっている。E},{C,E,F}が生成される(ステップS3)。これらの極大コンパチブルはすべて大きさが3であり、最大コンパチブルに相当する。したがって、n=3となり(ステップS4)、これらの極大コンパチブルが、図7に示すように、大きさ3のプライム・コンパチブルとなる(ステップS5)。これらのプライム・コンパチブルについて、シグネチャが求められる(ステップS6)。(B,C)と(D,E)である(ステップS21)。