1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SCBM-Prolog 証明列方式 動作

1
Last updated at Posted at 2026-11-02

SCBM-Prolog 猫 収容成功 太陽系脱出へ向かう

ノービッグ先生のPAIPの例題を題材にしてSCBM-Prologの
新方式のデバッグをしています。

likes(kim,robin).
likes(sandy,lee).
likes(sandy,kim).
likes(robin,cats).
likes(sandy,X) :- likes(X,cats).
likes(kim,X) :- likes(X,lee),likes(X,kim).
likes(X,X).

SCBM-Prolog ver1.11でこれが動作するようになりました。

bandicam 2026-11-03 07-03-09-274.jpg

修正箇所

完全失敗にともなうバックトラックの処理を修正しました。
likes/2の第5節のところが問題でした。本体部のlikesは再帰により証明列において置換されます。
likes(cats,cats)の成功によりX=sandyが求まった後が問題でした。
そのあとで失敗してもとのlikes/2に復元して再試行しないといけないのでした。
この復元をすることにより残りのX=cat X=sandy も求まるようになりました。

ver1.11リリース

この状態でver1.11をリリースしています。これを基礎にしてより複雑な例題をこなせるように改良を進めます。ドキュメントのSCBM.mdにAPIの仕様、考え方を記述してあります。
ご興味ありましたらご覧下さい。

太陽系脱出へ

証明列によるコンパイルコードの方法は部分的に正しいことがわかりました。
まだまだバグは残っておりこれから改良をしていかないといけませんが、まずはアイディアの方向性は正しいことが見えてきました。今回のバージョンで無事、猫を捕獲収容しました。
これより宇宙船ヤマトは太陽系脱出へむけて舵を切ります。当面は不完全動作のfact/2への対応です。

地球帰還まであと11か月

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?