ഒരു സാങ്കേതിക പ്രക്രിയയിൽ നിന്ന് ഒരു അൽഗോരിതം എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു? ഒരു അൽഗോരിതം എന്ന ആശയം. അൽഗോരിതത്തിന്റെ സവിശേഷതകൾ. അൽഗോരിതങ്ങളുടെ തരങ്ങൾ. അൽഗോരിതം വിവരിക്കുന്നതിനുള്ള വഴികൾ

ഒരു രീതിയും അൽഗോരിതവും തമ്മിലുള്ള വ്യത്യാസം എന്താണ്?

രീതിഒരു കൂട്ടം പ്രവർത്തനങ്ങളാണ്, കൂടാതെ അൽഗോരിതം- പ്രവർത്തനങ്ങളുടെ ഒരു പ്രത്യേക ശ്രേണി.

1. അൽഗോരിതം രീതിയെക്കാൾ വിശദമായതാണ്. ഒരു അൽഗോരിതത്തിന്റെ ഒരു ചിത്രീകരണം ഒരു ബ്ലോക്ക് ഡയഗ്രമാണ്, കൂടാതെ ഒരു രീതിയുടെ ഒരു ചിത്രീകരണം അതിന്റെ ഘടകങ്ങൾ ഒരേസമയം പ്രവർത്തിക്കുന്ന ഒരു ഉപകരണമാണ്.

2. ഒരേ രീതി നിരവധി അൽഗോരിതങ്ങൾ ഉപയോഗിച്ച് നടപ്പിലാക്കാൻ കഴിയും. കൂടുതൽ സങ്കീർണ്ണമായ രീതി, അൽഗോരിതങ്ങളുടെ രൂപത്തിൽ കൂടുതൽ സാധ്യമായ നടപ്പാക്കലുകൾ.

3. അൽഗോരിതത്തിന്റെ വിവരണത്തിൽ നിന്ന് നിങ്ങൾക്ക് രീതി മനസ്സിലാക്കാൻ കഴിയും, എന്നാൽ രീതിയുടെ വിവരണം അൽഗോരിതത്തിൽ നടപ്പിലാക്കിയ ആശയങ്ങളെക്കുറിച്ച് കൂടുതൽ പൂർണ്ണമായ ധാരണ നൽകും.

4. രീതിയിൽ പിഴവുകളൊന്നും ഉണ്ടാകില്ല. എന്നാൽ മറുവശത്ത്, രീതി തിരഞ്ഞെടുക്കുന്നത് തെറ്റായിരിക്കാം. ഒരേ ഡാറ്റ ഉപയോഗിച്ച്, മറ്റൊരു രീതി എല്ലായ്പ്പോഴും മികച്ച ഫലം നൽകിയേക്കാം, ഇതിന്റെ പ്രയോജനം ഒറ്റനോട്ടത്തിൽ വ്യക്തമാകണമെന്നില്ല. അൽഗോരിതം തിരഞ്ഞെടുക്കുന്നതും തെറ്റായിരിക്കാം.

5. ഒരേ രീതി നടപ്പിലാക്കുന്ന വ്യത്യസ്‌ത അൽഗോരിതങ്ങൾ തികച്ചും വ്യത്യസ്തമായ ഫലങ്ങൾ നൽകാം! ഇത് ഒരു ഉദാഹരണത്തിലൂടെ കാണിക്കാം.

രീതി അൽഗോരിതങ്ങളുടെ അസമത്വം കാണിക്കുന്ന ഒരു ഉദാഹരണം

ഈ രീതിയിൽ ഒരു ഇസഡ് നടപടിക്രമം അടങ്ങിയിരിക്കുന്നു, അത് ഒരു നിശ്ചിത ആംഗിൾ A കൊണ്ട് ദ്വിമാന ഇമേജ് തിരിക്കുകയും ഒരു നിശ്ചിത പോയിന്റിലേക്കുള്ള ദൂരം അനുസരിച്ച് B ഒരു തുക കൊണ്ട് ഇമേജ് പോയിന്റുകളിലേക്ക് തെളിച്ചം ചേർക്കുകയും ചെയ്യുന്നു C: B=B(x-xo, y- യോ) "തിരഞ്ഞെടുത്ത" പോയിന്റ് C യ്‌ക്ക് ഒന്നുകിൽ അകത്തും ചിത്രത്തിന്റെ അതിരുകൾക്കപ്പുറത്തും കിടക്കാം, ഇത് കാര്യങ്ങളെ മാറ്റില്ല. തിരിയുമ്പോൾ, ഇതിന് പുതിയ കോർഡിനേറ്റുകൾ ലഭിക്കുന്നു: x 0, y\.

വ്യക്തമായും, രണ്ട് അൽഗോരിതങ്ങൾ സാധ്യമാണ്: ■ ആദ്യം തന്നിരിക്കുന്ന കോണിലേക്ക് തിരിക്കുക, തുടർന്ന് തെളിച്ചം ചേർക്കുക; »ആദ്യം തെളിച്ചം ചേർക്കുക, തുടർന്ന് വികസിപ്പിക്കുക.

ദൂരം കണക്കുകൂട്ടൽ ഫലങ്ങളുടെ റൗണ്ടിംഗ് കാരണം ഈ രണ്ട് അൽഗോരിതങ്ങളുടെ ഫലങ്ങൾ അല്പം വ്യത്യാസപ്പെട്ടേക്കാം: D=((x-xo) 2 + (y-Uo) 2) 1/2, a D, =((x, -x > o ) 2 +(y"-y"o) 2) 1/2 > കൂടാതെ പൊതുവായ സാഹചര്യത്തിൽ D, D എന്നീ ഭ്രമണത്തിന് മുമ്പും ശേഷവും ഈ ദൂരം തുല്യമല്ല.

സ്‌ക്വയർ റൂട്ട് എക്‌സ്‌ട്രാക്റ്റുചെയ്യുമ്പോൾ, അവിഭാജ്യ സംഖ്യകൾ ഉണ്ടാകുന്നു, അതായത്, അനന്തമായ ഭിന്നസംഖ്യകൾ. അതിനാൽ, ഗണിതത്തിന്റെ കൃത്യത എന്തായാലും

ടിക്കുകൾ - 16 പ്രതീകങ്ങൾ അല്ലെങ്കിൽ 1024, എല്ലാം തന്നെ, D, D" എന്നിവ ചില പ്രതീകങ്ങൾക്ക് ശേഷം വൃത്താകൃതിയിലാക്കേണ്ടതുണ്ട്, ശേഷിക്കുന്ന പ്രതീകങ്ങൾ നിരസിക്കുന്നു. കൃത്യത വർദ്ധിപ്പിക്കുന്നത് D, D എന്നിവ റൗണ്ട് ചെയ്തതിന് ശേഷം ഉണ്ടാകാനുള്ള സാധ്യത കുറയാൻ ഇടയാക്കും. അസമമായ.

തെളിച്ചം ചേർത്തുള്ള റൊട്ടേഷൻ നടപടിക്രമത്തിന്റെ ഫലത്തെ അടിസ്ഥാനമാക്കി, ഒരു മാനദണ്ഡം കണക്കാക്കുകയും അതിന്റെ മൂല്യത്തിന് അനുസൃതമായി, തുടർ പ്രവർത്തനങ്ങൾക്കായുള്ള നിരവധി ഓപ്ഷനുകളിലൊന്ന് തിരഞ്ഞെടുക്കുകയും ചെയ്താൽ, രണ്ട് അൽഗോരിതങ്ങളുടെ ഫലങ്ങൾ മേലിൽ വ്യത്യാസപ്പെട്ടിരിക്കില്ല " കുറച്ച്", എന്നാൽ *. ദിനാൾ.

ഉദാഹരണത്തിന്, മാനദണ്ഡത്തിന് ടി ന്യൂ എന്ന ഫോം ഉണ്ട്<3-T 0 i d ", где T 0 | d - суммарная яркость изображения до процедуры Z, a T new - после нее. И если в первом алгоритме Ты/Tnew = 0.3333 , а во втором 0.3334, то после проверки критерия выпол­нятся разные ветви алгоритма. Результат неэквивалентности алгоритмов будет хорошо заметен.

ഒരു മാനദണ്ഡവുമില്ലെങ്കിൽപ്പോലും, ഒരു നിശ്ചിത ചക്രത്തിന്റെ ഓരോ ഘട്ടത്തിലും പിശക് ക്രമേണ ശേഖരിക്കപ്പെടും.

അതിനാൽ, ഒരേ രീതി നടപ്പിലാക്കുന്ന രണ്ട് അൽഗോരിതങ്ങൾ ചിലപ്പോൾ തികച്ചും വ്യത്യസ്തമായ ഫലങ്ങൾ ഉണ്ടാക്കും.

അൽഗോരിതം നടപ്പിലാക്കൽ - പ്രോഗ്രാം

ഒരു പ്രോഗ്രാം എന്നത് പ്രോഗ്രാമിംഗ് ഭാഷകളിലൊന്നിലെ ഒരു അൽഗോരിതത്തിന്റെ ഒരു "മൂർത്തീകരണം" ആണ്. അതിനാൽ, ഒരു കംപ്രഷൻ പ്രോഗ്രാം (കോഡെക്, അതായത് കംപ്രസ്സർ, ഡീകംപ്രസ്സർ) എഴുതുന്നതിനുള്ള പൊതു സ്കീമും അതുപോലെ പൊതുവായി ഏതെങ്കിലും പ്രോഗ്രാമും ഇപ്രകാരമാണ്:

1) പ്രശ്നത്തിന്റെ പ്രസ്താവന;

2) തിരഞ്ഞെടുപ്പ് രീതി;

3) സൃഷ്ടി അൽഗോരിതം;

4) എഴുത്ത് പ്രോഗ്രാമുകൾ;

5) ടെസ്റ്റിംഗ്, ഒപ്റ്റിമൈസേഷൻ, കോൺഫിഗറേഷൻ.

ഈ പുസ്തകം കൃത്യമായി രീതികൾ വിവരിക്കുന്നു, എന്നാൽ അവയെ ചിത്രീകരിക്കുന്നതിന്, ഒരു പ്രോസസറിനുള്ള പ്രത്യേക അൽഗോരിതങ്ങൾ നൽകിയിരിക്കുന്നു, സി പ്രോഗ്രാമിംഗ് ഭാഷയിലെ ടെക്സ്റ്റുകൾ ഉപയോഗിച്ച് ചിത്രീകരിച്ചിരിക്കുന്നു.

"അൽഗോരിതം" എന്ന വാക്ക് അൽഗോരിത്മിയിൽ നിന്നാണ് വന്നത് - അൽ-ഖോറെസ്മി എന്ന പേരിന്റെ ലാറ്റിൻ അക്ഷരവിന്യാസം, മധ്യകാല യൂറോപ്പിലെ ഏറ്റവും വലിയ ഗണിതശാസ്ത്രജ്ഞനായ ഖോറെസ്മിൽ (ആധുനിക ഉസ്ബെക്കിസ്ഥാനിലെ ഒരു നഗരം) 783-850 ൽ ജീവിച്ചിരുന്ന മുഹമ്മദ് ബെൻ മൂസ അറിയപ്പെട്ടു. "ഓൺ ഇന്ത്യൻ കൗണ്ടിംഗ്" എന്ന തന്റെ പുസ്തകത്തിൽ അറബി അക്കങ്ങൾ ഉപയോഗിച്ച് സ്വാഭാവിക സംഖ്യകൾ എഴുതുന്നതിനുള്ള നിയമങ്ങളും അവയിൽ പ്രവർത്തിക്കുന്നതിനുള്ള നിയമങ്ങളും ഒരു കോളത്തിൽ അദ്ദേഹം രൂപപ്പെടുത്തി. പിന്നീട്, പ്രാരംഭ ഡാറ്റയിൽ നിന്ന് ആവശ്യമായ ഫലം ലഭിക്കുന്നത് ഉറപ്പാക്കുന്ന പ്രവർത്തനങ്ങളുടെ ക്രമം നിർവചിക്കുന്ന ഒരു അൽഗോരിതം കൃത്യമായ കുറിപ്പടി എന്ന് വിളിക്കപ്പെടാൻ തുടങ്ങി. അൽഗോരിതം ഒരു മനുഷ്യനോ അല്ലെങ്കിൽ ഒരു ഓട്ടോമാറ്റിക് ഉപകരണമോ നടപ്പിലാക്കാൻ രൂപകൽപ്പന ചെയ്‌തേക്കാം. ഒരു അൽഗോരിതം സൃഷ്ടിക്കുന്നത്, ഏറ്റവും ലളിതമായത് പോലും, ഒരു സൃഷ്ടിപരമായ പ്രക്രിയയാണ്. ഇത് ജീവജാലങ്ങൾക്ക് മാത്രമായി ലഭ്യമാണ്, വളരെക്കാലമായി ഇത് മനുഷ്യർക്ക് മാത്രമാണെന്ന് വിശ്വസിക്കപ്പെട്ടു. നിലവിലുള്ള ഒരു അൽഗോരിതം നടപ്പിലാക്കുക എന്നതാണ് മറ്റൊരു കാര്യം. കാര്യത്തിന്റെ സാരാംശം പരിശോധിക്കാൻ ബാധ്യസ്ഥമല്ലാത്തതും ഒരുപക്ഷേ അത് മനസ്സിലാക്കാൻ കഴിയാത്തതുമായ ഒരു വിഷയത്തെയോ വസ്തുവിനെയോ ഇത് ഏൽപ്പിക്കാൻ കഴിയും. അത്തരമൊരു വിഷയം അല്ലെങ്കിൽ വസ്തുവിനെ സാധാരണയായി വിളിക്കുന്നു ഔപചാരിക പ്രകടനം.ഒരു ഔപചാരിക പ്രകടനം നടത്തുന്നയാളുടെ ഉദാഹരണം ഒരു ഓട്ടോമാറ്റിക് വാഷിംഗ് മെഷീനാണ്, നിങ്ങൾ അതിൽ പൊടി ഇടാൻ മറന്നാലും, അതിൽ നിർദ്ദേശിച്ചിരിക്കുന്ന പ്രവർത്തനങ്ങൾ കർശനമായി നടപ്പിലാക്കുന്നു. ഒരു വ്യക്തിക്ക് ഒരു ഔപചാരിക പ്രകടനക്കാരനായും പ്രവർത്തിക്കാൻ കഴിയും, എന്നാൽ ഒന്നാമതായി, കമ്പ്യൂട്ടർ ഉൾപ്പെടെയുള്ള വിവിധ ഓട്ടോമാറ്റിക് ഉപകരണങ്ങൾ ഔപചാരിക പ്രകടനക്കാരാണ്. ഓരോ അൽഗോരിതവും ഒരു പ്രത്യേക പ്രകടനക്കാരനെ മനസ്സിൽ വെച്ചാണ് സൃഷ്ടിച്ചിരിക്കുന്നത്.ഒരു അവതാരകന് ചെയ്യാൻ കഴിയുന്ന പ്രവർത്തനങ്ങളെ അവന്റെ പേര് എന്ന് വിളിക്കുന്നു അവന്റെ അനുവദനീയമായ പ്രവർത്തനങ്ങൾ. അനുവദനീയമായ പ്രവർത്തനങ്ങളുടെ ഒരു കൂട്ടം പെർഫോമർ കമാൻഡുകളുടെ സിസ്റ്റം.തന്നിരിക്കുന്ന പെർഫോമർക്ക് സ്വീകാര്യമായ പ്രവർത്തനങ്ങൾ മാത്രമേ അൽഗോരിതത്തിൽ അടങ്ങിയിരിക്കാവൂ.

പ്രകടനം നടത്തുന്നയാൾക്ക് പ്രവർത്തനങ്ങൾ ചെയ്യാൻ കഴിയുന്ന വസ്തുക്കൾ എന്ന് വിളിക്കപ്പെടുന്നവയാണ് പ്രകടനക്കാരന്റെ അന്തരീക്ഷം.ഗണിതശാസ്ത്രത്തിൽ കാണപ്പെടുന്ന അൽഗോരിതങ്ങൾക്കായി, ഒരു പ്രത്യേക പ്രകടനക്കാരന്റെ പരിസ്ഥിതി വ്യത്യസ്ത സ്വഭാവങ്ങളുടെ സംഖ്യകളാകാം - സ്വാഭാവികം, യഥാർത്ഥം മുതലായവ, അക്ഷരങ്ങൾ, അക്ഷരീയ പദപ്രയോഗങ്ങൾ, സമവാക്യങ്ങൾ, ഐഡന്റിറ്റികൾ മുതലായവ.

മുകളിൽ നൽകിയിരിക്കുന്ന ഒരു അൽഗോരിതത്തിന്റെ നിർവചനം കർശനമായി കണക്കാക്കാൻ കഴിയില്ല - "കൃത്യമായ കുറിപ്പടി" അല്ലെങ്കിൽ "ആവശ്യമായ ഫലം ഉറപ്പാക്കുന്ന പ്രവർത്തനങ്ങളുടെ ക്രമം" എന്താണെന്ന് പൂർണ്ണമായും വ്യക്തമല്ല. അതിനാൽ, മറ്റ് നിർദ്ദേശങ്ങളിൽ നിന്ന് അൽഗോരിതങ്ങളെ വേർതിരിച്ചറിയാൻ അൽഗോരിതങ്ങളുടെ നിരവധി പൊതു സവിശേഷതകൾ സാധാരണയായി രൂപപ്പെടുത്തിയിട്ടുണ്ട്.

ഈ ഗുണങ്ങൾ ഇവയാണ്:

    വിവേചനാധികാരം (നിർത്തൽ, വേർപിരിയൽ)- അൽഗോരിതം ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പ്രക്രിയയെ ലളിതമായ (അല്ലെങ്കിൽ മുമ്പ് നിർവചിച്ച) ഘട്ടങ്ങളുടെ തുടർച്ചയായ നിർവ്വഹണമായി പ്രതിനിധീകരിക്കണം. അൽഗോരിതം നൽകുന്ന ഓരോ പ്രവർത്തനവും മുമ്പത്തെ എക്സിക്യൂഷൻ പൂർത്തിയാക്കിയതിന് ശേഷം മാത്രമേ നടപ്പിലാക്കുകയുള്ളൂ.

    ഉറപ്പ്- അൽഗോരിതത്തിന്റെ ഓരോ നിയമവും വ്യക്തവും അവ്യക്തവും ഏകപക്ഷീയതയ്ക്ക് ഇടം നൽകാത്തതുമായിരിക്കണം. ഈ പ്രോപ്പർട്ടി കാരണം, അൽഗോരിതം നിർവ്വഹിക്കുന്നത് മെക്കാനിക്കൽ സ്വഭാവമുള്ളതാണ്, കൂടാതെ പരിഹരിക്കപ്പെടുന്ന പ്രശ്നത്തെക്കുറിച്ചുള്ള അധിക നിർദ്ദേശങ്ങളോ വിവരങ്ങളോ ആവശ്യമില്ല.

    പ്രകടനം (അവയവം)- അൽഗോരിതം പരിമിതമായ ഘട്ടങ്ങളിലൂടെ പ്രശ്നം പരിഹരിക്കാൻ ഇടയാക്കണം.

    മാസ് കഥാപാത്രം- പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള അൽഗോരിതം ഒരു പൊതു രൂപത്തിലാണ് വികസിപ്പിച്ചിരിക്കുന്നത്, അതായത്, പ്രാരംഭ ഡാറ്റയിൽ മാത്രം വ്യത്യാസമുള്ള ഒരു പ്രത്യേക ക്ലാസ് പ്രശ്നങ്ങൾക്ക് ഇത് ബാധകമായിരിക്കണം. ഈ സാഹചര്യത്തിൽ, പ്രാരംഭ ഡാറ്റ എന്ന് വിളിക്കപ്പെടുന്ന ഒരു പ്രത്യേക ഏരിയയിൽ നിന്ന് തിരഞ്ഞെടുക്കാം അൽഗോരിതത്തിന്റെ പ്രയോഗക്ഷമതയുടെ മേഖല.

ഈ ഗുണങ്ങളെ അടിസ്ഥാനമാക്കി, ഒരു അൽഗൊരിതത്തിന്റെ നിർവചനം ചിലപ്പോൾ നൽകാറുണ്ട്, ഉദാഹരണത്തിന്: "ഒരു അൽഗോരിതം എന്നത് ഗണിതശാസ്ത്രപരമോ യുക്തിപരമോ സംയോജിതമോ ആയ പ്രവർത്തനങ്ങളുടെ ഒരു ശ്രേണിയാണ്, അത് അവയുടെ നിർണ്ണായകത, ബഹുജന സ്വഭാവം, ദിശാബോധം, എല്ലാ പ്രശ്നങ്ങളുടെയും പരിഹാരത്തിലേക്ക് നയിക്കുന്നു. ഒരു നിശ്ചിത എണ്ണം ഘട്ടങ്ങളിൽ നൽകിയിരിക്കുന്ന ക്ലാസ്. "അൽഗോരിതം" എന്ന ആശയത്തിന്റെ ഈ വ്യാഖ്യാനം അപൂർണ്ണവും കൃത്യമല്ലാത്തതുമാണ്. ഒന്നാമതായി, ഏതെങ്കിലും പ്രശ്നത്തിന്റെ പരിഹാരവുമായി ഒരു അൽഗോരിതം ബന്ധപ്പെടുത്തുന്നത് തെറ്റാണ്. അൽഗോരിതം ഒരു പ്രശ്നവും പരിഹരിച്ചേക്കില്ല. രണ്ടാമതായി, "പിണ്ഡം" എന്ന ആശയം അൽഗോരിതങ്ങളെ അല്ല, പൊതുവെ ഗണിതശാസ്ത്ര രീതികളെയാണ് സൂചിപ്പിക്കുന്നത്. ഗണിതശാസ്ത്ര രീതികൾ ഉപയോഗിച്ച് പരിശീലിക്കുന്ന പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നത് അമൂർത്തതയെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് - ഒരു നിശ്ചിത ശ്രേണിയിലെ പ്രതിഭാസങ്ങളുടെ സ്വഭാവ സവിശേഷതകളായ നിരവധി അവശ്യ സവിശേഷതകൾ ഞങ്ങൾ തിരിച്ചറിയുകയും ഈ സവിശേഷതകളെ അടിസ്ഥാനമാക്കി ഒരു ഗണിതശാസ്ത്ര മാതൃക നിർമ്മിക്കുകയും ഓരോ നിർദ്ദിഷ്ട പ്രതിഭാസത്തിന്റെയും അപ്രധാന സവിശേഷതകൾ നിരസിക്കുകയും ചെയ്യുന്നു. ഈ അർത്ഥത്തിൽ, ഏതൊരു ഗണിതശാസ്ത്ര മോഡലിനും ബഹുജന ഉൽപാദനത്തിന്റെ സ്വത്തുണ്ട്. നിർമ്മിച്ച മോഡലിന്റെ ചട്ടക്കൂടിനുള്ളിൽ, ഞങ്ങൾ ഒരു പ്രശ്നം പരിഹരിക്കുകയും ഒരു അൽഗോരിതം രൂപത്തിൽ പരിഹാരം അവതരിപ്പിക്കുകയും ചെയ്താൽ, പരിഹാരം ഗണിതശാസ്ത്ര രീതികളുടെ സ്വഭാവം കാരണം "ബൃഹത്തായത്" ആയിരിക്കും, അല്ലാതെ "പിണ്ഡ സ്വഭാവം" മൂലമല്ല. അൽഗോരിതം.

ഒരു അൽഗോരിതം എന്ന ആശയം വിശദീകരിക്കുമ്പോൾ, അവർ പലപ്പോഴും "ഗാർഹിക അൽഗോരിതങ്ങളുടെ" ഉദാഹരണങ്ങൾ നൽകുന്നു: വെള്ളം തിളപ്പിക്കുക, ഒരു താക്കോൽ ഉപയോഗിച്ച് വാതിൽ തുറക്കുക, തെരുവ് മുറിച്ചുകടക്കുക മുതലായവ: ഏതെങ്കിലും മരുന്ന് അല്ലെങ്കിൽ പാചക പാചകക്കുറിപ്പുകൾ തയ്യാറാക്കുന്നതിനുള്ള പാചകക്കുറിപ്പുകൾ അൽഗോരിതങ്ങളാണ്. എന്നാൽ ഒരു കുറിപ്പടി പ്രകാരം ഒരു മരുന്ന് തയ്യാറാക്കാൻ, നിങ്ങൾ ഫാർമക്കോളജി അറിയേണ്ടതുണ്ട്, ഒരു പാചക പാചകക്കുറിപ്പ് അനുസരിച്ച് ഒരു വിഭവം തയ്യാറാക്കാൻ, നിങ്ങൾ എങ്ങനെ പാചകം ചെയ്യണമെന്ന് അറിയേണ്ടതുണ്ട്. അതേസമയം, ഒരു അൽഗോരിതം നടപ്പിലാക്കുന്നത് ഒരു ചിന്താശൂന്യവും യാന്ത്രികവുമായ നിർദ്ദേശങ്ങളുടെ നിർവ്വഹണമാണ്, തത്വത്തിൽ, ഒരു അറിവും ആവശ്യമില്ല. പാചക പാചകക്കുറിപ്പുകൾ അൽഗോരിതങ്ങളാണെങ്കിൽ, ഒരു പാചകക്കാരനെപ്പോലെ ഞങ്ങൾക്ക് അത്തരമൊരു പ്രത്യേകത ഉണ്ടാകുമായിരുന്നില്ല.

ഗണിത പ്രവർത്തനങ്ങൾ അല്ലെങ്കിൽ ജ്യാമിതീയ നിർമ്മാണങ്ങൾ നടത്തുന്നതിനുള്ള നിയമങ്ങൾ അൽഗോരിതങ്ങളാണ്. അതേ സമയം, ചോദ്യത്തിന് ഉത്തരം ലഭിച്ചിട്ടില്ല: ഒരു അൽഗോരിതം എന്ന ആശയം "രീതി", "രീതി", "നിയമം" തുടങ്ങിയ ആശയങ്ങളിൽ നിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു. "അൽഗോരിതം", "രീതി", "നിയമം" എന്നീ പദങ്ങൾ ഒരേ കാര്യം (അതായത് അവ പര്യായങ്ങളാണ്) പ്രകടിപ്പിക്കുന്നു എന്ന പ്രസ്താവന നിങ്ങൾക്ക് കാണാൻ കഴിയും, എന്നിരുന്നാലും അത്തരമൊരു പ്രസ്താവന "അൽഗരിതത്തിന്റെ ഗുണവിശേഷതകൾക്ക്" വിരുദ്ധമാണ്.

"ഒരു അൽഗോരിതത്തിന്റെ ഗുണവിശേഷതകൾ" എന്ന പ്രയോഗം തന്നെ തെറ്റാണ്. വസ്തുനിഷ്ഠമായി നിലവിലുള്ള യാഥാർത്ഥ്യങ്ങൾക്ക് ഗുണങ്ങളുണ്ട്. ഉദാഹരണത്തിന്, ഒരു പദാർത്ഥത്തിന്റെ ഗുണങ്ങളെക്കുറിച്ച് നമുക്ക് സംസാരിക്കാം. നമ്മുടെ ലക്ഷ്യങ്ങൾ നേടുന്നതിനായി നാം നിർമ്മിക്കുന്ന ഒരു കൃത്രിമ ഘടനയാണ് അൽഗോരിതം. ഒരു അൽഗോരിതം അതിന്റെ ഉദ്ദേശ്യം നിറവേറ്റുന്നതിന്, അത് ചില നിയമങ്ങൾക്കനുസൃതമായി നിർമ്മിക്കണം. അതിനാൽ, അൽഗോരിതത്തിന്റെ ഗുണങ്ങളെക്കുറിച്ചല്ല, അൽഗോരിതം നിർമ്മിക്കുന്നതിനുള്ള നിയമങ്ങളെക്കുറിച്ചോ അല്ലെങ്കിൽ അൽഗോരിതത്തിന്റെ ആവശ്യകതകളെക്കുറിച്ചോ നമ്മൾ സംസാരിക്കേണ്ടതുണ്ട്.

