fbpx
วิกิพีเดีย

ขั้นตอนวิธีการลบย้อนกลับ

ขั้นตอนวิธีการลบย้อนกลับ (อังกฤษ: Reverse-delete algorithm) เป็นขั้นตอนวิธีในทฤษฎีกราฟที่ใช้สำหรับ ต้นไม้แผ่ขยายต่ำสุด (minimum spanning tree) ที่มีเส้นเชื่อม เชื่อมทุกปมต่อกันทั้งกราฟ และเส้นเชื่อมระหว่างคู่ปมแต่ละเส้นมีน้ำหนักเส้น ขั้นตอนวิธีนี้เป็น ขั้นตอนวิธีแบบละโมบ (Greedy algorithm) ซึ่งเป็นการย้อนกลับของ ขั้นตอนวิธีของครูสกาล (Kruskal’s algorithm) ที่ใช้ในการหาต้นไม้แผ่ขยายต่ำสุด ขั้นตอนวิธีของครูสกาลจะเริ่มจากกราฟที่ว่างเปล่า แล้วเพิ่มขึ้นทีละเส้นเชื่อม แต่ขั้นตอนวิธีการลบย้อนกลับนี้เริ่มจากกราฟเดิมที่สมบูรณ์แล้วลบออกทีละเส้นเชื่อมจากกราฟนั้นแทนโดยขั้นตอนวิธีดังกล่าวทำงาน ดังนี้

  • เริ่มต้นด้วยกราฟ G ซึ่งประกอบด้วยแถวลำดับของเส้นเชื่อม E
  • ผ่านกราฟ G โดยลดน้ำหนักของเส้นเชื่อมลงทีละลำดับ
  • สำหรับแต่ละเส้นเชื่อม ตรวจสอบว่าการลบเส้นเชื่อมนั้นออก จะไม่ทำให้กลายเป็นกราฟที่ไม่เชื่อมต่อกัน
  • ดำเนินการลบโดยไม่นำไปสู่การที่ทำให้การเชื่อมต่อของกราฟขาดออก

ขั้นตอนวิธีการลบย้อนกลับต้องมีการเชื่อมต่อกันในกราฟ และก่อนการลบกราฟบางส่วนออก ต้องมั่นใจว่าจะไม่ทำให้กราฟขาดออกจากกัน(คือเมื่อลบเส้นเชื่อมแล้วกราฟจะยังคงเชื่อมต่อกันไม่แยกออกเป็นส่วนๆ) เส้นเชื่อมต่างๆจะถูกลบโดยขั้นตอนวิธีนี้ทีละเส้นเป็นวงจรไปเรื่อยๆ ขั้นตอนวิธีนี้จะเริ่มจากเส้นเชื่อมที่มีน้ำหนักมากที่สุด และลดลงตามลำดับน้ำหนักไปเรื่อยๆ โดยเส้นเชื่อมที่ถูกลบไปจะเป็นเส้นเชื่อมที่มีค่ามากที่สุดในวงจร ดังนั้นตามความหมายของต้นไม้แผ่ขยายต่ำสุด เส้นเชื่อมที่ถูกลบออกไปโดยขั้นตอนวิธีนี้จะไม่เป็นส่วนของ ต้นไม้แผ่ขยายต่ำสุด

รหัสเทียม

เมธอดรับค่า แถวลำดับของเส้นเชื่อม E(edges[] E) { จัดลำดับ E ในแถวลำดับเรียงจากมากไปหาน้อยตามลำดับ ตั้งค่าเริ่มต้นให้ตัวแปร i=0 ทำการวนซ้ำไปเรื่อยๆขณะที่ค่า i น้อยกว่าขนาดของแถวลำดับ E ทั้งหมด { สร้างตัวแปร temp เก็บค่า ในรายการ E ตัวที่ i ทำการลบค่า ในรายการ E ตัวที่ i ถ้าปมระหว่างเส้นเชื่อมที่เก็บค่าใน temp ขณะนั้น ไม่เชื่อมต่อกัน ก็นำค่า temp เก็บ คืนสู่แถวลำดับ E ในช่องที่ i เพิ่มค่า i ขึ้น 1 } คืนค่าในแถวลำดับ E ทั้งหมด } 

