ホーム
Download
教科書
背景資料
技術資料
Q & A
MTA-SDKクイックスタート
「インストール」手順に従って、システム開発環境MTA-SDKをインストールしましたか?
確認のために,さっそく動かしてみましょう。電源を入れ、Linuxが起動すると、たぶんWindowsやMacintoshみたいなグラフィックユーザーインターフェースGUIのデスクトップ画面になっているはずです。そこから解説します。
1。システム開発環境の起動と終了
メニューやボタンでterminalモードに入ってください(terminalウインドウを開く)。

そして、ディレクトリdssに移動してしてください(lsコマンドやcdコマンドを使用する)。
[student]$ cd dss
念のため、pwdコマンドで現在のディレクトリを確認することもできます。さて、まぎらわしいのですが,extPrologの実際の実行可能ファイル名は"xsheet"です.terminalウインドウでextPrologを起動したいので,以下のコマンドを入力します.
[student]$ ./xsheet
そしてリターンキーを押すと、extPrologが起動し、2つのウインドウが開きます。

(場合によっては,再起動が必要かも知れません.)
これがMTAのシステム開発環境です.左側のDialogウインドウは、あなたが作ったユーザモデルを読み込んで実行する場所です。(古い.pタイプのユーザモデルなら,ここで直接プログラミングすることもできます.)プロンプトは[x>]となっているはずです。[ 終了は、右側のMTableウインドウにあるexitボタンで行ないます。終了すれば、Linux環境に戻ります。]
2。動作確認
何か動かしてみましょう.すでに参考モデルjar.pができあがっていますので、Dialogウインドウの中で
x> jar.p
を実行すると、なんだか動きます。
「トレースするか」と聞かれたら,n と答えてください.

このjar.pが何のモデルなのかは聞かないでください(あくまでも動作確認のためです).終了は、MTableウインドウにあるexitボタンで行ないます。終了すれば、Linux環境に戻ります。プログラムが暴走したり、フリーズしたときは、CTRL+Cで強制終了させます。
ここまでできれば,「MTA-SDKが正常にインストールされた」ことになります.
3。ユーザモデルの作成「例:WGC問題を解く」
通常は、システム開発環境を起動する前に、テキストエディタでユーザモデルを作成します。「テキストエディタでユーザモデル作成→extProlog(xsheet)を起動する→作成したユーザモデルを読み込んで(コンパイルして)実行する」という手順です。
Linux環境にあるとき、あなたのLinuxに付属している、日頃使用しているテキストエディタを起動し、ユーザモデルを作成し,保存します(拡張子は".set")。実行可能ファイルxsheetが存在する同じフォルダ(dssまたはtps)に保存します。必ず、ここに保存しなければ動きません。
<WGC問題>
川に差し掛かると,小さなボートがひとつありました。農夫fは,狼1匹w,山羊1匹g,キャベツ1個cと一緒でした。
・川を渡る際の条件:
(1) ボートを操作できるのは,農夫だけです。川を泳いで渡ることはできません。
(2) ボートには,1回の横断につき1つの物しか積めません。
(3) 狼と山羊だけにすると,狼が山羊を食べてしまいます。
(4) 山羊とキャベツだけにすると山羊がキャベツを食べてしまいます。
農夫は最低何回川を横切れば,どれも失わずに川を渡れるでしょうか?
この問題のイメージ図は次の通りである。
最初 f,w,g,c →川→ (対岸)
最後 →川→ f,w,g,c
状態(状況)c を、左岸にいるメンバーの集合で表現する。たとえば、{"f","w","c"}とは、こちらの岸に農夫と狼とキャベツがいることを表わしている。反対にいえば、対岸に羊だけがいることになる。まぎらわしいですが,cは「状態」を表わす変数で,"c"はキャベツです.
この問題の設定は,結局,状況を初期状態 c = {"f","w","g","c"}から、最終状態 c = { }に、どのように移動させればいいかである。また,農夫は,毎回,誰を連れてゆくかの選択をしなければならない.選択の範囲は,A = {"w","g","c", 0} である.0は誰も連れて行かないことを表わしている.
この問題を解くユーザモデルは、ここにあります。1行目はコメント行で、それ以下の行に、WGC問題そのものの表現がオートマトンの状態遷移関数delta(c,a)や状態評価関数goal(c)で記述されています。
通常は,このような記述をテキストエディタで作成し,テキストファイルとして保存するわけです.しかし,ここでは取りあえず書いたことにして,画面に表示されたものをダウンロード(あるいはテキストエディタにコピー&貼付け)し,ファイルをwgc80.setという名称で保存します.
さて、extPrologを起動します.左側のDialogウインドウに,ファイル名wgc80.setを入力し,リターンキーを押すと,コンピュータが勝手にコンパイルし,問題解決システム(wgc80.p)を作成し,求解してくれます(ただし,実行開始時に,4回ほど設定を聞かれますが,y, y, y, n と答えてください).
注:「WGC問題を解くシステム」の実際の開発手順の詳細は、教科書の第5章に書いてあります。その他,資料紹介ページにも文献があります.
4。モデルの修正(エディタの使い方)
問題を変更したら、解が変わります。たとえば、上記のユーザモデル wgc80.set は、初期状態が{"f","w","g","c"}です。つまり、全員がこちらの岸にいることを前提としています。しかし、変更して{"f","w","c"}にすることができます。つまり、羊だけが対岸にいる状況です。この状態から出発したら、どんな答えになるでしょうか。
そのためには、エディタを利用してファイル wgc80.set の内容を書き換えることになります。たぶん、GUIに戻って、ファイル wgc80.set をダブルクリックすると、システム標準のエディタが起動するので、そこで修正します。下から4行目を、
initialstate()=c < - > c:={"f","w","c"};
に書き換えます。そして、別のファイル名(例えば wgc81.set)にして保存します。
再びterminalウインドウに戻って、そこでextPrologを起動し、dialogウインドウでwgc81.setを実行すると、コンピュータが勝手に求解してくれます。こんどは、違う答えがでてくるはずです。困ったときは,Ctrl + C で強制終了させます.