కంప్యూటింగ్ పూర్వాపరాలు, సాధ్యాసాధ్యాలు – 3: బాబేజ్ యంత్రాలు

తేడా యంత్రం (The Difference Engine)

ఖగోళశాస్త్రంలో, నౌకాయానంలో, సర్వే పద్ధతుల్లో, వడ్డీ, జీవిత భీమా లెక్కలలో అవసరమైన పట్టికలని తయారుచెయ్యడానికి బహుపద సమాసాలని (polynomials) వాడుకోవచ్చు. ఉదాహరణకి, T = x**2 + x + 41 అన్న బహుపద సమాసాన్ని తీసుకుందాం. ఇది బాబేజ్ కి చాలా ఇష్టమైనది – ఇది ఇచ్చే సంఖ్యలు చాలా వరకు ప్రథాన సంఖ్యలు (prime numbers). x విలువని 0 నుండి పెంచుకుంటూ వెళ్ళే కొద్దీ, T విలువ గూడా రాయాలి. క్రింది పట్టికలో కుడి వైపున x విలువా దాని పక్కనే T విలువా ఉన్నాయి. T విలువలు క్రమంలో ఉన్నట్లు కనిపించవు.

కాని Tకి ఎడమవైపున ఉన్న వరుసని – మొదటి తేడా (D1), పక్కపక్కన ఉన్న T విలువల భేదం – చూడండి. ఈ వరుసలో సంఖ్యలు క్రమంగా ఉన్నాయి గదా. అంతకంటె ఆశ్చర్యం కలిగించేది రెండో తేడా (D2) వరుస – పక్కపక్కన ఉన్న D1 విలువల భేదం. ఇది మారకుండా నిలకడగా విలువ రెండుకి సమానంగా ఉంది! (బహుపద సమాసాలన్నిటికీ ఇది వర్తిస్తుంది. x**3 తో మొదలెడితే మూడో తేడా నిలకడగా ఉంటుంది.)

ఇప్పుడు మరో ఆసక్తికరమైన విషయం గమనించండి. ఈ సమాసాన్ని లెక్క కట్టడానికి హెచ్చవేతలు చెయ్యనవసరం లేదు. ఒకసారి కనుక్కున్న విలువలని ఉపయోగించి తర్వాత వచ్చే T విలువలని కేవలం కూడికల ద్వారా కనుక్కోవచ్చు! రెండో తేడాని మొదటి తేడాకి కలిపితే ఓ కొత్త మొదటి తేడా వస్తుంది (2 + 4 = 6). దానిని T కి కలిపితే ఓ కొత్త T విలువ వస్తుంది (6 + 47 = 53). మళ్ళీ వీటిని ఉపయోగించి D1 కొత్త విలువా (2 + 6 = 8) T కొత్త విలువా (8 + 53 = 61) కనుక్కోవచ్చు. ఇలా ఒకసారి D2, D1, T విలువలు తెలిస్తే, ఆ తర్వాతి T విలువ లన్నిటినీ, సులభంగా కూడికల ద్వారా తెలుసుకోవచ్చు. క్లిష్టమైన బహుపద సమాసాల పట్టికలని ఇలా కేవలం ప్రాథమిక గణిత జ్ఞానంతో చెయ్యవచ్చు.

డీ ప్రోనీ పెద్దగా చదువురాని హెయిర్ డ్రెస్సర్లని ఈ కూడికలు చెయ్యడానికే వాడాడు. బాబేజ్ ఆపని చేసే యంత్రాన్ని రూపొందించాడు..


యంత్రం భాగాలు

