Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
3Activity
0 of .
Results for:
No results containing your search query
P. 1
Chapter Simulated Annealing

Chapter Simulated Annealing

Ratings: (0)|Views: 975 |Likes:
Published by wongsanga

More info:

Published by: wongsanga on Aug 24, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/03/2012

pdf

text

original

 
บทที ่
2
อัลกอริทึมการอบออนจำลอง Simulated Annealing Algorithm
อัลกอริทึมการอบออนจำลอง
(simulated annealing หรือ SA) เปนเทคนิคการคนหาคำตอบแบบส ุม ซึ ่งเลียน แบบกรรมวิธีการควบคุมอุณหภูมิของการอบโลหะใหรอนแลวปลอยใหเย็นลงชาๆ เพื ่อใหเกิดการเปลี ่ยนแปลงทาง  โครงสรางผลึกที ่มีพลังงานภายในนอยที ่สุด คุณลักษณะดังกลาวจะทำให โลหะมีคุณสมบัติทางกายภาพที ่แข็งแกร และทนทาน ในทางตรงกันขาม ถาไมทำการควบคุมการทำใหเย็นของโลหะรอนแลว โครงสรางที ่ไดจะมีจุดตำหนิ หรือบกพรอง เปนโลหะมีความแข็ง แตเปราะ กรรมวิธีการควบคุมอุณหภูมิของการอบโลหะดังกลาวเรียกวาการอบ ออน (annealing process) การอบออนจำลองเปนเทคนิคการคนหาคาเหมาะที ่สุดสำหรับปญหาเชิงผสมผสาน โดย มีการควบคุมอุณหภูมิของการอบออนเปนการปรับคาพารามิเตอรการคนหาคำตอบของระบบนั ่นเอง การอบออนจำลอง (Simulated Annealing หรือ SA) ไดรับการพัฒนาขึ  ้นในป 1983 โดย Kirkpatrick และ คณะ [Kirkpatrick et al., 1983]เพื ่อใชในการแกปญหาที ่ไมเปนเชิงเสน SA ทำใหระบบไดรับคำตอบที ่เหมาะ ที ่สุดแบบวงกวาง (global optimum) โดยการเลียนแบบธรรมชาติของกระบวนการอบออนเหล็ก กระบวนการ ดังกลาวเริ ่มตนจากการเผาเหล็กดวยอุณหภูมิสูงจนเกินจุดหลอมเหลว ซึ ่งทำใหเหล็กอยู ในสภาวะของเหลวและมี  โครงสรางระดับโมเลกุลที ่มีพลังงานสูง สามารถมีปริมาณการเคลื ่อนที ่ที ่สูงได ซึ ่งจุดนี  ้เปรียบไดกับการที ่การคนหา คำตอบ มีพลังงานมากพอที ่จะสามารถกาวหลุดพนจากคำตอบที ่เหมาะที ่สุดแบบวงแคบเฉพาะถิ ่นได (local opti- mum) เมื ่อทำการลดอุณหภูมิของระบบลง โมเลกลโครงสรางของเหล็กจะไมสามารถเคลื ่อนที ่ไดเทาเดิม และจะ ถูกจำกัดในชวงคำตอบที ่เหมาะที ่สุดแบบวงแคบเฉพาะถิ ่น เมื ่อพิจารณาในระดับโครงสรางผลึกของเหล็ก การลด อุณหภูมิลงอยางชาๆ ทำใหเหล็กมีโครงสรางผลึกที ่แข็งแกรง ในขณะเดียวกัน ถาอุณหภูมิลดลงอยางไมเหมาะสม  โครงสรางผลึกดังกลาวจะมีการจัดตัวที ่ไมเหมาะสม สงผลใหเกิดขอบกพรองหรือมีตำหนิในโครงสรางผลึซึ ่ จะทำใหเหล็กที ่ไดมีความแข็งแกรงแตเปราะ เหล็กที ่ไมมีขอบกพรองในโครงสรางผลึกเลยเปรียบไดกับคำตอบที ่ เหมาะที ่สุดแบบวงกวาง กระบวนการอบออนเหล็กดังกลาวเปรียบเทียบไดกับการเขยากลองที ่มีพื  ้นผิวการคนหา คำตอบ และมีลูกบอลกลิ  ้งไปมาบนพื  ้นผิวนั  ้นๆ เมื ่อลูกบอลกลิ  ้งไปติดกับรอง เราจำเปนตองเขยากลองใหแรงขึ  ้ เพื ่อใหลูกบอลหลุดออกจากรองใหได รองดังกลาวเปรียบไดกับคำตอบที ่เหมาะที ่สุดแบบวงแคบเฉพาะถิ ่รองที ่ ลึยอมตองการการเขยาที ่แรงกวาในการที ่จะทำใหลูกบอลหลุดออกจากรองได การเขยาที ่แรงคือการใหพลังงาน กับลูกบอลที ่มากขึ  ้น เทียบไดกับการใหอุณหภูมิที ่สูงกับโมเลกุลของเหล็อุณหภูมิที ่ลดลงคือการเขยากลองดวย แรงที ่ลดลง ทำใหลูกบอลเคลื ่อนที ่ไดราบเรียบและเขาสู เปาหมายไดดีขึ  ้น อยางไรก็ดี ถึงแมวา SA จะสามารถให คำตอบที ่เหมาะที ่สุดแบบวงกวางได แตเวลาในการคนหาคำตอบอาจจะไมเหมาะสมในการใชงานจริงก็ ได มีงาน 45
 
อัลกอริทึ มการอบออนจำลอง Simulated Annealing Algorithm
วิจัยมากมายที ่เนนการปรับปรุงประสิทธิภาพในการคนหาคำตอบของ SA ใหดีขึ  ้นเชน FSA (Fast Simulated An- nealing) หรือ ADA (Adaptive Simulated Annealing) ที ่ซึ ่งลู เขาสู คำตอบไดเร็วขึ  ้นแบบเลขยกกำลั SA [Kirkpatrick et al., 1983][Rutenbar, 1989][Hajek, 1985] มีความแตกตางไปจาก
การคนหาคำตอบแบบวนรอบดีขึ  ้
(iterative improvement search) ตรงที ่มีการใสคาสุ มเขาไปในการคนหาคำตอบ การสุ มค ดังกลาวทำใหSA สามารถ “
กระโดด
” หรือหลุดออกจากคำตอบที ่เหมาะที ่สุดแบบวงแคบเฉพาะถิ ่นได การกระโดด ดังกลาวคือการปรับอุณหภูมิในกระบวนการอบออนขางตนนั ่นเอง การปรับอุณหภูมิของ SA ยังสามารถพิจารณา  ไดอีกสองแงมุม กลาวคือที ่อุณหภูมิสูระบบจะทำการคนหาแบบหยาบๆ (การกระโดดไปมาอยางแรง) ในขณะที ่ การคนหาแบบละเอียดจะไดจากระบบที ่มีอุณหภูมิต่ ำๆ ดวยลักษณะการทำงานแบบสุ มดังกลาว เราอาจเรียก SA วาเปนอัลกอริทึมเชิงนาจะเปน (probabilistic algorithm)
2.1 ลกอริทึมการอบออนจำลอง Simulated Annealing Algorithm
อัลกอริทึมการอบออนจำลองไดรับแนวคิดทางธรรมชาติจากการทำใหเหล็กที ่กำลังรอนเย็นตัวลง ในโครงสรางของ เหล็กที ่กำลังรอนนั  ้น ความนาจะเปนของกลุ มอะตอม ณ ตำแหน
r
i
จะมีคาพลังงานเฉพาะคาหนึ ่งคื
(
r
i
)
ที ่อุณหภูมิ
คาความนาจะเปนดังกลาวสามารถนิยามไดจากคาความนาจะเปนแบบโบลตซมันน (Boltzmann prob- ability) ดังนี  ้
Pr
[
(
r
i
)] =
e
E
(
r
i
)
/k
B
(2.1) โดยที ่
k
B
คือคาคงที ่ โบลตซมันน ปรากฎการณขางตนนำไปสู การออกแบบอัลกอริทึมสำหรับการอบออนจำลอง ซึ ่ เปนจุดเดนที ่ทำให SA ไดรับความสนใจมากมาย จุดเดนที ่สำคัญอยางหนึ ่งคือ SA มี โครงสรางหรือหลักการทำงาน ที ่ ไมมีความซับซอนแตอยางใด รูปที ่ 2.1 แสดงแผนผังการทำงานของ SA ซึ ่งมีองคประกอบสำคัญอยู  4 อยางดังนี  ้ (รายละเอียดดังกลาวมีที ่มาจากอัลกอริทึมเมโทรโพลิสหรือ Metropolis หนึ ่งในเทคนิคมอนติคาร โลหรือ Monte Carlo ซึ ่งมี ใช ในกลศาสตรสถิติ) [Ham and Kostanic, 2001] รูปแบบของคำตอบที ่ตองการคนหา ตัวกำเนิดสุ ม (random generator) หรือตัวปฏิบัติการคนหาสำหรับทำการ “เดิน” หรือ “move” คำตอบของ ระบบไปยังคำตอบใหมฟงก ชันวัตถุประสงค (objective function) ของระบบ • ตารางจัดการการอบออน (annealing schedule) ซึ ่งเปนสวนที ่ใชปรับคาอุณหภูมิและกำหนดเวลาที ่จะให ระบบเกิดการเปลี ่ยนแปลงอุณหภูมิ รายละเอียดของอัลกอริทึมการอบออนจำลองมีดังตอไปนี  ้
อัลกอริทึมการอบออนจำลอง - Simulated Annealing Algorithm
1. สุ มคาเริ ่มตนเวกเตอรคำตอบ
x
ในปริภูมิการคนหา คาเวกเตอรคำตอบ
x
นี  ้สามารถพิจารณาวาเปนสถานะ ของระบบก็ ได2. กำหนดตารางจัดการการอบออนสำหรับพารามิเตอรอุณหภูมิ
และตั  ้งคาเริ ่มตนของ
ไวที ่คาสูงอยาง เพียงพอ (ในการหลอมละลายเหล็กได) 3. คำนวณหาเวกเตอรคำตอบใหม
x
 p
