சனி, 21 ஜூலை, 2012

ஆலென் ட்யூரிங் (Alan Turing) - கணிணியியலின் தந்தை


சமீபத்தில் சொல்வனத்தில்  வெளியான என் கட்டுரை. உங்கள் கருத்துக்கள் மற்றும் விமர்சனங்கள் வரவேற்கப்படுகின்றன.
1999 ஆம் ஆண்டில், டைம் (Time) பத்திரிக்கை 20 ஆம் நூற்றாண்டில் உலகின் நூறு மிக முக்கியமான பிரமுகர்களின் பட்டியலை வெளியிட்டது. அதில் இடம் பெற்றவர் ஆலென் ட்யூரிங். கணினியின் கீபோர்டைத் தட்டும் அனைவரும், ஸ்ப்ரெட்ஷீட்டையும் வர்ட் டாக்குமெண்ட்டையும் திறக்கும் ஒவ்வொருவரும், ட்யூரிங் இயந்திரத்தின் அவதாரங்களில் ஒன்றைப் பயன்படுத்துகிறார்கள் என்பதே உண்மை, என்று அப்போது எழுதியது டைம். கணித மேதை, தத்துவவாதி மற்றும் மறையீட்டு பகுப்பாய்வாளர் (Cryptologist) என்ற பன்முக ஆளுமையான இங்கிலாந்தைச் சேர்ந்த ஆலென் ட்யூரிங் கணிணியியலின் தந்தை என அறியப்படுகிறார். அவருடைய நூற்றாண்டுக் கொண்டாட்டங்கள் இந்த ஆண்டு உலகம் முழுதும் மிகச் சிறப்பாகக் கொண்டாடப்படுகின்றன. இவரின் சாதனைகளின் சில துளிகளைப் பார்க்கலாம்.
ட்யூரிங் இயந்திரம்
ஆலன் ட்யூரிங் இளமைக் காலத்தில் கண்டறிந்த மிக முக்கியமான கணிதக் கோட்பாடு ட்யூரிங் இயந்திரம். 1936 ஆம் ஆண்டில், ட்யூரிங் ’ஆன் கம்ப்யூடிங் நம்பர்ஸ்’ (“On Computable Numbers”) என்ற தன் பிரசித்தி பெற்ற ஒரு ஆராய்ச்சிக் கட்டுரையில் ட்யூரிங் இயந்திரத்தை அறிமுகப்படுத்தினார். இதை எதற்காக அறிமுகப்படுத்தினார் என்பதை அறியும் முன் ட்யூரிங் இயந்திரம் என்றால் என்ன எனப் பார்ப்போம்.
எண்ணிலடங்காத (infinite) நீளமுள்ள நாடா (tape), நாடாவில் வரம்பிற்குட்பட்ட (finite) குறியீடுகளைக் (symbols) கொண்ட சதுரங்கள், ஒரு வருடுதலுடன் (scanning) கூடிய தலையானது (head) பணிக்கப்பட்ட (assigned) ஏதாவது ஒரு நிலையில் (state) இருக்கும் அமைப்பைக் கொண்டதுதான் ட்யூரிங் இயந்திரம். தலையானது நாடாவில் உள்ள சதுரத்தை வாசிக்க முடியும் மற்றும் ஒவ்வொரு சதுரத்திலும் ஏதாவது ஒரு குறியீட்டை எழுதும். ட்யூரிங் இயந்திரம் நெறிமுறைக்கு (algorithm) கட்டுப்பட்டு (controlled) செயல்படுகிறது. 0, 1 – என்ற இரண்டு குறியீடுகள் உள்ளதாக எடுத்துக் கொண்டால் ட்யூரிங் இயந்திரத்தில் ஏழு நிலைகள் இருப்பதைக் காணலாம் :
- புதிய குறியீட்டைப் பதிப்பது அல்லது
- பழைய குறியீட்டை தக்க வைத்துக் கொள்வது அல்லது
- ஒரு சதுரம் இடது பக்கம் நகர்வது அல்லது
- ஒரு சதுரம் வலது பக்கம் நகர்வது அல்லது
- நிறுத்துவது அல்லது
- இருக்கும் நிலையில் இருப்பது அல்லது
- இருக்கும் நிலையிலிருந்து மாறுவது.
உதாரணமாக ,
குறியீடுகள் – 0, 1
நிலைகள் – A, B, C
என்றிருக்கும் ஒரு ட்யூரிங் இயந்திரத்தை எடுத்துக் கொள்வோம். இதில் இரண்டு எண்களை 3 மற்றும் 4 கைக் கூட்ட முயல்வோம். மூன்று அடுத்தடுத்த சதுரங்களில் 1,1,1 என மூன்றைக் குறிக்கலாம். அடுத்த சதுரத்தில் 0 இருக்குமாறும் அதற்கு அடுத்த நான்கு தொடர்ச்சியான சதுரங்களில் 1,1,1,1 படி எடுத்துக் கொள்வோம்.
அதாவது,
0 1 1 1 0 1 1 1 1 0
என நாடாவில் 3 மற்றும் 4 காண்பிக்கப்பட்டிருக்கும். இந்தக் கூட்டலுக்கு பயன்படும் ஒரு நெறிமுறை (algorithm) காண்போம்.
இந்த நெறிமுறை செயல்படும் விதம் பார்ப்போம். A என்பது தொடக்க நிலை. 1 என்பதை ட்யூரிங் இயந்திரம் வாசித்தால், 1, R, A – என்பதின் பொருள்: 1 என்பது தான் தலை முதலில் எழுதும் குறியீடு, R என்பது தலை வலது பக்கம் நகர வேண்டும் எனக் குறிக்கிறது, A என்பது தலை A என்ற நிலையில் இருக்க வேண்டும் எனக் குறிக்கிறது. அதே போல் தலை ௦ என்பதை வாசித்தால் 1, R, B என்பதின் பொருள் முன்பு போலவே தான் ஆனால் இங்கு நிலை மட்டும் B என மாறுகிறது. மேலும் C என்ற நிலை வந்தவுடன் இயந்திரத்தின் செயல்பாடு நின்று விடும். (கீழேயுள்ள படத்தைப் பார்க்கவும்.)
இந்த நெறிமுறையை பயன்படுத்தி 3+4 என்ற கூட்டலை ட்யூரிங் இயந்திரம் எப்படி செயல்படுத்துகிறது எனக் காண்போம். A என்ற நிலையில் இயந்திரத்தின் தலை 1 என்ற எண்ணை வாசித்து, அதை எழுதவும் செய்கிறது. பிறகு தலை வலது பக்கம் நகர்ந்து, A என்ற நிலையுடன் மீண்டும் 1 என்ற எண்ணை வாசித்து அதை எழுதி, அடுத்து வலது பக்கம் நகர்ந்து A என்ற நிலையுடன் மீண்டும் 1 னை வாசித்து அதை எழுதி, மீண்டும் வலது பக்கம் நகர்ந்து 0 என்ற எண்ணை தலை வாசித்தவுடன், 1 என்ற எண்ணை எழுதி, B என்ற நிலையுடன் வலது பக்கம் நகர்ந்து 1 என்ற எண்ணை வாசித்து அதை எழுதி தலை வலது பக்கம் நகர்ந்து 1 என்ற எண்ணை வாசிக்கும்வரை இதே போல் செயல்படும். தலையானது 0 என்ற எண்ணை வாசித்தவுடன், இடது பக்கம் நகர்ந்து C என்ற நிலையுடன் தன் செயல் பாட்டை நிறுத்திக் கொள்கிறது. இந்த நெறிமுறை செயல்பாடு முடிந்தவுடன் மூன்று 1 க்கு பிறகு இருக்கும் 0 வை நீக்கி தொடர்ந்து ஏழு 1 கள் கீழே உள்ளது போல் இருக்கும்.
0 1 1 1 1 1 1 1 0 0
இதிலிருந்து 3+4 = 7 என ட்யூரிங் இயந்திரம் கணக்கிடுவதைக் காணலாம். ட்யூரிங் இயந்திரம் என்பது ஒரு மென்பொருளாகும். இரண்டு குறியீடுகள் மற்றும் மூன்று நிலைகள் கொண்ட ட்யூரிங் இயந்திரத்திற்கு வரம்பிற்குட்பட்டதான பலவிதமான நெறிமுறைகள் எழுத முடியும்.
ட்யூரிங் இயந்திரம் என்ற ஒரு முறையான கணிதப் பொருளை, ட்யூரிங் கண்டறிந்ததின் மூலம் முதல் முறையாக கணிப்பது என்றால் என்ன என்பதை அறிய முடிந்தது. இப்போது எழும் கேள்வி: எல்லா எண்களையும் கணிக்க முடியக்கூடிய பொருத்தமான ட்யூரிங் இயந்திரம் இருக்கிறதா? இல்லையெனில் வேறுவிதமாக கூறினால் கணிக்க முடியாத எண்கள் என எதுவும் உள்ளதா? கணிக்க முடியும் முழு எண் என்றால் என்ன? ட்யூரிங் இயந்திரந்தின் நாடாவின் சதுரங்களில் 0 க்கள் மட்டும் கொண்ட எல்லையற்ற நாடாவில் தொடர்ச்சியாக n ‘1’ களாக நாடாவில் வரம்பிற்குட்பட்டதான படிகளில்(steps) ட்யூரிங் இயந்திரம் எழுத முடிந்தால் அந்த எண்ணை கணிக்க முடியும் முழு எண் (computable number) என அழைக்கிறோம். அதே நேரத்தில் மெய் எண்கள் (real numbers) எண்ணிலடங்காத இலக்கங்களைக் கொண்டது. எனவே ஓர் மெய் எண் கணிக்க முடியும் எண் எனில் “ஒரு ட்யூரிங் இயந்திரம் தொடர்ச்சியாக ஒன்றின் பின் ஒன்றாக அந்த மெய் எண்ணின் இலக்கங்களை எழுத முடிய வேண்டும்” எனக் கொள்ளலாம்.
இரண்டு குறியீடுகள் மற்றும் மூன்று நிலைகள் கொண்ட ட்யூரிங் இயந்திரத்திற்கு வரம்பிற்குட்பட்டதான நெறிமுறைகள் தான் எழுத முடியும். அதனால் வரம்பிற்குட்பட்டதான எண்களைத் தான் ஒரு ட்யூரிங் இயந்திரத்தால் கணிக்க முடியும். பொதுவாக n -நிலைகள் கொண்ட ட்யூரிங் இயந்திரத்தால் எண்ணக்கூடிய (countable) அளவிலான எண்களைத் தான் கணிக்க முடியும். ஆனால் எண்ணமுடியாத அளவிலான மெய் எண்கள் இருக்கின்றன. எனவே இதிலிருந்து கணிக்க முடியாத எண்கள் இருக்கிறது என்பது நிரூபணமாகிறது. இது கணிக்க முடியாத எண்கள் இருப்பதை நிரூபிக்க ஒரு மறைமுக வழியாகும்.
இதை நிரூபிக்க ட்யூரிங் கையாண்ட முறையை இப்போது பார்ப்போம். இந்த
RASI, ANNA, ORKUT, ANBU, IMTAZ, ANUPAM, MUMTAAZ, TOWNHALL
ஆங்கிலப் பெயர்களை எடுத்துக் கொள்வோம். இப்போது முதல் வார்த்தையில் முதல் எழுத்தின் அகர வரிசையின் அடுத்த எழுத்தை எடுத்துக் கொள்ளவும். அது S என்ற எழுத்தாக இருக்கும். இதே போல் இரண்டாவது வார்த்தையின் இரண்டாவது எழுத்தின் அகர வரிசையின் அடுத்த எடுத்துக் கொண்டால் O வருவதைக் காணலாம். இந்த முறையை வரிசையிலுள்ள எல்லா வார்த்தைகளுக்கும் மேற் கொண்டால் இறுதியில் “SOLVANAM” வருவதைக் காணலாம். நிச்சயமாக SOLVANAM என்ற சொல் மேலேயுள்ள வார்த்தைகளின் வரிசையில் இடம் பெறாது ஏனெனில் அது ஒவ்வொரு வார்தையிலிருந்தும் குறைந்த பட்சம் ஓர் எழுத்திலாவது மாறுபடுகிறது.
இந்த தர்க்க முறையைப் பயன்படுத்தி ட்யூரிங் கணிக்க முடியாத எண்கள் இருக்கின்றன என நிரூபித்தார். எல்லா கணிக்க முடியக் கூடிய எண்களையும் அதனுடைய தசம விரிவாக்கத்தில் (DECIMAL EXPANSION) எழுதுவோம். அந்த வரிசையில் முதல் எண்ணின் முதல் இலக்கத்தின் அடுத்த இலக்கத்தை எடுத்துக் கொண்டு, இரண்டாவது எண்ணின் இரண்டாவது இலக்கத்தின் அடுத்த இலக்கத்தை எடுத்துக் கொண்டு, இதே போல் பொதுவாக வரிசையில் K எண்ணின் K வது இலக்கத்தின் அடுத்த இலக்கத்தை என எடுத்துக் கொண்டு ஒரு புதிய எண்ணை எழுதுவோம். உறுதியாக இந்த எண் முதலில் எடுத்துக் கொண்ட கணிக்கக் கூடிய எண்களின் வரிசையில் இருக்க முடியாது. எனவே கணிக்க முடியாத எண்கள் இருக்கின்றன என திட்டவட்டமாக நிரூபணமாகிறது.
கணிக்க முடியும் மற்றும் கணிக்க முடியாத எண்களுக்கும் ட்யூரிங் இயந்திரத்திற்கும் என்ன தொடர்பு? முன்கூட்டியே எழுதப்பட்ட ஒரு நெறிமுறையை பயன்படுத்தி ஒரு ட்யூரிங் இயந்திரம் ஓர் எண்ணைக் கணிக்கும் போது வரம்பிற்குட்பட்டதான படிகளில் தன் கணிப்பை நிறுத்துமா என்பது ஒரு முக்கியமான கேள்வி? இதற்கு நிறுத்தச் சிக்கல் (Halting Problem) என்று பெயர். கணிக்க முடியக் கூடிய எண்ணை முன்கூட்டியே எழுதிய ஒரு நெறிமுறையின் மூலம் ட்யூரிங் இயந்திரத்தை உபயோகித்து வரம்பிற்குட்பட்டதான படிகளில் கணிக்க முடியும். அதாவது வரம்பிற்குட்பட்டதான படிகளில் ட்யூரிங் இயந்திரம் தன் கணிக்கும் பணியை நிறுத்திக் கொள்ளும். அதே நேரத்தில் எல்லா எண்களுக்கும் இது நடவாது என்பதைத் தான் ட்யூரிங் நிரூபித்தார். இதை வேறு மாதிரி கூறினால் “எந்த ஒரு ட்யூரிங் இயந்திரத்தாலும் வரம்பிற்குட்பட்டதான படிகளில் கணிக்க முடியாத எண்கள் இருக்கிறது என்பதை நிறுவினார்.
கணிப்பது (computation) என்பதை முதல் முறையாக முறைப்படி கணிதத்தை உபயோகித்து விளக்கியது ட்யூரிங்கின் மிக முக்கியப் பங்களிப்பாகும். இந்த நிறுத்தச் சிக்கலிற்கு(Halting Problem) இணையான முடிவை கணிதத் தர்க்கத்தை பயன்படுத்தி கூடெல்(Kurt Gödel) என்ற கணித மேதை 1931 ஆம் ஆண்டு கீழ் கண்டவாறு நிறுவினார்
எண்கணிதத்தில் இருக்கும் எல்லா கூற்றுகளையும்( statements), எடுத்துக் கொள்ளப்பட்ட ஓர் ஒத்த(consistent) முறைப்படியான(formal) அமைப்பில்(system), உண்மை அல்லது உண்மை இல்லை எனத் தீர்வு காண முயலும் போது, உண்மையா இல்லையா எனத் தீர்வு காணமுடியாத ஏதோ ஒரு எண்கணித (arithmetic) முன்மொழிவு (proposition)அந்த அமைப்பில் இருக்கும்.. எனவே இந்த முறைப்படியான அமைப்பு முழுமையானதில்லை.
கூடெல் நிறுவிய தேற்றம் கணிதத் தர்க்கத்தை உபயோகித்து நிறுவுவதற்கு பதிலாக கணிக்கும் இயந்திரம் மற்றும் நெறிமுறைகளை பயன்படுத்தி நிறுவினால் அது நிறுத்தச் சிக்கல் தீர்வுக்குச் சமமானது. கூடெல் ட்யூரிங்கின் கணிக்கும் எண்களைப் பற்றி மிகவும் சிலாகித்துக் கூறியுள்ளார்.
ட்யூரிங் இயந்திரம் என்பது ஒரு மென்பொருளாகும். இயந்திரம் எனப் பெயர் உள்ளதால் அது ஒரு கணணி வன்பொருளாகி விடவில்லை. இந்த ட்யூரிங் இயந்திரத்தில் உள்ள ஒரே ஒரு சிக்கல் ஒவ்வொரு எண்ணைக் கணிக்கும் போதும் ஒவ்வொரு ட்யூரிங் இயந்திரம் தேவைப்படும். இந்த சிக்கலைத் தீர்க்கத் தான் எல்லாவற்றிற்கும் பொருத்தமான ட்யூரிங் இயந்திரம் (Universal Turing Machine) என்ற கோட்பாட்டளவிளான ஒரு சிந்தனையை ட்யூரிங் அறிமுகப்படுத்தினார். இந்த இயந்திரம் எந்த கணிக்கும் எண்ணிலான தொடரிலுள்ள எல்லா எண்களையும் கணிக்க முடியும். இன்று நாம் உபயோகித்து வரும் எண்சமிக்ஞை கணணி (Digital Computer) மற்றும் அதன் செயல் முறை உதித்தது ட்யூரிங்கின் இந்த சிந்தனையின் விளைவாகத்தான். இன்று இதற்கான பெயர் வான் நொய்மேனுக்கு சொந்தமானாலும், ட்யூரிங்கின் சிந்தனையைப் பயன்படுத்தி ’என்வக்’ என்ற முதல் கணணியை உண்டாக்கினார் நொய்மேன். இந்த சாதனையை முன்னிட்டுத் தான் ட்யூரிங் பெயரில் நோபெல் பரிசுக்கு இணையாக கணணியியலில் ஆண்டிற்கு ஒருமுறை கணணித் துறையில் சாதனை புரிந்தவர்களுக்கு ட்யூரிங் விருது வழங்கப்படுகிறது.

2 கருத்துகள்: