fbpx
วิกิพีเดีย

ระยะทางแฮมมิง

ในทางทฤษฎีข้อมูลแล้ว ระยะทางแฮมมิง (อังกฤษ: Hamming distance) ระหว่าง 2 ข้อความที่มีความยาวเท่ากัน คือจำนวนตำแหน่งที่มีสัญลักษณ์หรืออักขระที่แตกต่างกัน กล่าวอีกนัยหนึ่ง มันคือจำนวนน้อยที่สุดที่ต้องใช้เพื่อเปลี่ยนจากข้อความหนึ่งไปเป็นอีกข้อความหนึ่ง หรือจำนวนตัวอักษรที่คลาดเคลื่อนที่เปลี่ยนจากข้อความหนึ่งไปเป็นอีกข้อความหนึ่ง

ตัวอย่างลูกบาศก์ของเลขฐานสอง 3 หลัก
ตัวอย่างลูกบาศก์ของเลขฐานสอง 3 หลักที่แสดงแฮมมิง เช่น 010>110>111 , 100>000>001>011

ตัวอย่าง

ระยะทางแฮมมิงระหว่าง:

"ความรัก" กับ "ความสุข" คือ 3

1011101 กับ 1001001 คือ 2

2173596 กับ 2733996 คือ 3

คุณสมบัติพิเศษ

ระยะทางแฮมมิง สำหรับเลขฐานสอง มักจะเห็นได้ชัดใน ลูกบาศก์แฮมมิง หรือ กราฟทรงลูกบาศก์ใดๆ เพราะว่าพิกัดใดๆ บนทรงลูกบาศก์ที่มีเส้นเชื่อมถึงกันจะมีระยะทางแฮมมิงเป็น 1 ทุกคู่

ประวัติ

ระยะทางแฮมมิง ตั้งชื่อตาม ริชาร์ด แฮมมิง (Richard Hamming) ผู้ที่นำเสนอให้ใช้ระยะทางแฮมมิงในการตรวจสอบคำ ในคริสต์ทศวรรษ 1950 ระยะทางแฮมมิงได้ถูกใช้ในการสื่อสาร โดยการนับจำนวนเลขฐานสองที่มีความยาวคงที่ ที่มีหลักต่างไปเพื่อตรวจเช็คความผิดพลาด หรือเรียกว่า ระยะทางสัญญาณ (Signal distance) โดยการสื่อสารในระบบดิจิตอลโดยส่วนมากไม่ว่าจะเป็นภาคพื้นดินเช่นระบบโทรศัพท์มือถือจนถึงการสื่อสารผ่านดาวเทียมมีโอกาสที่ข้อมูลที่ส่งผ่านระบบส่อสารผิดพลาดจึงมีการนำ Error Control Coding มาใช้ในการสื่อสารด้วย เพื่อลดความผิดพลาดของการสื่อสาร โดยจากสื่อสาร Error Control Coding คือการเข้ารหัสสัญญาณ และการถอดรหัสสัญญาณ โดยวิธีการลดความผิดพลาดของการสื่อสารทำโดยการตรวจจับความผิดพลาด (Error Detection) หรือแก้ไขข้อมูลความผิดพลาด (Error Correction)ในช่องสัญญาณแต่ละประเภทจะมีความจุของช่องสัญญาณ (Channel Capacity) ที่ไม่เท่ากับคุณสมบัติของช่องสัญญาณกับรหัสมีความสัมพันธ์กันโดยที่ การเข้ารหัสที่ซับซ้อนจะทำให้ข้อมูลที่เข้ารหัสเปลี่ยนไปอยู่ในรูปข้อมูลที่มีขนาดใหญ่ขึ้น ทำให้โอกาสที่จะเกิดการผิดพลาดของข้อมูลสูงขึ้น น้ำหนักของแฮมมิงถูกใช้ในการวิเคราะห์ได้หลายอย่างโดยการนำมาต่อยอดจากทฤษฎี เช่นในทางด้านการออกแบบฮาร์ดแวร์คอมพิวเตอร์ จะใช้ระยะทางแฮมมิงในการลดเวลาในการเปลี่ยนขั้นการทำงานของฮาร์ดแวร์ ซอฟต์แวร์ ที่ใช้เช่นระบบ เอทีเอ็ม ซึ่งข้อมูลที่รับส่งในการสื่อสารต้องไม่มีการผิดพลาดเลย จึงมีการตรวจสอบว่าข้อมูลที่ได้รับผิดพลาดหรือไม่ และหารข้อมูลนั้นผิดพลาดสามารถแก้ไขได้หรือไม่ เป็นต้น

ขั้นตอนวิธี

  1. ตรวจสอบข้อความที่จะทำการเปรียบเทียบว่ามีขนาดเท่ากัน
  2. นำอักษร ณ ตำแหน่งเดียวกันมาเปรียบเทียบว่ามีตำแหน่งไหนที่ไม่เป็นตัวเดียวกันบ้าง
  3. จำนวนตัวอักษรที่ไม่เป็นตัวเดียวกันนั้น คือ ระยะแฮมมิง