పదిహేడో శతాబ్దంలో పాస్కల్, లైబ్నిజ్ గణన యంత్రాలు చేశారని క్రిందటి వ్యాసంలో తెలుసుకున్నాం. అవి అప్పటికి నమ్మకంగా పనిచేసే స్థాయికి రాలేదు. అదీగాక, పట్టికలు తయారుచేసే శక్తి వాటికి లేదు – ప్రతి కూడికకీ, కూడికకీ మధ్య మనిషి జోక్యం చేసుకోవాలి – పొరపాటు దొర్లే అవకాశం ఎక్కువ. బాబేజ్ తన పట్టికకి కావలసిన పనులన్నీ యంత్రం ద్వారానే చెయ్యాలని పూనుకున్నాడు. మొదటి విలువలు ఇస్తే, యంత్రం పట్టిక విలువలు ఒక దాని తర్వాత ఒకటి కనుక్కోవడమే కాక అచ్చు వేస్తుంది కూడాను! మధ్యలో మనిషి జోక్యం ఉండదు; పొరబాటు జరగడానికి ఆస్కారం లేదు.

ఇది పందొమ్మిదో శతాబ్దపు మొదటి భాగంలో అని గుర్తుంచుకోవాలి. అప్పటికింకా రైళ్ళు శైశవదశలోనే ఉన్నాయి. కార్లూ, కరెంటూ ఇంకా రాలేదు. ఎలెక్ట్రానిక్స్ పేరే లేదు. ఖచ్చితంగా పనిచేసే యంత్రం బహుశా గడియారం ఒక్కటే. అది పళ్ళ చక్రాల ఆధారంగా పనిచేస్తుంది. బాబేజ్ యంత్రానికి కూడా మూలాధారం పళ్ళ చక్రాలే.

సంఖ్యలో ఒక్కో స్థానానికి ఒక్కో పళ్ళ చక్రం – ఒకట్ల స్థానానికి ఒక చక్రం, పదుల స్థానానికి మరొక చక్రం, అలా. ఈ పళ్ళ చక్రం పైన ఉంగరంలాగున్న దానిపై 0 నుంది 9 దాకా అంకెలు ముద్రించి ఉంటాయి. దీనినే అంకెల చక్రం (figure wheel) అన్నాడు. ఈ అంకెల చక్రాల మధ్యగా ఓ నిలువైన ఇరుసు పోతుంది. 642 సంఖ్య కావాలంటే, ఇరుసుకి ఎదురుగా వందల చక్రాన్ని ఆరు మీదా, పదుల చక్రాన్ని నాలుగు మీదా, ఒకట్ల చక్రాన్ని రెండు మీదా, వచ్చేటట్లు త్రిప్పి పెట్టాలి. ఒక్కో ఇరుసు ఒక్కో సంఖ్యని సూచిస్తుంది.


అంకెల చక్రం
(©IEEE సౌజన్యంతో)

ఒక చక్రమున్న ఇరుసుని ప్రక్క బొమ్మలో చూడవచ్చు. చక్రం రెండో స్థానంలో ఉంది. ఇరుసు బయట ఒక వ్రేలూ (a) చక్రం లోపల సున్నా దగ్గర ఒక వ్రేలూ (b) ఉన్నాయి. ఇరుసుని ఒక చుట్టు త్రిప్పితే దాని వ్రేలు చక్రం వ్రేలుకి తగిలి, చక్రాన్ని రెండు విలువకి సరిపడేటన్ని పళ్ళు కదిలేలా త్రిప్పుతుంది. ఇరుసుమీద పదుల వందల స్థానాల్లో ఉన్న చక్రాలు వాటి వాటి విలువలకి అనుగుణంగా తిరుగుతాయి.


(©IEEE సౌజన్యంతో)

ఒక ఇరుసులోని సంఖ్యని పక్క ఇరుసులోని సంఖ్యకి కూడే విధానం పక్క బొమ్మలో ఉంది. A ఇరుసుని ఒక చుట్టు త్రిప్పితే ఆ కదలిక, మధ్య గేర్లు G, J ల నుండి A ఇరుసుకి సంక్రమిస్తుంది. A ఇరుసుమీద ఒకట్ల స్థానం చక్రం 2 మీదా A’ ఇరుసులో ఒకట్ల స్థానం చక్రం 7 మీదా ఉన్నాయి. చక్రాలు కదిలింతర్వాత, A లో ఒకట్ల స్థానం చక్రం 9 కి మారుతుంది.

