タグ付けされた質問 「search-problem」

2
意思決定問題の最適化バージョン
この質問は、Computer Science Stack Exchangeで回答できるため、Theoretical Computer Science Stack Exchangeから移行されました。 7年前に移行され ました。 各最適化/検索問題には同等の決定問題があることが知られています。たとえば、最短経路問題 最適化/検索バージョン: 無向無加重グラフと2つの頂点与えられた場合、と間の最短経路を見つけます。G=(V,E)G=(V,E)G = (V, E)v,u∈Vv,u∈Vv,u\in Vvvvuuu 決定版: 無向無加重グラフ、2つの頂点、および非負の整数与えられた場合、長さが最大でであると間にパスがありますか?G=(V,E)G=(V,E)G = (V, E)v,u∈Vv,u∈Vv,u\in VkkkGGGuuuvvvkkk 一般に、「 stを見つけてください!」「x \ in X st f(x)\ leq kがありますか?」になります。x∗∈Xx∗∈Xx^*\in XX ∈ X F (X )≤ Kf(x∗)=min{f(x)∣x∈X}f(x∗)=min{f(x)∣x∈X}f(x^*) = \min\{f(x)\mid x\in X\}x∈Xx∈Xx\in Xf(x)≤kf(x)≤kf(x) \leq k しかし、その逆も真です。つまり、すべての決定問題に対して同等の最適化問題がありますか?そうでない場合、同等の最適化問題がない決定問題の例は何ですか?

1
カバレッジの問題(送信機と受信機)
次のカバレッジ問題を解決しようとします。 あり 1キロとのカバレッジエリアと送信機の受信機は。、すべての受信機が任意の送信機でカバーされることを決定し。すべての受信者と送信者は、座標と座標で表されます。nnnnnnO (n ログn )O(nログ⁡n)O(n\log n)バツバツxyyy 私が提供できる最も高度なソリューションはを取り。すべての受信機について、この現在の受信機までの距離ですべての送信機をソートし、最短距離で送信機を使用します。この最短距離は0.5 km以内でなければなりません。O (n2ログn )O(n2ログ⁡n)O(n^2\log n) しかし、単純なアプローチは、時間の複雑さはるかに優れているように見えます。送信機と受信機のすべてのペア間のすべての距離を計算するだけです。O (n2)O(n2)O(n^2) この問題に範囲検索アルゴリズムを適用できるかどうかはわかりません。たとえば、kdツリーを使用すると、このような範囲を見つけることができますが、例を見たことはなく、円の範囲検索の種類があるかどうかはわかりません。 与えられた複雑さは、ソリューションが何らかの方法でソートに類似していると仮定しています。O (n ログn )O(nログ⁡n)O(n\log n)

4
たとえ証人がいることをすでに知っているとしても、証人を見つけることはNP困難なのでしょうか?
NP困難な問題の一般的な例(クリーク、3-SAT、頂点カバーなど)は、答えが「はい」か「いいえ」かが事前にわからないタイプのものです。 答えがイエスであることがわかっているという問題があり、さらに多項式時間で証人を検証できると仮定します。 その後、常に多項式時間で証人を見つけることができますか?それとも、この「検索問題」はNP困難なのでしょうか

