一定の時間で解決できる自明でない問題?


14

一定時間は、絶対的なローエンドの時間の複雑さです。不思議に思うかもしれません:一定時間で計算できる非自明なものはありますか?チューリングマシンモデルに固執すると、入力の一定の長さの初期セグメントにしか依存できないため、入力のそれ以上の部分は一定時間で到達することさえできないため、あまり多くのことはできません。

一方、ビット数の基本操作が単一ステップとしてカウントされる、より強力な(より現実的な)ユニットコストRAMモデルを採用すると、解決できる可能性があります一定の時間であっても、重要なタスク。以下に例を示します。Oログn

インスタンス:整数。それぞれビットでバイナリ形式で指定されます。nkldOログn

質問:頂点接続性が、エッジ接続性が、最小次数がような頂点グラフが存在しますか?k l dnkld

定義から、問題がNPにあることさえ明らかではないことに注意してください。その理由は、入力がビットのみで与えられるのに対し、自然な目撃者(グラフ)にはビットの長い説明が必要な場合があるためです。一方、次の定理(B. Bollobasによる極値グラフ理論を参照)が助けになります。O log n Ωn2Oログn

定理:みましょう整数です。次の条件のいずれかが満たされている場合にのみ、頂点接続性、エッジ接続性、および最小次数 頂点グラフが存在します。n k l dnkldnkld

  • 0kld<n/2
  • 12d+2nkl=d<n1
  • k=l=d=n1。

これらの条件は一定時間(ユニットコストRAMモデル)でチェックできるため、定理はこのモデルで一定時間アルゴリズムを導きます。

質問:一定時間アルゴリズムの他の重要な例は何ですか?


6
確率的にチェック可能な証明の数を検証していますか?
デビッドエップシュタイン

6
あなたの例が時間だとは思わないでください。入力の長さはです。この場合、一般的なワードRAM では1ステップでビット操作のみが許可され。(別の方法は、入力の長さに比例してワードサイズを許可することですが、その場合、多くの「定数時間」アルゴリズムに名前を付けることができます...)これらの数字の後に長さ文字列を追加しようとすることができますが、私はその形式をチェックすることで実行する方法を見ない時間:あなたは、全文字列の長さが実際にあること(バイナリサーチ、発言を経由して)確認する必要がありそうです必要で、時間。M = O ログN O ログM nはO 1 Ω ログN ログNO1m=OログnO(logm)nO(1)Ω(logn)logn
ライアンウィリアムズ

4
David Eppsteinの提案は、より興味深い方向、つまりランダム化された O(1)時間アルゴリズムを検討することを指していると思います。少なくともその場合、少なくとも1回のアルゴリズムの実行ですべての入力ビットがアクセスされることを期待できます。
ライアンウィリアムズ

4
ランダム化されたO(1)時間アルゴリズムの簡単な例は、近似中央値です(入力をおよそ50-50に分割するという意味でおおよそ)。単純にランダムに入力から1000000個の要素を選択し、それらの中央値を計算して出力します。
ユッカスオメラ

5
私はあなたの質問が好きですが、あなたの例の欠点は、数学の定理に依存していることです。これを限界までプッシュすると、インスタンスの正の整数と言うことができます。質問(答えはTrueまたはFalse)のような整数があります。答えは常にFalseであるため、確かに一定時間のアルゴリズムがありますが、これは明らかに希望する種類の例ではありません。n > 2 x n + y n = z nx,y,zn>2xn+yn=zn
J.-E.

回答:


6

NguyenとOnakによるローカル改善による論文の一定時間近似アルゴリズムは、ランダムな一定時間近似スキームの多くの例を示しています:最大マッチング(実行時間はグラフの最大次数のみに依存します)、カバーの設定などそのようなアルゴリズムを設計する方法を提示します。


5

組み合わせゲーム理論で研究されているゲームの例は数多くあり、ゲームの状態は定数の整数値で記述できます。これらのいくつかについては、ゲームの勝利戦略を一定の時間で計算できます。しかし、彼らはまた、あなたの計算モデルが正確に何であるかについての疑問を提起します。

最もシンプルで最も基本的なコンビナトリアルゲームの1つはnimです:一定数の豆の山があり、1回の動きで1つの山から勝ち負けのいずれかの数の豆を削除できます(ルールの選択に応じて)最後の豆をとったら ビットごとのブールxor操作(C / C ++ / Javaなどのプログラミング言語の^演算子)を許可する場合、最適な戦略は一定時間で計算できます。これはモデルの一定時間アルゴリズムですか?

一定の時間で正確な決定論的アルゴリズムが存在することが知られている(一定の時間で数の素数性をテストできる非現実的な拡張計算モデルで)が、そのアルゴリズムがわからない:Sylver coinageのゲームで移動し、それが勝ち手か負け手かを判断します。この問題のフローチャートは、Berlecamp、Conway、Guy、Winning Waysに記載されていますが、勝者の動きの一般的な特徴に対する反例の有限セットに依存し、そのセットが何であるか(またはそれが空の)。

コンビナトリアルゲーム理論のもう1つの興味深い例は、Wythoffのゲームです。。各ゲームの位置は、1組の整数(つまり、計算モデルの一定の空間)で記述でき、ゲーム内の移動には、これら2つの整数のいずれかを小さい値に減らし、勝利戦略には、これらの2つの整数の比率は、可能な限り黄金比に近くなります。しかし、多くのゲームポジションでは選択肢があります。2つの整数の大きい方を、(ほぼ)小さい整数倍黄金比、または小さい整数を黄金比で割るポイントまで減らすことができます。これら2つの選択肢のうち1つだけが勝者となります。したがって、最適な戦略は一定数の算術演算の観点から定義できますが、これらの演算には無理数である黄金比が含まれます。それはあなたのモデルの一定時間アルゴリズムですか?多分それ'nログn


ありがとう、これらはすべて興味深い例です。彼らはまた、きれいに...「一定の時間」の概念は、私が当初考えていたよりも明らかであるという事実に光を当てる
アンドラーシュFarago

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