خوارزمیہ

خوارزمیہ یا الگورتھم (algorithm) مسلمان ریاضی دان محمد بن موسی الخوارزمی کی خدمات کے اعتراف میں وضع کی گئی اصطلاح ہے۔ ریاضی اور کمپیوٹر سائنس میں ایک الگورتھم کسی بھی مسئلے کو حل کرنے کے لیے مرحلہ وار انداز میں ترتیب دیا گيا کوئی منظم طریقہ ہے۔ ریاضی میں کسی ریاضیاتی مسئلے کے حل یا تخمینی حل تک رسائی کے لیے وضع/غیر مبہم ریاضیاتی عملیات پر مشتمل، ہدایات کا منظم اور ترتیب وار مجموعہ الگورتھم ہی کہلاتا ہے۔ کمپیوٹر سائنس میں الگورتھم کی وضاحت سے مراد بذریعہ کمپوٹر کسی عمل کو انجام دینے یا کوئی مسئلہ حل کرنے کے لیے واضع/غیر مبہم ہدایات اور اصولوں کا منظم مجموعہ، جنہیں محدود یعنی متناہی تعداد والے ترتیب وار مراحل کا صورت میں روبہ عمل کیا جائے۔ الگورتھم ایک مخصوص قسم کی علامتی زبان میں لکھا جاتا ہے اور یہی علامتی زبان استعمال کرتے ہوئے (کمپیوٹر پروگرامنگ کی کوئی سی زبان کی مد سے ) مطلوبہ کام کو سر انجام دینے یا متعلقہ مسئلہ حل کرنے کے لیے کمپیوٹر پروگرام (سافٹ ویئر) لکھا جاتا۔ کسی بھی کمپیوٹر پروگرام کی بنیاد یہی الگورتھم ہوتا ہے۔
وجہ تسمیہ اور تاریخ

انگریزی کا لفظ "ایلگوردم" الخوارزم سے نکلا ہے۔ عظیم مسلم ریاضی دان محمد ابن موسی الخوارزمی ان اولین ریاضی دانوں میں سے تھا جس نے ریاضی کے کسے مسئلے کا مرحلہ بہ مرحلہ حل تجویز کیا۔ لفظ الخوارزم عربی سے لاطینی اور لاطینی زبان سے انگریزی میں آتے آتے ایلگوردم بن گیا- یوں محمد الخوارزمی کی علمی کاوش کے اعتراف میں لفظ ایلگوردم کو ریاضی (اور بعد میں کمپیوٹر سائنس) میں مرحلہ بہ مرحلہ ترتیب میں پیش کردہ کسی بھی حل کے لیے استعمال کیا جانے لگا- تاریخی اعتبار سے ریاضی کے کسے مسئلے کا پہلا الخوارزمی حل اقلیدس نے تحریر کیا جسے عام طور پر عاد اعظم معلوم کرنے کا طریقہ کہا جاتا ہے - البتہ یہ خیال قوی ہے کہ اقلیدس نے یہ حل خود دریافت نہیں کیا اور غالباً اس سے لگ بھگ دو سو برس پہلے کے ریاضی دانوں کو یہ طریقہ معلوم تھا۔
کمپیوٹر الخوارزم

{{اصطلاح برابر|
پی بمقابلہ این پی مفرد عددالخوارزم کثیر رقمی الخوارزمی پیچیدگیشمارندی پیچیدگی |
P\overset{\underset{\mathrm{?}}{}}{=} NPprime number algorithm polynomial algorithmic complexitycomputational complexity}}

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

