منصوبے کے بارے میں

MarkovJunior ایک احتمالی پروگرامنگ زبان ہے جس میں پروگرام ری رائٹ رولز کے امتزاج ہوتے ہیں اور انفرنس کنسٹرینٹ پروپیگیشن کے ذریعے انجام دیا جاتا ہے۔ اس کا نام ریاضی دان آندرے آندرےیوچ مارکوف کے نام پر رکھا گیا ہے، جنہوں نے مارکوف الگورتھم کی تعریف کی تھی۔ اپنی بنیادی شکل میں، MarkovJunior پروگرام ری رائٹ رولز کی ایک ترتیب شدہ فہرست ہوتا ہے۔ مثال کے طور پر، MazeBacktracker ماڈل دو رولز استعمال کرتا ہے: `RBB=GGR` اور `RGG=WWR`۔ عمل درآمد کے ہر مرحلے پر، انٹرپریٹر گرڈ پر مماثلت رکھنے والا پہلا رول ڈھونڈتا ہے، تمام مماثلتیں تلاش کرتا ہے، اور ایک بے ترتیب مماثلت کو لاگو کرتا ہے۔ انٹرپریٹر اس وقت رک جاتا ہے جب کوئی رول مماثل نہ ہو۔ احتمالی انفرنس مستقبل کی حالتوں پر پابندیاں عائد کرنے کی اجازت دیتی ہے، اور صرف ایسے رنز پیدا کرتی ہے جو پابند مستقبل کی طرف لے جائیں۔ مثال کے طور پر، Sokoban رولز میں انفرنس ایجنٹس کو کریٹس کو مخصوص شکلوں میں ترتیب دینے پر مجبور کرتی ہے۔ اس ریپازٹری میں تہھانوں، فن تعمیر، پزلز اور نقلیات کے لیے بہت سے احتمالی جنریٹرز شامل ہیں۔ کلیدی تصورات میں یہ شامل ہیں: - **ری رائٹ رولز**: سادہ رولز جیسے `(B=W)` بے ترتیب سیاہ خانوں کو سفید میں تبدیل کرتے ہیں۔ زیادہ پیچیدہ رولز جیسے `(WBB=WAW)` کوڈ کی ایک ہی سطر سے بھولبلییا بناتے ہیں۔ وائلڈ کارڈز (`*`) ان پٹ میں کسی بھی رنگ یا غیر تبدیل شدہ آؤٹ پٹ کی اجازت دیتے ہیں۔ - **رول نوڈس**: متعدد رولز کو یکجا کرتے ہیں، مثال کے طور پر لوپ مٹا کر بے ترتیب چال یا Aldous-Broder بھولبلییا جنریشن کے لیے۔ - **تسلسل نوڈس**: رول نوڈس کو ایک کے بعد ایک چلاتے ہیں، مثال کے طور پر دریائی وادیوں کے لیے Voronoi ڈایاگرام کی تعمیر۔ - **مارکوف نوڈس**: ماضی کے نوڈس پر واپس جانے کی اجازت دیتے ہیں، جس سے Bob Nystrom کی تہھانہ جنریشن جیسے الگورتھم ممکن ہوتے ہیں۔ - **انفرنس**: حالتوں کو جوڑنے کے لیے کنسٹرینٹ پروپیگیشن (یک سمتہ یا دو سمتہ) استعمال کرتا ہے، اور سختی کے لیے درجہ حرارت پیرامیٹر رکھتا ہے۔ یہ Sokoban جیسے پزل حل کر سکتا ہے یا Hamiltonian راستے بنا سکتا ہے۔ اضافی مواد میں XML نحو کا جائزہ، اعلیٰ ریزولوشن اسکرین شاٹس، اور غیر سرکاری تکنیکی نوٹس شامل ہیں۔ یہ پروجیکٹ پروسیجرل جنریشن کے لیے پروگرام سنتھیسس اور مثالوں سے ماڈل سنتھیسس جیسے کھلے مسائل پر بات کرتا ہے۔ یہ Markov algorithms، Imagegram، REFAL، Dijkstra maps، اور A* search جیسے کلاسیکی الگورتھم کے اثرات کا حوالہ دیتا ہے۔ انٹرپریٹر کثیر جہتی Boyer-Moore الگورتھم کے ساتھ تیز پیٹرن مماثلت استعمال کرتا ہے اور گریڈینٹ پر مبنی اصلاح کے لیے stochastic relaxation کی حمایت کرتا ہے۔