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

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

4
アルゴリズムの自動ランタイム分析の方法はありますか?
私は疑問に思っています、少なくともアルゴリズムの関連するサブセット(分析可能なアルゴリズム)で機能する自動ランタイム分析の方法はありますか? 私は私に与えた「自動アルゴリズム分析」ググこれを、それはあまりにもMathyさんです。私が理解できるpsuedocodeの簡単な例が欲しいだけです。具体的すぎるかもしれませんが、一見の価値があると思いました。

2
同値関係は問題をカバーします(グラフ理論)
有限頂点セットの同値関係は、クリークの互いに素な結合である無向グラフで表すことができます。頂点セットは要素を表し、エッジは2つの要素が同等であることを表します。 私はグラフがある場合はやグラフG 1、... 、Gのkは、我々はと言うGがで覆われているG 1、... 、Gのk個の辺の集合ならばGは、の辺の和集合に等しく、G 1、… 、G k。G 1、… 、G kのエッジセットは互いに素である必要はありません。無向グラフGGGGG1,…,GkG1,…,GkG_1,\dots,G_kGGGG1,…,GkG1,…,GkG_1,\dots,G_kGGGG1,…,GkG1,…,GkG_1,\dots,G_kG1,…,GkG1,…,GkG_1,\dots,G_kGGG 有限数の同値関係(つまり、クリークグラフの素な結合)でカバーできます。 いくつか質問があります。 グラフをカバーするために必要な同値関係の最小数については何が言えますか?GGG この最小数をどのように計算できますか? 明示的な最小カバー、つまり、サイズが最小でGをカバーする同値関係のセットをどのように計算できますか?GGGGGG この問題には、パーティションロジック(サブセットのロジックのデュアル)以外のアプリケーションがありますか? この問題には十分に確立された名前がありますか? コメントに示されているさまざまな誤解を踏まえて、これらの概念を説明するための写真を次に示します。わかりやすい用語(「カバー」、「同値関係」、「クリークの非論理和」、「エッジセットの非論理結合」ではない)のアイデアがある場合は、遠慮なくお知らせください。 以下は、グラフとそれをカバーする1つの等価関係の図です。 以下は、グラフと それをカバーする 2つの等価関係の図です。少なくとも2つの等価関係が必要であることは明らかです。 以下は、グラフと それをカバーする 3つの等価関係の図です。少なくとも3つの等価関係が必要であることはそれほど明白ではありません。Dual of the Logic of Subsetsの Lemma 1.9を使用して、これが正しいことを示すことができます。この補題を2つ以上の入力を持つnand操作に一般化することが、この質問の動機でした。

