سؤال

أحاول تحديد ما إذا كان تعقيد Kolmogorov محسبا لغزيا محددا. أنا متأكد من أن هذه اللغة المعينة ليست تورينج كاملة. يتم تعريف اللغة على النحو التالي:

$ a؛ b \ text {- تنفيذ التعليمات A و B واحد تلو الآخر.} $
$! x_i! \ text {- مجموعات المتغير} x_i \ text {to the value} 2. $
$ \ {x_i \} \ text {- يضاعف قيمة المتغير} x_i $
$ [x_i] \ text {- halves قيمة المتغير} x_i \ text {and countrs up.} $
$ "W" \ Text {- يطبع السلسلة} W \ in \ {A، B، ...، Z، A، B ...، Z \} $
$ \ lambda (x_i، a) \ text {- تنفيذ التعليمات} a \ text {trand} x_i \ text {times، بغض النظر عن التغييرات لاحقا إلى} x_i $

على وجه التحديد، أحتاج إلى معرفة ما إذا كان تعقيد Kolmogorov بالنسبة لهذه اللغة أمر محسبا بشكل عام. قد يتم كتابة البرنامج الذي يحسب هذا التعقيد بلغة تورينج كاملة.

أفهم أنه بالنسبة لأي لغة تورينج كاملة، فإن تعقيد Kolmogorov غير محسوس. هذه اللغة هنا تفتقر إلى القدرة على إنشاء حلقة محددة، وعلى الرغم من أنها أقل من تورينج كاملة. أنا لا أشعر بأي حدس ناشئ عن هذه الملاحظة. أود أن أفترض أن هذه اللغة أضعف، قد يكون تعقيد Kolmogorov محسبا الآن. ومع ذلك، لا يمكنني العثور على دليل على هذا. إعطاء خوارزمية تؤدي هذه المهمة تبدو معقدة للغاية. يبدو أن استخدام هذه اللغة حالة خاصة من الحكم الأكثر عمومية لتعقيد Kolmogorov، وعلى هذا النحو، لا أستطيع الاستمتاع من سمات الحالة العامة إذا كانت القضية العامة غير قابلة للكتاسة. هذا قد لا يزال.

أنا لا أجد أي أرضية للوقوف في هذه المشكلة وترحب بأي نصائح ومؤشرات نحو حل. هل يمكننا استنتاج أي شيء آخر من هذه اللغة أكثر مما ذكرته حتى الآن؟ هل هي قوة أقل بالنسبة للغات الحاملة التي تساعدنا في هذا الموقف؟

هل كانت مفيدة؟

المحلول

الشيء المهم الذي يجب ملاحظته هو أن برامجك تتوقف دائما. هذا يجعل حساب تعقيد Kolmogorov مهمة سهلة، منذ إعطاء سلسلة $ W $ ، يمكنك المرور على جميع البرامج الممكنة من الطول $ \ le | W | +2 $ للعثور على أقصر برنامج تم إخراجه $ W $ . Abs Bound $ | w | +2 $ يتبع من حقيقة أنه لأي سلسلة $ W $ ، "W" هو برنامج تم إخراجه $ W $ .

في الواقع، ربما يمكنك حساب تعقيد سلسلة في وقت متعدد الحدود، لأن الضغط ممكن فقط في حالة التكرار (لا يمكنك الاستفادة من هيكل عام أكثر). يجب أن يعمل شيء ما على طول الأسطر التالية $ kc (w_1 ... w_n)=min \ limits_i \ big (kc \ left (w_ {i + 1} ... w_n | w_i \ right) + kc (w_1 ... w_i) \ big) $ ، حيث $ kc \ left (w | w '\ right) $ هو فقط $ kc (w) $ إذا كانت $ W '$ ليست بادئة $ W $ ، و $ kc (w '') + o (\ log j) $ خلاف ذلك حيث $ w= w '^ jw' '$ و $ J $ هو الرقم الأقصى مرضى هذا. النقطة المهمة هي أنك تحتاج فقط إلى حساب تعقيد السلاحيات من $ W $ ، منها $ O (| W | ^ 2) $ .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top