タグ付けされた質問 「algorithms」

アルゴリズムは、問題に対する抽象的な解決策を定義する明確に定義された一連のステップです。このタグは、問題がアルゴリズムの設計と分析に関連している場合に使用します。

4
すべての線形時間アルゴリズムはストリーミングアルゴリズムですか?
時が経つにつれて反転カウントについて、この質問、私は紙見つけ下のすべての(正確な)のためのスペースの複雑さにバインド証明ストリーミングアルゴリズムを。私は、この限界がすべての線形時間アルゴリズムに及ぶと主張しました。一般的に、線形時間アルゴリズムは自由に飛び回ることができるため(ランダムアクセス)、ストリーミングアルゴリズムではできないため、これは少し大胆です。要素を順番に調査する必要があります。複数のパスを実行できますが、常に多くのパスを実行します(線形ランタイムの場合)。 したがって、私の質問: すべての線形時間アルゴリズムは、常に多くのパスを持つストリーミングアルゴリズムとして表現できますか? ランダムアクセスは、(単純な)構造が肯定的な答えを提供することを妨げるように見えますが、反例も思いつきません。 マシンモデルによっては、実行時のランダムアクセスも問題にならない場合があります。これらのモデルの答えに興味があります: チューリングマシン、フラット入力 RAM、配列として入力 RAM、リンクリストとして入力

1
バブルソートでのスワップの予想数
整数の配列が与えられた場合、配列各要素は、ある確率、固定数だけ増加できます。バブルソートを使用して配列をソートするために行われるスワップの予想数を見つける必要があります。NのB P [ I ] 0 ≤ I &lt; NAAANNNbbbp [ i ]p[i]p[i]0 ≤ I &lt; N0≤i&lt;n0 \leq i < n 私は次を試しました: 要素の確率するための与えられた確率から容易に計算することができます。i &lt; jA [ i ] &gt; A [ j ]A[i]&gt;A[j]A[i] > A[j]i &lt; ji&lt;ji < j 上記を使用して、スワップの予想数を次のように計算しました。 double ans = 0.0; for ( int i = 0; …

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)


