問題タブ [planning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
8946 参照

artificial-intelligence - 検索と計画の違いは何ですか

人工知能で、私は今計画について読んでいます。しかし、AI に無知な私には、彼らが「計画と検索の違い」を主張している点が理解できませんでした。

C/C++ などの手続き型プログラミングの知識があり、データ構造に基づいて検索を行うことができます。

そして、「Artificial Intelligence: A modern approach - Stuart Russell」で指定された Buy(ISBN0123654789) と Have(ISBN0123456789) の例を理解できませんでした。

私の質問は、本の検索には 100 億回のアクションが必要ですが、計画には必要ないということです。

0 投票する
0 に答える
1513 参照

javascript - 無料/オープンソースの部屋計画ツールにはどのようなものがありますか?

私はリース会社のプロジェクトに取り組んでおり、彼らは、Web サイトにアクセスする人々が移動できる家具を備えたいくつかの間取り図のレイアウトを表示したいと考えています。

Charlie's Room Planning Toolを見つけましたが、これは問題ありませんが、私が考えていたものとはまったく異なります。

私は間取り図の JPG 画像を持っています。トリックは、家具の画像をこの「キャンバス」領域の上に配置し、移動および回転できるようにすることだと思います。

jQuery / jQueryUI がドラッグ アンド ドロップをサポートしていることは知っていますが、jQuery のドラッグ アンド 回転ツールを見たことがあるかどうかはわかりません。「jQuery間取りツール」があればいいのですが。

無料/オープンソースの部屋計画ツールにはどのようなものがありますか? Flash ツールよりも、HTML5 および jQuery ベースのツールの方が適しています。

0 投票する
2 に答える
1071 参照

c# - C# と SWI-Prolog - 文字のリストを事実のリストに変換する

というわけで、Unity3Dでゲームを開発しており、IAプランニングはPrologを使用しています。私の問題はサルとバナナの問題に非常に似ていますが、新しい初期状態をアサートする際に問題があります。

初期状態を変更することで、私のキャラクターは、環境上で重要な何かが変化したときはいつでも、自分の行動を計画し直すことができます.

しかし、私の問題に戻りましょう:

ソケットを介してプロローグに文字列を渡しています。事実のリストを作成したいと考えています。次に、これらの事実を計画手順の初期状態として使用したいと思います。

バイト配列を文字のリストに変換することで、ソケットの入力ストリームを SWI ターミナルに書き込むことができます。出力ストリームに何かを書き込むことで、プロローグ サーバーから文字列を取得することもできます。しかし、これらの文字/文字列を事実のリストに変換する方法がわかりません。

また、命令型プログラミング言語で関数に引数を渡すのと同じように (その場合)、事実のリストを初期状態として使用したいと思います。

私がやりたいことは、次のようなものです(疑似コード):

私は今本当に立ち往生しています。誰かが私を助けてくれることを願っています。ありがとうございました!

参考文献:

フルモンキーバナナ問題コード.

SWI ソケット サーバーのコード例。

0 投票する
2 に答える
827 参照

prolog - Prologで条件付き計画のようなものを書く方法は?

C#で書かれた学生プログラムを理解できるプロローグコードを書いてみました。今、私は学生のプログラムの「if」ステートメントを認識する過程で立ち往生しています。例: 以下は、学生に期待するコードです。

この予想されるコードの目標を次のように定義しました。

問題は、上記の学生コードをプロローグの事実とルールでどのように表現して、可能な条件に対して目標が満たされているかを確認する方法です。

学生コードの最初の部分を次のようなファクトになるように変更しようとしましたが、prolog で学生の 'if' ステートメントをファクト/ルールとして表現する方法がよくわかりません (おそらく、prolog に変更しないでください)。 「もし」ですよね?)

もう 1 つは、私の目標では、演算子よりも大きいプロローグを使用できないと思うような比較があるgt(Vd,0)場合、Vd の値が実際にはユーザーによって入力された特定の値ではなく、シンボリック値として表されます (この場合は : )。Vd> 0Vd @> 0val_d

注:上記の目標を使用して、学生コードを次のコードに変更すると、定義された目標が満たされると思います。

また

しかし、繰り返しになりますが、目標を達成するために、このコードをプロローグでアクション/ルール/ファクトとしてどのように表現できるかについて、ヘルプ/アイデアが必要です。

どんな助けでも本当に感謝しています。

どうもありがとう

0 投票する
0 に答える
118 参照

prolog - プランの比較

学生プログラムの正確性を確認することを目的としたプロジェクトがあります。私は現在、次のようなアプローチを使用しています。

  1. 学生プログラムが達成しなければならない目標を指定します。

  2. 学生のプログラムを一連の事実と行動に (Prolog で) 変更し、これらの事実と行動が目標を達成できるかどうかを確認します。

たとえば、学生に a + b の合計を求め、その結果を c に格納するプログラムを作成するように指示した場合、目標を次のように指定します (Prolog スタイルで):

このアプローチは、学生の逐次プログラムをチェックするのに適しています。次に、条件を含む学生のプログラムをチェックしようとすると、このアプローチを使用できなくなっている可能性があることに気付きます。

たとえば、次の式を使用して、購入総額からの割引 (ドル単位) を見つけるプログラムを作成するように学生に依頼したとします。

. (合計購入数 < 50) -> 顧客は 5% の割引を受ける

. (50 <= 合計購入数 < 100) -> 顧客は 10% 割引を受ける

. (合計購入額 >= 100) -> 顧客は 20% の割引を受ける

その場合、Discount (ドル単位) の値が単に Total Purchasing * パーセンテージ ディスカウントであると目標に書くことはできません。

私が直面しているいくつかの問題:

  1. パーセンテージ ディスカウントの値は、Total purchase の値によって異なります (そのため、パーセンテージ ディスカウントの値を表すために使用できる述語を 1 つ持つことはできません)。

  2. Total purchase の値は変数値 (ユーザーからの入力) です - したがって、この変数の値はわかりません。したがって、特定の時点でのパーセンテージ割引の値も決定できません。

  3. ユーザーは、IF ステートメントをさまざまなバリエーションで記述したり、IF 内の条件ステートメントを記述したりできます。

この種の問題を解決するために、条件付き計画の概念を使用するように提案されました。しかし、条件付き計画に関する情報を読んでみると、初期状態、計画、および目標は、プログラマーである私たちによって指定されています。私の場合、目標を指定するのは私だと思われますが、初期状態と計画は学生がコードを解析して提供します。

だと思いますので、ちょっと違うと思います。しかし、私の考えが間違っていたら教えてください。それについて訂正してください。

または、条件付き計画ではない場合、この種の問題を解決するためにどのようなアプローチを使用できますか (学生コードの正確性を確認する) ? 理論的な観点であろうと実際の実装であろうと、どんな情報でも本当にありがたいです。

私はおそらく、学生の計画 (彼のコードを解析することによって) と私の意図した計画との間で、計画を比較するようなことをすべきだと考えています。したがって、学生のプランが私の意図したプランと同じかスーパーセットである場合、学生のプラン/コードは正しいと言えます。しかし、パターンマッチングを行うよりも良い方法で比較を行うべきだと思います (おそらく、うまくいかないからです)。しかし、どのように?これが私がしなければならない正しいアプローチであるかどうか、私にアドバイスしてください。

どうもありがとう。

注: 以前、このリンクに関連する特定の質問があります: How to write kind of Conditional Planning in Prolog? . ただし、これらの特定の質問は、この一般的な問題を解決するのに役立たない可能性があることに気付きました.

0 投票する
1 に答える
1231 参照

sql - PostgreSqlで予約から作業時間だけを返す方法は?

PostgreSql の予約テーブルで最初の空き時間を見つける方法の優れた回答から選択してください

指定された日時 (2012-11-17 8: 以下のサンプル) から始まるスケジュールのギャップを見つけるために使用されます。土曜、日曜、祝日も検索します。祝日は表に定義されています

土日祝日も除外するには?

次のようなクエリのために予約された空き時間をハードコーディングする

空き時間範囲ごとにユニオン内の個別の行が必要です。

指定された日付と時間から始まる稼働日と稼働時間 (8:00 .. 18:00) で空き時間を返す最良の方法はどれですか?

アップデート

回答で選択すると、常に 8:00 に空き時間が返されます。開始時間が 9 の場合、指定された開始日の指定された開始時間の前ではない空き時間を返す方法、たとえば 2012-11-19 9:00 の前ではないですか? 開始時間には、8、9、10、11、12、13、14、15、16、または 17 の値のみを指定できます

2012-11-19 8:00 が無料の場合でも、2012-11-19 9:00 を返す必要があります。2012 年 11 月 19 日の 9:00 に空き時間がなく、8:00 が後続の就業日の最初の空き時間である場合にのみ、8:00 を返す必要があります。

以下のクエリに示すように、2012-11-19 9:を 2 つの場所に追加してこれを修正しようとしましたが、このクエリは 2012-11-19 8:00 に空き時間を返します。2012-11-19 9:00 に空き時間を返すようにこれを修正するにはどうすればよいですか?

Update2

更新された回答を試しましたが、間違ったデータが返されます。完全なテストケースは次のとおりです。

観測された最初の行:

期待される :

直し方 ?

0 投票する
2 に答える
272 参照

algorithm - 人工知能における高度な計画のためのアルゴリズム

