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

2
合計関数が列挙できないのはなぜですか?
関数の列挙の概念について学びました。実際には、プログラミング言語に対応しています。 教授は、発言の中で、すべての合計関数(つまり、すべての入力に対して常に終了する関数)のクラスは列挙できないと述べました。つまり、すべての全機能を記述できるプログラミング言語を考案することはできませんが、他の機能は一切実現できません。 それで、まともな計算能力が必要な場合、どうやら(明らかに)非終了の可能性を受け入れなければならないのでしょうか?

1
すべてのソリューションのリストに関連する複雑性クラス?
私は特定のノードを含むグラフにすべての単純なサイクルをリストするのがNP困難であるかどうかを尋ねるStack Overflowで質問を読んでいて、適切な既存の複雑度クラスを考えることができないと思いました「この問題に対するすべての解決策をリストする」という形式の問題について話します。クラスNPは、ある意味で、少なくとも1つのソリューションが存在するかどうかを尋ねる問題で構成され、クラスFNPは単一のソリューションを作成するよう求め、クラス#Pはソリューションの数を数えるよう求めますが、これらはどれも複雑性に対処しませんすべての可能なソリューションを徹底的に列挙する。 「多項式時間の計算可能な述語と文字列xが与えられ、P (x 、y )がtrue であるすべてのyを列挙する形式の問題を記述するための複雑度クラスはありますか。適切な複雑さの制限]?」解の数が入力xのサイズより指数関数的に大きくなる可能性があることを考えると、制限を特定するのは難しいかもしれないことを理解しています。P(x,y)P(x,y)P(x, y)xxxyyyP(x,y)P(x,y)P(x, y)xxx

1
有向グラフで単純なサイクルを見つける
私にとって、この問題は非常に興味深いようです。有向グラフで単純なサイクル(つまり、反復ノードではないサイクル)を見つけようとしていました。 私の解決策は次のようになっています。つまり、このグラフはケースの問題です。 深さ優先検索で「バックエッジ」を見つけることができるときにグラフにサイクルがあることを知っています(DFSTreeの私の写真で破線)、しばらくの間は数サイクルは確かですが、すべて、単純なサイクル。なぜなら、サイクルから非常に重要な指示されたegdes、つまり(0123)!=(0321) 私は、バックエッジを持つ各ノードのdfsを作成することを考えていますが、私にはわかりません、そしてそれは明確ではありません。それで、あなたが私を案内するかどうか、私はあなたに尋ねます。ありがとう!。 ここに私のケースの問題に対する単純なループのカウントがあります。

3
合計がNになるすべての4乗の組み合わせをどれくらい早く見つけることができますか?
Stack Overflowで質問がありました(こちら): 整数与えられると、方程式A 2 + B 2 + C 2 + D 2 = Nを解くA 、B 、CおよびDNNNの整数値のすべての可能な組み合わせを出力します。A,B,CA,B,CA,B,CDDDA2+B2+C2+D2=NA2+B2+C2+D2=NA^2+B^2+C^2+D^2 = N この質問は、もちろん、バチェットの数論における推測(彼の証明からラグランジュの四乗定理と呼ばれることもある)に関連しています。単一の解決策を見つける方法を議論するいくつかの論文がありますが、特定のNのすべての解決策を見つけることができる速さ(つまり、すべての順列ではなく、すべての組み合わせ)を見つけることについて話すものを見つけることができませんでした。NNN 私はそれについてかなり考えてきましたが、時間と空間で解決できるように思われます。ここで、Nは望ましい合計です。しかし、主題に関する事前情報が不足しているため、それが私の側の重要な主張なのか、ささいな、明白な、またはすでに知られている結果なのかわかりません。O(N)O(N)O(N)NNN それで、問題は、与えられたすべての4乗和をどれだけ速く見つけることができるかということです。NNN OK、私が考えていた(ほぼ)O(N)アルゴリズムです。最初の2つのサポート関数、最も近い整数平方根関数: // the nearest integer whose square is less than or equal to N public int SquRt(int N) { return (int)Math.Sqrt((double)N); } そして、0からNまでのすべてのTwoSquareペアを返す関数: // Returns a list of …