ตัวอย่าง

รูปภาพ คำอธิบาย
 
  1. จากรูป นี่คือกราฟเริ่มต้น ตัวเลขบนเส้นแสดงถึงค่าน้ำหนักของเส้นเชื่อมเส้นนั้นๆ
  2. ขั้นตอนวิธีนี้จะเริ่มต้นจากเส้นเชื่อมที่มีน้ำหนักมากสุด ในที่นี้คือเส้น DE ขนาด 15 ถัดมาจึงทำการตรวจสอบว่าถ้าลบเส้นเชื่อมนี้ออกจะทำให้กราฟแยกออกจากกันหรือไม่ถ้าไม่ใช่จึงทำการลบเส้นนี้ออก
  3. เส้นถัดมาที่มีขนาดใหญ่รองลงมา คือเส้น FG ดังนั้นขั้นตอนวิธีนี้จึงตรวจสอบว่าถ้าลบเส้นเชื่อม FG ออกแล้ว จะไม่ทำให้กราฟนี้แยกออกจากกัน
  4. เส้นเชื่อมที่ขนาดใหญ่ถัดมาคือเส้น BD ซึ่งขั้นตอนวิธีนี้ก็ตรวจสอบเส้นเชื่อมนี้เหมือนเดิมและลบออก
  5. ถัดมาคือตรวจสอบเส้น EG ซึ่งปรากฏว่าถ้าลบเส้นเชื่อมนี้ออกจะทำให้กราฟนี้ขาดออกคือมีปม G ที่หลุดออก ทำให้กราฟไม่เชื่อมต่อกัน ดังนั้นจึงข้ามไปยังเส้นเชื่อม BC ต่อไป
  6. เส้นถัดมาคือ เส้น EF ขั้นตอนวิธีนี้จึงตรวจสอบเส้นเชื่อมนี้และทำการลบออก
 
ขั้นตอนวิธีนี้จะค้นหาเส้นเชื่อมไปเรื่อยๆจนไม่พบเส้นเชื่อมที่ลบต่อไปได้แล้ว หลังจากนั้นก็จะได้กราฟที่เป็น ต้นไม้แผ่ขยายต่ำสุดแล้วคืนค่ากลับไป ดังรูปเส้นเชื่อมสีแดงแสดงถึงเส้นที่ถูกลบไปแล้วและเส้นเชื่อมที่เหลือจะถูกแสดงเป็นสีเขียว


ประสิทธิภาพการทำงาน

ขั้นตอนวิธีนี้สามารถทำงานได้ในเวลา   ซึ่ง   คือจำนวนเส้นเชื่อม และ   คือจำนวนปม โดยอธิบายการทำงานของเวลาได้ดังนี้

  • การจัดเรียงข้อมูลโดยเปรียบเทียบน้ำหนักของเส้นเชื่อมทั้งหมดใช้เวลา  
  • การลบแต่ละครั้งใช้เวลา  
  • การตรวจสอบว่ากราฟเชื่อมต่อกันทุกปมหรือไม่ ใช้เวลา  

ดังนั้นจึงใช้เวลาทั้งสิ้นของขั้นตอนวิธีนี้  

ขั้นตอนวิธีที่เกี่ยวข้อง

  • Kruskal's algorithm
  • Prim's algorithm
  • Borůvka's algorithm
  • Dijkstra's algorithm

อ้างอิง

  • Kleinberg, Jon; Algorithm Design, New York: Pearson Education, Inc..
  • Thorup, Mikkel (2000), "Near-optimal fully-dynamic graph connectivity", pp. 343–350, doi:10.1145/335305.335345 Missing or empty |title= (help).
  • Reverse-Delete Algorithm (Paperback) by Lambert M. Surhone and Mariam T. Tennoe and Susan F. Henssonow

เพิ่มเติม