ആദ്യ നിയമം- ഒരു അൽഗോരിതം നിർമ്മിക്കുമ്പോൾ, ആദ്യം അൽഗോരിതം പ്രവർത്തിക്കുന്ന ഒരു കൂട്ടം ഒബ്ജക്റ്റുകൾ വ്യക്തമാക്കേണ്ടത് ആവശ്യമാണ്. ഈ ഒബ്‌ജക്‌റ്റുകളുടെ ഔപചാരിക (കോഡ് ചെയ്‌ത) പ്രാതിനിധ്യത്തെ ഡാറ്റ എന്ന് വിളിക്കുന്നു. ഇൻപുട്ട് എന്ന് വിളിക്കപ്പെടുന്ന ഒരു പ്രത്യേക സെറ്റ് ഡാറ്റയുമായി അൽഗോരിതം പ്രവർത്തിക്കാൻ തുടങ്ങുന്നു, അതിന്റെ പ്രവർത്തനത്തിന്റെ ഫലമായി ഡാറ്റ ഉൽപ്പാദിപ്പിക്കുന്നു, അതിനെ ഔട്ട്പുട്ട് എന്ന് വിളിക്കുന്നു. അങ്ങനെ, അൽഗോരിതം ഇൻപുട്ട് ഡാറ്റയെ ഔട്ട്പുട്ട് ഡാറ്റയിലേക്ക് മാറ്റുന്നു.

"രീതികൾ", "രീതികൾ" എന്നിവയിൽ നിന്ന് അൽഗോരിതങ്ങൾ ഉടനടി വേർതിരിക്കാൻ ഈ നിയമം നിങ്ങളെ അനുവദിക്കുന്നു. ഇൻപുട്ട് ഡാറ്റ ഔപചാരികമാക്കുന്നത് വരെ, ഞങ്ങൾക്ക് ഒരു അൽഗോരിതം നിർമ്മിക്കാൻ കഴിയില്ല.

രണ്ടാമത്തെ നിയമം- അൽഗോരിതം പ്രവർത്തിക്കാൻ മെമ്മറി ആവശ്യമാണ്. അൽഗോരിതം പ്രവർത്തിക്കാൻ തുടങ്ങുന്ന ഇൻപുട്ട് ഡാറ്റ, ഇന്റർമീഡിയറ്റ് ഡാറ്റ, അൽഗോരിതത്തിന്റെ ഫലമായ ഔട്ട്പുട്ട് ഡാറ്റ എന്നിവ മെമ്മറി സംഭരിക്കുന്നു. മെമ്മറി വ്യതിരിക്തമാണ്, അതായത്. വ്യക്തിഗത സെല്ലുകൾ ഉൾക്കൊള്ളുന്നു. പേരിട്ടിരിക്കുന്ന മെമ്മറി സെല്ലിനെ വേരിയബിൾ എന്ന് വിളിക്കുന്നു. അൽഗോരിതങ്ങളുടെ സിദ്ധാന്തത്തിൽ, മെമ്മറി വലുപ്പങ്ങൾ പരിമിതമല്ല, അതായത്, പ്രവർത്തനത്തിന് ആവശ്യമായ ഏത് അളവിലുള്ള മെമ്മറിയും നമുക്ക് അൽഗോരിതം നൽകാൻ കഴിയുമെന്ന് വിശ്വസിക്കപ്പെടുന്നു.

സ്കൂളിൽ "അൽഗരിതങ്ങളുടെ സിദ്ധാന്തം" ഈ രണ്ട് നിയമങ്ങളും പരിഗണിക്കില്ല. അതേ സമയം, ഈ നിയമങ്ങൾ നടപ്പിലാക്കുന്നതിലൂടെ അൽഗോരിതം (പ്രോഗ്രാമിംഗ്) ഉള്ള പ്രായോഗിക പ്രവർത്തനം ആരംഭിക്കുന്നു. പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ, ഡിക്ലറേറ്റീവ് ഓപ്പറേറ്റർമാർ (വേരിയബിൾ ഡിക്ലറേഷൻ ഓപ്പറേറ്റർമാർ) മെമ്മറി അലോക്കേഷൻ നടത്തുന്നു. ബേസിക് ഭാഷയിൽ, എല്ലാ വേരിയബിളുകളും വിവരിച്ചിട്ടില്ല; സാധാരണയായി അറേകൾ മാത്രമേ വിവരിക്കുകയുള്ളൂ. എന്നിട്ടും, പ്രോഗ്രാം സമാരംഭിക്കുമ്പോൾ, ഭാഷാ വിവർത്തകൻ പ്രോഗ്രാം വാചകത്തിലെ എല്ലാ ഐഡന്റിഫയറുകളും വിശകലനം ചെയ്യുകയും അനുബന്ധ വേരിയബിളുകൾക്കായി മെമ്മറി അനുവദിക്കുകയും ചെയ്യുന്നു.

മൂന്നാമത്തെ നിയമം- വിവേചനാധികാരം. വ്യക്തിഗത ഘട്ടങ്ങളിൽ നിന്നാണ് അൽഗോരിതം നിർമ്മിച്ചിരിക്കുന്നത് (പ്രവർത്തനങ്ങൾ, പ്രവർത്തനങ്ങൾ, കമാൻഡുകൾ). തീർച്ചയായും അൽഗോരിതം നിർമ്മിക്കുന്ന നിരവധി ഘട്ടങ്ങളുണ്ട്.

നാലാമത്തെ നിയമം- ഡിറ്റർമിനിസം. ഓരോ ഘട്ടത്തിനും ശേഷം, ഏത് ഘട്ടമാണ് അടുത്തതായി നടപ്പിലാക്കുന്നതെന്ന് നിങ്ങൾ സൂചിപ്പിക്കണം, അല്ലെങ്കിൽ ഒരു സ്റ്റോപ്പ് കമാൻഡ് നൽകുക.

അഞ്ചാമത്തെ ഭരണം- ഒത്തുചേരൽ (ഫലപ്രാപ്തി). പരിമിതമായ ഘട്ടങ്ങൾക്ക് ശേഷം അൽഗോരിതം അവസാനിപ്പിക്കണം. ഈ സാഹചര്യത്തിൽ, അൽഗോരിതത്തിന്റെ ഫലമായി കണക്കാക്കുന്നത് സൂചിപ്പിക്കേണ്ടത് ആവശ്യമാണ്.

അതിനാൽ, അൽഗോരിതം സിദ്ധാന്തത്തിൽ നിർവചിക്കപ്പെടാത്ത ഒരു ആശയമാണ് അൽഗോരിതം. ഓരോ നിർദ്ദിഷ്ട ഇൻപുട്ട് ഡാറ്റയെയും ഒരു നിശ്ചിത ഔട്ട്പുട്ട് ഡാറ്റയുമായി അൽഗോരിതം ബന്ധപ്പെടുത്തുന്നു, അതായത്, ഒരു ഫംഗ്ഷൻ കണക്കാക്കുന്നു (നടത്തുന്നു). അൽഗോരിതം സിദ്ധാന്തത്തിലെ പ്രത്യേക പ്രശ്നങ്ങൾ പരിഗണിക്കുമ്പോൾ, അൽഗോരിതത്തിന്റെ ചില പ്രത്യേക മാതൃകകൾ ഞങ്ങൾ എപ്പോഴും മനസ്സിൽ സൂക്ഷിക്കുന്നു.

ഒരു കമ്പ്യൂട്ടറിലെ ഏത് ജോലിയും വിവര പ്രോസസ്സിംഗ് ആണ്. ഒരു കമ്പ്യൂട്ടറിന്റെ പ്രവർത്തനം ഇനിപ്പറയുന്ന രീതിയിൽ ചിത്രീകരിക്കാം:

ഇടതുവശത്തുള്ള "വിവരങ്ങളും" വലതുവശത്തുള്ള "വിവരങ്ങളും" വ്യത്യസ്ത വിവരങ്ങളാണ്. കമ്പ്യൂട്ടർ പുറത്തുനിന്നുള്ള വിവരങ്ങൾ മനസ്സിലാക്കുകയും അതിന്റെ പ്രവർത്തനത്തിന്റെ ഫലമായി പുതിയ വിവരങ്ങൾ ഉത്പാദിപ്പിക്കുകയും ചെയ്യുന്നു. ഒരു കമ്പ്യൂട്ടർ പ്രവർത്തിക്കുന്ന വിവരങ്ങളെ "ഡാറ്റ" എന്ന് വിളിക്കുന്നു.

കമ്പ്യൂട്ടർ ചില നിയമങ്ങൾക്കനുസൃതമായി വിവരങ്ങൾ പരിവർത്തനം ചെയ്യുന്നു. ഈ നിയമങ്ങൾ (പ്രവർത്തനങ്ങൾ, കമാൻഡുകൾ) കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിൽ മുൻകൂട്ടി സൂക്ഷിക്കുന്നു. മൊത്തത്തിൽ, വിവരങ്ങൾ രൂപാന്തരപ്പെടുത്തുന്നതിനുള്ള ഈ നിയമങ്ങളെ അൽഗോരിതം എന്ന് വിളിക്കുന്നു. കമ്പ്യൂട്ടറിൽ പ്രവേശിക്കുന്ന ഡാറ്റയെ ഇൻപുട്ട് ഡാറ്റ എന്ന് വിളിക്കുന്നു. ഒരു കമ്പ്യൂട്ടറിന്റെ പ്രവർത്തനത്തിന്റെ ഫലം ഔട്ട്പുട്ട് ഡാറ്റയാണ്. അങ്ങനെ, അൽഗോരിതം ഇൻപുട്ട് ഡാറ്റയെ ഔട്ട്പുട്ട് ഡാറ്റയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു:


ഇപ്പോൾ നമുക്ക് ചോദ്യം ചോദിക്കാം: ഒരു വ്യക്തിക്ക് വിവരങ്ങൾ പ്രോസസ്സ് ചെയ്യാൻ കഴിയുമോ? തീർച്ചയായും അതിന് കഴിയും. ഒരു സാധാരണ സ്കൂൾ പാഠമാണ് ഒരു ഉദാഹരണം: അധ്യാപകൻ ഒരു ചോദ്യം ചോദിക്കുന്നു (ഇൻപുട്ട്), വിദ്യാർത്ഥി ഉത്തരം നൽകുന്നു (ഔട്ട്പുട്ട്). ഏറ്റവും ലളിതമായ ഉദാഹരണം: അധ്യാപകൻ ഒരു ടാസ്ക് നൽകുന്നു - 6 നെ 3 കൊണ്ട് ഗുണിച്ച് ഫലം ബോർഡിൽ എഴുതുക. ഇവിടെ 6, 3 അക്കങ്ങൾ ഇൻപുട്ട് ഡാറ്റയാണ്, ഗുണന പ്രവർത്തനം അൽഗോരിതം ആണ്, ഗുണനത്തിന്റെ ഫലം ഔട്ട്പുട്ട് ഡാറ്റയാണ്:


ഉപസംഹാരം: ഗണിതശാസ്ത്ര പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നത് വിവര പരിവർത്തനത്തിന്റെ ഒരു പ്രത്യേക സാഹചര്യമാണ്. ഒരു കമ്പ്യൂട്ടർ (ഇംഗ്ലീഷിൽ കാൽക്കുലേറ്റർ എന്നാണ് അർത്ഥമാക്കുന്നത്, റഷ്യൻ ഭാഷയിൽ - കമ്പ്യൂട്ടർ, ഇലക്ട്രോണിക് കമ്പ്യൂട്ടർ) ഗണിതശാസ്ത്ര കണക്കുകൂട്ടലുകൾക്കായി പ്രത്യേകം സൃഷ്ടിച്ചു.

ഇനി പറയുന്ന പ്രശ്നം നമുക്ക് പരിഗണിക്കാം.

ക്ലാസിന്റെ നീളം 7 മീറ്റർ, വീതി - 5 മീറ്റർ, ഉയരം - 3 മീറ്റർ. ക്ലാസിൽ 25 കുട്ടികളുണ്ട്. എത്ര ചതുരശ്ര മീറ്റർ മീറ്റർ വിസ്തീർണ്ണവും എത്ര ക്യുബിക് മീറ്ററും. ഒരു വിദ്യാർത്ഥിക്ക് മീറ്റർ വായു?

പ്രശ്നത്തിന്റെ പരിഹാരം:

1. ക്ലാസിന്റെ വിസ്തീർണ്ണം കണക്കാക്കുക:

2. ക്ലാസിന്റെ വോളിയം കണക്കാക്കുക:

3. ഒരു വിദ്യാർത്ഥിക്ക് എത്ര ചതുരശ്ര മീറ്റർ വിസ്തീർണ്ണം കണക്കാക്കുക:

4. എത്ര ക്യുബിക് മീറ്റർ കണക്കാക്കുക. ഒരു വിദ്യാർത്ഥിക്ക് മീറ്റർ വായു:

105: 25 = 4,2
ഉത്തരം: ഒരു വിദ്യാർത്ഥിക്ക് 1.4 ചതുരശ്ര മീറ്റർ ഉണ്ട്. മീറ്റർ വിസ്തീർണ്ണവും 4.2 ക്യുബിക് മീറ്ററും. മീറ്റർ വായു.

ഞങ്ങൾ ഇപ്പോൾ കണക്കുകൂട്ടലുകൾ നീക്കം ചെയ്യുകയും "പ്രവർത്തനങ്ങൾ" മാത്രം അവശേഷിപ്പിക്കുകയും ചെയ്താൽ, നമുക്ക് ഒരു അൽഗോരിതം ലഭിക്കും - തന്നിരിക്കുന്ന പ്രശ്നം പരിഹരിക്കാൻ ചെയ്യേണ്ട പ്രവർത്തനങ്ങളുടെ ഒരു ലിസ്റ്റ്.

ഏതെങ്കിലും ഗണിതശാസ്ത്ര പ്രശ്നം പരിഹരിക്കുമ്പോൾ, ഞങ്ങൾ ഒരു പരിഹാര അൽഗോരിതം സൃഷ്ടിക്കുന്നുവെന്ന് ഇത് മാറുന്നു. എന്നാൽ മുമ്പ്, ഞങ്ങൾ ഈ അൽഗോരിതം സ്വയം നിർവ്വഹിച്ചു, അതായത്, ഉത്തരത്തിനുള്ള പരിഹാരം ഞങ്ങൾ കൊണ്ടുവന്നു. ഇപ്പോൾ ഞങ്ങൾ ചെയ്യേണ്ടത് മാത്രമേ എഴുതുകയുള്ളൂ, പക്ഷേ ഞങ്ങൾ കണക്കുകൂട്ടലുകൾ നടത്തില്ല. കമ്പ്യൂട്ടർ കണക്കുകൂട്ടലുകൾ നടത്തും. ഞങ്ങളുടെ അൽഗോരിതം കമ്പ്യൂട്ടറിലേക്കുള്ള നിർദ്ദേശങ്ങളുടെ (കമാൻഡുകൾ) ആയിരിക്കും.

നമ്മൾ ഏതെങ്കിലും മൂല്യം കണക്കാക്കുമ്പോൾ, അതിന്റെ ഫലം പേപ്പറിൽ എഴുതുന്നു. കമ്പ്യൂട്ടർ അതിന്റെ പ്രവർത്തനത്തിന്റെ ഫലം ഒരു വേരിയബിളിന്റെ രൂപത്തിൽ മെമ്മറിയിൽ രേഖപ്പെടുത്തുന്നു. അതിനാൽ, ഓരോ അൽഗോരിതം കമാൻഡിലും ഫലം എഴുതിയിരിക്കുന്ന വേരിയബിളിൽ ഒരു സൂചന ഉണ്ടായിരിക്കണം. ഞങ്ങളുടെ പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള അൽഗോരിതം ഇതുപോലെ കാണപ്പെടും:

1. ക്ലാസ്സിന്റെ വിസ്തീർണ്ണം കണക്കാക്കി അത് S എന്ന വേരിയബിളിൽ എഴുതുക.

2. ക്ലാസ്സിന്റെ വോളിയം കണക്കാക്കി അത് V എന്ന വേരിയബിളിലേക്ക് എഴുതുക.

3. ഒരു വിദ്യാർത്ഥിക്ക് എത്ര ചതുരശ്ര മീറ്റർ വിസ്തീർണ്ണം കണക്കാക്കി അത് വേരിയബിൾ S1 ൽ എഴുതുക.

4. എത്ര ക്യുബിക് മീറ്റർ കണക്കാക്കുക. ഓരോ വിദ്യാർത്ഥിക്കും മീറ്റർ വായുവും വേരിയബിളിൽ V1-ൽ രേഖപ്പെടുത്തിയിട്ടുണ്ട്.

5. വേരിയബിളുകൾ S1, V1 എന്നിവയുടെ മൂല്യങ്ങൾ പ്രദർശിപ്പിക്കുക.

റഷ്യൻ ഭാഷയിൽ നിന്ന് അൽഗോരിതം കമാൻഡുകൾ കമ്പ്യൂട്ടറിന് മനസ്സിലാക്കാൻ കഴിയുന്ന ഒരു ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യുക എന്നതാണ് ഇപ്പോൾ അവശേഷിക്കുന്നത്, നിങ്ങൾക്ക് ഒരു പ്രോഗ്രാം ലഭിക്കും. "മനുഷ്യ" ഭാഷയിൽ നിന്ന് "കമ്പ്യൂട്ടർ" ഭാഷയിലേക്ക് അൽഗോരിതം വിവർത്തനം ചെയ്യുന്നതാണ് പ്രോഗ്രാമിംഗ്.

ഇൻപുട്ട് ഡാറ്റയെ ഔട്ട്പുട്ട് ഡാറ്റയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതായി അൽഗോരിതം പ്രവർത്തനത്തിന്റെ വ്യാഖ്യാനം സ്വാഭാവികമായും "പ്രശ്ന പ്രസ്താവന" എന്ന ആശയം പരിഗണിക്കാൻ നമ്മെ പ്രേരിപ്പിക്കുന്നു. ഒരു പ്രശ്നം പരിഹരിക്കുന്നതിന് ഒരു അൽഗോരിതം സൃഷ്ടിക്കുന്നതിന്, ഇൻപുട്ട് ഡാറ്റയാകുന്ന ആ അളവുകൾ വ്യവസ്ഥയിൽ നിന്ന് തിരഞ്ഞെടുക്കുകയും കൃത്യമായി കണ്ടെത്തേണ്ട അളവുകൾ കൃത്യമായി രൂപപ്പെടുത്തുകയും ചെയ്യേണ്ടത് ആവശ്യമാണ്. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, പ്രശ്നത്തിന്റെ അവസ്ഥ രൂപപ്പെടുത്തേണ്ടത് “നൽകിയതാണ്... ആവശ്യമാണ്” - ഇതാണ് പ്രശ്നത്തിന്റെ പ്രസ്താവന.

ഒരു കമ്പ്യൂട്ടറിൽ അൽഗോരിതം പ്രയോഗിച്ചു- കൃത്യമായ കുറിപ്പടി, അതായത്. അവയുടെ ആൾട്ടർനേഷനായുള്ള ഒരു കൂട്ടം പ്രവർത്തനങ്ങളും നിയമങ്ങളും, അതിന്റെ സഹായത്തോടെ, ചില പ്രാരംഭ ഡാറ്റയിൽ നിന്ന് ആരംഭിച്ച്, ഒരു നിശ്ചിത തരത്തിലുള്ള ഏത് പ്രശ്‌നവും പരിഹരിക്കാൻ കഴിയും.

ലോജിക്കൽ-ഗണിതശാസ്ത്ര ഉപകരണങ്ങളായി അൽഗോരിതങ്ങളുടെ തരങ്ങൾ മനുഷ്യന്റെ പ്രവർത്തനത്തിന്റെയും ട്രെൻഡുകളുടെയും സൂചിപ്പിച്ച ഘടകങ്ങളെ പ്രതിഫലിപ്പിക്കുന്നു, കൂടാതെ ലക്ഷ്യം, പ്രശ്നത്തിന്റെ പ്രാരംഭ അവസ്ഥകൾ, അത് പരിഹരിക്കാനുള്ള വഴികൾ, പ്രകടനം നടത്തുന്നയാളുടെ പ്രവർത്തനങ്ങൾ എന്നിവയെ ആശ്രയിച്ച് അൽഗോരിതങ്ങൾ തന്നെ. ഇനിപ്പറയുന്ന രീതിയിൽ വിഭജിച്ചിരിക്കുന്നു:

    മെക്കാനിക്കൽ അൽഗോരിതങ്ങൾ, അല്ലെങ്കിൽ നിർണ്ണായകമായ, കർക്കശമായ (ഉദാഹരണത്തിന്, ഒരു യന്ത്രം, എഞ്ചിൻ മുതലായവയുടെ പ്രവർത്തനത്തിനുള്ള ഒരു അൽഗോരിതം);

    ഫ്ലെക്സിബിൾ അൽഗോരിതങ്ങൾ, ഉദാഹരണത്തിന് സ്റ്റോക്കാസ്റ്റിക്, അതായത്. പ്രോബബിലിസ്റ്റിക് ആൻഡ് ഹ്യൂറിസ്റ്റിക്.

ഒരു മെക്കാനിക്കൽ അൽഗോരിതം ചില പ്രവർത്തനങ്ങൾ വ്യക്തമാക്കുന്നു, അവയെ ഏകീകൃതവും വിശ്വസനീയവുമായ ക്രമത്തിൽ നിയുക്തമാക്കുന്നു, അതുവഴി അൽഗോരിതം വികസിപ്പിച്ച പ്രക്രിയയുടെ വ്യവസ്ഥകളും ടാസ്ക്കുകളും പാലിച്ചാൽ അവ്യക്തമായ ആവശ്യമുള്ളതോ ആവശ്യമുള്ളതോ ആയ ഫലം നൽകുന്നു.

    പ്രോബബിലിസ്റ്റിക് (സ്റ്റോക്കാസ്റ്റിക്) അൽഗോരിതംഒരു പ്രശ്നം പല തരത്തിൽ പരിഹരിക്കുന്നതിനുള്ള ഒരു പ്രോഗ്രാം നൽകുന്നു അല്ലെങ്കിൽ ഒരു ഫലത്തിന്റെ സാധ്യതയുള്ള നേട്ടത്തിലേക്ക് നയിക്കുന്ന രീതികൾ.

    ഹ്യൂറിസ്റ്റിക് അൽഗോരിതം("യുറേക്ക" എന്ന ഗ്രീക്ക് പദത്തിൽ നിന്ന്) ഒരു അൽഗോരിതം ആണ്, അതിൽ ആക്ഷൻ പ്രോഗ്രാമിന്റെ അന്തിമ ഫലത്തിന്റെ നേട്ടം വ്യക്തമായി മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടില്ല, അതുപോലെ തന്നെ പ്രവർത്തനങ്ങളുടെ മുഴുവൻ ക്രമവും സൂചിപ്പിച്ചിട്ടില്ല, കൂടാതെ അവതാരകന്റെ എല്ലാ പ്രവർത്തനങ്ങളും തിരിച്ചറിയാൻ കഴിയില്ല. . ഹ്യൂറിസ്റ്റിക് അൽഗോരിതങ്ങളിൽ, ഉദാഹരണത്തിന്, നിർദ്ദേശങ്ങളും കുറിപ്പുകളും ഉൾപ്പെടുന്നു. സമാന പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിൽ സമാനതകൾ, അസോസിയേഷനുകൾ, മുൻകാല അനുഭവങ്ങൾ എന്നിവയെ അടിസ്ഥാനമാക്കിയുള്ള സാർവത്രിക ലോജിക്കൽ നടപടിക്രമങ്ങളും തീരുമാനമെടുക്കൽ രീതികളും ഈ അൽഗോരിതങ്ങൾ ഉപയോഗിക്കുന്നു.

    ലീനിയർ അൽഗോരിതം- ഒരു കൂട്ടം കമാൻഡുകൾ (നിർദ്ദേശങ്ങൾ) ഒന്നിനുപുറകെ ഒന്നായി കൃത്യസമയത്ത് നടപ്പിലാക്കുന്നു.

    ബ്രാഞ്ചിംഗ് അൽഗോരിതം- സാധ്യമായ രണ്ട് ഘട്ടങ്ങളിൽ ഒന്നിലേക്ക് ഏത് കമ്പ്യൂട്ടർ പരിവർത്തനം നൽകുന്നുവെന്ന് പരിശോധിക്കുന്നതിന്റെ ഫലമായി കുറഞ്ഞത് ഒരു വ്യവസ്ഥയെങ്കിലും അടങ്ങിയ ഒരു അൽഗോരിതം.

    റൗണ്ട് റോബിൻ അൽഗോരിതം- പുതിയ പ്രാരംഭ ഡാറ്റയിൽ ഒരേ പ്രവർത്തനത്തിന്റെ (അതേ പ്രവർത്തനങ്ങൾ) ആവർത്തിച്ചുള്ള ആവർത്തനം ഉൾപ്പെടുന്ന ഒരു അൽഗോരിതം. ഓപ്‌ഷനുകളുടെ കണക്കുകൂട്ടലിന്റെയും എണ്ണലിന്റെയും മിക്ക രീതികളും ചാക്രിക അൽഗോരിതങ്ങളിലേക്ക് ചുരുക്കിയിരിക്കുന്നു.

പ്രോഗ്രാം സൈക്കിൾ- ഒരു നിശ്ചിത വ്യവസ്ഥ തൃപ്‌തികരമാകുന്നതുവരെ ആവർത്തിച്ച് (പുതിയ ഉറവിട ഡാറ്റയ്‌ക്കായി) എക്‌സിക്യൂട്ട് ചെയ്യാവുന്ന കമാൻഡുകളുടെ ഒരു ശ്രേണി (സീരീസ്, ലൂപ്പ് ബോഡി).

അൽഗോരിതങ്ങളുടെ പ്രധാന ഡിസൈനുകളുടെ ഡയഗ്രമുകൾ ചിഹ്നങ്ങളിൽ ചിത്രം കാണിക്കുന്നു:

എ). ലീനിയർ അൽഗോരിതം;

b,c,d). ബ്രാഞ്ചിംഗ് അൽഗോരിതങ്ങൾ (ബി-ബ്രാഞ്ച്, സി-വിഭജനം, ഡി-സ്വിച്ചിംഗ്);

d, f, g). ചാക്രിക അൽഗോരിതങ്ങൾ (ഡി, സൈക്കിളിന്റെ തുടക്കത്തിൽ ജി-ചെക്ക്, സൈക്കിളിന്റെ അവസാനത്തിൽ ഇ-ചെക്ക്).

സഹായ (അടിമ) അൽഗോരിതം(നടപടിക്രമം) - ഒരു പ്രത്യേക ടാസ്ക്കിന്റെ അൽഗോരിതമൈസേഷനിൽ മുമ്പ് വികസിപ്പിച്ചതും പൂർണ്ണമായും ഉപയോഗിക്കുന്നതുമായ ഒരു അൽഗോരിതം. ചില സാഹചര്യങ്ങളിൽ, വ്യത്യസ്ത ഡാറ്റയ്‌ക്കായി നിർദ്ദേശങ്ങളുടെ (കമാൻഡുകൾ) സമാന ശ്രേണികൾ ഉണ്ടെങ്കിൽ, റെക്കോർഡ് കുറയ്ക്കുന്നതിന് ഒരു സഹായ അൽഗോരിതം അനുവദിച്ചിരിക്കുന്നു.

ഒരു പ്രശ്നത്തിന്റെ അൽഗോരിതമൈസേഷനായുള്ള തയ്യാറെടുപ്പിന്റെ എല്ലാ ഘട്ടങ്ങളിലും, അൽഗോരിതത്തിന്റെ ഘടനാപരമായ പ്രാതിനിധ്യം വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നു.

അൽഗോരിതത്തിന്റെ ഘടനാപരമായ (ബ്ലോക്ക്, ഗ്രാഫ്) ഡയഗ്രം- അമ്പടയാളങ്ങൾ (ട്രാൻസിഷൻ ലൈനുകൾ) ഉപയോഗിച്ച് പരസ്പരം ബന്ധിപ്പിച്ചിരിക്കുന്ന ബ്ലോക്കുകളുടെ ഒരു ഡയഗ്രം രൂപത്തിൽ അൽഗോരിതത്തിന്റെ ഒരു ഗ്രാഫിക് പ്രാതിനിധ്യം - ഗ്രാഫിക് ചിഹ്നങ്ങൾ, അവ ഓരോന്നും അൽഗോരിതത്തിന്റെ ഒരു ഘട്ടവുമായി യോജിക്കുന്നു. ബ്ലോക്കിനുള്ളിൽ അനുബന്ധ പ്രവർത്തനത്തിന്റെ ഒരു വിവരണം നൽകിയിരിക്കുന്നു.

ഒരു ടാസ്‌ക് പ്രോഗ്രാം ചെയ്യുന്നതിന് മുമ്പ് അതിന്റെ വ്യക്തത കാരണം അൽഗോരിതത്തിന്റെ ഗ്രാഫിക്കൽ പ്രാതിനിധ്യം വ്യാപകമായി ഉപയോഗിക്കുന്നു, കാരണം വിഷ്വൽ പെർസെപ്ഷൻ സാധാരണയായി ഒരു പ്രോഗ്രാം എഴുതുന്ന പ്രക്രിയയെ സുഗമമാക്കുന്നു, സാധ്യമായ പിശകുകളുടെ കാര്യത്തിൽ അത് ശരിയാക്കുന്നു, വിവര പ്രോസസ്സിംഗ് പ്രക്രിയ മനസ്സിലാക്കുന്നു.

നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന പ്രസ്താവന പോലും കാണാൻ കഴിയും: “ബാഹ്യമായി, അൽഗോരിതം ഒരു ഡയഗ്രം ആണ് - ദീർഘചതുരങ്ങളുടെയും മറ്റ് ചിഹ്നങ്ങളുടെയും ഒരു കൂട്ടം, അതിനുള്ളിൽ എഴുതിയിരിക്കുന്നു, എന്താണ് കണക്കാക്കുന്നത്, എന്താണ് മെഷീനിൽ നൽകിയത്, അച്ചടിച്ചതും പ്രദർശിപ്പിക്കുന്നതിനുള്ള മറ്റ് മാർഗങ്ങളും വിവരങ്ങൾ." ഇവിടെ അൽഗരിതത്തിന്റെ അവതരണ രൂപം അൽഗരിതവുമായി തന്നെ കലർത്തിയിരിക്കുന്നു.

"ടോപ്പ്-ഡൌൺ" പ്രോഗ്രാമിംഗ് തത്വം ബ്ലോക്ക് ഡയഗ്രം ഘട്ടം ഘട്ടമായി വ്യക്തമാക്കുകയും ഓരോ ബ്ലോക്കും പ്രാഥമിക പ്രവർത്തനങ്ങൾ വരെ "വിവരണം" ചെയ്യുകയും വേണം. എന്നാൽ ലളിതമായ പ്രശ്നങ്ങൾ പരിഹരിക്കുമ്പോൾ ഈ സമീപനം നടപ്പിലാക്കാൻ കഴിയും. ഏതെങ്കിലും ഗുരുതരമായ പ്രശ്നം പരിഹരിക്കുമ്പോൾ, ഫ്ലോചാർട്ട് ഒറ്റനോട്ടത്തിൽ അത് മറയ്ക്കാൻ കഴിയാത്തവിധം "പ്രചരിക്കും".

ഒരു റെഡിമെയ്ഡ് അൽഗോരിതത്തിന്റെ പ്രവർത്തനം വിശദീകരിക്കാൻ അൽഗോരിതങ്ങളുടെ ഫ്ലോചാർട്ടുകൾ ഉപയോഗിക്കുന്നത് സൗകര്യപ്രദമാണ്, അതേസമയം അൽഗോരിതത്തിന്റെ യഥാർത്ഥ ബ്ലോക്കുകൾ ബ്ലോക്കുകളായി എടുക്കുന്നു, ഇതിന്റെ പ്രവർത്തനത്തിന് വിശദീകരണം ആവശ്യമില്ല. ഒരു അൽഗരിതത്തിന്റെ ഫ്ലോചാർട്ട് അൽഗൊരിതത്തിന്റെ ചിത്രീകരണം ലളിതമാക്കാൻ സഹായിക്കണം, അല്ലാതെ അതിനെ സങ്കീർണ്ണമാക്കരുത്.

ഒരു കമ്പ്യൂട്ടറിൽ പ്രശ്നങ്ങൾ പരിഹരിക്കുമ്പോൾ, പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള രീതികളെക്കുറിച്ചുള്ള അറിവ് പോലെ അൽഗോരിതം എഴുതാനുള്ള കഴിവ് നിങ്ങൾക്ക് ആവശ്യമില്ല (പൊതുവായി ഗണിതത്തിലെന്നപോലെ). അതിനാൽ, നിങ്ങൾ പഠിക്കേണ്ടത് പ്രോഗ്രാമിംഗല്ല (അൽഗരിതമൈസേഷനല്ല), മറിച്ച് ഒരു കമ്പ്യൂട്ടറിലെ ഗണിതശാസ്ത്ര പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള രീതികളാണ്. ടാസ്‌ക്കുകൾ സാധാരണയായി ചെയ്യുന്നത് പോലെ (അറേകൾക്കായുള്ള ടാസ്‌ക്കുകൾ, ക്യാരക്ടർ വേരിയബിളുകൾ മുതലായവ) ഡാറ്റാ തരം അനുസരിച്ചല്ല, മറിച്ച് “ആവശ്യമുള്ളത്” വിഭാഗം അനുസരിച്ചാണ് തരംതിരിക്കേണ്ടത്.

കമ്പ്യൂട്ടർ സയൻസിൽ, ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പ്രക്രിയ രണ്ട് വിഷയങ്ങൾക്കിടയിൽ വിതരണം ചെയ്യപ്പെടുന്നു: പ്രോഗ്രാമറും കമ്പ്യൂട്ടറും. പ്രോഗ്രാമർ ഒരു അൽഗോരിതം (പ്രോഗ്രാം) സൃഷ്ടിക്കുന്നു, കമ്പ്യൂട്ടർ അത് നടപ്പിലാക്കുന്നു. പരമ്പരാഗത ഗണിതശാസ്ത്രത്തിൽ അത്തരമൊരു വിഭജനം ഇല്ല; പ്രശ്നം പരിഹരിക്കുന്നതിന് ഒരു അൽഗോരിതം സൃഷ്ടിച്ച് അത് സ്വയം നടപ്പിലാക്കുന്ന ഒരു വ്യക്തിയാണ് പ്രശ്നം പരിഹരിക്കുന്നത്. അൽഗോരിതമൈസേഷന്റെ സാരാംശം ഒരു പ്രശ്നത്തിനുള്ള പരിഹാരം പ്രാഥമിക പ്രവർത്തനങ്ങളുടെ ഒരു കൂട്ടമായി അവതരിപ്പിക്കുന്നു എന്നതല്ല, ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പ്രക്രിയയെ രണ്ട് ഘട്ടങ്ങളായി തിരിച്ചിരിക്കുന്നു: ക്രിയേറ്റീവ് (പ്രോഗ്രാമിംഗ്), നോൺ-ക്രിയേറ്റീവ് (പ്രോഗ്രാം എക്സിക്യൂഷൻ). ഈ ഘട്ടങ്ങൾ വ്യത്യസ്ത വിഷയങ്ങളാൽ നിർവഹിക്കപ്പെടുന്നു - പ്രോഗ്രാമറും അവതാരകനും

കമ്പ്യൂട്ടർ സയൻസ് പാഠപുസ്തകങ്ങളിൽ ഒരു വ്യക്തിക്ക് അൽഗോരിതത്തിന്റെ എക്സിക്യൂട്ടീവായിരിക്കാൻ കഴിയുമെന്ന് അവർ സാധാരണയായി എഴുതുന്നു. വാസ്തവത്തിൽ, ആളുകൾക്കായി ആരും അൽഗോരിതങ്ങൾ എഴുതുന്നില്ല (ഓരോ സെറ്റ് വ്യതിരിക്തമായ പ്രവർത്തനങ്ങളും ഒരു അൽഗോരിതം അല്ലെന്ന് മറക്കരുത്). ഒരു വ്യക്തിക്ക്, തത്വത്തിൽ, ഒരു അൽഗോരിതം അനുസരിച്ച് പ്രവർത്തിക്കാൻ കഴിയില്ല. ഒരു അൽഗോരിതം നടപ്പിലാക്കുന്നത് ഒരു യാന്ത്രികവും ബുദ്ധിശൂന്യവുമായ പ്രവർത്തനങ്ങളുടെ നിർവ്വഹണമാണ്. ഒരു വ്യക്തി എപ്പോഴും അർത്ഥപൂർണ്ണമായി പ്രവർത്തിക്കുന്നു. ഒരു വ്യക്തിക്ക് ഒരു നിശ്ചിത ഓപ്പറേഷനുകൾ നടത്തുന്നതിന്, അത് എങ്ങനെ ചെയ്യുന്നുവെന്ന് വിശദീകരിക്കേണ്ടതുണ്ട്. ഒരു വ്യക്തിക്ക് ഏത് ജോലിയും അത് എങ്ങനെ ചെയ്യുന്നുവെന്ന് മനസ്സിലാക്കുമ്പോൾ മാത്രമേ ചെയ്യാൻ കഴിയൂ.

ഇതിലാണ് - "വിശദീകരണവും ധാരണയും" - "അൽഗോരിതം", "രീതി", "രീതി", "നിയമം" എന്നീ ആശയങ്ങൾ തമ്മിലുള്ള വ്യത്യാസം. ഗണിത പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനുള്ള നിയമങ്ങൾ വെറും നിയമങ്ങൾ (അല്ലെങ്കിൽ രീതികൾ), അൽഗോരിതങ്ങൾ അല്ല. തീർച്ചയായും, ഈ നിയമങ്ങൾ അൽഗോരിതങ്ങളുടെ രൂപത്തിൽ പ്രസ്താവിക്കാം, എന്നാൽ ഇത് ഒരു പ്രയോജനവും ചെയ്യില്ല. ഒരു വ്യക്തിക്ക് ഗണിത നിയമങ്ങൾ അനുസരിച്ച് കണക്കാക്കാൻ കഴിയണമെങ്കിൽ, അവനെ പഠിപ്പിക്കേണ്ടതുണ്ട്. ഒരു പഠന പ്രക്രിയ ഉണ്ടെങ്കിൽ, ഞങ്ങൾ കൈകാര്യം ചെയ്യുന്നത് ഒരു അൽഗോരിതം ഉപയോഗിച്ചല്ല, മറിച്ച് ഒരു രീതി ഉപയോഗിച്ചാണ്.

ഒരു അൽഗോരിതം സൃഷ്ടിക്കുമ്പോൾ, പ്രോഗ്രാമർ ആരോടും ഒന്നും വിശദീകരിക്കുന്നില്ല, പ്രകടനം നടത്തുന്നയാൾ ഒന്നും മനസ്സിലാക്കാൻ ശ്രമിക്കുന്നില്ല. ആൽഗരിതം കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിൽ സ്ഥിതിചെയ്യുന്നു, ഇത് നിർദ്ദേശങ്ങൾ ഓരോന്നായി വീണ്ടെടുത്ത് അവ നടപ്പിലാക്കുന്നു. ഒരു വ്യക്തി വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു. ഒരു പ്രശ്നം പരിഹരിക്കാൻ, ഒരു വ്യക്തി പ്രശ്നം മൊത്തത്തിൽ പരിഹരിക്കുന്നതിനുള്ള രീതി മനസ്സിൽ സൂക്ഷിക്കേണ്ടതുണ്ട്, കൂടാതെ എല്ലാവരും ഈ രീതി അവരുടേതായ രീതിയിൽ ഉൾക്കൊള്ളുന്നു.

ഹ്യൂമൻ സൈക്കോളജിയുടെ ഈ സവിശേഷത - അൽഗോരിതം അല്ലാത്ത ചിന്ത - A. G. Gein, V. F. Sholokhovich എന്നിവരുടെ രീതിശാസ്ത്ര മാനുവലിൽ വളരെ വ്യക്തമായി പ്രകടമായിരുന്നു. അറിയപ്പെടുന്ന ഒരു പാഠപുസ്തകത്തിൽ നിന്നുള്ള പ്രശ്നങ്ങൾക്കുള്ള പരിഹാരങ്ങൾ മാനുവൽ അവതരിപ്പിക്കുന്നു. പ്രശ്‌നങ്ങൾക്കുള്ള പരിഹാരങ്ങൾ അൽഗോരിതങ്ങളുടെ രൂപത്തിൽ അവതരിപ്പിക്കണം. എന്നിരുന്നാലും, ഒരു പ്രശ്‌നം പരിഹരിക്കുന്നതിന് നിങ്ങൾ ഒരു അൽഗോരിതം എഴുതിയാൽ, പരിഹാരം തന്നെ മനസ്സിലാക്കാൻ ബുദ്ധിമുട്ടായിരിക്കുമെന്ന് മാനുവലിന്റെ രചയിതാക്കൾ മനസ്സിലാക്കുന്നു. അതിനാൽ, അവർ ആദ്യം "അൽഗരിതത്തിന്റെ അവ്യക്തമായ പ്രസ്താവന" നൽകുന്നു (അതായത്, പ്രശ്നത്തിനുള്ള പരിഹാരം വിശദീകരിക്കുക), തുടർന്ന് അൽഗോരിതം തന്നെ എഴുതുക.



എൽ ഐ ടി ഇ ആർ ടി യു ആർ എ

1. Nesterenko A.V. കമ്പ്യൂട്ടറുകളും ഒരു പ്രോഗ്രാമറുടെ പ്രൊഫഷനും.

എം., വിദ്യാഭ്യാസം, 1990.

2. Brudno A.L., Kaplan L.I. പ്രോഗ്രാമിംഗിൽ മോസ്കോ ഒളിമ്പ്യാഡുകൾ.

എം., നൗക, 1990.

3. കുസ്നെറ്റ്സോവ് ഒ.പി., അഡെൽസൺ-വെൽസ്കി ജി.എം. എഞ്ചിനീയർക്കുള്ള ഡിസ്ക്രീറ്റ് മാത്തമാറ്റിക്സ്.

എം., Energoatomizdat, 1988.

4. ഗെയിൻ എ.ജി. കമ്പ്യൂട്ടർ സയൻസിന്റെയും കമ്പ്യൂട്ടർ സാങ്കേതികവിദ്യയുടെയും അടിസ്ഥാനങ്ങൾ.

എം., വിദ്യാഭ്യാസം, 1994.

5. കമ്പ്യൂട്ടർ സയൻസ്. "സെപ്റ്റംബർ ആദ്യം" എന്ന പത്രത്തിന്റെ പ്രതിവാര സപ്ലിമെന്റ്. 1998, നമ്പർ 1.

6. റാഡ്ചെങ്കോ N. P. അവസാന പരീക്ഷകളുടെ ചോദ്യങ്ങൾക്കുള്ള ഉത്തരങ്ങൾ. - ഇൻഫോർമാറ്റിക്സ് ഒപ്പം

വിദ്യാഭ്യാസം, 1997, നമ്പർ 4.

7. കസാറ്റ്കിൻ വി.എൻ. വിവരങ്ങൾ, അൽഗോരിതങ്ങൾ, കമ്പ്യൂട്ടറുകൾ. എം., വിദ്യാഭ്യാസം, 1991.

8. Kanygin Yu. M., Zotov B. I. എന്താണ് കമ്പ്യൂട്ടർ സയൻസ്?

എം., ബാലസാഹിത്യം, 1989.

9. ഗെയിൻ എ.ജി., ഷോലോഖോവിച്ച് വി.എഫ്. ഹൈസ്കൂളിൽ "ഫണ്ടമെന്റൽസ് ഓഫ് ഇൻഫോർമാറ്റിക്സ് ആൻഡ് കമ്പ്യൂട്ടർ സയൻസ്" എന്ന കോഴ്സ് പഠിപ്പിക്കുന്നു. അധ്യാപകരുടെ ഗൈഡ്.

എകറ്റെറിൻബർഗ്, 1992.

10. Izvozchikov വി.എ. ആശയങ്ങളിലും നിബന്ധനകളിലും കമ്പ്യൂട്ടർ സയൻസ്.

11. പത്രം "ഇൻഫോർമാറ്റിക്സ്", നമ്പർ 35, 1997.

12. L.Z. ഷൗത്സുക്കോവ് ചോദ്യങ്ങളിലും ഉത്തരങ്ങളിലും കമ്പ്യൂട്ടർ സയൻസിന്റെ അടിസ്ഥാനങ്ങൾ.


രചയിതാവ്: ബൊഗാഷോവ ടാറ്റിയാന, ഡൊനെറ്റ്സ് സെർജി (കെപിഐ, ഫാക്സ്), കിയെവ്, 1999.
റേറ്റിംഗ്:മികച്ചത്
വാടകയ്ക്ക് നൽകിയത്: വൊക്കേഷണൽ സ്കൂൾ നമ്പർ 34
ഇമെയിൽ: [ഇമെയിൽ പരിരക്ഷിതം]



ദൈനംദിന ജീവിതത്തിൽ നമ്മൾ ഓരോരുത്തരും വ്യത്യസ്ത സങ്കീർണ്ണതയുടെ പ്രശ്നങ്ങൾ നിരന്തരം പരിഹരിക്കേണ്ടതുണ്ട്, ഉദാഹരണത്തിന്, പരിമിതമായ സമയത്തിനുള്ളിൽ സ്കൂളിലേക്കോ സ്പോർട്സ് വിഭാഗത്തിലേക്കോ എങ്ങനെ എത്തിച്ചേരാം, ദിവസം ആസൂത്രണം ചെയ്ത ജോലികൾ എങ്ങനെ പൂർത്തിയാക്കാം. ചില പ്രശ്നങ്ങൾ വളരെ സങ്കീർണ്ണമാണ്, അവ പരിഹരിക്കുന്നതിന് വളരെയധികം ചിന്ത ആവശ്യമാണ്. മറ്റുള്ളവർ, നേരെമറിച്ച്, ഞങ്ങൾ യാന്ത്രികമായി തീരുമാനിക്കുന്നു, കാരണം വർഷങ്ങളായി ഞങ്ങൾ അവരെ എല്ലാ ദിവസവും കണ്ടുമുട്ടുന്നു (പല്ല് തേക്കുക, കിടക്ക ഉണ്ടാക്കുക, തെരുവ് മുറിച്ചുകടക്കുക മുതലായവ). മിക്ക കേസുകളിലും, ഒരു പ്രശ്നം പരിഹരിക്കുന്നത് നിരവധി ലളിതമായ ഘട്ടങ്ങളായി തിരിക്കാം.
ഉദാഹരണം 1."ഒരു കാൽനട ക്രോസിംഗിൽ റോഡ് മുറിച്ചുകടക്കുക" എന്ന പ്രശ്നത്തിനുള്ള ഒരു പരിഹാരം ഇതാ:
1) കാൽനട ക്രോസിംഗിന് അഭിമുഖമായി നടപ്പാതയിൽ നിൽക്കുക;
2) ഇടതുവശത്തേക്ക് നോക്കുക;
3) നിങ്ങളുടെ ഇടതുവശത്തേക്ക് നീങ്ങുന്ന കാറുകളോ മോട്ടോർ സൈക്കിളുകളോ ഇല്ലെങ്കിൽ, റോഡ് മധ്യഭാഗത്തേക്ക് കടക്കുക, അല്ലാത്തപക്ഷം അവ കടന്നുപോയി പോയിന്റ് 2-ലേക്ക് മടങ്ങുന്നത് വരെ കാത്തിരിക്കുക;
4) റോഡിന്റെ മധ്യത്തിൽ നിർത്തുക;
5) വലതുവശത്തേക്ക് നോക്കുക;
6) നിങ്ങളുടെ വലതുവശത്ത് കാറുകളോ മോട്ടോർസൈക്കിളുകളോ നീങ്ങുന്നില്ലെങ്കിൽ, റോഡിന്റെ ബാക്കി ഭാഗം മുറിച്ചുകടക്കുക, അല്ലാത്തപക്ഷം അവ കടന്നുപോയി പോയിന്റ് 5-ലേക്ക് മടങ്ങുന്നത് വരെ കാത്തിരിക്കുക.

അൽ-ഖ്വാരിസ്മി (780-850 AD - 9-ആം നൂറ്റാണ്ടിലെ അറബ് ഗണിതശാസ്ത്രജ്ഞൻ; അൽ-ഖ്വാരിസ്മി എന്ന പേരിന്റെ യൂറോപ്യൻ ഉച്ചാരണത്തിൽ നിന്നാണ് "അൽഗരിതം" എന്ന പദം ഉടലെടുത്തത്).

ഉദാഹരണം 1-ൽ നൽകിയിരിക്കുന്ന ഘട്ടങ്ങളുടെ ക്രമം അൽഗോരിതം"ഒരു കാൽനട ക്രോസിംഗിൽ റോഡ് മുറിച്ചുകടക്കൽ" എന്ന പ്രശ്നം പരിഹരിക്കുന്നു. നടത്തിപ്പുകാരൻഈ അൽഗോരിതം മനുഷ്യനാണ്. റോഡുകൾ, കാറുകൾ, മോട്ടോർസൈക്കിളുകൾ എന്നിവയാണ് ഈ അൽഗോരിതത്തിന്റെ വസ്തുക്കൾ.

ഏത് പ്രശ്‌നവും പരിഹരിക്കുന്നതിന്, എന്താണ് നൽകിയിരിക്കുന്നതെന്നും എന്താണ് ലഭിക്കേണ്ടതെന്നും നിങ്ങൾ അറിയേണ്ടതുണ്ട്, അതായത്, പ്രശ്നത്തിന് പ്രാരംഭ ഡാറ്റയും (വസ്തുക്കൾ) ആവശ്യമുള്ള ഫലവുമുണ്ട്. ഫലങ്ങൾ നേടുന്നതിന്, പ്രശ്നം എങ്ങനെ പരിഹരിക്കണമെന്ന് നിങ്ങൾ അറിയേണ്ടതുണ്ട്, അതായത്, ഒരു അൽഗോരിതം ഉണ്ടായിരിക്കണം.

മുകളിലുള്ള നിർവചനം വാക്കിന്റെ ഗണിതശാസ്ത്ര അർത്ഥത്തിൽ ഒരു നിർവചനമല്ല, അത് ഒരു അൽഗോരിതം എന്ന ആശയത്തിന്റെ വിവരണമാണ്, അതിന്റെ സാരാംശം വെളിപ്പെടുത്തുന്നു. ഇത് ഔപചാരികമല്ല, കാരണം ഇത് "നിർദ്ദേശങ്ങളുടെ സംവിധാനം", "പ്രകടനക്കാരന്റെ പ്രവർത്തനങ്ങൾ", "വസ്തു" തുടങ്ങിയ വ്യക്തമാക്കാത്ത ആശയങ്ങൾ ഉപയോഗിക്കുന്നു.

ഗണിതശാസ്ത്രത്തിലും കമ്പ്യൂട്ടർ സയൻസിലും അടിസ്ഥാനപരമായ ഒരു ആശയമായ അൽഗോരിതം എന്ന ആശയം കമ്പ്യൂട്ടറുകളുടെ ആവിർഭാവത്തിന് വളരെ മുമ്പുതന്നെ ഉയർന്നുവന്നു.

തുടക്കത്തിൽ, "അൽഗോരിതം" എന്ന വാക്ക് ദശാംശ സംഖ്യകളിൽ ഗണിത പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനുള്ള ഒരു മാർഗമായി മനസ്സിലാക്കിയിരുന്നു. തുടർന്ന്, തന്നിരിക്കുന്ന പ്രശ്നത്തിന്റെ പരിഹാരത്തിലേക്ക് നയിക്കുന്ന പ്രവർത്തനങ്ങളുടെ ഏതെങ്കിലും ശ്രേണിയെ സൂചിപ്പിക്കാൻ ഈ ആശയം ഉപയോഗിക്കാൻ തുടങ്ങി.

രണ്ട് പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾ ഹരിച്ചുകൊണ്ട് ഏറ്റവും വലിയ പൊതു വിഭജനം (ജിസിഡി) കണ്ടെത്തുന്നതിനുള്ള യൂക്ലിഡിയൻ അൽഗോരിതം - അറിയപ്പെടുന്ന ഒരു അൽഗോരിതത്തിന്റെ ഒരു ഉദാഹരണം പറയാം.

ഉദാഹരണം 2. രണ്ട് പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾ നൽകി xഒപ്പം വൈ. അനുവദിക്കുക x y, ഇത് അങ്ങനെയല്ലെങ്കിൽ, മൂല്യങ്ങൾ മാറ്റുക xഒപ്പം വൈചില സ്ഥലങ്ങളിൽ.
1) വിഭജിക്കുക വൈഓൺ xബാക്കി കൂടെ.
2) ഡിവിഷന്റെ ബാക്കിയാണെങ്കിൽ ആർ 0 ആണ്, പിന്നെ സംഖ്യ x GCD ആണ്. നിർത്തുക.
3) ഡിവിഷന്റെ ബാക്കി ഭാഗം പൂജ്യത്തിന് തുല്യമല്ലെങ്കിൽ, ഞങ്ങൾ ഇടുന്നു വൈ = x, x = ആർകൂടാതെ ഘട്ടം 1 ലേക്ക് നീങ്ങുക.

ഏതെങ്കിലും അൽഗോരിതം സ്വന്തമായി നിലവിലില്ല; അത് എല്ലായ്പ്പോഴും ഒരു പ്രത്യേക ഉദ്ദേശ്യത്തിനായി ഉദ്ദേശിച്ചുള്ളതാണ്. അവതാരകൻ. അൽഗോരിതം വിവരിച്ചിരിക്കുന്നു പ്രകടനം നടത്തുന്ന ടീമുകൾ, ഈ അൽഗോരിതം നിർവ്വഹിക്കും. പ്രകടനം നടത്തുന്നയാൾക്ക് പ്രവർത്തനങ്ങൾ ചെയ്യാൻ കഴിയുന്ന വസ്തുക്കൾ എന്ന് വിളിക്കപ്പെടുന്നവയാണ് പ്രകടനക്കാരന്റെ അന്തരീക്ഷം. പ്രാരംഭ ഡാറ്റയും ഫലങ്ങളുംഏതൊരു അൽഗരിതത്തിന്റെയും എല്ലായ്‌പ്പോഴും അൽഗോരിതം ഉദ്ദേശിക്കുന്ന എക്‌സിക്യൂട്ടറുടെ പരിതസ്ഥിതിയിൽ പെടുന്നു.

