1970 දශකයේ AT&T හි PDP‑11 පරිගණකයේ සීමිත මතකය (64KB) තුළ 250KB ව්යාප්ත ශබ්දකෝෂයක් රැගෙන යාම අභියෝගයක් විය. එය සාර්ථකව කරගත්යේ Douglas McIlroy ගේ නවෝත්පාදනමය සංකේතනයේ නිසාය.
Unix පද්ධතියේ පළමු spell‑checker එක 1975 දී Steve Johnson විසින් එක් දවස් අඩි කාලයක් තුළ ලියන ලදී. එය වචන වෙන් කර, අංක සහ විශේෂ ලකුණු ඉවත් කර, කුඩා අකුරට පරිවර්තනය කර, පසුව ශබ්දකෝෂයක් සමඟ ගැලපීමේ සරළ පරීක්ෂාවක් කළා. එය ක්රියාත්මක වුවද, ගැලපීම් කාර්යක්ෂමතාව අඩුය.
McIlroy මේ පද්ධතිය නැවත ලියමින්, වචනවල මුල (stem) හඳුනාගැනීමේ අලංකාර ඇලගොරිතමක් නිර්මාණය කළා. එමඟින් ශබ්දකෝෂය 25,000 වචනවලට කුඩා කර, නිරවද්යතාව වැඩි කළා.
ඉක්මන් සෙවුම් සඳහා, ඔහු Bloom filter එකක් (Dennis Ritchie විසින් ක්රියාත්මක කරන ලද) භාවිතා කළා. අඩු වැරදි අනුපාතයක් ලබා, බොහෝ අවස්ථාවලදී ශබ්දකෝෂය පරීක්ෂා කිරීමේ අවශ්යතාවය ඉවත් කළා.
ශබ්දකෝෂය 30,000 වචන වෙත වැඩි වීමත් සමඟ Bloom filter එක අසාර්ථක වීම නිසා, McIlroy 27‑bit hash code භාවිතා කර collisions අවම කිරීමට උත්සාහ කළා. එම hash code ගණනාවක් සකස් කිරීමේදී, ඒවායේ වෙනස්කම් (differences) භූගෝලීය (geometric) ව්යාප්තියක් පෙන්වා දෙයි. එම ව්යාප්තියට ගොලොම්බ් කේතනය (Golomb code) යෙදුණි, ඒ තුළින් එක් වචනයකට 13.60 බිට් පමණ පමණක් වැය විය – න්යායමය සීමාව 13.57 බිට් සමීපයි.
අවසානයේ, සංග්රහිත දත්ත කොටස් වශයෙන් වෙන් කර, සෙවුම් වේගය වැඩි කළා. මෙයින් මතක භාවිතය තවමත් 14 බිට් පමණ වචනයකට පමණි, නමුත් පද්ධතිය ඉතා වේගවත් විය.
ශ්රී ලංකාවට ඇති වැදගත්කම
මෙම ඉතිහාසක කතාව අපේ දේශීය සංවර්ධකයින්ට සම්පූර්ණ ආදර්ශයක්. සීමිත මතකයක් (Raspberry Pi, Arduino) හෝ low‑cost embedded system එකක දත්ත සංග්රහණය කළ යුතු වීමේදී, McIlroyගේ “data‑driven compression” මූලධර්මය අනුගමනය කළ හැක.
- සිසුන් – ගණිත, සංකේතන විද්යාවේ න්යායමය සීමාවන් සමඟ ප්රායෝගික උදාහරණයක් ලෙස භාවිතා කළ හැක.
- සංවර්ධකයින් – IoT උපාංග, edge‑computing යෙදුම් සඳහා මතක‑කාර්යක්ෂම data structures නිර්මාණය කළ හැක.
- ව්යාපාර – ලොකු පරිමාණ text‑processing, log‑analysis හෝ search engine optimisation සඳහා server‑side memory footprint අඩු කර ගත හැක.
ඉතින්, “අවශ්යතාවය නවෝත්පාදනයට මූලිකය” කියන සංකේතය මෙහිදී පළවී ඇත. පරණ පද්ධතිවල පවා නව තාක්ෂණික අදහස් ගෙන එන්න පුළුවන්.
අද දිනයේ, McIlroyගේ ක්රමය තවමත් අභ්යන්තරයෙන් තවත් කෙනෙකු විසින් අත්හදා බැලීමක් නොමැත. එය තාක්ෂණික ඉංජිනේරුකරණයේ අතිවිශිෂ්ට උදාහරණයක් ලෙස පවති.