コルモゴロフ複雑性の効率的に計算可能なバリアント


28

コルモゴロフ接頭辞の複雑さ(つまり、は、を出力する最小の自己区切りプログラムのサイズですは、いくつかの優れた機能があります。K(x)x

  1. これは、パターンまたは構造のある文字列に、文字列のない文字列よりも低い複雑さを与えるという直感に対応しています。
  2. これにより、条件付き複雑度、またはさらに優れたをいくつかのOracleに定義できます。K x | O OK(x|y)K(x|O)O
  3. 準加法です。K(x,y)K(x)+K(y)

しかし、これにはひどい欠点がありますが与えられると返すことは決定できません。 xK(x)x

Iコルモゴロフ複雑性の変異体が存在する場合に疑問に思っている(いずれかのTMよりも弱い言語を使用して、または資源不足有界TMを使用して)計算の制限されたモデルを使用しては、ジャムの特徴(1)及び(2)は(特徴( 3)ボーナスですが、必須ではありませんが、効率的に計算できますか?K(x)

この質問の動機は、進化のさまざまなおもちゃモデルのシミュレーション研究で使用するためです。したがって、以前に数値処理でコルモゴロフの複雑さの「大まかな近似」として使用された回答が優先されます。しかし、目標は、完全に実験に行く比較的単純な/きれいな記述言語/モデル・オブ・計算のためそうではなく、、どのように大幅に関するいくつかの合理的な定理を証明することは可能であるかもしれないように、好ましいから異なりますとどんな種類の弦。K ' KKKK

質問に関連する

弱い記述言語によるコルモゴロフの複雑さ

決定できない問題に対する近似アルゴリズムの賢明な概念はありますか?

回答:


10

Gzip。CilibrasiとVitanyiには、クラスタリングを行うためにコルモゴロフの複雑さの近似値としてgzipを使用するという素晴らしい記事があります。圧縮によるクラスタリング


1
条件付き複雑さをどのように定義しますか?
アルテムKaznatcheev

1
AとBを2つのドキュメントとし、ABを連結した2つのドキュメントとします。SIZE(gzip(A)+ gzip(B))とSIZE(gzip(AB))の比率を調べます。
チャドブルーベーカー

1
:一つは、おおよそのコルモゴロフ複雑性へのgzip(および類似の)使用に欠点があることに注意する必要がありbactra.org/notebooks/cep-gzip.htmlが。それは、実際のデータセットのクラスタリングには役に立たないとは言えませんが、実際のデータセットのユーティリティは、それらのデータセットが、例えば、疑似乱数ジェネレータの出力とどのように異なるかについて何かを教えてくれると言います...
ジョシュアグロチョフ

3

私は自分の質問についてもっと考え、可能な解決策にたどり着きました。これには2つの制限があり、長さ文字列でのみ定義されます(これについてはさらに説明します)。代わりに、前の質問に従い、代替の計算モデルを使用して、汎用チューリングマシンについては説明しません。n=2m


基本的に、文字列を解釈できますの関数として。次に、複雑さの尺度は、f_xを表す一意の縮小順序バイナリ決定図(ROBDD、標準順序は固定)のサイズ(エッジの数)。これは条件[1]を満たします。また、ROBDDは時間多項式で計算できるため、効率的な測定方法があります。| x | = 2 M F X{ 0 1 } M{ 0 1 } K 'X F X 2 メートルx|x|=2mfx:{0,1}m{0,1}K(x)fx2m

条件[2]を満たすために、ノードで特別なタイプを許可することにより標準BDDを変更する必要があります。通常、ノードにはインデックスでラベルが付けられ、特別なoracleノードが含まれます。以下のためのここで次のように、BDDに特別なノードを許可します。K x | y | y | = 2 mi{1,...,m}K(x|y)|y|=2m

入力()でBDDを実行している場合、というラベルが付けられた通常のノードは、というラベルが付けられたエッジを単に送信します。代わりに、oracleノードはというラベルの付いたエッジを送信します。したがって、で、確率が高いは、がランダムに均一に選択されます。a|a|=miaify(a)K(x|x)=2K(x|y)K(x)y

[注:条件付き複雑度を効率的に計算できるかどうかは明らかではありません:(]

OBDDを作成するために、最初のビットのクエリを作成し、でのROBDDに、でのROBDDに行くことができるため、便利なことに、準加法性もあります。したがって、ます。x.y0x1yK(x.y)K(x)+K(y)


準加法性の潜在的なコストで、2のべき乗のチャンクを取得し、それらの複雑さを加算するだけで、任意の長さを定義できます。たとえばおよびと我々は定義することができ。x | x | = 2 m | y | = 2 のL M > LのK 'X Y = K 'X + K 'Y K(x)x|x|=2m|y|=2lm>lK(x.y)=K(x)+K(y)

残念ながら、私のアプローチにはいくつかの制限もあります。OBDDをはるかに超えることはできません。最小限の意思決定ツリーまたは単なるBDDを検討する場合、この回答で対処する難易度の問題を把握します。OBDDの変数順序についても、難治性の結果があるようです。そのため、OBDDは、このそれほど標準的ではないコルモゴロフ複雑性アプローチの限界であると思われます。


2

私は専門家ではありませんが、文字列の実用的な複雑さの尺度が必要な場合は、Titchener T-complexityの尺度をご覧ください。

簡単な紹介については、TitchenerのWebサイトを参照してください。彼の論文はpdf形式でダウンロードできます

要約 -特定の再帰的階層文字列生成プロセスに基づいて、有限文字列の文字列の複雑さの新しい尺度が提示されます。最大限界から、複雑さと情報内容全体の関係を推測します。..全文...

実用的な実装に関する論文もいくつか見つけました(たとえば、「高速T分解アルゴリズム」を参照)


2

基本的に、ほとんどすべての機械学習または圧縮方法は、コルモゴロフの複雑さの近似値です。

  • p(x)logp(x)
  • nK(x)n+sCsCx

したがって、任意のコンプレッサーまたは確率分布を使用してパターンを検索するだけで、データの圧縮率が高いほど、K(x)の上限が高くなります。圧縮データ自体のサイズを圧縮データのサイズに追加して、推定値を取得してください。

K(x)

K(x)K

時間制限を使用してモデルクラスを定義することもできます。これにより、Sureshの答えが得られます。基本的に、データソースが多項式時間の複雑さを持っていると仮定し、すべての多項式チューリングマシンを圧縮しようとすると、コルモゴロフの複雑さを正確に推定できたと確信できます。これはまだそれほど実用的ではないかもしれませんが、時間の下限については、完全なベイジアン混合を計算することができます。

技術的な詳細については、このペーパーを参照してください。免責事項:私は著者の一人です。

K(x)K(x)


-1

リソース制限のあるコルモゴロフの複雑さを探しています。このペーパーから始めて、分岐することができます。


2
論文へのリンクのおかげで、この質問ではリソースに制限のある複雑さについて言及していますが、実際には効率的に計算可能な手段に関心があります。これらのモデルの「ランダムな文字列」は複雑度の高いセットに対応していることが論文で示されているようです。これは、これらのモデルで文字列の複雑さを決定することが効率的に計算できないことを示唆していますか?
アルテムKaznatcheev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.