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