4.1.2. അൽഗോരിതം പ്രോപ്പർട്ടികൾ

"അൽഗോരിതം" എന്ന വാക്കിന്റെ അർത്ഥം "പാചകക്കുറിപ്പ്", "രീതി", "രീതി" എന്നീ വാക്കുകളുമായി വളരെ സാമ്യമുള്ളതാണ്. എന്നിരുന്നാലും, ഏതെങ്കിലും അൽഗോരിതം, ഒരു പാചകക്കുറിപ്പ് അല്ലെങ്കിൽ രീതി പോലെയല്ല, നിർബന്ധമായും ഇനിപ്പറയുന്ന ഗുണങ്ങളുണ്ട്.

1. വിവേചനാധികാരം.അൽഗോരിതത്തിന്റെ നിർവ്വഹണം പൂർത്തിയാക്കിയ പ്രവർത്തന-ഘട്ടങ്ങളുടെ ഒരു ശ്രേണിയായി തിരിച്ചിരിക്കുന്നു, ഒരു പ്രവർത്തനം പൂർത്തിയാക്കിയതിനുശേഷം മാത്രമേ നിങ്ങൾക്ക് അടുത്തത് ചെയ്യാൻ തുടങ്ങൂ. വിളിക്കപ്പെടുന്ന അൽഗോരിതം റെക്കോർഡിലെ ഒരു പ്രത്യേക നിർദ്ദേശം മുഖേന ഓരോ വ്യക്തിഗത പ്രവർത്തനവും നിർവഹിക്കാൻ അവതാരകനോട് നിർദ്ദേശിക്കുന്നു ടീം.

ഉദാഹരണം 3.ഗണിത കണക്കുകൂട്ടലുകൾ നടത്തേണ്ടതുണ്ട് എസ് = (x + 5) – വൈ· 2.
വ്യക്തമായും, ഈ പദപ്രയോഗത്തെ 3 പ്രവർത്തനങ്ങളായി വിഭജിക്കുന്നത് സൗകര്യപ്രദമാണ്:
1) പരാൻതീസിസിൽ ആർഗ്യുമെന്റുകൾ ചേർക്കുക xകൂടാതെ 5
2) ഗുണിക്കുക വൈ 2-ന്
3) ആദ്യ ഘട്ടത്തിൽ ലഭിച്ച ഫലത്തിൽ നിന്ന് രണ്ടാം ഘട്ടത്തിൽ ലഭിച്ച ഫലം കുറയ്ക്കുക.

രണ്ടാമത്തെ പ്രവർത്തനത്തിന്റെ ഫലത്തിനായി കാത്തിരിക്കുന്നതിന് മുമ്പ് പ്രകടനം നടത്തുന്നയാൾ 3-ാമത്തെ പ്രവർത്തനം നടത്താൻ തുടങ്ങിയാൽ, ഫലം നേടാനാവില്ല എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്.

2. നിർണായകവാദം.അൽഗോരിതത്തിന്റെ ഓരോ കമാൻഡും പെർഫോമറുടെ അവ്യക്തമായ പ്രവർത്തനത്തെ നിർണ്ണയിക്കുന്നു, അടുത്തതായി ഏത് കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യണമെന്ന് അതുല്യമായി നിർണ്ണയിക്കുന്നു. അതായത്, ഒരേ സെറ്റ് ഇൻപുട്ട് ഡാറ്റയിലേക്ക് ഒരു അൽഗോരിതം ആവർത്തിച്ച് പ്രയോഗിക്കുകയാണെങ്കിൽ, ഓരോ തവണയും ഒരേ ഇന്റർമീഡിയറ്റ് ഫലങ്ങളും ഒരേ ഔട്ട്പുട്ട് ഫലവും ലഭിക്കും.

3. വ്യക്തത.അൽ‌ഗോരിതത്തിൽ നിർദ്ദേശങ്ങൾ അടങ്ങിയിരിക്കരുത്, അതിന്റെ അർത്ഥം അവതാരകന് അവ്യക്തമായി മനസ്സിലാക്കാൻ കഴിയും, അതായത്, അൽ‌ഗോരിതം റെക്കോർഡിംഗ് വളരെ വ്യക്തവും പൂർണ്ണവുമായിരിക്കണം, അവതാരകന് സ്വതന്ത്രമായ തീരുമാനങ്ങൾ എടുക്കേണ്ട ആവശ്യമില്ല. അൽഗോരിതം എല്ലായ്പ്പോഴും "ചിന്തിക്കാത്ത" പ്രകടനം നടത്തുന്നയാൾ നടപ്പിലാക്കാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണെന്ന് ഓർമ്മിക്കേണ്ടതാണ്.
ഉദാഹരണം 4. "അയൺ ദി ലോൺട്രി" അൽഗോരിതം നോക്കാം.
1) ഒരു ഇസ്തിരി ബോർഡ് എടുക്കുക.
2) ഒരു ഇലക്ട്രിക്കൽ ഔട്ട്ലെറ്റിന് അടുത്തായി തറയിൽ ബോർഡ് വയ്ക്കുക.
3) ഒരു ഇരുമ്പ് എടുക്കുക.
4) ഇസ്തിരി ബോർഡിന് അടുത്തുള്ള ഒരു പവർ ഔട്ട്ലെറ്റിൽ ഇരുമ്പ് പ്ലഗ് ചെയ്യുക.
5) ഇസ്തിരിയിടാനുള്ള സാധനം എടുക്കുക.
6) ഇനം ഇസ്തിരിയിടുക.
7) കൂടുതൽ കാര്യങ്ങൾ ഉണ്ടെങ്കിൽ, ഘട്ടം 5-ലേക്ക് പോകുക.

ഈ അൽഗോരിതത്തിൽ, വസ്തുക്കൾ ഒരു ഇസ്തിരിയിടൽ ബോർഡ്, ഒരു ഇരുമ്പ്, ഒരു ഇലക്ട്രിക്കൽ ഔട്ട്ലെറ്റ്, ഇസ്തിരിയിടുന്ന വസ്തുക്കൾ എന്നിവയാണ്. ഈ കമാൻഡുകളെല്ലാം 12 വയസ്സുള്ള ഒരു പെൺകുട്ടിക്ക് മനസ്സിലാക്കാവുന്നതേയുള്ളൂ, എന്നാൽ രണ്ട് വയസ്സുള്ള ഒരു പെൺകുട്ടിക്ക് അവ മനസ്സിലാകുന്നില്ല, അതിനർത്ഥം അവൾക്ക് ഈ അൽഗോരിതം എക്സിക്യൂട്ടർ ആകാൻ കഴിയില്ല എന്നാണ്.

4. കാര്യക്ഷമത. ഈ പ്രോപ്പർട്ടി അർത്ഥമാക്കുന്നത് ഓരോ ഘട്ടത്തിന്റെയും ഫലത്തിൻറെയും മൊത്തത്തിലുള്ള അൽഗോരിതത്തിൻറെയും കാര്യമായ ഉറപ്പാണ്. അൽഗോരിതം കമാൻഡുകളുടെ കൃത്യമായ നിർവ്വഹണത്തോടെ, പ്രക്രിയ ഒരു നിശ്ചിത എണ്ണം ഘട്ടങ്ങളിൽ നിർത്തണം, അതേ സമയം പ്രശ്ന ചോദ്യത്തിനുള്ള ഉത്തരം ലഭിക്കണം. സാധ്യമായ ഉത്തരങ്ങളിലൊന്ന് പ്രശ്നത്തിന് പരിഹാരങ്ങളില്ലെന്ന വസ്തുത സ്ഥാപിക്കുന്നതായിരിക്കാം. ഫലപ്രാപ്തിയുടെ സ്വത്ത് ഫിനിറ്റിന്റെ സ്വത്ത് ഉൾക്കൊള്ളുന്നു - പരിമിതമായ ഘട്ടങ്ങളിൽ അൽഗോരിതം പൂർത്തിയാക്കൽ.

തമാശ. പ്രോഗ്രാമർ ജോലിസ്ഥലത്ത് കാണാതെ പോയി, അവൻ അപ്രത്യക്ഷനായി. ഇല്ല, രണ്ടു ദിവസം. കോളുകൾക്ക് മറുപടി നൽകുന്നില്ല. എന്ത്, എങ്ങനെ എന്ന് പരിശോധിക്കാൻ ഞങ്ങൾ തീരുമാനിച്ചു. ഞങ്ങൾ അവന്റെ വീട്ടിൽ എത്തി, അവിടെ, ഒരു തണുത്ത കുളിയിൽ, ഒരു പ്രോഗ്രാമർ കയ്യിൽ പാതി ഒഴിഞ്ഞ ഷാംപൂ കുപ്പിയുമായി ഇരിക്കുന്നു. അവർ അവനിൽ നിന്ന് കുപ്പി എടുത്ത് നിർദ്ദേശങ്ങൾ വായിച്ചു: "നനഞ്ഞ മുടിയിൽ പുരട്ടുക, നുര, മൂന്ന് മിനിറ്റ് കാത്തിരിക്കുക, കഴുകുക, ആവർത്തിക്കുക."

ഉദാഹരണം 5.ഒരു മനുഷ്യൻ ഒരു ക്ലോസറ്റിൽ പുസ്തകങ്ങൾ തുടയ്ക്കുന്നു. അദ്ദേഹത്തിന് വ്യക്തമായ ഒരു കൂട്ടം കമാൻഡുകൾ ഉണ്ട്.
1) മുകളിലെ ഷെൽഫിൽ ഇടതുവശത്തുള്ള പുസ്തകം എടുക്കുക;
2) പുസ്തകം തുടയ്ക്കുക;
3) പുസ്തകം സ്ഥലത്ത് വയ്ക്കുക;
4) വലതുവശത്ത് പുസ്തകങ്ങൾ ഉണ്ടെങ്കിൽ, അടുത്ത പുസ്തകം എടുക്കുക, അല്ലാത്തപക്ഷം, താഴെ ഷെൽഫുകൾ ഉണ്ടെങ്കിൽ, ഘട്ടം 1-ലേക്ക് പോകുക.

പ്രതിഫലിപ്പിക്കാത്ത ഒരു പ്രകടനം നടത്തുന്നയാൾ ഈ കമാൻഡുകൾ തുടർച്ചയായി നടപ്പിലാക്കും, ഒരിക്കലും നിർത്തില്ല, കാരണം നാലാം ഘട്ടത്തിൽ താഴെയുള്ള ഷെൽഫിലേക്ക് ഇറങ്ങാൻ അവർ മറന്നുപോയി.

5. മാസ് കഥാപാത്രം.ഒരു പ്രത്യേക ക്ലാസ് പ്രശ്‌നങ്ങളിൽ നിന്നുള്ള ഏത് പ്രശ്‌നവും പരിഹരിക്കുന്നതിന് അൽഗോരിതം അനുയോജ്യമാണ്, അതായത്, ഒരു നിശ്ചിത പ്രാരംഭ ഡാറ്റയിൽ അൽഗോരിതം ശരിയായി പ്രവർത്തിക്കുന്നു, ഇതിനെ അൽഗോരിതത്തിന്റെ പ്രയോഗക്ഷമതയുടെ ഡൊമെയ്ൻ എന്ന് വിളിക്കുന്നു.

4.1.3. അൽഗോരിതങ്ങളും നിർദ്ദേശങ്ങളും

ചോദ്യം ഉയർന്നുവരുന്നു: ഒരു പ്രശ്നം പരിഹരിക്കാൻ ഒരു മാർഗമുണ്ടോ, പക്ഷേ അത് ഒരു അൽഗോരിതം അല്ലേ? അതെ, അത്തരം സാഹചര്യങ്ങൾ സാധ്യമാണെന്ന് ഇത് മാറുന്നു. ഒരു പ്രശ്നം പരിഹരിക്കാനുള്ള എല്ലാ വഴികളും ഒരു അൽഗോരിതം അല്ല.
ഉദാഹരണം 6. ഒരു ലൈനിലേക്ക് ലംബമായി നിർമ്മിക്കുന്ന രീതി നമുക്ക് വിവരിക്കാം എം.എൻഒരു റൂളറും കോമ്പസും ഉപയോഗിച്ച് നൽകിയിരിക്കുന്ന പോയിന്റ് എയിലൂടെ കടന്നുപോകുന്നു:
1) പോയിന്റിന്റെ ഇരുവശത്തും മാറ്റിവെക്കുക ഒരു നേർരേഖയിൽ എം.എൻഒരു കോമ്പസ് ഉപയോഗിച്ച്, അറ്റത്തോടുകൂടിയ തുല്യ നീളമുള്ള ഭാഗങ്ങൾ ബിഒപ്പം സി.
2) കോമ്പസിന്റെ ഓപ്പണിംഗ് സെഗ്‌മെന്റുകളുടെ നീളത്തിന്റെ ഒന്നര മുതൽ രണ്ട് മടങ്ങ് വരെ വർധിപ്പിക്കുക എബിഒപ്പം എ.സി..
3) സൂചിപ്പിച്ചിരിക്കുന്ന കോമ്പസ് സൊല്യൂഷൻ ഉപയോഗിച്ച് ഒരു പോയിന്റിൽ കേന്ദ്രങ്ങളുള്ള സർക്കിളുകളുടെ ആർക്കുകൾ വരയ്ക്കുക ബിഒപ്പം സിഅങ്ങനെ അവർ പോയിന്റ് കവർ ചെയ്യുന്നു കൂടാതെ പരസ്പരം കവലയുടെ രണ്ട് പോയിന്റുകൾ രൂപീകരിച്ചു ( ഡിഒപ്പം ).
4) ഒരു ഭരണാധികാരി എടുത്ത് പോയിന്റുകളിൽ പ്രയോഗിക്കുക ഡിഒപ്പം ഒരു സെഗ്മെന്റുമായി അവയെ ബന്ധിപ്പിക്കുക.
ശരിയായി നിർമ്മിച്ചാൽ, സെഗ്മെന്റ് പോയിന്റിലൂടെ കടന്നുപോകും രേഖയ്ക്ക് ലംബമായിരിക്കും.

ഈ രീതി ഒരു മനുഷ്യ പ്രകടനം നടത്തുന്നയാൾക്കായി രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു, ഇത് ഒരു അൽഗോരിതം അല്ല, കാരണം ഇതിന് ഡിറ്റർമിനിസത്തിന്റെ സ്വത്ത് ഇല്ല. ഓരോ ഘട്ടത്തിലും ഒരേ ഡാറ്റയിൽ നമുക്ക് ഒരേ ഫലം ലഭിക്കുമെന്ന് ഡിറ്റർമിനിസം സൂചിപ്പിക്കുന്നു, ഞങ്ങളുടെ കാര്യത്തിൽ പ്രകടനം നടത്തുന്നയാൾക്ക് ആദ്യ, രണ്ടാമത്തെ ഘട്ടങ്ങളിൽ ഒരു തിരഞ്ഞെടുപ്പ് നടത്താൻ കഴിയും, അത് ഘട്ടത്തിന്റെ ഫലം ആശ്രയിച്ചിരിക്കും. ആദ്യ ഘട്ടത്തിൽ, പ്രകടനം നടത്തുന്നയാൾ കോമ്പസിന്റെ ഏകപക്ഷീയമായ ഒരു പരിഹാരം തിരഞ്ഞെടുക്കണം, ഇത് നിർദ്ദേശങ്ങൾ ആവർത്തിക്കുമ്പോൾ, ഈ ഘട്ടത്തിൽ മറ്റൊരു ഫലം നേടാൻ അവനെ അനുവദിക്കും. അതുപോലെ, രണ്ടാം ഘട്ടത്തിൽ, പ്രകടനം നടത്തുന്നയാൾ കോമ്പസ് സൊല്യൂഷൻ തിരഞ്ഞെടുക്കുന്നതിനെ ആശ്രയിച്ചിരിക്കും ഫലം.

കൂടാതെ, ഒരു വ്യക്തിക്ക്, പൊതുവായി പറഞ്ഞാൽ, അവ പരിഹരിക്കുന്നതിനുള്ള വ്യക്തമായ അൽഗോരിതം അറിയാതെ പരിഹരിക്കാൻ കഴിയുന്ന പ്രശ്നങ്ങളുണ്ട്. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു വ്യക്തിയുടെ മുന്നിൽ കുതിരകളുടെയും പശുക്കളുടെയും ഫോട്ടോകൾ വയ്ക്കുകയും പശുക്കളെ കാണിക്കുന്ന ഫോട്ടോകളും ഏതൊക്കെ കുതിരകളെ കാണിക്കുകയും ചെയ്യുന്നുവെന്ന് നിർണ്ണയിക്കാൻ അവനോട് ആവശ്യപ്പെടുകയാണെങ്കിൽ, ഏത് ഫോട്ടോകളാണ് പശുക്കളെ കാണിക്കുന്നതെന്നും ഏതൊക്കെ കുതിരകളെ കാണിക്കുന്നുവെന്നും ആ വ്യക്തി അവബോധപൂർവ്വം നിർണ്ണയിക്കും. മാത്രമല്ല, അദ്ദേഹത്തിന്റെ മിക്ക ഉത്തരങ്ങളും ശരിയായിരിക്കും. എന്നാൽ ഈ പ്രശ്നം പരിഹരിക്കുന്നതിന് ഒരു ഔപചാരിക അൽഗോരിതം എഴുതുക സാധ്യമല്ല.

നമുക്ക് ഒരു അൽഗോരിതം എന്ന ഒരു പരിഷ്കൃത ആശയം നൽകാം, അത് വീണ്ടും വാക്കിന്റെ ഗണിതശാസ്ത്ര അർത്ഥത്തിൽ ഒരു നിർവചനമല്ല, മറിച്ച് ഒരു അൽഗോരിതം എന്ന ആശയത്തെ കൂടുതൽ ഔപചാരികമായി വിവരിക്കുന്നു.

അൽഗോരിതം

മിക്കപ്പോഴും, ഒരു പ്രത്യേക സംവിധാനം (കമ്പ്യൂട്ടർ, ലാത്ത്, തയ്യൽ മെഷീൻ) ഒരു പെർഫോമറായി പ്രവർത്തിക്കുന്നു, എന്നാൽ ഒരു അൽഗോരിതം എന്ന ആശയം കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകളെ പരാമർശിക്കണമെന്നില്ല, ഉദാഹരണത്തിന്, ഒരു വിഭവം തയ്യാറാക്കുന്നതിനുള്ള വ്യക്തമായി വിവരിച്ച പാചകക്കുറിപ്പും ഒരു അൽഗോരിതം ആണ്, അതിൽ കേസിൽ അവതാരകൻ ഒരു വ്യക്തിയാണ്.

ഒരു അൽഗോരിതം എന്ന ആശയം ഗണിതശാസ്ത്രത്തിന്റെ പ്രാരംഭ, അടിസ്ഥാന, അടിസ്ഥാന ആശയങ്ങളെ സൂചിപ്പിക്കുന്നു. ഒരു അൽഗോരിതമിക് സ്വഭാവമുള്ള കമ്പ്യൂട്ടേഷണൽ പ്രക്രിയകൾ (പൂർണ്ണസംഖ്യകളിലെ ഗണിത പ്രവർത്തനങ്ങൾ, രണ്ട് സംഖ്യകളുടെ ഏറ്റവും വലിയ പൊതു വിഭജനം കണ്ടെത്തൽ മുതലായവ) പുരാതന കാലം മുതൽ മനുഷ്യരാശിക്ക് അറിയാം. എന്നിരുന്നാലും, ഒരു അൽഗോരിതം എന്ന വ്യക്തമായ ആശയം രൂപപ്പെട്ടത് ഇരുപതാം നൂറ്റാണ്ടിന്റെ തുടക്കത്തിൽ മാത്രമാണ്.