2
エミュレーター入力の最適化問題をどのように分類しますか?どのアルゴリズムでそれにアプローチする必要がありますか?
質問の性質上、多くの背景情報を含める必要があります(私の質問は:これをどのように絞り込むのですか?)とはいえ、要約すると(私の知る限り)次のようになります。 非常に大きな組み合わせ検索空間で局所最適を見つける方法は何ですか? バックグラウンド ツールを使用したスーパープレイコミュニティでは、コスト(通常は完了までの時間)を最小限に抑えるために、ビデオゲームコンソールまたはエミュレータに特別に細工された(リアルタイムでは生成されない)入力を提供することを目指しています。これが現在行われている方法は、例えば(何度もゲームフレーム・バイ・フレームを再生し、フレームごとに入力を指定して、多くの場合、実行の部分をやり直すことである最近発表されたため、実行ゼルダの伝説を:時間のオカリナを持っています合計198,590回の再試行)。 これらの実行を実行して目標を達成するには、通常、ルート計画とトラバーサルという2つの主な要因があります。前者は後者よりもはるかに「創造的」です。 ルート計画は、プレイヤーがゲームを完了するために全体的にナビゲートする方法を決定するものであり、多くの場合、ランの最も重要な部分です。これは、たとえば、使用するソート方法の選択に似ています。世界で最高のバブルソートは、100万要素のクイックソートよりも優れているわけではありません。 ただし、完璧を求めて、トラバーサル(ルートの実行方法)も大きな要因です。類推を続けると、これがソーティングアルゴリズムの実装方法です。特定の入力フレームがないと実行できないルートもあります。これはツール支援の最も退屈なプロセスであり、完了したランの生成には数か月、場合によっては数年もかか​​ります。同じアイデアのさまざまなバリエーションを試してみるのが一番だと考えられるため、難しいプロセスではありません(人間にとって)。このタスクへのマシンの適用は、ここでは適切なようです。 私の目標は、今やニンテンドー64システム全体のトラバーサルプロセスを自動化することです。この問題の探索空間があるはるかに強引なアプローチで攻撃するには大きすぎます。N64ランのnフレームセグメントには2つの30n可能な入力があります。つまり、30フレームの入力(30FPSでの1秒)には2つの900可能な入力があります。これらの潜在的なソリューションをテストすることは不可能であり、2時間の実行全体をテストすることはできません。 ただし、フルランの全体的な最適化を試行する(または試行するつもりはありません)ことに興味はありません。むしろ、初期入力が与えられたときに、実行の特定のセグメントの局所最適値(または、ある種のセミグローバル最適化の場合は最も近いn個の局所最適値)を近似したいと思います。つまり、ルートとそのルートの最初のトラバーサルを指定します。そのトラバーサルの近隣を検索してコストを最小限に抑えますが、問題を解決できるすべてのケースを試すように縮退しないでください。 したがって、私のプログラムは、開始状態、入力ストリーム、評価関数を取り、評価の結果を最小化することによって局所最適を出力する必要があります。 現在の状態 現在、すべてのフレームワークを処理しています。これには、エミュレーターの操作、セットアップとティアダウン、構成などによる入力ストリームの評価が含まれます。また、一種のプレースホルダーとして、オプティマイザーは非常に基本的な遺伝的アルゴリズムです。入力ストリームの母集団を評価し、勝者を格納/置換し、勝者ストリームを変更して新しい母集団を生成します。このプロセスは、時間や世代番号など、任意の基準が満たされるまで続きます。 このプログラムの最も遅い部分は、断然、入力ストリームの評価になることに注意してください。これは、nフレームのゲームをエミュレートする必要があるためです。(時間があれば、この種のものへのフックを提供する独自のエミュレーターを作成しますが、今のところ、メッセージの合成と、別のプロセスからの既存のエミュレーターのメモリの変更が残っています。)メインコンピューターかなりモダンで、200フレームの評価には約14秒かかります。そのため、関数の評価の数を最小限に抑えるアルゴリズム(選択した場合)を使用したいと思います。 エミュレータを同時に管理するフレームワークでシステムを作成しました。そのため、線形パフォーマンススケールで一度に多数のストリームを評価できますが、実際には、システムパフォーマンスが低下する前に、実行中のエミュレーターの数は8から32にしかなりません(32は実際にそれを押し上げています)。つまり、オプティマイザは評価を待つ間、かなりの作業を行うことができるため、評価が行われている間に処理を実行できるアルゴリズム(選択した場合)は非常に有益です。 テストとして、私の評価関数(ゲームBanjo Kazooieの)は、フレームごとに、プレーヤーからゴールポイントまでの距離を合計することでした。つまり、最適なソリューションは、できるだけ早くそのポイントに近づくことです。変異をアナログスティックのみに制限すると、問題のないソリューションを取得するのに1日かかりました。(これは同時実行を実装する前でした。) 同時実行を追加した後、Aボタンを押す操作の変更を有効にし、ジャンプが必要な領域で同じ評価関数を実行しました。24個のエミュレーターを実行すると、最初は空白の入力ストリームから目標に到達するのに約1時間かかりましたが、最適に近いものに到達するには、おそらく数日実行する必要があります。 問題 私が直面している問題は、最適化問題を適切にモデル化する方法を知るのに数学的最適化フィールドについて十分に知らないということです!たとえば、Wikipediaで説明されているように、多くのアルゴリズムの概念的なアイデアを大まかに追跡できますが、問題を分類する方法や、そのカテゴリに最新のアルゴリズムを選択する方法がわかりません。 私が知ることができることから、私は非常に大きな近所との組み合わせの問題を抱えています。その上、評価関数は非常に不連続で、勾配がなく、多くのプラトーがあります。また、制約はそれほど多くありませんが、問題を解決するのに役立つ場合は、それらを表現する機能を喜んで追加します。たとえば、[スタート]ボタンを使用しないように指定できますが、これは一般的なケースではありません。 質問 だから私の質問は:これをどのようにモデル化するのですか?どのような最適化問題を解決しようとしていますか?どのアルゴリズムを使用すると思いますか?私は研究論文を読むことを恐れていないので、何を読むべきかを知らせてください! 直感的に、遺伝的アルゴリズムは実際には学習していないように見えるため、最高ではありません。たとえば、[開始]を押すと常に評価が悪化するように見える場合(ゲームが一時停止するため)、「ある時点で[開始]を押しても役に立たない」と学習するある種のデザイナーまたは頭脳があるはずです。しかし、この目標でさえ、思ったほど簡単ではありません。スーパーマリオ64のいわゆる「一時停止後方ロングジャンプ」などのように、プレスを押すのが最適な場合があるためです。ここでは、脳はより複雑なパターンを学習する必要があります。「スタートを押しても、プレーヤーがこの非常に特殊な状態にあり、ボタンを押しながらいくつかの組み合わせを続ける場合を除き、役に立たない」 変更にもっと適した他の方法で入力を表現する(またはマシンが学習できる)ようです。フレームごとの入力は細かく見えます。本当に必要なのは「アクション」であり、これは複数のフレームにまたがる場合があります...しかし、多くの発見はフレームごとに行われるため、完全に除外することはできません(前述の一時停止後方ロングジャンプには、フレームレベルの精度が必要です)。また、入力がシリアルに処理されるということは、活用できるものでなければならないようですが、方法はわかりません。 現在、私は(リアクティブ)タブー検索、超大規模近傍検索、教育学習ベースの最適化、およびアリコロニー最適化について読んでいます。 この問題は、ランダムな遺伝的アルゴリズム以外のものに取り組むのが難しいほど単純ですか?それとも実際にずっと前に解決された些細な問題ですか?読んでくれてありがとう。返事を送ってくれてありがとう。

