تھری جہتی بلبلا ترتیب الگورتھم

فن یا سائنس؟

میں نے یہ حیرت انگیز لیکن شاید مکمل طور پر بیکار الگورتھم کو 1999 کے موسم خزاں میں دریافت کیا۔ میں نے یہاں تک کہ اس کے بارے میں ڈاکٹر ڈوب جرنل کو ایک نوٹ بھیجا تھا ، اور جب انہوں نے کچھ ماہ بعد لکھا تھا اور مجھے تجویز پیش کی تھی کہ میں ان کے لئے ایک مضمون لکھوں گا۔ میں اس وقت بہت مصروف تھا ، اور دنیا نے بیکار معلومات میں اضافے کا موقع گنوا دیا۔ میں اب یہ پیش کر رہا ہوں؛ دنیا کو میرا تحفہ اور شاید میری واحد میراث۔ کون جانتا ہے کہ شاید کچھ ریاضی دان جو کچھ خاک آلود دفتر میں کام کر رہے ہوں ، اسے کچھ مبہم نظریہ کو حل کرنے کا کلیدی پتھر مل سکتا ہے۔

تصور…

خیال بہت آسان ہے۔ رنگین پکسلز سے بنی اسکرین کے ساتھ شروع کریں ، تصادفی طور پر تقسیم کی گئیں۔ ممکنہ رنگوں کی تعداد سے کوئی فرق نہیں پڑتا ہے ، لیکن اگر کم رنگ استعمال کیے جائیں تو یہ آخر میں مزید دلچسپ امیج بناتا ہے۔ پھر ہم مندرجہ ذیل الگورتھم کے مطابق پکسلز کو چھانٹنا شروع کرتے ہیں۔

لوپ

W طول و عرض کی ایک سکرین کے طور پر، ایچ
ایک پکسل بے ترتیب کے نقاط اوپر X، Y چنیں جہاں X = {0 ذریعے (W – 1)}، Y = {0 (H – 2) کے ذریعے}
ذیل میں پکسل میں ریڈ کی تو رقم ( x ، y + 1) موجودہ پکسل میں سرخ سے زیادہ ہے ، تبادلہ پکسلز
بے ترتیب نقاط x ، y پر جہاں ایک = پکسل منتخب کریں ، جہاں x = {0 thru (W – 2)}، y = th 0 thru (H – 2)}
اگر پکسل میں سبز کی مقدار نچلے دائیں (x + 1 ، y + 1 پر) میں موجودہ پکسل میں سبز رنگ سے کم ہے تو ، تبادلہ کریں پکسلز
ایک اور پکسل کو بے ترتیب رابطہ x ، y پر منتخب کریں جہاں x = {1 کے ذریعے (W – 1) } ، y = th 0 thru (H – 2)}
اگر پکسل میں نیلے رنگ کی مقدار نچلے بائیں طرف (x-1 ، y + 1) موجودہ پکسل میں نیلے رنگ سے کم ہے

تو ، اگر (! کیا گیا) لوپ لوپ

ہم اس طرح لاکھوں بار لوپ کرتے رہتے ہیں ، یہاں تک کہ ایک توازن قائم ہوجائے جس میں رنگوں کو تالابوں میں ترتیب دیا جاتا ہے۔ تالابوں کے اندر خالص رنگ کے پکسلز متحرک ہوجاتے ہیں ، اور اس کے بعد جاری رہنے والی واحد کارروائی رنگ کے تالابوں کے انٹرفیس کے ساتھ کچھ باہمی مداخلت ہوتی ہے۔

