ตัวแปรที่คำนวณได้อย่างมีประสิทธิภาพของความซับซ้อน Kolmogorov


28

ความซับซ้อนของคำนำหน้า Kolmogorov (เช่นคือขนาดของโปรแกรมการลดขนาดตัวเองขั้นต่ำที่เอาต์พุตx ) มีคุณสมบัติที่ดีหลายประการ:K(x)x

  1. มันสอดคล้องกับสัญชาตญาณของการให้สายกับ patters หรือโครงสร้างความซับซ้อนต่ำกว่าสตริงโดยไม่ต้อง
  2. มันช่วยให้เราสามารถกำหนดเงื่อนไขซับซ้อนหรือดียิ่งขึ้นK ( x | O )สำหรับบาง oracle OK(x|Y)K(x|O)O
  3. มันเป็นย่อยสารเติมแต่ง )K(x,Y)K(x)+K(Y)

อย่างไรก็ตามมันมีข้อเสียที่น่ากลัว: การส่งกลับให้xไม่สามารถตัดสินใจได้K(x)x

ฉันได้สงสัยว่ามีความแตกต่างจาก Kolmogorov ซับซ้อนโดยใช้แบบจำลองที่ จำกัด ของการคำนวณ (โดยใช้ภาษาที่อ่อนแอกว่าหน่วยความจำหรือการใช้ทรัพยากร TM จำกัด ) ที่รักษาคุณลักษณะ (1) และ (2) (คุณลักษณะ ( 3) เป็นโบนัส แต่ไม่ต้อง) ในขณะที่คำนวณได้อย่างมีประสิทธิภาพ?K'(x)

แรงจูงใจสำหรับคำถามนี้มีไว้สำหรับใช้ในการศึกษาแบบจำลองของโมเดลของเล่นที่หลากหลายของวิวัฒนาการ ดังนั้นคำตอบที่ถูกใช้เป็น 'การประมาณคร่าวๆ' สำหรับความซับซ้อนของ Kolmogorov ในงานตัวเลขก่อนเป็นที่ต้องการ อย่างไรก็ตามเป้าหมายไม่ได้เป็นการทดลองอย่างสมบูรณ์ดังนั้นภาษาที่ต้องการคำอธิบายที่ง่าย / สะอาด / แบบจำลองการคำนวณสำหรับจึงเป็นไปได้ที่จะพิสูจน์ทฤษฎีบทที่สมเหตุสมผลเกี่ยวกับวิธีที่K แตกต่างอย่างมากจากKและชนิดของสตริงK'K'K

เกี่ยวข้องกับคำถาม

ความซับซ้อนของ Kolmogorov กับภาษาคำอธิบายที่อ่อนแอ

มีความคิดที่สมเหตุสมผลเกี่ยวกับอัลกอริทึมการประมาณสำหรับปัญหาที่ไม่สามารถตัดสินใจได้หรือไม่?

คำตอบ:


10

gzip Cilibrasi และ Vitanyi มีบทความที่ดีมากที่พวกเขาใช้ gzip เพื่อประมาณความซับซ้อนของ Kolmogorov ในการทำคลัสเตอร์ การทำคลัสเตอร์โดยการบีบอัด


1
พวกเขากำหนดความซับซ้อนตามเงื่อนไขอย่างไร
Artem Kaznatcheev

1
ให้ A และ B เป็นสองเอกสารและ AB เป็นสองส่วนต่อกัน พวกเขาดูอัตราส่วนของ SIZE (gzip (A) + gzip (B)) ถึง SIZE (gzip (AB))
Chad Brewbaker

1
หนึ่งควรจะทราบว่ามีข้อเสียที่จะใช้ gzip (และคล้ายกัน) ที่ใกล้เคียงกับความซับซ้อน Kolmogorov: bactra.org/notebooks/cep-gzip.html ไม่ได้บอกว่ามันไม่มีประโยชน์สำหรับการทำคลัสเตอร์ชุดข้อมูลในชีวิตจริง แต่มันบอกว่าอรรถประโยชน์สำหรับชุดข้อมูลในชีวิตจริงบอกเราบางอย่างเกี่ยวกับวิธีที่ชุดข้อมูลเหล่านั้นแตกต่างจากพูดเอาท์พุทของเครื่องกำเนิดตัวเลขเทียมเทียม ...
Joshua Grochow