1
ランダム化された選択
ランダム化選択アルゴリズムは次のとおりです。 入力:配列の(明確、簡潔のために)数と数n個のk ∈ [ N ]AAAnnnK ∈ [ N ]k∈[n]k\in [n] 出力:の「ランク要素」(つまり、がソートされた場合は位置要素)A k AkkkAAAkkkAAA 方法: に要素が1つある場合、それを返しますAAA ランダムに一様に要素(「ピボット」)を選択しますppp セットおよび計算しますR = { ∈ A :&gt; P }L = { ∈ A :&lt; P }L={a∈A:a&lt;p}L = \{a\in A : a < p\}R = { ∈ A :&gt; P }R={a∈A:a&gt;p}R = \{a\in A : …

1
左右の中央値と要素を効率的に選択する
コーダーののセットがあるとします。NS={a1,a2,a3,…,aN}S={a1,a2,a3,…,aN}S = \{ a_1,a_2,a_3,\ldots , a_N \}NNN 各コーダーの評価はで、金メダルの数はです。E iRiRiR_iEiEiE_i ソフトウェア会社は、アプリケーションを開発するために正確に3人のコーダーを雇いたいと考えています。 3人のコーダーを雇用するために、彼らは次の戦略を開発しました。 彼らはまず、評価者の昇順および金メダルの降順でコーダーを配置します。 この整理されたリストから、3人の中間コーダーを選択します。たとえば、配置されたリストが場合、コーダーを選択します。(a 2、a 3、a 1)(a5、2、3、1、4)(a5,a2,a3,a1,a4)(a_5,a_2,a_3,a_1,a_4)(a2、3、1)(a2,a3,a1)(a_2,a_3,a_1) ここで、このタスクのためのプログラムを作成して、会社を支援する必要があります。 入力: 最初の行には、つまりコーダーの数が含まれます。NNN 次に、2行目に番目のコーダーの評価が含まれます。 iR私RiR_i私ii 3行目には、番目のコーダーによってバギングされた金メダルの数が含まれています。私ii 出力: 会社が選択する3人のコーダーが獲得した金メダルの合計を含む1行のみを表示します。

2
行列パワーの計算の複雑さ
私は計算に興味「が乗行列。時間で実行される行列乗算のアルゴリズムがあるとします。そして、1は簡単計算することができるにおける時間。より短い時間の複雑さでこの問題を解決することは可能ですか?n × n A O(M (n ))A n O(M (n )log (n ))nnnn × nn×nn\times nAAAO(M(n ))O(M(n))\mathcal{O}(M(n))AnAnA^nO(M(n )ログ(n ))O(M(n)ログ⁡(n))\mathcal{O}(M(n)\log(n)) 一般に、マトリックスエントリはセミリングから作成できますが、役立つ場合は追加の構造を想定できます。 注:一般に、時間でを計算、べき乗のアルゴリズムが得られることを理解してい。しかし、多くの興味深い問題が、m =である行列のべき乗の特殊なケースに帰着し、この単純な問題について同じことを証明できませんでした。 o (M (n )log (m ))o (log m )O(n )AmAmA^mo (M(n )ログ(m ))o(M(n)ログ⁡(m))o(M(n)\log(m))o (ログm )o(ログ⁡m)o(\log m)O(n)O(n)\mathcal O(n)

1
実際のキャッシュ忘却のパフォーマンスの評価に関する研究
キャッシュを無視するアルゴリズムとデータ構造は、Frigo et alによって導入されたかなり新しいものです。中のCache-忘れアルゴリズム、1999。同じ年のプロコップの論文も初期のアイデアを紹介しています。 Frigoらによる論文。理論と、キャッシュを無視するアルゴリズムとデータ構造の可能性を示すいくつかの実験結果を提示します。キャッシュを意識しないデータ構造の多くは、静的検索ツリーに基づいています。これらのツリーを保存およびナビゲートする方法は、おそらく最も顕著なものとして、Bender et al。また、Brodal et al。Demaineが概要を説明します。 実際にキャッシュの動作を調査する実験的な作業は、少なくともLadnerらによって行われました。でプログラム計装、2002を使用してキャッシュを意識し、キャッシュ紛失静的検索木のA比較。ラドナー等。古典的なアルゴリズム、キャッシュ忘却型アルゴリズム、キャッシュ対応アルゴリズムを使用して、バイナリ検索問題を解決するアルゴリズムのキャッシュ動作をベンチマークしました。各アルゴリズムは、暗黙的および明示的なナビゲーション方法の両方でベンチマークされました。これに加えて、2003年のRønnの論文では、同じアルゴリズムを非常に詳細に分析し、Ladner et al。と同じアルゴリズムのさらに徹底したテストも実行しました。 私の質問は それ以来、実際にキャッシュを使用しないアルゴリズムのキャッシュ動作のベンチマークに関する新しい研究はありますか?特に静的検索ツリーのパフォーマンスに興味がありますが、他のキャッシュを意識しないアルゴリズムとデータ構造にも満足しています。

6
洗練された再帰アルゴリズムの例
有名な決定的線形時間選択アルゴリズム(中央値アルゴリズムの中央値)を友人に説明していました。 このアルゴリズムの再帰は(非常に単純ですが)非常に洗練されています。それぞれ異なるパラメーターを持つ2つの再帰呼び出しがあります。 このような興味深い再帰アルゴリズムの別の例を見つけようとしていましたが、見つけられませんでした。私が思いつく可能性のある再帰アルゴリズムはすべて、単純な末尾再帰または単純な分割統治(2つの呼び出しが「同じ」である)のいずれかです。 洗練された再帰の例をいくつか挙げていただけますか?

2
最大流量の残差グラフ
ここで最大流量問題について読んでいます。残余グラフの背後にある直感を理解できませんでした。フローを計算するときにバックエッジを考慮するのはなぜですか? Residual Graphの概念を理解してくれる人はいますか? 無向グラフのアルゴリズムはどのように変わりますか?

2
木の頂点の最小カバーのための欲張りアルゴリズムの正当性証明
DFSトラバーサルを使用するツリーの最小頂点カバーを見つけるための貪欲なアルゴリズムがあります。 ツリーの葉ごとに、その親を選択します(つまり、その親は最小の頂点カバー内にあります)。 各内部ノードに対して: その子のいずれかが選択されていない場合、このノードを選択します。 この貪欲な戦略が最適な答えを与えることをどのように証明しますか?上記のアルゴリズムが生成するものよりもサイズが小さい頂点カバーがないこと?

2
DAGの2つの頂点間の最短および最長パスを見つける
非加重DAG(有向非巡回グラフ)と2つの頂点および与えられた場合、多項式時間でからへの最短および最長の経路を見つけることは可能ですか?パスの長さは、エッジの数で測定されます。D=(V,A)D=(V,A)D = (V,A)ssstttsssttt 多項式時間で可能な経路長の範囲を見つけることに興味があります。 追って、この質問はStackOverflow質問DAGの最長パスの複製です。

1
迷路からの脱出を保証する手順
4つのコマンド「上/下/右/左に移動」を与えることができる2次元の迷路があるとします。迷路を知っているが、人がどこにいるかは知らないので、迷路を抜けることを保証するコマンドの最小シーケンスを見つける方法は?迷路のどこから始めても機能する単一のコマンドシーケンスを探しています。 右側に壁があるときにパートナーに「右に移動」コマンドが与えられた場合、彼は単に現在の場所に留まると仮定します。 つまり、迷路が与えられ、一連のコマンドを選択する必要があります。その後、パートナーは迷路のどこかに配置され、事前に選択した一連のコマンドに従います。このシーケンスにより、パートナーが最初に配置された場所に関係なく、パートナーが確実に脱出できるようになります。許可されるコマンドには条件ステートメントがないため、パートナーに応じて異なるシーケンスに従うことはできません。 迷路の説明が与えられた場合、そのようなシーケンスを構築する多項式時間アルゴリズムはありますか? Yuval Filmusは、これは同期語問題の特殊なケースであり、ユニバーサルトラバーサルシーケンスに関連している可能性があると述べています。また、関連があると思われる論文を見つけました。 同時迷路解決問題。Stefan Funke、AndréNusser、Sabine Storandt。AAAI 2017。 残念ながら、一般的なグラフの場合、これは未解決の問題のように見えますが、この特定のケースに適したアルゴリズムがあるのではないかと思っています。候補者のアプローチを思い付きました。すべての位置に、終了するのに必要な最小ステップ数をラベル付けし、迷路内のすべてのエージェントを追跡します。この方法でA *検索を実行できる場合があります。

1
クラスカルとプリムはすべてのMST最小全域木に到達可能ですか?
これは真実だと思いますが、どちらについても正式な証拠を得ることができませんでした。しかし、クラスカルのアルゴリズムを適用することで、最小スパニングツリーに到達できるというのは本当ですか?同様に、これはプリムのアルゴリズムにも当てはまりますか? 編集:より正確には、接続された無向の重み付きグラフのMSTが与えられた場合、このMSTを生成するKruskalまたはPrimを使用した一連のステップがあることが保証されているかどうかを知りたいです。たとえば、同じ重みを持つ複数のエッジがある場合、クラスカルにはさまざまな選択肢があります。プリムも同様です。

2
マージソートの「分割」ステップを回避できますか?
したがって、マージソートは、分割統治アルゴリズムです。上記の図を見ながら、基本的にすべての分割ステップをバイパスできるかどうか考えていました。 2つずつジャンプしながら元の配列を反復処理した場合、インデックスiおよびi + 1の要素を取得し、独自のソートされた配列に入れることができます。これらのすべてのサブ配列(図に示すように[7,14]、[3,12]、[9,11]および[2,6])を取得したら、通常のマージルーチンに進んで取得します。ソートされた配列。 配列を繰り返し処理し、必要なサブ配列をすぐに生成するのは、分割ステップを全体で実行するよりも効率が悪いですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.