JPH09160937A - 有限状態機械の状態数を削減する状態簡単化装置および方法 - Google Patents

有限状態機械の状態数を削減する状態簡単化装置および方法

Info

Publication number
JPH09160937A
JPH09160937A JP7324119A JP32411995A JPH09160937A JP H09160937 A JPH09160937 A JP H09160937A JP 7324119 A JP7324119 A JP 7324119A JP 32411995 A JP32411995 A JP 32411995A JP H09160937 A JPH09160937 A JP H09160937A
Authority
JP
Japan
Prior art keywords
compatible
state
sets
states
state machine
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.)
Withdrawn
Application number
JP7324119A
Other languages
English (en)
Inventor
Hiroyuki Higuchi
博之 樋口
Yusuke Matsunaga
裕介 松永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7324119A priority Critical patent/JPH09160937A/ja
Publication of JPH09160937A publication Critical patent/JPH09160937A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 有限状態機械の状態数を高速に削減して、状
態数が少ない良質な解を得ることを課題とする。 【解決手段】 入出力装置11は、有限状態機械の状態
遷移情報を入力し、演算処理装置12は、記憶装置13
内のプログラムを用いてそれを簡単化する。マージ表作
成プログラム14はマージ表を作成し、極大両立集合生
成プログラム15は極大両立集合の集合を初期解として
生成する。簡単化プログラム16は両立集合の縮小と拡
大を繰り返して必要な両立集合の数を削減し、変換プロ
グラム17は得られた両立集合の集合を状態遷移情報に
変換する。こうして更新された状態遷移情報は、入出力
装置11により出力される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、論理回路の合成に
用いられる不完全指定有限状態機械の状態数を削減する
ための装置および方法に関する。
【0002】
【従来の技術】近年の集積回路技術の進歩に伴い、より
大規模なシステムが論理回路として実現されるようにな
ってきている。そのため、大規模な順序回路の合成技術
はますます重要性を増している。その中で、順序回路の
仕様として与えられる有限状態機械の状態数最小化は最
も重要なステップのうちの一つである。有限状態機械の
状態数を最小化することにより、少ないフリップフロッ
プで順序回路を実現することが可能である。また、実現
する回路の未使用状態が増え、それを有効に利用して組
合せ回路部分をより簡単化することも可能となる。
【0003】有限状態機械(Finite State Machine:F
SM:有限オートマトン、順序機械などとも呼ばれる)
は有限個の状態を持ち、その上での状態遷移の規則が定
義された計算機構のモデルである。有限状態機械は、形
式的には5つの要素の組(I,O,S,δ,λ)で定義
される。ただし、I,O,Sはそれぞれ入力、出力およ
び状態の有限集合である。δ:I×S→Sは状態遷移関
数であり、λ:I×S→Oは出力関数を表す。入力と現
状態の組全てに対して、次状態と出力が指定されている
FSMを完全指定FSMという。また、少なくとも1つ
以上の入力と現状態の組に対して、次状態あるいは出力
が指定されていないようなFSMを不完全指定FSMと
いう。
【0004】有限状態機械の状態数を厳密に最小化する
という問題は古くから様々な研究が行われているが、与
えられる有限状態機械の記述が不完全な場合には問題が
複雑になる。従って状態数の多い有限状態機械の場合に
は、現実的な計算時間では解が求まらないという問題が
あった。そこでより高速に最小に近い状態数の有限状態
機械を求める方法が必要とされている。
【0005】以下、従来の状態数削減方法の概念および
技術について、有限状態機械の具体例をあげて説明す
る。図23は、1つの有限状態機械M1の状態遷移表
(state table )を示している。有限状態機械は、通
常、このような状態遷移を表す情報により与えられる。
図23において、PS(Present State )は有限状態機
械M1の現在の状態を表し、各行のA,B,C,D,
E,Fは与えられた有限状態機械M1のとり得る状態の
各々に対応する。また、各列のI1 ,I2 ,I3 ,I4
はそれぞれ可能な入力を表す。
【0006】状態遷移表の各セル、すなわち行と列の交
差位置には、その行に対応する現状態において、その列
に対応する入力が印加されたときに遷移する状態、すな
わち次状態NS(Next State)とそのときに有限状態機
械M1が出力する出力zが“NS,z”のように記され
ている。例えば、行A、列I1 のセルに“B,0”が記
されている場合、状態Aで入力I1 が入力されると状態
Bに遷移し、0が出力されることを表す。
【0007】状態遷移表中の“−”は、対応する次状態
や出力値が指定されていないことを示している。このよ
うな状態または値はドントケア(don't-care)と呼ば
れ、それがどのような状態または値でもよいことを意味
する。したがって、状態数が少なくなるようにその状態
または値を適当に決定することができる。このように、
状態遷移表にドントケアを含むことを許した有限状態機
械を不完全指定有限状態機械と呼ぶ。一方、ドントケア
を含まない有限状態機械を完全指定有限状態機械と呼
ぶ。
【0008】図23の現状態AおよびBを見ると、どの
入力に対しても出力が同一、あるいは少なくとも一方が
ドントケア値を持つ。また、現状態AおよびBを1つの
状態対(A,B)として、対応する次状態の対を求める
と、入力I1 に対しては(A,B)自身となり、他の入
力に対しては少なくともどちらか一方の次状態がドント
ケアである。ドンドケアはどのような状態に設定しても
よいから、状態AとBは1つの状態にまとめることが可
能である。
【0009】この場合、AとBを1つの状態にするに
は、状態Aの入力I2 に対する次状態をCとおき、状態
Bの入力I4 に対する次状態をEとおいて、その出力を
1とおけばよい。このとき、まとめられた1つの状態
は、入力I1 に対して変化せず、入力I2 に対して状態
Cに遷移し、入力I4 に対して状態Eに遷移する。入力
3 に対する次状態は任意に決めることができる。これ
らの状態AとBのように、2つの状態を1つの状態にま
とめることができるとき、それらの状態は両立的(comp
atible)であるという。
【0010】次に状態AとCを考えると、これらは対応
する出力は異ならないが、入力I1に対して次状態が異
なり、かつその次状態対が(A,C)自身でもない。し
たがって、AとCが両立的であるためには対応する次状
態同士であるBとCも両立的でなければならない。この
とき状態対(B,C)を(A,C)の含意対(implied
pair)という。一般に、2つの状態が両立的である必要
十分条件は、次の2つの条件が成立することである。
【0011】1.全ての入力に対して、対応する出力同
士が異ならない(出力がドントケアの場合も含む)。 2.全ての入力に対して、対応する次状態同士(含意
対)が両立的である(次状態がドントケアの場合も含
む)。
【0012】一方、状態AとEを考えると、入力I4
対してそれぞれの出力が異なるため、1つの状態にまと
めることができない。このように1つにまとめることが
できない状態対を非両立的(incompatible)であるとい
う。
【0013】さらに、2つ以上の状態の集合に対して
は、その集合内の任意の状態の組が両立的であるとき、
その状態集合は両立的であるといい、両立的でない状態
集合は非両立的であるという。また、両立的な状態集合
を両立集合と呼ぶ。
【0014】有限状態機械の任意の状態の組について両
立的かどうかを調べるため、図24に示すようなマージ
表を用いる。マージ表は、有限状態機械の各状態を行お
よび列に割り当てた表で、行と列の交差位置の各セルに
は、対応する状態対が両立的でないときには記号“×”
を、両立的なときにはその含意対が記入される。ただ
し、対応する含意対がなく、空集合のときには記号“
外1 ”が代わりに記入
【0015】
【外1】
【0016】される。図24のマージ表は、図23の有
限状態機械M1の状態対に関するものである。マージ表
に記された含意対が非両立的であれば、そのセルに対応
する状態対も非両立的となる。この場合には、そのセル
の内容を“×”に書き直す必要がある。このような更新
は、非両立的な含意対を持つエントリがなくなるまで繰
り返される。
【0017】図24のマージ表より両立的な状態対が数
えあげられ、それらから両立集合が求められる。例え
ば、状態対(A,B),(B,C),(C,A)はそれ
ぞれ両立的な状態対であるので、状態集合{A,B,
C}は両立集合である。他のいかなる両立集合にも含ま
れない両立集合は、極大両立集合と呼ばれる。両立集合
の定義より、全ての両立集合はある極大両立集合に含ま
れ、極大両立集合の部分集合は全て両立集合である。
【0018】図24のマージ表からすべての極大両立集
合を求めると、{A,B,C},{B,C,E},
{B,D,E},{C,E,F},{D,E,F}とな
る。
【0019】両立的な状態対に対する含意対の概念と同
様に、ある両立集合cの入力iに対する次状態の集合の
ことを、cのiに対する含意集合と呼ぶ。例えば、両立
集合{D,E,F}の入力I1 に対する含意集合は
{C,F}である。
【0020】有限状態機械の簡単化、つまり状態数の削
減を行う際、両立集合は1つの状態に併合できる状態集
合の候補となる。例えば、両立集合{D,E,F}を解
に含めるということは、状態D,E,Fを1つの状態に
併合することを意味する。このとき、併合後の状態の次
状態は各入力についてそれぞれ1つ、またはドントケア
でなければならないので、この両立集合の各含意集合に
ついてそれを包含する両立集合が少なくとも1つその解
に含まれていなければならない。この条件を閉包条件と
呼ぶ。ある両立集合の2つの含意集合が包含関係にある
場合、包含されている含意集合の閉包条件を考慮する必
要はない。
【0021】両立集合の極大な含意集合を要素とする集
合を、クラス集合(class set )と呼ぶ。ここで、極大
な含意集合とは、その両立集合自身に含まれず、他の含
意集合にも含まれない含意集合を意味する。例えば、両
立集合{D,E,F}のクラス集合は{{A,B},
{C,F}}である。ある両立集合について閉包条件が
成立するかどうかを確かめるには、そのクラス集合の要
素のみを考えて、それらを包含する他の両立集合がある
かどうかを調べればよい。
【0022】また、与えられた有限状態機械の各々の状
態を含む両立集合が、解の中に少なくとも1つ存在しな
ければならないという条件を、被覆条件と呼ぶ。被覆条
件を満たす両立集合の集合を、被覆という。有限状態機
械の簡単化問題は、被覆条件と閉包条件の両方を満足す
るような、要素数のできるだけ少ない両立集合の集合を
解として求める問題に帰着される。このような、閉包条
件を満足する被覆のことを閉じた被覆という。
【0023】有限状態機械の状態数最小化法に関する先
願としては、次の2つがある。 (a)「有限状態機械のシンボリックカバー最小化方法
及び状態数割当方法」(特開平03−116279、特
願平01−252357) (b)「不完全指定順序回路最小化方法」(特開平04
−158480、特願平02−284840) これらの先願のうち、(a)については完全指定の有限
状態機械のみを対象としており、不完全指定有限状態機
械を対象とする本発明とは直接関係がない。(b)は極
大両立集合の計算方法に関する先願である。
【0024】不完全指定を含む有限状態機械の状態数を
削減する従来の方法としては、次の4つの論文が主に知
られている。 (c)R. G. Bennetts, J. L. Washington, and D. W.
Lewin : “A Computer Algorithm for State Table Red
uction, ”Radio and Electronic Engineer, 42(11):51
3-520, 1972. (d)M. A. Perkowski and N. Nguyen : “Minimizati
on of Finite State Machine in System SuperPeg,”In
28th Midwest Conference on Circuits and Systems,
pages 139-147, August 1985. (e)J-K. Rho, G. Hachtel, F. Somenzi, and R. Jac
oby : “Exact and Heuristic Algorithms for the Min
imization of Incompletely Specified State Machine
s, ”IEEE Trans. on Computer Aided Design, 13(2):1
67-177, February1994. (f)L. N. Kannan and D. Sarma : “Fast Heuristic
Algorithms for FiniteState Machine Minimizatio
n,” In Proceedings of European Design Automation
Conference, pages 192-196. February 1991. これらのうち、(c)の方法は、まず閉包条件を満足す
る両立集合の集合を解の候補として求め、次にそれらが
被覆条件を満たすように、両立集合を追加していく方法
である。また、(f)の方法は、まず被覆条件を満足す
る両立集合の集合を解の候補として求め、次にそれらが
閉包条件を満たすように、両立集合を追加していく方法
である。(d)の文献は(f)の文献において引用され
ている。
【0025】また、(e)の方法は、まず全ての極大両
立集合を生成し、それらを要素とする解のうちで最小の
状態数を与えるものを探索する方法である。この方法で
は、探索過程において閉包条件と被覆条件の両方を満足
するように解の候補が生成される。
【0026】一般に、厳密に最小な状態数を与える解を
求めるには、極大両立集合のみではなくそれ以外のプラ
イム両立集合(prime compatible)を全て考慮する必要
があることが知られている(M. C. Paull and S. H. Un
ger :“Minimizing the Number of States in Incompl
etely Specified Sequential Switching Functions,”I
RE Trans. on Electronic Computers, 8:356-367, Sept
ember 1959./A. Grasselli and F. Luccio:“A Metho
d for Minimizing the Number of Internal States in
Incompletely Specified Sequential Networks,”IRE T
rans. on Electronic Computers, 14(3):350-359, June
1965. )。
【0027】ここで、プライム両立集合とは他の両立集
合によって支配されない両立集合のことであり、両立集
合cが両立集合c′を支配する必要十分条件は、c⊃
c′と、 cのクラス集合⊆c′のクラス集合 が成り立つことである。
【0028】しかし、(e)では極大両立集合のみを求
め、他のプライム両立集合を考慮しないことにより、計
算時間の削減を図っている。この方法によれば、簡単化
された有限状態機械の状態数は必ずしも最小になるとは
限らないが、それに近い解を得ることができ、状態数の
削減能力はかなり高い。
【0029】
【発明が解決しようとする課題】しかしながら、従来の
有限状態機械の簡単化方法には次のような問題がある。
(e)の方法では、実際に扱う状態、つまり少なくとも
1つ以上の他の状態と両立関係にある状態の数が10か
ら20程度の小規模な有限状態機械に対しては、実際的
な時間内で処理を行うことができる。他の状態と両立関
係にないような状態は併合されることなくそのまま残る
ので、計算時間にはあまり影響を与えない。
【0030】しかし、それ以上大規模な有限状態機械に
対しては計算時間が増大し、現実的な時間内で処理が行
えないという問題が生じる。これは、最悪の場合、極大
両立集合の数が与えられた状態数を指数とする関数にな
るため、それらを考慮した最小解の探索が組合せ爆発を
起こすことが原因であると考えられる。例えば、有限状
態機械の状態数をnとすると、極大両立集合の最大数は
n に比例し、計算時間は最悪 外2 に比例すること
になる。
【0031】
【外2】
【0032】これに対して、(f)の方法は(e)ほど
厳密ではなく、まず最初に被覆条件のみを用いて状態数
の削減を行っており、多くの場合(e)より高速であ
る。しかし、状態数の削減能力が比較的低く、解の質が
悪いという問題がある。また、(c)と(d)の方法
は、計算時間の点で(e)より劣るとされている。
【0033】このように、従来の技術においては、大規
模な有限状態機械に対して実際的な時間内で状態数の削
減を十分に行うことができないという問題がある。本発
明は、有限状態機械の状態数を高速に削減して、状態数
が少ない良質な解を得ることのできる状態簡単化装置お
よびその方法を提供することを目的とする。
【0034】
【課題を解決するための手段】図1は、本発明の状態簡
単化装置の原理図である。図1の状態簡単化装置は、現
在の状態から次の状態への状態遷移の規則が定められて
いる有限状態機械がとり得る状態の数を削減する装置で
あって、入力手段1、初期解生成手段2、両立集合縮小
手段3、両立集合拡大手段4、および出力手段5を備え
る。
【0035】入力手段1は、上記有限状態機械に関する
第1の状態遷移情報を入力する。初期解生成手段2は、
第1の状態遷移情報に基づいて、両立集合の集合を初期
解として生成する。
【0036】両立集合縮小手段3は、上記初期解に含ま
れる第1の両立集合を逐次縮小することにより、閉包条
件を満たすために必要な両立集合の数を削減する。出力
手段5は、削減された両立集合の数に対応する状態数に
より表現される第2の状態遷移情報を出力する。
【0037】入力手段1は、例えばオペレータから与え
られた有限状態機械の状態遷移表を第1の状態遷移情報
として入力する。初期解生成手段2は、第1の状態遷移
情報に基づいてマージ表を生成し、それを用いて状態遷
移表に含まれる状態の極大両立集合をすべて生成する。
これらの極大両立集合の集合が初期解として用いられ
る。
【0038】両立集合縮小手段3は、この初期解中の第
1の両立集合の大きさを逐次改善的に縮小していく。こ
れにより、第1の両立集合のクラス集合の大きさや、そ
のクラス集合に含まれる含意集合の大きさが小さくなる
可能性が出てくる。これらが小さくなれば、一般にその
クラス集合に関する閉包条件を満たすために必要な他の
両立集合の数も減少する。
【0039】したがって、第1の両立集合を縮小するこ
とにより不要となった他の両立集合を初期解から除去し
て、解に含まれる両立集合の数を削減することが可能に
なる。
【0040】出力手段5は、こうして小さくなった解に
含まれる各両立集合を1つの状態に対応させて、より小
さな状態数で表現される有限状態機械を構成し、例えば
その状態遷移表を第2の状態遷移情報として出力する。
【0041】このように、解に含まれる両立集合の縮小
という簡単な処理の繰り返しにより状態数を削減するこ
とができ、有限状態機械の簡単化処理を高速化すること
ができる。
【0042】また、両立集合縮小手段3は、例えば解中
の第2の両立集合に含まれない状態を上記第1の両立集
合から抽出し、抽出した状態を要素とする第3の両立集
合を生成し、第3の両立集合を用いて必要な両立集合の
数を削減する。
【0043】この場合、第1の両立集合の要素のうち、
被覆条件を満たすために必要な状態のみを第3の両立集
合に含めることができ、第1の両立集合が効率よく縮小
される。
【0044】また、両立集合縮小手段3は、例えば閉包
条件を満足するために必要な部分集合を上記第1の両立
集合から抽出し、抽出した状態を要素とする第4の両立
集合を生成し、第4の両立集合を用いて必要な両立集合
の数を削減する。
【0045】この場合、第1の両立集合の要素のうち、
閉包条件を満たすために必要な状態のみを第4の両立集
合に含めることができ、第1の両立集合が効率よく縮小
される。
【0046】また、両立集合拡大手段4は、両立集合縮
小手段3により縮小された両立集合を再び拡大し、両立
集合縮小手段3は、両立集合拡大手段4により拡大され
た両立集合を再び縮小する。
【0047】一般に、両立集合を縮小して状態数を逐次
削減していくとある最適解に到達すると考えられるが、
それが必ずしも大域的な最適解であるという保証はな
い。そこで、一旦求められた解の候補に含まれる両立集
合を再び拡大/縮小することにより、局所最適解に陥る
ことなく最小に近い解が求められる。また、両立集合の
縮小と拡大という簡単な処理の繰り返しであるため、局
所最適解から抜け出すのに要する時間は比較的少なくて
済む。
【0048】例えば、図1の入力手段1および出力手段
5は、実施形態の図2における入出力装置11に対応
し、初期解生成手段2、両立集合縮小手段3、および両
立集合拡大手段4は、演算処理装置12および記憶装置
13に対応する。
【0049】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を詳細に説明する。図2は、実施形態の状
態簡単化装置の構成図である。図2の状態簡単化装置
は、入出力装置11、演算処理装置12、記憶装置1
3、およびこれらの各装置を接続するバス10を備える
計算機システムである。
【0050】入出力装置11は、例えばキーボードやマ
ウス等の入力装置とディスプレイ装置からなる計算機端
末であり、有限状態機械の状態遷移表の入力や簡単化さ
れた有限状態機械の状態遷移表の出力等を行う。演算処
理装置12は、例えばCPU(中央処理装置)であり、
記憶装置13に記憶されたデータを用いて各種プログラ
ムを実行し、演算等を行う。簡単化された状態遷移表
は、プリンタ等の他の出力装置に出力してもよい。
【0051】記憶装置13は、入力された状態遷移表や
生成される両立集合等のデータと、マージ表作成プログ
ラム14、極大両立集合生成プログラム15、簡単化プ
ログラム16、および変換プログラム17を記憶する。
【0052】マージ表作成プログラム14は、状態遷移
表の情報から与えられた状態のマージ表を作成するプロ
グラムであり、極大両立集合生成プログラム15は、マ
ージ表から初期解として極大両立集合を生成するプログ
ラムである。簡単化プログラム16は、解に含まれる両
立集合の縮小と拡大を繰り返して大域的に最適な解を生
成するプログラムであり、変換プログラム17は、得ら
れた解を有限状態機械の状態に変換するプログラムであ
る。
【0053】ここで、本発明で用いる概念の定義と定理
を示すことにする。 〔定義1〕閉じた被覆である両立集合の集合Sに関し
て、Sの要素である両立集合cが他のどの両立集合にも
含まれていない状態を含んでいるとき、cはSにおける
必須両立集合であるという。 〔定義2〕閉じた被覆である両立集合の集合Sにおい
て、Sの要素である両立集合cの部分集合のうち、Sの
閉包条件を満足させるために必要な部分集合をcの核集
合であるという。 〔定理1〕すべての極大両立集合からなる集合は閉じた
被覆である。 証明:すべての両立集合はいずれかの極大両立集合に含
まれ、すべての状態はいずれかの両立集合に属する。し
たがって、すべての極大両立集合はすべての状態を被覆
している。また、すべての両立集合の含意集合は両立的
である。したがって、あらゆる含意集合はそれぞれいず
れかの極大両立集合に含まれる。すなわち、すべての極
大両立集合は閉じている。ゆえに題意が成り立つ。(証
明終わり) 次に、図3を参照しながら、図2の状態簡単化装置によ
る処理について説明する。図3は、有限状態機械の状態
数を削減する簡単化計算処理のフローチャートである。
【0054】図3において処理が開始されると、まず入
出力装置11から状態遷移表等の状態遷移に関する情報
(状態遷移情報)が入力される(ステップS1)。次
に、演算処理装置12は、マージ表作成プログラム14
を実行して、状態遷移情報からマージ表を作成し(ステ
ップS2)、極大両立集合生成プログラム15を実行し
て、極大両立集合を生成する(ステップS3)。そし
て、すべての極大両立集合からなる集合を初期解とし、
それをSとおく(ステップS4)。
【0055】次に、簡単化プログラム16を実行してス
テップS5からS8までの処理を行い、解Sに含まれる
各両立集合を縮小および拡大しながら、Sに含まれる両
立集合の数を削減していく。
【0056】ステップS5では、処理REDUCE−I
(S)が実行され、S内の各両立集合が逐次改善的に縮
小されるとともに、Sの要素数が削減される。ステップ
S6では、処理MERGE(S)が実行され、S内の併
合可能な両立集合同士が併合されてSの要素数が削減さ
れる。ステップS7では、処理EXPAND(S)が実
行され、S内の各両立集合が拡大される。ステップS8
では、処理REDUCE−II(S)が実行され、S内の
各両立集合がREDUCE−I(S)より綿密な計算方
法で縮小される。ステップS7で両立集合を拡大するの
は、Sが局所解に陥るのを防ぐためである。
【0057】次に、演算処理装置12はSの大きさ(要
素数)|S|を元の状態数と比較する(ステップS
9)。そして、それが元の状態数より小さければ、変換
プログラム17を実行して、Sに対応する有限状態機械
の状態遷移情報を生成し(ステップS10)、処理を終
了する。ステップS10で生成された状態遷移情報は、
入出力装置11から出力される。Sの大きさが元の状態
数以上であれば、状態を簡単化できなかったことにな
り、そのまま処理を終了する。
【0058】次に、図4から図7までを参照しながら、
図3のステップS5の処理REDUCE−I(S)につ
いて説明する。図4および図5は、REDUCE−I
(S)の処理手続きのフローチャートである。この処理
により、解S内の各両立集合が逐次改善的に縮小され、
Sに含まれる両立集合の数が削減される。
【0059】REDUCE−I(S)に引数として与え
られる初期解Sは、非明示的に両立集合を生成した場合
を除いて、極大両立集合のみからなる集合である。被覆
条件のみを考えると極大両立集合よりよい両立集合は存
在しない。しかし、閉包条件を考えると、極大両立集合
を解に含めるよりも、それに含まれるより小さな両立集
合を用いる方が、対応する含意集合が小さくなり閉包条
件が緩くなる場合がある。
【0060】したがって、解Sに含まれる両立集合を縮
小することにより、いくつかの両立集合が不要になり、
それらを除去することでより小さな解が求められる。R
EDUCE−I(S)では、現在の解の閉包条件を満た
したままで、各両立集合をできるだけ縮小する。
【0061】図4において処理が開始されると、演算処
理装置12は、まず与えられた有限状態機械の状態数を
nとおく(ステップS11)。次に、処理済みの状態の
集合Uを空集合にし(ステップS12)、S内の各両立
集合の核集合を空集合にする(ステップS13)。これ
らの各両立集合の核集合には、以下の処理で有限状態機
械の状態が加えられていき、すべての核集合を要素とす
る集合が新たな解の候補となる。
【0062】次に、Sにおける必須両立集合をすべて求
め、各必須両立集合に含まれる必須な状態をその核集合
に加える(ステップS14)。そして、Sにおけるすべ
ての必須両立集合を、処理すべき両立集合の集合Qとす
る(ステップS15)。
【0063】図23に示した有限状態機械M1の場合
は、その初期解と各極大両立集合のクラス集合は図6の
ようになる。したがって、S={{A,B,C},
{B,C,E},{B,D,E},{C,E,F},
{D,E,F}}である。
【0064】例えば、S内の極大両立集合{B,C,
E}を考えると、その閉包条件を満足するには、他の両
立集合{A,B,C}と{D,E,F}の部分集合
{D,F}とが必要である。このようにして、すべての
両立集合に対してその閉包条件を満足するために必要な
部分を抽出すると、解として必要な集合を求めることが
できる。
【0065】また、極大両立集合{C,E,F}につい
ては、この両立集合が表す状態集合のうち、閉包条件と
して必要なのは{C,F}のみである。状態Eは他の極
大両立集合{D,E,F}により被覆されているので、
{C,E,F}は{C,F}に縮小することができる。
【0066】{C,F}のクラス集合は{{B,E},
{D,E}}であり、元の集合{C,E,F}のクラス
集合は{{A,B},{D,E,F},{B,E}}で
あるから、{C,E,F}を縮小することによりクラス
集合がより小さくなる。したがって、閉包条件がより緩
くなることが分かる。
【0067】REDUCE−I(S)では、このような
両立集合の縮小処理を解の候補に変化がなくなるまで繰
り返す。初期解において、有限状態機械M1の状態A
は、極大両立集合{A,B,C}にしか含まれていない
ため、定義1より{A,B,C}は必須両立集合とな
り、その核集合は{A}となる(ステップS14)。こ
れにより、S内の{A,B,C}がQに加えられ、Q=
{{A,B,C}}となる(ステップS15)。
【0068】次に、Qが空集合かどうかを判定する(ス
テップS16)。Qが空集合であれば、処理対象として
Qに加えられたことのないS内の両立集合のうちで、優
先度が最大のものを選び、それ自身をその核集合とする
(ステップS17)。そして、その選んだ両立集合をQ
に加える(ステップS18)。ステップS16において
Qが空集合でなければ、ステップS17、S18の処理
をスキップする。
【0069】ここでは、Q={{A,B,C}}なの
で、ステップS17、S18の処理は行われない。次
に、Qから任意の1つの両立集合を取り出してそれをc
とおき(ステップS19)、Uにcの要素を加える(ス
テップS20)。次に、cのクラス集合に含まれる各含
意集合をdとし、S内でその要素を含む両立集合を選ん
でそれをc′とする(ステップS21)。
【0070】そして、c′の核集合が空集合であれば
c′をQに含める。また、解の候補が閉包条件を満たす
ように、c′の核集合にdの要素を加える。両立集合
c′の選択結果は、最終的な解の大きさに大きく影響す
るので、ここではできるだけ核集合が拡大しないように
c′を決定する。もし、dの要素を含む両立集合がS内
に2つ以上ある場合は、例えばその中で優先度が最大の
ものをc′として選ぶ。
【0071】今、Q={{A,B,C}}、U=φ(空
集合)であるから、c={A,B,C}となり(ステッ
プS19)、U={A,B,C}となる(ステップS2
0)。また、{A,B,C}のクラス集合は空集合なの
で、ステップS21の処理は省略される。
【0072】次に、Qの大きさ|Q|が0になり、Uの
大きさ|U|がnになったかどうかを調べる(ステップ
S22)。もし、これらの条件が満たされていなけれ
ば、ステップS16以降の処理を繰り返す。そして、ス
テップS22で|Q|=0かつ|U|=nになると、続
いて図5の処理を行う。
【0073】ここで、Qは空集合となっているので|Q
|=0である。しかし、|U|=3であり、この値は全
状態数n=6に達していない。そこで、ステップS16
の処理に戻り、次にステップS17の処理を行う。
【0074】ステップS17で両立集合を選択する際の
尺度となる優先度は、最小解に含まれる可能性の高いも
のほど高くなるように設定する。一般に、両立集合の大
きさが大きいほど、それは多くの状態を含むので、被覆
条件を満たすために必要な他の両立集合が少なくて済む
ことになる。したがって、大きな両立集合は最小解に含
まれる可能性が高くなる。特に、その時点でまだ解の候
補に含まれていない状態、つまり被覆されていない状態
を多く含む両立集合ほど、最小解に含まれる可能性が高
い。
【0075】また、両立集合のクラス集合が小さいほ
ど、閉包条件を満たすために必要な他の両立集合が少な
くて済み、そのような両立集合はやはり最小解に含まれ
る可能性が高くなる。以上の点を考慮して、例えば、次
式により両立集合の優先度を計算すればよい。
【0076】
【数1】
【0077】(1)式の右辺の分子は、両立集合内の状
態のうち、まだいずれの核集合にも含まれていない状態
の数を表し、分母はクラス集合内の含意対数を入力数で
割った値を表す。したがって、被覆されていない状態を
多く含む両立集合ほど、その優先度は高くなる。また、
クラス集合が小さいほど、クラス集合内の含意対数は少
ないと考えられるので、優先度は高くなる。
【0078】ただし、既にすべての状態が被覆されてい
る場合には(1)式の右辺の分子が0になってしまうの
で、代わりに次式を用いる。
【0079】
【数2】
【0080】また、クラス集合が空集合の場合には
(1)式の右辺の分母が0になってしまうので、代わり
に次式を用いる。 優先度=(両立集合内でまだ被覆されていない状態の数)×(全入力数)+1 …(3) 尚、ステップS21でc′を決定する際に用いる優先度
も、同様にして計算される。
【0081】ここで、S内の両立集合のうち、まだ処理
対象としてQに加えられたことがなく、核集合が空集合
であるようなものの優先度を計算してみることにする。
今、S内の両立集合のうち核集合が空集合でないのは
{A,B,C}だけなので、他の4つの両立集合{B,
C,E},{B,D,E},{C,E,F},{D,
E,F}は未処理である。
【0082】例えば両立集合{B,C,E}の場合、被
覆された状態の集合を表すU={A,B,C}に含まれ
ていない状態Eを持っているので、被覆されていない状
態の数は1となる。また、クラス集合内の含意対は、
(A,B),(B,C),(C,A),(D,F)の4
つである。また、有限状態機械M1の全入力数は4であ
るから、(1)式より優先度は、1/(4/4)=1と
なる。同様にして、(1)式より両立集合{B,D,
E},{C,E,F},{D,E,F}の優先度は、そ
れぞれ4,1.6,6となる。
【0083】そこで、最も優先度が高い両立集合として
{D,E,F}が選ばれ、その核集合も{D,E,F}
となる(ステップS17)。これにより、Q={{D,
E,F}}となる(ステップS18)。
【0084】次に、cとして{D,E,F}が選ばれて
Q=φとなり(ステップS19)、U={A,B,C,
D,E,F}となる(ステップS20)。この時点で、
|U|=6=nとなり、すべての状態が被覆されたとみ
なされる。{D,E,F}のクラス集合は図6より
{{A,B},{C,F}}であるから、d={A,
B},{C,F}となる(ステップS21)。
【0085】まずd={A,B}の場合、それを含む両
立集合c′として{A,B,C}が選ばれ、{A,B,
C}の核集合{A}に、A以外のdの要素であるBが加
えられて、その核集合は{A,B}となる。また、d=
{C,F}の場合、それを含む両立集合c′として
{C,E,F}が選ばれる。{C,E,F}の核集合は
空集合なので{C,E,F}はQに加えられ、その核集
合は{C,F}となる。この結果、Q={{C,E,
F}}となる。
【0086】次に、cとして{C,E,F}が選ばれて
Q=φとなる(ステップS19)。Uは不変である(ス
テップS20)。{C,E,F}のクラス集合は図6よ
り{{A,B},{D,E,F},{B,E}}である
から、d={A,B},{D,E,F},{B,E}と
なる(ステップS21)。
【0087】まずd={A,B}の場合、それを含む両
立集合c′として{A,B,C}が選ばれるが、その核
集合{A,B}は変化しない。また、d={D,E,
F}の場合、それを含む両立集合c′として{D,E,
F}が選ばれ、その核集合{D,E,F}も変化しな
い。
【0088】d={B,E}の場合は、それを含むS内
の両立集合として、{B,C,E}と{B,D,E}の
2つがある。どちらの核集合も空集合なので、いずれが
c′として選ばれてもQに加えられることになる。そこ
で、どちらをc′とするかを決めるために、ステップS
17と同様の方法でそれらの優先度を計算する。
【0089】ここでは、既にUが全ての状態を含んでい
るので、解の候補である核集合の集合に含まれていない
状態は存在しない。そこで、(2)式を用いて両立集合
{B,C,E},{B,D,E}の優先度を計算する
と、それぞれ1,2となる。したがって、優先度の大き
い{B,D,E}がc′として選ばれ、Qに加えられ
る。また、{B,D,E}の核集合は{B,E}とな
り、Q={{B,D,E}}となる。
【0090】次に、cとして{B,D,E}が選ばれて
Q=φとなる(ステップS19)。Uは不変である(ス
テップS20)。{B,D,E}のクラス集合は図6よ
り{{A,C},{B,C}}であるから、d={A,
C},{B,C}となる(ステップS21)。
【0091】まずd={A,C}の場合、それを含む両
立集合c′として{A,B,C}が選ばれ、{A,B,
C}の核集合{A,B}に、A,B以外のdの要素であ
るCが加えられて、その核集合は{A,B,C}とな
る。
【0092】d={B,C}の場合は、それを含むS内
の両立集合として、{A,B,C}と{B,C,E}の
2つがある。ここでは、核集合の数をできるだけ増やさ
ないために、核集合が空集合である{B,C,E}を避
けて、{A,B,C}をc′として選ぶことにする。こ
の場合、その核集合{A,B,C}は、既にdの要素
B,Cをともに含んでいるので変化しない。
【0093】{A,B,C}の核集合は空集合ではない
ので、{A,B,C}はQに加えられず、Qは空集合の
ままである。そこで、|Q|=0かつ|U|=nとな
り、次に図5の処理が行われる。
【0094】図5において、演算処理装置12は、まず
解の候補として得られた核集合の集合が被覆条件を満足
するかどうかを判定する(ステップS23)。そして、
被覆条件が満たされなければ、それを満足するようにい
くつかの核集合を元の両立集合に戻し(ステップS2
4)、他の核集合に包含されている核集合があれば、そ
れを除去する(ステップS25)。ステップS23で被
覆条件が満たされていれば、直ちにステップS25の処
理を行う。
【0095】今、空集合でない核集合は、S内の両立集
合{A,B,C},{B,D,E},{C,E,F},
{D,E,F}の各核集合で、それぞれ{A,B,
C},{B,E},{C,F},{D,E,F}であ
る。これらの核集合の集合を解の候補とした場合、それ
は有限状態機械M1の全ての状態を含んでおり、ステッ
プS23では被覆条件を満足していることが分かる。ま
た、核集合同士の包含関係はないので、ステップS25
で除去される核集合はない。
【0096】次に、核集合の集合が閉包条件を満足する
かどうかを判定する(ステップS26)。そして、閉包
条件が満たされなければ、それを満足するようにいくつ
かの核集合を元の両立集合に戻し(ステップS27)、
核集合の集合を改めてSとする(ステップS28)。ス
テップS26で閉包条件が満たされていれば、直ちにス
テップS28の処理を行う。
【0097】ここで、解の候補に含まれる各核集合のク
ラス集合を求めると次のようになる。{A,B,C}の
クラス集合は空集合であり、{B,E}のクラス集合は
{{A,C},{B,C}}である。また、{C,F}
のクラス集合は{{D,E},{B,E}}であり、
{D,E,F}のクラス集合は{{C,F},{A,
B}}である。
【0098】したがって、どのクラス集合中の含意集合
も、いずれかの他の核集合に含まれており、ステップS
26では閉包条件を満足していることが分かる。そこ
で、この核集合の集合が新たなSとなる(ステップS2
8)。
【0099】次に、現在のSを元のSと比較し(ステッ
プS29)、現在のSが更新されていればさらに改善さ
れる可能性があるので、図4のステップS12から図5
のステップS29に至るループ処理を繰り返す。そし
て、ステップS29においてSが変化しなくなれば、処
理を終了する。
【0100】新たに得られたS={{A,B,C},
{B,E},{C,F},{D,E,F}}は明らかに
元のSとは異なるので、ステップS12以降の処理が繰
り返される。
【0101】図7は、図6の初期解に対するREDUC
E−I(S)の処理において、解の候補が変化する様子
を示している。図7において、ループ1、ループ2、ル
ープ3、ループ4、ループ5の各ブロックは、ステップ
S12からS29までのループ処理の異なる繰り返しに
対応している。すなわち、この例ではループ処理が5回
繰り返されていることが分かる。
【0102】各ブロックにおいて、両立集合の欄は、ル
ープ処理の開始時点におけるSの要素を表し、No.の
欄は、その両立集合の番号を表し、必須集合の欄の記号
“○”は、その両立集合が解に関する必須両立集合であ
ることを表す。クラス集合の欄は、対応する両立集合の
クラス集合を表し、c′の欄は、クラス集合の各要素を
含む他の両立集合の番号を表す。また、核集合の欄は、
図5のステップS28で得られた核集合を表す。
【0103】各ループ処理において得られた核集合は、
空集合を除いてそれ自身が両立集合になっており、次の
ループ処理における両立集合の欄に記載されている。ル
ープ1からループ5までの各ループ処理における両立集
合を見ていくと、しだいに必須両立集合の数が増えてい
き、両立集合の総数は減少していくことが分かる。そし
て、ループ5においては、すべての両立集合が必須両立
集合になり、核集合はすべて元の両立集合と一致してい
る。したがって、Sが変化しなくなったので、REDU
CE−I(S)が終了する。
【0104】c′の欄において、記号“−”は、対応す
るクラス集合が空集合であるためにc′が存在しないこ
とを意味し、“不要”という表記は、対応する両立集合
が処理対象にならなかったためにc′を決める必要がな
かったことを意味する。また、ループ4の核集合の欄に
おいて、{D}→{D,E}という表記は、図5のステ
ップS23で被覆条件が満たされなかったために、ステ
ップS24で核集合が元の両立集合に戻されたことを表
す。
【0105】こうして、図6の初期解に対してREDU
CE−I(S)の処理を施した後の解Sは、 S={{A,B,C},{D,E},{F}} となる。この場合、解に含まれる両立集合の数は5から
3に減少している。図23の有限状態機械M1の状態の
数を、プライム両立集合等を用いて厳密に最小化したと
きに得られる最小解の状態数は3であり、この例ではR
EDUCE−I(S)によりその最小解に相当する両立
集合が得られている。
【0106】以上説明したREDUCE−I(S)で
は、解候補に含まれる各両立集合から、閉包条件を満た
すために必要な核集合を抽出することにより、両立集合
の数を逐次削減している。
【0107】従来技術に関する文献(c)では、このよ
うな核集合を抽出することなく、クラス集合の要素を含
む両立集合をそのまま解の候補としている。そのため、
上述のような逐次改善的手法により解をさらに縮小して
いくことができないものと考えられる。
【0108】次に、図8から図10までを参照しなが
ら、図3のステップS6の処理MERGE(S)につい
て説明する。図8および図9は、MERGE(S)の処
理手続きのフローチャートである。先に述べたREDU
CE−I(S)の結果の解において、複数の両立集合を
1つに併合してもなお閉包条件を満足する場合がある。
その場合、それらを1つの両立集合に併合することによ
り、解の大きさを小さくすることができる。
【0109】MERGE(S)では、解に含まれる任意
の両立集合の組について併合できるかどうかを調べ、併
合できる場合には併合後の両立集合を解に含め、元の2
つの両立集合を解から削除する。
【0110】図8および図9において、M[i]は、初
期解に含まれる極大両立集合を格納した配列Mのi番目
の要素を表し、S[j]は、引数として与えられた解S
に含まれる両立集合を格納した配列のj番目の要素を表
す。解Sの両立集合の配列そのものもSと表記される。
また、nm 、nc はそれぞれ配列M、Sの大きさを表
す。
【0111】処理が開始されると、演算処理装置12
は、まずステップS31からS41までの処理により初
期設定を行う。最初に制御変数iを1とおき(ステップ
S31)、iをnm と比較する(ステップS32)。i
がnm 以下であれば、次に制御変数j,kをそれぞれ
1,0とおき(ステップS33)、jをnc と比較する
(ステップS34)。
【0112】jがnc 以下であれば、次にS[j]がM
[i]に含まれるかどうかを調べる(ステップS3
5)。S[j]がM[i]に含まれる場合は、k=k+
1とおき(ステップS36)、制御変数L[k]をjと
おき(ステップS37)、j=j+1とおいて(ステッ
プS38)、ステップS34以降の処理を繰り返す。ス
テップS35においてS[j]がM[i]に含まれない
場合は、ステップS36とS37の処理をスキップし
て、ステップS38の処理に進む。
【0113】ステップS34,S35,S36,S3
7,S38のループ処理においては、jが順にインクリ
メントされてS内のすべての両立集合S[j]が調べら
れる。そして、極大両立集合M[i]に含まれる両立集
合が見つかる度にkがインクリメントされ、その両立集
合の要素番号jがL[k]となる。したがって、kは極
大両立集合M[i]に含まれる両立集合の数を表し、L
[k]はk番目に見つかった両立集合の要素番号を表
す。
【0114】ステップS34でjがnc を超えれば、次
に制御変数pを1とおいて(ステップS39)、pとk
を比較する(ステップS40)。ここでpがkより大き
ければ、i=i+1とおき(ステップS41)、ステッ
プS32以降の処理を繰り返す。pがk以下であれば、
次に図9の処理を行う。
【0115】図9において、演算処理装置12は、まず
S[L[p]]が空集合かどうかを判定する(ステップ
S42)。それが空集合でなければ、制御変数qを1と
おいて(ステップS43)、qとkを比較する(ステッ
プS44)。qがk以下であれば、次に、p=qまたは
S[L[q]]=φ(空集合)であるかどうかを調べる
(ステップS45)。
【0116】これらの条件のいずれにも該当しなけれ
ば、S[L[p]]とS[L[q]]の和を集合tとお
いて(ステップS46)、tのクラス集合を計算する
(ステップS47)。
【0117】次に、得られたクラス集合に基づいて、t
に関する閉包条件がS内で満たされているかどうかを調
べる(ステップS48)。閉包条件が満たされていれ
ば、S[L[p]]を空集合にして、S[L[q]]に
tを格納する(ステップS49)。次に、q=q+1と
おき(ステップS50)、p=p+1とおいて(ステッ
プS51)、ステップS40以降の処理を繰り返す。
【0118】ステップS45において2つの条件のいず
れかが成り立つ時、およびステップS48においてtに
関する閉包条件が満たされていない時は、ステップS5
0の処理に進む。また、ステップS42においてS[L
[p]]が空集合の時、およびステップS44において
qがkを超える時は、ステップS51の処理に進む。そ
して、ステップS32においてiがnm を超えれば処理
を終了する。
【0119】次に、図10のような状態遷移表を持つ有
限状態機械M2を例に取って、MERGE(S)の処理
を具体的に説明する。有限状態機械M2の極大両立集合
は、{A,C,E,F,I},{C,D,H,I},
{B,D,G,H,I},{E,F,G,I},{A,
C,D,I},{A,B,D,I}であり、REDUC
E−I(S)を行った後の解Sは、 S={{A,B,I},{C},{D,G,I},
{E,F,I},{H,I}} となる。この解Sに対してMERGE(S)を行うこと
を考える。
【0120】まず極大両立集合{A,C,E,F,I}
に含まれる両立集合は{C},{E,F,I}の2つで
ある。したがって、ステップS35においてM[i]=
{A,C,E,F,I}、S[j]={C}または
{E,F,I}のとき、kがインクリメントされ(ステ
ップS36)、ステップS40においてはk=2、p=
1となる。そこで、図9の処理が行われる。
【0121】S[L[1]]は1番目に見つかった両立
集合を表しており、一例としてS[L[1]]={C}
とする。このとき、S[L[1]]は空集合ではないの
で(ステップS42,No)、q=1となる(ステップ
S43)。ここでp=qとなり(ステップS45,Ye
s)、pとqがインクリメントされてp=q=2となる
(ステップS50,S51)。
【0122】次に、p=k=2であるから(ステップS
40,Yes)、S[L[2]]が調べられる(ステッ
プS42)。S[L[2]]={E,F,I}とする
と、再びq=1となるので(ステップS43)、p≠q
となる。また、S[L[1]]は空集合ではないので、
ステップS45の判定結果はNoとなる。
【0123】そこで、S[L[1]]とS[L[2]]
が併合されて、両立集合t={C,E,F,I}となる
(ステップS46)。また、{C,E,F,I}のクラ
ス集合を計算すると、{{A,I}}となる(ステップ
S47)。含意集合{A,I}はS内の両立集合{A,
B,I}に含まれているので、このクラス集合に関する
閉包条件はSにおいて満足される(ステップS48,Y
es)。
【0124】したがって、Sから両立集合{C}と
{E,F,I}が削除され、代わりに{C,E,F,
I}が追加される。この時点でSは、 S={{A,B,I},{C,E,F,I},{D,
G,I},{H,I}} となる。
【0125】他の極大両立集合についても同様にして、
上記S内の2つ以上の両立集合を同時に含む場合がある
かどうかが調べられ(ステップS35)、極大両立集合
{B,D,G,H,I}が両立集合{D,G,I}と
{H,I}を含むことが分かる。そのほかの極大両立集
合は複数の両立集合を含まない。
【0126】両立集合{D,G,I}と{H,I}を併
合すると{D,G,H,I}となり(ステップS4
6)、そのクラス集合を計算すると{{C,E,F},
{A,B}}となる(ステップS47)。このクラス集
合に関する閉包条件もSにおいて満足されるので(ステ
ップS48,Yes)、Sから両立集合{D,G,I}
と{H,I}が削除され、代わりに{D,G,H,I}
が追加される。
【0127】こうして、最終的に、 S={{A,B,I},{C,E,F,I},{D,
G,H,I}} となって、処理が終了する。この例では、MERGE
(S)により解の候補Sの大きさが5から3に減少して
いる。S内の各両立集合は、有限状態機械M2の状態数
を削減した後の各状態に対応するので、結局、状態数が
2つ減少したことになる。
【0128】次に、図11および図12を参照しなが
ら、図3のステップS7の処理EXPAND(S)につ
いて説明する。図11は、EXPAND(S)の処理手
続きのフローチャートである。REDUCE−I(S)
は逐次改善的手法であるため、局所解に陥りやすい危険
性を持っている。そこで、MERGE(S)を行った
後、EXPAND(S)では解中の各両立集合を再び拡
大して局所解から抜け出す処理を行う。具体的には、解
中の各両立集合を、それを含むある極大両立集合に拡大
しても、解が閉包条件を満足する場合に拡大処理を行
う。
【0129】図11において、S[i]とnc は図8お
よび図9の場合と同様である。処理が開始されると、演
算処理装置12は、まず制御変数iを1とおき(ステッ
プS61)、iをnc と比較する(ステップS62)。
iがnc 以下であれば、S[i]内の両立集合を含む元
の極大両立集合をtとおいて(ステップS63)、tの
クラス集合を計算する(ステップS64)。
【0130】次に、得られたクラス集合に基づいて、t
に関する閉包条件がS内で満たされているかどうかを調
べる(ステップS65)。閉包条件が満たされていれ
ば、S[i]内の両立集合をtに置き換え(ステップS
66)、i=i+1とおいて(ステップS67)、ステ
ップS62以降の処理を繰り返す。
【0131】ステップS65において閉包条件が満たさ
れない場合は、ステップS66の処理をスキップして、
ステップS67の処理に進む。そして、ステップS62
においてiがnc を超えれば、処理を終了する。
【0132】次に、図12のような状態遷移表を持つ有
限状態機械M3を例に取って、EXPAND(S)の処
理を具体的に説明する。有限状態機械M3の極大両立集
合は、{A,B,D,H,I,J},{B,C,E,
H,J},{B,C,F,G,J},{B,D,E,
H,J},{A,B,C,H,J},{A,B,C,
F,J}であり、REDUCE−I(S)とMERGE
(S)を行った後の解Sは、 S={{D,E,J},{B,C,E,H,J},
{A,B,D,I,J},{B,F,G,J}} となる。この解Sに対してEXPAND(S)を行うこ
とを考える。
【0133】まずS内の両立集合{D,E,J}は、も
ともと極大両立集合{B,D,E,H,J}をREDU
CE−I(S)により縮小したものである。したがっ
て、ステップS63においてS[i]={D,E,J}
のとき、t={B,D,E,H,J}となる。そこで、
この極大両立集合のクラス集合を計算すると、{{G,
J},{A,D,J},{B,C,E,J}}となる
(ステップS64)。ここで、極大両立集合のクラス集
合を計算する代わりに、REDUCE−I(S)で既に
計算されている結果を用いてもよい。
【0134】このとき、クラス集合内の各含意集合はS
内のいずれかの両立集合に含まれるので、このクラス集
合に関する閉包条件は満足されている(ステップS6
5,Yes)。そこで、S[i]={B,D,E,H,
J}となり、{D,E,J}は元の極大両立集合{B,
D,E,H,J}に拡大される(ステップS66)。
【0135】他の両立集合についても同様にして、閉包
条件が満たされる場合には元の極大両立集合に拡大され
る。その結果、{A,B,D,I,J}は{A,B,
D,H,I,J}に拡大され、{B,F,G,J}は
{B,C,F,G,J}に拡大されて、EXPAND
(S)実行後のSは、 S={{B,C,F,G,J},{B,C,E,H,
J},{A,B,D,H,I,J},{B,D,E,
H,J}} となる。
【0136】このように、EXPAND(S)によりS
内の両立集合の大きさは大きくなるが、S自身の大きさ
は変わらない。次に、図13および図14を参照しなが
ら、図3のステップS8の処理REDUCE−II(S)
について説明する。
【0137】図13は、REDUCE−II(S)の処理
手続きのフローチャートである。EXPANDにより解
Sに含まれる各両立集合を拡大した後、REDUCE−
II(S)では、REDUCE−I(S)の縮小方法とは
異なった方法でS内の両立集合を縮小する。
【0138】先に述べたREDUCE−I(S)では、
核集合を計算する際に各両立集合自身のクラス集合を用
いていた。しかし、実際には各両立集合のうち必要とな
るのは、その部分集合である核集合だけである。核集合
のクラス集合は両立集合自身のクラス集合よりも小さい
場合があり、小さなクラス集合を用いれば閉包条件がよ
り成立しやすくなると考えられる。REDUCE−I
(S)では、この点が考慮されていない。
【0139】そこでREDUCE−II(S)では、両立
集合単位で閉包条件を満足するかどうかの判定を行うの
ではなく、それより小さな両立的な状態対の単位で判定
を行う。この判定処理を行う対象となる解Sは、既にそ
れ以前の処理により十分大きさが小さくなっていると考
えられる。したがって、このようにREDUCE−I
(S)より綿密な計算処理を行っても高速性が保たれ
る。
【0140】図13において処理が開始されると、演算
処理装置12は、まず元の有限状態機械の状態数をnと
おく(ステップS71)。次に、処理済みの状態の集合
Uを空集合にし(ステップS72)、2つ以上の必須な
状態を持つS内のすべての両立集合を、処理すべき両立
集合の集合Qとする(ステップS73)。
【0141】次に、S内の各両立集合について、それが
Qの要素である場合には、それに含まれるすべての必須
な状態を核集合として設定する(ステップS74)。ま
た、両立集合がQの要素でない場合には、その核集合を
空集合に設定する。これらの各集合には、以下の処理で
有限状態機械の状態が加えられていき、すべての核集合
を要素とする集合が新たな解の候補となる。
【0142】次に、Qが空集合かどうかを判定する(ス
テップS75)。Qが空集合であれば処理を終了し、空
集合でなければ、Qから任意の1つの両立集合を取り出
してそれをcとおく(ステップS76)。そして、Uに
cの核集合の要素を加える(ステップS77)。
【0143】次に、cの核集合のクラス集合に含まれる
各含意集合をdとし、S内でその要素を含む両立集合を
選んでそれをc′とする(ステップS78)。そして、
c′の核集合がdを含まなければc′をQに含める。ま
た、解の候補が閉包条件を満たすようにc′の核集合に
dの要素を加え、Uにc′の核集合の要素を加える。
c′の候補が複数ある場合は、空でない核集合の数がで
きるだけ増えないようにc′を選択する。
【0144】次に、|Q|が0になり、|U|がnにな
ったかどうかを調べる(ステップS79)。もし、これ
らの条件が満たされていなければ、ステップS75以降
の処理を繰り返す。
【0145】そして、ステップS79で|Q|=0かつ
|U|=nになると、次に、解の候補として得られた核
集合の集合が被覆条件を満足するかどうかを判定し(ス
テップS80)、被覆条件が満たされなければ処理を終
了する。ここで、被覆条件が満たされていれば、他の核
集合に包含されている核集合を除去し(ステップS8
1)、核集合の集合をSとして(ステップS82)、処
理を終了する。
【0146】図13の処理によれば、解Sのいずれかの
両立集合が必須な状態を2つ以上含んでいる場合に、ス
テップS78で核集合が更新され、さらに更新後の核集
合の集合が被覆条件を満たしていれば、ステップS82
でSが更新される。
【0147】ここで、図12の有限状態機械M3につい
て、EXPAND(S)を実行した後にREDUCE−
II(S)を行うことを考える。EXPAND(S)の実
行後のSは、上述したように、 S={{B,C,F,G,J},{B,C,E,H,
J},{A,B,D,H,I,J},{B,D,E,
H,J}} である。
【0148】このSにREDUCE−II(S)を施した
時の核集合の変化を図示すると、図14のようになる。
図14において、両立集合の欄は、与えられた解の候補
Sの要素を表し、No.の欄は、その両立集合の番号を
表し、核集合の欄は、その両立集合の核集合を表す。核
集合の欄において、下線を引いたものは変化した核集合
を表す。
【0149】また、クラス集合の欄は、対応する両立集
合の核集合のクラス集合を表し、c′の欄は、クラス集
合の各要素を含む他の両立集合の番号を表す。クラス集
合の欄において、記号“−”は、対応する核集合が空集
合であるためにそのクラス集合が存在しないことを意味
する。ただし、図14に示されたクラス集合は、必ずし
も処理に必要なものばかりではない。
【0150】ステージ1からステージ4までの各段階に
おける核集合を見ていくと、しだいにそれらの要素の数
が増えていき、有限状態機械M3の状態が被覆されてい
くことが分かる。そして、ステージ4においては核集合
が変化しなくなり、これらが新しいSとなって、RED
UCE−II(S)が終了する。
【0151】まず、処理の開始時のSにおいて、必須な
状態を2つ以上持つ両立集合は{B,C,F,G,J}
と{A,B,D,H,I,J}であり、それぞれの必須
な状態はF,GおよびA,Iである。したがって、それ
らの両立集合が処理すべき両立集合のリストであるQに
加えられ、Q={{B,C,F,G,J},{A,B,
D,H,I,J}}となる(ステップS73)。
【0152】また、{B,C,F,G,J}および
{A,B,D,H,I,J}の核集合はそれぞれ{F,
G}および{A,I}となり、S内のその他の両立集合
の核集合は空集合に設定される(ステップS74)。こ
の時点で、各両立集合の核集合はステージ1のようにな
る。以後、これらの状態対{F,G},{A,I}を元
にして、核集合間で閉包条件が満たされるかどうかがチ
ェックされ、それが満たされるように各核集合が拡大さ
れていく。
【0153】次に、Q内の両立集合{B,C,F,G,
J}がcとして取り出され(ステップS76)、Q=
{{A,B,D,H,I,J}}、U={F,G}とな
る(ステップS77)。図12よりcの核集合{F,
G}のクラス集合を計算すると{{D,J},{D,
I},{B,E}}となり、d={D,J},{D,
I},{B,E}となる(ステップS78)。
【0154】まずd={D,J}の場合、dはS内の両
立集合{A,B,D,H,I,J}と{B,D,E,
H,J}に含まれる。ここで、{B,D,E,H,J}
をc′として選ぶとその核集合にdの要素が加えられ、
c′の核集合は空集合でなくなるため、解の候補が大き
くなる。ところが、{A,B,D,H,I,J}の核集
合{A,I}は既に解の候補になっている。そこで、空
でない核集合の数を増やさないために、{A,B,D,
H,I,J}がc′として選択される。
【0155】このとき、{A,B,D,H,I,J}の
核集合{A,I}はd={D,J}を含まないが、
{A,B,D,H,I,J}は既にQに含まれているか
ら、Qは不変である。c′の核集合{A,I}は、dの
要素D,Jが加えられるため、{A,D,I,J}とな
り、Uにはその要素が加えられてU={A,D,F,
G,I,J}となる。
【0156】次に、d={D,I}の場合もc′=
{A,B,D,H,I,J}となるが、c′の核集合
{A,D,I,J}はdを含むのでQは不変である。ま
た、c′の核集合とUも不変である。
【0157】d={B,E}の場合は、dはS内の両立
集合{B,C,E,H,J}と{B,D,E,H,J}
に含まれる。この場合は、どちらの核集合も空集合なの
で、例えば{B,C,E,H,J}がc′として選択さ
れる。c′の核集合はdを含まないので、Qに{B,
C,E,H,J}が加えられて、Q={{A,B,D,
H,I,J},{B,C,E,H,J}}となる。ま
た、c′の核集合は{B,E}となり、U={A,B,
D,E,F,G,I,J}となる。
【0158】ここで、|Q|=0ではないので、次に
{A,B,D,H,I,J}がcとして取り出され(ス
テップS76)、Q={{B,C,E,H,J}}とな
る。cの核集合{A,D,I,J}はUに含まれている
ので、Uは不変である(ステップS77)。{A,D,
I,J}のクラス集合は図12より{{F,G,J},
{C,J}}となるので、d={F,G,J},{C,
J}となる(ステップS78)。
【0159】d={F,G,J}の場合、c′={B,
C,F,G,J}となり、その核集合{F,G}はdを
含まないので、Q={{B,C,E,H,J},{B,
C,F,G,J}}となる。また、c′の核集合は
{F,G,J}となり、Uは不変である。
【0160】また、d={C,J}の場合、例えばc′
={B,C,F,G,J}となり、その核集合{F,
G,J}はdを含まない。しかし、Qは既に{B,C,
F,G,J}を含んでいるので変化しない。また、c′
の核集合は{C,F,G,J}となり、U={A,B,
C,D,E,F,G,I,J}となる。こうして、各両
立集合の核集合はステージ2のようになる。
【0161】次に、Q内の両立集合{B,C,E,H,
J}がcとして取り出され(ステップS76)、Q=
{{B,C,F,G,J}}となる。cの核集合{B,
E}はUに含まれているので、Uは不変である(ステッ
プS77)。{B,E}のクラス集合は図12より
{{G,J}}となるので、d={G,J}となる(ス
テップS78)。
【0162】この場合、c′={B,C,F,G,J}
となり、その核集合{C,F,G,J}はdを含んでい
るのでQは不変である。また、c′の核集合とUも不変
である。
【0163】次に、Q内の両立集合{B,C,F,G,
J}がcとして取り出され(ステップS76)、Q=φ
となる。cの核集合{C,F,G,J}はUに含まれて
いるので、Uは不変である(ステップS77)。{C,
F,G,J}のクラス集合は図12より{{D,I,
J},{H,J},{B,E}}となるので、d=
{D,I,J},{H,J},{B,E}となる(ステ
ップS78)。
【0164】まずd={D,I,J}の場合、c′=
{A,B,D,H,I,J}となり、その核集合{A,
D,I,J}はdを含んでいるのでQは不変である。ま
た、c′の核集合とUも不変である。
【0165】d={H,J}の場合、例えばc′=
{A,B,D,H,I,J}となり、その核集合{A,
D,I,J}はdを含まないので、Q={{A,B,
D,H,I,J}}となる。また、c′の核集合にはd
の要素Hが加えられて、{A,D,H,I,J}とな
り、U={A,B,C,D,E,F,G,H,I,J}
となる。
【0166】d={B,E}の場合、c′={B,C,
E,H,J}となり、その核集合{B,E}はdを含ん
でいるのでQは不変である。また、c′の核集合とUも
不変である。こうして、各両立集合の核集合はステージ
3のようになり、Uは有限状態機械M3のすべての状態
を含むようになる。したがって、被覆条件が満足され
る。
【0167】次に、Q内の両立集合{A,B,D,H,
I,J}がcとして取り出され(ステップS76)、Q
=φとなる。cの核集合{A,D,H,I,J}はUに
含まれているので、Uは不変である(ステップS7
7)。{A,D,H,I,J}のクラス集合は図12よ
り{{F,G,J},{C,J}}となるので、d=
{F,G,J},{C,J}となる(ステップS7
8)。
【0168】d={F,G,J}の場合、c′={B,
C,F,G,J}となり、その核集合{C,F,G,
J}はdを含んでいるのでQは不変である。また、c′
の核集合とUも不変である。
【0169】d={C,J}の場合、例えばc′=
{B,C,F,G,J}となり、その核集合{C,F,
G,J}はdを含んでいるのでQは不変である。また、
c′の核集合とUも不変である。したがって、各両立集
合の核集合は、ステージ4に示すように変化しない。
【0170】ここで、|Q|=0かつ|U|=10=n
となり(ステップS79,Yes)、被覆条件が満足さ
れるので(ステップS80,Yes)、ステージ4の核
集合の集合がSとなって(ステップS82)、処理が終
了する。REDUCE−II(S)を行った後の解Sは、 S={{C,F,G,J},{B,E},{A,D,
H,I,J}} となり、解の大きさが4から3に減少していることが分
かる。
【0171】得られた上記S内の両立集合は、いずれも
EXPAND(S)を行う前のS内の両立集合には含ま
れていないが、EXPAND(S)を行った後のS内の
両立集合には含まれている。これはEXPAND(S)
の処理がなければ、この解にたどりつくことができない
ことを示している。実際に、EXPAND(S)を行わ
ずにREDUCE−II(S)のみを行っても解の大きさ
は減少しない。
【0172】こうして、図2の簡単化プログラム16に
より要素数が削減された両立集合の集合Sは、次に変換
プログラム17により有限状態機械の状態の集合に変換
され、簡単化された有限状態機械の状態遷移表が出力さ
れる(図3、ステップS10)。
【0173】次に、図15から図22までを参照しなが
ら、有限状態機械の簡単化と合成される論理回路の関係
について説明する。図15は、6つの状態と2つの入力
を持つ有限状態機械M4の状態遷移表を示している。ま
ず、この有限状態機械M4の状態数を削減することな
く、順序回路として実現する場合を考える。図15にお
いては、状態数は6であるので、少なくとも順序回路の
フリップフロップは「log26」=3個必要である。ただ
し、「R」は実数R以上の値を持つ最小の整数を表すも
のとする。今、例えばこれらの各状態に対して、図16
に示すように3ビットの符号割り当てを行って、状態ベ
クトルに変換したとする。
【0174】また、入力についてはI1 を0、I2 を1
と割り当て、さらに出力のドントケア値はすべて0であ
るとすると、これらの状態ベクトルおよび入力ベクトル
を用いて、図15の状態遷移表は図17のような遷移・
出力表に変換できる。図17において、y3 2 1
現状態を表す状態ベクトルであり、xは入力を表す入力
ベクトルである。この遷移・出力表をもとに、対応する
順序回路を合成することができる。
【0175】図20は、図17の遷移・出力表を実現し
た順序回路の一例を示している。図20において、組合
せ回路部25に対する入力xは有限状態機械M4の入力
ベクトルに対応しており、3つの入力y3 、y2 、y1
は現状態の状態ベクトルy32 1 の成分に対応して
いる。また、組合せ回路部25の出力zは有限状態機械
M4の出力に対応しており、3つの出力y3 ′、
2 ′、y1 ′は次状態を表す状態ベクトルの成分に対
応している。
【0176】組合せ回路部25は、インバータ22−
1、22−2、22−3、22−4、ANDゲート23
−1、23−2、23−3、23−4、23−5、23
−6、23−7、23−8、23−9、およびORゲー
ト24−1、24−2、24−3からなり、入力x、y
3 、y2 、y1 から出力z、y3 ′、y2 ′、y1 ′を
生成する。フリップフロップ21−1、21−2、21
−3は、現状態を表すy 3 、y2 、y1 をそれぞれ組合
せ回路部25に出力し、次状態を表すy3 ′、y 2 ′、
1 ′を入力として受け取る。次に、受け取ったこれら
の値を、遷移後の新たな現状態を表すy3 、y2 、y1
として組合せ回路部25に与える。
【0177】次に、有限状態機械M4を本発明の状態簡
単化装置により簡単化して、その状態数を削減し、図1
9のような状態遷移表を持つ有限状態機械M5が得られ
たとする。
【0178】図19においては状態数は3であるから、
必要な最小フリップフロップの数は「log23」=2とな
り、図15の場合と比べて1つ少なくなる。これらの各
状態に対して2ビットの状態ベクトルを図20のように
割り当てると、遷移・出力表は図21のようになる。図
21において、y2 1 は現状態を表す状態ベクトルで
あり、xは入力を表す入力ベクトルである。
【0179】図22は、図21の遷移・出力表を実現し
た順序回路の一例を示している。図22において、組合
せ回路部35に対する入力xは図21の有限状態機械M
5の入力ベクトルに対応しており、入力y2 、y1 は現
状態の状態ベクトルy2 1の成分に対応している。ま
た、組合せ回路部35の出力zは有限状態機械M5の出
力に対応しており、出力y2 ′、y1 ′は次状態を表す
状態ベクトルの成分に対応している。
【0180】組合せ回路部35は、インバータ32−
1、32−2、ANDゲート33−1、33−2、33
−3、33−4、およびORゲート34−1、34−2
からなり、入力x、y2 、y1 から出力z、y2 ′、y
1 ′を生成する。フリップフロップ31−1、31−2
は、現状態を表すy2 、y1 をそれぞれ組合せ回路部3
5に出力し、次状態を表すy2 ′、y1 ′を入力として
受け取る。次に、受け取ったこれらの値を、遷移後の新
たな現状態を表すy2 、y1 として組合せ回路部35に
与える。図22の順序回路を図18のそれと比べると、
フリップフロップの数が3個から2個に減少し、組合せ
回路部分のゲート数が16個から8個に減少しているこ
とが分かる。
【0181】一般に、状態数の最小化を行ってから順序
回路の合成を行うと、次のような利点がある。 (1)順序回路に含まれるフリップフロップの数が少な
くなる可能性がある。
【0182】(2)フリップフロップの数が少なくなっ
た場合には、次状態の状態ベクトルの成分のうち、削除
されたフリップフロップに対応するビットの値を計算す
るための論理回路が不要になり、組合せ回路部分のゲー
ト数も少なくなることが多い。
【0183】(3)フリップフロップの数が少なくなら
ない場合でも、状態数が少なくなることにより回路の未
使用状態が増え、組合せ回路部分の合成の際にそれらを
ドントケアとして扱うことにより、組合せ回路のゲート
数が少なくなる可能性がある。
【0184】
【発明の効果】本発明によれば、解の候補となる両立集
合の縮小という単純な処理の繰り返しにより状態数を削
減するため、与えられた有限状態機械を高速に簡単化す
ることができる。また、両立集合を縮小するだけでなく
それを拡大することにより、局所最適解に陥る危険性が
減少し、最小解に近い解が求められる。
【0185】さらに、こうして簡単化された有限状態機
械を用いて、論理回路を簡単化することができる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】実施形態のシステム構成図である。
【図3】簡単化計算処理のフローチャートである。
【図4】REDUCE−Iのフローチャート(その1)
である。
【図5】REDUCE−Iのフローチャート(その2)
である。
【図6】初期解を示す図である。
【図7】REDUCE−Iにおける解の変化を示す図で
ある。
【図8】MERGEのフローチャート(その1)であ
る。
【図9】MERGEのフローチャート(その2)であ
る。
【図10】有限状態機械M2の状態遷移表を示す図であ
る。
【図11】EXPANDのフローチャートである。
【図12】有限状態機械M3の状態遷移表を示す図であ
る。
【図13】REDUCE−IIのフローチャートである。
【図14】REDUCE−IIにおける核集合の変化を示
す図である。
【図15】有限状態機械M4の状態遷移表を示す図であ
る。
【図16】状態割当を示す図である。
【図17】遷移・出力表を示す図である。
【図18】状態数を簡単化せずに合成した時の順序回路
を示す図である。
【図19】状態数を簡単化した有限状態機械M5の状態
遷移表を示す図である。
【図20】状態数を簡単化した場合の状態割当を示す図
である。
【図21】状態数を簡単化した場合の遷移・出力表を示
す図である。
【図22】状態数を簡単化した順序回路を示す図であ
る。
【図23】有限状態機械M1の状態遷移表を示す図であ
る。
【図24】マージ表を示す図である。
【符号の説明】
1 入力手段 2 初期解生成手段 3 両立集合縮小手段 4 両立集合拡大手段 5 出力手段 10 バス 11 入出力装置 12 演算処理装置 13 記憶装置 14 マージ表作成プログラム 15 極大両立集合生成プログラム 16 簡単化プログラム 17 変換プログラム 21−1、21−2、21−3、31−1、31−2
フリップフロップ 22−1、22−2、22−3、22−4、32−1、
32−2 インバータ 23−1、23−2、23−3、23−4、23−5、
23−6、23−7、23−8、23−9、33−1、
33−2、33−3、33−4 ANDゲート 24−1、24−2、24−3、34−1、34−2
ORゲート 25、35 組合せ回路部

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 現在の状態から次の状態への状態遷移の
    規則が定められている有限状態機械がとり得る状態の数
    を削減する情報処理装置において、 前記有限状態機械に関する第1の状態遷移情報を入力す
    る入力手段と、 前記第1の状態遷移情報に基づいて、両立集合の集合を
    初期解として生成する初期解生成手段と、 前記初期解に含まれる第1の両立集合を逐次縮小するこ
    とにより、閉包条件を満たすために必要な両立集合の数
    を削減する両立集合縮小手段と、 削減された両立集合の数に対応する状態数により表現さ
    れる第2の状態遷移情報を出力する出力手段とを備える
    ことを特徴とする状態簡単化装置。
  2. 【請求項2】 前記両立集合縮小手段は、第2の両立集
    合に含まれない状態を前記第1の両立集合から抽出し、
    抽出した状態を要素とする第3の両立集合を生成し、該
    第3の両立集合を用いて前記必要な両立集合の数を削減
    することを特徴とする請求項1記載の状態簡単化装置。
  3. 【請求項3】 前記両立集合縮小手段は、前記第1の両
    立集合から前記閉包条件を満足するために必要な部分集
    合を抽出し、抽出した状態を要素とする第4の両立集合
    を生成し、該第4の両立集合を用いて前記必要な両立集
    合の数を削減することを特徴とする請求項1記載の状態
    簡単化装置。
  4. 【請求項4】 前記両立集合縮小手段により縮小された
    両立集合を再び拡大する両立集合拡大手段をさらに備
    え、該両立集合縮小手段は、拡大された両立集合を再び
    縮小することを特徴とする請求項1記載の状態簡単化装
    置。
  5. 【請求項5】 前記両立集合拡大手段は、前記閉包条件
    が満たされたままで、前記縮小された両立集合を拡大す
    ることを特徴とする請求項4記載の状態簡単化装置。
  6. 【請求項6】 複数の両立集合を1つの両立集合に併合
    しても前記閉包条件が満たされる場合に、該複数の両立
    集合を併合する両立集合併合手段をさらに備えることを
    特徴とする請求項1記載の状態簡単化装置。
  7. 【請求項7】 現在の状態から次の状態への状態遷移の
    規則が定められている有限状態機械がとり得る状態の数
    を削減する情報処理装置において、 第1の状態遷移情報に基づいて生成された両立集合か
    ら、閉包条件を満たすために必要な部分集合を抽出し、
    該部分集合を用いて両立集合の数を削減する両立集合削
    減手段と、 削減された両立集合の数に対応する状態数により表現さ
    れる第2の状態遷移情報を出力する出力手段とを備える
    ことを特徴とする状態簡単化装置。
  8. 【請求項8】 現在の状態から次の状態への状態遷移の
    規則が定められている有限状態機械がとり得る状態の数
    を削減する情報処理装置により用いられる記憶媒体であ
    って、該情報処理装置が、 前記有限状態機械に関する第1の状態遷移情報を入力
    し、 該第1の状態遷移情報に基づいて、両立集合の集合を初
    期解として生成し、 該初期解に含まれる第1の両立集合を逐次縮小すること
    により、閉包条件を満たすために必要な両立集合の数を
    削減し、 削減された両立集合の数に対応する状態数により表現さ
    れる第2の状態遷移情報を出力するように導くことを特
    徴とする記憶媒体。
  9. 【請求項9】 現在の状態から次の状態への状態遷移の
    規則が定められている有限状態機械がとり得る状態の数
    を削減する情報処理方法において、 第1の状態遷移情報に基づいて、両立集合の集合を初期
    解として作成し、 該初期解に含まれる第1の両立集合を逐次縮小すること
    により、閉包条件を満たすために必要な両立集合の数を
    削減し、 削減された両立集合の数に対応する状態数により表現さ
    れる第2の状態遷移情報を作成することを特徴とする状
    態簡単化方法。
JP7324119A 1995-12-13 1995-12-13 有限状態機械の状態数を削減する状態簡単化装置および方法 Withdrawn JPH09160937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7324119A JPH09160937A (ja) 1995-12-13 1995-12-13 有限状態機械の状態数を削減する状態簡単化装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7324119A JPH09160937A (ja) 1995-12-13 1995-12-13 有限状態機械の状態数を削減する状態簡単化装置および方法

Publications (1)

Publication Number Publication Date
JPH09160937A true JPH09160937A (ja) 1997-06-20

Family

ID=18162373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7324119A Withdrawn JPH09160937A (ja) 1995-12-13 1995-12-13 有限状態機械の状態数を削減する状態簡単化装置および方法

Country Status (1)

Country Link
JP (1) JPH09160937A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079723A (ja) * 2008-09-26 2010-04-08 Toshiba Corp 情報処理装置、情報処理方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079723A (ja) * 2008-09-26 2010-04-08 Toshiba Corp 情報処理装置、情報処理方法及びプログラム

Similar Documents

Publication Publication Date Title
US5513122A (en) Method and apparatus for determining the reachable states in a hybrid model state machine
Hachtel et al. ATPG aspects of FSM verification
US7761397B2 (en) Rule processing method and apparatus providing automatic user input selections
Berthet et al. New ideas on symbolic manipulations of finite state machines
JP3741544B2 (ja) 順序回路の状態探索方法および装置並びに状態探索プログラムを記録した記録媒体
US5493505A (en) Initializable asynchronous circuit design
US5796621A (en) Circuit delay abstraction tool
US5502832A (en) Associative memory architecture
JPH09160937A (ja) 有限状態機械の状態数を削減する状態簡単化装置および方法
Higuchi et al. A fast state reduction algorithm for incompletely specified finite state machine
Jacobi A study of the application of binary decision diagrams in multilevel logic synthesis
JP3302218B2 (ja) プライム・コンパチブルによる有限状態機械の状態数最小化装置および方法
Mishchenko et al. Efficient solution of language equations using partitioned representations
Shirokova et al. Optimizing Components of Multi-Module Systems Based on don’t Care Input Sequences
US7483819B2 (en) Representing data having multi-dimensional input vectors and corresponding output element by piece-wise polynomials
Bustan et al. Modular minimization of deterministic finite-state machines
CN113255257B (zh) 基于工艺库的s盒电路的优化方法及系统
Fei et al. Symbolic reachability computation using the disjunctive partitioning technique in supervisory control theory
Rutten et al. An efficient divide and conquer algorithm for exact hazard free logic minimization
Geist et al. NetViz: A Tool for Netlist Security Visualization
Perkowski et al. Symbolic two-dimensional minimization of strongly unspecified finite state machines
Klimowicz et al. Experiments on Minimization Method of Incompletely Specified Finite State Machines for Low Power Design
Stefan Chomsky's Hierarchy & A. Loop-Based Taxonomy for Digital Systems
JP3582849B2 (ja) 論理型プログラム検証方法
CN115658190A (zh) 一种条件触发表式有限状态机实现方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030304