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

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

1
自然数線形システムを解くためにどのようなアルゴリズムが存在しますか?
私は次の問題を見ています: 自然数、およびいくつかの入力ベクトル次元ベクトルが与えられると、はと自然数係数の線形結合ですか?v 1、… 、v m u u v iんんnv1、… 、vメートルv1、…、vメートルv_1, \ldots, v_mあなたあなたuあなたあなたuv私v私v_i つまり、いくつかのがありますここで、ですか? U = T 1 、V 1 + ⋯ + T M のV Mt1、… 、tメートル∈ Nt1、…、tメートル∈Nt_1, \ldots, t_m \in \mathbb{N}u=t1v1+⋯+tmvmu=t1v1+⋯+tメートルvメートルu = t_1 v_1 + \dots + t_m v_m 明らかに、この問題の実数バージョンはガウスの消去法を使用して解決できます。私は不思議に思っています、この問題の整数バージョンは研究されましたか?それを解決するためにどのようなアルゴリズムが存在しますか? これは自然数を使用していますが、モジュラー演算を使用していないため、これは中国の剰余定理やそのようなシステムとは多少異なります。また、それはディオファントス方程式に関連しているようですが、非負の整数のみが考慮される場合に何が行われたのでしょうか?これは、多次元のサブセット和問題を連想させるものであり、一般化されて、各ベクトルの任意の数のコピーを取ることができます。uuuがv_1、\ dots、v_mによって生成されたラティスの要素であるかどうかのテストにも関連しているようですが、ここでは負でない係数との線形結合しか許可されていません。v1,…,vmv1,…,vmv_1,\dots,v_m 興味のある人にとっては、これは、Parikhの定理のように、Parikhベクトルが線形セットにあるかどうかを見ることによって動機付けられます。 特に、実数/浮動小数点数に入るのを避け、自然数演算のみを使用して問題を解決できるアルゴリズムに興味があります。

1
なぜイントロソートはマージソートではなくヒープソートを使用するのですか?
イントロソートの実装をカバーする宿題の一環として、なぜマージソート(または他のアルゴリズムではなく)の代わりにヒープソートが使用されるのかを尋ねられます。 O(nlog(n))O(nlog⁡(n))O(n\log(n)) Introsortは、高速な平均パフォーマンスと(漸近的に)最適な最悪のケースのパフォーマンスの両方を提供するハイブリッドソートアルゴリズムです。クイックソートで始まり、再帰の深さがソートされる要素の数(の対数)に基づくレベルを超えると、ヒープソートに切り替わります。(ウィキペディア、2014年5月6日取得。) 私が考えることができる唯一の理由は、ヒープソートが「適所に」あるということです...しかし、これがなぜここで重要になるのかは本当にわかりません。

2
クロックページ置換アルゴリズム-すでに存在するページ
クロックページ置換アルゴリズムをシミュレーションするときに、既にメモリ内にある参照が来ても、時計の針はまだインクリメントしますか? 次に例を示します。 4スロット、クロックページ置換アルゴリズムを使用 参照リスト:1 2 3 4 1 2 5 1 3 2 4 5 最初のリストは次のようになります。 -> [1][1] [2][1] [3][1] [4][1] insertの次の参照は1、次に2になります。手は1の後、1の後、2の後を指しますか?つまり、5を挿入すると、時計は次のようになります。 -> [5][1] [2][0] [3][0] [4][0] ?

1
2つのノード間のk最短経路を見つける
重み付き有向グラフ、および重み関数d (u 、v )が与えられると、通常はダイクストラのアルゴリズムを使用して最短経路を取得できます。私が興味を持っているのは、2 n d-最短経路、3 r d-最短経路などを取得する方法です。G = V、EG=V、EG=V,Ed(u 、v )d(あなた、v)d(u,v)2n 日2んd2^{nd}3r d3rd3^{rd} 質問: 重み付きグラフの2つのノード間のi番目に最短のパスを取得する効率的なアルゴリズムはありますか? 重み付きグラフの2つのノード間のk最短経路を取得するための効率的なアルゴリズムはありますか? 2番目の質問への回答は、最初の質問への回答への呼び出しよりも効率的に実行できるのではないでしょうか。kkk