اس رجحان کی جانچ کے عمومی طریقہ کے طور پر ، دیئے ہوئے پکسل کا تصور کریں جس کی طے شدہ مقدار میں سرخ ، سبز اور نیلے ہیں۔ اس کے سرخ مواد پر انحصار کرتے ہوئے ، اس کو اسکرین کو اوپر یا نیچے حرکت دینے والی ایک طاقت کا تجربہ ہوتا ہے ، اور دوسرے دو رنگوں میں سے ہر ایک کی مقدار پر منحصر ہے ، اسے اس قوت کا تجربہ ہوتا ہے جو اسے اختلافی طور پر بائیں اور دائیں منتقل کرتی ہے۔ اسکرین پر موجود دیگر تمام پکسلز کے سلسلے میں ، ان تینوں قوتوں کا ویکٹر کا خلاصہ حتمی آرام کی حیثیت رکھتا ہے۔ اس چھانٹ رہا الگورتھم کو اور بھی زیادہ طول و عرض میں لے جایا جاسکتا ہے ، اور اسے صرف پکسلز کے رنگوں کی نہیں بلکہ کسی بھی خصوصیات میں شامل کیا جاسکتا ہے۔ تاہم ، کسی بھی منظر نامے میں جس کا میں تصور بھی کرسکتا ہوں ، روایتی چھنٹائی کی تکنیک کہیں آسان اور تیز تر ہے۔ اگر آپ کو سائڈیلیڈک امیجز بنانے سے ہٹ کر اس الگورتھم کے لئے کچھ فائدہ ملتا ہے تو ، براہ کرم مجھے بتائیں اور کم از کم مجھے اس خیال کا سہرا دیں۔

پی سی کے لئے 3DSort.exe – ون زپڈ (26.6 Kb) میرا تازہ ترین ونڈوز کا جی ڈی آئی ورژن (16 فروری 2004) ہے ، جو سطح کے مختلف سائز (مربع ، گول ، ٹورس ، وغیرہ) کو ترتیب دیتا ہے <ایک منٹ کے لئے 2 منٹ میں 512 پکسل مربع ، اور 256 پکسلز مربع رقبے کیلئے محض سیکنڈ۔ اینڈسبلر میں آپٹمائزڈ ، یہ شاید اس سے تیز تر نہیں ہوسکتا ہے – کم از کم P4 – 2 گیگاہرٹج پلیٹ فارم پر ، بہرحال۔ یہاں اس کی طرف سے تیار کیا کچھ تصاویر ہیں: Circle.gif ، Triangle.gif ، Torus.gif .

اگست 2016 کو اپ ڈیٹ کریں

ذیل میں ایک ایسی تصویر دی گئی ہے جس میں 1024 الگ الگ تصاویر تیار کرکے اور ان سب کو ایک ساتھ اوسط بنا کر تیار کی گئی ہیں۔ مجموعی طور پر 123 رنگوں کا استعمال کیا گیا تھا ، جس میں ہر r ، g ، & b کی قیمت کو 64 بنا کر اور سیاہ اور سفید رنگوں کو ختم کرکے پیدا کیا گیا تھا۔ 1024 x 632 کی ایک تصویر کا سائز منتخب کیا گیا کیونکہ اچھی پیشکش کے لئے چوڑائی سے اونچائی کا تناسب گولڈن تناسب کے برابر ہے۔

اس بڑے پیمانے پر چھنٹائی کرنے والے کام کے مرکز میں یہ کوڈ ہے۔ ہر امیج کو پیش کرنے میں صرف دو منٹ لگے ، اور حتمی نتیجے میں آنے والی شبیہہ کو انٹیل i5 پروسیسر اور ڈھیر ساری رام کے ساتھ پروسیسنگ کا کچھ وقت لگنا پڑتا ہے۔ تجاوز کا نقطہ افلاطون کے معنی میں “کامل ترتیب” ڈھونڈنا تھا ، چونکہ تصویری نسل کا انحصار مکمل طور پر بے ترتیب عمل پر ہوتا ہے۔ یہ دلچسپ بات ہے کہ تصادفی طور پر تیار کردہ ان تمام تصاویر کو اکٹھا کرنے کے بعد بھی ، نتیجے میں آنے والی شبیہہ کی خصوصیات ابھی بھی تیز خصوصیات کے حامل ہیں ، گویا پکسلز اپنے آخری آرام گاہ تک اپنا راستہ تلاش کرنے کے لئے “پہلے سے طے شدہ” ہیں۔ ٹھیک ہے ، شاید میں نے ابھی میرے ہاتھوں پر بہت زیادہ وقت لیا تھا 🙂

جنوری 2018 کو اپ ڈیٹ کریں

نیچے دی گئی اگلی تصویر اسی طرح تیار کی گئی تھی ، لیکن 6 مختلف رنگوں میں سے جس میں مختلف پیلیٹ تیار ہوا ہے۔ مختلف رنگوں کا استعمال بالکل مختلف نمونہ تشکیل دیتا ہے۔ اس کے پیش کرنے کے لئے انٹیل i7-7700 سی پی یو کے ساتھ 17.5 گھنٹے پروسیسنگ کی ضرورت ہے۔

نیچے دی گئی اگلی تصویر اسی طرح تیار کی گئی تھی ، لیکن 12 رنگوں کے ساتھ مختلف پیلیٹ سے اخذ کیا گیا تھا۔

ذیل میں اگلی 3 تصاویر اسی طرح تیار کی گئیں۔ دائیں طرف استعمال ہونے والی پہلی شبیہہ میں 24 رنگ استعمال ہوئے ، اگلی میں صرف 6 رنگ استعمال ہوئے ، اور آخری استعمال 60 رنگوں میں ہوا۔ درمیانی تصویر نے دوسروں سے مختلف پیلیٹ استعمال کی۔

چار جہتی رنگ ترتیب

جیسا کہ اوپر بتایا گیا ہے ، ترتیب کسی بھی طول و عرض میں کی جاسکتی ہے۔ کسی طرح کیوب پر ایک طرف 256 پکسلز بنائے گئے تھے ، جو تصادفی تقسیم رنگ کے پکسلز کے ساتھ آباد تھے۔ کل 123 رنگ تھے۔ پکسلز کو مندرجہ ذیل الورگیتھم کے مطابق ترتیب دیا گیا تھا …

LOOP

طول و عرض کی ایک کیوب کے لئے W (چوڑائی)، H (اونچائی)، D (گہرائی)

بے ترتیب نقاط x، y، z پر ایک پکسل چنیں جہاں x = {0 thru ( W-1)}، y = {0 thru (H-2)، z = {0 thru (D-1)}
اگر نیچے پکسل میں سرخ کی مقدار (x ، y + 1 ، z میں) سرخ سے زیادہ ہے موجودہ پکسل ، تبادلہ پکسلز

ایک اور پکسل کو بے ترتیب نقاط ، x ، y ، z پر منتخب کریں جہاں x = {0 thru (W-2)}، y = {0 thru (H-2)}، z = {0 thru (D-1) )}
اگر پکسل میں سبز رنگ کی مقدار نچلے دائیں (x + 1 ، y + 1 ، z پر) موجودہ پکسل میں سبز سے کم ہے تو ، تبادلہ پکسلز

ایک اور پکسل کو بے ترتیب نقاط ، x ، y ، z پر منتخب کریں جہاں x = {1 thru (W-1)}، y = th 0 thru (H-2) z، z = {0 thru (D-1)}
اگر مقدار پکسل میں نیلے بائیں طرف (x-1 ، y + 1 ، z پر) موجودہ پکسل میں نیلے رنگ سے کم ہے ، تبادلہ پکسلز

آخر میں ، بے ترتیب نقاط x ، y ، z پر ایک پکسل منتخب کریں ، جہاں x = {0 کے ذریعے ( W-1)}، y = {0 thru (H-1)}، z = {0 thru (D-2)}
اگر پکسل کی روشنی کی قیمت (x ، y ، z + 1 میں) زیادہ ہے موجودہ پکسل ، تبادلہ پکسلز کی برائٹ قیمت سے زیادہ۔
(برائٹ یا ‘Y’ کا حساب کتاب (0.299 * سرخ) + (0.587 * گرین) + (0.114 * بلیو)) کے طور پر

کیا جاتا ہے اگر (! کیا گیا) لوٹو لوپ

اربوں بار اس طرح لوپ کرتے رہیں ، یہاں تک کہ ایک توازن قائم ہوجائے جس میں رنگ بلب میں ترتیب دیئے جائیں۔ بلاب کے اندر خالص رنگ کے پکسلز متحرک ہوجاتے ہیں ، اور صرف ایک ہی عمل جو اس کے بعد جاری رہتا ہے کچھ رنگین بلابوں کے انٹرفیس کے ساتھ کچھ انٹرپل ہوتا ہے۔

اب ایک کیوب میں 256 پکسلز کا سفر ، ایک طرف ، جس میں 123 رنگوں کے ساتھ تصویری طور پر تفویض کیا گیا ہے ، اس الگورتھم کے ذریعے ترتیب دیا گیا ہے