1
このアルゴリズムが最終的に終了することを証明する簡単な方法
導入と表記: (私の実験によれば)終了するように見える私のアルゴリズムの新しくてシンプルなバージョンがここにあります、そして今私はそれを証明したいと思います。 表記ましょを参照して、P次元データ点(ベクトル)。A、B、Cの3つのセットがあります。A | = n、| B | = m、| C | = l: A = { x i | 私は= 1 、。。、n } B = { x j | j = n + 1xi∈Rpxi∈Rpx_i \in \mathbb{R}^pppp|A|=n|A|=n|A| = n|B|=m|B|=m|B| = m|C|=l|C|=l|C| = lA={xi|i=1,..,n}A={xi|i=1,..,n}A = \{x_i | i = 1, .., …

3
範囲から描画されるエッジの重みに対するダイクストラのアルゴリズムを変更する
範囲からエッジの重みが描画された有向グラフがあるとします。ここで、は定数です。ダイクストラのアルゴリズムを使用して最短経路を見つけようとしている場合、アルゴリズム/データ構造を変更して、時間の複雑さを改善するにはどうすればよいですか?[1,…,K][1,…,K][1,\dots, K]KKKO(|V|+|E|)O(|V|+|E|)O(|V|+|E|)

2
一部の要素が他の要素の間に入らないように要素を順序付けする
整数所与と異なる整数のトリプレットの集合 S ⊆ { (I 、J 、K )| 1 ≤ iが、J 、K ≤ N 、I ≠ J 、J ≠ K 、I ≠ K } 、 そのいずれかのアルゴリズムを見つけます。発見A順列π組の{ 1 、2 、... 、N }、その結果 (InnnS⊆{(i,j,k)∣1≤i,j,k≤n,i≠j,j≠k,i≠k},S⊆{(i,j,k)∣1≤i,j,k≤n,i≠j,j≠k,i≠k},S \subseteq \{(i, j, k) \mid 1\le i,j,k \le n, i \neq j, j \neq k, i \neq k\},ππ\pi{1,2,…,n}{1,2,…,n}\{1, …

3
ワトソン・クリックの回文を認識するスペースの複雑さ
次のアルゴリズムの問​​題があります。 Watson-Crickの回文であるDNA文字列を認識する複雑な空間チューリングを決定します。 Watson-Crickパリンドロームは、元のストリングが逆補数のストリングです。補体は、 DNAに触発、文字ごとに定義される:AはTの補数であり、Cは、ACGT WC-ドロームためG. Aの単純な例の補数です。 これを解決するには2つの方法があります。 1つはスペースを必要とします。O(n)O(n)\mathcal{O}(n) 機械が完了したら、入力を読み取ります。入力テープは、逆の順序でワークテープにコピーする必要があります。 次に、マシンは入力とワークテープを左から読み取り、各エントリを比較して、ワークテープのセルが入力のセルの補数であることを確認します。これにはスペースが必要です。O(n)O(n)\mathcal{O}(n) もう1つにはスペースが必要です。O(logn)O(log⁡n)\mathcal{O}(\log n) 入力の読み取り中。入力テープのエントリ数をカウントします。 入力テープが読み終わったら 文字の補数を作業テープにコピーします 文字Lを作業テープの最後にコピーします (ループポイント)カウンター= 0の場合、ワークテープをクリアして「yes」と書き込み、停止します 入力テープがLを読み取る場合 カウンターで示された回数だけ入力ヘッドを左に移動します(2番目のカウンターが必要)。 入力テープがRを読み取る場合 カウンターで示された回数だけ入力ヘッドを右に移動します(2番目のカウンターが必要)。 ワークテープの値を保持するセルが入力テープの現在のセルと一致する場合 カウンターを2減分する RまたはLがそれぞれワークテープにあるかどうかに応じて、1つを左または右に移動します。 LまたはRの補数を現在のLまたはRの代わりにワークテープにコピーする ループを続ける 値が一致しない場合は、ワークテープをクリアして「いいえ」と書き込み、停止します 2logn+22log⁡n+22\log n+2 私の問題 最初のものは線形時間と空間の両方を必要とします。2番目にはが必要ですn22n22\frac{n^2}{2}lognlog⁡n\log n 私が混乱している理由 2番目の方法は時間の点で優れているので、2番目の方法が最良の選択肢であると思う傾向がありますが、その答えは私が幸運になってアルゴリズムを考え出すことによってのみ得られます。スペースに複雑さを与えたいのであれば、正しいアルゴリズムを思いつくのに運は必要ないようです。何か不足していますか?スペースの複雑さを解決するための問題の解決策を考え出す必要さえありますか?


5
ダイグラフを可逆的な方法で無向グラフに変換する
私は、有向グラフ(有向グラフ)を無向グラフに可逆的に変換するアルゴリズムを探しています。つまり、無向グラフが与えられれば、有向グラフは再構築可能でなければなりません。これは無向グラフの頂点が増えることで発生することを理解していますが、気にしません。 これを行う方法を知っているか、参照を提案できますか?前もって感謝します。 更新:以下のAdrianNの回答について。それは良い出発点かもしれませんが、それが現在の形で機能するとは思いません。これが私がそうではないと思う理由の画像です: DWのコメントの後に更新:グラフの頂点はラベル付けされていないと見なします。解決策が頂点のラベル付けを伴う場合(AdrianNのように)、ラベル付けがどのように行われても、同じ(同形)無向グラフが得られるはずです。ラベル付けされた頂点を持つグラフの「同形」の私の定義は、2つのグラフに関連するラベル付けの順列があるということですが、ラベル付けされていないグラフの正確な定義はわかりません...

1
図の交差するエッジの数を減らす方法は?
ダイアグラムエディターの作業をしています。ダイアグラムは、コネクター(エッジ)で接続された2D形状(ノード)を表示します。 ノードを選択して、それらを「解きほぐす」操作を追加したいと思います。可能であれば、交差するエッジの数を減らすためにノードを再配置します(また、エッジをベンドポイントで描画する必要がある場合は問題ありません)。 。 したがって、(トポロジ)グラフの埋め込みとそのノードのサブセットを前提として、交差するエッジの数を最小限に抑えるために、それらのノードのみの埋め込み(そのトポロジ)を変更するグラフアルゴリズムが必要です。 頂点グラフについて読んだり、CabelloとMohar(2013)を閲覧したりすると、この問題はNP困難であると思います。そのため、任意のパラメーター値に対して既知の多項式の時間複雑性を持つパラメーター化されたアルゴリズム(たとえば、交差するエッジの数)に満足します。これは実現可能に思えますが、自分でそのようなアルゴリズムを思いつくのは簡単ではありません。 質問: そのようなアルゴリズムはどこにありますか? 存在しますか? 既存のソフトウェアでは? そのような手術での重要な実務経験はありますか?(理論的には見た目が良いものは実際にはそれほど良くないかもしれませんし、逆もまた同様です。) (私はこの質問をするのに最適な場所がわかりません:ここ、StackOverflow、またはMathOverflowで?)

5
効率的なアルゴリズムとは何ですか?
漸近的な振る舞いの観点から、何が「効率的な」アルゴリズムと考えられていますか?その時点で線を引く基準/理由は何ですか?個人的に、ようなように、私が単純に「サブ多項式」と呼ぶものはすべて効率的であり、は「非効率的」になります。しかし、多項式次数で効率的と呼ばれるものは何でも聞いています。理由は何ですか?f(n)=o(n2)f(n)=o(n2)f(n) = o(n^2)n1+ϵn1+ϵn^{1+\epsilon}Ω(n2)Ω(n2)\Omega(n^2)

2
Knuth-Morris-PrattアルゴリズムがBoyer-Mooreよりも速い例?
Knuth-Moriss-PrattアルゴリズムとBoyer-Mooreとの比較に関するこのページでは、Koyer-Mooreアルゴリズムがスキップ距離が短いためにKMPのパフォーマンスが向上する可能性があるケースについて説明します。 このケースを明確に示すことができる良い例(テキスト、パターン)を探しています。

1
一連の線分が与えられたときに、二重に接続されたエッジリストを作成するにはどうすればよいですか
一連の線分によって定義される、平面に埋め込まれた特定の平面グラフ場合、各セグメントはその端点表されます。平面サブディビジョンのDCELデータ構造を構築し、アルゴリズムを記述し、それが正確であることを証明し、複雑さを示します。G(V,E)G(V,E)G(V,E)E={e1,...,em}E={e1,...,em}E= \left \{ e_1,...,e_m \right \} eieie_i{Li,Ri}{Li,Ri}\left \{ L_i,R_i \right \} DCELデータ構造のこの説明によれば、DCELの異なるオブジェクト(つまり、頂点、エッジ、面)の間には多くの接続があります。したがって、DCELの構築と保守は難しいようです。 DCELデータ構造を構築するために使用できる効率的なアルゴリズムを知っていますか?

3
線形時間での有向非循環グラフのソースの検索
有向非巡回グラフ与えられた場合、頂点のは、その次数がゼロの場合のソースであり、出力アークのみを持つことを意味します。D = (V、A )D=(V、あ)D = (V,A)V ∈ Vv∈Vv \in V 与えられた有向非巡回グラフでソースを見つけるための線形時間アルゴリズムはありますか? 追加質問:線形時間ですべてのソースを見つけることができますか?

1
グラフに自明ではない自己同型があるかどうかを判断するための効率的なアルゴリズムはありますか?
私はラテン方格に関連する問題に取り組んでおり、本質的に決定問題に帰着する方法を求めています。 入力:有限の単純なグラフG。 出力:YESGが自明でない自己同型を持つNO場合、それ以外の場合。 したがって... 質問:グラフに自明でない自己同型があるかどうかを判断するための効率的なアルゴリズムはありますか? NautyまたはBliss(およびおそらく他のいくつかのパッケージ)を使用して、自己同型グループ全体を計算できますが、私はそれを必要としません。私が判断する必要があるのは、それが取るに​​足らないことかどうかです。 この決定問題は、理論的には「自己同型グループ全体を計算する」ことと理論的には同じくらい複雑である可能性があります。よく分かりません。 私の目的では、「効率的」とは基本的に「自己同型群全体を計算するよりも実際に速い」ことを意味しますが、その背後にある理論にも興味があります。

2
最適な順序を見つける
私はこの問題に遭遇し、それに取り組む方法を見つけるのに苦労しています。どんな考えでも大歓迎です! たとえば、行列 -1、0、1が与えられているとします。{−1,0,1}n × k{−1,0,1}n × k\{-1, 0, 1\}^{n\ \times\ k} ⎡⎣⎢⎢⎢⎢⎢⎢1−10−11001−101010000010−11−11− 1⎤⎦⎥⎥⎥⎥⎥⎥[1010−1−100010110−1−1−10111000−1]\begin{bmatrix} 1 & 0 & 1 & 0 & -1 \\ -1 & 0 & 0 & 0 & 1 \\ 0 & 1 & 1 & 0 & -1 \\ -1 & -1 & 0 & 1 …

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