ตัวอย่างการเขียนโปรแกรมเพื่อตรวจสอบระยะทางแฮมมิง

  • รหัสเทียม
 HammingDistance(A,B){ for (ทุกตัวอักษร) { if (ตัวอักษรของ A ไม่เท่ากับ ตัวอักษรของ B){  นับค่า  } } return ตัวนับ } 
  • ในภาษาC
 int N; cin>>N; char a[N],b[N]; cin>>a>>b; int sum=0; for (int i=0;i<N;i++)if(a[i]!=b[i])sum++; cout<<"Hamming distance is "<<sum<<"\n"; 

วิเคราะห์เวลาการทำงาน

กำหนดให้ความยาวของตัวอักษรที่ต้องการตรวจสอบให้มีค่าเท่ากับ N และเนื่องจากการตรวจสอบจำเป็นต้องตรวจเช็คทุกตัวอักษร ตามตัวอย่างโปรแกรมข้างต้น โดยยึดจากบรรทัดคำสั่งที่ใช้บ่อยที่สุด ซึ่งในที่นี้คือบรรทัดที่อยู่ในวงวน ซึ่งทำงาน N รอบ เพราะฉะนั้นจะได้เวลาการทำงานไม่เกิน N หรือ O(N)

สรุป

ระยะทางแฮมมิง เกิดจากข้อความสองข้อความที่มีความยาวเท่ากัน ซึ่งระยะทางแฮมมิง คือจำนวนตัวอักษรที่แตกต่างกัน จากความหมายนี้เองทำให้เกิดการนำไปประยุกต์ใช้ในการเช็คคำผิดในการส่งข้อความหรือค้นหาข้อความ ลดเวลาการทำงานของฮาร์ดแวร์คอมพิวเตอร์ ซึ่งเกิดประโยชน์ในการพัฒนาทางด้านคอมพิวเตอร์และการสื่อสารเป็นอย่างมาก

อ้างอิง

  • Hamming, Richard W. (1950), "Error detecting and [[error correcting code]]s" (PDF), Bell System Technical Journal, 29 (2): 147–160, MR 0035935 URL–wikilink conflict (help).
  • Pilcher, C. D.; Wong, J. K.; Pillai, S. K. (March 2008), "Inferring HIV transmission dynamics from phylogenetic sequence relationships", PLoS Med., 5 (3): e69, doi:10.1371/journal.pmed.0050069, PMC 2267810, PMID 18351799.
  • Wegner, Peter (1960), "A technique for counting ones in a binary computer", Communications of the ACM, 3 (5): 322, doi:10.1145/367236.367286.

ดูเพิ่ม

แหล่งข้อมูลอื่น

  • ตัวอย่างของระยะทางแฮมมิง
  • Hamming Code Tool เครื่องมือสำหรับใช้สร้างรหัสแฮมมิง
  • set_matcher เครื่องมือสำหรับจับคู่เซ็ต 2 กลุ่มที่มีประชากรฐานแบบเดียวกัน โดยอาศัยระยะทางแฮมมิง

