د ډیټا کمپریشن په اړه پاراډوکس

د ډیټا کمپریشن په اړه پاراډوکس د ډیټا کمپریشن ستونزه، په ساده بڼه کې، کولی شي د شمیرو او د دوی یادښتونو سره تړاو ولري. شمیرې د شمیرو په واسطه ښودل کیدی شي ("یولس" د 11 شمیرې لپاره)، ریاضياتي څرګندونې ("په شلمه کې دوه" د 1048576 لپاره)، د تار څرګندونه ("پنځه نهه" د 99999 لپاره، مناسب نومونه ("د حیوان شمیر" د 666 لپاره، "د تورینګ د مړینې کال" د 1954 لپاره) یا د هغې خپلسري ترکیبونه. هر ډول نوم مناسب دی چې له مخې یې خبرې کوونکی کولی شي په روښانه توګه وټاکي چې موږ د کومې شمیرې په اړه خبرې کوو. په ښکاره ډول، خپل مخاطب ته ووایاست "د اتو عامل" د مساوي یادښت څخه ډیر اغیزمن "څلوېښت زره درې سوه شل". دلته یوه منطقي پوښتنه راپورته کیږي: د ورکړل شوې شمیرې لپاره ترټولو لنډه نښه څه ده؟

فیلسوف برټرنډ رسل په ۱۹۰۸ کال کې خپور کړ "د بیری پاراډکس"، کوم چې د مقابل لوري څخه د شمیرې نوټیشن مسلې ته لمس کوي: تر ټولو کوچنی عدد کوم دی چې اتیا تورو ته اړتیا نلري؟
دا ډول شمیره باید شتون ولري: د اتیا روسی لیکونو او ځایونو څخه تاسو کولی شئ یوازې 3480 نومونه جوړ کړئ، پدې معنی چې د اتیا تورو په کارولو سره تاسو کولی شئ د 3480 شمیرو څخه ډیر نه وټاکئ. دا پدې مانا ده چې دا ناشونې ده چې په دې توګه د 3480 څخه زیات شمیر مشخص کړئ.

دا پدې مانا ده چې دا شمیره به د نوم سره مطابقت ولري "تر ټولو کوچنی شمیر چې اتیا توري کافي ندي"، چې یوازې 78 توري لري! له یوې خوا، دا شمیره باید شتون ولري؛ له بلې خوا، که دا شمیره شتون ولري، نو بیا د هغې نوم د هغې سره مطابقت نلري. پاراډکس!

د دې پاراډکس د ردولو ترټولو اسانه لار د لفظي یادښتونو غیر رسميت ته راجع کول دي. لکه، که په یادښت کې یوازې د بیانونو ځانګړي تعریف شوي سیټ ته اجازه ورکړل شوې وي، بیا "تر ټولو کوچنی شمیر چې اتیا توري کافي ندي" د اعتبار وړ یادونه به نه وي، پداسې حال کې چې په عملي توګه ګټور یادښتونه لکه "د اتو عامل" د منلو وړ پاتې شي.

ایا د شمیرو په اړه د عملونو ترتیب (الګوریتم) تشریح کولو لپاره رسمي لارې شتون لري؟ شتون لري، او په پراخه کچه - دوی ته د پروګرام کولو ژبې ویل کیږي. د لفظي یادښتونو پرځای، موږ به هغه پروګرامونه وکاروو (د مثال په توګه، په Python کې) چې اړین شمیرې ښکاره کوي. د مثال په توګه، د پنځو نوو لپاره پروګرام مناسب دی print("9"*5). موږ به د ورکړل شوي شمیرې لپاره ترټولو لنډ برنامه کې علاقه مندي ته دوام ورکړو. د دې ډول پروګرام اوږدوالی ویل کیږي د کولموګوروف پیچلتیا شمېر دا نظري حد دی چې یو ورکړل شوی شمیره یې فشارولی شي.

د بیري د پاراډوکس پر ځای، موږ کولی شو ورته ورته پام وکړو: ترټولو کوچنی شمیره څه ده چې د کیلوبایټ برنامه د تولید لپاره کافي ندي؟

موږ به د پخوا په څیر په ورته ډول دلیل وکړو: دلته 2561024 کیلوبایټ متنونه شتون لري، پدې معنی چې د 2561024 څخه زیات شمیر د کیلوبایټ پروګرامونو لخوا تولید کیدی نشي. دا پدې مانا ده چې یو مشخص شمیر چې له 2561024 څخه ډیر نه وي پدې توګه نشي اخیستل کیدی.

مګر راځئ چې په Python کې یو برنامه ولیکئ چې ټول ممکنه کیلوبایټ متنونه رامینځته کوي ، د پلي کولو لپاره یې چلوي ، او که دوی یو شمیر تولید کړي ، نو دا شمیره د لاسرسي وړ قاموس کې اضافه کوي. د ټولو 2561024 امکاناتو چک کولو وروسته، مهمه نده چې څومره وخت ونیسي، برنامه د لغت څخه ورک شوي ترټولو کوچنۍ شمیره ګوري او دا شمیره چاپوي. داسې ښکاري چې دا ډول برنامه به په یو کیلوبایټ کوډ کې فټ شي - او هغه شمیر به تولید کړي چې د کیلوبایټ برنامې لخوا تولید نشي کیدی!

اوس څه نیول دي؟ دا نور د نوټیشن غیر رسمي کیدو ته منسوب کیدی نشي!

که تاسو د دې حقیقت په اړه مغشوش یاست چې زموږ برنامه به د کار کولو لپاره د ستورپوهنې مقدار حافظې ته اړتیا ولري - د 2561024 عناصرو قاموس (یا بټ سرې) - نو تاسو پرته له دې ورته کار کولی شئ: د هرې 2561024 شمیرو لپاره ، په بدل کې. ، د ټولو 2561024 احتمالي برنامو له لارې لاړشئ ، تر هغه چې هیڅ مناسب نه وي. دا مهمه نده چې دا ډول لټون به ډیر اوږد دوام وکړي: د شمیر او برنامه څخه د (2561024) 2 جوړه څخه لږ چک کولو وروسته ، دا به پای ته ورسیږي او دا خورا غوره شمیره ومومي.

یا به ختم نه شي؟ په حقیقت کې، د ټولو برنامو په منځ کې چې هڅه به وشي، هلته به وي while True: pass (او د دې فعال انلاګونه) - او مسله به د داسې برنامې ازموینې پرته نوره لاړ نشي!

د بیري د پاراډکس برعکس، چیرې چې کیچ د نوټیشن په غیر رسمي ډول کې و، په دویمه قضیه کې موږ یو ښه پټ اصلاحات لرو. "د ستونزو مخنیوی". حقیقت دا دی چې دا ناشونې ده چې په یو محدود وخت کې د برنامه څخه خپل محصول وټاکئ. په ځانګړې توګه، د Kolmogorov پیچلتیا بې حسابه: هیڅ الګوریتم شتون نلري چې اجازه ورکړي، د ورکړل شوي شمیرې لپاره، د لنډ پروګرام اوږدوالی ومومي کوم چې دا شمیره چاپ کوي؛ دا پدې مانا ده چې د بیري ستونزې لپاره هیڅ حل شتون نلري - د ورکړل شوي شمیرو لپاره د لنډ لفظي نوم اوږدوالي موندلو لپاره.

سرچینه: www.habr.com

Add a comment