Wednesday, August 7, 2013

တန်ဖိုးကြီးမား ​ဆော့ဖ်ဝဲအမှားများ

နိဒါန်း
မိတ်ဆွေဟာ အဆင့်မြင့် လယာဉ်တစီးပေါ်ကို တက်လိုက်ပြီဆိုတာနဲ ၊ မာင်းသူမဲ့ အမြန်ရထားတစီးပေါ်ခြေချလိုက်ပြီဆိုတာနဲ  ဒါမှမဟုတ်လဲ နာက်ဆုံးပေါ် ရာဂါရှာဖွေကုသရေးစက်ကြီးတွေသုံးပြီး မိတ်ဆွေရဲ့ ကျန်းမာရေးနဲ  ပတ်သက်လို  စစ်ဆေးကုသဖို  စတင်လိုက်တဲ့ အခါမျိုးတွေမှာ မိတ်ဆွေရဲ့ အသက်ကို ဆာ့ဖ်၀ဲ တခုခုအပေါ် လုံး၀နီးပါး ပုံအပ်လိုက်ရပြီ ဆိုတာ မိတ်ဆွေ သတိထားမိပါသလား။ ဒီကနေ ခတ်သစ်ကမ္ဘာမှာ ဆာ့ဖ်၀ဲနဲ ကွန်ပြူတာစနစ်တွေဟာ လူ အသုံးဆောင် ပစ္စည်းတွေ၊  ဆးပညာဆိုင်ရာ ကရိယာတွေ၊ စစ်လက်နက်တွေအထိ ကျယ်ကျယ်ပြန် ပန်  ပါ၀င်ဖွဲ စည်းတည်ဆောက်ထားတဲ့အတွက်၊ အဲဒီဆော့ဖ်၀ဲတွေရဲ့ အရည်အသွေး နဲ ပတ်သက်ပြီး သူတို ရဲ့ စိတ်ချယုံကြည်နိုင်စွမ်းနဲ ပတ်သက်လို  အသည်းအသန် မးခွန်းထုတ်စရာတွေ ဖစ်လာနေပါတယ်။ တကယ်တော့ ကမ္ဘာပေါ်မှာ ရှိသမျှ ဘယ်ဆော့ဖ်၀ဲမှ အမှားမကင်းပါဘူး။ အများအားဖြင့်တော့ ဆာ့ဖ်၀ဲရေးသူတွေ တွ လ့ရှိတဲ့အမှားတွေဟာ ကံမကောင်းအကြောင်းမလှလို ဖစ်ရပေမယ့် ပန်ပြင်ဆင်လို ရတဲ့ အမှားတွေသာဖြစ်ပါတယ်။ ဒါပေမယ့်လည်း မကြာခဏဆိုသလို တချို  ဆာ့ဖ်၀ဲအမှားတွေဟာ သိပ်ကို ဆိုး၀ါးပြင်းထန်လှတဲ့ အခါတွေလည်းရှိပါတယ်။ တချို အမှားတွေက တာ့သိပ်ကို တန်ဘိုးကြီးမားလွန်းပြီး လူ အသက်တွေနဲ ပါ ရင်းခဲ့ရတဲ့အမှားတွေပေါ့။