اردو کے الفاظ کی ایک فہرست کو حروف تہجی کے اعتبار سے ترتیب دینا، ٹیلی فون ڈائریکٹری میں سے مطلوبہ شخص کا نمبر تلاش کرنا، ایک شہر سے دوسرے شہر جانے کا مختصر ترین راستہ تلاش کرنا، کسی عدد کے بارے میں یہ معلوم کرنا کہ وہ مفرد (پرائم) ہے یا نہیں، ان سب مسائل کے لیے الخوارزم موجود ہیں۔ مثلا اعداد کی ایک فہرست میں سے ایک مطلوبہ عدد کو تلاش کرنے کا ایک سادہ ترین الخوارزم یہ ہو سکتا ہے ؛ پہلا عدد پڑھیں اور اس کو مطلوبہ عدد سے ملائیں۔ اگر پہلا عدد آپ کا مطلوبہ نمبر نہیں تو اگلا عدد پڑھیں۔ اب اس کو اپنے مطلوبہ عدد سے ملائیں۔ اگر یہ بھی نہیں تو اگلا عدد پڑھیں، یہاں تک کہ آپ کو فہرست میں مطلوبہ عدد کا مقام معلوم ہو جائے ۔ اب فرض کریں کہ فہرست کے کسی بھی ایک عدد کو پڑھنے اور اپنے مطلوبہ عدد سے ملانے میں کمپیوٹر ایک سیکنڈ صرف کرتا ہے۔ یہاں یہ اہم نہیں کہ یہ کسی خاص طرح کا کمپیوٹر ہے یا وہ ایک کی بجائے دو یا آدھا سیکنڈ صرف کرتا ہے۔ اہم مفروضہ یہ ہے کہ فہرست کے ہر عدد پر وہ ایک جیسا وقت صرف کرتا ہے - اگر فہرست میں 10 اعداد ہیں تو مطلوبہ عدد ڈھونڈنے میں کمپیوٹر 10 سیکنڈ صرف کرے گا- اگر 20 اعداد ہوں تو 20سیکنڈ، 60 اعداد ہوں تو ایک منٹ، 3600 اعداد ہوں تو ایک گھنٹہ، یعنی جتنی لمبی فہرست اسی تناسب سے صرف کردہ وقت۔ اگر ہر عدد پر صرف کردہ وقت مختلف بھی ہو تو بھی ایسی ہی مناسبت باقی رہے گی۔ ایسے الخوارزم جن کا صرف کردہ وقت مسئلے کے حجم کے ساتھ ایک لکیری تناسب سے بڑھے،لکیری پیچیدگی کے حامل کہلاتے ہیں۔ اسی طرح اگر اس تعلق کو کسی بھی کثیر رقمی سے ماپا جا سکے تو وہ الخوارزم کثیر رقمی پیچیدگی کا حامل کہلایا جاتا ہے۔ ظاہر ہے کہ لکیری پیچیدگی، کثیر رقمی پیچیدگی کی ایک قسم ہے۔ ایسے تمام الخوارزم جن کی پیچیدگی زیادہ سے زیادہ کسی کثیر رقمی تعلق سے ناپی جا سکتی ہے، الخوارزموں کی قسم پی سے تعلق رکھتے ہیں۔ یہاں پی انگریزی حرف P کو ظاہر کرتا ہے کیونکہ انگریزی میں کثیر رقمی کو پولینومیل کہا جاتا ہے۔ الخوارزمی پیچیدگی کے ماہرین کے نزدیک پی قسم کے الخوارزموں کو ‘آسان‘ سمجھا جاتے ہیں۔ ان تمام الخوارزموں کو جو پی قسم سے تعلق نہیں رکھتے، این پی قسم میں شامل کیا جاتا ہے۔ یہاں این پی انگریزی لفظ نان پولینومیل کے مخفف NP کو ظاہر کرتا ہے - یہاں یہ وضاحت ضروری ہے کہ پی قسم کے الخوارزم این پی قسم سے بھی تعلق رکھتے ہیں - دوسرے الفاظ میں P \subseteq NP۔ الخوارزمی پیچیدگی کی درجہ بندی میں وہ الخوارزم جو پی قسم سے تعلق نہیں رکھتے لیکن این پی قسم میں سے ہیں، پی کی نسبت مشکل سمجھے جاتے ہے - الخوارزمی پیچیدگی میں این پی سے بھی زیادہ مشکل سمجھے جانے الخوارزموں کے اقسام ہیں۔
مسئلہ پی بمقابلہ این پی

اگر کسی طرح یہ ثابت کیا جا سکے کہ نہ صرف P \subseteq NP بلکہ NP\subseteq N بھی ہے تو قسم پی اور این پی میں فرق ختم ہو جائے گا۔ کمپیوٹر سائنس کے ماہرین کے نزدیک اس وقت یہ کمپیوٹر سائنس کا اہم ترین غیر حل شدہ مسئلہ ہے اور اس کے حل کے لیے علوم ریاضی و کمپیوٹر کے اعلی ترین فہم و بصیرت درکار ہے۔ اسے لیے اسے ریاضی کے ہزار سالہ انعامی مسائل میں شامل کیا گیا ہے -
ذرائع ابلاغ میں

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

زمرہ:الخوارزم
زمرہ:ریاضی متفرد
زمرہ:منطق ریاضیات
زمرہ:نظریاتی کمپیوٹر سائنس
زمرہ:نظریاتی شمارندیات
زمرہ:کامنز زمرہ جس کا ربط ویکی ڈیٹا پر ہے
زمرہ:ویکی ڈیٹا سے مطابقت رکھنے والی مختصر تفصیل
زمرہ:ایرانی ایجادات
زمرہ:کمپیوٹر