fbpx
วิกิพีเดีย

ขั้นตอนวิธีของชไตน์เฮาส์ จอห์นสันและทร็อทเทอร์

ขั้นตอนวิธีของชไตน์เฮาส์ จอห์นสันและทร็อทเทอร์ (อังกฤษ: Steinhaus–Johnson–Trotter algorithm) คือ ขั้นตอนวิธีสร้างวิธีการเรียงสับเปลี่ยนโดยอาศัยการสลับที่ของตัวเลข

นิยาม

ทิศทาง

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

<1 <2 <3 เครื่องหมายน้อยกว่า (<) หน้าตัวเลขแต่ละตัวเป็นการบอกทิศทางของเลขนั้นๆว่าเป็นทิศทางซ้าย ในทางกลับกันเครื่องหมายมากกว่า (>) ที่ตามหลังตัวเลขหมายถึงทิศทางขวา
3> <1 <2 จากตัวอย่างข้างต้นแสดงให้เห็นว่าเลข 3 มีทิศทางขวา

ตัวเลขที่เปลี่ยนที่ได้

ขั้นตอนวิธีนี้จะเรียกตัวเลขซึ่งมีตัวเลขที่อยู่ติดกันในทิศทางที่ระบุไว้มีค่าน้อยกว่าว่า ตัวเลขที่เปลี่ยนที่ได้ ยกตัวอย่างเช่น 3> <1 <2 ในกรณีนี้จะเรียกเลข 2 และเลข 3 ว่าตัวเลขที่เปลี่ยนที่ได้

ถ้าตัวเลขอยู่ทางขวาสุด และมีทิศทางขวา หรือตัวเลขอยู่ทางซ้ายสุดและมีทิศทางซ้าย จะเรียกเลขนั้นว่าตัวเลขที่เปลี่ยนที่ไม่ได้

ขั้นตอนวิธี

  1. ขั้นตอนวิธีนี้จะทำงานโดยอาศัยตัวเลขที่มีการเรียงลำดับจากน้อยไปมากและมีการกำหนดทิศทางของตัวเลขแต่ละตัวเป็นทิศทางซ้าย
  2. หาตัวเลขที่เปลี่ยนที่ได้ที่มีค่ามากที่สุดแล้วสลับกับตัวเลขที่อยู่ติดกันในทิศทางนั้นๆ ห้ามเปลี่ยนทิศทางของตัวเลขที่สลับกัน
  3. ถ้าตัวเลขที่มีค่ามากที่สุดเปลี่ยนที่ไปจนไม่สามารถเปลี่ยนที่ได้แล้ว ให้หาตัวเลขที่เปลี่ยนที่ได้ที่มีค่ารองลงมาแล้วทำการสลับที่เช่นเดียวกัน
  4. ในแต่ละรอบที่ทำการสลับที่นั้นให้ตรวจสอบว่ามีตัวเลขที่มีค่ามากกว่าตัวเลขที่สลับที่อยู่หรือไม่ ถ้ามีให้เปลี่ยนทิศทางของตัวเลขที่มีค่ามากกว่า ไม่ว่าจะมีกี่ตัวก็ตาม
  5. ขั้นตอนวิธีนี้จะสิ้นสุดลงก็ต่อเมื่อไม่มีตัวเลขที่เปลี่ยนที่ได้แล้ว

แสดงตามขั้นตอนวิธี

มีเลขจำนวน 3 ตัว จะทำให้มีวิธีเรียงสับเปลี่ยน 6 วิธี
  1. <1 <2 <3
  2. <1 <3 <2
  3. <3 <1 <2 เลข 3 ไม่สามารถเปลี่ยนที่ได้แล้ว เนื่องจากอยู่ทางซ้ายสุดและมีทิศทางซ้าย จึงเปลี่ยนมาทำการสลับที่เลข 2 แทน
  4. 3> <2 <1 เลข 3 เปลี่ยนทิศทาง เนื่องจากเมื่อ <2 สลับกับ <1 ขั้นตอนวิธีจะมีการตรวจสอบว่ามีตัวเลขที่มีค่ามากกว่าเลข 2 หรือไม่ ซึ่งก็มีคือเลข 3 จึงเปลี่ยนทิศทางของเลข 3 จากทิศทางซ้ายไปเป็นทิศทางขวา เลข 3 กลับมาเป็นเลขที่มีค่ามากที่สุดที่เปลี่ยนที่ได้
  5. <2 3> <1
  6. <2 <1 3>
ขั้นตอนวิธีนี้สิ้นสุดลงเนื่องจากไม่มีตัวเลขที่สามารถเปลี่ยนที่ได้อีกแล้ว
<2 เปลี่ยนที่ไม่ได้ เนื่องจากอยู่ทางซ้ายสุดและมีทิศทางซ้าย
<1 เปลี่ยนที่ไม่ได้ เนื่องจากเลขที่อยู่ทางซ้ายมือของ 1 มีค่าไม่น้อยกว่า 1
3> เปลี่ยนที่ไม่ได้ เนื่องจากอยู่ทางขวาสุดและมีทิศทางขวา