私は現在、エージェントがボックスを元の位置から特定の目標位置まで押したり引いたりする必要がある人工知能プロジェクトに取り組んでいます。その後、プロジェクトは複数のエージェントを含むように拡張されるため、「高レベル」の目標の作成を担当するスーパーバイザーがあり、エージェントが実際の実装を担当します。

実際には、当面は監督者がボックスをゴール位置に配置する順序を決定する必要があります。実際、ボックスをゴール位置に置くと、別のゴールへの道が妨げられる可能性があります。

この問題を解決するための最初のアプローチは、「カット位置」を検討することです。歩行可能な空間を 2 つのサブセットに分割する場合、特定の位置はカット位置です。そのうちの 1 つにはエージェントがあり、もう 1 つには 1 つ以上のゴールがあります。たとえば、「x」がエージェント、「A」と「B」がボックス、「a」と「b」がそれぞれの目標位置である次のレベルを考えてみましょう。

この場合、ゴール「a」の位置はカット位置です。そこにボックスを配置すると、エージェントはゴール「b」に到達できなくなるからです。

カット位置を計算するための高速なアルゴリズムを提案できますか?それは、各カット位置がブロックしているゴールの数を返す可能性がありますか?

0 投票する
1 に答える
543 参照

search - 企画・検索活用例

検索手法またはより具体的には計画手法が使用されるアプリケーションは何ですか? 私は使用例に最も興味があります。

A* はロボティクスの経路計画に使用され、その計画はロジスティクスで使用されることは知っています (詳細は素晴らしいでしょう) が、他にどのような用途がありますか?

一般的な Google などの検索では、逆インデックスが頭に浮かびます。繰り返しますが、それは他にどこで使用されていますか?

0 投票する
1 に答える
131 参照

eclipse - MIndiGolog Fluents を IndiGolog cause_val 形式に変換します

Eclipse (バージョン: Kepler Service Release 1) と、Eclipse での Prolog 開発用のProlog Development Tool (PDT) プラグインを使用しています。次のインストール手順を使用しました: http://sewiki.iai.uni-bonn.de/research/pdt/docs/v0.x/download .

私はMulti-Agent IndiGolog (MIndiGolog) 0 (MIndiGolog の暫定プロローグ バージョン) を使用しています。ここからダウンロード: http://www.rfk.id.au/ramblings/research/thesis/ . MIndiGolog を使用したいのは、アクションの時間と期間を非常にうまく表現し (一時的な計画を実行したい)、複数のエージェントの計画 (同時実行を含む) をサポートするためです。

MIndiGologは、状況計算に基づく高水準プログラミング言語です。言語のすべては、状況計算に正確に従っています。ただし、これは私が取り組んでいるプロジェクトには適合しません。

この他の高水準プログラミング言語、Incremental Deterministic (Con) Golog (IndiGolog) (ここからダウンロード: http://sourceforge.net/p/indigolog/code/ci/master/tree/ ) (これも Prolog で作成)、も(大まかに)状況計算に基づいていますが、流暢さを非常に異なる方法で使用しています。それは、どのアクションがどの流暢にどのように変化するかを示すためにcauses_val-predicatesを使用し、流暢に状況を含めません!

ただし、これはチームの他のメンバーが実際に望んでいることです。MIndiGolog を書き直して、アクションの時間と期間の適切な表現を備えたオフライン プランナーのままにする必要があります。

プロローグと状況計算に関する私の知識は基本しかカバーしていないため、これを行うのは非常に難しいと思いますが、彼らは私を専門家と見なしています。私は頭がいっぱいで、私が得ることができるすべての助けやアドバイスを使うことができると感じています.

私はすでに流暢さからシチュエーションを削除し、causes_val 述語を使用して計画ドメインを作成し、IndiGolog コードを MIndiGolog に追加しようとしました。しかし、運が悪い。プランナーを実行すると、単に「false」が返されます。また、SWI-Prolog デバッガーの GUI トレーサ バージョンを使用したり、できるだけ戦略的にスパイ ポイントを配置しようとしても、トレースの意味をほとんど理解できません。

前もって感謝します、

ベスト、PJ

0 投票する
2 に答える
908 参照

artificial-intelligence - PDDL ベースの計画における計画の視覚化とシステム アーキテクチャ

PDDL でいくつかのドメインと問題を構築しましたが、現在、ドメイン、問題、およびソリューションを視覚化する可能性を探しています。私の質問は次のとおりです。

  • 計画を簡単にグラフィカルに表現するためのツールはありますか (ノードや接続など)?
  • ドメインの現在の世界の状態 (つまり、計画の各ステップの後に、ドメイン内のすべての変数の値) をいつでもプレーン テキストで表示できるツールはありますか?
  • PDDL をシステム アーキテクチャに統合するにはどうすればよいですか? 自分の世界 (Gazebo など) の 2D または 3D 表現を使用したい場合、Gazebo と PDDL を「接続」するにはどうすればよいですか?

ありがとう!