=
x
+ ∆
x
โดยที ่
x
เปนการเปลี ่ยนแปลงที ่ถูกนำเสนอตอระบบ 4. คำนวณหาการเปลี ่ยนแปลงของฟงก ชันวัตถุประสงค
=
(
x
 p
)
(
x
)
46
 
2.1 อัลกอริทึ มการอบออนจำลอง Simulated Annealing Algorithm
รูปที ่ 2.1:
อัลกอริทึมการอบออนจำลอง 5. ทำการคำนวณหาวาควรจะใช
x
 p
เปนคำตอบหรือสถานะใหมของระบบหรือไม กลาวคือใชความนาจะเปนใน การตัดสินใจที ่จะเปลี ่ยนสถานะตามเงื ่อนไขตอไปนี  ้
Pr
(
x
x
 p
) =
1
ถ
f <
0
e
f/T 
ถ
0
(2.2) โดยที ่
แทนอุณหภูมิของระบบ ในกรณีที ่
0
คาตัวเลขสุ มที ่มีการกระจายแบบสม่ ำเสมอ (uniform distribution)
η
จะถูกเลือกจากในชวง
[0
,
1]
ถ
Pr
(
x
x
 p
)
> η
แลว เวกเตอรคำตอบ
x
 p
จะถูกใชเปคำตอบหรือสถานะใหมของระบบ มิฉะนั  ้นแลว ใหคงคำตอบของระบบไวที ่
x
เหมือนเดิ6. ขั  ้นตอนขางตนจะถูกทำซ้ ำจนกระทั ่งระบบเขาสู จุดสมดุที ่ซึ ่งรู  ไดจากจำนวนครั  ้งของการเปลี ่ยนสถานะไม มีนัยสำคัญเพียงพอ สภาวะดังกลาวนี  ้จะเกิดขึ  ้นเมื ่อระบบมีคำตอบหรือสถานะเขาใกลคาเหมาะที ่สุดแบบวง แคบเฉพาะถิ ่น โดยปกติแลว จำนวนครั  ้งของการทำซ้ ำจะถูกกำหนดไวกอนลวงหน 7. ทำการปรับคาอุณหภูมิ
ตามตารางจัดการการอบออน แลวเริ ่มทำขั  ้นตอนทำซ้ ำทั  ้งหมดใหมอีกครั  ้ง กระ- บวนการทั  ้งหมดสามารถยุติ ไดเมื ่อคาอุณหภูมิ
มีคาเปนศูนย (ระบบถูกแชแข็ง)
รายละเอียดพารามิเตอรตางๆ ของ SA มีดังตอไปนี  ้
ตารางจัดการการอบออน
- Annealing Schedule ในความเปนจริงแลว ประสิทธิภาพของ SA จะขึ  ้นอยู กับการเลือกตารางจัดการการอบออน (สำหรับพารา- มิเตอรอุณหภูมิ
) ตารางจัดการการอบออนจะเปนตัวกำหนดการเคลื ่อนที ่หรือ “move” ของคำตอบของ ระบบในระหวางการคนหา หลักในการเลือกตารางจัดการการอบออนที ่เหมาะสมคือ “
คาอุณหภูมิเริมต นของ
47

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->