2
未満の距離空間の点集合の中心点を見つけますか?
メトリック空間で定義されたポイントのセットがあるので、ポイント間の「距離」を測定できますが、それ以外は測定できません。このセット内で最も中心的なポイントを見つけたいと思います。これを、他のすべてのポイントまでの距離の合計が最小になるポイントとして定義します。メトリックの計算は遅いため、可能な限り回避する必要があります。nんn このポイントを見つける明白な方法は、メトリック距離計算を使用します。これは、(a)各ポイントについて、他のすべてのポイントまでの距離の合計を計算し、(b)最小ポイントを取るためです。n2ん2n^2 未満の距離比較でこれを行う方法はありますか?(おそらく、三角形の不等式を何らかの方法で利用していますが、これは私の測定基準に当てはまるはずです。)O(n2)O(ん2)O(n^2) 正確な方法が存在しない場合は、適切な近似で十分です。

1
順列の空間を探す
n個のオブジェクトと、これらのn個のオブジェクトのn個の順列のセット(合計n個の順列のうち)が与えられます。本当の根本的な順列があり、それはn個の順列のセットの1つであると私は知っていますが、どの順列かはわかりません。しかし、神託者は真の順列を知っています。真の順列を見つけるために、2つのオブジェクト間のペアワイズ比較のためにオラクルをクエリすることができます(真の順列ではbの前にaがありますか?)。 素朴な戦略は、バイナリ検索(すべての段階で順列の半分を排除する「正しい」ペアワイズ比較の質問をする)を行い、log nステップで真の順列を見つけることです。私の質問は、これはいつでもできるのですか?または、O(log n)クエリでは不十分なような、順列の敵対的なセットを見つけることができますか? 編集: 例:オブジェクトが1、2、3、4であるとします。順列のセットは{1243、2341、1342、3412}です。私は本当の順列を知りません。「本当の順列では2は4の前ですか?」と尋ねます。神託はイエスを返します。だから私は最初の2つの順列の間でそれを知っています。次に、「真の順列では1は3の前ですか?」と尋ねます。真の順列を見つけるために。

2
ブルートフォース検索の戦略はありますか?
エレガントな表現方法はわかりませんが、基本的にはブルートフォース検索アルゴリズムを実装したいのですが、検索スペースを列挙する方法はたくさんあります。これは私には世間知らずかもしれませんが、検索スペースを列挙する方法を選択すると、アルゴリズムが実際にうまく機能するかどうかに大きく影響すると思います。 簡略化した例として、次の決定問題を考えます。 入力:多項式p(x)p(x)p(x)整数係数と自然数ます。kkk 質問:ようなは存在しますか?i∈[k]i∈[k]i \in [k]p(i)=0p(i)=0p(i) = 0 現在、この問題を解決するためのさまざまなアルゴリズムが存在する可能性がありますが、私はブルートフォースアプローチを選択することにしました。サーチスペースを列挙するには、次の方法を検討してください。 昇順戦略:私はかどうかを確認でき、その後、0であるその後、私が見つけるまで、...、ようにまたは私はすべて試す。p(1)p(1)p(1)p(2)p(2)p(2)p(3)p(3)p(3)iiip(i)=0p(i)=0p(i) = 0i∈[k]i∈[k]i \in [k] 降順戦略:場合、私がチェックすることができ、その後、0である、その後、、···、私が見つけるまで、このようなことまたは私がしてみてくださいすべての。p(k)p(k)p(k)p(k−1)p(k−1)p(k-1)p(k−2)p(k−2)p(k-2)iiip(i)=0p(i)=0p(i) = 0i∈[k]i∈[k]i \in [k] 人気戦略:最も人気のあるソリューションの小さなリストを保存し、数値を試す前にそれらを最初に試すことができます。LLL[k]−L[k]−L[k] - L ふるい戦略:私は一種のふるい列挙を行うことができました。私はすべて2で割り切れる番号試みる、その後数が3で割り切れる次いで次いで、5、7、11、13、などを。(事前計算されたいくつかの素数のリストにアクセスできると仮定します。)[k][k][k][ k ][k][k] ランダム性戦略:ランダムなビットの大きな文字列を利用する興味深い列挙戦略があるかもしれません。 基本的に、私はブルートフォース検索アルゴリズムに関する次の質問に答えたいと思っています。 質問A:特定の列挙戦略を選択するメリットはありますか? 質問B:実際に興味深い列挙戦略を選択する検索問題の例はありますか?人気戦略のバリエーションが実際に効果的に機能する検索問題があるかもしれません。

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.