เป็นขั้นตอนวิธีการแก้ปัญหาที่คิดแบบง่าย ๆ และตรงไปตรงมา โดยพิจารณาว่าข้อมูลที่มีอยู่ในขณะนั้นมีทางเลือกใดที่ ให้ผลตอบแทนคุ้มที่สุด ขั้นตอนวิธีจะหาทางเลือกที่ดูดีที่สุดในขณะนั้นซึ่งถ้าข้อมูลนั้นพอเพียงที่จะทำให้สรุปคำตอบที่ดีที่สุด เราจะได้ขั้นตอนวิธีที่มีประสิทธิภาพ โดยทั่วไปการนำไปใช้กับ Optimization problem เพราะว่า เราต้องการการตัดสินใจว่าทางเลือกในปัจจุบันมีค่าตอบแทนมากที่สุดหรือน้อยที่สุดหรือไม่

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

นตอนว, การลบย, อนกล, งกฤษ, reverse, delete, algorithm, เป, นข, นตอนว, ในทฤษฎ, กราฟท, ใช, สำหร, นไม, แผ, ขยายต, ำส, minimum, spanning, tree, เส, นเช, อม, เช, อมท, กปมต, อก, นท, งกราฟ, และเส, นเช, อมระหว, างค, ปมแต, ละเส, นม, ำหน, กเส, นตอนว, เป, นตอนว, แบบละโมบ. khntxnwithikarlbyxnklb xngkvs Reverse delete algorithm epnkhntxnwithiinthvsdikrafthiichsahrb tnimaephkhyaytasud minimum spanning tree thimiesnechuxm echuxmthukpmtxknthngkraf aelaesnechuxmrahwangkhupmaetlaesnminahnkesn khntxnwithiniepn khntxnwithiaebblaomb Greedy algorithm sungepnkaryxnklbkhxng khntxnwithikhxngkhruskal Kruskal s algorithm thiichinkarhatnimaephkhyaytasud khntxnwithikhxngkhruskalcaerimcakkrafthiwangepla aelwephimkhunthilaesnechuxm aetkhntxnwithikarlbyxnklbnierimcakkrafedimthismburnaelwlbxxkthilaesnechuxmcakkrafnnaethnodykhntxnwithidngklawthangan dngni erimtndwykraf G sungprakxbdwyaethwladbkhxngesnechuxm E phankraf G odyldnahnkkhxngesnechuxmlngthilaladb sahrbaetlaesnechuxm trwcsxbwakarlbesnechuxmnnxxk caimthaihklayepnkrafthiimechuxmtxkn daeninkarlbodyimnaipsukarthithaihkarechuxmtxkhxngkrafkhadxxkkhntxnwithikarlbyxnklbtxngmikarechuxmtxkninkraf aelakxnkarlbkrafbangswnxxk txngmnicwacaimthaihkrafkhadxxkcakkn khuxemuxlbesnechuxmaelwkrafcayngkhngechuxmtxknimaeykxxkepnswn esnechuxmtangcathuklbodykhntxnwithinithilaesnepnwngcriperuxy khntxnwithinicaerimcakesnechuxmthiminahnkmakthisud aelaldlngtamladbnahnkiperuxy odyesnechuxmthithuklbipcaepnesnechuxmthimikhamakthisudinwngcr dngnntamkhwamhmaykhxngtnimaephkhyaytasud esnechuxmthithuklbxxkipodykhntxnwithinicaimepnswnkhxng tnimaephkhyaytasud enuxha 1 rhsethiym 2 twxyang 3 prasiththiphaphkarthangan 4 khntxnwithithiekiywkhxng 5 xangxing 6 ephimetim 7 aehlngkhxmulxunrhsethiym aekikhemthxdrbkha aethwladbkhxngesnechuxm E edges E cdladb E inaethwladberiyngcakmakiphanxytamladb tngkhaerimtnihtwaepr i 0 thakarwnsaiperuxykhnathikha i nxykwakhnadkhxngaethwladb E thnghmd srangtwaepr temp ekbkha inraykar E twthi i thakarlbkha inraykar E twthi i thapmrahwangesnechuxmthiekbkhain temp khnann imechuxmtxkn knakha temp ekb khunsuaethwladb E inchxngthi i ephimkha i khun 1 khunkhainaethwladb E thnghmd twxyang aekikhrupphaph khaxthibay cakrup nikhuxkraferimtn twelkhbnesnaesdngthungkhanahnkkhxngesnechuxmesnnn khntxnwithinicaerimtncakesnechuxmthiminahnkmaksud inthinikhuxesn DE khnad 15 thdmacungthakartrwcsxbwathalbesnechuxmnixxkcathaihkrafaeykxxkcakknhruximthaimichcungthakarlbesnnixxk esnthdmathimikhnadihyrxnglngma khuxesn FG dngnnkhntxnwithinicungtrwcsxbwathalbesnechuxm FG xxkaelw caimthaihkrafniaeykxxkcakkn esnechuxmthikhnadihythdmakhuxesn BD sungkhntxnwithiniktrwcsxbesnechuxmniehmuxnedimaelalbxxk thdmakhuxtrwcsxbesn EG sungpraktwathalbesnechuxmnixxkcathaihkrafnikhadxxkkhuxmipm G thihludxxk thaihkrafimechuxmtxkn dngnncungkhamipyngesnechuxm BC txip esnthdmakhux esn EF khntxnwithinicungtrwcsxbesnechuxmniaelathakarlbxxk khntxnwithinicakhnhaesnechuxmiperuxycnimphbesnechuxmthilbtxipidaelw hlngcaknnkcaidkrafthiepn tnimaephkhyaytasudaelwkhunkhaklbip dngrupesnechuxmsiaedngaesdngthungesnthithuklbipaelwaelaesnechuxmthiehluxcathukaesdngepnsiekhiywprasiththiphaphkarthangan aekikhkhntxnwithinisamarththanganidinewla O E l o g E l o g l o g E 3 displaystyle O ElogE loglogE 3 sung E displaystyle E khuxcanwnesnechuxm aela V displaystyle V khuxcanwnpm odyxthibaykarthangankhxngewlaiddngni karcderiyngkhxmulodyepriybethiybnahnkkhxngesnechuxmthnghmdichewla O E l o g E displaystyle O ElogE karlbaetlakhrngichewla O 1 displaystyle O 1 kartrwcsxbwakrafechuxmtxknthukpmhruxim ichewla O l o g V l o g l o g V 3 displaystyle O logV loglogV 3 dngnncungichewlathngsinkhxngkhntxnwithini O E l o g V l o g l o g V 3 displaystyle O ElogV loglogV 3 khntxnwithithiekiywkhxng aekikhKruskal s algorithm Prim s algorithm Boruvka s algorithm Dijkstra s algorithmxangxing aekikhKleinberg Jon Algorithm Design New York Pearson Education Inc Thorup Mikkel 2000 Near optimal fully dynamic graph connectivity pp 343 350 doi 10 1145 335305 335345 Missing or empty title help Reverse Delete Algorithm Paperback by Lambert M Surhone and Mariam T Tennoe and Susan F Henssonowephimetim aekikhepnkhntxnwithikaraekpyhathikhidaebbngay aelatrngiptrngma odyphicarnawakhxmulthimixyuinkhnannmithangeluxkidthi ihphltxbaethnkhumthisud khntxnwithicahathangeluxkthidudithisudinkhnannsungthakhxmulnnphxephiyngthicathaihsrupkhatxbthidithisud eracaidkhntxnwithithimiprasiththiphaph odythwipkarnaipichkb Optimization problem ephraawa eratxngkarkartdsinicwathangeluxkinpccubnmikhatxbaethnmakthisudhruxnxythisudhruximaehlngkhxmulxun aekikhhttp code google com p mst algorithms source browse trunk MSTAlgorithms src cz cvut fel minimalSpanningTree algorithm implementation ReverseDeleteMST java spec svn41 amp r 41 http en vionto com show me Kruskal s algorithm http courses cs vt edu cs5114 spring2009 lectures lecture05 greedy graph algorithms pdfekhathungcak https th wikipedia org w index php title khntxnwithikarlbyxnklb amp oldid 4703377, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

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