అదే సమయంలో మిగిలిన స్థానాల అంకెలు కూడా కూడికలో పాల్గొంటాయి. అంటే, ఒకట్ల స్థానం, పదుల స్థానం, వందల స్థానం, ఇవన్నీ ఒకేసారి కూడికలో పాల్గొంటాయి! మనం చిన్నప్పుడూ, ఇప్పుడూ కూడా ఒక స్థానం తర్వాట మరొకటి చేస్తాం. బాబేజ్ యంత్రంలోనూ, ఆధునిక కంప్యూటర్లలోనూ, ఇవి ఒకే సమయంలో సంఖ్యలోని అన్ని స్థానాలూ కూడికలో ఒకేసారి పాల్గొంటాయి. యంత్రం వేగంగా పనిచెయ్యాలంటే ఇలాంటి చిట్కాలు వాడాలి.


పెద్దది చేయడానికి క్లిక్ చేయండి

ఇప్పుడు యంత్రం పై సమాసాన్ని బట్టి పట్టికని ఎలా తయారుచేస్తుందో చూద్దాం. ముందర D2 ఇరుసు మీద చక్రాలని విలువ 2 మీదా, D1 చక్రాన్ని విలువ 0 మీద, T ఇరుసు మీద చక్రాలని 41 మీదా అమర్చాలి. ఆలోచించి చెయ్యాల్సిన పని ఇదొక్కటే. మిగిలిన దంతా క్రాంకు (crank) తిప్పడమే! (Figure 1) మొదటి త్రిప్పుకి D2 విలువ D1 తో కలుస్తుంది. యంత్రం ఇలా సూచిస్తుంది. (Figure 2) రెండో త్రిప్పుకి D1 విలువ T తో కలుస్తుంది. (Figure 3) ఇలా ప్రతి రెండు త్రిప్పులకీ ఒక కొత్త T విలువ తయారవుతుంది.

బాబేజ్ తేడా యంత్రం ఎలా పనిచేస్తుందో అర్థమయింది కదా. ఓస్, ఇంతేనా అనుకునే ముందర మనం ఉపేక్షించిన రెండు సమస్యలని చూద్దాం. ఒకటి – చక్రం 2 మీద ఉంటే, అది రెండు స్థానాలు తిరిగితే, ఆ విలువ పక్క చక్రానికి కలుపుతుంది కానీ, మొదటి చక్రం ఇప్పుడు సున్నా చూపెడుతుంది! D2 విలువ D1 తో కలిపింతర్వాత, అది సున్నా అయి కూర్చుంటే, ఆ తరువాత కనుక్కోవాల్సిన D1 విలువ తప్పయిపోతుంది. దీనిని పరిష్కరించడానికి, బాబేజ్ ఒక చక్రం నుండి మరో చక్రానికి కలిపేటప్పుడు, మూడో చక్రానికి కూడా కాపీ చేశాడు. మూడో చక్రాన్నుంచి మొదటి చక్రానికి తిరిగి బదిలీ చేశాడు. అంటే ఇరుసుకి మరికొన్ని గేర్లూ, చక్రాలూ అవసరమయ్యాయన్న మాట.

మరో సమస్య. ఒకట్ల స్థానంలో 2 సూచించే చక్రం 3 సూచించే చక్రంతో కలిస్తే, అది 5 కి చేరుతుంది సరే. 3 కాకుండా 9 సూచిస్తే? పదుల స్థానంలోకి 1 ని బదిలీ చేసి (ఇంగ్లీషులో carry అంటారు) అక్కడ కూడాలి. అక్కడ 9 ఉంటే, వందల స్థానంలోకి బదిలీ చెయ్యాల్సి ఉంటుంది. పక్కపక్కన ఇరుసుల్లో సమ స్థానాల్లో ఉన్న చక్రాలతో కూడటమే కాక, ఒకే ఇరుసులో ఉన్న చక్రాల మధ్య బదిలీ చెయ్యాల్సిన అవసరం కూడా ఉంది. ఇదంతా చెయ్యాలంటే, మరికొన్ని చక్రాలూ గేర్లూ అవసరం. కూడికలకే ఇంత తతంగముంది – మరి పళ్ళ చక్రాలతో లెక్కలు చేయించాలంటే మాటలు కాదు.