கர்மாவின் அல்காரிதம்: ஆன்மீகம் பற்றி கணினி அறிவியல் நமக்கு என்ன கற்பிக்கிறது
நிர்ணயிக்கப்பட்ட அமைப்புகள் (deterministic systems), ஸ்டேட் இயந்திரங்கள் மற்றும் இறுதி நிலைத்தன்மை (eventual consistency) ஆகியவை கர்மாவின் ஆன்மீகக் கருத்தை எவ்வாறு விளக்க முடியும் என்பது பற்றிய ஒரு பாலிமாத்தின் பார்வை.
Author's Insight
கர்மா என்பது பெரும்பாலும் ஒரு மாயாஜால அண்டப் பேரேடாக தவறாகப் புரிந்து கொள்ளப்படுகிறது—தீயவர்களைத் தண்டித்து நல்லவர்களுக்கு வெகுமதி அளிக்கும் ஒரு மாய சக்தி. ஆனால் கர்மா என்பது மாயாஜாலம் இல்லை என்றால் என்ன செய்வது? அது வெறும் சிஸ்டம் இன்ஜினியரிங்கின் ஒரு அடிப்படை விதி என்றால் என்ன?
கணினி அறிவியல் மற்றும் ஆன்மீகத்திற்கு இடையிலான இடைவெளியைக் குறைக்கும் ஒரு பாலிமாத் (polymath) என்ற முறையில், கர்மா என்பது பெருமளவில் இயங்கும் ஒரு நிர்ணயிக்கப்பட்ட ஸ்டேட் இயந்திரம் (deterministic state machine) என்பதை நான் உணர்ந்துள்ளேன்.
கணினி அறிவியலின் மன மாதிரிகளைப் (mental models) பயன்படுத்தி கர்மாவின் ஆன்மீகக் கருத்தைப் பிரிப்போம்.
1. பிரபஞ்சம் ஒரு ஸ்டேட் இயந்திரம்
கணினி அறிவியலில், ஃபைனைட் ஸ்டேட் மெஷின் (Finite State Machine - FSM) என்பது நிலைகளின் (states) தொகுப்பு, ஒரு தொடக்க நிலை மற்றும் உள்ளீடுகளின் (inputs) அடிப்படையில் அந்த நிலைகளுக்கு இடையிலான மாற்றங்களைக் (transitions) கொண்ட ஒரு கணக்கீட்டு மாதிரி ஆகும்.
உங்கள் வாழ்க்கை ஒரு ஸ்டேட் இயந்திரம். உங்கள் தற்போதைய யதார்த்தம்—உங்கள் உறவுகள், உங்கள் வங்கிக் கணக்கு, உங்கள் உடல்நலம், உங்கள் மன அமைதி—ஆகியவை தற்போதைய நிலை (Current State) ஆகும்.
நீங்கள் எடுக்கும் ஒவ்வொரு செயலும், நீங்கள் பேசும் ஒவ்வொரு வார்த்தையும், நீங்கள் எண்ணும் ஒவ்வொரு எண்ணமும் ஒரு உள்ளீடாக (Input) செயல்படுகிறது.
// கர்மாவின் எளிமைப்படுத்தப்பட்ட மாதிரி
function applyKarma(currentState, action) {
const nextState = computeTransition(currentState, action);
return nextState;
}
currentState இலிருந்து nextState க்கான மாற்றம் முற்றிலும் action அடிப்படையில் நிர்ணயிக்கப்படுகிறது (deterministic) என்பதை கர்மா கட்டளையிடுகிறது. நீங்கள் தொடர்ந்து எதிர்மறை, வஞ்சகம் அல்லது பேராசையை உள்ளீடு செய்தால், computeTransition செயல்பாடு கணித ரீதியாக குறைந்த தரமான nextState-க்கு உத்தரவாதம் அளிக்கிறது. பிரபஞ்சத்தில் நீதிபதி என்று யாரும் இல்லை; இது பிரபஞ்சத்தின் கோட்பேஸின் (codebase) நிர்ணயிக்கப்பட்ட செயல்பாடாகும்.
2. இறுதி நிலைத்தன்மை (Eventual Consistency) மற்றும் "தாமதமான கர்மா"
கர்மா பற்றிய பொதுவான புகார்: "நல்லவர்களுக்கு ஏன் கெட்ட விஷயங்கள் நடக்கின்றன? கெட்டவர்கள் ஏன் வெற்றி பெறுகிறார்கள்?"
விநியோகிக்கப்பட்ட சிஸ்டம்ஸ் வடிவமைப்பில் (distributed systems design), எங்களிடம் இறுதி நிலைத்தன்மை (Eventual Consistency) என்ற கருத்து உள்ளது. நீங்கள் ஒரு பெரிய தரவுத்தளத்தை (பிரபஞ்சம் போல) புதுப்பிக்கும்போது, மாற்றம் உடனடியாக அனைத்து முனைகளுக்கும் (nodes) பரவாது. ஒரு குறுகிய காலத்திற்கு, நீங்கள் வேறு முனையிலிருந்து படித்தால், பழைய, காலாவதியான தரவை நீங்கள் பெறலாம். ஆனால் இறுதியில், கணினி ஒத்திசைந்து (synchronize) நிலைத்தன்மையை அடைகிறது.
கர்மா ஒரு இவென்ச்சுவலி கன்சிஸ்டன்ட் சிஸ்டம்.
ஒருவர் முன்னேற நெறிமுறையற்ற முறையில் செயல்படும்போது, அவர்கள் கணினியில் தற்காலிக ஒத்திசைவு தாமதத்தைப் பயன்படுத்துகிறார்கள். அவர்கள் குறுகிய காலத்தில் (stale read) வெற்றி பெறுவது போல் தோன்றுகிறார்கள். ஆனால் பிரபஞ்சத்தின் பேரேடு விநியோகிக்கப்படுகிறது, ஒத்திசைவு தவிர்க்க முடியாதது.
- நெறிமுறையற்ற குறுக்குவழி அவர்களின் வாழ்க்கையில் மறைக்கப்பட்ட டெக் கடனை (tech debt) உருவாக்குகிறது.
- டெக் கடன் கூட்டு வட்டி போல் (compound) பெருகும்.
- இறுதியில், கணினி சரிசெய்கிறது, மற்றும் கடன் திரும்பப் பெறப்படுகிறது.
தாமதம் என்பது நீதியின் தோல்வி அல்ல; இது மிகவும் சிக்கலான, விநியோகிக்கப்பட்ட நெட்வொர்க்கின் லேட்டன்சி (latency) மட்டுமே.
3. பட்டாம்பூச்சி விளைவு மற்றும் வரைபடக் கோட்பாடு (Graph Theory)
வரைபடக் கோட்பாடு (Graph theory) முனைகள் (nodes) மற்றும் விளிம்புகள் (edges) பற்றி நமக்குக் கற்பிக்கிறது. பிரபஞ்சம் ஒரு பெரிய, முழுமையாக இணைக்கப்பட்ட வரைபடம்.
நீங்கள் ஒரு செயலைச் செய்யும்போது (உங்கள் முனையில் ஒரு இடையூறு), அந்தச் செயலின் ஆற்றல் வரைபடத்தின் விளிம்புகளைக் கடந்து செல்கிறது. மனித தொடர்புகள் மிகவும் தொகுக்கப்பட்டிருப்பதால் (clustered), வரைபடம் எண்ணற்ற சுழற்சிகளைக் (loops) கொண்டுள்ளது.
இதன் கணித ரீதியான அர்த்தம் என்னவென்றால், நெட்வொர்க்கிற்கு அனுப்பப்படும் ஒரு சிக்னல் ஒரு சுழற்சியைக் கடந்து தோற்றுவாய் முனைக்குத் திரும்புவதற்கான வாய்ப்பு அதிகம்.
"நீங்கள் விதைத்ததையே அறுவடை செய்வீர்கள்" என்பது அச்சுறுத்தல் அல்ல. இது ஒரு சுழற்சி வரைபட நெட்வொர்க்கில் சிக்னல் பரவுதலின் நேரடி விளக்கம்.
4. உங்கள் கர்மாவை ரீஃபாக்டரிங் செய்தல் (Tech Debt)
உங்களுக்கு மோசமான முடிவுகளின் வரலாறு இருந்தால், நீங்கள் கார்மிக் டெக் கடனை (Karmic Tech Debt) குவித்துவிட்டீர்கள்.
மென்பொருள் பொறியியலில், நீங்கள் டெக் கடனைப் புறக்கணிக்க முடியாது. நீங்கள் எவ்வளவு நேரம் காத்திருக்கிறீர்களோ, அவ்வளவு கடினமாக அதைச் சரிசெய்வது, இறுதியில் முழு பயன்பாடும் நின்றுவிடும் வரை. இதிலிருந்து வெளியேறுவதற்கான ஒரே வழி மோசமான குறியீட்டை (code) எழுதுவதை நிறுத்திவிட்டு, வேண்டுமென்றே பழைய குறியீட்டை ரீஃபாக்டர் (refactor) செய்யத் தொடங்குவதே ஆகும்.
ஆன்மீக அடிப்படையில், இதன் பொருள்:
- புதிய பிழைகளை (bugs) சேர்ப்பதை நிறுத்துங்கள்: நெறிமுறை செயல்கள் மற்றும் நினைவாற்றலுக்கு (தூய உள்ளீடுகள்) உறுதிபூணுங்கள்.
- பழைய குறியீட்டை ரீஃபாக்டர் செய்யுங்கள்: மன்னிப்பு கேளுங்கள், திருத்தங்கள் செய்யுங்கள், மன்னிப்பைப் பயிற்சி செய்யுங்கள். உங்களின் தனிப்பட்ட ஸ்டேட் இயந்திரத்தில் உடைந்த மாற்றங்களை நீங்கள் மீண்டும் எழுதுகிறீர்கள்.
முடிவுரை: இறுதி அல்காரிதம்
ஆன்மீகம் மற்றும் கணினி அறிவியல் எதிரெதிர் சக்திகள் அல்ல; அவை ஒரே அடிப்படையான யதார்த்தத்தை விவரிக்கும் இரண்டு வெவ்வேறு மொழிகள்.
கர்மா என்பது மேகத்தில் அமர்ந்திருக்கும் நீதிபதி அல்ல. இது மனித இருப்பு வரைபட நெட்வொர்க்கை நிர்வகிக்கும் சமரசமற்ற, அழகான, நிர்ணயிக்கப்பட்ட அல்காரிதம் ஆகும்.
நல்ல குறியீட்டை (code) எழுதுங்கள். நல்ல தேர்வுகளை எடுங்கள். பிரபஞ்சத்தின் கம்பைலர் (compiler) எப்போதும் பார்த்துக்கொண்டிருக்கிறார்.