3

ฉันคิดถึงคำถามของฉันมากขึ้นและไปถึงทางออกที่เป็นไปได้ มันมีอยู่สองข้อ จำกัด มันถูกกำหนดไว้เฉพาะในสายของความยาว (แม้ว่าผมจะหารือนี้มากกว่า) และก็ไม่ได้พูดคุยเกี่ยวกับเครื่องจักรทัวริงสากลแทนต่อไปนี้คำถามก่อนหน้านี้และการใช้รูปแบบทางเลือกของการคำนวณn=2m


โดยพื้นฐานแล้วเราสามารถตีความสตริงด้วย| x | = 2 เมตรเป็นฟังก์ชั่นx : { 0 , 1 } เมตร{ 0 , 1 } จากนั้นซับซ้อนวัดของเราK ' ( x )เป็นขนาด (จำนวนขอบ) ของที่ไม่ซ้ำกันลดสั่งซื้อแผนภาพการตัดสินใจแบบไบนารี (ยังเสนออีก; กับการสั่งซื้อมาตรฐานคงที่) เป็นตัวแทน x เงื่อนไขนี้เป็นไปตาม [1] นอกจากนี้เนื่องจาก ROBDD สามารถคำนวณได้ในเวลาพหุนามในระยะ2 เมตรx|x|=2mfx:{0,1}m{0,1}K(x)fx2mเรามีมาตรการที่มีประสิทธิภาพ

เพื่อให้เป็นไปตามเงื่อนไข [2] เราจะต้องแก้ไข BDD มาตรฐานโดยอนุญาตให้ใช้ชนิดพิเศษบนโหนด โดยปกติจะมีป้ายกำกับโหนดโดยดัชนีเราจะรวมโหนดออราเคิลพิเศษ สำหรับK ( x | y )โดยที่| y | = 2 mเราจะอนุญาตโหนดพิเศษใน BDD ดังนี้:i{1,...,m}K(x|y)|y|=2m

ถ้าเราจะทำงาน BDD กับการป้อนข้อมูล( | | = ม. ) แล้วโหนดปกติป้ายฉันเพียงแค่ส่งเราลงขอบที่มีข้อความฉัน โหนด oracle จะส่งขอบที่ระบุว่าf y ( a ) ให้เราแทน ดังนั้นK ( x | x ) = 2และมีความเป็นไปได้สูงK ( x | y ) K ( x )สำหรับyเลือกสุ่มอย่างสม่ำเสมอa|a|=miaify(a)K(x|x)=2K(x|y)K(x)y

[หมายเหตุ: ยังไม่ชัดเจนหากความซับซ้อนตามเงื่อนไขยังสามารถคำนวณได้อย่างมีประสิทธิภาพ :(]

conviniently เรายังมีย่อย additivity ตั้งแต่การสร้าง OBDD สำหรับxเราสามารถมีแบบสอบถามสำหรับบิตแรกและ0การเดินทางไปยังเสนออีกสำหรับxและ1ไปยังเสนออีกสำหรับปี ดังนั้นเราจึงมีK ' ( x . Y ) K ' ( x ) + K ' ( Y )x.y0x1yK(x.y)K(x)+K(y)


ที่ค่าใช้จ่ายย่อยของความไวต่อแสงเราสามารถนิยามสำหรับความยาวใด ๆxเพียงแค่เอาชิ้นกำลังสองอันมารวมกันและเพิ่มความซับซ้อนเข้าด้วยกัน ตัวอย่างเช่นสำหรับ| x | = 2 mและ| y | = 2 ลิตรกับ> ลิตรเราสามารถกำหนดK ' ( x . Y ) = K ' ( x ) + K ' ( Y )K(x)x|x|=2m|y|=2lm>lK(x.y)=K(x)+K(y)

นอกจากนี้ยังมีข้อ จำกัด บางอย่างที่น่าเสียดายสำหรับแนวทางของฉัน เราไม่สามารถไปไกลเกินกว่า OBDDs ได้หากเราพิจารณาโครงสร้างการตัดสินใจที่น้อยที่สุดหรือเพียงแค่ BDDs จากนั้นเราจะขัดขวางปัญหาการใช้งานไม่ได้ซึ่งระบุไว้ในคำตอบนี้ แม้แต่การสั่งซื้อตัวแปรของ OBDD ก็ดูเหมือนว่าจะเป็นผลลัพธ์ที่ทำให้ยากลำบากได้ ดังนั้นดูเหมือนว่า OBDDs จะเป็นข้อ จำกัด ของวิธีการที่ซับซ้อนที่ไม่เหมือนมาตรฐาน Kolmogorov นี้


2

ฉันไม่ใช่ผู้เชี่ยวชาญ แต่ถ้าคุณต้องการการวัดความซับซ้อนในทางปฏิบัติสำหรับสตริงคุณสามารถดูการวัดความซับซ้อนของ Titchener T

ดูเว็บไซต์ของ Titchenerสำหรับการแนะนำอย่างรวดเร็ว เขาเอกสารสามารถดาวน์โหลดได้ในรูปแบบ pdf

บทคัดย่อ - วัดใหม่ของความซับซ้อนสตริงสำหรับสตริง จำกัด จะนำเสนอขึ้นอยู่กับระดับ recursive สตริงลำดับชั้นขั้นตอนการผลิต จากขอบเขตสูงสุดเราอนุมานความสัมพันธ์ระหว่างความซับซ้อนและเนื้อหาข้อมูลทั้งหมด .. บทความเต็ม ...

ฉันพบเอกสารบางส่วนเกี่ยวกับการใช้งานจริงเช่นกัน (ดูตัวอย่าง " อัลกอริธึมการสลายตัวอย่างรวดเร็ว ")


2

โดยพื้นฐานแล้วการเรียนรู้ด้วยเครื่องจักรหรือวิธีการบีบอัดเกือบทุกวิธีเป็นการประมาณความซับซ้อนของ Kolmogorov:

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

ดังนั้นคุณสามารถมองหารูปแบบด้วยการกระจายคอมเพรสเซอร์หรือความน่าจะเป็นใด ๆ และยิ่งพวกมันบีบอัดข้อมูลของคุณได้ดีเท่าไหร่คุณก็ยิ่งมีขอบเขตบนที่ดีขึ้นสำหรับ K (x) เพียงตรวจสอบให้แน่ใจว่าได้เพิ่มขนาดของตัวคอมเพรสเซอร์เองตามขนาดของข้อมูลที่บีบอัดเพื่อรับค่าประมาณ

K(x)

K(x)K

คุณยังสามารถใช้เวลาในการกำหนดคลาสโมเดลของคุณซึ่งนำคุณไปสู่คำตอบของ Suresh โดยทั่วไปถ้าคุณคิดว่าแหล่งข้อมูลของคุณมีความซับซ้อนของเวลาพหุนามและคุณลองใช้เครื่องทัวริงพหุนามทั้งหมดเพื่อทำการบีบอัดคุณมั่นใจได้เลยว่าคุณประมาณความซับซ้อนของ Kolmogorov ได้อย่างแม่นยำ สิ่งนี้อาจยังไม่สามารถใช้งานได้จริง แต่สำหรับขอบเขตเวลาที่น้อยลงคุณอาจคำนวณส่วนผสมของเบย์แบบเต็มซึ่งเป็นการประมาณที่ดีสำหรับมัน

สำหรับรายละเอียดทางเทคนิคดูบทความนี้ คำเตือน: ฉันเป็นหนึ่งในผู้เขียน

K(x)K(x)


-1

คุณกำลังมองหาทรัพยากรที่ จำกัด ขอบเขตความซับซ้อนของ Kolmogorov คุณสามารถเริ่มต้นด้วยกระดาษนี้และแยกออก


2
ขอบคุณสำหรับการเชื่อมโยงไปยังกระดาษฉันพูดถึงความซับซ้อนขอบเขตทรัพยากรในคำถาม แต่มีความสนใจในมาตรการที่คำนวณได้อย่างมีประสิทธิภาพจริงๆ ดูเหมือนว่ากระดาษแสดงให้เห็นว่า 'สตริงสุ่ม' สำหรับโมเดลเหล่านี้สอดคล้องกับชุดของความซับซ้อนสูง สิ่งนี้ชี้ให้เห็นว่าการตัดสินใจความซับซ้อนของสตริงในแบบจำลองเหล่านี้ไม่สามารถคำนวณได้อย่างมีประสิทธิภาพใช่หรือไม่?
Artem Kaznatcheev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.