ตัวอย่าง เมื่อมีตัวเลขจำนวน 4 ตัว

มีเลขจำนวน 4 ตัว จะทำให้มีวิธีเรียงสับเปลี่ยน 24 วิธี
  1. <1 <2 <3 <4
  2. <1 <2 <4 <3
  3. <1 <4 <2 <3
  4. <4 <1 <2 <3
  5. 4> <1 <3 <2
  6. <1 4> <3 <2
  7. <1 <3 4> <2
  8. <1 <3 <2 4>
  9. <3 <1 <2 <4
  10. <3 <1 <4 <2
  11. <3 <4 <1 <2
  12. <4 <3 <1 <2
  13. 4> 3> <2 <1
  14. 3> 4> <2 <1
  15. 3> <2 4> <1
  16. 3> <2 <1 4>
  17. <2 3> <1 <4
  18. <2 3> <4 <1
  19. <2 <4 3> <1
  20. <4 <2 3> <1
  21. 4> <2 <1 3>
  22. <2 4> <1 3>
  23. <2 <1 4> 3>
  24. <2 <1 3> 4>

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

ขั้นตอนวิธีนี้มีเวลาในการทำงานเป็น Θ(n!) เมื่อ n คือจำนวนตัวเลขที่ต้องการหาวิธีการเรียงสับเปลี่ยน เนื่องจากจำนวนวิธีการเรียงสับเปลี่ยนคือ   เพราะฉะนั้นการใช้ขั้นตอนวิธีในการแจกแจงวิธีการเรียงสับเปลี่ยนจึงต้องใช้   ด้วย

ตัวอย่างการประยุกต์ใช้งาน

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

อ้างอิง

  • The American Mathematical Monthly, Vol. 83, No. 8, Oct., 1976, หน้า 629
  • Tropenhitze Steinhaus Johnson Trotter permutation algorithm explained and implemented in Java
  1. การวิเคราะห์ Algorithm
  2. N-Queens

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

  • Calculating Permutations and Job Interview Questions
  • Information on Permutations
  • Permutations