Metric Mixup Problem
၁၉၉၈ ခုနှစ် ဒီဇင်ဘာ ၁၁-ရက်မှာ နာဆာ (NASA)က လွှတ်တင်ခဲ့တဲ့ အင်္ဂါဂြိုဟ် ရာသီဥတုလေ့လာရေး ဂိုဟ်ပတ်ယာဉ် (Mars Climate Orbiter) ဟာ၊ ၁၉၉၉ ခုနှစ် စက်တင်ဘာ ၂၃-ရက် မှာ အင်္ဂါဂြိုဟ်ပတ်လမ်းကို ချဉ်းကပ်နေစဉ်မှာပဲ ပျက်ကျ ပျက်စီးခဲ့ပါတယ်။ ပျက်ရတဲ့ အကြောင်းရင်းက နာဆာရဲ့ အာကာသယာဉ်တည်ဆောက်ရေးအဖွဲ နဲ  အာသာသယာဉ် လမ်းကြောင်း ထိန်းသိမ်းလမ်းညွှန်ရေးအဖွဲ  နှစ်ဖွဲ က မတူညီတဲ့ တိုင်းတာရေးစနစ်တွေကို သုံးထားတဲ့ အတွက်ကြောင့်ပါ။ တဖွဲ က English Unit (foot, pound, second – FPS) စနစ်ကိုသုံးပြီး၊ နာက်တဖွဲ က Metric Unit (meter, kilogram, second - MKS) စနစ်ကို သုံးထားတာကြောင့်လို ဆိုပါတယ်။ (REF: http://mars.jpl.nasa.gov/msp98/news/mco990930.html) အာကာသယာဉ်ပေါ်မှာရှိတဲ့ ပျံသန်းရေစနစ် ဆာ့ဖ်၀ဲက  ရွ လျားဖို လိုအပ်တဲ့ အား (force)နဲ  ပတ်သက်ပြီး ညွှန်ကြားချက်ကို လက်ခံတဲ့အခါ metric unit တခုဖြစ်တဲ့ newton (N) နဲ လက်ခံပါတယ်။ နာဆာရဲ့ မပြင်ထိမ်းချုပ်ရေးစခန်းက အဲဒီညွှန်ကြားချက်ပေးတဲ့အခါ Imperial Unit or British Unit ဖစ်တဲ့ pound-force (lbf) နဲ  ပးပါတယ်။ အကျိုးဆက်ကတော့ ယာဉ်ဟာ မူလက ရည်မှန်းသတ်မှတ်ထားတဲ့ အင်္ဂါဂြိုဟ်ပတ်လမ်းအမြင့်ထက် အများကြီးနိမ့်တဲ့ အမြင့် (altitude) ဖစ်တဲ့ အင်္ဂါဂြိုလ် အပေါ်ပိုင်းလေထုအလွှာထဲကို ချဉ်းနင်း၀င်ရောက်ခဲ့တာကြောင့် ပတ်၀န်းကျင် လထုရဲ့ဒဏ်အား ( atmospheric stresses) တွ ကိုခံရပြီး ယာဉ်ဟာ တစစီ ပုတ်ထွက် ပျက်စီးခဲ့ရပါတယ်။ အဲဒီအချိန်ကစပြီး အဲဒီလို အမှားမျိုးကို “စံ မတူညီတဲ့ တိုင်းတာရေးစနစ်တွေကို ရာပြီးသုံးလို ဖစ်ရတဲ့ ပဿနာ metric mixup problem” လို ခါ်တွင်ခဲ့ပါတယ်။

Weak Logic Check
တခါ သူနဲ တွဲလျက်ပရောဂျက်ဖြစ်တဲ့ ၁၉၉၉ ဇန်န၀ါရီ ၃-ရက်နေ မှာ နာဆာက လွှတ်တင်ခဲ့တဲ့ အင်္ဂါဂြိုဟ်၀င်ရိုးစွန်းဆင်းယာဉ် (Mars Polar Lander)ဟာလည်း၊ အင်္ဂါဂြိုဟ် ရာသီဥတု လ့လာရေးယာဉ် ပျက်ကျပြီး နာက်နှစ်လခွဲလောက်အကြာ ၁၉၉၉ခု ဒီဇင်ဘာ ၃-ရက်နေ မှာ အင်္ဂါဂြိုဟ်ပေါ်ကို ဆင်းသက်ဖို  ကျိုးစားစဉ်မှာပဲ ပျက်ကျခဲ့ပြန်ပါတယ်။ အကြောင်းကတော့ ယာဉ်ဟာ အမြင့်ပေ ၁၃၀ လာက်မှာ ရှိနေသေးလျက်နဲ ၊ ယာဉ်မှာ တပ်ဆင်ထားတဲ့ ခထောက်သုံးချောင်းရဲ့ အာရုံခံစနစ်(magnetic sensor)တွေက အင်္ဂါဂြိုဟ်ရဲ့ မျက်နှာပြင်နဲ ထိပြီ ဆိုပြီး မှားယွင်းအချက်ပေးတယ်။ အဲဒီအခါမှာ ယာဉ်ရဲ့ စက် (engine) ကို ထိန်းချုပ်တဲ့ ဆာ့ဖ်၀ဲစနစ်က၊ (ကျဆင်းနေတဲ့ အရှိန်လျော့ကျသွားအောင် ယာဉ်ရွေ လျားနေတဲ့ လမ်းကြောင်းရဲ့ ပာင်းပြန်လမ်းကြောင်းအတိုင်း တွန်းကန်ထားပေးတဲ့) အရှိန်သတ် ဒုံးကျည်တွေ (retro rockets) ကို ပိတ် ပစ်လိုက်တယ်။ ဒါကြောင့် အင်္ဂါဂြိုဟ်မျက်နှာပြင်အထက် မီတာ ၄၀ (ပေ ၁၃၀ ခန် ) လာက်အမြင့်မှာ တစ်စက္ကန်  ၁၃ မီတာနှုန်း ( 13 meter per second) အလျင် (velocity) နဲ ချဉ်းကပ်လာနေတဲ့ယာဉ်ဟာ၊ အရှိန်သတ်ဒုံးကျည်တွေရဲ့အား မပါတော့တာကြောင့် ၊ အင်္ဂါဂြိုဟ်မြေဆွဲအားရဲ့ဒဏ်ကို ပိုခံရပြီး၊ တကယ်ဆင်းသက်ရမယ့် အလျင် 2.4 meter per second ထက် ဆယ်ဆလောက်ပိုတဲ့့၊ 22 meter per second (တနာရီကို မိုင် ၅၀ လာက်) နှုန်းနဲ  အင်္ဂါဂြိုဟ် မျက်နှာပြင်ပေါ်ကို အရှိန်ပြင်းပြင်း ကျရောက် ပျက်စီးခဲ့ပါတယ်။ တကယ်တော့ အာရုံခံကရိယာတွေရဲ့ မှားယွင်းအချက်ပြနိုင်ခြေတွေနဲ ပတ်သက်ပြီး ဆာ့ဖ်၀ဲက ပည့်ပြည့်စုံစုံ ကာင်းကောင်းမွန်မွန် မကိုင်တွယ် မစစ်ဆေးလို အခုလို ဖစ်ရတာပါ။ ဆာ့ဖ်၀ဲရဲ့အမှားကြောင့် အဲဒီ Mars ဂိုလ်လေ့လာရေး အာကာသယာဉ် နှစ်စီး ပျက်စီးခဲ့မှုဟာ အမေရိကန်ဒေါ်လာသန်းပေါင်း ၁၈၀ လာက် အလဟဿ ဆုံးရှုံးစေခဲ့တယ်လို သိရပါတယ်။ (REF: http://news.bbc.co.uk/2/hi/science/nature/4522291.stm)

Self-intersecting shape outline problem
သက္ကရာဇ် ၂၀၀၀ ခုနှစ်၊ နို၀င်ဘာလတုန်းက၊ ပနားမားနိုင်ငံ (Panama) ရဲ့ အမျိုးသားကင်ဆာသိပ္ပံ (National Cancer Institute) မှာ၊ ကင်ဆော၀ဒနာရှင် ၂၈ ရာက်ကို ဆရာ၀န်ညွှန်ကြားတာထက် အများကြီးပိုတဲ့ ဓါတ်ရောင်ခြည်ပမာဏ ပးမိခဲ့တယ်။ အဲဒီရဲ့ အကျိုးဆက်ကြောင့် အနည်းဆုံး လူနာငါးဦးသေဆုံးခဲ့ရပြီး တခြားကျန်တဲ့ လူနာတွေလည်း ဓါတ်ရောင်ခြည်သင့်လို  ရာဂါ နာက်ဆက်တွဲ ၀ဒနာဆိုးကျိုးတွေ အကြီးအကျယ်ခံစား လိုက်ရတယ်လို  အမေရိကန် အစားအသောက်နဲ ဆး၀ါးထိမ်းသိမ်းကွပ်ကွဲရေးဌာန (U.S Food and
Drug Administration - FDA) ကဆိုပါတယ်။ (REF: http://www.fda.gov/cdrh/ocd/panamaradexp.html, July 6, 2001)
အကြောင်းရင်းကို စုံစမ်းစစ်ဆေးကြည့်လိုက်တော့၊ ဓါတ်ကင်တဲ့စက် (Theratronics Cobalt-60) ကို ထိန်းချုပ်တဲ့ Multidata ဆိုတဲ့ ဆာ့ဖ်၀ဲရဲ့ algorithm အမှားကြောင့်ဆိုတာ သွားတွေ ခဲ့ပါတယ်။
အဲဒီ Multidata ဆာ့ဖ်၀ဲမှာ စက်ကိုင်တဲ့သူ(Theratronics Cobalt-60 ရဲ့ operator) တွ ကို “block” နဲ  ပတ်သက်တဲ့ အချက်အလက်အလက် ကိန်းဂဏန်းတွေကို ထည့်သွင်းခွင့် ပးထားတယ်။ “block” ဆိုတာ၊ လူနာကို ဓါတ်ကင်တဲ့အခါ ( x-ray ဖတ်တဲ့အခါ ) ကင်ဆာဆဲလ်တွေရှိနေတဲ့ အပိုင်းကိုပဲ ဓါတ်ရောင်ခြည်သက်ရောက်စေပြီး၊ တခြား ကာင်းတဲ့ ကျန်းမာနေတဲ့ ဆဲလ်စ် (cells) တွ တစ်ရှုး(tissues) တွကို ဓါတ်ရောင်ခြည်မသင့်အောင် ကာကွယ်ပေးတဲ့ သတ္တုပြားကို ပာတာပါ။ ဆရာ၀န်တွေဟာ လူနာတဦးချင်းစီပေါ်မူတည်ပြီး အမျိုးမျိုးအထွေထွေ မတူကွဲပြားတဲ့ block တွကိုသုံးဖို ၊ လိုအပ်သလိုညွှန်ကြားတာဖြစ်ပါတယ်။ စက်ကိုင်တဲ့သူဟာ ဆရာ၀န်ညွှန်ကြားထားတဲ့ အဲဒီ block နဲ ပတ်သက်တဲ့ အချက်အလက်တွေကို စက်ထဲကို ရိုက်ထည့်လိုက်တဲ့အခါမှာ ၊ Multidata ဆာ့ဖ်၀ဲက သက်ဆိုင်ရာလူနာကို ဓါတ်ရောင်ခြည်ပမာဏ ဘယ်လောက်ပေးရမလဲဆိုတာကို တွက်ချက်တာဖြစ်ပါတယ်။
ဒီမတော်မတမှုဖြစ်စဉ်မှာ အဲဒီလို ဓါတ်ရောင်ခြည် လွန်ကဲသက်ရောက်စေတဲ့အကြောင်းရင်းကို ရှာဖွေကြည့်လိုက်တော့၊ ဆာ့ဖ်၀ဲ နားလည်မှုလွဲစေမယ့် ပုံစံမျိုးနဲ  operator တွကို data input လုပ်ခွင့်ပေးထားတဲ့ ပဿနာဖြစ်ကြောင်း သွားတွေ ရပါတယ်။ အဲဒါကြောင့် Multidata ဆာ့ဖ်၀ဲက ပုံဖေါ်ပေးတဲ့ block တွမှာ အပေါက်(hole) တွ ပါသလိုဖြစ်နေခဲ့ပြီး၊ လူနာရဲ့ မလိုအပ်တဲ့နေရာတွေကိုပါ ဓါတ်ရောင်ခြည်ကျရောက်စေခဲ့တာဖြစ်ပါတယ်။ တနေ ကို လူနာတစ်ရာလောက် ကုသပေးနေတဲ့ အဲဒီဆေးရုံကြီးမှာ operator တစ်ရောက်ချင်းစီရဲ့ data ရိုက်ပုံ သွင်းပုံတွေကြောင့် လူနာပေါင်းဘယ်လောက်အထိ ထိခိုက်နစ်နာခဲ့ရတယ် (ဓါတ်ရောင်ခြည်သင့်ခဲ့ရတယ်) ဆိုတာ အတိအကျ ပာဖို တာင် ခပ်ခက်ခက်ပါ။ အသေးစိပ်သိချင်တယ်ဆိုရင်တော့ March 2004 ထုတ်၊ eWEEK ရဲ့ ဆာင်းပါး http://www.findarticles.com/p/articles/mi_zdewk/is_200403/ai_ziff121063 မှာ ဖတ်ကြည့်ပါ။ ဆာ့ဖ်၀ဲရဲ့အမှားကြောင့် ဒါမှမဟုတ် အားနည်းချက်ကြောင့် ဖစ်ခဲ့ရတဲ့ အလားတူ ဆုံးရှုံးနစ်နာမှု အဖြစ်အပျက်တွေ အများကြီးရှိပါသေးတယ်။ ဥပမာတခုကတော့ ကနေဒါနဲ  အမေရိကန်နိုင်ငံမှာ ၁၉၈၅-၈၇ အတွင်း အဲဒီလိုပဲ ကွန်ပြူတာထိန်းချုပ်တဲ့ ဓါတ်ရောင်ခြည်ကုသရေးစက် Therac-25 ဟာ လူနာ ခာက်ရောက်ကို အလွန်များပြားတဲ့ ဓါတ်ရောင်ခြည် သင့်စေခဲ့ပြီး၊ အဲဒီအဖြစ်အပျက်ကို ဆးကုသရေးဆိုင်ရာ စက်တွေပေါ်ပေါက်ခဲ့တဲ့ ၃၅ နှစ်တာကာလအတွင်း အဆိုး၀ါးဆုံး မတော်တဆမှု လို သတ်မှတ်ခဲ့ရပါတယ်။ (REF: Nancy Leveson, Safeware: System Safety and Computers, Addison-Wesley, 1995)
Roundoff Problem
၁၉၉၀ မှာဖြစ်ပွားခဲ့တဲ့ ပထမပင်လယ်ကွေ စစ်ပွဲ(Gulf War I)မှာ မန်မြန်ဆန်ဆန် နဲ  အချိန်ကိုက် စစ်အောင်နိုင်ရေးအတွက်ဆိုပြီး အမေရိကန်ရဲ့ သဲကန္တာရမုန်တိုင်းစစ်ဆင်ရေး (Operation Desert Storm) မှာ၊ အဆင့်မြင့်ပြီး ရှုပ်ထွေးတဲ့ နည်းပညာတွေကို အသုံးချခဲ့ပါတယ်။ အဲဒီထဲက တစိပ်တပိုင်းကတော့ ပက်ထြီးရော့ လကြောင်းရန်ကာကွယ်ရေး ဒုံးကျည်စနစ် (Patriot missile air defence system) ပဲဖြစ်ပါတယ်။ [“ဒါနဲ  နစမ်းပါဦး။ patriot ဆိုတာ မျိုးချစ် လို အဓိပ္ပါယ်ရတာ လူတိုင်းလိုလို သိနေတာပဲ၊ ခင်ဗျားက ဘာလို အဆန်းထွင်ပြီး အသံထွက်အတိုင်း ရးထားတာလဲဗျ” လို  မိတ်ဆွေတချို က မးခွန်း ထုတ်ကောင်း ထုတ်ချင်ကြမှာပါ။ ‘အဲဒီ စကားလုံးကို၊ အဲဒီနေရာမှာ၊ အဲဒီ အဓိပ္ပါယ် နဲ  သုံးထားတာမဟုတ်ပဲ နာမည်အနေနဲ သုံးထားတာဖြစ်လို ပါ’ လို ဖပါရစေ။]
၁၉၉၁-ခု ဖဖ၀ါရီ ၂၅-ရက် ညမှာ၊ ဆာ်ဒီအာရေးဗီးယားနိုင်ငံ ဒါဟရန်ဒေသမှာ တပ်စွဲထားတဲ့ အမေရိကန် စစ်စခန်းတခုကို၊ အီရတ်က ပစ်လွှတ်လိုက်တဲ့ စကဒ်(Scud) ဒုံးကျည်တစင်း ထိမှန်ခဲ့ပါတယ်။ အကြောင်းကတော့ ပစ်လွှတ်လိုက်တဲ့ စကဒ်ဒုံးကျည်ကို ပက်ထြီးရော့ဒုံးကျည်စနစ်ရဲ့ ရဒါ(Radar)တွေက အချိန်မှီထောက်လှမ်းမိပြီး တန်ပြန် ဒုံးခွင်းဒုံးနဲ အလိုအလျောက် ကြားဖြတ် ပစ်မချနိုင်ခဲ့လို ပါပဲ။ အဲဒီ အဖြစ်အပျက်ကြောင့် အမေရိကန်တပ်သားပေါင်း ၂၈ ဦး ကျဆုံးခဲ့ရပြီး ၁၀၀ နီးပါး ထိခိုက် ဒဏ်ရာရခဲ့ပါတယ်။ ပက်ထြီးရော့ ဒုံးကျည်ကာကွယ်ရေးစနစ်ဟာ ဘာကြောင့် မျှာ်လင့်ထားသလို အလုပ်မလုပ်သလဲဆိုတာကို အကြောင်းရင်း ရှာလိုက်တော့၊ သူ ရဲ့ ရဒါစနစ် နဲ  လမ်းကြောင်းရှာဖွေထောက်လှမ်းရေးစနစ် ဆာ့ဖ်၀ဲမှာ အားနည်းချက်(bug)တခု ရှိနေလို ဆိုတာ သွားတွေ ရပါတယ်။ အဲဒီ အားနည်းချက်က ဒီလိုပါ။
• ရဒါစနစ်က ထာက်လှမ်းမိတဲ့ အရာ၀တ္တုရဲ့ အလျင်၊ တည်နေရာ၊ အကွာအေ၀း စတာတွေကို တွက်ချက်ဖို အတွက် လိုအပ်တဲ့ အလွန်တိကျတဲ့ အချိန်တခု မှတ်သားနိုင်မယ့် ကိန်းရှင် (variable) တခုရှိတယ်။
• အချိန်တန်ဘိုး assign လုပ်မယ့် အဲဒီ variable ထဲကို (အချိန်ကို ပိုတိကျအောင်) တစက္ကန် ရဲ့ ဆယ်ပုံတပုံ ယူနစ် (0.1) အဖြစ် သတ်မှတ်ပြီး သိမ်းဆည်းစေတယ်။
• အဲဒီ ဆာ့ဖ်၀ဲစနစ် run နတဲ့ ကွန်ပြူတာက 24-bit register ကို အသုံးပြုတယ်။
• 0.1 ကို binary စနစ် ဖစ်တဲ့ base-2 နဲ  ကိုယ်စားပြု ဖါ်ပြတဲ့အခါ သူဟာ အဆုံးမဲ့ (non-terminating) ဖစ်နေ တယ်။
• ဒါကြောင့် 24-bit fixed point register ထဲမှာ ထည့်သွင်းနိုင်အောင် binary ပုံစံနဲ  ကိုယ်စားပြုထားတဲ့ floating point ထဲက ၂၃ နရာမြောက်ရဲ့ နာက်က ဒဿမနေရာတွေကို ဖတ် (truncate) ပစ်တယ်။
အဲဒီလို ဖတ်ပစ်လို  တန်ဘိုး တချို  ဆုံးရှုံးသွားမယ်ဆိုတာ မိတ်ဆွေတို သိမှာပါ။ အဲဒီ တန်ဘိုးက လုံး၀ မများပါဘူး။ တစက္ကန် မှာမှ 2-20 (two to the power minus twenty) စက္ကန် သာ ပျာက်ဆုံး လျာ့ပါး (loss of precision) သွားတာပါ။
• 2 ^ -20 (two to the power minus twenty) = 0.00000095367431640625
• ဒါကြောင့် 24-bit register ကို သုံးထားတဲ့ အဲဒီ ဆာ့ဖ်၀ဲစနစ်မှာ ၁-စက္ကန် ဟာ ၀.၉၉၉၉၉၉ စက္ကန် လာက်ပဲ ရှိပါမယ်။ (1 - 0.00000095367431640625 = 0.99999904632568359375)
• အဲဒီလျော့သွားတဲ့တန်ဘိုးဟာ မူလတန်ဘိုးရဲ့ 0.00001% သာရှိပြီး တစ်စက္ကန် ရဲ့ အပုံ တစ်သန်းမှာ တပုံသာ ပျာက်ဆုံး လျာ့ပါး သွားတာဖြစ်ပါတယ်။
ဒါပေမယ့် ကျွန်တော်တို  ဆက် တွက်ကြည့်ကြပါစို ။
၁ စက္ကန် မှာ 0.00000095367431640625 စက္ကန်  လွဲရင်
၁ နာရီ (၃၆၀၀ စက္ကန် )မှာ 0.00000095367431640625 * 3600 = 0.0034332275390625 စက္ကန် ကွာဟနေပါမယ်။
ဒါကြောင့် နာရီပေါင်း ၁၀၀ ကြာတဲ့အခါမှာ 0.0034332275390625 * 100 = 0.34332275390625 စက္ကန် ကွာဟသွားပါပြီ။
နာရီ တစ်ရာ ပါ်မှာမှ တစ်စက္ကန် ရဲ့ သုံးပုံတစ်ပုံလောက်ပဲ ကွာဟတယ်ဆိုတာလည်း တကယ်တော့ မများလှဘူးလို ထင်ရပါတယ်။ ဒါပေမယ့် 1.7 km/sec ( ၁ စက္ကန် မှာ ၁.၇ ကီလိုမီတာ) နှုန်းအလျင်ရှိတဲ့ စကဒ်ဒုံးကျည်ဟာ အဲဒီအချိန်အတွင်းမှာ (1700 * 0.34332275390625) မီတာပေါင်း ၅၈၀ ကျာ် (ပေ ၂၀၀၀ နီးပါး) ခရီးနှင်ပြီး ချဉ်းကပ်လာခဲ့ပါပြီ။ ပက်ထြီးရော့ရဲ့ ရဒါစနစ်တွေက အဲဒီ စကဒ်ဒုံးကျည်ကို ထာက်လှမ်းမိပေမယ့်၊ တကယ့်လက်တွေ လာကရဲ့ ပကတိကြာချိန်နဲ  ကွန်ပြူတာမှာ မှတ်သားထားတဲ့ အချိန် ကွာဟနေတာကြောင့်၊ ဒုံးကျည်ရဲ့ အလျင် နဲ  တည်နေရာကို ဆာ့ဖ်၀ဲက တိကျမှန်ကန်အောင် မတွက်ချက်နိုင်လိုက်ဘူး။ ဒါကြောင့် ဒုံးခွင်းဒုံးစနစ်က အလိုအလျောက် တုံ ပန်ပစ်ချဖို  နှာင့်နှေးခဲ့ရပါတော့တယ်။
တချို ကလည်း ဒါဟာ ဆာ့ဖ်၀ဲရဲ့ အမှားသက်သက်ချည်းပဲ မဟုတ်ဘူးလို  ငင်းချက်ထုတ်ပါတယ်။ ဘာလို လဲဆိုတော့ မူလတုန်းက အဲဒီ ပက်ထြီးရော့စနစ်ကို ဆိုဗီယက်တို ရဲ့ ခရုဇ်ဒုံးကျည် အပါအ၀င် အလယ်အလတ်နဲ  အမြင့်ပျံ စစ်လေယာဉ်တွေကို (လိုအပ်ရင်) ပစ်ချနိုင်ဖို  ရွ လျားစနစ်တခုအဖြစ် တည်ဆောက် ခဲ့တာပါ။ တစ်နေရာမှာ နာရီနည်းနည်းပဲထား၊ နာက်တစ်နေရာရွှေ ..စသည်ဖြင့်ပေါ့။ ဒါကြောင့် သူ ရဲ့မူလရည်ရွယ်ချက်နဲ  မကိုက်ညီတဲ့ နရာမှာ သုံးလို  အခုလို ဖစ်ရတာလို ဆိုပါတယ်။ ဘယ်လိုမကိုက်ညီတာလဲဆိုတော့၊ တစ်အချက်က ခရုဇ်ဒုံးကျည်ဟာ တော၀းပစ်ဖြစ်တဲ့အတွက် သူ ရဲ့ အလျင်ဟာ (စကဒ်ဒုံးကျည်နဲ ယှဉ်ရင်) သိပ်မမြန်ပါဘူး။ စကဒ်ဒုံးကျည်ကတော့ တာတိုပစ်ဖြစ်တဲ့အတွက် ခရုဇ်ဒုံးကျည်ထက် ပိုမြန်ပါတယ်။ နှစ်အချက်က တစ်နေရာမှာ နာရီနည်းနည်းပဲထားဖို  ဒီဇိုင်းလုပ်ထားတဲ့ အဲဒီ ဒုံးကျည်ကာကွယ်ရေးစနစ်ကို တနေရာတည်းမှာ နာရီ တစ်ရာလောက်အထိ run ထားတဲ့အချက်ပါ။ မူလကတော့ “ဒီစနစ်ကို တကြိမ်မှာ ၈-နာရီထက် ပိုကြာအောင် မသုံးဘူး။ တကယ်လို  ဆက်တိုက်သုံးမယ်ဆိုရင်လည်း ပုံမှန် restart လုပ်ပေးမယ်” လို  ကြံရွယ်ခဲ့ပါတယ်။ အချိန်ကွာဟမှု (time variance) မရှိတော့အောင် ပျာက်သွားအောင်၊ time ကို zero ကို ပန်ထားဖို  system ကို re-start လုပ်မယ်ဆိုရင်၊ အချိန် တစ်မိနစ်လောက် ကြာမှာဖြစ်ပါတယ်။ ဒါပေမယ့် ခက်တာက စစ်ဖြစ်နေတဲ့အချိန်မှာ တစ်မိနစ်ဆိုတဲ့အချိန်ကို ပးပြီး အဲဒီ ဒုံးကျည်ကာကွယ်ရေးစနစ်ကြီးကို restart လုပ်ဖို ဆိုတာ တကယ်တော့ ဘယ်ဖြစ်နိုင်ပါ့မလဲ။ ဘာပဲပြောပြော အရင်းစစ်တော့ အမြစ်မြေမှာ ဆိုသလို loss of precision နဲ  ပတ်သက်ပြီး အရေးထားသင့်သလောက် မထားခဲ့လို ၊ ပာင်းလဲလာနိုင်တဲ့ အခြေအနေတွေနဲ  လိုက်လျောညီထွေဖြစ်အောင် အဖက်ဖက်ကပြည့်စုံအောင် ဆာ့ဖ်၀ဲကို ပင်ဆင်ရေးသား မထားလို  အခုလို ဖစ်ရတာလို ပဲ ဆိုရပါမယ်။

Inconsistency problem
၁၉၉၅ ဒီဇင်ဘာ ၂၀ မှာ အမေရိကန်နိုင်ငံ ဖလော်ရီဒါပြည်နယ်ရဲ့ မိုင်ယာမီအပြည်ပြည်ဆိုင်ရာ လဆိပ်ကနေ အမေရိကန်လေကြောင်းလိုင်း အမှတ်၉၆၅ ဘိုးရင်း (Boeing)757 လယာဉ်ဟာ၊ ကိုလံဘီယာနိုင်ငံ ကယ်လီ (Cali) မို  အယ်ဖွန်ဆို ဘိုနီးလား အာရဂွန် (Alfonso Bonilla Aragón) အပြည်ပြည်ဆိုင်ရာလေဆိပ်ကို ဦးတည်ပြီး ပျံသန်းထွက်ခွာခဲ့ပါတယ်။ လယာဉ်ဟာ မိုင်ယာမီက ထွက်ခွာချိန်နောက်ကျခဲ့ရတာကြောင့် အတတ်နိုင်ဆုံး စာ ဆိုက်ရောက်စေလိုတဲ့အတွက်၊ ကယ်လီတ၀ိုက်မှာလည်း လငြိမ်နေတာကြောင့် ကယ်လီထိန်းချုပ်ရေးစခန်းက လယာဉ်မှူးကို မူလသတ်မှတ်ထားတဲ့ ချဉ်းကပ်လမ်းကြောင်းအတိုင်းမဟုတ်ပဲ ပိုနီးတဲ့ ချဉ်းကပ်လမ်းကြောင်းအတိုင်း ပာင်းပြီးမောင်းမလား လို မးပါတယ်။ လယာဉ်မှူးကလည်း အိုကေပေါ့။ အဲဒီအခါမှာ ဖစ်ချင်တော့ လယာဉ်မှူးက ကွန်ပြူတာစနစ်မှာရှိတဲ့ (လက်ရှိခရီးစဉ်ရဲ့) လယာဉ်ပျံသန်းရေး လမ်းကြောင်းဆိုင်ရာ အချက်အလက်တွေကို မတော်တဆ မှားပြီး ဖျက်ပစ်လိုက်မိတယ်။ မပြင်ထိန်းချုပ်ရေးစခန်းအရာရှိက လယာဉ်မှူးကို ကယ်လီရဲ့ မာက်ဖက်မှာရှိတဲ့ တလူ၀ါ (Tuluá) ကို check in လုပ်ဖို  ညွှန်ကြားတဲ့အခါ၊ လယာဉ်ပရိုဂရမ်မှာက အဲဒီ Tuluá နဲ  ဆိုင်တဲ့အချက်အလက်တွေ မရှိတော့တာကြောင့် လယာဉ်မှူးတွေဟာ ကိုသြဒိနိတ် (coordinates) တန်ဘိုးတွေကို ပျံသန်းရေးဇယား (flight chart) မှာ manualပဲ ရှာရပါတော့တယ်။ ဒီအတွက် လယာဉ်ကို အရှိန် နဲနဲလေးလျော့ချထားလိုက်ပါတယ်။ (အရှိန်လျော့ရင် လယာဉ်ဟာ အာက်ကို နဲနဲချင်း နိမ့်ဆင်းလာမှာပေါ့။) သူတို Tuluá ရဲ့ ကိုသြဒိနိတ်တန်ဘိုးတွေကို တွ တဲ့အချိန်မှာ လယာဉ်ဟာ Tuluá ကို ကျာ်ခဲ့ပြီ။ ဒါကြောင့် လယာဉ်မှူးတွေဟာ ပျံသန်းရေးလမ်းကြောင်းနဲ ပတ်သက်ပြီး ပရိုဂရမ်ပြန်သွင်းဖို  ဆုံးဖြတ်ခဲ့ကြပါတယ်။ အနီးဆုံး နာက်ထပ် check in ပွိုင့် (နေရာ/မြို /ရေဒီယိုအချက်ပြစနစ်..etc) တခုကို flight chart မှာ ရှာတဲ့အခါ ROZO ဆိုတာကို သွားတွေ ရတယ်။ အဲဒီအခါမှာ လယာဉ်မှူးဟာ ဇယားမှာပြထားတဲ့ ROZO အတွက်ကုဒ် R ကို လယာဉ်စီမံခန် ခွဲရေးစနစ် (Flight Management System) ဆာ့ဖ်၀ဲ ထဲကို input အဖြစ်ပေးလိုက်ပါတယ်။ (R လို  ရိုက်ထည့်လိုက်တယ်ပေါ့ဗျာ။) FMS ထဲမှာက R ဆိုတာ Bogotá အနီးမှာရှိတဲ့ Romeo ကို ကိုယ်စားပြုတာ။ ROZO အတွက် ကုဒ်က FMS ထဲမှာ ROZO လို  အပြည့်အစုံ သုံးထားတာဖြစ်တယ်။ Flight Chart နဲ  Flight Management System Software ရဲ့ အဲဒီလို အချင်းချင်း ညီညွတ် ကိုက်ညီမှုမရှိတာကို လယာဉ်မှူးတွေကလည်း ဘယ်သိထားပါ့မလဲ။ အကျိုးဆက်ကတော့ တာင်ကုန်းတွေထူထပ်မြင့်မားလှတဲ့ Romeo အရပ်ကို ဦးတည်ပြီး အလိုအလျောက်မောင်းစနစ် (autopilot)က လယာဉ်ကို မာင်းနှင်သွားပါတော့တယ်။ လယာဉ်မှူးဟာ တာင်တန်းကြီးကို သတိထားမိလိုက်တဲ့အချိန်မှာ လယာဉ်ကို အတတ်နိုင်ဆုံး အမြင့်ကို ဆွဲတင်ပါသေးတယ်။ ဒါပေမယ့် မလွတ်တော့ပါဘူး။ အဲဒီမှာ မီတာ ၃၀၀၀ (ပေ ၉၈၀၀) လာက်အမြင့်ရှိတဲ့ တာင်ရဲ့ တာင်ထွတ်ပိုင်းကို လယာဉ်ဟာ ၀င်တိုက်မိပါတော့တယ်။ ဒီကြေကွဲစရာ မတော်တဆမှုကြောင့် လူပေါင်း ၁၅၉ ဦး အသက်ဆုံးရှုံးခဲ့ရပါတယ်။
နိဂုံး
ဒါတွေဟာဆော့ဖ်၀ဲကြောင့် ဖစ်တာမဟုတ်ဘူး ဆာ့ဖ်၀ဲရေးတဲ့သူတွေကြောင့်ဖြစ်တာ လို  တချို ကဆိုပါလိမ့်မယ်။ မှန်ပါတယ်။ ဆာ့ဖ်၀ဲရေးသားသူတွေဟာ သူတို ရးတဲ့ဆော့ဖ်၀ဲနဲ ပတ်သက်လို အပြည့်အ၀ လုံးလုံးလျားလျား တာ၀န်ရှိသူတွေဖြစ်ပါတယ်။ တာ၀န်လည်းယူရပါလိမ့်မယ်။ ဒါကြောင့်လည်း ကျင့်၀တ်သိက္ခာပိုင်းနဲ  လူမှုရေးဆိုင်ရာအကျိုးသက်ရောက်မှုတွေကို ဆာ့ဖ်၀ဲအင်ဂျင်နီယာပညာရပ်နဲ  ကွန်ပြူတာသိပ္ပံဘာသာရပ်တွေမှာ ထည့်သွင်းလေ့လာတာပေါ့။ နှလုံးခုန်နှုန်း ထိန်းညှိစက်တွေ၊ ကားတွေ လယာဉ်တွေ၊ ဘရိတ်(brake)စနစ်တွေ၊ ဒုံးကျည်ချိန်ရွယ်ပစ်ခတ်တဲ့စနစ်တွေ၊ ဆးပညာဆိုင်ရာကရိယာတွေ၊ မာင်းသူမဲ့ သယ်ယူပို ဆာင်ရေးစနစ်တွေ၊ အထပ်မြင့်ဓါတ်လှေကားစနစ်တွေ၊ စက်ရုပ်တွေ နဲ  စက်မှုထုတ်လုပ်ရေး လုပ်ငန်းခွင်တွေအထိ ဆာ့ဖ်၀ဲဟာ ထဲထဲ၀င်၀င် နရာယူထားတဲ့အတွက်၊ အဲဒီဆော့ဖ်၀ဲ တခုခု မှားလိုက်တာနဲ  အကျိုးဆက်ဟာ ဆိုး၀ါးပြင်းထန်လှပါတယ်။ ဒါကြောင့်ဆော့ဖ်၀ဲအင်ဂျင်နီယာတွေဟာ “ဒီဆော့ဖ်၀ဲက တခုခု မှားခဲ့ရင် လူ အသက်ဆုံးရှုံးစေနိုင်သလား၊ ဒုက္ခိတဖြစ်သွားစေနိုင်သလား၊ ငွကြေးဆုံးရှုုံးမှု အကြီးအကျယ်ဖြစ်စေနိုင်သလား” ဆိုတာ လးလေးနက်နက် မးခွန်းထုတ်သင့်ပါတယ်။ ကိုယ်ရေးထားတဲ့ ဆာ့ဖ်၀ဲကို တတ်နိုင်သမျှ ထာင့်ပေါင်းစုံက စစ်ဆေးသင့်ပါတယ်။ ရှုပ်ထွေးမှုမြင့်မားတဲ့ စနစ်တွေမှာ ဖစ်နိုင်ခြေရှိသမျှအားလုံးကို ကုန်စင်ပြည့်စုံအောင် စမ်းသပ်စစ်ဆေး ဖို ဆိုတာ မဖြစ်နိုင်တဲ့အတွက် testing တခုတည်းနဲ လည်း မလုံလောက်ပါဘူး။ ရှ ကလူတွေရဲ့ အတွေ အကြုံ၊ တခြားသူတွေရဲ့ အကြံညာဏ် အမြင်ရှုဒေါင့်၊ ကိုယ်ကိုယ်တိုင်ရဲ့ အတိတ်က အတွေ အကြုံ အမှား စတာတွေကို လက်တွေ အသုံးချနိုင်တဲ့ သင်္ခန်းစာတွေအဖြစ် ပာင်းလဲ ထုတ်နှုတ်ယူနိုင်စွမ်းရှိရပါမယ်။ ဆာ့ဖ်၀ဲအင်ဂျင်နီယာတစ်ရောက်ဟာ စိတ်ပိုင်းဆိုင်ရာရင့်ကျက်ပြည့်၀သူ၊ ကျင့်၀တ်သိက္ခာလေးစားလိုက်နာသူ နဲ  ကိုယ်လုပ်တဲ့ အလုပ်အပေါ် တာ၀န်ယူ တာ၀န်ခံနိုင်တဲ့သူ ဖစ်သင့်ပါတယ်။ ဆးပညာလောကနဲ  တခြားအရေးကြီးတဲ့ အင်ဂျင်နီယာပညာရပ်နယ်ပယ်တွေမှာ သက်ဆိုင်ရာအလုပ်ကိုလုပ်ဖို  အသိအမှတ်ပြုလိုင်စင် လိုပါတယ်။ ခက်တာက ဒီလောက်အရေးကြီးတဲ့ ဆာ့ဖ်၀ဲအင်ဂျင်နီယာ လာကမှာတော့ အဲဒီလိုမျိုးရှိတာမတွေ ရပါဘူး။ “ဆော့ဖ်၀ဲအင်ဂျင်နီယာတစ်ရောက်အတွက် လိုင်စင် ရှိသင့် မရှိသင့်ဆိုတာတော့ မသိဘူး။ ရှိသင့်တယ်ဆိုရင်တောင် ကျုပ်အတွက်တော့ လုံး၀မလိုဘူးဗျ။ ဘာလို တုန်းဆိုတော့ ကျုပ်က software engineer မဟုတ်ဘူး။ software developer” လို  တချို က ဆိုကြလေမလားမသိဘူး မိတ်ဆွေတို ရ။

ရွှင်လန်းချမ်းမြေ့ပါစေ။
infoTherapy(2013)
REFERECNE: Principles of Computer Science, Carl Reynolds and Paul Tymann, 2008, Chapter 9 Social Issues, Can Computers Kill? ကို အခြေခံ၍ ရးပါသည်။

မှတ်ချက်။ ၂၀၁၃ သြဂုတ်လထုတ် ကွန်ပြူတာဂျာနယ်တွင် ဖါ်ပြပြီးသော ဆာင်းပါးဖြစ်ပါသည်။