ඇල්ගොරිතමයක් කියන්නේ කුමක්ද? දත්ත වලින් වැඩකරන්නේ කොහොමද කියලා පරිගණක දැනගන්නේ කොහොමද?
පරිගණක ඇල්ගොරිතම(algorithm) වලට සංකීර්ණ ගණිතය සම්බන්ධ වන්න පුළුවන්. එහෙත්, ඇල්ගොරිතමයක් පිළිබඳ සංකල්පය බොහොම සරලයි. පරිගණක ලෝකය නොයෙකුත් වෛවාරණ වචන වලින් ගහනයි: කෘතිම බුද්ධිය(AI – Artificial Intelligence), සුපිරි පරිගණක, මැෂින් ඉගෙනුම(machine learning), ක්වොන්ටම් පරිගණනය(quantum computing) සහ ඒ වගේ තවත් බොහෝ වදන් ඒ අතර වෙනවා. එහෙත් පරිගණනය(computing)) තුළ දිගටම භාවිත වෙන වචනයක් තමයි, ඇල්ගොරිතම.


වඩාත්ම සුලබ අර්ථයෙන් ගතහොත්, ඇල්ගොරිතමයක් යනු ලෝකය පිළිබඳ කරුණු කාරණා පෙලක් ප්රයෝජනවත් තොරතුරු හැටියට පරිවර්තනය කිරීමට පරිගණකයට දැනුම් දෙන උපදෙස් සරණියක් කියලා කියන්න පුළුවන්. මෙහිදී කරුණු කාරණා කියන්නේ දත්තවලටයි. ඒ වගේම, ප්රයෝජනවත් තොරතුරු කියන්නේ ජනතාවට ලැබෙන දැනුම හෝ යන්ත්රවලට සපයන උපදෙස් හෝ තවත් ඇල්ගොරිතමයක් සඳහා ආදානයක්(input) විය හැකියි. සිතියමක මාර්ග සොයා ගැනීම සඳහා සංඛ්යා කාණ්ඩ තෝරාබලීමේ සිට තිරයක් මත තොරතුරු ප්රදර්ශනය කිරීම දක්වා. ඇල්ගොරිතම පිළිබඳ ඉතා සුලබ උදාහරණ බොහොමයක් තියනවා.

