7.1 පරිගණකයෙන් ගැටළු විසඳීමේ ක්රියාවලිය
උදෑසන අවදි වුනු වෙලාවෙ ඉඳන් රාත්රී නින්දට යන මොහොත දක්වා දිනකට කීප වරක් අපි දැනුවත්ව හෝ නොදැනුවත්ව ගැටලු විසඳීමේ ක්රියාවලිය අනුගමනය කරනව. ගැටලු විසඳීම කියන්නෙ මිනිසාට ආවේණික වූ මානසික ක්රියාවලියක් (mental process). ගැටළුවක් අනාවරණය කර ගැනීම, විශ්ලේෂණය කිරීම සහ විසඳීම කියන උප ක්රියාකාරකම් තුනෙන් සමන්විත මේ මනෝමය ක්රියාවලියේ පරමාර්ථය වෙන්නේ යම්කිසි වාද විෂයයක් නිරාකරණය කර ගැනීම සඳහා පවතින බාධා මඟ හැර පවතින සුදුසුම විසඳුම සොයා ගැනීමයි. එදිනෙදා ජීවිතයේදී අපි මොන තරම් ගැටළු විසඳීමේ යෙදුනත්, එය සිදුවන්නේ අප විසින් පෙර සැලසුම් කළ ඉච්ඡානුග ක්රියාවලියක් ලෙස නොවෙයි. ඒත් මනා අවබෝධයකින් යුතුව මේ ක්රියාවලිය දෙස බැලුවොත් අපිට එය පැහැදිලි පියවර වලට වෙන් කළ හැකි විද්යානුකූල ක්රියාවලියක් (scientific process) ලෙස සැලසුම් කළ හැකියි.
පරිගණකය කියන්නෙ එදිනෙදා වැඩ කටයුතු පහසු කර ගැනීම සඳහා මිනිසා විසින් නිර්මාණය කළ උපාංගයක්. ගැටළු විසඳීම කියන්නෙ එදිනෙදා මිනිස් ජීවිතයේ සුලභව භාවිතා වන මානසික කෘත්යයක් කියල මම කලින් සඳහන් කලා. මේ කරුණු දෙක එකිනෙකට අනුරූපණය කරන්න අපි උත්සාහ කලොත් අපිට එක් නිගමනයකට එන්න පුළුවන්. එනම් ‘ගැටළු විසඳීමේ ක්රියාවලිය පහසු වන ආකාරයෙන් පරිගණකය නිර්මාණය විය යුතුයි’.
පරිගණකය ආධාරයෙන් ගැටළු විසඳා ගැනීමට නම් අපි මේ මනෝමය ක්රියාවලිය, පරිගණකමය ක්රියාවලියකට (computerized process) පරිවර්තනය කළ යුතුයි. ඒ විදියට කරන්න නම් අපි ගැටළු විසඳීමේ ක්රියාවලිය මනාව හඳුනා ගත් පියවර සහිත රාමුවක් (well defined model) තුල නිරූපණය කළ යුතුයි. පර්යේෂකයන් විසින් ගැටළු විසඳීමේ ක්රියාවලිය ප්රධාන පියවර 4 ක් අනුසාරයෙන් අර්ථ දක්වා තියෙනව. අපි දැන් ගැටළු විසඳීමේ ක්රියාවලිය වඩාත් විස්තර සහිතව, එක් එක් පියවර වෙන වෙනම ගෙන සලකා බලමු.
ගැටළු විසඳීමේ ක්රියාවලිය (Problem Solving Process)
මේ පියවර 4 වඩාත් විදිමත්ව පහත දැක්වෙන ආකාරයෙන් සඳහන් කරන්න පුලුවන්.
දැන් අපි මේ එක් එක් පියවර වෙන වෙනම ගෙන විස්තර සහිතව සලකා බලමු.
ගැටළුව හඳුනා ගැනීම (Identify the problem)
මෙම ක්රියාවලියේ ප්රථම පියවර ලෙස ගැටළුවක් පවතින බව අවබෝධ කර ගැනීම දක්වන්න පුලුවන්. ගැටළුවේ පැවැත්ම තහවුරු කර ගත් පසු, වඩාත් විදිමත්ව ගැටළුව අධ්යනය කිරීම හරහා ගැටළුවට අදාළ දත්ත හා තොරතුරු එක් රැස් කිරීම සිදු කළ යුතුයි. ගැටළුවේ පසුබිම අප විසින් කොයි තරම් සාර්ථකව විශ්ලේෂණය කරනවාද කියන එක මත තමයි ගැටළුව මොන තරම් සාර්ථකව විසඳා ගත හැකිද කියන එක තීරණය වෙන්නෙ. මෙම අදියරේදී අප විසින් හඳුනා ගන්නා ගැටළුවට අදාළ පසුබිම් තොරතුරු අපිට ඊළඟ පියවර වන ගැටළුව අර්ථ දැක්වීම සඳහා ආදානයක් විදියට යොදා ගන්න පුලුවන්.
ගැටළුව හා එහි සීමාවන් අර්ථ දැක්වීම (Define the problem and its boundaries)
මෙම ක්රියාවලියේ ප්රථම පියවර ලෙස ගැටළුවක් පවතින බව අවබෝධ කර ගැනීම දක්වන්න පුලුවන්. ගැටළුවේ පැවැත්ම තහවුරු කර ගත් පසු, වඩාත් විදිමත්ව ගැටළුව අධ්යනය කිරීම හරහා ගැටළුවට අදාළ දත්ත හා තොරතුරු එක් රැස් කිරීම සිදු කළ යුතුයි. ගැටළුවේ පසුබිම අප විසින් කොයි තරම් සාර්ථකව විශ්ලේෂණය කරනවාද කියන එක මත තමයි ගැටළුව මොන තරම් සාර්ථකව විසඳා ගත හැකිද කියන එක තීරණය වෙන්නෙ. මෙම අදියරේදී අප විසින් හඳුනා ගන්නා ගැටළුවට අදාළ පසුබිම් තොරතුරු අපිට ඊළඟ පියවර වන ගැටළුව අර්ථ දැක්වීම සඳහා ආදානයක් විදියට යොදා ගන්න පුලුවන්.
ගැටළු විසඳීමේ සම්පූර්ණ ක්රියාවලිය තුළ මෙම පියවරට ඉතාමත් වැදගත්කමක් හිමි වෙනව. අපි මොන තරම් නිවැරදිව ගැටළුව හා එහි සීමාවන් අර්ථ දක්වනවාද කියන එක මත තමයි අවසාන විසඳුමේ නිරවද්යතාව රඳා පවතින්නෙ. ගැටළුවක් අර්ථ දැක්වීම සඳහා අපිට යොදා ගන්න පුලුවන් විවිධාකාර ක්රමවේදයන් (methodologies) තියෙනව. මෙම ක්රමවේදයන් සරල වෙන්නත් පුලුවන්, සංකීර්ණ වෙන්නත් පුලුවන්. ගැටළුව අර්ථ දැක්වීම සඳහා අප විසින් තෝරා ගන්නා ක්රමවේදය ගැටළුවේ සංකීර්ණතාව වගේම අපේ අවශ්යතාව මතත් වෙනස් වෙන්න පුලුවන්.
ගැටළුව සාරාංශගත කරන ලුහුඬු වැකියක් (concise statement) යොදා ගැනීම, මෙහිදී අපට අනුගමනය කරන්න පුලුවන් සරල ක්රමවේදයක්. මෙම වැකිය තුළ ගැටළුවට අදාළ වර්තමාන තත්වය (current situation) සහ ගැටළුව විසඳා ගැනීමෙන් පසු අප විසින් ලඟා වීමට අරමුණු කරන අනාගත තත්වය (expected situation) පැහැදිලිව සඳහන් විය යුතුයි. අප විසින් අත පෙවීමට උත්සාහ කරන ගැටළුවේ විෂය පථය (scope) තීරණය කිරීමේදී එය ප්රායෝගිකව නිරාකරණය කරගැනීමට තරම් කුඩා වීම ඉතා වැදගත්. සංක්ෂිප්ත වැකියක් යොදා ගෙන ගැටළුව අර්ථ දැක්වීම මඟින් ගැටළුවට සම්බන්ධ සියලු පාර්ශවයන්ට එය තේරුම් ගැනීම පහසු කරනව. ගැටළුව හා එහි සීමාවන් අර්ථ දැක්වීමේදී පරිසිද්ධි (facts), සංඛ්යා ලේඛන (statistics), කාල සාධක (time factors) වගේම අතීතයේදී හටගත් සමාන සිද්ධි (history) විශ්ලේෂණය කළ යුතුයි. මේ ආකාරයට ගැටළුව අර්ථ දක්වා ගැනීමෙන් අමතරව, අප විසින් ගැටළුව විසඳා ගන්නා ආකාරය සැලසුම් කළ යුතු වෙනව.
විසඳුම සැලසුම් කිරීම (Plan solution)
ගැටළුව මනාව අධ්යනය කිරීමෙන් පසු, ඒ සඳහා පවතින විසඳුම් හඳුනා ගත යුතුයි. මෙය අදාළ ගැටළුවට පවතින සියලු විසඳුම් හඳුනා ගත හැකි නිර්මාණාත්මක මෙන්ම ප්රායෝගික ක්රියාවලියක් විය යුතුයි. සාමුහිකව ගැටළු විසඳීම (brainstorming) මේ සඳහා යොදා ගත හැකි ක්රමෝපායක්. කණ්ඩායමක් ලෙස යම්කිසි ගැටළුවකට විසඳුම් සෙවීමේදී එක් එක් සාමජිකයාට තමාගේ අදහස් හා යෝජනා ඉදිරිපත් කිරීමට ඉඩ ප්රස්ථා ලබාදිය යුතු අතර එම කාලය අතරතුර එම අදහස් විවේචනය කිරීම සිදු නොකල යුතුයි. අදහස් ඉදිරිපත් කිරීම අවසන් වූ පසු සියලු දෙනාම එකතු වී එම අදහස් සාකච්ඡා කිරීම සිදු කළ යුතු වෙනව. ගැටළුවට අදාළ විසඳුම් හැකිතාක් ජනනය කරගැනීමෙන් පසු මීළඟට සිදු කළ යුත්තේ සුදුසුම විසඳුම තෝරා ගැනීමයි. මෙහිදී අප සතුව පවතින සම්පත් (resources), වාතාවරණය (circumstances) වගේම වෙනත් කරුණු රැසක් සළකා බැලීම සිදු කළ යුතු වෙනව. මුදල්, කාලය, පුද්ගලයින්, ක්රියා පිළිවෙත් (procedures), ප්රතිපත්ති (policies), නීති රීති (rules) ආදී කරුණු රාශියක් මීට අයත්. විසඳුම් වලට ප්රමුඛතා ලබා දීමෙන් පසු, බැහැර කිරීමේ න්යාය (rule of elimination) භාවිතා කිරීමෙන් සුදුසුම විසඳුම තෝරා ගත යුතුයි. සුදුසුම විසඳුම තෝරා ගැනීමෙන් පසු මීළඟ පියවර වන්නේ තෝරා ගත් විසඳුම ක්රියාවට නැංවීමයි. විද්යාත්මක ප්රවේශයක් (scientific approach) සමඟ විසඳුම ක්රියාවට නැංවීම මෙහිදී ඉතා වැදගත්.
විසඳුම පරීක්ෂා කිරීම (Check solution)
ගැටළු විසඳීමේ ක්රියාවලියේ අවසාන පියවර ලෙස විසඳුම පරීක්ෂා කිරීම හඳුන්වන්න පුළුවන්. අප විසින් ක්රියාවට නැංවූ විසඳුමේ නිවැරදි තැන් වගේම වැරදුනු තැනුත් හඳුනා ගැනීමෙන් අනාගතයේදී විසඳුමට සිදු කළ යුතු සීරු මාරු කිරීම් අවබෝධ කර ගැනීම පහසු වෙනව. එමගින් අපිට සමාන ගැටළු විසඳීම සඳහා එම විසඳුමම වඩාත් සාර්ථකව අනාගතයේදී යොදා ගත හැකියි.
7.2 ගැටළු විසඳීම සඳහා පියවරාකාර පිරිපහදු ක්රමය යොදා ගැනීම
ප්රතිභාවිතය ( Modularization - මොඩියුලකරණය )
ගැටළුවක් විසඳීමේදී ඒ සඳහා නිර්මාණය කරන මෘදුකාංගය කුඩා කොටස් වශයෙන් වෙන්කර සංවර්ධනය කිරීම ප්රතිභාවිතය එසේත් නැතිනම් ( Modularization - මොඩියුලකරණය ) ලෙස හැඳින් වේ.
මෙම ක්රමයේ ඇති වාසි
මෙම ක්රමයේ ඇති අවාසි
පියවරාකාර පිරිපහදුව හා මුදුන් බිම් සැලසුම් ( Stepwise Refinement & Top Down Design )
ගැටළුවක් විසඳීමේදී පහසුවෙන් සිදුකල හැකි වන්නේ ගැටලුව විසඳා ගැනීම සඳහා භාවිතා කලයුතු පියවර කොටස් වශයෙන් වෙන් කිරීමයි එවිට සමස්ථ ගැටලුවම කුඩා කොටස් ලෙස වෙන්වන අතරම කුඩා කොටස් විසඳන ආකාරය සැලසුම් කිරිමතුලින් සමස්ත ගැටලුවම විසඳා ගැනීමේ හැකියාව පවතී.මෙසේ ගැටළුවක් විසඳීමට කුඩා කොටස් වලට වෙන් කිරීම මුදුන් බිම් සැලසුම් වශයෙන් හැඳින් වේ.
ආකෘති සටහන් ( Structure Charts )
ගැටලුව කුඩා එකක වශයෙන් වෙන් කරගත් පසු රූපමය ආකාරයෙන් නිරුපණය කිරීම ආකෘති සටහන් ( Structure Charts ) ලෙස හැඳින් වේ
උදා :- ඇඟලුම් කර්මාන්ත ශාලාවක සේවකයන්ගේ වැටුප් සකස් කිරීම.
7.3 ඇල්ගොරිතම ප්රවේශ භාවිතය
ඇල්ගොරිතමය ( Algorithms )
ඇල්ගොරිතම යනු ගැටළු විසඳීම සඳහා අනුගමනය කරන ක්රමවේදයකි. එය පියවරෙන් පියවර ගැටලුව විසඳන ආකාරය විදහා දක්වයි. ඇල්ගොරිතම ලිවීම සඳහා විශේෂිත පරිගණක භාෂාවන් අවශ්ය නොවේ. ඒවා සාමාන්ය ඉංග්රීසි භාෂාවෙන්ම ලිවිය හැක. ඇල්ගොරිතම ආශ්රයෙන් අපට පහසුවෙන් ගැලීම් සටහන් (Flowcharts), පරිගණක ක්රමලේඛ (computer programs) ලිවිය හැක.
ගැටළුවක් විසඳීමේ අදියර.
දැන් අප ගැටළුවක් විසඳීමේ අදියර 4 පියවරෙන් පියවර බලමු.
ගැටලුව විශ්ලේෂණය කිරීමේදී ආදාන (input), ප්රතිදාන (output) සහ ක්රියාවලිය (process) පිළිබඳව අවබෝධයක් තිබිය යුතුය.
උදාහරණය: සංඛ්යා 3ක සාමාන්ය යේ අගය සෙවීම.
ආදාන (Inputs) : පළමු සංඛ්යාව, දෙවන සංඛ්යාව සහ තෙවන සංඛ්යාව
ක්රියාවලිය (Process) : සංඛ්යා තුනේ එකතුව / 3
ප්රතිදානය (Output) : සාමාන්යය
ඇල්ගොරිතම රූපමය (Graphically) ආකාරයෙන් හෝ ලිඛිත (Text) ආකාරයෙන් දැක්විය හැක. රූපමය ආකාරයෙන් දැක්වීමේදී ඒවා ගැලීම් සටහන් (Flowcharts) ලෙසත්, ලිඛිත ආකාරයෙන් දැක්වීමේදී ඒවා කල්පිත ක්රමලේඛ හෝ ව්යාජ කේත (Pseudo codes) ලෙසත් හැඳින්වේ.
ඇල්ගොරිතම ලිඛිත ආකාරයෙන් දැක්වීම
Algorithm:
Enter the first number
Enter the second number
Enter the third number
Average = (first number + second number + third number) / 3
Display the Average
ඇල්ගොරිතම රූපමය ආකාරයෙන් දක්වන අයුරු අප පසුව පහත එන “ගැලීම් සටහන් ඇදීම” යන මාතෘකාව යටතේ බලමු.
මෙහිදී ඇල්ගොරිතමය පරිගණක භාෂාවක් ආකාරයෙන් ලිය දැක්වීම සිදු කරනු ලබයි.
පරිගණක ක්රමලේඛයෙහි දෝෂ ඇතිදැයි පරීක්ෂා කර, වැරදි තිබේනම් මෙම පියවරේදී ඒවා නිවැරදි කරනු ලැබේ. මෙම ක්රියාවලිය debugging ලෙස හඳුන්වයි.
ගැලීම් සටහන් ඇදීම
ක්රමලේඛයක ක්රියාකාරිත්වය අනුපිළිවෙළින් දැක්වෙන රෑපමය නිරෑපණයක් ගැලීම් සටහනක් ලෙස හඳුන්වයි. එවැනි ගැලීම් සටහනක් දත්ත ගලා යන ආකාරයත්, ඒවා යම් යම් ක්රියාකාරකම් වලට භාජනය වන ආකාරයත් පෙන්නුම් කරයි. ඒ එක් එක් ක්රියාකාරකම් විවිධාකාර සංකේත මගින් පෙන්වනු ලැබේ.
ගැලීම් සටහන් ඇඳීම සඳහා භාවිතා කරන ප්රධාන සංකේත
ආරම්භය / අවසානය (Start / End ) |
ගැලීම් සටහනක ආරම්භය සහ අවසානය පෙන්වීම සඳහා මෙම සංකේතය භාවිතා කරයි |
සැකසුම ( Process ) |
දත්ත සැකසීමේ ක්රමයක් පෙන්වීමට මෙම සංකේතය භාවිතා කරයි. |
ආදාන / ප්රතිදාන (Input / Output ) |
දත්ත ආදානය සහ ප්රතිදානය පෙන්වීමට මෙම සංකේතය භාවිතා කරයි. |
තීරණ ගැනීම ( Decision ) |
තීරණ ගැනීම නිරුපණය කිරීම සඳහා මෙම සංකේතය භාවිතා කරයි. |
අනු සැකසුම ( Sub Process ) |
ප්රධාන සැකසුමකට පරිබාහිරව සිදුවන ඊට අදාළ වෙනත් සැකසුම් නිරුපණය කිරීම සඳහා මෙම සංකේතය භාවිතා කරයි. |
ගැලීම් රේඛා ( Flow Line ) |
දත්ත ගලා යාම නිරුපණය කිරීම සඳහා මෙම සංකේතය භාවිතා කරයි. |
සම්බන්ධක ( Connector ) |
ගැලීම් සටහනක කොටස් සම්බන්ධ කරගැනීම නිරුපණය කිරීම සඳහා මෙම සංකේතය භාවිතා කරයි. |