2
ピアグレーディングデザイン-グラフを選択して、正確なランキング/レーティングを取得
バックグラウンド。グレーディングプロセスの一部としてピアグレーディングを使用して、半自動グレーディングのコードを書いています。生徒には一度に2組のエッセイが与えられ、生徒はスライダーを使用してどちらが優れているか、どれほど優れているかを選択できます。たとえば、スライダーは次のようになります。 A---X-B ピアグレーディングの結果に基づいて、エッセイがランク付けされ、教師が上位X%と下位X%を評価し、すべてのエッセイのスコアがこれに基づいて自動的に計算されます。このランキング/スコアリングプロセスを実行する方法はすでに考え出されています。その部分はうまくいきます。 私の質問。生徒に与えるエッセイのペアをどのように選択すればよいですか? シミュレーションでは、正確なランキングを取得するには、エッセイを少なくとも3回成績評価する必要があることが示唆されています。したがって、各エッセイは、ピアグレーディング用に提示されるペアのうち少なくとも3つに表示されます。 これはグラフの問題と考えることができます。エッセイをノードと考えてください。各エッジは、ピアのグレーディングプロセス中に提示されるエッセイのペアを表します。上記の精度結果は、各ノード(またはほとんどのノード)の次数が少なくとも3であることを示唆しています。どのようなグラフを使用する必要がありますか?ピアグレーディング中に使用するグラフをどのように生成する必要がありますか? 1つの課題は、グラフにクラスターがある場合、これによりピアグレーディングが歪むことです。たとえば、ピアグレーディングの結果が歪むため、高品質のエッセイに対してピアグレーディングを行うことは望ましくありません。 あなたは何をお勧めします? この問題は、次のようなものを使用した無向グラフでモデル化できると思います。 次数が最も低いノードを取得して、次に少ないノードとリンクします あなたの平均学位が少なくとも3になるまで続けます ノード接続を最大化 クリークの数を最小限に抑える これは良いアプローチですか?そうでない場合、代わりに何をお勧めしますか?

3
ポリゴンのランダムサンプリング
ポリゴン内の一様にランダムなポイントをサンプリングしたい... 多数をサンプリングする場合、同じ面積の場合、2つの地域に分類される可能性が等しくなります。 [0,1]の2つの乱数を座標として取るので、正方形の場合、これは非常に簡単です。 私が持っている形状は正多角形ですが、どの多角形でも機能したいのですが。 /programming/3058150/how-to-find-a-random-point-in-a-quadrangle

4
ランダムDFAを生成するための適切なアルゴリズムは何ですか?
ランダムなDFAを生成して、DFA削減アルゴリズムをテストしています。 現在使用しているアルゴリズムは次のとおりです。各状態について、アルファベットcの各シンボルについて、ランダムな状態にδ (q 、c )を追加します。各状態は、最終状態になる確率が同じです。qqqcccδ(q、c )δ(q,c)\delta (q, c) これは、公平なDFAを生成する良い方法ですか?また、このアルゴリズムはトリムDFA(廃止された状態のないDFA)を生成しないので、ランダムなDFAを生成するより良い方法が何らかの方法で確実にトリムされているかどうか疑問に思いますか?

3
クロワッサンを買う順番は誰ですか
チームは毎朝誰かがクロワッサンを持っていくべきだと決めました。毎回同じ人物である必要はないので、次の順番を決定するシステムが必要です。この質問の目的は、クロワッサンを明日もたらすのが誰の順番になるかを決定するためのアルゴリズムを決定することです。 制約、仮定、目的: クロワッサンを持参する順番は、前日の午後に決定されます。 特定の日に、何人かの人々は欠席します。アルゴリズムは、その日に出席する人を選ぶ必要があります。すべての欠席が前日に判明しているため、クロワッサンの購入者は前日の午後に決定できます。 全体として、ほとんどの人がほとんどの日に立ち会います。 公平を期すために、誰もがクロワッサンを他の人と同じ回数購入する必要があります。(基本的に、すべてのチームメンバーがクロワッサンに費やす金額が同じであると想定します。) 名簿の退屈を緩和するために、ランダム性、または少なくとも知覚されるランダム性のいくつかの要素があるとよいでしょう。これは厳密な制約ではありません。より審美的な判断です。ただし、同じ人物を2回続けて選ぶことはできません。 クロワッサンを持参する人は、事前に知っておく必要があります。したがって、P氏がD日にクロワッサンを持ち込む場合、この事実は、P氏がいる前日に決定する必要があります。たとえば、クロワッサンの持参人が常に前日に決定されている場合は、前日に立ち会う人の1人である必要があります。 チームメンバーの数は十分に少ないため、ストレージとコンピューティングリソースは事実上無制限です。たとえば、アルゴリズムは、過去に誰がクロワッサンを連れてきたかの完全な履歴に依存できます。毎日、高速PCで数分までの計算で問題ありません。 これは実際の問題のモデルであるため、シナリオをより適切にモデル化していると思われる場合は、仮定に挑戦または調整することができます。 原産地:クロワッサンを買うために起こっている人を見つけることにより、フロリアンMargaine。ここでの私の再定式化には、少し異なる要件があります。

1
クイックソートの分析時に使用する障害の測定
Lomutoパーティションと固定ピボットを使用したクイックソートが、ランダムに生成された入力に対して不規則に、しかし全体としては不十分に実行されている理由を理解しようとしています。入力がランダムに生成されたとしても、シーケンスには多くの順序があるかもしれないと思いますが、シーケンスの無秩序のレベルを測定する方法がわかりません。反転の数を使用することを考えましたが、この別の質問から、この場合はあまり良い方法ではないことを尋ねました。 私のランダムシーケンスに「順序」がたくさんあると思う理由は、ピボットをランダム化するとパフォーマンスの問題が修正されるためです。ただし、理論的には、これらの「ランダム」な入力シーケンスでパフォーマンス上の問題が発生することはありません。


2
2次元ピーク検出の複雑さ(MIT OCW 6.006)
43:30のMIT OCW 6.006の朗読ビデオで、 m列n行の行列Aが与えられた場合、2次元ピーク検出アルゴリズムは、ピークが隣接する隣接セル以上の任意の値である場合、次のように記述されます。m × nm×nm \times nあAAメートルmmんnn 注:を使用して列を説明する際に混乱がある場合は、申し訳ありませんが、これは、朗読ビデオがそれを説明する方法であり、ビデオと一貫性を保つように努めました。それは私をとても混乱させました。んnn 真ん中の列を選択 // 複雑さがありますΘ (1 )n / 2n/2n/2Θ (1 )Θ(1)\Theta(1) 列の最大値を見つける// 列にm行があるため、複雑度 Θ (m )があるn / 2n/2n/2Θ (m )Θ(m)\Theta(m)メートルmm 水平を確認してください。最大値の行の近傍、それがより大きい場合はピークが検出され、それ以外の場合は再帰します// 複雑さT (n / 2 、m )を持ちますT(n / 2 、m )T(n/2,m)T(n/2, m)T(n/2,m)T(n/2,m)T(n/2,m) 次に、再帰を評価するために、暗唱インストラクターは言います は、最大値を見つけるためT(1,m)=Θ(m)T(1,m)=Θ(m)T(1,m) = \Theta(m) T(n,m)=Θ(1)+Θ(m)+T(n/2,m)(E1)(E1)T(n,m)=Θ(1)+Θ(m)+T(n/2,m) T(n,m) = \Theta(1) + \Theta(m) + …


3
配列内の各要素のより小さな要素の数を効率的に見つける
私はこの問題に行き詰まっています: 最初の自然数の配列がランダムに並べ替えられると、配列が構築され、 はよりも小さいからまでの要素数になります。。 n B B (k )A (1 )A (k − 1 )A (k )AAAnnnBBBB(k)B(k)B(k)A(1)A(1)A(1)A(k−1)A(k−1)A(k-1)A(k)A(k)A(k) i)が与えられれば、時間でを見つけることができますか? ii)が与えられた場合、を時間で見つけることができますか?B O (n )B A O (n )AAABBBO(n)O(n)O(n)BBBAAAO(n)O(n)O(n) ここで、です。具体的な例: | A 8 4 3 1 7 2 9 6 5 B 0 0 0 0 3 1 6 4 4 |B(1)=0B(1)=0B(1) = 0∣∣∣AB804030107321966454∣∣∣|A843172965B000031644|\begin{vmatrix} …

1
おそらく負の重みを持つ重み付き有向非循環グラフの最小stカット
私は次の問題に遭遇しました: 実際のエッジの重みと2つの頂点sとtを持つ有向非循環グラフが与えられた場合、最小stカットを計算します。 一般的なグラフの場合、これはNP困難です。エッジの重みを逆にするだけで、max-cutを簡単に減らすことができるためです(私が間違っている場合は修正してください)。 DAGの状況はどうですか?最小カット(または最大カット)は多項式時間で解決できますか?それはNPハードであり、そうであれば、既知の近似アルゴリズムはありますか? 私はこれについて仕事を見つけようとしましたが、できなかったので(たぶん、検索で間違ったキーワードを使用しているだけかもしれません)、誰かがこれについて何か知っている(または見つける)ことを望んでいました。

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