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

タスクを完了するための明確に定義された指示、および時間/メモリ/その他に関する関連分析に関する質問。

1
家族がSperner家族かどうかを判断する複雑さ
{1、...、n} のサブセットのファミリが与えられます。がSpernerファミリーであるかどうかを判断する複雑さの非自明な下限を見つけることは可能ですか?自明な下限はあり、厳密ではないと考えています。 m F O (n m )FF\mathcal{F}mmmFF\mathcal{F}O (n m )O(nm)O(n m) とが場合、セットはSpernerファミリーであることを思い出してください。、およびY \ nsubseteq Xを意味します。SS\mathcal{S}バツXXYYYSS\mathcal{S}バツ≠ YX≠YX \ne Yバツ⊈ YX⊈YX \nsubseteq YY⊈ XY⊈XY \nsubseteq X

2
順列行列のカバーを設定
nxnの順列行列のセットS(n!の可能な順列行列のごく一部です)が与えられた場合、Tの行列の追加がすべての位置で少なくとも1になるように、Sの最小サイズのサブセットTを見つけるにはどうすればよいですか? SがS_nの小さなサブグループであるこの問題に興味があります。貪欲なアルゴリズムよりもはるかに速い近似アルゴリズムを見つける(そして実装する)ことが可能かどうか疑問に思っています(「ラッキー」になるまで何度も実行しますが、これは非常に遅い手順ですが、それにもかかわらずいくつかの最適範囲に近づいています)小さい場合)、または近寄れないことが保証できないかどうか。 この問題に関する簡単な事実:長さnの順列行列の巡回グループは、もちろん最適にこの問題を解決します。(各置換行列にはn個の1があり、n ^ 2個の行列が必要であるため、少なくともn個の行列が必要です。) 私が興味を持っているセットSには、n環式グループがありません。 この問題は、セットカバーの非常に特殊なケースです。実際、Xをn ^ 2個の要素を持つ集合(1,2、... n)*(1,2、... n)とすると、各置換行列はサイズnのサブセットに対応し、I Xをカバーするこれらのサブセットの最小のサブコレクションを探しています。セットカバー自体は、一般的なセットカバー問題の近似なので、この問題を確認する良い方法ではありません。 貪欲なアプローチを使用してこの問題がそれほど遅くない唯一の理由は、順列グループの対称性が多くの冗長性を排除するのに役立つからです。特に、Sがサブグループで、Tが最小のカバーセットである小さなサブセットである場合、セットsT(グループsの任意の要素にTを掛ける)はまだSにあり、カバーセット(もちろん)です。同じサイズなので、まだ最小です。)疑問に思った場合、成功したケースにはn〜30と| S |〜1000があり、幸運な貪欲な結果には| T |があります。〜37。n〜50のケースには、取得に非常に長い時間がかかる非常に貧弱な境界があります。 要約すると、この問題に対する近似アプローチがあるのか​​、それとも一般的な集合カバー問題のように、いくつかの非近似性の定理に収まるほど一般的であるのか疑問に思っています。実際に関連する問題を近似するためにどのアルゴリズムが使用されていますか?サブセットはすべて同じサイズであり、すべての要素は同じ小さな頻度1 / nで表示されるため、何か可能性があるようです。 -B

1
パーマネントに一意の用語があるかどうかを判断できますか?
整数エントリを持つn行n列の行列Mが与えられたと仮定します。我々は順列があるかどうかをPに決定することができすべての順列のためになるようにπ ≠ σ我々が持っているΠ M I σ (I ) ≠ Π M I π (私は)?σσ\sigmaπ≠ σπ≠σ\pi\ne\sigmaΠ M私はσ(i )≠ Π M私π(i )ΠM私σ(私)≠ΠM私π(私)\Pi M_{i\sigma(i)}\ne \Pi M_{i\pi(i)} 備考。もちろん、製品を合計に置き換えることができますが、問題は同じままです。 マトリックスに0/1エントリのみを含めることができる場合、NCにあるBipartite-UPM問題が発生します。 編集:最小化された用語が一意であるかどうかを判断するのは、ランダム化された削減を許可する場合、NP困難です。実際に、私はもともとそれが解決に貢献しているだろうので、この質問を提起したかったこの 1を。さて、これはNP完全であることが判明したので、問題の軽減をスケッチしてみましょう。入力がゼロと1の行列であると想像して(これを想定できます)、ゼロエントリを2〜2 + 1 / nのランダムな実数で置き換えます。高い確率でこの新しい行列では、元の行列が上三角形式に置換可能である場合にのみ、最小項が一意になります。 編集:同様の質問: エッジ重み付きグラフで、一意の重みを持つハミルトニアンサイクルはありますか? すべての変数/満足できる割り当てに割り当てられた重みを持つCNFがある場合、割り当てを満たす一意の重みはありますか? もちろん、これらは少なくともNPハードです。これらの問題は元の問題と同等ですか、それとも困難ですか?