1
有向グラフのst(単純)パスの平均長
事実、所与の -パス列挙には効率的な方法があるかもしれません、#はP完全問題である計算(または少なくとも近似)の平均長さ -パスそれらを列挙することなく?パスが頂点を再訪することが許可されている場合はどうなりますか?ssstttsssttt 特別なグラフの関連する結果も参考になります。


1
から
定義。グラフと2つの頂点sおよびtが与えられた場合、k -shortest-paths問題は、G のsとtの間のk最短単純パスを見つけることです。G = (V、E)G=(V,E)G=(V,E)ssstttkkkkkkssstttGGG これらのパスの長さは必ずしも同じである必要はなく、頂点とtは必ずk接続されていることに注意してください。この問題に対して線形時間(nおよびmの観点から)アルゴリズムがあるかどうか疑問に思っていました。ssstttkkkんnnメートルmm 「円のランキングループレスパスアルゴリズムの新しい実装」など、私は文献でいくつかの論文を見てきましたが、時間の複雑さは本当に高いです。また、Epsteinによる他の論文「K最短パスを見つける」では、実行時間O (n + m + k )の単純なパスではないk最短パスを見つけるアルゴリズムを示しています。O (Kn (m + n l o gn ))O(Kn(m+nlogn))O(Kn(m+nlogn))kkkO (n + m + k )O(n+m+k)O(n+m+k) -simple-shortest-paths問題の線形時間アルゴリズムはありますか?kkk

1
ハイパーキューブ内のすべてのグリッドポイントをアルゴリズム的に生成する
\def\R{\mathbb{R}}\def\Z{\mathbb{Z}}\def\n#1{\|#1\|_\infty}問題は計算数学から直接生じ、次のように述べた: 正則行列所与の、すべてのベクトルが効果的に見つけるよう、\ N {MVは}の最大成分であります係数のベクトル。M∈ Rd× dM∈Rd×dM\in\R^{d\times d}V ∈ Zdv∈Zdv\in\Z^d∥ MV ∥∞≤ 1‖Mv‖∞≤1\n{Mv}\leq1∥ MV ∥∞‖Mv‖∞\n{Mv} 以下にアルゴリズムを示しますが、グリッドポイントの数よりもはるかに多くのステップがあるため、非常に非効率的です。私の場合はd = 5でも耐えられd= 5d=5d=5ますが、d= 6d=6d=6では完全に失敗します。時間はあまりありません。また、高次元にも対応したいです。 私の現在のアルゴリズムは以下に基づいています(免責事項:より多くの数学が含まれています):最初に、\ n {M ^ {-1}}を計算し∥ M− 1∥∞‖M−1‖∞\n{M^{-1}}ます。次に、\ n {v} \ leq \ n {M ^ {-1}} \ n {Mv} \ leq \ n {M ^ {-1}}が観察され∥ V∥∞≤ ∥はM− 1∥∞∥Mv∥∞≤ ∥はM− 1∥∞‖v‖∞≤‖M−1‖∞‖Mv‖∞≤‖M−1‖∞\n{v}\leq\n{M^{-1}}\n{Mv}\leq\n{M^{-1}}ます。つまり、L …

2
指定された高さのすべてのバイナリツリーをリストするアルゴリズム
私は与えられた高さのすべての二分木をリストするアルゴリズムを見つけようとしました hhh。 私はそれらを数えようとしているわけではないことに注意してください:そのような木の数はOEIS(A001699)で与えられています。 私が見ることができたすべてのアルゴリズムは、指定された数のノードのすべてのバイナリツリーをリストします。問題を解決する非常に非効率的な方法は、間にいくつかのノードを持つすべてのツリーをチェックすることによって続行されますh + 1h+1h+1 そして 2h + 1− 12h+1−12^{h+1}-1、しかしこれはまったく素晴らしいことではありません。 ポインタや参照は大歓迎です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.