นตอนว, ของชไตน, เฮาส, จอห, นส, นและทร, อทเทอร, งกฤษ, steinhaus, johnson, trotter, algorithm, นตอนว, สร, างว, การเร, ยงส, บเปล, ยนโดยอาศ, ยการสล, บท, ของต, วเลข, เน, อหา, ยาม, ศทาง, วเลขท, เปล, ยนท, ได, นตอนว, แสดงตามข, นตอนว, วอย, าง, เม, อม, วเลขจำนวน, ประส, . khntxnwithikhxngchitnehas cxhnsnaelathrxthethxr xngkvs Steinhaus Johnson Trotter algorithm khux khntxnwithisrangwithikareriyngsbepliynodyxasykarslbthikhxngtwelkh enuxha 1 niyam 1 1 thisthang 1 2 twelkhthiepliynthiid 2 khntxnwithi 2 1 aesdngtamkhntxnwithi 2 2 twxyang emuxmitwelkhcanwn 4 tw 3 prasiththiphaphkarthangan 4 twxyangkarprayuktichngan 5 xangxing 6 aehlngkhxmulxunniyam aekikhthisthang aekikh erimcakkahndihtwelkherimtncakkhanxyaelaephimkhuntamladbipcnthungtwelkhthitxngkar aelakahndthisthangihkbtwelkhaetlatwdwythisthangsayepnkhaerimtn yktwxyangechn lt 1 lt 2 lt 3 ekhruxnghmaynxykwa lt hnatwelkhaetlatwepnkarbxkthisthangkhxngelkhnnwaepnthisthangsay inthangklbknekhruxnghmaymakkwa gt thitamhlngtwelkhhmaythungthisthangkhwa3 gt lt 1 lt 2 caktwxyangkhangtnaesdngihehnwaelkh 3 mithisthangkhwatwelkhthiepliynthiid aekikh khntxnwithinicaeriyktwelkhsungmitwelkhthixyutidkninthisthangthirabuiwmikhanxykwawa twelkhthiepliynthiid yktwxyangechn 3 gt lt 1 lt 2 inkrninicaeriykelkh 2 aelaelkh 3 watwelkhthiepliynthiid thatwelkhxyuthangkhwasud aelamithisthangkhwa hruxtwelkhxyuthangsaysudaelamithisthangsay caeriykelkhnnwatwelkhthiepliynthiimidkhntxnwithi aekikhkhntxnwithinicathanganodyxasytwelkhthimikareriyngladbcaknxyipmakaelamikarkahndthisthangkhxngtwelkhaetlatwepnthisthangsay hatwelkhthiepliynthiidthimikhamakthisudaelwslbkbtwelkhthixyutidkninthisthangnn hamepliynthisthangkhxngtwelkhthislbkn thatwelkhthimikhamakthisudepliynthiipcnimsamarthepliynthiidaelw ihhatwelkhthiepliynthiidthimikharxnglngmaaelwthakarslbthiechnediywkn inaetlarxbthithakarslbthinnihtrwcsxbwamitwelkhthimikhamakkwatwelkhthislbthixyuhruxim thamiihepliynthisthangkhxngtwelkhthimikhamakkwa imwacamikitwktam khntxnwithinicasinsudlngktxemuximmitwelkhthiepliynthiidaelwaesdngtamkhntxnwithi aekikh mielkhcanwn 3 tw cathaihmiwithieriyngsbepliyn 6 withi lt 1 lt 2 lt 3 lt 1 lt 3 lt 2 lt 3 lt 1 lt 2 elkh 3 imsamarthepliynthiidaelw enuxngcakxyuthangsaysudaelamithisthangsay cungepliynmathakarslbthielkh 2 aethn 3 gt lt 2 lt 1 elkh 3 epliynthisthang enuxngcakemux lt 2 slbkb lt 1 khntxnwithicamikartrwcsxbwamitwelkhthimikhamakkwaelkh 2 hruxim sungkmikhuxelkh 3 cungepliynthisthangkhxngelkh 3 cakthisthangsayipepnthisthangkhwa elkh 3 klbmaepnelkhthimikhamakthisudthiepliynthiid lt 2 3 gt lt 1 lt 2 lt 1 3 gt khntxnwithinisinsudlngenuxngcakimmitwelkhthisamarthepliynthiidxikaelw lt 2 epliynthiimid enuxngcakxyuthangsaysudaelamithisthangsay lt 1 epliynthiimid enuxngcakelkhthixyuthangsaymuxkhxng 1 mikhaimnxykwa 1 3 gt epliynthiimid enuxngcakxyuthangkhwasudaelamithisthangkhwatwxyang emuxmitwelkhcanwn 4 tw aekikh mielkhcanwn 4 tw cathaihmiwithieriyngsbepliyn 24 withi lt 1 lt 2 lt 3 lt 4 lt 1 lt 2 lt 4 lt 3 lt 1 lt 4 lt 2 lt 3 lt 4 lt 1 lt 2 lt 3 4 gt lt 1 lt 3 lt 2 lt 1 4 gt lt 3 lt 2 lt 1 lt 3 4 gt lt 2 lt 1 lt 3 lt 2 4 gt lt 3 lt 1 lt 2 lt 4 lt 3 lt 1 lt 4 lt 2 lt 3 lt 4 lt 1 lt 2 lt 4 lt 3 lt 1 lt 2 4 gt 3 gt lt 2 lt 1 3 gt 4 gt lt 2 lt 1 3 gt lt 2 4 gt lt 1 3 gt lt 2 lt 1 4 gt lt 2 3 gt lt 1 lt 4 lt 2 3 gt lt 4 lt 1 lt 2 lt 4 3 gt lt 1 lt 4 lt 2 3 gt lt 1 4 gt lt 2 lt 1 3 gt lt 2 4 gt lt 1 3 gt lt 2 lt 1 4 gt 3 gt lt 2 lt 1 3 gt 4 gt prasiththiphaphkarthangan aekikhkhntxnwithinimiewlainkarthanganepn 8 n 1 emux n khuxcanwntwelkhthitxngkarhawithikareriyngsbepliyn enuxngcakcanwnwithikareriyngsbepliynkhux n displaystyle n ephraachannkarichkhntxnwithiinkaraeckaecngwithikareriyngsbepliyncungtxngich n displaystyle n dwytwxyangkarprayuktichngan aekikhinprisnakhwinaepdtw 2 samarthnakhntxnwithiniipichinkareluxktaaehnngkarwangkhwin enuxngcakkhwinimsamarthxyuinaethwhruxhlkediywknidmakkwahnungtw cungimthaihekidelkhsakn karichwithikareriyngsbepliyncungepnthangeluxkhnungsahrbkaraekpyhapraephthnixangxing aekikhThe American Mathematical Monthly Vol 83 No 8 Oct 1976 hna 629 Tropenhitze Steinhaus Johnson Trotter permutation algorithm explained and implemented in Java karwiekhraah Algorithm N Queensaehlngkhxmulxun aekikhCalculating Permutations and Job Interview Questions Information on Permutations Permutationsekhathungcak https th wikipedia org w index php title khntxnwithikhxngchitnehas cxhnsnaelathrxthethxr amp oldid 4703394, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

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