2
すべての要素が他の2つの要素の合計である整数の小さなセットを見つける
これは、math.stackexchangeに関するこの質問のフォローアップです。 a∈S ごとに、a = b + cの よう な個別の要素b、c∈Sが存在する場合、空でないセットS existℤは自立しているとしましょう。正の整数のN、簡単な例は、理想的なS =含む N ℤ、または(のためのn [ - 3>)整数間隔N、 Nを ]。 Sが−Sから切り離されている場合、Sは強く自立していると言います。つまり、 a∈S であれば、 − a∉Sです。否定の下で。強力な自立型の有限セットが存在します。たとえば、セット{-22、-20、-18、-16、-14、-12、-10、-2、1、3、7、8、15 、23}および{-10、-8、-6、-2、1、3、4、5}。 質問1。整数正ためN > 0、ポリ(存在しないNを)-time [又はpolylog(N)-time]アルゴリズムのいずれかに(i)は 、その絶対値の最大値である強く自己支持組製造N、または(IIを) そのようなセットが存在しないと判断しますか?[ 編集:それ最古の答え+私のコメントで指摘したように、常にこのようなセットが存在するN 10≥] 質問2。N > 0、あなたは絶対値の最大値と強く自立型セット構築することができますNを、そしてこれは、最小限の要素を持っていますか?

2
グラフ同型テストのハードインスタンス
強く規則的なグラフの場合は、GIテストにとって最も難しいものですか? ここで、「最も難しい」は、いわば「常識」の意味、または「平均」で使用されます。 Wolfram MathWorldはいくつかの「病理学的に難しいグラフ」に言及しています。彼らは何ですか? 25組のグラフのサンプルセット:http : //funkybee.narod.ru/graphs.htm他の多くのテストを行いましたが、すべて同じ種類-SRGまたはRG(http://www.maths.gla.acから).uk /〜es / srgraphs.htmlまたはgenreg.exeの。たとえば、1000個のグラフを生成した場合、すべての1000 *(1000-1)/ 2ペアをテストします。もちろん、度数のソートされたベクトルが異なるグラフなどの明白な(「愚かな」)ケースはテストしません。しかし、プロセスは無限であるように見え、ある程度無益な匂いがします。どのテスト戦略を選択すべきですか?それとも、この質問はGI問題自体とほぼ同等ですか? 私は紙にthesis_pascal_schweitzer.pdf (@ 5501が推奨)のグラフを書き直しさえしました。その素敵な写真:http : //funkybee.narod.ru/misc/furer.jpg よく分かりませんが、まさにこの種のグラフのように見えます。 しかし、紳士、電子書籍からグラフを紙にコピーするのは私にとってもやり過ぎです。 25 0100000000000000000000000 1010000000000000000000000 0101000000000000000000100 0010100000000010000000000 0001010000001000000000000 0000101000000000000000000 0000010100000000000000000 0000001010000000000000000 0000000101000000000000000 0000000010100000000000000 0000000001010000000000000 0000000000101000000000100 0000100000010000000000010 0000000000000010000001010 0001000000000101000000000 0000000000000010100000000 0000000000000001010000000 0000000000000000101000000 0000000000000000010100000 0000000000000000001010000 0000000000000000000101000 0000000000000100000010100 0010000000010000000001000 0000000000001100000000001 0000000000000000000000010 0100000000000000000000000 1010000000000000000000000 0101000000000000000000100 0010100000000010000000000 0001000000001000000010000 …

1
不完全なサブグラフ同型
次の問題を考えてみましょう:クエリグラフおよび参照グラフ与えられた場合、単射写像を見つけて、エッジように。これは、サブグラフをいくつかの欠損エッジまで同型にすることができ、欠損エッジの数を最小限にする方法を見つけたいサブグラフ同型問題の一般化です。G ' = (V '、E ')、F :V → V '(V 1、V 2)∈ E (F (V 1)、F (V 2))∉ E 'G=(V,E)G=(V,E)G = (V, E)G′=(V′,E′)G′=(V′,E′)G' = (V', E')f:V→V′f:V→V′f : V \rightarrow V'(v1,v2)∈E(v1,v2)∈E(v_1, v_2) \in E(f(v1),f(v2))∉E′(f(v1),f(v2))∉E′(f(v_1), f(v_2)) \notin E' また、頂点のカップルが重み(場合はゼロでなければなりませんの重み付きバージョンにも興味があります。、およびについても同様で、(\ max参照グラフの重みよりも大きいクエリグラフの重みのみにペナルティを課すためにあります)。(v1,v2)∈V2(v1,v2)∈V2(v_1, v_2) \in V^2w(v1,v2)w(v1,v2)w(v_1, v_2)(v1,v2)∉E)(v1,v2)∉E)(v_1, v_2) \notin E)G′G′G'∑v1,v2(max(0,w(v1,v2)−w(f(v1),f(v2))))∑v1,v2(max(0,w(v1,v2)−w(f(v1),f(v2))))\sum_{v_1, v_2} (\max(0, w(v_1, v_2) - …

5
TCSのペダントリーの例
ラリー・ワッサーマンは最近の投稿で「p-value police」について語っています。彼は興味深い点を述べています(すべてが私のものです)(追加した斜体の前提とその下の応答): 最も一般的な不満は、物理学者とジャーナリストがp値の意味を誤って説明していることです。たとえば、p値が0.000001の場合、「信号が本物であるという99.9999%の信頼性がある」などのステートメントが表示されます。その後、ステートメントを修正する必要があります。 as or extremeは0.000001です。 けっこうだ。しかし、それは本当に重要ですか?全体像は次のとおりです。効果の証拠は圧倒的です。言葉遣いが少し誤解を招く場合、それは本当に重要ですか?私たちはこれについて文句を言う場合、私たちはつまらないものとしてのイメージを強化すると思います。 考えさせられた- TCSのペダントリーの良い例はありますか?そのような例は、 一般的に報道機関で行われている主張 人々が作ることを主張する標準的な修正 不正確であってもクレームが捉える正しい「全体像」。 ここで、クレームは数学的に間違っているが「道徳的に正しい」ものであり、修正は技術的には正しいが、直感的な理解を変更するものではありません。 物事を先導するために、私の例は次のようになります: クレーム-NP完全問題の解決には指数関数的な時間がかかります 訂正-実際、多項式時間で解けるかどうかはわかりません 全体像-NP完全問題は難しい 注意:このフォーラムには、間違っているが「道徳的に正しい」という主張のアイデアで頭が爆発する多くの人がいることを知っています。これらは、研究論文に記載された声明ではなく、一般に向けられた声明(ある程度のライセンスが許可される場合)であることを忘れないでください。

2
複雑性分析における平方根のアイデアの注目すべき例
がk = \ sqrt nで最小値を取得するという考え方を活用するアルゴリズムとデータ構造がいくつかあります。一般的な例は次のとおりです。max{k,n/k}max{k,n/k}\max \left\{k, n/k\right\}k=n−−√k=nk=\sqrt n O(\ sqrt n)の離散対数を計算するためのベイビーステップジャイアントステップアルゴリズムO(n−−√)O(n)O(\sqrt n)、 O (n−−√)O(n)O(\sqrt n)時間およびO (n )O(n)O(n)メモリでの静的2D直交範囲カウント、 O(\ sqrt [k] n)に EXTRACT-MINがありO (n−−√k)O(nk)O(\sqrt[k] n)、O ( 1 )O(1)O(1)にDECREASE-KEYがある優先度キュー 多項式時間でO (n−−√)O(n)O(\sqrt n)色で3色のグラフを着色する、 ほんの数例を挙げます。 このようなアルゴリズムは多くの場合最適ではありませんが、学生は理解しやすく、素朴な境界が最適でないことをすぐに示すことができます。また、平方根のアイデアのデータ構造は、キャッシュの扱いやすさのために、バイナリツリーベースのデータ構造よりも実用的である場合があります(キャッシュを無視する手法を考慮していません)。だからこそ、教えながらこのトピックにかなりの注意を払っています。 この種のより特徴的な例に興味があります。だから私は、分析が平方根のアイデアに依存する(できればエレガントな)アルゴリズム、データ構造、通信プロトコルなどを探しています。それらの漸近は最適である必要はありません。

4
行列乗算指数
口語、マトリックス乗算指数の定義ωω\omega既知が存在するために最小値であるnωnωn^{\omega}行列乗算アルゴリズムは。これは正式な数学的定義としては受け入れられないので、技術的な定義は、n tに行列乗算アルゴリズムが存在するような全体にわたる無限大のようなものだと思います。tttntntn^t この場合、我々は、中のマトリックス乗算のためのアルゴリズムが存在すると言うことはできませんnωnωn^{\omega}あるいはnω+o(1)nω+o(1)n^{\omega + o(1)}全てに対して単にこと、ϵ>0ϵ>0\epsilon > 0アルゴリズムがに存在するnω+ϵnω+ϵn^{\omega + \epsilon}。マトリックス乗算は単に彼らのコストを報告します使用多くの場合、しかし、論文や結果O(nω)O(nω)O(n^{\omega})。 この使用を許可する代替定義はありωω\omegaますか?時間またはアルゴリズムが存在することを保証する結果はありますか?または、使用法単にずさんですか?nωnωn^{\omega}nω+o(1)nω+o(1)n^{\omega + o(1)}O(nω)O(nω)O(n^{\omega})


1
リストに順番を維持
注文のメンテナンスの問題(または「リスト内の注文の維持」)は、操作をサポートすることです。 singleton:1つのアイテムでリストを作成し、そのポインターを返します insertAfter:アイテムへのポインターを指定すると、そのアイテムの後に新しいアイテムを挿入し、新しいアイテムへのポインターを返します delete:アイテムへのポインタを指定すると、リストから削除します minPointer:同じリスト内のアイテムへの2つのポインターを指定すると、リストの先頭に近い方を返します 私は、償却時間ですべての操作を実行するこの問題に対する3つの解決策を知っています。それらはすべて乗算を使用します。O (1 )O(1)O(1) Athanasios K. Tsakalidis:一般化リンクリストでの順序の維持 Dietz、P.、D. Sleator、リスト内の順序を維持するための2つのアルゴリズム Michael A. Bender、Richard Cole、Erik D. Demaine、Martin Farach-Colton、およびJack Zito、「リスト内の順序を維持するための2つの簡略化されたアルゴリズム」 A C 0にない算術演算を使用せずに、償却時間のリストで順序を維持できますか?O (1 )O(1)O(1)A C0AC0AC^0

5
モジュラー分解のリファレンス
Modular Decompositionのパワーとその特性をよりよく理解するための優れた論文/本は何ですか? モジュラー分解のアルゴリズム面に特に興味があります。線形時間でグラフのモジュラー分解を見つけることができると聞いたことがあります。そのための比較的単純なアルゴリズムはありますか?それほど効率的ではないが単純なアルゴリズムはどうですか?

3
Bob's Sale(製品の合計を最小化するための制約付きペアの並べ替え)
私は少し前にStack Overflowでこの質問をしました:問題:Bob's sale。誰かが質問をここに投稿することも提案しました。 誰かがすでにこの問題に関連する質問をしています- 特定のカーディナリティの最小重みサブフォレスト -しかし、私が理解している限り、それは私の問題に役立ちません。StackOverflowで最も評価の高い回答もご覧ください。 StackOverflowの質問の逐語的なコピーを次に示します。おそらく、このサイトには不適切に定式化されているので(ちなみに、ここで質問するだけでは教育を受けられないと感じます)、自由に編集してください。 注:これは、SWFファイル内のレコードの順序に関する実際の問題を抽象的に言い換えたものです。ソリューションは、オープンソースアプリケーションの改善に役立ちます。 ボブは店を持ち、販売をしたいと考えています。彼の店には多くの製品があり、在庫がある各製品の単位の特定の整数量を持っています。彼はまた、多くの棚に取り付けられた価格ラベル(製品の数と同じ数)を持ち、価格はすでに印刷されています。彼はどの製品にも価格ラベルを付けることができます(その製品の在庫全体に対する1つのアイテムの単価)。ただし、一部の製品には追加の制限があります。 すべてのBobの製品の総コストが可能な限り低くなるように、価格ラベルを配置する方法を見つける必要があります。総コストは、各製品に割り当てられた価格ラベルにその製品の在庫数を掛けた合計です。 与えられた: N –製品と価格ラベルの数 S I、0≤ I <N -インデックスを有する製品の在庫の数量I(整数) PのJ、0≤ J <N -インデックス付き価格ラベル上の価格J(整数) K –追加の制約ペアの数 K、BはK、0≤ K <K -追加の制約のために、製品インデックス どの製品インデックスもBに1回しか表示されません。したがって、この隣接リストによって形成されるグラフは、実際には有向木のセットです。 プログラムは以下を見つける必要があります。 M I、0≤ I <N -価格ラベルインデックス製品インデックスからマッピング(P M iは、製品の価格であるI) 条件を満たすには: P M A K ≤P M BがK、0≤ためのK <K Σ(S I ×P M …

2
リストをソートするための転置の最小数
独自の並べ替えアルゴリズムを考案する際に、比較できる最適なベンチマークを探しています。要素Aの並べ替えられていない順序と並べ替えられた順序Bの場合、AからBへの最適な転置数を計算する効率的な方法は何ですか? 転置は、リスト内の2つの要素の位置を切り替えることとして定義されるため、たとえば 1 2 4 3 それを作るために1つの転置(転置4と3)を持っています 1 2 3 4 何かのようなもの 1 7 2 5 9 6 4つの転置(7、2)、(7、6)、(6,5)、(9、7)が必要 更新(9/7/11):質問は、「交換」ではなく「転置」を使用して、隣接していない交換を参照するように変更されました。

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