ඔබ උදෑසන ඇඳ පැළඳ ගන්නා ආකාරය ගැන සිතට නගා ගැනීම ඔස්සේ ඇල්ගොරිතම පිළිබඳ සංකල්පය ගැන යම් අදහසක් දැනගැනීමට හැකිවෙන්න පුළුවන්. ඔය වගේ කාරණයක් ගැන දෙපාරක් හිතන්නේ ටික දෙනයි. ඒ මාර්ගයෙන් මදක් ඈත්වෙලා ඇඳුම් පැළඳීමේ ක්රියාදමය ගැන සිත යොමුකරන්න. එම ක්රියාදාමය ඔබ ලියා දක්වන්නේ නම් ඒ කෙසේද? එහෙම නැත්නම් ඔබ ඔබගේ ප්රවේශය කුඩා දරුවෙකුට පැහැදිලි කරන්නේ නම් ඒ කෙසේද? මෙම ප්රශ්න වලට පිළිතුරු විස්තරාත්මක ආකාරයෙන් දැක්වීමෙන් ඇල්ගොරිතම ගැන ඔබට ප්රමාණවත්ව දැන ගත හැකි වේ.
ආදානය
පරිගණකයක් ගතහොත් ආදානය යනු තීරණ ගැනීම පිණිස අවශ්ය වන තොරතුරුය. ඔබ උදෑසන හැඳ පැලැඳ ගන්නා විට ඔබට අවශ්ය විස්තර මොනවාදැයි කල්පනා කරන්න. ප්රථමයෙන්ම එමෙන්ම වැදගත්ම කාරණාවක් වන්නේ ඔබගේ අල්මාරිය තුළ ඇඳීමට සූදානම් කරගෙන තිබෙන ඇඳුම් මොනවා දැයි දැනගැනීමයි. ඒ වගේම දිනයේ උෂ්ණත්වය ගැන ඔබ සැලකිලිමත් වෙන්න පුළුවන්, කාලගුණ වාර්තාව කෙබඳුදැයි කල්පනා කරන්න එමෙන්ම මේ ගෙවෙන්නේ වසරේ සීත කාලයද, වැසි කාලයද වශයෙන් සෘතුව ගැන දැන ගන්න ඕනෑ විය හැකියි. ඒ වගේම (ඇඳුම් ගැන) ඔබගේ පෞද්ගලික කැමැත්ත ගැනත් සැලකිලිමත් වෙන්න පුළුවන්.
මේ සියල්ල දත්ත වශයෙන් නිරූපණය කිරීමට හැකි වේ. දත්ත කියන්නේ ඇත්තටම සංඛ්යා හෝ වචනවල සරල එකතුවක්. නිදසුනක් ගමු. උෂ්ණත්වය යනු සංඛ්යාවකි. කාලගුණය යනු “වැහි සහිතයි” නැතිනම් “හොඳින් ඉර පායනවා” යනාදි වශයෙන් දැක්විය හකි පුරෝකතනයක්.
පරිණාමනය
ඊළඟට අප යොමුවන්නේ ඇල්ගොරිතමයේ හෘදය වස්තුව වෙතයි. ඒ තමා ආගණනය(computation). ආගණනයන්ට අංක ගණිතය, තීරණ ගැනීම සහ පුනරාවර්තනය(repetition) ඇතුළත් විය හැකියි. ඉතින් මෙය කොහොමද ඇඳුම් පැළඳීමට සම්බන්ධවෙන්නේ? මෙහෙමයි: ඔබ තීරන ගන්නේ ආදාන ප්රමාණයන් ගැන යම් ගණිතමය සොයාබැලීම් හෙවත් ගණනය කිරීම් උපයෝගී කරගෙනයි; ඔබ ජැකට්ටුවක් අඳින්න ගන්න තීරණය රඳා පවතින්නේ උෂ්ණත්වය මතයි; තෝරා ගන්න ජැකැට්ටුව කුමක්ද යන්න පුරෝකතනය මත තීරණය කරනවා.
දැන් අපි මේවා පරිගණකයකට අදාල කරලා බලුවොත්, අප හැද පැළඳ ගන්නා අන්දම ගැන පරිගණක ඇල්ගොරිතමය මෙන්න මේ වගේ වෙන්න පුළුවන්: “උෂ්ණත්වය අංශක 50ට අඩු නම් ඒ වගේම වැස්ස පවතින්නේ නම් තෝරාගත යුත්තේ වැසිවරන ජැකැට්ටුවයි; එයට යටින් ඇඳ ගැනීම පිණිස අත් දිග කමිසයයි”.
ඔබේ ඇඳුම් තෝරා ගැනීමෙන් පසුව ඔබ ඒවා පළඳින්න ඕන. මෙය අපේ අල්ගොරිතමයේ කේන්ද්රීය කොටසක්. පරිගණකයකට මෙන්න මේ ආකාරයට එය ප්රකාශයට පත් කරන්න පුළුවනි: ” ඇඳුම් කෑලි එක එක අඳින්න”.
ප්රතිදානය
ඇල්ගොරිතමයක අවසාන පියවර වන්නේ ප්රතිදානය(output) ඉදිරිපත් කිරීමයි. එනම් පිළිතුර ප්රකාශයට පත්කිරීමයි. පරිගණකයක් සම්බන්ධයෙන් ගතහොත් සාමාන්යයෙන් ප්රතිදානය යනු ආදානයේ දී මෙන්ම තව තවත් දත්තය. පරිගණකවලට තව තවත් ඇල්ගොරිතම නිපදවීම පිණිස ඇල්ගොරිතම සංකීර්ණ ආකාරයකින් එකට එක්කිරීමට හෙවත් එකිනෙකට සම්බන්ධ කිරීමට එය මඟ පාදයි. කෙසේවෙතත්, ප්රතිදානය තොරතුරු ඉදිරිපත් කිරීමට ද සම්බන්ධ වේ. නිදසුනක් වශයෙන් තිරය මත වචන දැක්වීම හෝ ශ්රව්ය හෝඩුවාවල් නිපදවීම හෝ වෙනත් ස්වරූපයක සංනිවේදන ඉදිරිපත්කිරීම දැක්විය හැකියි. ඉතින් ඇඳ පැළඳ ගත් පසු ඔබ, අවට ඉන්නා අයගේ බැලුම් සෙවුම්වලට ලක්වෙමින් ඒ වගේම කාලගුණික මූලාංග වලට මුහුණ දෙමින් නිවසින් දොට්ට බහින්න ඕන නේ? බාගදා ඔබේ (ඇඳුම්) තේරීම අන් අයට වට්ස්ඇප් කිරීම පිණිස සෙල්ෆියක් ගන්න වුණත් පුළුවන්.
යන්ත්ර ඉගෙනුම
ඇතැම් අවස්ථාවල තීරණ ගැනීමේ ක්රියාදාමය නිසියාකාරව දැක්වීමට අපහසු තරමට සංකීර්ණ වැඩියි. විශේෂ ප්රවර්ගයක ඇල්ගොරිතම — එනම් යන්ත්ර ඉගෙනුම් ඇල්ගොරිතම අතීතයේ තීරණ ගැනීමේ නිදසුන් පෙළක් මත පදනම්ව ඒවා ඉගෙනීමට වෑයම් කරයි. නිර්දේශ, පුරෝකථන සහ තොරතුරු සෙවීම පිණිස යන්ත්ර ඉගෙනුම සුලබව උපයෝගී වෙයි. හැඳ පැළඳ ගැනීමේ අපේ නිදසුන නැවතත් දක්වතොත් යන්ත්ර ඉගෙනුම් ඇල්ගොරිතම, ඇඳිය යුත්තේ කුමක්ද? එසේම එක් එක් ඇඳුම් කොටස් ඇඳ ඔබ කොපමණ පහසුවෙන් සිටීයේද? සමහරවිට ඔබ ඇඳුම් ඇඳ ගත් සෙල්ෆි අතුරෙන් ‘ලයික්ස්’ වැඩියෙන් ලැබුණේ කුමකට ද? ආදීය සම්බන්ධයෙන් අප අතීතයේ ගත් තීරණ මතකයේ රැඳීමට සමානය.

ඉතින් එහෙම බලනකොට ඇල්ගොරිතමයක් කියන්නේ ඇතුලත් කරන දත්ත ප්රතිදාන දත්ත ලෙස පරිවර්තනය කිරීම සඳහා පරිගණකය භාවිත කරන ක්රියාදාමයයි. ඔව්, සරල සංකල්පයක්. එහෙත් ඔබ භාවිත කරන සෑම තාක්ෂණික කොටසකටම බොහෝ ඇල්ගොරිතම සම්බන්ධය. ඉතින් ඊළඟ වාරයේ ඔබ ඔබේ විද්යුත් තැපෑල බලන විට හෝ ඔබේ පරිගණකයෙන් චිත්රපටයක් නරඹන විට ඔබට පුළුවනි ඒවා පිටුපස ඇති ඇල්ගොරිතම සංකීර්ණ පෙළ කුමක්ද යන්න ගැන විමසිලිමත් වන්න.
The Conversation හී පළවන What is an algorithm? How computers know what to do with data යන ලිපිය ඇසුරෙනි