అల్గారిథం

సమస్యలు పరిష్కరించటానికి చెయ్యవలసిన సందేహము లేని పనుల జాబితా

గణితశాస్త్రం, కంప్యూటరు రంగాలలో అల్గారిథం (అల్గరిథం) అంటే ఒక సమస్యను పరిష్కరించటానికి చేయవలసిన పనుల జాబితా. ఉదాహరణకి "అన్నం వండడం" అనే సమస్యని పరిష్కరించడానికి చెయ్యవలసిన పనుల జాబితా ఈ కింది విధంగా ఉండొచ్చు.

  • అయిదు కప్పులు నీళ్లు పట్టే గిన్నె తీసుకో.
  • అందులో ఒక కప్పు బియ్యం పోసి, బాగా కడిగి, నీళ్లు ఒంపెయ్.
  • ఇప్పుడు తడి బియ్యం ఉన్న గిన్నెలో మూడు కప్పుల నీళ్లు పోసి మంట మీద పెట్టు. (గిన్నె మీద మూత పెట్టకు)
  • నీళ్లు కుతకుత ఉడుకుతూన్న సమయంలో గరిటెతో ఒక సారి తిప్పు (అదే పనిగా గరిటెతో తిప్పవద్దు)
  • నీళ్లు ఉడుకుతూన్న బియ్యం ఉన్న మట్టానికి దిగిన తరువాత మంట బాగా తగ్గించి, గిన్నె మీద మూత పెట్టు.
  • నీళ్లు పూర్తిగా ఇంకిపోయేదాకా గిన్నెGrosssssser Schwanzని సన్నని సెగ మీద ఉండనీ.
  • మూత తీసి ఉడికిన బియ్యం (అన్నం) లో ఒక చెంచాని దించి, పైకెత్తి, పరీక్ష చెయ్యి.
  • చెంచాకి మెతుకులు అంటుకోకుండా, చెంచా ఇంకా తడిగా ఉంటే, ఉడకడం పూర్తి కాలేదన్నమాట.
  • చెంచాకి నాలుగైదు మెతుకులు అంటుకుని, మెతుకులు పొడిగా ఉండి, చేతికి మెత్తగా తగిలితే ఉడకడం పూర్తి అయిపోయిందన్నమాట.
  • మంట పూర్తిగా ఆర్పేసి, కొద్ది సేపు చల్లబడనీ.
  • అన్నం తయార్!
అల్గారిథం ఆధారంగా ఫ్లోచార్ట్ సిద్ధం చేసుకుని ప్రోగ్రాం రాయాలి

ఈ పద్ధతిలో ప్రతి అంచె అనుమానానికి ఆస్కారం లేని భాషలో చెప్పేం. ప్రతి అంచెలో చెప్పిన పని అయిన తరువాత మారుతూన్న బియ్యం స్థితు లని ఆధారంగా పరిష్కారం కొనసాగింది. అంత్య స్థితి ఏమిటో స్పష్టంగా తెలిసింది. ఇలా చెయ్యవలసిన పనిని ఒక క్రమ పద్ధతిలో అంచెలంచెలలో చెప్పే విధివిధానమే అల్గరిథం అంటే!

పైన చూపిన అల్గరిథం నిర్ణయాత్మక (deterministic) అల్గరిథంలకి ఒక ఉదాహరణ. ఇంకొన్నిటిలలో సందర్భాన్ని బట్టి ఒకదాని తరువాత ఒకటి వచ్చే స్థితుల గతి మారుతూ ఉంటుంది, ఇలాంటి వాటిని సంభావ్యాత్మక (probabilistic) అల్గరిథాలు అని పిలుస్తారు.

అల్గరిథంని రాసుకుని, అంతా సవ్యంగా చెప్పేమన్న ధైర్యం వచ్చాక ఈ అల్గరిథంని కంప్యూటర్ కి అర్థం అయే భాషలోకి మార్చి ఒక క్రమ పద్ధతిలో ఆదేశాలు రాయాలి. అటువంటి ఆదేశాల జాబితాని క్రమణిక (program) అంటారు.