問題タブ [heuristics]
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.
artificial-intelligence - Minimax の評価関数はヒューリスティック関数ですか?
Minimax の評価関数はヒューリスティック関数ですか?
heuristics - グリッドレス2D平面でA*パスファインディングアルゴリズムを使用するにはどうすればよいですか?
ノードやセルのないグリッドレス2D平面にA*アルゴリズムを実装するにはどうすればよいですか?ゴールの邪魔になる比較的多数の静止した障害物や移動する障害物を回避するためのオブジェクトが必要です。私の現在の実装は、オブジェクトの周りに8つのポイントを作成し、それらをオブジェクトの潜在的な位置である可能性のある想像上の隣接する正方形の中心として扱うことです。次に、それぞれのヒューリスティック関数を計算し、最適なものを選択します。始点と移動点の間、および移動点と目標の間の距離は、ピタゴラスの定理を使用して通常の方法で計算します。問題は、この方法では、オブジェクトがすべての障害物を無視することが多く、2つの位置の間を行ったり来たりするときにスタックすることがさらに多いことです。ばかげたmuの質問がどのように見えるかはわかりますが、どんな助けでもありがたいです。
java - 成功するまでコードにさまざまなことを試してもらう
私がこの種のコードを書いていることに気付いたのはこれが2回目であり、これを達成するためのより読みやすい方法が必要であると判断しました。
私のコードは何かを理解しようとしますが、それは正確に定義されていないか、それを達成するための多くの方法があります。コードが成功するか、戦略がなくなるまで、コードを理解するためのいくつかの方法を試してもらいたいと思います。しかし、私はこれをきちんと読みやすくする方法を見つけていません。
私の特定のケース:インターフェースから特定のタイプのメソッドを見つける必要があります。明確にするために注釈を付けることができますが、(引数ごとに)適切な唯一の方法にすることもできます。
したがって、私のコードは現在次のようになっています。
もっと良い方法 があるはずです…</p>
編集:メソッドは、見つかった場合はメソッドを返し、null
そうでない場合はメソッドを返します。これをtry/catchロジックに切り替えることはできますが、読みやすくなることはほとんどありません。
Edit2:残念ながら、私は1つの答えしか受け入れることができません:(
c++ - C ++を使用して実装された、意図したとおりに機能しない、紙からの確率密度関数
だから私はヒューリスティックアルゴリズムを実装しています、そして私はこの関数に出くわしました。
私は1からnの配列を持っています(Cでは0からn-1、w / e)。別の配列にコピーする要素の数を選択したいと思います。パラメータy(0 <y <= 1)が与えられた場合、平均が(y * n)である数の分布が必要です。つまり、この関数を呼び出すと、0からnまでの数値が返され、これらの数値の平均はy*nになります。
著者によると、「l」は乱数です:0<l<n。私のテストコードでは、現在生成されている0 <= l<=nです。そして、私は正しいコードを持っていました、しかし私は今何時間もこれをいじっています、そして私はそれを元に戻すのが面倒です。
そこで、関数の最初の部分をコーディングしました。y<= 0.5の場合、yを0.2に設定し、nを100に設定しました。つまり、0から99までの数値、平均20を返す必要がありました。結果はその間にありません。 0とnですが、一部は変動します。そして、nが大きいほど、このフロートは小さくなります。
これはCテストコードです。「x」は「l」パラメータです。
そして、ここにいくつかの結果があります(小数点以下5桁が切り捨てられます):
記事は次のとおりです。
http://www.scribd.com/doc/3097936/cAS-The-Cunning-Ant-System
6ページと7ページ。
またはグーグルで「cAS:狡猾なアリシステム」を検索してください。
だから私は何が間違っているのですか?これと同じ機能を説明している論文が5つ以上あるので、著者が間違っているとは思いません。
私を助けてくれる人への私のすべてのインターネット。これは私の仕事にとって重要です。
ありがとう :)
optimization - アイデア/参考文献/キーワードの検索: 検索アルゴリズムの適応パラメータ制御 (オンライン学習)
組み合わせ最適化における検索アルゴリズムのパラメータの適応パラメータ制御 (オンライン学習)に関するアイデア/経験/参考文献/キーワードを探しています。
もう少し詳しく:
私は、難しい組み合わせ最適化問題の最適化を担当するフレームワークを持っています。これは、反復的に使用されるいくつかの「小さなヒューリスティック」の助けを借りて行われます (大規模な近隣検索、破棄して再作成するアプローチ)。これらの「小さなヒューリスティック」のすべてのアルゴリズムは、ヒューリスティック ロジックをある程度制御しているいくつかの外部パラメーターを使用しています (現時点では、ランダムな値のみ; ある種のノイズ; 検索を多様化します)。
ここで、これらのパラメーターを収束を改善する方法で、可能な限り一般的に選択するための制御フレームワークが必要です。これにより、パラメーター制御を変更せずに新しいヒューリスティックを後で追加できるようになります。
少なくとも 2 つの一般的な決定事項があります。
- A: 次の反復で使用されるアルゴリズムのペア (1 つの破棄アルゴリズムと 1 つの再構築アルゴリズム) を選択します。
- B: アルゴリズムのランダム パラメータを選択します。
唯一のフィードバックは、新しく見つかったソリューションの評価関数です。それが強化学習の話題につながります。それは正しい方向ですか?
実際には学習のような行動ではありませんが、現時点での単純化されたアイデアは次のとおりです。
- A: 反復中に収集されたパフォーマンス値に応じたルーレット ホイールの選択 (近い過去は古いものよりも価値があります)。したがって、ヒューリスティック 1 がすべての新しいグローバル ベスト ソリューションを見つけた場合 -> これを選択する可能性が高くなります。
- B: まだわかりません。おそらく、(0,1) の範囲でいくつかの不均一なランダム値を使用することが可能であり、私は変化の勢いを集めています。したがって、ヒューリスティック 1 が前回 alpha = 0.3 を使用し、新しい最適解が見つからなかった場合、0.6 を使用して新しい最適解が見つかった場合 -> 1 に向かう勢いがある -> 次のランダム値は 0.3 よりも大きくなる可能性があります。考えられる問題:発振!
注意すべきこと: - 1 つの特定のアルゴリズムの良好な収束に必要なパラメーターは劇的に変化する可能性があります。- 特定の破壊/再構築アルゴリズムのペア (結合近傍と呼ばれることもある) には、相乗効果が期待できる可能性があります。そのようなものをどのように認識しますか?それはまだ強化学習エリアにあるのですか?- さまざまなアルゴリズムは、さまざまな数のパラメーターによって制御されます (1 つを取るものもあれば、3 つを取るものもあります)。
アイデア、経験、参考文献 (論文)、キーワード (ML トピック) はありますか?
(b) の決定について、オフライン学習の方法でアイデアがあれば。それについて言及することを躊躇しないでください。
ご意見ありがとうございます。
サーシャ
algorithm - 異常検出アルゴリズム
私は、電子メール、IMなどのさまざまな形式のデータから機械学習アルゴリズムを使用して異常(既知または未知)を検出する任務を負っています。
お気に入りの最も効果的な異常検出アルゴリズムは何ですか?
それらの制限とスイートスポットは何ですか?
これらの制限にどのように対処することをお勧めしますか?
すべての提案は非常に高く評価されています。
c# - Aスター(A *)のマンハッタンヒューリスティック関数
私はここでこのアルゴリズムを見つけました。
問題があります。ヒューリスティック関数を設定して渡す方法が理解できないようです。
ご覧のとおり、距離関数と推定関数の2つの関数を受け入れます。
マンハッタンヒューリスティック距離関数を使用して、2つのパラメーターを取得する必要があります。彼のソースを変更して、マンハッタンの見積もりを渡すことができるように、TNodeの2つのパラメーターを受け入れるように変更する必要がありますか?これは、4番目のパラメータが次のようになることを意味します。
推定関数を次のように変更します。
私のマンハッタン関数は次のとおりです。
algorithm - 短いテキスト (50 ~ 100 語) に対するキーワードの関連性を計算するためのアルゴリズム
短い説明テキストに対するキーワードの関連性を計算したいと考えています。効率性と実装の容易さの点で最良のアプローチは何でしょうか。C++ を使用していますか?
algorithm - マンハッタン距離はどのように許容可能なヒューリスティックですか?
1 つのタイルの移動をカウントしている間に、他のタイルが目標状態に到達する可能性があるというのは本当ですか? したがって、各タイルをカウントすると、目標状態に到達するために必要な最小移動数よりも多くのカウントが得られる可能性がありますか?
この質問は、15 パズルのマンハッタン距離に関連しています。
異なる言葉での質問は次のとおりです。
マンハッタン距離を N-Puzzle の許容可能なヒューリスティックとして使用できますか? A* 検索を実装するには、許容できるヒューリスティックが必要です。マンハッタンヒューリスティックは候補ですか?はいの場合、上記の議論 (質問の最初の 3 つの文) にどのように反論しますか?
定義: A*は検索アルゴリズムの一種です。ヒューリスティック関数を使用して、ゴールまでの推定距離を決定します。このヒューリスティック関数がゴールまでの距離を過大評価しない限り、アルゴリズムはおそらく幅優先探索よりも速く最短経路を見つけます。その条件を満たすヒューリスティックは許容されます。
algorithm - mallocに最適なヒューリスティック
malloc()を使用して、フラグメント化されたヒープにxバイトのメモリを割り当てることを検討してください。ヒープに、xバイトを超えるサイズの連続した複数の場所があると想定します。
次の中から場所を選択するのに最適な(ヒープの浪費を最小限に抑える)ヒューリスティックはどれですか?
- xバイトよりも大きい最小の場所を選択します。
- xバイトより大きい最大の場所を選択します。
私の直感は、xバイトよりも大きい最小の場所です。どちらが実際に最適かわかりません。
いいえ、これは割り当ての質問ではありません。私はこれを読んでいましたmalloc()とfree()はどのように機能しますか?これは、フォローアップの質問として適しているようです。