私はいくつかのPrologの事実が何か、誰かが人、場所、またはオブジェクトであることを示しています。私は、人がどこからその節に与えられた場所に移動することを示す節(人、場所)を持っています。しかし、私が関係する質問をして、誰かが特定の場所にいるかどうかを調べると、Prologはそこにあったすべての人に句に応じて応答します。あなたが1つの場所にいる場合、あなたは他のどの場所にも定義されていないというルールを書くにはどうすればいいですか?小さな環境のためのPrologの規則
1
A
答えて
3
Prologの事実をモデリングするときに、重要な側面が1つ残っているように見えます。人がその場所に行ったときは?誰もがした任意の時点、のために、決定するのは簡単だろう
person_went_to_at(Person, Location, Time).
、と彼らはので、最後(とする を動かし場所:
は、フォームの代わりに事実関係を持っていたと仮定します現在は です)。
0
おそらく、タイミング情報をファクトに追加する必要があります。次situtation想像:プロローグは(多かれ少なかれ)宣言型であるので
go(dad, kitchen, bathroom).
go(dad, bathroom, garage).
go(dad, garage, kitchen).
を、この場合には、ファイル内の事実の実際の順序は重要ではありません。だから、あなたは、お父さんが台所にいると結論づけることはできません。彼は出発してガレージに戻ったかもしれません。何らかの開始述語、たとえばstartLoc(dad, kitchen)
を追加しても、これはループに役立ちません(たとえば、上記のルールにgo(dad, kitchen, outside)
を追加する場合)。
あなたはタイミング情報を(これはタイミング情報から明らかなように、前の部屋を残して)追加した場合、これは次のようになります。
go(dad, bathroom,1).
go(dad, garage,2).
go(dad, kitchen,3).
実際の数値は、ちょうど彼らの順序は関係ありません。あなたは今、後でお父さんとコマンドを「行く」何があることを確実にしないで最新の場所を取得することができます:
location(X, Y) :- go(X, Y, T), \+ (go(X, _, T2), T2 > T).
関連する問題
- 1. Prolog述語half_sister_of(X、Y)の規則?
- 2. ジェネリックと規則の規則の規則
- 3. アクセシビリティーのための命名規則php
- 4. Prologメンバー述語の可能性の規則
- 5. Prolog - 事実上の小さな運動
- 6. Linuxカーネルハッキングのための仮想環境
- 7. プラグインのためのWordpress環境管理
- 8. 評価のための字句環境
- 9. マルチエージェントゲームのためのOpenaiジム環境
- 10. ステージング環境のためのAzureシンクデータベース
- 11. 不規則なx、yデータポイントを等高線マッピングのための規則的なグリッドに補間する
- 12. ロードバランスされた環境のためのAzureアーキテクチャ設計
- 13. サービスのための快適なサービス命名規則
- 14. Genericクラスと一致させるためのMSFakes命名規則?
- 15. 不規則な形状の画像に境界線を追加
- 16. 大規模なマルチチーム環境でテンプレートフォルダ
- 17. Apache Apex最小限の開発環境
- 18. MIME境界にはどのような規則が適用されますか?
- 19. ネイティブのための適切な開発環境
- 20. 複雑なDB設定のためのDev環境?
- 21. 複数のコントローラのメソッドのためのレールの規則
- 22. CSSの不規則な形
- 23. 小型のSpacyモデルを使用したテスト環境の作成
- 24. 異なるターゲット環境のクロスコンパイルのためのビルド環境を構築することは可能ですか?
- 25. 制約特定のキー - HashMapのための規則 - Javaの
- 26. チェスのビショップのための規則の実装
- 27. さまざまなブラウザ用のテスト環境を設定するためのガイド
- 28. MSBuildの問題のため、MVCプロジェクトがVS 2017環境でロードされない
- 29. 不規則な形状に最小の矩形を適合させるアルゴリズム
- 30. ブール戻りメソッドのためのKotlinの命名規則
古いスタイルは 'update_person_pos(ペールス、POS)にした: - (人物(ペールス、_old))を後退させ、主張する(人(Pers、Pos))。 – CapelliC