ഒരു അൽഗോരിതം എന്ന ആശയത്തിന്റെ ഭാഗിക ഔപചാരികവൽക്കരണം ആരംഭിച്ചത് റെസല്യൂഷൻ പ്രശ്നം പരിഹരിക്കാനുള്ള ശ്രമങ്ങളോടെയാണ് (ജർമ്മൻ. Entscheidungs ​​പ്രശ്നം 1928-ൽ ഡേവിഡ് ഹിൽബർട്ട് രൂപപ്പെടുത്തിയതാണ്. കാര്യക്ഷമമായ ഒരു കണക്കുകൂട്ടൽ അല്ലെങ്കിൽ "കാര്യക്ഷമമായ രീതി" നിർവചിക്കുന്നതിന് ഇനിപ്പറയുന്ന ഔപചാരിക ഘട്ടങ്ങൾ ആവശ്യമാണ്; അത്തരം ഔപചാരികതകളിൽ ഗോഡൽ-ഹെർബ്രാൻഡ്-ക്ലീൻ ആവർത്തന പ്രവർത്തനങ്ങൾ, അലോൻസോ ചർച്ചിന്റെ λ-കാൽക്കുലസ്, എമിൽ പോസ്റ്റിന്റെ 1936 ഫോർമുലേഷൻ 1, ട്യൂറിംഗ് മെഷീൻ എന്നിവ ഉൾപ്പെടുന്നു. മെത്തഡോളജിയിൽ, അൽഗോരിതം ഒരു അടിസ്ഥാന ആശയമാണ്, അത് പ്രവചിച്ച കേവലതയെ സമീപിക്കുമ്പോൾ ഗുണപരമായി ഒരു പുതിയ ആശയം ഒപ്റ്റിമലിറ്റിയായി സ്വീകരിക്കുന്നു. ആധുനിക ലോകത്ത്, ഔപചാരികമായ ആവിഷ്കാരത്തിലെ ഒരു അൽഗോരിതം ഉദാഹരണങ്ങളും സമാനതയും ഉപയോഗിച്ച് വിദ്യാഭ്യാസത്തിന്റെ അടിസ്ഥാനമായി മാറുന്നു. പ്രവർത്തനത്തിന്റെ വിവിധ മേഖലകളിലെ അൽഗോരിതങ്ങളുടെ സമാനതയെ അടിസ്ഥാനമാക്കി, വിദഗ്ദ്ധ സംവിധാനങ്ങളുടെ ആശയം (സിദ്ധാന്തം) രൂപീകരിച്ചു.

പദത്തിന്റെ ചരിത്രം

ട്യൂറിംഗ്, പോസ്റ്റ്, ചർച്ച് (ചർച്ച്-ട്യൂറിംഗ് തീസിസ്), എൻ വീനർ, എ.

"അൽഗോരിതം" എന്ന വാക്ക് തന്നെ ഖോറെസ്ം ശാസ്ത്രജ്ഞനായ അബു അബ്ദുല്ല മുഹമ്മദ് ഇബ്ൻ മൂസ അൽ-ഖോറെസ്മിയുടെ (അൽഗോരിതം - അൽ-ഖോറെസ്മി) പേരിൽ നിന്നാണ് വന്നത്. 825-ൽ അദ്ദേഹം ഒരു ഉപന്യാസം എഴുതി, അതിൽ അദ്ദേഹം ആദ്യമായി ഇന്ത്യയിൽ കണ്ടുപിടിച്ച സ്ഥാന ദശാംശ സംഖ്യാ സമ്പ്രദായത്തെക്കുറിച്ച് വിവരിച്ചു. നിർഭാഗ്യവശാൽ, പുസ്തകത്തിന്റെ പേർഷ്യൻ ഒറിജിനൽ നിലനിൽക്കുന്നില്ല. അൽ-ഖ്വാരിസ്മി പുതിയ സമ്പ്രദായത്തിൽ കണക്കുകൂട്ടൽ നിയമങ്ങൾ രൂപീകരിച്ചു, ഒരു സംഖ്യയുടെ നൊട്ടേഷനിൽ നഷ്ടപ്പെട്ട സ്ഥാനം സൂചിപ്പിക്കാൻ 0 എന്ന നമ്പർ ആദ്യമായി ഉപയോഗിച്ചത് ഇതായിരിക്കാം (അതിന്റെ ഇന്ത്യൻ പേര് അറബികൾ വിവർത്തനം ചെയ്തത് as-sifrഅല്ലെങ്കിൽ ലളിതമായി sifr, അതിനാൽ "അക്കം", "സിഫർ" തുടങ്ങിയ വാക്കുകൾ). ഏതാണ്ട് ഇതേ സമയത്താണ് മറ്റ് അറബ് പണ്ഡിതന്മാരും ഇന്ത്യൻ അക്കങ്ങൾ ഉപയോഗിക്കാൻ തുടങ്ങിയത്. പന്ത്രണ്ടാം നൂറ്റാണ്ടിന്റെ ആദ്യ പകുതിയിൽ, അൽ-ഖ്വാരിസ്മിയുടെ ഒരു ലാറ്റിൻ വിവർത്തനത്തിലുള്ള പുസ്തകം യൂറോപ്പിലേക്ക് തുളച്ചുകയറി. പേരു വന്നിട്ടില്ലാത്ത വിവർത്തകൻ ആ പേര് നൽകി അൽഗോരിറ്റ്മി ഡി ന്യൂമെറോ ഇൻഡോറം("ഇന്ത്യൻ കൗണ്ടിംഗിനെക്കുറിച്ചുള്ള അൽഗോരിതം"). അറബിയിൽ പുസ്തകത്തിന്റെ പേര് കിതാബ് അൽ-ജബ്ർ വൽ-മുഖബാല("കൂട്ടിക്കലിനെയും കുറയ്ക്കലിനെയും കുറിച്ചുള്ള ഒരു പുസ്തകം"). ആൾജിബ്ര (ആൾജിബ്ര - അൽ-ജബർ - പൂർത്തീകരണം) എന്ന വാക്ക് പുസ്തകത്തിന്റെ യഥാർത്ഥ തലക്കെട്ടിൽ നിന്നാണ് വന്നത്.

അങ്ങനെ, മധ്യേഷ്യൻ ശാസ്ത്രജ്ഞന്റെ ലാറ്റിനൈസ് ചെയ്ത പേര് പുസ്തകത്തിന്റെ ശീർഷകത്തിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ടെന്ന് ഞങ്ങൾ കാണുന്നു, ഈ കൃതിക്ക് കൃത്യമായി നന്ദി പറഞ്ഞാണ് “അൽഗോരിതം” എന്ന വാക്ക് യൂറോപ്യൻ ഭാഷകളിൽ പ്രവേശിച്ചതെന്ന് ഇന്ന് വിശ്വസിക്കപ്പെടുന്നു. എന്നിരുന്നാലും, അതിന്റെ അർത്ഥത്തെക്കുറിച്ചുള്ള ചോദ്യം വളരെക്കാലമായി കടുത്ത ചർച്ചയ്ക്ക് കാരണമായി. നിരവധി നൂറ്റാണ്ടുകളായി, ഈ വാക്കിന്റെ ഉത്ഭവത്തിന് വിവിധ വിശദീകരണങ്ങൾ നൽകിയിട്ടുണ്ട്.

ചിലർ കൊണ്ടുവന്നു അൽഗോരിസംഗ്രീക്കിൽ നിന്ന് അൽജിറോസ്(രോഗം) ഒപ്പം അരിത്മോസ്(നമ്പർ). ഈ വിശദീകരണത്തിൽ നിന്ന് അക്കങ്ങൾ എന്തുകൊണ്ടാണ് "രോഗം" എന്ന് വളരെ വ്യക്തമല്ല. അതോ കണക്കു കൂട്ടൽ ദുരവസ്ഥയുള്ളവരെ ഭാഷാശാസ്ത്രജ്ഞർ രോഗികളായി കണക്കാക്കിയോ? ബ്രോക്ക്ഹോസിന്റെയും എഫ്രോണിന്റെയും വിജ്ഞാനകോശ നിഘണ്ടുവും അതിന്റെ വിശദീകരണം നൽകി. അവനിൽ അൽഗോരിതം(വഴിയിൽ, വിപ്ലവത്തിന് മുമ്പ് അക്ഷരവിന്യാസം ഉപയോഗിച്ചിരുന്നു അൽഗോരിതം, ഫിതയിലൂടെ) "അറബിക് പദമായ അൽ-ഗോറെറ്റ്ം, അതായത് റൂട്ട്" എന്നതിൽ നിന്നാണ് ഉരുത്തിരിഞ്ഞത്. തീർച്ചയായും, ഈ വിശദീകരണങ്ങൾ ബോധ്യപ്പെടുത്തുന്നതായി കണക്കാക്കാനാവില്ല.

അൽ-ഖ്വാരിസ്മിയുടെ കൃതിയുടെ മുകളിൽ സൂചിപ്പിച്ച വിവർത്തനം ആദ്യ അടയാളമായി മാറി, അടുത്ത ഏതാനും നൂറ്റാണ്ടുകളിൽ മറ്റ് നിരവധി കൃതികൾ ഇതേ വിഷയത്തിനായി സമർപ്പിച്ചു - അക്കങ്ങൾ ഉപയോഗിച്ച് എണ്ണുന്ന കല പഠിപ്പിക്കുന്നു. അവർക്കെല്ലാം തലക്കെട്ടിൽ വാക്ക് ഉണ്ടായിരുന്നു അൽഗോരിതംഅഥവാ അൽഗോരിസ്മി.

പിൽക്കാല രചയിതാക്കൾക്ക് അൽ-ഖോറെസ്മിയെക്കുറിച്ച് ഒന്നും അറിയില്ലായിരുന്നു, പക്ഷേ പുസ്തകത്തിന്റെ ആദ്യ വിവർത്തനം ആരംഭിക്കുന്നത് "ദീക്ഷിത് അൽഗോറിസ്മി: ..." ("അൽ-ഖോറെസ്മി പറഞ്ഞു: ..."), അവർ ഇപ്പോഴും ഈ പദത്തെ ഒരു നിർദ്ദിഷ്ട പേരുമായി ബന്ധപ്പെടുത്തി. വ്യക്തി. വളരെ സാധാരണമായ ഒരു പതിപ്പ് പുസ്തകത്തിന്റെ ഗ്രീക്ക് ഉത്ഭവമായിരുന്നു. 13-ാം നൂറ്റാണ്ടിലെ ഒരു ആംഗ്ലോ-നോർമൻ കയ്യെഴുത്തുപ്രതിയിൽ, വാക്യത്തിൽ എഴുതിയത്, നാം വായിക്കുന്നു:

സംഖ്യകൾ ഉപയോഗിച്ച് എണ്ണുന്ന കലയാണ് അൽഗോരിതം, എന്നാൽ ആദ്യം "അക്കം" എന്ന വാക്ക് പൂജ്യത്തെ മാത്രമേ പരാമർശിച്ചിട്ടുള്ളൂ. പ്രശസ്ത ഫ്രഞ്ച് ട്രൂവർ ഗൗട്ടിയർ ഡി കോയിൻസി (1177-1236) ഈ വാക്കുകൾ ഉപയോഗിച്ചു. അൽഗോരിസ്മസ്-സിഫർ(അതിന്റെ അർത്ഥം നമ്പർ 0) തീർത്തും വിലയില്ലാത്ത ഒരു വ്യക്തിയെ ചിത്രീകരിക്കുന്നതിനുള്ള ഒരു രൂപകമായി. വ്യക്തമായും, അത്തരമൊരു ചിത്രം മനസ്സിലാക്കുന്നതിന് ശ്രോതാക്കൾക്ക് ഉചിതമായ പരിശീലനം ആവശ്യമാണ്, അതിനർത്ഥം പുതിയ നമ്പർ സിസ്റ്റം അവർക്ക് ഇതിനകം നന്നായി അറിയാമായിരുന്നു എന്നാണ്.

നിരവധി നൂറ്റാണ്ടുകളായി, പ്രായോഗിക കണക്കുകൂട്ടലുകൾക്കുള്ള ഏക മാർഗം അബാക്കസ് ആയിരുന്നു; ഇത് വ്യാപാരികളും പണം മാറ്റുന്നവരും ശാസ്ത്രജ്ഞരും ഉപയോഗിച്ചിരുന്നു. 999-ൽ സിൽവസ്റ്റർ രണ്ടാമൻ എന്ന പേരിൽ മാർപാപ്പയായ ഹെർബർട്ട് ഓഫ് അവ്‌റിലാക്കിനെ (938-1003) പോലുള്ള ഒരു മികച്ച ചിന്തകൻ അദ്ദേഹത്തിന്റെ രചനകളിൽ കൗണ്ടിംഗ് ബോർഡിലെ കണക്കുകൂട്ടലുകളുടെ ഗുണങ്ങൾ വിശദീകരിച്ചു. പുതിയത് വളരെ പ്രയാസത്തോടെ കണ്ടെത്തി, ഗണിതശാസ്ത്രത്തിന്റെ ചരിത്രത്തിൽ അൽഗോറിസ്മിസ്റ്റുകളുടെയും അബാസിസ്റ്റുകളുടെയും (ചിലപ്പോൾ ഹെർബെക്കിസ്റ്റുകൾ എന്ന് വിളിക്കപ്പെടുന്ന) ക്യാമ്പുകൾ തമ്മിലുള്ള കടുത്ത ഏറ്റുമുട്ടൽ ഉൾപ്പെടുന്നു, അവർ കണക്കുകൂട്ടലുകൾക്കായി അറബി അക്കങ്ങൾക്ക് പകരം അബാക്കസ് ഉപയോഗിക്കണമെന്ന് വാദിച്ചു. പ്രശസ്ത ഫ്രഞ്ച് ഗണിതശാസ്ത്രജ്ഞനായ നിക്കോളാസ് ചുക്വെറ്റ് (1445-1488) ലിയോൺ നഗരത്തിലെ നികുതിദായകരുടെ രജിസ്റ്ററിൽ ഒരു അൽഗോറിസ്റ്റായി ഉൾപ്പെടുത്തിയത് രസകരമാണ്. എന്നാൽ പുതിയ കൗണ്ടിംഗ് രീതി നിലവിൽ വരുന്നതിന് മുമ്പ് ഒരു നൂറ്റാണ്ടിലേറെ കടന്നുപോയി; പൊതുവായി അംഗീകരിക്കപ്പെട്ട നൊട്ടേഷനുകൾ വികസിപ്പിക്കുന്നതിനും, പേപ്പറിൽ രേഖപ്പെടുത്തുന്നതിനുള്ള കണക്കുകൂട്ടൽ രീതികൾ മെച്ചപ്പെടുത്തുന്നതിനും പൊരുത്തപ്പെടുത്തുന്നതിനും വളരെയധികം സമയമെടുത്തു. പടിഞ്ഞാറൻ യൂറോപ്പിൽ, ഗണിതശാസ്ത്രജ്ഞനായ നിക്കോളോ ടാർടാഗ്ലിയ (1500-1557) പോലെയുള്ള ഗണിതശാസ്ത്ര അധ്യാപകരെ പതിനേഴാം നൂറ്റാണ്ട് വരെ "അബാക്കസിന്റെ മാസ്റ്റേഴ്സ്" എന്ന് വിളിച്ചിരുന്നു.

അതിനാൽ, എണ്ണുന്ന കലയെക്കുറിച്ചുള്ള സൃഷ്ടികൾ വിളിച്ചു അൽഗോരിതങ്ങൾ. നൂറുകണക്കിന് നൂറുകണക്കിന്, അത്തരം അസാധാരണമായവ വാക്യത്തിൽ എഴുതിയ ഒരു ഗ്രന്ഥമായി ഒറ്റപ്പെടുത്താൻ കഴിയും കാർമെൻ ഡി അൽഗോറിസ്മോ(ലാറ്റിൻ കാർമെൻഅലക്സാണ്ടർ ഡി വില്ല ഡീയുടെ (ഡി. 1240) അല്ലെങ്കിൽ വിയന്നീസ് ജ്യോതിശാസ്ത്രജ്ഞനും ഗണിതശാസ്ത്രജ്ഞനുമായ ജോർജ്ജ് പ്യുർബാക്കിന്റെ (1423-1461) പാഠപുസ്തകം എഴുതിയത് കവിത എന്നാണ്. ഓപസ് അൽഗോറിസ്മി ജോക്കുണ്ടിസിമി("ഒരു അൽഗോരിതം സംബന്ധിച്ച ഏറ്റവും രസകരമായ ഉപന്യാസം").

ക്രമേണ വാക്കിന്റെ അർത്ഥം വികസിച്ചു. ശാസ്ത്രജ്ഞർ ഇത് പൂർണ്ണമായും ഗണിതശാസ്ത്രത്തിൽ മാത്രമല്ല, മറ്റ് ഗണിതശാസ്ത്ര നടപടിക്രമങ്ങളിലും പ്രയോഗിക്കാൻ തുടങ്ങി. ഉദാഹരണത്തിന്, 1360-ൽ ഫ്രഞ്ച് തത്ത്വചിന്തകനായ നിക്കോളാസ് ഒറെസ്മെ (1323/25-1382) ഒരു ഗണിതശാസ്ത്ര ഗ്രന്ഥം എഴുതി. അൽഗോരിസ്മസ് അനുപാതം(“അനുപാതങ്ങളുടെ കണക്കുകൂട്ടൽ”), അതിൽ അദ്ദേഹം ആദ്യമായി ഫ്രാക്ഷണൽ എക്‌സ്‌പോണന്റുകളുള്ള ശക്തികൾ ഉപയോഗിക്കുകയും യഥാർത്ഥത്തിൽ ലോഗരിതം എന്ന ആശയത്തോട് അടുക്കുകയും ചെയ്തു. അബാക്കസിന് പകരം ലൈൻ കൗണ്ടിംഗ് എന്ന് വിളിക്കപ്പെട്ടപ്പോൾ, അതിലെ നിരവധി മാനുവലുകൾ വിളിക്കാൻ തുടങ്ങി. അൽഗോരിതമസ് ലീനിയറിസ്, അതായത്, വരികൾ എണ്ണുന്നതിനുള്ള നിയമങ്ങൾ.

യഥാർത്ഥ രൂപം എന്ന് ശ്രദ്ധിക്കാവുന്നതാണ് അൽഗോരിസ്മികുറച്ച് സമയത്തിന് ശേഷം, അവസാന അക്ഷരം നഷ്ടപ്പെട്ടു, കൂടാതെ ഈ വാക്ക് യൂറോപ്യൻ ഉച്ചാരണത്തിന് കൂടുതൽ സൗകര്യപ്രദമായ ഒരു രൂപം നേടി അൽഗോരിസം. പിന്നീട്, അത് വക്രീകരണത്തിന് വിധേയമായിരുന്നു, മിക്കവാറും ഈ വാക്കുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു ഗണിതശാസ്ത്രം.

ട്യൂറിംഗ് യന്ത്രം

ട്യൂറിംഗ് മെഷീന്റെ പിന്നിലെ അടിസ്ഥാന ആശയം വളരെ ലളിതമാണ്. ചിഹ്നങ്ങൾ എഴുതിയിരിക്കുന്ന വ്യക്തിഗത സെല്ലുകളുടെ ടേപ്പിൽ പ്രവർത്തിക്കുന്ന ഒരു അമൂർത്ത യന്ത്രമാണ് (ഓട്ടോമാറ്റൺ). ടേപ്പിനൊപ്പം നീങ്ങാൻ കഴിയുന്ന സെല്ലുകളിൽ നിന്ന് അക്ഷരങ്ങൾ എഴുതാനും വായിക്കാനുമുള്ള ഒരു തലയും മെഷീനിലുണ്ട്. ഓരോ ഘട്ടത്തിലും, മെഷീൻ തല ചൂണ്ടിക്കാണിച്ച സെല്ലിൽ നിന്ന് ഒരു പ്രതീകം വായിക്കുകയും, വായനാ സ്വഭാവവും ആന്തരിക അവസ്ഥയും അടിസ്ഥാനമാക്കി, അടുത്ത ഘട്ടം എടുക്കുകയും ചെയ്യുന്നു. അതേ സമയം, മെഷീന് അതിന്റെ അവസ്ഥ മാറ്റാനും മറ്റൊരു പ്രതീകം ഒരു സെല്ലിലേക്ക് എഴുതാനും അല്ലെങ്കിൽ തല ഒരു സെല്ലിനെ വലത്തോട്ടോ ഇടത്തോട്ടോ നീക്കാനോ കഴിയും.

ഈ യന്ത്രങ്ങളെക്കുറിച്ചുള്ള പഠനത്തെ അടിസ്ഥാനമാക്കി, ട്യൂറിങ്ങിന്റെ തീസിസ് (അൽഗരിതങ്ങളുടെ പ്രധാന സിദ്ധാന്തം) മുന്നോട്ടുവച്ചു:

ഈ തീസിസ് ഒരു സിദ്ധാന്തമാണ്, ഒരു പോസ്റ്റുലേറ്റാണ്, കൂടാതെ ഗണിതശാസ്ത്ര രീതികളാൽ തെളിയിക്കാൻ കഴിയില്ല, കാരണം ഒരു അൽഗോരിതം ഒരു കൃത്യമായ ഗണിതശാസ്ത്ര ആശയമല്ല.

ആവർത്തന പ്രവർത്തനങ്ങൾ

ഓരോ അൽഗോരിതവും അത് കണക്കാക്കുന്ന പ്രവർത്തനവുമായി ബന്ധപ്പെടുത്താം. എന്നിരുന്നാലും, ചോദ്യം ഉയർന്നുവരുന്നു: ഒരു ട്യൂറിംഗ് മെഷീനുമായി ഒരു അനിയന്ത്രിതമായ ഫംഗ്ഷൻ ബന്ധപ്പെടുത്താൻ കഴിയുമോ, ഇല്ലെങ്കിൽ, ഏത് പ്രവർത്തനങ്ങൾക്കായി ഒരു അൽഗോരിതം ഉണ്ട്? ഈ ചോദ്യങ്ങളെക്കുറിച്ചുള്ള ഗവേഷണം 1930-കളിൽ ആവർത്തന പ്രവർത്തനങ്ങളുടെ സിദ്ധാന്തം സൃഷ്ടിക്കുന്നതിലേക്ക് നയിച്ചു.

കംപ്യൂട്ടബിൾ ഫംഗ്‌ഷനുകളുടെ ക്ലാസ്, ആക്സിയോമുകളുടെ ഒരു സിസ്റ്റത്തെ അടിസ്ഥാനമാക്കിയുള്ള ചില ആക്‌സിയോമാറ്റിക് സിദ്ധാന്തത്തിന്റെ നിർമ്മാണത്തെ അനുസ്മരിപ്പിക്കുന്ന ഒരു ചിത്രത്തിലാണ് എഴുതിയിരിക്കുന്നത്. ആദ്യം, ഏറ്റവും ലളിതമായ പ്രവർത്തനങ്ങൾ തിരഞ്ഞെടുത്തു, അതിന്റെ കണക്കുകൂട്ടൽ വ്യക്തമാണ്. നിലവിലുള്ളവയെ അടിസ്ഥാനമാക്കി പുതിയ ഫംഗ്ഷനുകൾ നിർമ്മിക്കുന്നതിനുള്ള നിയമങ്ങൾ (ഓപ്പറേറ്റർമാർ) രൂപീകരിച്ചു. ആവശ്യമായ ക്ലാസ് ഫംഗ്‌ഷനുകൾ ഓപ്പറേറ്റർമാരെ ഉപയോഗിച്ച് ഏറ്റവും ലളിതമായതിൽ നിന്ന് നേടാനാകുന്ന എല്ലാ ഫംഗ്ഷനുകളും ഉൾക്കൊള്ളുന്നു.

ട്യൂറിങ്ങിന്റെ തീസിസിന് സമാനമായി, കമ്പ്യൂട്ടേഷണൽ ഫംഗ്‌ഷനുകളുടെ സിദ്ധാന്തത്തിൽ ഒരു സിദ്ധാന്തം മുന്നോട്ട് വച്ചിട്ടുണ്ട് സഭയുടെ തീസിസ്:

കമ്പ്യൂട്ടബിൾ ഫംഗ്‌ഷനുകളുടെ ക്ലാസ് ട്യൂറിംഗുമായി പൊരുത്തപ്പെടുന്നുവെന്ന് തെളിയിക്കുന്നത് രണ്ട് ഘട്ടങ്ങളിലായാണ് സംഭവിക്കുന്നത്: ആദ്യം, ട്യൂറിംഗ് മെഷീനിലെ ഏറ്റവും ലളിതമായ ഫംഗ്ഷനുകളുടെ കണക്കുകൂട്ടൽ അവർ തെളിയിക്കുന്നു, തുടർന്ന് ഓപ്പറേറ്റർമാരുടെ പ്രയോഗത്തിന്റെ ഫലമായി ലഭിച്ച ഫംഗ്ഷനുകളുടെ കണക്കുകൂട്ടൽ.

അതിനാൽ, അനൗപചാരികമായി, ഒരു പ്രാരംഭ ഡാറ്റയിൽ നിന്ന് (ഇൻപുട്ട്) ആവശ്യമുള്ള ഫലത്തിലേക്ക് (ഔട്ട്പുട്ട്) നയിക്കുന്ന ഒരു വ്യതിരിക്തവും നിർണ്ണായകവുമായ പ്രക്രിയയെ നിർവചിക്കുന്ന ഒരു കൃത്യമായ നിർദ്ദേശ സംവിധാനമായി ഒരു അൽഗോരിതം നിർവചിക്കാം, അത് നിലവിലുണ്ടെങ്കിൽ, പരിമിതമായ ഘട്ടങ്ങളിൽ; ആവശ്യമുള്ള ഫലം നിലവിലില്ലെങ്കിൽ, അൽഗോരിതം ഒന്നുകിൽ ഒരിക്കലും പൂർത്തിയാകില്ല അല്ലെങ്കിൽ ഒരു അവസാനത്തിൽ എത്തില്ല.

സാധാരണ മാർക്കോവ് അൽഗോരിതം

സാധാരണ മാർക്കോവ് അൽഗോരിതം എന്നത് ഒരു നിശ്ചിത അക്ഷരമാലയിലെ പ്രതീകങ്ങളിൽ നിന്ന് നിർമ്മിച്ച അടിസ്ഥാന പദങ്ങളിൽ നിന്ന് പുതിയ വാക്കുകൾ ലഭിക്കുന്നതിനുള്ള ചില നടപടിക്രമങ്ങൾ നടപ്പിലാക്കുന്ന പകരക്കാരുടെ തുടർച്ചയായ പ്രയോഗങ്ങളുടെ ഒരു സംവിധാനമാണ്. ട്യൂറിംഗ് യന്ത്രം പോലെ, സാധാരണ അൽഗോരിതങ്ങൾകണക്കുകൂട്ടലുകൾ സ്വയം നടത്തരുത്: നൽകിയിരിക്കുന്ന നിയമങ്ങൾക്കനുസൃതമായി അക്ഷരങ്ങൾ മാറ്റിസ്ഥാപിച്ചുകൊണ്ട് വാക്കുകളുടെ പരിവർത്തനം മാത്രമേ അവ നിർവഹിക്കൂ.

സാധാരണയായി കണക്കാക്കാവുന്നതാണ്ഒരു സാധാരണ അൽഗോരിതം ഉപയോഗിച്ച് നടപ്പിലാക്കാൻ കഴിയുന്ന ഒരു ഫംഗ്ഷനാണ്. അതായത്, ഒരു ഫംഗ്ഷന്റെ സാധുവായ ഡാറ്റയുടെ സെറ്റിൽ നിന്ന് ഓരോ വാക്കും അതിന്റെ യഥാർത്ഥ മൂല്യങ്ങളാക്കി മാറ്റുന്ന ഒരു അൽഗോരിതം.

സാധാരണ അൽഗോരിതം സിദ്ധാന്തത്തിന്റെ സ്രഷ്ടാവ്, എ.എ. മാർക്കോവ്, മാർക്കോവ് നോർമലൈസേഷൻ തത്വം എന്ന ഒരു സിദ്ധാന്തം മുന്നോട്ടുവച്ചു:

ട്യൂറിങ്ങിന്റെയും ചർച്ചിന്റെയും തീസിസ് പോലെ, മാർക്കോവിന്റെ നോർമലൈസേഷൻ തത്വം ഗണിതശാസ്ത്രപരമായി തെളിയിക്കാനാവില്ല.

സ്ഥായിയായ അൽഗോരിതങ്ങൾ

എന്നിരുന്നാലും, ഒരു അൽഗോരിതത്തിന്റെ മേൽപ്പറഞ്ഞ ഔപചാരിക നിർവചനം ചില സന്ദർഭങ്ങളിൽ വളരെ കർശനമായേക്കാം. ചിലപ്പോൾ റാൻഡം വേരിയബിളുകൾ ഉപയോഗിക്കേണ്ട ആവശ്യമുണ്ട്. പ്രാരംഭ ഡാറ്റ മാത്രമല്ല, ഒരു റാൻഡം നമ്പർ ജനറേറ്ററിൽ നിന്ന് ലഭിച്ച മൂല്യങ്ങളും ഉപയോഗിച്ച് പ്രവർത്തനം നിർണ്ണയിക്കുന്ന ഒരു അൽഗോരിതം എന്ന് വിളിക്കുന്നു. സ്ഥായിയായ(അല്ലെങ്കിൽ ക്രമരഹിതമായി, ഇംഗ്ലീഷിൽ നിന്ന്. ക്രമരഹിതമായ അൽഗോരിതം) ഔപചാരികമായി, അത്തരം അൽഗരിതങ്ങളെ അൽഗരിതങ്ങൾ എന്ന് വിളിക്കാൻ കഴിയില്ല, കാരണം അവ നിർത്താതിരിക്കാനുള്ള സാധ്യത (പൂജ്യം അടുത്ത്) ഉണ്ട്. എന്നിരുന്നാലും, സ്ഥിരമായ അൽഗോരിതങ്ങൾ പലപ്പോഴും നിർണ്ണായകമായതിനേക്കാൾ കൂടുതൽ ഫലപ്രദമാണ്, ചില സന്ദർഭങ്ങളിൽ അവ ഒരു പ്രശ്നം പരിഹരിക്കാനുള്ള ഏക മാർഗമാണ്.

പ്രായോഗികമായി, ഒരു റാൻഡം നമ്പർ ജനറേറ്ററിന് പകരം, ഒരു സ്യൂഡോറാൻഡം നമ്പർ ജനറേറ്റർ ഉപയോഗിക്കുന്നു.

എന്നിരുന്നാലും, ഉയർന്ന സംഭാവ്യതയോടെ ശരിയായ ഫലം നൽകുന്ന സ്റ്റോക്കാസ്റ്റിക് അൽഗോരിതങ്ങളും രീതികളും തമ്മിൽ വേർതിരിച്ചറിയണം. രീതിയിൽ നിന്ന് വ്യത്യസ്തമായി, നീണ്ട ജോലിക്ക് ശേഷവും അൽഗോരിതം ശരിയായ ഫലങ്ങൾ നൽകുന്നു.

അറിയപ്പെടുന്ന ചില പ്രോബബിലിറ്റികൾക്കൊപ്പം ഒരു സ്റ്റോക്കാസ്റ്റിക് അൽഗോരിതം തെറ്റായ ഫലം നൽകാനുള്ള സാധ്യത ചില ഗവേഷകർ സമ്മതിക്കുന്നു. അപ്പോൾ സ്റ്റോക്കാസ്റ്റിക് അൽഗോരിതങ്ങളെ രണ്ട് തരങ്ങളായി തിരിക്കാം:

  • അൽഗോരിതങ്ങൾ ലാസ് വെഗാസ് പോലെഎല്ലായ്പ്പോഴും ശരിയായ ഫലം നൽകുക, പക്ഷേ അവയുടെ പ്രവർത്തന സമയം നിർവചിച്ചിട്ടില്ല.
  • അൽഗോരിതങ്ങൾ മോണ്ടെ കാർലോ തരം, മുമ്പത്തേതിൽ നിന്ന് വ്യത്യസ്തമായി, അറിയപ്പെടുന്ന പ്രോബബിലിറ്റി ഉപയോഗിച്ച് തെറ്റായ ഫലങ്ങൾ നൽകാൻ കഴിയും (അവ പലപ്പോഴും വിളിക്കപ്പെടുന്നു മോണ്ടെ കാർലോ രീതികൾ).

മറ്റ് ഔപചാരികതകൾ

ചില പ്രശ്നങ്ങൾക്ക്, മേൽപ്പറഞ്ഞ ഔപചാരികതകൾ പരിഹാരങ്ങൾ കണ്ടെത്തുന്നതിനും ഗവേഷണം നടത്തുന്നതിനും ബുദ്ധിമുട്ടുണ്ടാക്കിയേക്കാം. തടസ്സങ്ങൾ മറികടക്കാൻ, "ക്ലാസിക്കൽ" സ്കീമുകളുടെയും പുതിയ അൽഗോരിതം മോഡലുകളുടെയും രണ്ട് പരിഷ്കാരങ്ങളും സൃഷ്ടിച്ചു. പ്രത്യേകിച്ചും, നമുക്ക് പേര് നൽകാം:

  • മൾട്ടി-ടേപ്പ്, നോൺ-ഡിറ്റർമിനിസ്റ്റിക് ട്യൂറിംഗ് മെഷീനുകൾ;
  • രജിസ്റ്ററും റാം മെഷീനും - ആധുനിക കമ്പ്യൂട്ടറുകളുടെയും വെർച്വൽ മെഷീനുകളുടെയും ഒരു പ്രോട്ടോടൈപ്പ്;

മറ്റുള്ളവരും.

അൽഗോരിതങ്ങളുടെ ഔപചാരിക സവിശേഷതകൾ

ഒരു അൽഗോരിതത്തിന്റെ വിവിധ നിർവചനങ്ങൾ, വ്യക്തമായോ അല്ലെങ്കിൽ പരോക്ഷമായോ, പൊതുവായ ആവശ്യകതകളുടെ ഇനിപ്പറയുന്ന ശ്രേണി ഉൾക്കൊള്ളുന്നു:

അൽഗോരിതങ്ങളുടെ തരങ്ങൾ

ചില പ്രായോഗിക പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ രൂപകൽപ്പന ചെയ്ത പ്രയോഗിച്ച അൽഗോരിതങ്ങൾ ഒരു പ്രത്യേക പങ്ക് വഹിക്കുന്നു. പ്രശ്നത്തിന്റെ ആവശ്യകതകൾ നിറവേറ്റുന്ന ഒരു അൽഗോരിതം ശരിയായതായി കണക്കാക്കുന്നു (ഉദാഹരണത്തിന്, ഇത് ഭൗതികമായി വിശ്വസനീയമായ ഫലം നൽകുന്നു). ഒരു അൽഗോരിതം (പ്രോഗ്രാം) ചില പ്രാരംഭ ഡാറ്റയ്ക്ക് തെറ്റായ ഫലങ്ങൾ നൽകുന്നു, പരാജയങ്ങൾ, പരാജയങ്ങൾ അല്ലെങ്കിൽ ഫലങ്ങളൊന്നും നൽകുന്നില്ലെങ്കിൽ പിശകുകൾ അടങ്ങിയിരിക്കുന്നു. പങ്കെടുക്കുന്നവർ സമാഹരിച്ച പ്രോഗ്രാമുകൾ വിലയിരുത്താൻ അൽഗോരിതമിക് പ്രോഗ്രാമിംഗ് ഒളിമ്പ്യാഡുകളിൽ അവസാന തീസിസ് ഉപയോഗിക്കുന്നു.

ഒരു ഫംഗ്‌ഷൻ വിലയിരുത്തുന്നതിന്റെ ഫലം ലോജിക്കൽ എക്‌സ്‌പ്രഷൻ “ശരി” അല്ലെങ്കിൽ “തെറ്റ്” (അല്ലെങ്കിൽ സെറ്റ് (0, 1)) എന്നതിനെ ഒരു പ്രശ്നം എന്ന് വിളിക്കുന്നു, ഇത് ഫംഗ്‌ഷന്റെ കമ്പ്യൂട്ടബിലിറ്റിയെ ആശ്രയിച്ച് പരിഹരിക്കാവുന്നതോ പരിഹരിക്കാനാവാത്തതോ ആകാം.

ഇൻപുട്ട് ഡാറ്റയുടെ സാധുവായ സെറ്റ് കൃത്യമായി വ്യക്തമാക്കേണ്ടത് പ്രധാനമാണ്, കാരണം ഒരു പ്രശ്നം ഒരു സെറ്റിന് പരിഹരിക്കാവുന്നതും മറ്റൊന്നിന് പരിഹരിക്കാൻ കഴിയാത്തതുമാണ്.

പരിഹരിക്കാൻ കഴിയില്ലെന്ന് തെളിയിക്കപ്പെട്ട ആദ്യത്തെ പ്രശ്നങ്ങളിലൊന്നാണ് നിർത്തൽ പ്രശ്നം. ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ രൂപപ്പെടുത്തിയിരിക്കുന്നു:

സ്റ്റോപ്പിംഗ് പ്രശ്‌നത്തിന്റെ പരിഹരിക്കാനാകാത്തത് തെളിയിക്കുന്നത് പ്രധാനമാണ്, കാരണം മറ്റ് പ്രശ്‌നങ്ങൾ അതിലേക്ക് ചുരുക്കാം. ഉദാഹരണത്തിന്, ലളിതമായ സ്റ്റോപ്പിംഗ് പ്രശ്‌നം ശൂന്യമായ ലൈൻ പ്രശ്‌നത്തിലെ സ്റ്റോപ്പിംഗായി ചുരുക്കാം (ഒരു ട്യൂറിംഗ് മെഷീന് ശൂന്യമായ ലൈനിൽ പ്രവർത്തിപ്പിച്ചാൽ അത് നിർത്തുമോ എന്ന് നിങ്ങൾ നിർണ്ണയിക്കേണ്ടതുണ്ട്), അതുവഴി രണ്ടാമത്തേതിന്റെ അനിശ്ചിതത്വം തെളിയിക്കുന്നു. .

അൽഗോരിതം വിശകലനം

വിവരസാങ്കേതിക വിദ്യയുടെ വ്യാപനത്തോടൊപ്പം സോഫ്‌റ്റ്‌വെയർ തകരാറുകളുടെ സാധ്യതയും വർധിച്ചിട്ടുണ്ട്. ഗണിതശാസ്ത്ര മാർഗങ്ങൾ ഉപയോഗിച്ച് സിസ്റ്റങ്ങളുടെ കൃത്യത തെളിയിക്കുക എന്നതാണ് അൽഗോരിതങ്ങളിലും അവയുടെ നിർവ്വഹണങ്ങളിലും പിശകുകൾ ഒഴിവാക്കുന്നതിനുള്ള ഒരു മാർഗ്ഗം.

അൽഗോരിതങ്ങളും അവയുടെ നിർവ്വഹണങ്ങളും വിശകലനം ചെയ്യുന്നതിനുള്ള ഗണിത ഉപകരണത്തിന്റെ ഉപയോഗത്തെ ഔപചാരിക രീതികൾ എന്ന് വിളിക്കുന്നു. ഔപചാരികമായ രീതികളിൽ ഔപചാരികമായ സവിശേഷതകളും, സാധാരണയായി, സ്പെസിഫിക്കേഷനുകളുടെ ഗുണവിശേഷതകൾ പാഴ്സുചെയ്യുന്നതിനും തെളിയിക്കുന്നതിനുമുള്ള ഒരു കൂട്ടം ടൂളുകൾ ഉൾപ്പെടുന്നു. നടപ്പിലാക്കൽ വിശദാംശങ്ങളിൽ നിന്ന് സംഗ്രഹിക്കുന്നത് ഒരു സിസ്റ്റത്തിന്റെ ഗുണവിശേഷതകൾ അതിന്റെ നടപ്പാക്കലിൽ നിന്ന് സ്വതന്ത്രമായി സ്ഥാപിക്കാൻ അനുവദിക്കുന്നു. കൂടാതെ, ഗണിതശാസ്ത്ര പ്രസ്താവനകളുടെ കൃത്യതയും അവ്യക്തതയും സ്വാഭാവിക ഭാഷകളുടെ പോളിസെമിയും കൃത്യതയില്ലായ്മയും ഒഴിവാക്കുന്നു.

റിച്ചാർഡ് മേസിന്റെ അനുമാനം അനുസരിച്ച്, "തെറ്റുകൾ ഒഴിവാക്കുന്നതാണ് തെറ്റുകൾ ഇല്ലാതാക്കുന്നതിനേക്കാൾ നല്ലത്." ഹോറെയുടെ സിദ്ധാന്തമനുസരിച്ച്, "പ്രോഗ്രാമുകളുടെ തെളിവ് കൃത്യത, ഡോക്യുമെന്റേഷൻ, അനുയോജ്യത എന്നിവയുടെ പ്രശ്നം പരിഹരിക്കുന്നു." പ്രോഗ്രാമുകളുടെ കൃത്യത തെളിയിക്കുന്നത് ഇൻപുട്ട് ഡാറ്റയുടെ മുഴുവൻ ശ്രേണിയുമായി ബന്ധപ്പെട്ട് അവയുടെ പ്രോപ്പർട്ടികൾ തിരിച്ചറിയാൻ ഞങ്ങളെ അനുവദിക്കുന്നു. ഈ ആവശ്യത്തിനായി, കൃത്യത എന്ന ആശയം രണ്ട് തരങ്ങളായി തിരിച്ചിരിക്കുന്നു:

  • ഭാഗിക കൃത്യത- പ്രോഗ്രാം അവസാനിക്കുമ്പോൾ അത്തരം സന്ദർഭങ്ങളിൽ ശരിയായ ഫലം നൽകുന്നു.
  • പൂർണ്ണമായ കൃത്യത- പ്രോഗ്രാം പുറത്തുകടക്കുകയും ഇൻപുട്ട് ശ്രേണിയിലെ എല്ലാ ഘടകങ്ങൾക്കും ശരിയായ ഫലം നൽകുകയും ചെയ്യുന്നു.

കൃത്യത തെളിയിക്കുന്ന സമയത്ത്, ആവശ്യമുള്ള ഇൻപുട്ട്-ഔട്ട്പുട്ട് ബന്ധത്തിന്റെ സ്പെസിഫിക്കേഷനുമായി പ്രോഗ്രാം ടെക്സ്റ്റ് താരതമ്യം ചെയ്യുന്നു. ഹോർ-ടൈപ്പ് പ്രൂഫുകൾക്കായി, ഈ സ്പെസിഫിക്കേഷൻ പ്രീകണ്ടീഷനുകളും പോസ്റ്റ്കണ്ടീഷനുകളും എന്ന് വിളിക്കപ്പെടുന്ന പ്രസ്താവനകളുടെ രൂപമാണ്. പ്രോഗ്രാമിനൊപ്പം തന്നെ അവയെ ഹോറെയുടെ ട്രിപ്പിൾ എന്നും വിളിക്കുന്നു. ഈ മൊഴികൾ രേഖപ്പെടുത്തിയിട്ടുണ്ട്

പി{ക്യു} ആർ

എവിടെ പി- ഇത് പ്രോഗ്രാം ആരംഭിക്കുന്നതിന് മുമ്പ് പാലിക്കേണ്ട ഒരു മുൻവ്യവസ്ഥയാണ് ക്യു, എ ആർ- പ്രോഗ്രാം പൂർത്തിയായതിന് ശേഷം സാധുതയുള്ള ഒരു പോസ്റ്റ് കണ്ടീഷൻ.

ഇലക്ട്രോണിക് സർക്യൂട്ട് ഡിസൈൻ, ആർട്ടിഫിഷ്യൽ ഇന്റലിജൻസ്, ഓട്ടോമാറ്റിക് റെയിൽവേ സിസ്റ്റങ്ങൾ, മൈക്രോപ്രൊസസ്സർ പരിശോധന, സ്റ്റാൻഡേർഡ് സ്‌പെസിഫിക്കേഷൻ, പ്രോഗ്രാം സ്പെസിഫിക്കേഷൻ, വെരിഫിക്കേഷൻ എന്നിവയിൽ ഔപചാരികമായ രീതികൾ വിജയകരമായി പ്രയോഗിച്ചു.

ജോലിചെയ്യുന്ന സമയം

പ്രവർത്തന സമയവും ഇൻപുട്ട് ഡാറ്റയുടെ അളവ് അനുസരിച്ച് പ്രവർത്തന സമയം വർദ്ധിക്കുന്ന ക്രമവുമാണ് അൽഗോരിതങ്ങൾ വിലയിരുത്തുന്നതിനുള്ള ഒരു പൊതു മാനദണ്ഡം.

ഓരോ നിർദ്ദിഷ്ട ജോലിക്കും, അവർ ഒരു നിശ്ചിത സംഖ്യ ഉണ്ടാക്കുന്നു, അതിനെ അതിന്റെ വലുപ്പം എന്ന് വിളിക്കുന്നു. ഉദാഹരണത്തിന്, മെട്രിക്സുകളുടെ ഉൽപ്പന്നം കണക്കാക്കുന്നതിനുള്ള പ്രശ്നത്തിന്റെ വലുപ്പം മാട്രിക്സ് ഘടകങ്ങളുടെ ഏറ്റവും വലിയ വലുപ്പമായിരിക്കാം; ഗ്രാഫുകളിലെ പ്രശ്നങ്ങൾക്ക്, വലുപ്പം ഗ്രാഫിന്റെ അരികുകളുടെ എണ്ണമായിരിക്കാം.

ഒരു അൽഗോരിതം പ്രശ്നവലിപ്പത്തിന്റെ പ്രവർത്തനമായി ചെലവഴിക്കുന്ന സമയത്തെ ആ അൽഗോരിതത്തിന്റെ സമയ സങ്കീർണ്ണത എന്ന് വിളിക്കുന്നു. ടി(എൻ). പ്രശ്നത്തിന്റെ വലിപ്പം കൂടുന്നതിനനുസരിച്ച് ഈ പ്രവർത്തനത്തിന്റെ അസിംപ്റ്റോട്ടിക് സ്വഭാവത്തെ അസിംപ്റ്റോട്ടിക് ടൈം കോംപ്ലക്‌സിറ്റി എന്ന് വിളിക്കുന്നു, കൂടാതെ ഇത് സൂചിപ്പിക്കാൻ ഒരു പ്രത്യേക നൊട്ടേഷൻ ഉപയോഗിക്കുന്നു.

അൽഗോരിതം കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന പ്രശ്നങ്ങളുടെ വലുപ്പം നിർണ്ണയിക്കുന്നത് അസിംപ്റ്റോട്ടിക് സങ്കീർണ്ണതയാണ്. ഉദാഹരണത്തിന്, ഒരു അൽഗോരിതം സമയത്ത് ഇൻപുട്ട് ഡാറ്റ പ്രോസസ്സ് ചെയ്യുന്നുവെങ്കിൽ cn², എവിടെ സിചില സ്ഥിരതയുള്ളതാണ്, അപ്പോൾ അവർ പറയുന്നത് അത്തരമൊരു അൽഗോരിതത്തിന്റെ സമയ സങ്കീർണ്ണതയാണ് (എൻ²).

പലപ്പോഴും, ഒരു അൽഗോരിതം വികസിപ്പിക്കുന്ന സമയത്ത്, ഏറ്റവും മോശം സന്ദർഭങ്ങളിൽ അസിംപ്റ്റോട്ടിക് സമയ സങ്കീർണ്ണത കുറയ്ക്കാൻ ശ്രമിക്കുന്നു. പ്രായോഗികമായി, "സാധാരണയായി" വേഗത്തിൽ പ്രവർത്തിക്കുന്ന ഒരു അൽഗോരിതം മതിയാകുമ്പോൾ കേസുകളുണ്ട്.

ഏകദേശം പറഞ്ഞാൽ, ശരാശരി അസിംപ്റ്റോട്ടിക് സമയ സങ്കീർണ്ണത വിശകലനം രണ്ട് തരങ്ങളായി തിരിക്കാം: അനലിറ്റിക്കൽ, സ്റ്റാറ്റിസ്റ്റിക്കൽ. വിശകലന രീതി കൂടുതൽ കൃത്യമായ ഫലങ്ങൾ നൽകുന്നു, പക്ഷേ പ്രായോഗികമായി ഉപയോഗിക്കാൻ പ്രയാസമാണ്. എന്നാൽ സങ്കീർണ്ണമായ പ്രശ്നങ്ങൾ വേഗത്തിൽ വിശകലനം ചെയ്യാൻ സ്റ്റാറ്റിസ്റ്റിക്കൽ രീതി നിങ്ങളെ അനുവദിക്കുന്നു.

താഴെപ്പറയുന്ന പട്ടിക അഭിപ്രായങ്ങൾക്കൊപ്പം സാധാരണ അസിംപ്റ്റോട്ടിക് ബുദ്ധിമുട്ടുകൾ പട്ടികപ്പെടുത്തുന്നു.


സങ്കീർണ്ണത ഒരു അഭിപ്രായം ഉദാഹരണങ്ങൾ
(1) ടാസ്‌ക് വലുപ്പത്തിൽ നിന്ന് സ്വതന്ത്രമായ സ്ഥിരമായ റൺടൈം ഒരു ഹാഷ് പട്ടികയിൽ പ്രതീക്ഷിക്കുന്ന തിരയൽ സമയം
(ലോഗ് ലോഗ് എൻ) വളരെ സാവധാനത്തിലുള്ള വളർച്ചാ സമയം ആവശ്യമാണ് ഇന്റർപോളേറ്റിംഗ് തിരയലിന്റെ പ്രതീക്ഷിക്കുന്ന സമയം എൻഘടകങ്ങൾ
(ലോഗ് എൻ) ലോഗരിതമിക് വളർച്ച - ഒരു പ്രശ്നത്തിന്റെ വലുപ്പം ഇരട്ടിയാക്കുന്നത് പ്രവർത്തന സമയം സ്ഥിരമായ അളവിൽ വർദ്ധിപ്പിക്കുന്നു കണക്കുകൂട്ടല് x എൻ; ഒരു ശ്രേണിയിലെ ബൈനറി തിരയൽ എൻഘടകങ്ങൾ
(എൻ) ലീനിയർ ഗ്രോത്ത് - ടാസ്‌ക്കിന്റെ വലുപ്പം ഇരട്ടിയാക്കുന്നത് ആവശ്യമുള്ള സമയത്തിന്റെ ഇരട്ടിയാക്കും ഇതിൽ നിന്ന് സംഖ്യകൾ ചേർക്കുന്നു/കുറക്കുന്നു എൻസംഖ്യകൾ; ഒരു ശ്രേണിയിലെ ലീനിയർ തിരയൽ എൻഘടകങ്ങൾ
(എൻലോഗ് എൻ) ലീനിയർ റിഥമിക് വളർച്ച - പ്രശ്നത്തിന്റെ വലുപ്പം ഇരട്ടിയാക്കുന്നത് ആവശ്യമുള്ള സമയത്തിന്റെ ഇരട്ടിയേക്കാൾ അല്പം കൂടുതലായിരിക്കും ലയിപ്പിക്കുക അല്ലെങ്കിൽ കൂമ്പാരം അടുക്കുക എൻഘടകങ്ങൾ; പൊരുത്തപ്പെടുന്ന തരത്തിലുള്ള താഴ്ന്ന പരിധി എൻഘടകങ്ങൾ
(എൻ²) ചതുരാകൃതിയിലുള്ള വളർച്ച - ഒരു പ്രശ്നത്തിന്റെ വലുപ്പം ഇരട്ടിയാക്കുന്നത് ആവശ്യമായ സമയത്തെ നാലിരട്ടിയാക്കുന്നു എലിമെന്ററി സോർട്ടിംഗ് അൽഗോരിതങ്ങൾ
(എൻ³) ക്യൂബിക് വളർച്ച - ഒരു പ്രശ്നത്തിന്റെ വലിപ്പം ഇരട്ടിയാക്കുന്നത് ആവശ്യമുള്ള സമയം എട്ട് മടങ്ങ് വർദ്ധിപ്പിക്കുന്നു സാധാരണ മാട്രിക്സ് ഗുണനം
(സി എൻ) എക്‌സ്‌പോണൻഷ്യൽ വളർച്ച - പ്രശ്‌നത്തിന്റെ വലുപ്പം 1 കൊണ്ട് വർദ്ധിപ്പിക്കുന്നു സി- ആവശ്യമായ സമയത്ത് ഒന്നിലധികം വർദ്ധനവ്; ഒരു പ്രശ്നത്തിന്റെ വലിപ്പം ഇരട്ടിയാക്കുന്നത് ആവശ്യമായ സമയത്തിന്റെ നാലിരട്ടിയാക്കുന്നു ചില ട്രാവലിംഗ് സെയിൽസ്മാൻ പ്രശ്നങ്ങൾ, ബ്രൂട്ട്-ഫോഴ്സ് തിരയൽ അൽഗോരിതങ്ങൾ

പ്രാരംഭ ഡാറ്റയുടെ ലഭ്യതയും ചില ഫലങ്ങളും

ഒരു അൽഗോരിതം എന്നത് കൃത്യമായി നിർവചിക്കപ്പെട്ട നിർദ്ദേശമാണ്, അത് സോഴ്സ് ഡാറ്റയിൽ തുടർച്ചയായി പ്രയോഗിച്ചാൽ പ്രശ്നത്തിന് ഒരു പരിഹാരം ലഭിക്കും. ഓരോ അൽഗോരിതത്തിനും ഇൻപുട്ട് ഡാറ്റയായി സ്വീകാര്യമായ ഒരു നിശ്ചിത ഒബ്‌ജക്‌റ്റുകൾ ഉണ്ട്. ഉദാഹരണത്തിന്, യഥാർത്ഥ സംഖ്യകളെ ഹരിക്കുന്നതിനുള്ള അൽഗോരിതത്തിൽ, ലാഭവിഹിതം എന്തും ആകാം, എന്നാൽ വിഭജനം പൂജ്യമാകാൻ കഴിയില്ല.

അൽഗോരിതം, ഒരു നിയമമെന്ന നിലയിൽ, ഒരു പ്രത്യേക പ്രശ്നമല്ല, ഒരു പ്രത്യേക തരം പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ സഹായിക്കുന്നു. അതിനാൽ, ഏത് ജോഡി സ്വാഭാവിക സംഖ്യകൾക്കും കൂട്ടിച്ചേർക്കൽ അൽഗോരിതം ബാധകമാണ്. ഇത് അതിന്റെ മാസ് സ്വഭാവം പ്രകടിപ്പിക്കുന്നു, അതായത്, ഒരേ ക്ലാസിലെ ഏത് പ്രശ്നത്തിനും ഒരേ അൽഗോരിതം ആവർത്തിച്ച് ഉപയോഗിക്കാനുള്ള കഴിവ്.

അൽഗോരിതങ്ങളും പ്രോഗ്രാമുകളും വികസിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു അൽഗോരിതമൈസേഷൻ- നിയുക്ത പ്രയോഗിച്ച പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് വ്യവസ്ഥാപിതമായി അൽഗോരിതം സമാഹരിക്കുന്ന പ്രക്രിയ. പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്നതിലും കമ്പ്യൂട്ടറിലെ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിലും അൽഗോരിതമൈസേഷൻ ഒരു നിർബന്ധിത ഘട്ടമായി കണക്കാക്കപ്പെടുന്നു. അപ്ലൈഡ് അൽഗോരിതങ്ങൾക്കും പ്രോഗ്രാമുകൾക്കുമാണ് ഡിറ്റർമിനിസം, ഫലപ്രാപ്തി, വൻതോതിലുള്ള ഉൽപ്പാദനം, അതുപോലെ തന്നെ നിയുക്ത പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന്റെ ഫലങ്ങളുടെ കൃത്യത എന്നിവ അടിസ്ഥാനപരമായി പ്രധാനമാണ്.

ഒരു ലക്ഷ്യം കൈവരിക്കുന്നതിന് ലക്ഷ്യമിട്ടുള്ള പ്രവർത്തനങ്ങളുടെ ഒരു ക്രമം നടപ്പിലാക്കുന്നതിനുള്ള വ്യക്തവും കൃത്യവുമായ നിർദ്ദേശമാണ് അൽഗോരിതം.

അൽഗോരിതങ്ങളുടെ അവതരണം

അൽഗോരിതം റെക്കോർഡിംഗ് ഫോമുകൾ:

  • വാക്കാലുള്ള അല്ലെങ്കിൽ വാക്കാലുള്ള (ഭാഷാപരമായ, സൂത്രവാക്യ-വാക്കാലുള്ള);
  • സ്യൂഡോകോഡ് (ഔപചാരിക അൽഗോരിതം ഭാഷകൾ);
  • സ്കീമാറ്റിക്:
    • സ്ട്രക്ചർഗ്രാമുകൾ (നുസ്സി-ഷ്നൈഡർമാൻ ഡയഗ്രമുകൾ);
    • ഗ്രാഫിക് (ബ്ലോക്ക് ഡയഗ്രമുകൾ).

സാധാരണയായി, ആദ്യം (ആശയത്തിന്റെ തലത്തിൽ), അൽഗോരിതം വാക്കുകളിൽ വിവരിച്ചിരിക്കുന്നു, എന്നാൽ അത് നടപ്പിലാക്കുന്നതിനെ സമീപിക്കുമ്പോൾ, അത് കൂടുതൽ കൂടുതൽ ഔപചാരികമായ രൂപരേഖകളും രൂപീകരണവും നേടുന്നു, അവതാരകന് മനസ്സിലാക്കാവുന്ന ഭാഷയിൽ (ഉദാഹരണത്തിന്, മെഷീൻ കോഡ്).

അൽഗോരിതങ്ങളുടെ കാര്യക്ഷമത

ഒരു അൽഗരിതത്തിന്റെ നിർവചനത്തിന് ഒരു ഫലം നേടുന്നതിന് ആവശ്യമായ പരിമിതമായ ഘട്ടങ്ങൾ മാത്രമേ ആവശ്യമുള്ളൂവെങ്കിലും, പ്രായോഗികമായി, ഒരു ബില്യൺ ചുവടുകൾ പോലും എടുക്കുന്നത് വളരെ മന്ദഗതിയിലാണ്. സാധാരണയായി മറ്റ് നിയന്ത്രണങ്ങളും ഉണ്ട് (പ്രോഗ്രാമിന്റെ വലുപ്പത്തിൽ, അനുവദനീയമായ പ്രവർത്തനങ്ങളിൽ). ഇക്കാര്യത്തിൽ, അൽഗോരിതം സങ്കീർണ്ണത (സമയം, പ്രോഗ്രാം വലുപ്പം, കമ്പ്യൂട്ടേഷണൽ മുതലായവ) പോലുള്ള ആശയങ്ങൾ അവതരിപ്പിക്കുന്നു.

ഓരോ ജോലിക്കും, ലക്ഷ്യത്തിലേക്ക് നയിക്കുന്ന നിരവധി അൽഗോരിതങ്ങൾ ഉണ്ടായിരിക്കാം. ആധുനിക കമ്പ്യൂട്ടർ സയൻസിന്റെ ചുമതലകളിൽ ഒന്നാണ് അൽഗോരിതങ്ങളുടെ കാര്യക്ഷമത വർദ്ധിപ്പിക്കുക. 50-കളിൽ ഇരുപതാം നൂറ്റാണ്ടിൽ, അതിന്റെ ഒരു പ്രത്യേക പ്രദേശം പോലും പ്രത്യക്ഷപ്പെട്ടു - ഫാസ്റ്റ് അൽഗോരിതം. പ്രത്യേകിച്ചും, കുട്ടിക്കാലം മുതൽ എല്ലാവർക്കും അറിയാവുന്ന ദശാംശ സംഖ്യകളെ ഗുണിക്കുന്ന പ്രശ്നത്തിൽ, ഉൽപ്പന്നം കണ്ടെത്തുന്നത് വേഗത്തിലാക്കുന്നത് ഗണ്യമായി (അസിംപ്റ്റോട്ടിക് അർത്ഥത്തിൽ) സാധ്യമാക്കുന്ന നിരവധി അൽഗോരിതങ്ങൾ കണ്ടെത്തി. വേഗത്തിലുള്ള ഗുണനം കാണുക

ഏറ്റവും വലിയ പൊതു വിഭജനം (ജിസിഡി) കണക്കാക്കുന്നതിനുള്ള കാര്യക്ഷമമായ രീതിയാണ് യൂക്ലിഡിയൻ അൽഗോരിതം. ഗ്രീക്ക് ഗണിതശാസ്ത്രജ്ഞനായ യൂക്ലിഡിന്റെ പേരിലാണ്; ഇന്നും ഉപയോഗിക്കുന്ന ഏറ്റവും പഴയ അൽഗോരിതങ്ങളിൽ ഒന്ന്.

യൂക്ലിഡിന്റെ മൂലകങ്ങളിൽ (ഏകദേശം 300 ബിസി) വിവരിച്ചിരിക്കുന്നു, അതായത് VII, X എന്നീ പുസ്തകങ്ങളിൽ. ഏഴാമത്തെ പുസ്തകം പൂർണ്ണസംഖ്യകൾക്കായുള്ള ഒരു അൽഗോരിതം വിവരിക്കുന്നു, കൂടാതെ സെഗ്‌മെന്റുകളുടെ ദൈർഘ്യത്തിനായുള്ള പത്താമത്തെ പുസ്തകം.

അൽഗോരിതത്തിന് നിരവധി വകഭേദങ്ങളുണ്ട്; സ്യൂഡോകോഡിൽ എഴുതിയ ഒരു ആവർത്തന പതിപ്പ് ചുവടെയുണ്ട്:

പ്രവർത്തനംനോഡ്(എ, ബി) എങ്കിൽ b = 0 മടങ്ങുകഅല്ലാത്തപക്ഷം മടങ്ങുകനോഡ്(ബി, എ മോഡ് b)

1599, 650 നമ്പറുകളുടെ GCD:

ഘട്ടം 1 1599 = 650*2 + 299
ഘട്ടം 2 650 = 299*2 + 52
ഘട്ടം 3 299 = 52*5 + 39
ഘട്ടം 4 52 = 39*1 + 13
ഘട്ടം 5 39 = 13*3 + 0


ഇതും കാണുക

കുറിപ്പുകൾ

  1. ക്ലീൻ 1943 ഡേവിസിൽ 1965:274
  2. റോസ്സർ 1939 ഡേവിസിൽ 1965:225
  3. (ഇഗോഷിൻ, പേജ് 317)
  4. അടിസ്ഥാനകാര്യങ്ങൾ: ട്യൂറിംഗ് മെഷീൻ (വ്യാഖ്യാതാവിനൊപ്പം! . നല്ല കണക്ക്, മോശം കണക്ക്(ഫെബ്രുവരി 9, 2007). യഥാർത്ഥത്തിൽ നിന്ന് ഫെബ്രുവരി 2, 2012-ന് ആർക്കൈവ് ചെയ്തത്.
  5. (ഇഗോഷിൻ, സെക്ഷൻ 33)
  6. എൻസൈക്ലോപീഡിയ ഓഫ് സൈബർനെറ്റിക്സ്, വാല്യം. 2 , സി. 90-91.
  7. (ഇഗോഷിൻ, സെക്ഷൻ 34)
  8. “പ്രൊബബിലിസ്റ്റിക് അൽഗോരിതങ്ങൾ ശരിയായിരിക്കാനുള്ള ഉയർന്ന സാധ്യതയുള്ള ഒരു ഫലം പുറപ്പെടുവിക്കുന്ന രീതികൾ (അൽഗരിതങ്ങൾ എന്ന് വിളിക്കാൻ ഞാൻ വിസമ്മതിക്കുന്നു) ഉപയോഗിച്ച് തെറ്റിദ്ധരിക്കരുത്. ഒരു അൽഗോരിതം ശരിയായ ഫലങ്ങൾ (മാനുഷികമോ കമ്പ്യൂട്ടർ പിശകുകളോ കുറയ്ക്കുന്നു) ഉൽപ്പാദിപ്പിക്കേണ്ടത് അത്യന്താപേക്ഷിതമാണ്, ഇത് വളരെക്കാലം കഴിഞ്ഞ് സംഭവിക്കുകയാണെങ്കിൽ പോലും. ഹെൻറി കോഹൻകമ്പ്യൂട്ടേഷണൽ ബീജഗണിത സംഖ്യാ സിദ്ധാന്തത്തിലെ ഒരു കോഴ്സ്. - സ്പ്രിംഗർ-വെർലാഗ്, 1996. - പി. 2. - ISBN 3-540-55640-0
  9. തോമസ് എച്ച്. കോർമെൻ, ചാൾസ് ഇ. ലെയ്സർസൺ, റൊണാൾഡ് എൽ. റൈവ്സ്"ടി, ക്ലിഫോർഡ് സ്റ്റെയിൻ. - ISBN 0-262-03293-7

കമ്പ്യൂട്ടർ സയൻസിലെ അടിസ്ഥാന ആശയങ്ങളിലൊന്ന് അൽഗോരിതം എന്ന ആശയമാണ്. "അൽഗോരിതം" എന്ന പദത്തിന്റെ ഉത്ഭവം തന്നെ ഗണിതശാസ്ത്രവുമായി ബന്ധപ്പെട്ടതാണ്. ഈ വാക്ക് വരുന്നത് അൽഗോരിതം- മധ്യകാല കിഴക്കൻ മേഖലയിലെ മികച്ച ഗണിതശാസ്ത്രജ്ഞനായ മുഹമ്മദ് അൽ-ഖ്വാരിസ്മിയുടെ (787 - 850) പേരിന്റെ ലാറ്റിൻ അക്ഷരവിന്യാസം. "ഓൺ ഇന്ത്യൻ കൗണ്ടിംഗ്" എന്ന തന്റെ പുസ്തകത്തിൽ അറബി അക്കങ്ങൾ ഉപയോഗിച്ച് സ്വാഭാവിക സംഖ്യകൾ എഴുതുന്നതിനുള്ള നിയമങ്ങളും അവയിൽ പ്രവർത്തിക്കുന്നതിനുള്ള നിയമങ്ങളും ഒരു കോളത്തിൽ അദ്ദേഹം രൂപപ്പെടുത്തി. പിന്നീട്, പ്രാരംഭ ഡാറ്റയിൽ നിന്ന് ആവശ്യമായ ഫലം ലഭിക്കുന്നത് ഉറപ്പാക്കുന്ന പ്രവർത്തനങ്ങളുടെ ക്രമം നിർവചിക്കുന്ന ഒരു അൽഗോരിതം കൃത്യമായ കുറിപ്പടി എന്ന് വിളിക്കപ്പെടാൻ തുടങ്ങി. അൽഗോരിതം ഒരു മനുഷ്യനോ അല്ലെങ്കിൽ ഒരു ഓട്ടോമാറ്റിക് ഉപകരണമോ നടപ്പിലാക്കാൻ രൂപകൽപ്പന ചെയ്‌തേക്കാം. ഒരു അൽഗോരിതം സൃഷ്ടിക്കുന്നത്, ഏറ്റവും ലളിതമായത് പോലും, ഒരു സൃഷ്ടിപരമായ പ്രക്രിയയാണ്. ഇത് ജീവജാലങ്ങൾക്ക് മാത്രമായി ലഭ്യമാണ്, വളരെക്കാലമായി ഇത് മനുഷ്യർക്ക് മാത്രമാണെന്ന് വിശ്വസിക്കപ്പെട്ടു. 12-ആം നൂറ്റാണ്ടിൽ അദ്ദേഹത്തിന്റെ ഗണിതശാസ്ത്ര ഗ്രന്ഥത്തിന്റെ ഒരു ലാറ്റിൻ വിവർത്തനം നടത്തി, അതിൽ നിന്ന് യൂറോപ്യന്മാർ ദശാംശ സ്ഥാന സംഖ്യ സംവിധാനത്തെക്കുറിച്ചും മൾട്ടി അക്ക സംഖ്യകൾക്കുള്ള ഗണിത നിയമങ്ങളെക്കുറിച്ചും പഠിച്ചു. ഈ നിയമങ്ങളെ അക്കാലത്ത് അൽഗോരിതം എന്നാണ് വിളിച്ചിരുന്നത്.

മുകളിൽ നൽകിയിരിക്കുന്ന ഒരു അൽഗോരിതത്തിന്റെ നിർവചനം കർശനമായി കണക്കാക്കാൻ കഴിയില്ല - "കൃത്യമായ കുറിപ്പടി" അല്ലെങ്കിൽ "ആവശ്യമായ ഫലം ഉറപ്പാക്കുന്ന പ്രവർത്തനങ്ങളുടെ ക്രമം" എന്താണെന്ന് പൂർണ്ണമായും വ്യക്തമല്ല. അതിനാൽ, മറ്റ് നിർദ്ദേശങ്ങളിൽ നിന്ന് അൽഗോരിതങ്ങളെ വേർതിരിച്ചറിയാൻ അൽഗോരിതങ്ങളുടെ നിരവധി പൊതു സവിശേഷതകൾ സാധാരണയായി രൂപപ്പെടുത്തിയിട്ടുണ്ട്.

ഈ ഗുണങ്ങൾ ഇവയാണ്:

· വിവേചനാധികാരം (നിർത്തൽ, വേർപിരിയൽ)- അൽഗോരിതം ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പ്രക്രിയയെ ലളിതമായ (അല്ലെങ്കിൽ മുമ്പ് നിർവചിച്ച) ഘട്ടങ്ങളുടെ തുടർച്ചയായ നിർവ്വഹണമായി പ്രതിനിധീകരിക്കണം. അൽഗോരിതം നൽകുന്ന ഓരോ പ്രവർത്തനവും മുമ്പത്തെ എക്സിക്യൂഷൻ പൂർത്തിയാക്കിയതിന് ശേഷം മാത്രമേ നടപ്പിലാക്കുകയുള്ളൂ.

· ഉറപ്പ്- അൽഗോരിതത്തിന്റെ ഓരോ നിയമവും വ്യക്തവും അവ്യക്തവും ഏകപക്ഷീയതയ്ക്ക് ഇടം നൽകാത്തതുമായിരിക്കണം. ഈ പ്രോപ്പർട്ടി കാരണം, അൽഗോരിതം നിർവ്വഹിക്കുന്നത് മെക്കാനിക്കൽ സ്വഭാവമുള്ളതാണ്, കൂടാതെ പരിഹരിക്കപ്പെടുന്ന പ്രശ്നത്തെക്കുറിച്ചുള്ള അധിക നിർദ്ദേശങ്ങളോ വിവരങ്ങളോ ആവശ്യമില്ല.

· പ്രകടനം (അവയവം)- അൽഗോരിതം പരിമിതമായ ഘട്ടങ്ങളിലൂടെ പ്രശ്നം പരിഹരിക്കാൻ ഇടയാക്കണം.

· മാസ് കഥാപാത്രം- പ്രശ്നം പരിഹരിക്കുന്നതിനുള്ള അൽഗോരിതം ഒരു പൊതു രൂപത്തിലാണ് വികസിപ്പിച്ചിരിക്കുന്നത്, അതായത്, പ്രാരംഭ ഡാറ്റയിൽ മാത്രം വ്യത്യാസമുള്ള ഒരു പ്രത്യേക ക്ലാസ് പ്രശ്നങ്ങൾക്ക് ഇത് ബാധകമായിരിക്കണം. ഈ സാഹചര്യത്തിൽ, പ്രാരംഭ ഡാറ്റ എന്ന് വിളിക്കപ്പെടുന്ന ഒരു പ്രത്യേക ഏരിയയിൽ നിന്ന് തിരഞ്ഞെടുക്കാം അൽഗോരിതത്തിന്റെ പ്രയോഗക്ഷമതയുടെ മേഖല.

ഈ ഗുണങ്ങളെ അടിസ്ഥാനമാക്കി, ഒരു അൽഗൊരിതത്തിന്റെ നിർവചനം ചിലപ്പോൾ നൽകാറുണ്ട്, ഉദാഹരണത്തിന്: "ഒരു അൽഗോരിതം എന്നത് ഗണിതശാസ്ത്രപരമോ ലോജിക്കൽ അല്ലെങ്കിൽ സംയോജിതമോ ആയ പ്രവർത്തനങ്ങളുടെ ഒരു ശ്രേണിയാണ്, ഇത് നിർണ്ണായകത, ബഹുജന സ്വഭാവം, ദിശാബോധം, തന്നിരിക്കുന്ന എല്ലാ പ്രശ്നങ്ങളുടെയും പരിഹാരത്തിലേക്ക് നയിക്കുന്നു. പരിമിതമായ ഘട്ടങ്ങളിൽ ക്ലാസ്. "അൽഗോരിതം" എന്ന ആശയത്തിന്റെ ഈ വ്യാഖ്യാനം അപൂർണ്ണവും കൃത്യമല്ലാത്തതുമാണ്. ഒന്നാമതായി, ഏതെങ്കിലും പ്രശ്നത്തിന്റെ പരിഹാരവുമായി ഒരു അൽഗോരിതം ബന്ധപ്പെടുത്തുന്നത് തെറ്റാണ്. അൽഗോരിതം ഒരു പ്രശ്നവും പരിഹരിച്ചേക്കില്ല. രണ്ടാമതായി, "പിണ്ഡം" എന്ന ആശയം അൽഗോരിതങ്ങളെ അല്ല, പൊതുവെ ഗണിതശാസ്ത്ര രീതികളെയാണ് സൂചിപ്പിക്കുന്നത്. ഗണിതശാസ്ത്ര രീതികൾ ഉപയോഗിച്ച് പരിശീലിക്കുന്ന പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നത് അമൂർത്തതയെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് - ഒരു നിശ്ചിത ശ്രേണിയിലെ പ്രതിഭാസങ്ങളുടെ സ്വഭാവ സവിശേഷതകളായ നിരവധി അവശ്യ സവിശേഷതകൾ ഞങ്ങൾ തിരിച്ചറിയുകയും ഈ സവിശേഷതകളെ അടിസ്ഥാനമാക്കി ഒരു ഗണിതശാസ്ത്ര മാതൃക നിർമ്മിക്കുകയും ഓരോ നിർദ്ദിഷ്ട പ്രതിഭാസത്തിന്റെയും അപ്രധാന സവിശേഷതകൾ നിരസിക്കുകയും ചെയ്യുന്നു. ഈ അർത്ഥത്തിൽ, ഏതൊരു ഗണിതശാസ്ത്ര മോഡലിനും ബഹുജന ഉൽപാദനത്തിന്റെ സ്വത്തുണ്ട്. നിർമ്മിച്ച മോഡലിന്റെ ചട്ടക്കൂടിനുള്ളിൽ, ഞങ്ങൾ ഒരു പ്രശ്നം പരിഹരിക്കുകയും ഒരു അൽഗോരിതം രൂപത്തിൽ പരിഹാരം അവതരിപ്പിക്കുകയും ചെയ്താൽ, പരിഹാരം ഗണിതശാസ്ത്ര രീതികളുടെ സ്വഭാവം കാരണം "ബൃഹത്തായത്" ആയിരിക്കും, അല്ലാതെ "പിണ്ഡ സ്വഭാവം" മൂലമല്ല. അൽഗോരിതം.

ഒരു അൽഗോരിതം എന്ന ആശയം വിശദീകരിക്കുമ്പോൾ, "ദൈനംദിന അൽഗോരിതങ്ങളുടെ" ഉദാഹരണങ്ങൾ പലപ്പോഴും നൽകാറുണ്ട്: വെള്ളം തിളപ്പിക്കുക, ഒരു താക്കോൽ ഉപയോഗിച്ച് വാതിൽ തുറക്കുക, തെരുവ് മുറിച്ചുകടക്കുക മുതലായവ: ഏതെങ്കിലും മരുന്ന് അല്ലെങ്കിൽ പാചക പാചകക്കുറിപ്പുകൾ തയ്യാറാക്കുന്നതിനുള്ള പാചകക്കുറിപ്പുകൾ അൽഗോരിതങ്ങളാണ്. എന്നാൽ ഒരു കുറിപ്പടി പ്രകാരം ഒരു മരുന്ന് തയ്യാറാക്കാൻ, നിങ്ങൾ ഫാർമക്കോളജി അറിയേണ്ടതുണ്ട്, ഒരു പാചക പാചകക്കുറിപ്പ് അനുസരിച്ച് ഒരു വിഭവം തയ്യാറാക്കാൻ, നിങ്ങൾ എങ്ങനെ പാചകം ചെയ്യണമെന്ന് അറിയേണ്ടതുണ്ട്. അതേസമയം, ഒരു അൽഗോരിതം നടപ്പിലാക്കുന്നത് ഒരു ചിന്താശൂന്യവും യാന്ത്രികവുമായ നിർദ്ദേശങ്ങളുടെ നിർവ്വഹണമാണ്, തത്വത്തിൽ, ഒരു അറിവും ആവശ്യമില്ല. പാചക പാചകക്കുറിപ്പുകൾ അൽഗോരിതങ്ങളാണെങ്കിൽ, ഞങ്ങൾക്ക് അത്തരമൊരു പ്രത്യേകത ഉണ്ടാകില്ല - ഒരു പാചകക്കാരൻ.

ഗണിത പ്രവർത്തനങ്ങൾ അല്ലെങ്കിൽ ജ്യാമിതീയ നിർമ്മാണങ്ങൾ നടത്തുന്നതിനുള്ള നിയമങ്ങൾ അൽഗോരിതങ്ങളാണ്. അതേ സമയം, ചോദ്യത്തിന് ഉത്തരം ലഭിച്ചിട്ടില്ല: ഒരു അൽഗോരിതം എന്ന ആശയം "രീതി", "രീതി", "നിയമം" തുടങ്ങിയ ആശയങ്ങളിൽ നിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു. "അൽഗോരിതം", "രീതി", "നിയമം" എന്നീ പദങ്ങൾ ഒരേ കാര്യം (അതായത് അവ പര്യായങ്ങളാണ്) പ്രകടിപ്പിക്കുന്നു എന്ന പ്രസ്താവന നിങ്ങൾക്ക് കാണാൻ കഴിയും, എന്നിരുന്നാലും അത്തരമൊരു പ്രസ്താവന "അൽഗരിതത്തിന്റെ ഗുണവിശേഷതകൾക്ക്" വിരുദ്ധമാണ്.

"ഒരു അൽഗോരിതത്തിന്റെ ഗുണവിശേഷതകൾ" എന്ന പ്രയോഗം തന്നെ തെറ്റാണ്. വസ്തുനിഷ്ഠമായി നിലവിലുള്ള യാഥാർത്ഥ്യങ്ങൾക്ക് ഗുണങ്ങളുണ്ട്. ഉദാഹരണത്തിന്, ഒരു പദാർത്ഥത്തിന്റെ ഗുണങ്ങളെക്കുറിച്ച് നമുക്ക് സംസാരിക്കാം. നമ്മുടെ ലക്ഷ്യങ്ങൾ നേടുന്നതിനായി നാം നിർമ്മിക്കുന്ന ഒരു കൃത്രിമ ഘടനയാണ് അൽഗോരിതം. ഒരു അൽഗോരിതം അതിന്റെ ഉദ്ദേശ്യം നിറവേറ്റുന്നതിന്, അത് ചില നിയമങ്ങൾക്കനുസൃതമായി നിർമ്മിക്കണം. അതിനാൽ, അൽഗോരിതത്തിന്റെ ഗുണങ്ങളെക്കുറിച്ചല്ല, അൽഗോരിതം നിർമ്മിക്കുന്നതിനുള്ള നിയമങ്ങളെക്കുറിച്ചോ അല്ലെങ്കിൽ അൽഗോരിതത്തിന്റെ ആവശ്യകതകളെക്കുറിച്ചോ നമ്മൾ സംസാരിക്കേണ്ടതുണ്ട്.

ആദ്യ നിയമം- ഒരു അൽഗോരിതം നിർമ്മിക്കുമ്പോൾ, ആദ്യം അൽഗോരിതം പ്രവർത്തിക്കുന്ന ഒരു കൂട്ടം ഒബ്ജക്റ്റുകൾ വ്യക്തമാക്കേണ്ടത് ആവശ്യമാണ്. ഈ ഒബ്‌ജക്‌റ്റുകളുടെ ഔപചാരിക (കോഡ് ചെയ്‌ത) പ്രാതിനിധ്യത്തെ ഡാറ്റ എന്ന് വിളിക്കുന്നു. ഇൻപുട്ട് എന്ന് വിളിക്കപ്പെടുന്ന ഒരു പ്രത്യേക സെറ്റ് ഡാറ്റയുമായി അൽഗോരിതം പ്രവർത്തിക്കാൻ തുടങ്ങുന്നു, അതിന്റെ പ്രവർത്തനത്തിന്റെ ഫലമായി ഡാറ്റ ഉൽപ്പാദിപ്പിക്കുന്നു, അതിനെ ഔട്ട്പുട്ട് എന്ന് വിളിക്കുന്നു. അങ്ങനെ, അൽഗോരിതം ഇൻപുട്ട് ഡാറ്റയെ ഔട്ട്പുട്ട് ഡാറ്റയിലേക്ക് മാറ്റുന്നു.

"രീതികൾ", "രീതികൾ" എന്നിവയിൽ നിന്ന് അൽഗോരിതങ്ങൾ ഉടനടി വേർതിരിക്കാൻ ഈ നിയമം നിങ്ങളെ അനുവദിക്കുന്നു. ഇൻപുട്ട് ഡാറ്റ ഔപചാരികമാക്കുന്നത് വരെ, ഞങ്ങൾക്ക് ഒരു അൽഗോരിതം നിർമ്മിക്കാൻ കഴിയില്ല.

രണ്ടാമത്തെ നിയമം- അൽഗോരിതം പ്രവർത്തിക്കാൻ മെമ്മറി ആവശ്യമാണ്. അൽഗോരിതം പ്രവർത്തിക്കാൻ തുടങ്ങുന്ന ഇൻപുട്ട് ഡാറ്റ, ഇന്റർമീഡിയറ്റ് ഡാറ്റ, അൽഗോരിതത്തിന്റെ ഫലമായ ഔട്ട്പുട്ട് ഡാറ്റ എന്നിവ മെമ്മറി സംഭരിക്കുന്നു. മെമ്മറി വ്യതിരിക്തമാണ്, അതായത്. വ്യക്തിഗത സെല്ലുകൾ ഉൾക്കൊള്ളുന്നു. പേരുള്ള മെമ്മറി ലൊക്കേഷനെ വേരിയബിൾ എന്ന് വിളിക്കുന്നു. അൽഗോരിതങ്ങളുടെ സിദ്ധാന്തത്തിൽ, മെമ്മറി വലുപ്പങ്ങൾ പരിമിതമല്ല, അതായത്, പ്രവർത്തനത്തിന് ആവശ്യമായ ഏത് അളവിലുള്ള മെമ്മറിയും നമുക്ക് അൽഗോരിതം നൽകാൻ കഴിയുമെന്ന് വിശ്വസിക്കപ്പെടുന്നു.

സ്കൂളിൽ "അൽഗരിതങ്ങളുടെ സിദ്ധാന്തം" ഈ രണ്ട് നിയമങ്ങളും പരിഗണിക്കില്ല. അതേ സമയം, ഈ നിയമങ്ങൾ നടപ്പിലാക്കുന്നതിലൂടെ അൽഗോരിതം (പ്രോഗ്രാമിംഗ്) ഉള്ള പ്രായോഗിക പ്രവർത്തനം ആരംഭിക്കുന്നു. പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ, ഡിക്ലറേറ്റീവ് ഓപ്പറേറ്റർമാർ (വേരിയബിൾ ഡിക്ലറേഷൻ ഓപ്പറേറ്റർമാർ) മെമ്മറി അലോക്കേഷൻ നടത്തുന്നു. ബേസിക് ഭാഷയിൽ, എല്ലാ വേരിയബിളുകളും വിവരിച്ചിട്ടില്ല; സാധാരണയായി അറേകൾ മാത്രമേ വിവരിക്കുകയുള്ളൂ. എന്നിട്ടും, പ്രോഗ്രാം സമാരംഭിക്കുമ്പോൾ, ഭാഷാ വിവർത്തകൻ പ്രോഗ്രാം വാചകത്തിലെ എല്ലാ ഐഡന്റിഫയറുകളും വിശകലനം ചെയ്യുകയും അനുബന്ധ വേരിയബിളുകൾക്കായി മെമ്മറി അനുവദിക്കുകയും ചെയ്യുന്നു.

മൂന്നാമത്തെ നിയമം- വിവേചനാധികാരം. വ്യക്തിഗത ഘട്ടങ്ങളിൽ നിന്നാണ് അൽഗോരിതം നിർമ്മിച്ചിരിക്കുന്നത് (പ്രവർത്തനങ്ങൾ, പ്രവർത്തനങ്ങൾ, കമാൻഡുകൾ). തീർച്ചയായും അൽഗോരിതം നിർമ്മിക്കുന്ന നിരവധി ഘട്ടങ്ങളുണ്ട്.

നാലാമത്തെ നിയമം- നിർണയവാദം. ഓരോ ഘട്ടത്തിനും ശേഷം, ഏത് ഘട്ടമാണ് അടുത്തതായി നടപ്പിലാക്കുന്നതെന്ന് നിങ്ങൾ സൂചിപ്പിക്കണം, അല്ലെങ്കിൽ ഒരു സ്റ്റോപ്പ് കമാൻഡ് നൽകുക.

അഞ്ചാമത്തെ ഭരണം- ഒത്തുചേരൽ (ഫലപ്രാപ്തി). പരിമിതമായ ഘട്ടങ്ങൾക്ക് ശേഷം അൽഗോരിതം അവസാനിപ്പിക്കണം. ഈ സാഹചര്യത്തിൽ, അൽഗോരിതത്തിന്റെ ഫലമായി കണക്കാക്കുന്നത് സൂചിപ്പിക്കേണ്ടത് ആവശ്യമാണ്.

അതിനാൽ, അൽഗോരിതം സിദ്ധാന്തത്തിൽ നിർവചിക്കപ്പെടാത്ത ഒരു ആശയമാണ് അൽഗോരിതം. ഓരോ നിർദ്ദിഷ്ട ഇൻപുട്ട് ഡാറ്റയെയും ഒരു നിശ്ചിത ഔട്ട്പുട്ട് ഡാറ്റയുമായി അൽഗോരിതം ബന്ധപ്പെടുത്തുന്നു, അതായത്, ഒരു ഫംഗ്ഷൻ കണക്കാക്കുന്നു (നടത്തുന്നു). അൽഗോരിതം സിദ്ധാന്തത്തിലെ പ്രത്യേക പ്രശ്നങ്ങൾ പരിഗണിക്കുമ്പോൾ, അൽഗോരിതത്തിന്റെ ചില പ്രത്യേക മാതൃകകൾ ഞങ്ങൾ എപ്പോഴും മനസ്സിൽ സൂക്ഷിക്കുന്നു.

ഒരു കമ്പ്യൂട്ടറിലെ ഏത് ജോലിയും വിവര പ്രോസസ്സിംഗ് ആണ്. ഒരു കമ്പ്യൂട്ടറിന്റെ പ്രവർത്തനം ഇനിപ്പറയുന്ന രീതിയിൽ ചിത്രീകരിക്കാം:

ഇടതുവശത്തുള്ള "വിവരങ്ങളും" വലതുവശത്തുള്ള "വിവരങ്ങളും" വ്യത്യസ്ത വിവരങ്ങളാണ്. കമ്പ്യൂട്ടർ പുറത്തുനിന്നുള്ള വിവരങ്ങൾ മനസ്സിലാക്കുകയും അതിന്റെ പ്രവർത്തനത്തിന്റെ ഫലമായി പുതിയ വിവരങ്ങൾ ഉത്പാദിപ്പിക്കുകയും ചെയ്യുന്നു. ഒരു കമ്പ്യൂട്ടർ പ്രവർത്തിക്കുന്ന വിവരങ്ങളെ "ഡാറ്റ" എന്ന് വിളിക്കുന്നു.

കമ്പ്യൂട്ടർ ചില നിയമങ്ങൾക്കനുസൃതമായി വിവരങ്ങൾ പരിവർത്തനം ചെയ്യുന്നു. ഈ നിയമങ്ങൾ (പ്രവർത്തനങ്ങൾ, കമാൻഡുകൾ) കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിൽ മുൻകൂട്ടി സൂക്ഷിക്കുന്നു. മൊത്തത്തിൽ, വിവരങ്ങൾ രൂപാന്തരപ്പെടുത്തുന്നതിനുള്ള ഈ നിയമങ്ങളെ അൽഗോരിതം എന്ന് വിളിക്കുന്നു. കമ്പ്യൂട്ടറിൽ പ്രവേശിക്കുന്ന ഡാറ്റയെ ഇൻപുട്ട് ഡാറ്റ എന്ന് വിളിക്കുന്നു. കമ്പ്യൂട്ടറിന്റെ പ്രവർത്തനത്തിന്റെ ഫലം ഔട്ട്പുട്ട് ഡാറ്റയാണ്. അങ്ങനെ, അൽഗോരിതം ഇൻപുട്ട് ഡാറ്റയെ ഔട്ട്പുട്ട് ഡാറ്റയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു:


ഇപ്പോൾ നമുക്ക് ചോദ്യം ചോദിക്കാം: ഒരു വ്യക്തിക്ക് വിവരങ്ങൾ പ്രോസസ്സ് ചെയ്യാൻ കഴിയുമോ? തീർച്ചയായും അതിന് കഴിയും. ഒരു സാധാരണ സ്കൂൾ പാഠമാണ് ഒരു ഉദാഹരണം: അധ്യാപകൻ ഒരു ചോദ്യം ചോദിക്കുന്നു (ഇൻപുട്ട്), വിദ്യാർത്ഥി ഉത്തരം നൽകുന്നു (ഔട്ട്പുട്ട്). ഏറ്റവും ലളിതമായ ഉദാഹരണം: അധ്യാപകൻ ഒരു ടാസ്ക് നൽകുന്നു - 6 നെ 3 കൊണ്ട് ഗുണിച്ച് ഫലം ബോർഡിൽ എഴുതുക. ഇവിടെ 6, 3 അക്കങ്ങൾ ഇൻപുട്ട് ഡാറ്റയാണ്, ഗുണന പ്രവർത്തനം അൽഗോരിതം ആണ്, ഗുണനത്തിന്റെ ഫലം ഔട്ട്പുട്ട് ഡാറ്റയാണ്:


ഉപസംഹാരം: ഗണിതശാസ്ത്ര പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നത് വിവര പരിവർത്തനത്തിന്റെ ഒരു പ്രത്യേക സാഹചര്യമാണ്. ഒരു കമ്പ്യൂട്ടർ (ഇംഗ്ലീഷിൽ കാൽക്കുലേറ്റർ എന്നാണ് അർത്ഥമാക്കുന്നത്, റഷ്യൻ ഭാഷയിൽ - കമ്പ്യൂട്ടർ, ഇലക്ട്രോണിക് കമ്പ്യൂട്ടർ) ഗണിതശാസ്ത്ര കണക്കുകൂട്ടലുകൾക്കായി പ്രത്യേകം സൃഷ്ടിച്ചു.

ഏതെങ്കിലും ഗണിതശാസ്ത്ര പ്രശ്നം പരിഹരിക്കുമ്പോൾ, ഞങ്ങൾ ഒരു പരിഹാര അൽഗോരിതം സൃഷ്ടിക്കുന്നു. എന്നാൽ മുമ്പ്, ഞങ്ങൾ ഈ അൽഗോരിതം സ്വയം നിർവ്വഹിച്ചു, അതായത്, ഉത്തരത്തിനുള്ള പരിഹാരം ഞങ്ങൾ കൊണ്ടുവന്നു. ഇപ്പോൾ ഞങ്ങൾ ചെയ്യേണ്ടത് മാത്രമേ എഴുതുകയുള്ളൂ, പക്ഷേ ഞങ്ങൾ കണക്കുകൂട്ടലുകൾ നടത്തില്ല. കമ്പ്യൂട്ടർ കണക്കുകൂട്ടലുകൾ നടത്തും. ഞങ്ങളുടെ അൽഗോരിതം കമ്പ്യൂട്ടറിലേക്കുള്ള നിർദ്ദേശങ്ങളുടെ (കമാൻഡുകൾ) ആയിരിക്കും.

നമ്മൾ ഏതെങ്കിലും മൂല്യം കണക്കാക്കുമ്പോൾ, അതിന്റെ ഫലം പേപ്പറിൽ എഴുതുന്നു. കമ്പ്യൂട്ടർ അതിന്റെ പ്രവർത്തനത്തിന്റെ ഫലം ഒരു വേരിയബിളിന്റെ രൂപത്തിൽ മെമ്മറിയിൽ രേഖപ്പെടുത്തുന്നു. അതിനാൽ, ഓരോ അൽഗോരിതം കമാൻഡിലും ഫലം എഴുതിയിരിക്കുന്ന വേരിയബിളിൽ ഒരു സൂചന ഉണ്ടായിരിക്കണം.

ഇൻപുട്ട് ഡാറ്റയെ ഔട്ട്പുട്ട് ഡാറ്റയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതായി അൽഗോരിതം പ്രവർത്തനത്തിന്റെ വ്യാഖ്യാനം സ്വാഭാവികമായും "പ്രശ്ന പ്രസ്താവന" എന്ന ആശയം പരിഗണിക്കാൻ നമ്മെ പ്രേരിപ്പിക്കുന്നു. ഒരു പ്രശ്നം പരിഹരിക്കുന്നതിന് ഒരു അൽഗോരിതം സൃഷ്ടിക്കുന്നതിന്, ഇൻപുട്ട് ഡാറ്റയാകുന്ന ആ അളവുകൾ വ്യവസ്ഥയിൽ നിന്ന് തിരഞ്ഞെടുക്കുകയും കൃത്യമായി കണ്ടെത്തേണ്ട അളവുകൾ കൃത്യമായി രൂപപ്പെടുത്തുകയും ചെയ്യേണ്ടത് ആവശ്യമാണ്. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, പ്രശ്നത്തിന്റെ അവസ്ഥ രൂപപ്പെടുത്തേണ്ടത് “നൽകിയതാണ്... ആവശ്യമാണ്” - ഇതാണ് പ്രശ്നത്തിന്റെ പ്രസ്താവന.

ഒരു കമ്പ്യൂട്ടറിൽ അൽഗോരിതം പ്രയോഗിച്ചു- കൃത്യമായ കുറിപ്പടി, അതായത്. അവയുടെ ആൾട്ടർനേഷനായുള്ള ഒരു കൂട്ടം പ്രവർത്തനങ്ങളും നിയമങ്ങളും, അതിന്റെ സഹായത്തോടെ, ചില പ്രാരംഭ ഡാറ്റയിൽ നിന്ന് ആരംഭിച്ച്, ഒരു നിശ്ചിത തരത്തിലുള്ള ഏത് പ്രശ്‌നവും പരിഹരിക്കാൻ കഴിയും.

ലോജിക്കൽ-ഗണിതശാസ്ത്ര ഉപകരണങ്ങളായി അൽഗോരിതങ്ങളുടെ തരങ്ങൾ മനുഷ്യന്റെ പ്രവർത്തനത്തിന്റെയും ട്രെൻഡുകളുടെയും സൂചിപ്പിച്ച ഘടകങ്ങളെ പ്രതിഫലിപ്പിക്കുന്നു, കൂടാതെ ലക്ഷ്യം, പ്രശ്നത്തിന്റെ പ്രാരംഭ അവസ്ഥകൾ, അത് പരിഹരിക്കാനുള്ള വഴികൾ, പ്രകടനം നടത്തുന്നയാളുടെ പ്രവർത്തനങ്ങൾ എന്നിവയെ ആശ്രയിച്ച് അൽഗോരിതങ്ങൾ തന്നെ. ഇനിപ്പറയുന്ന രീതിയിൽ വിഭജിച്ചിരിക്കുന്നു:

· മെക്കാനിക്കൽ അൽഗോരിതങ്ങൾ, അല്ലെങ്കിൽ നിർണ്ണായകമായ, കർക്കശമായ (ഉദാഹരണത്തിന്, ഒരു യന്ത്രം, എഞ്ചിൻ മുതലായവയുടെ പ്രവർത്തനത്തിനുള്ള ഒരു അൽഗോരിതം);

· ഫ്ലെക്സിബിൾ അൽഗോരിതങ്ങൾ, ഉദാഹരണത്തിന് സ്റ്റോക്കാസ്റ്റിക്, അതായത്. പ്രോബബിലിസ്റ്റിക് ആൻഡ് ഹ്യൂറിസ്റ്റിക്.

ഒരു മെക്കാനിക്കൽ അൽഗോരിതം ചില പ്രവർത്തനങ്ങൾ വ്യക്തമാക്കുന്നു, അവയെ ഏകീകൃതവും വിശ്വസനീയവുമായ ക്രമത്തിൽ നിയുക്തമാക്കുന്നു, അതുവഴി അൽഗോരിതം വികസിപ്പിച്ച പ്രക്രിയയുടെ വ്യവസ്ഥകളും ടാസ്ക്കുകളും പാലിച്ചാൽ അവ്യക്തമായ ആവശ്യമുള്ളതോ ആവശ്യമുള്ളതോ ആയ ഫലം നൽകുന്നു.

· പ്രോബബിലിസ്റ്റിക് (സ്റ്റോക്കാസ്റ്റിക്) അൽഗോരിതംഒരു പ്രശ്നം പല തരത്തിൽ പരിഹരിക്കുന്നതിനുള്ള ഒരു പ്രോഗ്രാം നൽകുന്നു അല്ലെങ്കിൽ ഒരു ഫലത്തിന്റെ സാധ്യതയുള്ള നേട്ടത്തിലേക്ക് നയിക്കുന്ന രീതികൾ.

· ഹ്യൂറിസ്റ്റിക് അൽഗോരിതം("യുറേക്ക" എന്ന ഗ്രീക്ക് പദത്തിൽ നിന്ന്) ഒരു അൽഗോരിതം ആണ്, അതിൽ ആക്ഷൻ പ്രോഗ്രാമിന്റെ അന്തിമ ഫലത്തിന്റെ നേട്ടം വ്യക്തമായി മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടില്ല, അതുപോലെ തന്നെ പ്രവർത്തനങ്ങളുടെ മുഴുവൻ ക്രമവും സൂചിപ്പിച്ചിട്ടില്ല, കൂടാതെ അവതാരകന്റെ എല്ലാ പ്രവർത്തനങ്ങളും തിരിച്ചറിയാൻ കഴിയില്ല. . ഹ്യൂറിസ്റ്റിക് അൽഗോരിതങ്ങളിൽ, ഉദാഹരണത്തിന്, നിർദ്ദേശങ്ങളും കുറിപ്പുകളും ഉൾപ്പെടുന്നു. സമാന പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിൽ സമാനതകൾ, അസോസിയേഷനുകൾ, മുൻകാല അനുഭവങ്ങൾ എന്നിവയെ അടിസ്ഥാനമാക്കിയുള്ള സാർവത്രിക ലോജിക്കൽ നടപടിക്രമങ്ങളും തീരുമാനമെടുക്കൽ രീതികളും ഈ അൽഗോരിതങ്ങൾ ഉപയോഗിക്കുന്നു.

· ലീനിയർ അൽഗോരിതം- ഒരു കൂട്ടം കമാൻഡുകൾ (നിർദ്ദേശങ്ങൾ) ഒന്നിനുപുറകെ ഒന്നായി കൃത്യസമയത്ത് നടപ്പിലാക്കുന്നു.

· ബ്രാഞ്ചിംഗ് അൽഗോരിതം- സാധ്യമായ രണ്ട് ഘട്ടങ്ങളിലൊന്നിലേക്ക് ഏത് കമ്പ്യൂട്ടർ പരിവർത്തനം നൽകുന്നുവെന്ന് പരിശോധിക്കുന്നതിന്റെ ഫലമായി കുറഞ്ഞത് ഒരു വ്യവസ്ഥയെങ്കിലും അടങ്ങിയ ഒരു അൽഗോരിതം.

· റൗണ്ട് റോബിൻ അൽഗോരിതം- പുതിയ പ്രാരംഭ ഡാറ്റയിൽ ഒരേ പ്രവർത്തനത്തിന്റെ (അതേ പ്രവർത്തനങ്ങൾ) ആവർത്തിച്ച് ആവർത്തിക്കുന്ന ഒരു അൽഗോരിതം. ഓപ്‌ഷനുകളുടെ കണക്കുകൂട്ടലിന്റെയും എണ്ണലിന്റെയും മിക്ക രീതികളും ചാക്രിക അൽഗോരിതങ്ങളിലേക്ക് ചുരുക്കിയിരിക്കുന്നു.

പ്രോഗ്രാം സൈക്കിൾ- ഒരു നിശ്ചിത വ്യവസ്ഥ തൃപ്‌തിപ്പെടുന്നതുവരെ (പുതിയ ഉറവിട ഡാറ്റയ്‌ക്കായി) ആവർത്തിച്ച് എക്‌സിക്യൂട്ട് ചെയ്യാൻ കഴിയുന്ന കമാൻഡുകളുടെ ഒരു ശ്രേണി (സീരീസ്, ലൂപ്പ് ബോഡി).

സഹായ (അടിമ) അൽഗോരിതം(നടപടിക്രമം) - ഒരു പ്രത്യേക ടാസ്ക്കിന്റെ അൽഗോരിതമൈസേഷനിൽ മുമ്പ് വികസിപ്പിച്ചതും പൂർണ്ണമായും ഉപയോഗിക്കുന്നതുമായ ഒരു അൽഗോരിതം. ചില സാഹചര്യങ്ങളിൽ, വ്യത്യസ്ത ഡാറ്റയ്‌ക്കായി നിർദ്ദേശങ്ങളുടെ (കമാൻഡുകൾ) സമാന ശ്രേണികൾ ഉണ്ടെങ്കിൽ, റെക്കോർഡ് കുറയ്ക്കുന്നതിന് ഒരു സഹായ അൽഗോരിതം അനുവദിച്ചിരിക്കുന്നു.

ഒരു പ്രശ്നത്തിന്റെ അൽഗോരിതമൈസേഷനായുള്ള തയ്യാറെടുപ്പിന്റെ എല്ലാ ഘട്ടങ്ങളിലും, അൽഗോരിതത്തിന്റെ ഘടനാപരമായ പ്രാതിനിധ്യം വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നു.

അൽഗോരിതത്തിന്റെ ഘടനാപരമായ (ബ്ലോക്ക്, ഗ്രാഫ്) ഡയഗ്രം- അമ്പടയാളങ്ങൾ (ട്രാൻസിഷൻ ലൈനുകൾ) ഉപയോഗിച്ച് പരസ്പരം ബന്ധിപ്പിച്ചിരിക്കുന്ന ബ്ലോക്കുകളുടെ ഒരു ഡയഗ്രം രൂപത്തിൽ അൽഗോരിതത്തിന്റെ ഒരു ഗ്രാഫിക് പ്രാതിനിധ്യം - ഗ്രാഫിക് ചിഹ്നങ്ങൾ, അവ ഓരോന്നും അൽഗോരിതത്തിന്റെ ഒരു ഘട്ടവുമായി യോജിക്കുന്നു. ബ്ലോക്കിനുള്ളിൽ അനുബന്ധ പ്രവർത്തനത്തിന്റെ ഒരു വിവരണം നൽകിയിരിക്കുന്നു.

ഒരു ടാസ്‌ക് പ്രോഗ്രാം ചെയ്യുന്നതിന് മുമ്പ് അതിന്റെ വ്യക്തത കാരണം അൽഗോരിതത്തിന്റെ ഗ്രാഫിക്കൽ പ്രാതിനിധ്യം വ്യാപകമായി ഉപയോഗിക്കുന്നു, കാരണം വിഷ്വൽ പെർസെപ്ഷൻ സാധാരണയായി ഒരു പ്രോഗ്രാം എഴുതുന്ന പ്രക്രിയയെ സുഗമമാക്കുന്നു, സാധ്യമായ പിശകുകളുടെ കാര്യത്തിൽ അത് ശരിയാക്കുന്നു, വിവര പ്രോസസ്സിംഗ് പ്രക്രിയ മനസ്സിലാക്കുന്നു.

നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന പ്രസ്താവന പോലും കാണാൻ കഴിയും: “ബാഹ്യമായി, അൽഗോരിതം ഒരു ഡയഗ്രം ആണ് - ദീർഘചതുരങ്ങളുടെയും മറ്റ് ചിഹ്നങ്ങളുടെയും ഒരു കൂട്ടം, അതിനുള്ളിൽ എഴുതിയിരിക്കുന്നു, എന്താണ് കണക്കാക്കുന്നത്, എന്താണ് മെഷീനിൽ നൽകിയത്, അച്ചടിച്ചതും പ്രദർശിപ്പിക്കുന്നതിനുള്ള മറ്റ് മാർഗങ്ങളും വിവരങ്ങൾ." ഇവിടെ അൽഗരിതത്തിന്റെ അവതരണ രൂപം അൽഗരിതവുമായി തന്നെ കലർത്തിയിരിക്കുന്നു.

"ടോപ്പ്-ഡൌൺ" പ്രോഗ്രാമിംഗ് തത്വം ബ്ലോക്ക് ഡയഗ്രം ഘട്ടം ഘട്ടമായി വ്യക്തമാക്കുകയും ഓരോ ബ്ലോക്കും പ്രാഥമിക പ്രവർത്തനങ്ങൾ വരെ "വിവരണം" ചെയ്യുകയും വേണം. എന്നാൽ ലളിതമായ പ്രശ്നങ്ങൾ പരിഹരിക്കുമ്പോൾ ഈ സമീപനം നടപ്പിലാക്കാൻ കഴിയും. ഏതെങ്കിലും ഗുരുതരമായ പ്രശ്നം പരിഹരിക്കുമ്പോൾ, ഫ്ലോചാർട്ട് ഒറ്റനോട്ടത്തിൽ അത് മറയ്ക്കാൻ കഴിയാത്തവിധം "പ്രചരിക്കും".

ഒരു റെഡിമെയ്ഡ് അൽഗോരിതത്തിന്റെ പ്രവർത്തനം വിശദീകരിക്കാൻ അൽഗോരിതങ്ങളുടെ ഫ്ലോചാർട്ടുകൾ ഉപയോഗിക്കുന്നത് സൗകര്യപ്രദമാണ്, അതേസമയം അൽഗോരിതത്തിന്റെ യഥാർത്ഥ ബ്ലോക്കുകൾ ബ്ലോക്കുകളായി എടുക്കുന്നു, ഇതിന്റെ പ്രവർത്തനത്തിന് വിശദീകരണം ആവശ്യമില്ല. ഒരു അൽഗരിതത്തിന്റെ ഫ്ലോചാർട്ട് അൽഗൊരിതത്തിന്റെ ചിത്രീകരണം ലളിതമാക്കാൻ സഹായിക്കണം, അല്ലാതെ അതിനെ സങ്കീർണ്ണമാക്കരുത്.

ഒരു കമ്പ്യൂട്ടറിൽ പ്രശ്നങ്ങൾ പരിഹരിക്കുമ്പോൾ, പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള രീതികളെക്കുറിച്ചുള്ള അറിവ് പോലെ അൽഗോരിതം എഴുതാനുള്ള കഴിവ് നിങ്ങൾക്ക് ആവശ്യമില്ല (പൊതുവായി ഗണിതത്തിലെന്നപോലെ). അതിനാൽ, നിങ്ങൾ പഠിക്കേണ്ടത് പ്രോഗ്രാമിംഗല്ല (അൽഗരിതമൈസേഷനല്ല), മറിച്ച് ഒരു കമ്പ്യൂട്ടറിലെ ഗണിതശാസ്ത്ര പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള രീതികളാണ്. ടാസ്‌ക്കുകൾ സാധാരണയായി ചെയ്യുന്നത് പോലെ (അറേകൾക്കായുള്ള ടാസ്‌ക്കുകൾ, ക്യാരക്ടർ വേരിയബിളുകൾ മുതലായവ) ഡാറ്റാ തരം അനുസരിച്ചല്ല, മറിച്ച് “ആവശ്യമുള്ളത്” വിഭാഗം അനുസരിച്ചാണ് തരംതിരിക്കേണ്ടത്.

കമ്പ്യൂട്ടർ സയൻസിൽ, ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പ്രക്രിയ രണ്ട് വിഷയങ്ങൾക്കിടയിൽ വിതരണം ചെയ്യപ്പെടുന്നു: പ്രോഗ്രാമറും കമ്പ്യൂട്ടറും. പ്രോഗ്രാമർ ഒരു അൽഗോരിതം (പ്രോഗ്രാം) സൃഷ്ടിക്കുന്നു, കമ്പ്യൂട്ടർ അത് നടപ്പിലാക്കുന്നു. പരമ്പരാഗത ഗണിതശാസ്ത്രത്തിൽ അത്തരമൊരു വിഭജനം ഇല്ല; പ്രശ്നം പരിഹരിക്കുന്നതിന് ഒരു അൽഗോരിതം സൃഷ്ടിച്ച് അത് സ്വയം നടപ്പിലാക്കുന്ന ഒരു വ്യക്തിയാണ് പ്രശ്നം പരിഹരിക്കുന്നത്. അൽഗോരിതമൈസേഷന്റെ സാരാംശം ഒരു പ്രശ്നത്തിനുള്ള പരിഹാരം പ്രാഥമിക പ്രവർത്തനങ്ങളുടെ ഒരു കൂട്ടമായി അവതരിപ്പിക്കുന്നു എന്നതല്ല, ഒരു പ്രശ്നം പരിഹരിക്കുന്ന പ്രക്രിയയെ രണ്ട് ഘട്ടങ്ങളായി തിരിച്ചിരിക്കുന്നു: ക്രിയേറ്റീവ് (പ്രോഗ്രാമിംഗ്), നോൺ-ക്രിയേറ്റീവ് (പ്രോഗ്രാം എക്സിക്യൂഷൻ). ഈ ഘട്ടങ്ങൾ വ്യത്യസ്ത വിഷയങ്ങളാൽ നിർവഹിക്കപ്പെടുന്നു - പ്രോഗ്രാമറും അവതാരകനും

കമ്പ്യൂട്ടർ സയൻസ് പാഠപുസ്തകങ്ങളിൽ ഒരു വ്യക്തിക്ക് അൽഗോരിതത്തിന്റെ എക്സിക്യൂട്ടീവായിരിക്കാൻ കഴിയുമെന്ന് അവർ സാധാരണയായി എഴുതുന്നു. വാസ്തവത്തിൽ, ആളുകൾക്കായി ആരും അൽഗോരിതങ്ങൾ എഴുതുന്നില്ല (ഓരോ സെറ്റ് വ്യതിരിക്തമായ പ്രവർത്തനങ്ങളും ഒരു അൽഗോരിതം അല്ലെന്ന് മറക്കരുത്). ഒരു വ്യക്തിക്ക്, തത്വത്തിൽ, ഒരു അൽഗോരിതം അനുസരിച്ച് പ്രവർത്തിക്കാൻ കഴിയില്ല. ഒരു അൽഗോരിതം നടപ്പിലാക്കുന്നത് ഒരു യാന്ത്രികവും ബുദ്ധിശൂന്യവുമായ പ്രവർത്തനങ്ങളുടെ നിർവ്വഹണമാണ്. ഒരു വ്യക്തി എപ്പോഴും അർത്ഥപൂർണ്ണമായി പ്രവർത്തിക്കുന്നു. ഒരു വ്യക്തിക്ക് ഒരു നിശ്ചിത ഓപ്പറേഷനുകൾ നടത്തുന്നതിന്, അത് എങ്ങനെ ചെയ്യുന്നുവെന്ന് വിശദീകരിക്കേണ്ടതുണ്ട്. ഒരു വ്യക്തിക്ക് ഏത് ജോലിയും അത് എങ്ങനെ ചെയ്യുന്നുവെന്ന് മനസ്സിലാക്കുമ്പോൾ മാത്രമേ ചെയ്യാൻ കഴിയൂ.

ഇതിലാണ് - “വിശദീകരണവും ധാരണയും” - “അൽഗോരിതം”, “രീതി”, “രീതി”, “നിയമം” എന്നീ ആശയങ്ങൾ തമ്മിലുള്ള വ്യത്യാസം. ഗണിത പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനുള്ള നിയമങ്ങൾ വെറും നിയമങ്ങൾ (അല്ലെങ്കിൽ രീതികൾ), അൽഗോരിതങ്ങൾ അല്ല. തീർച്ചയായും, ഈ നിയമങ്ങൾ അൽഗോരിതങ്ങളുടെ രൂപത്തിൽ പ്രസ്താവിക്കാം, എന്നാൽ ഇത് ഒരു പ്രയോജനവും ചെയ്യില്ല. ഒരു വ്യക്തിക്ക് ഗണിത നിയമങ്ങൾ അനുസരിച്ച് കണക്കാക്കാൻ കഴിയണമെങ്കിൽ, അവനെ പഠിപ്പിക്കേണ്ടതുണ്ട്. ഒരു പഠന പ്രക്രിയ ഉണ്ടെങ്കിൽ, ഞങ്ങൾ കൈകാര്യം ചെയ്യുന്നത് ഒരു അൽഗോരിതം ഉപയോഗിച്ചല്ല, മറിച്ച് ഒരു രീതി ഉപയോഗിച്ചാണ്.

ഒരു അൽഗോരിതം സൃഷ്ടിക്കുമ്പോൾ, പ്രോഗ്രാമർ ആരോടും ഒന്നും വിശദീകരിക്കുന്നില്ല, പ്രകടനം നടത്തുന്നയാൾ ഒന്നും മനസ്സിലാക്കാൻ ശ്രമിക്കുന്നില്ല. ആൽഗരിതം കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിൽ സ്ഥിതിചെയ്യുന്നു, ഇത് നിർദ്ദേശങ്ങൾ ഓരോന്നായി വീണ്ടെടുത്ത് അവ നടപ്പിലാക്കുന്നു. വ്യക്തി വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു. ഒരു പ്രശ്നം പരിഹരിക്കാൻ, ഒരു വ്യക്തി പ്രശ്നം മൊത്തത്തിൽ പരിഹരിക്കുന്നതിനുള്ള രീതി മനസ്സിൽ സൂക്ഷിക്കേണ്ടതുണ്ട്, കൂടാതെ എല്ലാവരും ഈ രീതി അവരുടേതായ രീതിയിൽ ഉൾക്കൊള്ളുന്നു.

ഹ്യൂമൻ സൈക്കോളജിയുടെ ഈ സവിശേഷത - അൽഗോരിതം അല്ലാത്ത ചിന്ത - A. G. Gein, V. F. Sholokhovich എന്നിവരുടെ രീതിശാസ്ത്ര മാനുവലിൽ വളരെ വ്യക്തമായി പ്രകടമായിരുന്നു. അറിയപ്പെടുന്ന ഒരു പാഠപുസ്തകത്തിൽ നിന്നുള്ള പ്രശ്നങ്ങൾക്കുള്ള പരിഹാരങ്ങൾ മാനുവൽ അവതരിപ്പിക്കുന്നു. പ്രശ്‌നങ്ങൾക്കുള്ള പരിഹാരങ്ങൾ അൽഗോരിതങ്ങളുടെ രൂപത്തിൽ അവതരിപ്പിക്കണം. എന്നിരുന്നാലും, ഒരു പ്രശ്‌നം പരിഹരിക്കുന്നതിന് നിങ്ങൾ ഒരു അൽഗോരിതം എഴുതിയാൽ, പരിഹാരം തന്നെ മനസ്സിലാക്കാൻ ബുദ്ധിമുട്ടായിരിക്കുമെന്ന് മാനുവലിന്റെ രചയിതാക്കൾ മനസ്സിലാക്കുന്നു. അതിനാൽ, അവർ ആദ്യം "അൽഗരിതത്തിന്റെ അവ്യക്തമായ പ്രസ്താവന" നൽകുന്നു (അതായത്, പ്രശ്നത്തിനുള്ള പരിഹാരം വിശദീകരിക്കുക), തുടർന്ന് അൽഗോരിതം തന്നെ എഴുതുക.