JPWO2018083729A1 - ステートチャート実行装置 - Google Patents
ステートチャート実行装置 Download PDFInfo
- Publication number
- JPWO2018083729A1 JPWO2018083729A1 JP2018548479A JP2018548479A JPWO2018083729A1 JP WO2018083729 A1 JPWO2018083729 A1 JP WO2018083729A1 JP 2018548479 A JP2018548479 A JP 2018548479A JP 2018548479 A JP2018548479 A JP 2018548479A JP WO2018083729 A1 JPWO2018083729 A1 JP WO2018083729A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- state
- unit
- state chart
- transition
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
- Devices For Executing Special Programs (AREA)
- Navigation (AREA)
Abstract
Description
実施の形態1.
図1は、この発明の実施の形態1に係るステートチャート実行装置101の構成例を示すブロック図である。ステートチャート実行装置101は、バイナリデータ生成部10と、ステートチャート実行部20とを備えている。バイナリデータ生成部10は、ステートチャート情報読み込み部11と、関連度計算部12と、個別データバイナリ化部13と、最適配列計算部14と、オフセット設定部15と、バイナリデータ統合部16とを有している。ステートチャート実行部20は、バイナリデータ読み込み部21と、通信部22と、状態遷移処理部23とを有している。
ステップST1において、ステートチャート情報読み込み部11は、ステートチャート情報103を読み込み、ステートチャートを構成するデータを生成する。
なお、実施の形態1において、ステートは状態と同義である。ステートチャートは、状態遷移図、ステートマシン図、および状態機械図と同義である。
以下では、SCXML形式で記述されたステートチャート情報103を例に用いて実施の形態1を説明するが、記述形式はこれに限らない。
遷移データ1
・event=“ev1”
・target=“st2”
遷移データ2
・event=“ev2”
・target=“st1”
ステートデータ1
・id=“st1”
・遷移データ1
ステートデータ2
・id=“st2”
・遷移データ2
ここで、関連度について定義する。ステートチャート実行時に2つのデータが近い順番でアクセスされる可能性が高い場合、該当のデータ間の関連度は高いものとする。反対に、離れた順番でアクセスされる可能性が高い場合、該当のデータ間の関連度は低いものと定義する。
関連度計算部12は、以下のルール(1)〜(6)に基づいてステートチャートを構成するデータ間の関連度を計算する。
ルール(1):遷移データと遷移先のステートデータとの関連度を1とする
ルール(2):親子関係にあるデータは関連度を3とする
ルール(3):平行状態(パラレルステート)にあるステートデータ間の関連度を2とする
ルール(4):自己遷移するステートデータと遷移データとの関連度を4とする
ルール(5):ルール(1)〜(4)に該当しないデータ間の関連度を0とする
ルール(6):初期ステートと、初期ステートの遷移先のデータとの関連度を1とする
上記ルールにおける関連度は、0〜4の整数値であるが、これに限らず、ユーザが適宜設定した実数値でよい。
・ステートデータ1(st1)は、子要素に遷移データ1(ev1)を持つため、ルール(2)が適用され、関連度が3となる。
・ステートデータ1(st1)とステートデータ2(st2)とは直接関連がないため、ルール(5)が適用され、関連度が0となる。
・初期ステートデータ(initial)は、ステートデータ1(st1)に遷移するため、ルール(6)が適用され、関連度が1となる。
上記ルールに基づく関連度計算により、図5に示すステートチャートから、図6に示す関連度の表が得られる。ここで、図5および図6を用いて、ルールに基づく関連度計算の具体例について述べる。
以下では、説明のために、ステート名stを持つステートデータを「ステートデータst」、イベント名evを持つ遷移データを「遷移データev」などと呼ぶ。
・ステートデータst1は、子要素に遷移データev1を持つため、ルール(2)が適用され、関連度が3となる。
・平行状態データpa1は、子要素にステートデータst3とステートデータst4を持つ。このため、ルール(2)が適用され、平行状態データpa1とステートデータst3との関連度は3、平行状態データpa1とステートデータst4との関連度も3となる。
・平行状態データpa1において、ステートデータst3とステートデータst4は平行に実行される。このため、ルール(3)が適用され、ステートデータst3とステートデータst4との関連度は2となる。
・ステートデータst2は、子要素にステートデータst21とステートデータst22を持つ。このため、ルール(2)が適用され、ステートデータst2とステートデータst21との関連度は3、ステートデータst2とステートデータst22との関連度も3となる。
・遷移データev5は、ステートデータst1に自己遷移しているため、ルール(4)が適用され、関連度は4となる。
関連度計算部12は、各遷移状態に関わる利用頻度の情報を利用して、データ間の関連度を計算してもよい。
図7は、この発明の実施の形態1におけるステートチャートの別の例を示す図である。図8は、図7に示すステートチャートから得られる関連度の表である。図7および図8を用いて、利用頻度に基づく関連度計算の具体例について述べる。
分類(1):簡単で短いユーザの命令、またはカーナビゲーションシステムが「はい(Yes)」か「いいえ(No)」で回答できる質問
質問例:「カーナビ起動して」、「ナビ終了」、「ここ右折かな?」、「近くに道の駅がある?」
分類(2):カーナビゲーションシステムが複雑で長い回答を返すと想定される質問
質問例:「おすすめのレストランは?いまラーメンかカレーが食べたいな」
分類(3):エラー処理
例:音声認識デバイスが起動しない等、稀に発生するエラー時の処理
・ステートデータst1は、カーナビゲーションシステムがユーザの問い合わせを受け付け、質問を分類する状態
・遷移データev1は、分類(1)が発生した場合の遷移
・遷移データev2は、分類(2)が発生した場合の遷移
・遷移データev3は、分類(3)が発生した場合の遷移
・ステートデータst2は、カーナビゲーションシステムが分類(1)の回答処理をする状態
・ステートデータst3は、カーナビゲーションシステムが分類(2)の回答処理をする状態
・ステートデータst4は、カーナビゲーションシステムが分類(3)の回答処理をする状態
・ステートデータst1から遷移データev1を経由する確率が最も高いため、ステートデータst1と遷移データev1との関連度を15とする。
・ステートデータst1から遷移データev2を経由する確率が2番目に高いため、ステートデータst1と遷移データev2との関連度を10とする。
・ステートデータst1から遷移データev3を経由する確率が最も低いため、ステートデータst1と遷移データev3との関連度を1とする。
カーナビゲーションシステムなどの車載機器が、ユーザに対して機器の使い方または道順などを教示する際に、ユーザの動作を誘導したい場合がある。その場合、誘導したい度合(以下、「誘導度合い」と称す)の高い状態遷移に関わるデータ間の関連度を相対的に高めてもよい。
選択肢(1)レストランA:現在地からの移動に伴う燃費コスト1
選択肢(2)レストランB:現在地からの移動に伴う燃費コスト5
選択肢(3)レストランC:現在地からの移動に伴う燃費コスト10
・ステートデータst1は、選択肢(1)〜(3)をユーザに提示した状態。ただし、カーナビゲーションシステムは、燃費コストが1番低い選択肢(1)をユーザに優先的に勧める。すなわち、選択肢(1)が最も誘導度合いが高い。カーナビゲーションシステムは、例えば、選択肢(1)の表示文字を他の選択肢の表示文字より大きくしたり、選択肢(1)をリストの1番上位に表示したり、音声ガイダンスで選択肢(1)を勧めたりする
・遷移データev1は、ユーザにより選択肢(1)が選択された場合の遷移
・遷移データev2は、ユーザにより選択肢(2)が選択された場合の遷移
・遷移データev3は、ユーザにより選択肢(3)が選択された場合の遷移
・ステートデータst2は、選択肢(1)が選択された後のカーナビゲーションシステムの処理
・ステートデータst3は、選択肢(2)が選択された後のカーナビゲーションシステムの処理
・ステートデータst4は、選択肢(3)が選択された後のカーナビゲーションシステムの処理
・選択肢(1)の誘導度合いが高いため、ステートデータst1から遷移データev1を経由する確率が最も高いと判断する。このため、ステートデータst1と遷移データev1との関連度を15とする。
・ステートデータst1から遷移データev2を経由する確率と、ステートデータst1から遷移データev3を経由する確率とは同程度に低い。このため、ステートデータst1と遷移データev2との関連度は1、ステートデータst1と遷移データev3との関連度も1とする。
関連度計算部12は、設計時におけるステートチャートの修正日時に基づき、データ間の関連度を計算してもよい。例えば、設計の採取段階において、最も新しく修正されたデータは、重要な処理フローと考えられるため、その他のデータと比較して関連度を高くする。
図9は、この発明の実施の形態1におけるステートチャートの別の例を示す図である。図10は、図9に示すステートチャートから得られる関連度の表である。図9および図10を用いて、修正日時に基づく関連度計算の具体例について述べる。
図9に示すステートチャートは、図3Aに示したステートチャートに対して遷移データev3が追加されたものである。関連度計算部12は、追加された遷移データev3を重要な処理とみなして、ステートデータst1と遷移データev3との関連度を、他のデータ間の関連度よりも相対的に高い値である10に設定し、図10の関連度表を得る。なお、図10において初期ステートデータ(initial)の関連度の図示は省略する。
関連度計算部12は、設計時におけるステートチャートの修正頻度に基づき、データ間の関連度を計算してもよい。
図11は、この発明の実施の形態1におけるステートチャートの修正頻度を示すグラフである。関連度計算部12は、ステートチャートの設計時、当該ステートチャートを構成するデータA〜Fそれぞれの修正頻度を求め、低頻度に修正されたデータ群と、高頻度に修正されたデータ群と、残りのデータ群とに分類する。高頻度に修正されたデータ群は設計上重要な処理フローである可能性が高いため、関連度計算部12は、高頻度に修正されたデータ群の関連度を残りのデータ群の関連度より高くする。また、低頻度に修正されたデータ群は修正が不要な基本的な処理フローである可能性が高いため、関連度計算部12は、低頻度に修正されたデータ群の関連度を残りのデータ群の関連度より高くする。
図11の例であれば、低頻度に修正されたデータAとデータBとの関連度に「1」が加算される。同様に、高頻度に修正されたデータEとデータFとの関連度に「1」が加算される。データAとデータCとの関連度、およびデータAとデータEとの関連度等、その他のデータ間の関連度はそのままである。この例では関連度に加算する値を「1」としたが、値はこれに限られない。また、低頻度に修正されたデータ群の関連度に加算する値と、高頻度に修正されたデータ群の関連度に加算する値とは、同じ値であってもよいし、異なる値であってもよい。
ここでは、ステートチャート情報103が、図3Bに示すSCXML形式で記述されている場合を考える。
(1)id=“st1”を持つステートデータへのオフセット
オフセットとは、後のステップST6にて作成するバイナリデータ104における該当データの開始位置である。ここでは、オフセットは整数値であり、そのデータサイズを4バイトと仮定した。このため、バイナリ化したヘッダデータのデータサイズは、4バイトである。
上記(1)のオフセットには後のステップST5で値を代入することになるため、ステップST3では個別データバイナリ化部13は疑似的に整数値の0を代入する。
(1)eventの“ev1”を表す文字列
(2)targetの文字列の代替として、id=“st2”を持つステートデータへのオフセット
ここで、1文字のデータサイズを2バイトと仮定したため、上記(1)の“ev1”を表す文字列のデータサイズは6バイトである。上記(2)のオフセットは4バイトの整数値である。このため、バイナリ化した遷移データ1のデータサイズの合計は、10バイトである。
また、上記(2)のオフセットには後のステップST5で値を代入することになるため、ステップST3では個別データバイナリ化部13は疑似的に整数値の0を代入する。
(1)idの“st1”を表す文字列
(2)遷移データ1へのオフセット
ステートデータ1も遷移データ1と同様、1文字のデータサイズを2バイトと仮定したため、上記(1)の“st1”を表す文字列のデータサイズは6バイトである。上記(2)のオフセットは4バイトの整数値である。このため、バイナリ化したステートデータ1のデータサイズの合計は、10バイトである。
また、上記(2)のオフセットには後のステップST5で値を代入することになるため、ステップST3では個別データバイナリ化部13は疑似的に整数値の0を代入する
最適配列計算部14は、ステートチャートを構成する各データを一次元配列に並べた際の、隣接するデータ間の関連度を総計した総合関連度を計算し、総合関連度が最大となるデータの順列を求める。
図14は、この発明の実施の形態1に係るステートチャート実行装置101の最適配列計算部14が行う動作を説明する図である。最適配列計算部14は、図4の関連度表を利用して、図14に示す順列A,Bの総合関連度を計算する。
総合関連度
=(ヘッダデータと遷移データ1との関連度)
+(遷移データ1と遷移データ2との関連度)
+(遷移データ2とステートデータ1との関連度)
+(ステートデータ1とステートデータ2との関連度)
=0+0+1+0
=1
総合関連度
=(ヘッダデータとステートデータ1との関連度)
+(ステートデータ1と遷移データ1との関連度)
+(遷移データ1とステートデータ2との関連度)
+(ステートデータ2と遷移データ2との関連度)
=1+3+1+3
=8
総合関連度の計算式は、最適なデータの順列を求めるための評価関数である。
N=2の場合の順列Bの総合関連度
=(ヘッダデータとステートデータ1との関連度)
+(ヘッドデータと遷移データ1との関連度)
+(ステートデータ1と遷移データ1との関連度)
+(ステートデータ1とステートデータ2との関連度)
+(遷移データ1とステートデータ2との関連度)
+(遷移データ1と遷移データ2との関連度)
+(ステートデータ2と遷移データ2との関連度)
=1+0+3+0+1+0+3
=8
最適配列計算部14は、データ間の距離が遠くなるほど関連度が減少するような評価関数を設定し、その評価関数が最大となるようなデータの順列を求めてもよい。
変数の定義
M:データ数
E:ステートチャートを構成するデータの順列の集合。要素数はM!
s(i):ステートチャートを構成するi番目のデータ
s(j):ステートチャートを構成するj番目のデータ
r(i,j):s(j)とs(i)との関連度
d(e,i,j):順列e∈Eに従ってデータを一次元に配列した場合の、s(j)とs(i)との距離。すなわち、s(j)とs(i)とのオフセット(データ開始位置)の差分の絶対値。
最適配列計算部14は、あらかじめ定められた距離以上離れてしまうデータ間の関連度を総計してコスト関数とし、コスト関数が最小となるようなデータの順列を求めてもよい。ここで、上記のあらかじめ定められた距離を、閾値B1と定義する。閾値B1には、例えば、CPU(Central Processing Unit)が持つキャッシュメモリのブロックサイズまたはラインサイズが設定される。これにより、キャッシュヒットミスが低減されるようなデータの順列を求めることができる。
変数の定義
E:ステートチャートを構成するデータの順列の集合
B1:上述した閾値
s(i):ステートチャートを構成するi番目のデータ
s(j):ステートチャートを構成するj番目のデータ
r(i,j):s(j)とs(i)との関連度
d(e,i,j):順列e∈Eに従ってデータを一次元に配列した場合の、s(j)とs(i)との距離
X1(e):d(e,i,j)>B1を満たすi,jの組
B2:B1<B2を満たす閾値(キャッシュメモリのブロックサイズ等)
X2(e):d(e,i,j)>B2を満たすi,jの組
α,β:適切な重み係数
最適配列計算部14は、準最適解を求める方法として、遺伝アルゴリズムなどの確率的最適化手法を利用できる。最適配列計算部14は、例えば、ステートチャートを構成するデータの順列を、下記文献の34ページに記載された順序表現(Ordinal Representation)で表現し、最適配列計算方法(1)もしくは(2)で示した評価関数を最大化するような順列、または最適配列計算方法(3)で示したコスト関数を最小化するような順列を、遺伝アルゴリズムにより求める。
伊庭 斉志、「遺伝的アルゴリズムの基礎―GAの謎を解く―」、第1版、オーム社、1994、p.34
オフセット設定部15は、順列Bの順番に従って、ステートデータを構成するデータを並べる。結果、図15の通り、ヘッダデータ、ステートデータ1、遷移データ1、ステートデータ2、遷移データ2の順番でデータが配置される。
そこで、以下では、オフセット設定部15がオフセットアレイデータとオフセットアレイデータのインデックスとを用いて、効率的にデータをバイナリ化する方法について述べる。
オフセット設定部15は、オフセットアレイデータを追加で用意し、ヘッダデータ、オフセットアレイデータ、ステートデータ1、遷移データ1、ステートデータ2、遷移データ2の順番に配置する。
インデックス0:21(ステートデータ1のオフセット)
インデックス1:31(遷移データ1のオフセット)
インデックス2:41(ステートデータ2のオフセット)
インデックス3:51(遷移データ2のオフセット)
例えば、図15において、ステートデータ1には「遷移データ1のオフセット」(オフセット値15)が設定されていたが、その代替として、図16ではオフセットアレイデータのインデックス1を設定する。オフセットアレイデータにおいて、インデックス1は、遷移データ1のオフセットである31が設定されているためである。
インデックス0:21(ステートデータ1のオフセット)
インデックス1:39(遷移データ1のオフセット)
インデックス2:49(ステートデータ2のオフセット)
インデックス3:59(遷移データ2のオフセット)
図17は、この発明の実施の形態1におけるステートチャートの別の例を示す図である。このステートチャートでは、通信部22は、“ev1”のイベント文字列、または“ev2”のイベント文字列と付随データvalue1==10とを受信する。
バイナリデータ読み込み部21は、初めに、バイナリデータ104のヘッダデータを読み込み、ヘッダデータに記述された初期ステートデータにアクセスする。図18の例では、初期ステートデータのオフセットに5が設定されている。このため、バイナリデータ読み込み部21は、バイナリデータ104の5バイト目にアクセスし、ステートデータ1を読み込む。これにより、ステートチャートの初期状態はst1となる。
次に、通信部22は、外部機器102からイベント情報を受信する。ここでは例えば、イベント文字列“ev1”を受信したものとする。
次に、状態遷移処理部23は、ステートデータ1が持つ遷移データ1のオフセットを参照し、15バイト目の遷移データ1を読み込む。この遷移データ1には、イベント名“ev1”があり、先に受信したイベント文字列“ev1”と同一であることから、状態遷移処理部23は、遷移先のステートデータ2に遷移する。具体的には、遷移先のステートデータ2のオフセットとして設定されている25バイト目のデータにアクセスする。これにより、ステートデータ2に記述されたステート“st2”に遷移する。
遷移先のデータのオフセットが25バイトと設定されていることにより、状態遷移処理部23が状態遷移する際に、探索処理を必要とせず、次の遷移情報にアクセスすることができる。
一方、遷移データ1のイベント名と受信したイベント文字列とが一致しない場合、状態遷移処理部23はステート“st1”に留まる。
次に、通信部22は、外部機器102からイベント文字列“ev2”と、それに付随するデータvalue1==10とを受信する。
次に、状態遷移処理部23は、遷移データ2にアクセスし、遷移データ2が持つイベント名“ev2”と受信したイベント文字列“ev2”とが一致するか判定する。ここでは、遷移データ2が持つイベント名と受信したイベント文字列とが一致することから、状態遷移処理部23は、次のガード条件判定に進む。一致しない場合、状態遷移処理部23はステート“st2”に留まる。
次に、状態遷移処理部23は、遷移データ2に記載されたガード条件文字列と外部機器102から受信した付随データのガード条件文字列とを比較し、ガード条件文字列の真偽を判定する。状態遷移処理部23は、ガード条件文字列が真である場合、アクションデータに記載されたアクションを実行し、次の状態に遷移する。ここでは、受信した付随データがvalue1==10であることから、図18に記載されたガード条件文字列は真である。そこで、状態遷移処理部23は、アクション文字列“Action1()”を取得し、Action1()を実行する。Action1()は、外部機器102に登録された関数などであり、例えばステートチャート実行部20が通信部22を介して特定の外部機器102へイベント情報を送信するなどの命令が記述されている。最後に、状態遷移処理部23は、ステートデータ1のオフセットに設定された5バイト目のデータにアクセスし、次のステート“st1”に遷移する。
一方、ガード条件文字列が偽である場合、状態遷移処理部23はステート“st2”に留まる。
図19Aおよび図19Bは、この発明の実施の形態1に係るステートチャート実行装置101のハードウェア構成の一例を示す図である。
ステートチャート実行装置101におけるバイナリデータ生成部10およびステートチャート実行部20の各機能は、処理回路により実現される。すなわち、ステートチャート実行装置101は、状態の遷移を表現したステートチャートに関するステートチャート情報103をバイナリデータ104にし、このバイナリデータ104に基づいてステートチャートの処理を実行するための処理回路を備える。処理回路は、図19Aに示すように専用のハードウェアであってもよいし、図19Bに示すようにメモリ1006に格納されているプログラムを実行するCPU1005であってもよい。
バイナリデータ生成部10およびステートチャート実行部20の機能をまとめて1つの処理回路1001で実現してもよいし、複数の処理回路1001で実現してもよい。
また、CPU1005は、1次キャッシュメモリおよび2次キャッシュメモリ等の複数のキャッシュメモリを備えてもよい。CPU1005は、バイナリデータ読み込み部21の機能を実現する際、バイナリデータ104を読み込んでキャッシュメモリ上に展開する。
また、ステートチャート実行装置101を構成する処理回路1001またはCPU1005が、ステートチャート実行装置101の機能だけでなく、外部機器102の機能を実現してもよい。例えば、カーナビゲーションシステムのCPUが、ステートチャート実行装置101および外部機器102の各機能を実現する構成であってもよい。あるいは、例えばコンピュータのCPUが、バイナリデータ生成部10の機能を実現し、カーナビゲーションシステムのCPUがステートチャート実行部20および外部機器102の各機能を実現する構成であってもよい。
最適配列計算部14が評価関数またはコスト関数を最適化するようなデータの順列を求めることで、メモリ上で、関連性の高いデータを近くに配置することができる。これにより、ステートチャート実行部20がステートチャートを実行するときに、CPUのキャッシュヒット率の向上およびキャッシュヒットミスの低減が見込まれ、よってステートチャートの処理高速化が見込める。
オフセットを利用したデータアクセスにより、状態遷移処理部23が状態遷移処理を実行する際に直接遷移先のステートデータにアクセスできる。このため、ステート名の文字列からステートデータを探索するような処理が発生せず、よって状態遷移処理の高速化が可能である。
Claims (4)
- 状態の遷移を表現したステートチャートに関するステートチャート情報をバイナリデータにするバイナリデータ生成部と、
前記バイナリデータに基づいて前記ステートチャートの処理を実行するステートチャート実行部とを備え、
前記バイナリデータ生成部は、
前記ステートチャート情報を読み込み、前記ステートチャートを構成するデータを生成するステートチャート情報読み込み部と、
前記ステートチャートを構成するデータ間の関連度を計算する関連度計算部と、
前記ステートチャートを構成するデータをバイナリ化する個別データバイナリ化部と、
前記関連度計算部が計算した関連度に基づき、前記ステートチャートを構成するデータの配列を計算する最適配列計算部と、
前記個別データバイナリ化部がバイナリ化した前記データを前記最適配列計算部が計算した配列で並べた場合の位置を示すオフセットを設定するオフセット設定部と、
前記個別データバイナリ化部がバイナリ化し前記オフセット設定部がオフセットを設定した前記データを、前記最適配列計算部が計算した配列で統合して前記バイナリデータにするバイナリデータ統合部とを有することを特徴とするステートチャート実行装置。 - 前記ステートチャート実行部は、
前記バイナリデータを読み込むバイナリデータ読み込み部と、
外部機器からイベント情報を受信する通信部と、
前記通信部が受信したイベント情報に従って前記ステートチャートの状態遷移処理を実行する際に、前記バイナリデータに設定されたオフセットが示す位置のデータにアクセスする状態遷移処理部とを有することを特徴とする請求項1記載のステートチャート実行装置。 - 前記関連度計算部は、関連度を計算するための予め定められたルール、前記ステートチャートを構成するデータの利用頻度、前記ステートチャートにおける状態遷移の誘導度合い、前記ステートチャートを構成するデータの修正日時もしくは修正頻度のうちのいずれか1つ、または組み合わせに基づいて、関連度を計算することを特徴とする請求項1記載のステートチャート実行装置。
- 前記最適配列計算部は、前記関連度計算部が計算した関連度に基づき、前記関連度が高いデータ同士が近くに配置されるような配列を計算することを特徴とする請求項1記載のステートチャート実行装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/082430 WO2018083729A1 (ja) | 2016-11-01 | 2016-11-01 | ステートチャート実行装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018083729A1 true JPWO2018083729A1 (ja) | 2019-03-07 |
JP6486572B2 JP6486572B2 (ja) | 2019-03-20 |
Family
ID=62076651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018548479A Active JP6486572B2 (ja) | 2016-11-01 | 2016-11-01 | ステートチャート実行装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11314528B2 (ja) |
JP (1) | JP6486572B2 (ja) |
CN (1) | CN109891384B (ja) |
DE (1) | DE112016007281B4 (ja) |
WO (1) | WO2018083729A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216641A (ja) * | 1992-02-06 | 1993-08-27 | Toshiba Corp | グラフィカル・ユーザ・インタフェース制御プログラム生成装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1124907A (ja) | 1997-06-27 | 1999-01-29 | Toshiba Corp | ソフトウエア開発支援方法およびソフトウエア開発支援装置 |
US8244545B2 (en) | 2006-03-30 | 2012-08-14 | Microsoft Corporation | Dialog repair based on discrepancies between user model predictions and speech recognition results |
CN101551803A (zh) * | 2008-03-31 | 2009-10-07 | 华为技术有限公司 | 一种建立模式匹配状态机、模式识别的方法和装置 |
US9082073B2 (en) | 2011-11-30 | 2015-07-14 | Metaswitch Networks Ltd. | Method and apparatus for operating a finite state machine |
US10055203B2 (en) * | 2013-05-28 | 2018-08-21 | The Mathworks, Inc. | Implicit event broadcast in a state chart of a technical computing environment |
US9147070B2 (en) * | 2013-08-12 | 2015-09-29 | Cisco Technology, Inc. | Binary translation and randomization system for application security |
CN105512727B (zh) * | 2015-11-27 | 2018-02-13 | 浙江理工大学 | 一种基于Markov的个人路径预测方法 |
-
2016
- 2016-11-01 CN CN201680090211.6A patent/CN109891384B/zh active Active
- 2016-11-01 US US16/338,875 patent/US11314528B2/en active Active
- 2016-11-01 WO PCT/JP2016/082430 patent/WO2018083729A1/ja active Application Filing
- 2016-11-01 JP JP2018548479A patent/JP6486572B2/ja active Active
- 2016-11-01 DE DE112016007281.3T patent/DE112016007281B4/de active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216641A (ja) * | 1992-02-06 | 1993-08-27 | Toshiba Corp | グラフィカル・ユーザ・インタフェース制御プログラム生成装置 |
Non-Patent Citations (2)
Title |
---|
矢崎 孝、今宮淳美: "制約を用いるステートチャートエディタ", 情報処理学会研究報告, vol. Vol.93,No.19, JPN6016048215, 11 March 1993 (1993-03-11), JP, pages p.11−20(93-PRG-11-2) * |
苅部卓哉、吉岡信和、田原康之、本位田真一: "マルチメディアコンテンツ流通のためのモバイルエージェントのモデル駆動開発", レクチャーノート/ソフトウェア学30 ソフトウェア工学の基礎XI, vol. 初版, JPN6016048217, 30 November 2004 (2004-11-30), JP, pages p.69−72 * |
Also Published As
Publication number | Publication date |
---|---|
US11314528B2 (en) | 2022-04-26 |
WO2018083729A1 (ja) | 2018-05-11 |
CN109891384B (zh) | 2022-04-15 |
CN109891384A (zh) | 2019-06-14 |
JP6486572B2 (ja) | 2019-03-20 |
DE112016007281B4 (de) | 2023-11-02 |
US20210286630A1 (en) | 2021-09-16 |
DE112016007281T5 (de) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102129640B1 (ko) | 스트링 변환의 귀납적 합성을 위한 랭킹 기법 | |
CN110705709B (zh) | 训练图神经网络模型的方法和装置 | |
CN110110858B (zh) | 一种基于强化学习的自动化机器学习方法 | |
JP6403834B2 (ja) | 離散最適化のための帰納論理プログラミング強化ディープビリーフネットワーク・モデルのトレーニング | |
CN103425727A (zh) | 上下文语音查询扩大方法和系统 | |
JP2015508918A (ja) | 冗長な消費者トランザクションルールのフィルタリング | |
JP5980520B2 (ja) | 効率的にクエリを処理する方法及び装置 | |
US11681541B2 (en) | Methods, apparatus, and articles of manufacture to generate usage dependent code embeddings | |
JP6486572B2 (ja) | ステートチャート実行装置 | |
JP5252596B2 (ja) | 文字認識装置、文字認識方法及びプログラム | |
CN111783088A (zh) | 一种恶意代码家族聚类方法、装置和计算机设备 | |
JP5379812B2 (ja) | データ抽出装置、データ抽出方法、及びプログラム | |
CN112100307B (zh) | 数据处理方法、寻路处理方法、装置及电子设备 | |
JP5832869B2 (ja) | カテゴリーマッチングを用いたキーワード抽出システムおよびキーワード抽出方法 | |
CN107220249A (zh) | 基于分类的全文搜索 | |
JP5494066B2 (ja) | 検索装置、検索方法および検索プログラム | |
JP6973733B2 (ja) | 特許情報処理装置、特許情報処理方法およびプログラム | |
US20230316113A1 (en) | Inference apparatus, inference method, and computer-readable recording medium | |
US20230237351A1 (en) | Inference apparatus, inference method, and computer-readable recording medium | |
US20230245486A1 (en) | Methods, systems, articles of manufacture and apparatus to improve tagging accuracy | |
WO2020044413A1 (ja) | 仮説推論装置、仮説推論方法、及びコンピュータ読み取り可能な記録媒体 | |
WO2020008631A1 (ja) | 観測事象判定装置、観測事象判定方法、及びコンピュータ読み取り可能な記録媒体 | |
WO2024129366A1 (en) | Model pre-training for user interface navigation | |
JP2015170044A (ja) | 依存構造解析方法、装置、及びプログラム | |
CN112258297A (zh) | 推送物品的描述信息的方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181210 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20181210 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20181219 |
|
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: 20190122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6486572 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |