প্রকল্প সম্পর্কে

মার্কোভজুনিয়র একটি সম্ভাবনাময় প্রোগ্রামিং ভাষা যেখানে প্রোগ্রামগুলো রিরাইট রুলের সংমিশ্রণ এবং ইনফারেন্স কনস্ট্রেইন্ট প্রপাগেশনের মাধ্যমে সম্পাদিত হয়। এটি গণিতবিদ আন্দ্রে আন্দ্রেয়েভিচ মার্কোভের নামে নামকরণ করা হয়েছে, যিনি মার্কোভ অ্যালগরিদম সংজ্ঞায়িত করেছিলেন। এর মৌলিক আকারে, একটি মার্কোভজুনিয়র প্রোগ্রাম হলো রিরাইট রুলের একটি ক্রমবিন্যাসিত তালিকা। উদাহরণস্বরূপ, MazeBacktracker মডেল দুটি রুল ব্যবহার করে: `RBB=GGR` এবং `RGG=WWR`। প্রতিটি এক্সিকিউশন ধাপে, ইন্টারপ্রেটার গ্রিডে ম্যাচ খুঁজে পাওয়া প্রথম রুলটি খুঁজে বের করে, সব ম্যাচ খুঁজে পায় এবং একটি এলোমেলো ম্যাচ প্রয়োগ করে। ইন্টারপ্রেটার থেমে যায় যখন কোনো রুল ম্যাচ না করে। সম্ভাবনাময় ইনফারেন্স ভবিষ্যতের অবস্থার উপর কনস্ট্রেইন্ট আরোপ করতে দেয়, যা শুধুমাত্র সেই রানগুলো তৈরি করে যা সীমাবদ্ধ ভবিষ্যতের দিকে নিয়ে যায়। উদাহরণস্বরূপ, সোকোবান রুলে ইনফারেন্স এজেন্টদের নির্দিষ্ট আকারে ক্রেট সাজাতে সাহায্য করে। রিপোজিটরিতে ডানজিয়ন, স্থাপত্য, পাজল এবং সিমুলেশনের জন্য অনেক সম্ভাবনাময় জেনারেটর অন্তর্ভুক্ত রয়েছে। মূল ধারণাগুলির মধ্যে রয়েছে: - **রিরাইট রুল**: সহজ রুল যেমন `(B=W)` এলোমেলো কালো স্কোয়ারকে সাদায় রূপান্তর করে। আরও জটিল রুল যেমন `(WBB=WAW)` এক লাইন কোডে মেজ তৈরি করে। ওয়াইল্ডকার্ড (`*`) ইনপুট বা অপরিবর্তিত আউটপুটে যেকোনো রঙের অনুমতি দেয়। - **রুলনোড**: একাধিক রুল একত্রিত করে, যেমন লুপ-ইরেজড র্যান্ডম ওয়াক বা অ্যালডাস-ব্রোডার মেজ জেনারেশনের জন্য। - **সিকোয়েন্স নোড**: রুলনোডগুলো একের পর এক চালায়, যেমন নদী উপত্যকার জন্য ভোরোনয় ডায়াগ্রাম তৈরি করা। - **মার্কোভ নোড**: অতীতের নোডে ফিরে যাওয়ার অনুমতি দেয়, যা বব নিস্ট্রমের ডানজিয়ন জেনারেশনের মতো অ্যালগরিদম সক্ষম করে। - **ইনফারেন্স**: কনস্ট্রেইন্ট প্রপাগেশন (একমুখী বা দ্বিমুখী) ব্যবহার করে অবস্থা সংযুক্ত করে, কঠোরতার জন্য তাপমাত্রা প্যারামিটার সহ। এটি সোকোবানের মতো পাজল সমাধান করতে বা হ্যামিলটোনিয়ান পাথ তৈরি করতে পারে। অতিরিক্ত উপকরণের মধ্যে রয়েছে XML সিনট্যাক্স ওভারভিউ, উচ্চ-রেজোলিউশন স্ক্রিনশট এবং অনানুষ্ঠানিক প্রযুক্তিগত নোট। প্রকল্পটি প্রসিডিউরাল জেনারেশনের জন্য প্রোগ্রাম সংশ্লেষণ এবং উদাহরণ থেকে মডেল সংশ্লেষণের মতো খোলা সমস্যা নিয়ে আলোচনা করে। এটি মার্কোভ অ্যালগরিদম, ইমেজগ্রাম, রেফাল, ডিজক্সট্রা ম্যাপ এবং A* সার্চের মতো ক্লাসিক অ্যালগরিদমের প্রভাব উল্লেখ করে। ইন্টারপ্রেটার একটি মাল্টিডাইমেনশনাল বয়ের-মুর অ্যালগরিদম সহ দ্রুত প্যাটার্ন ম্যাচিং ব্যবহার করে এবং গ্রেডিয়েন্ট-ভিত্তিক অপ্টিমাইজেশনের জন্য স্টোকাস্টিক রিলাক্সেশন সমর্থন করে।