ระยะทางแฮมม, บทความน, อาจต, องการตรวจสอบต, นฉบ, ในด, านไวยากรณ, ปแบบการเข, ยน, การเร, ยบเร, ยง, ณภาพ, หร, อการสะกด, ณสามารถช, วยพ, ฒนาบทความได, ในทางทฤษฎ, อม, ลแล, งกฤษ, hamming, distance, ระหว, าง, อความท, ความยาวเท, าก, อจำนวนตำแหน, งท, ญล, กษณ, หร, ออ, กขระ. bthkhwamnixactxngkartrwcsxbtnchbb indaniwyakrn rupaebbkarekhiyn kareriyberiyng khunphaph hruxkarsakd khunsamarthchwyphthnabthkhwamidinthangthvsdikhxmulaelw rayathangaehmming xngkvs Hamming distance rahwang 2 khxkhwamthimikhwamyawethakn khuxcanwntaaehnngthimisylksnhruxxkkhrathiaetktangkn klawxiknyhnung mnkhuxcanwnnxythisudthitxngichephuxepliyncakkhxkhwamhnungipepnxikkhxkhwamhnung hruxcanwntwxksrthikhladekhluxnthiepliyncakkhxkhwamhnungipepnxikkhxkhwamhnungtwxyanglukbaskkhxngelkhthansxng 3 hlktwxyanglukbaskkhxngelkhthansxng 3 hlkthiaesdngaehmming echn 010 gt 110 gt 111 100 gt 000 gt 001 gt 011 enuxha 1 twxyang 2 khunsmbtiphiess 3 prawti 4 khntxnwithi 5 twxyangkarekhiynopraekrmephuxtrwcsxbrayathangaehmming 6 wiekhraahewlakarthangan 7 srup 8 xangxing 9 duephim 10 aehlngkhxmulxuntwxyang aekikhrayathangaehmmingrahwang khwamrk kb khwamsukh khux 31011101 kb 1001001 khux 22173596 kb 2733996 khux 3khunsmbtiphiess aekikhrayathangaehmming sahrbelkhthansxng mkcaehnidchdin lukbaskaehmming hrux krafthrnglukbaskid ephraawaphikdid bnthrnglukbaskthimiesnechuxmthungkncamirayathangaehmmingepn 1 thukkhuprawti aekikhrayathangaehmming tngchuxtam richard aehmming Richard Hamming phuthinaesnxihichrayathangaehmminginkartrwcsxbkha inkhristthswrrs 1950 rayathangaehmmingidthukichinkarsuxsar odykarnbcanwnelkhthansxngthimikhwamyawkhngthi thimihlktangipephuxtrwcechkhkhwamphidphlad hruxeriykwa rayathangsyyan Signal distance odykarsuxsarinrabbdicitxlodyswnmakimwacaepnphakhphundinechnrabbothrsphthmuxthuxcnthungkarsuxsarphandawethiymmioxkasthikhxmulthisngphanrabbsxsarphidphladcungmikarna Error Control Coding maichinkarsuxsardwy ephuxldkhwamphidphladkhxngkarsuxsar odycaksuxsar Error Control Coding khuxkarekharhssyyan aelakarthxdrhssyyan odywithikarldkhwamphidphladkhxngkarsuxsarthaodykartrwccbkhwamphidphlad Error Detection hruxaekikhkhxmulkhwamphidphlad Error Correction inchxngsyyanaetlapraephthcamikhwamcukhxngchxngsyyan Channel Capacity thiimethakbkhunsmbtikhxngchxngsyyankbrhsmikhwamsmphnthknodythi karekharhsthisbsxncathaihkhxmulthiekharhsepliynipxyuinrupkhxmulthimikhnadihykhun thaihoxkasthicaekidkarphidphladkhxngkhxmulsungkhun nahnkkhxngaehmmingthukichinkarwiekhraahidhlayxyangodykarnamatxyxdcakthvsdi echninthangdankarxxkaebbhardaewrkhxmphiwetxr caichrayathangaehmminginkarldewlainkarepliynkhnkarthangankhxnghardaewr sxftaewr thiichechnrabb exthiexm sungkhxmulthirbsnginkarsuxsartxngimmikarphidphladely cungmikartrwcsxbwakhxmulthiidrbphidphladhruxim aelaharkhxmulnnphidphladsamarthaekikhidhruxim epntnkhntxnwithi aekikhtrwcsxbkhxkhwamthicathakarepriybethiybwamikhnadethakn naxksr n taaehnngediywknmaepriybethiybwamitaaehnngihnthiimepntwediywknbang canwntwxksrthiimepntwediywknnn khux rayaaehmmingtwxyangkarekhiynopraekrmephuxtrwcsxbrayathangaehmming aekikhrhsethiymHammingDistance A B for thuktwxksr if twxksrkhxng A imethakb twxksrkhxng B nbkha return twnb inphasaCint N cin gt gt N char a N b N cin gt gt a gt gt b int sum 0 for int i 0 i lt N i if a i b i sum cout lt lt Hamming distance is lt lt sum lt lt n wiekhraahewlakarthangan aekikhkahndihkhwamyawkhxngtwxksrthitxngkartrwcsxbihmikhaethakb N aelaenuxngcakkartrwcsxbcaepntxngtrwcechkhthuktwxksr tamtwxyangopraekrmkhangtn odyyudcakbrrthdkhasngthiichbxythisud sunginthinikhuxbrrthdthixyuinwngwn sungthangan N rxb ephraachanncaidewlakarthanganimekin N hrux O N srup aekikhrayathangaehmming ekidcakkhxkhwamsxngkhxkhwamthimikhwamyawethakn sungrayathangaehmming khuxcanwntwxksrthiaetktangkn cakkhwamhmayniexngthaihekidkarnaipprayuktichinkarechkhkhaphidinkarsngkhxkhwamhruxkhnhakhxkhwam ldewlakarthangankhxnghardaewrkhxmphiwetxr sungekidpraoychninkarphthnathangdankhxmphiwetxraelakarsuxsarepnxyangmakxangxing aekikhHamming Richard W 1950 Error detecting and error correcting code s PDF Bell System Technical Journal 29 2 147 160 MR 0035935 URL wikilink conflict help Pilcher C D Wong J K Pillai S K March 2008 Inferring HIV transmission dynamics from phylogenetic sequence relationships PLoS Med 5 3 e69 doi 10 1371 journal pmed 0050069 PMC 2267810 PMID 18351799 Wegner Peter 1960 A technique for counting ones in a binary computer Communications of the ACM 3 5 322 doi 10 1145 367236 367286 duephim aekikhkartrwccbaelaaekikhkhwamphidphladaehlngkhxmulxun aekikhtwxyangkhxngrayathangaehmming Hamming Code Tool ekhruxngmuxsahrbichsrangrhsaehmming set matcher ekhruxngmuxsahrbcbkhuest 2 klumthimiprachakrthanaebbediywkn odyxasyrayathangaehmmingekhathungcak https th wikipedia org w index php title rayathangaehmming amp oldid 7777263, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม