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

**วิธีการลอกแบบ** () เป็นกระบวนการที่นำขั้นตอนวิธีเจนิติกมาไฮบริด กับเทคนิคการค้นหาแบบเฉพาะที่ ซึ่งขั้นตอนวิธีนี้ได้แนวคิดมาจากทฤษฎีมีมีติกของ Richard Dawkins ขั้นตอนวิธีการลอกแบบนี้จะคล้ายกับขั้นตอนวิธีเจนิติก และในส่วนประกอบของโครโมโซมจะถูกเรียกว่า มีม (Meme) แทนคำว่ายีน (Gene)

## บทนำ
ในปี ค.ศ. 1983 Richard Dawkins ได้ตั้งชื่อทฤษฎี Universal Darwinism ให้กับระบบที่มีการกำกับดูแลที่ซับซ้อนใด ๆ โดยเฉพาะอย่างยิ่งทฤษฎี Universal Darwinism นั้น ชี้ให้เห็นถึงวิวัฒนาการที่ไม่จำกัดเพียงระบบทางชีววิทยา นั่นหมายถึงมันไม่ได้จำกัดอยู่ในกรอบแคบ ๆ ของลักษณะยีน แต่ใช้กับระบบที่ซับซ้อนใด ๆ ที่แสดงหลักการของการสืบทอด การเปลี่ยนแปลง และการเลือก จึงสามารถเติมเต็มลักษณะของระบบวิวัฒนาการ ตัวอย่างเช่น ศาสต์ใหม่ของมีมีติกที่แสดงถึงระบบอนาล็อกใจกลางของพันธุศาสตร์ในการวิวัฒนาการทางวัฒนธรรมที่ทอดยาวข้ามขอบเขตของชีววิทยา ความรู้ และจิตวิทยา ซึ่งได้รับความสนใจอย่างมากในทศวรรษที่ผ่านมา คำว่า "meme" ถูกนิยาม และให้ความหมายโดย Dawkins ในปี ค.ศ. 1976 เป็นหน่วยพื้นฐานของการส่งผ่านทางวัฒนธรรมหรือการเลียนแบบ และในพจนานุกรมภาษาอังกฤษ ฉบับออกซฟอร์ด มีความหมายว่า องค์ประกอบของวัฒนธรรมที่อาจจะส่งผ่านบนโดยวิธีการที่ไม่ใช่ทางพันธุกรรม

โดยทั่วไปการใช้ไอเดียของมีมีติก ภายในกรอบการคำนวณจะถูกเรียกว่า Memetic Computing(MC) การใช้ Memetic Computing ทำให้ลักษณะของ Universal Darwinism มีความเหมาะสมมากขึ้น เมื่อมองในมุมนี้ การลอกแบบ หรือมีมีติกขั้นตอนวิธีจะเป็นแนวคิดที่จำกัดขึ้นของ Memetic Computing หรืออีกนัยหนึ่งการลอกแบบเป็นเพียงส่วนหนึ่งของ Memetic Computing โดยเฉพาะอย่างยิ่งในการจัดการกับพื้นที่ของขั้นตอนวิธีวิวัฒนาการที่เกี่ยวข้องกับเทคนิคการปรับแต่งอื่น ๆ เพื่อเพิ่มประสิทธิภาพในการแก้ปัญหา Memetic Computing ได้ขยายแนวคิดของ memes ให้ครอบคลุมแนวความคิดของวิธีการเพิ่มประสิทธิภาพความรู้ หรือข้อคิดเห็น

## รหัสเทียม
: เริ่มต้น;
:: สร้างรูปแบบของประชากรแบบสุ่มจำนวน P รูปแบบ;
:: ตั้งแต่ i = 1 ไปจนถึงจำนวนทั้งหมดของรูปแบบ;
::: {สลับสายพันธุ์}
::: เลือกพ่อแม่มา 2 ชนิดแบบสุ่ม (ia และ ib);
::: สร้างลูก (ic) ที่เกิดจาการสลับสายพันธุ์ของพ่อและแม่;
::: {กลายพันธุ์}
::: สุ่มเลือกโครโมโซมหนึ่งจาก i;
::: สร้างลูก (ic) ที่เกิดจาการกลายพันธุ์ของ i;
::: i ที่เป็นสมาชิกของ P: ทำการค้นหาแบบเฉพาะที่ (Local Search);
::: i ที่เป็นสมาชิกของ P: ประเมินค่าความเหมาะสม (Fitness Evaluation);
::: คัดเลือกโครโมโซมด้วยกระบวนการวงล้อรูเลท (Roulette Wheel Selection);
:: นำโครโมโซมที่คัดเลือกเป็น i ตัวถัดไป;
: จบการทำงาน;

## ขั้นตอนการทำงาน
ขั้นตอนการทำงานเริ่มต้นจากการกำหนดส่วนประกอบของตัวแทนผลเฉลย หรือคำตอบที่ต้องการค้นหา โดยจะสร้างกลุ่ม หรือประชากรของคำตอบเริ่มต้น ด้วยการสุ่มเพื่อเข้าสู่กระบวนการทางพันธุกรรม (Genetic Operations) โดยทำการสลับสายพันธุ์ (Crossover) และการกลายพันธุ์ (Mutation) ซึ่งเป็นปฏิบัติการที่สำคัญของขั้นตอนวิธีเจนิติก แต่ในขั้นตอนวิธีมีมีติกจะมีการเพิ่มขั้นตอนของการค้นหาแบบเฉพาะที่ (Local Search) เพื่อช่วยปรับปรุงประสิทธิภาพให้ประชากรดีขึ้น และให้ได้ผลลัพธ์ที่ดีขึ้น จากนั้นนำผลลัพธ์ไปประเมินค่าความเหมาะสม (Fitness Evaluation) เพื่อคัดเลือกผลลัพธ์หรือโครโมโซมที่ดี (Chromosome Selection) ไปเป็นตัวแทนประชากรของรุ่นถัดไป โดยรายละเอียดการทำงานในแต่ละขั้นตอนสามารถอธิบายได้ดังนี้

**ขั้นตอนที่ 1** การกำหนดรูปแบบโครโมโซม (Chromosome Representation) คือจะเริ่มด้วย การเข้ารหัสของปัญหา เพื่อสร้างรายการของหน่วยพันธุกรรม ซึ่งสามารถแทนได้ทั้งแบบตัวเลข, ตัวอักษร และตัวเลขผสมกับตัวอักษร

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

**ขั้นตอนที่ 3** ขบวนการทางพันธุกรรม (Genetic Operations) ซึ่งประกอบด้วย การสลับสายพันธุ์ และการกลายพันธุ์ โดยจะสุ่มเลือกโครโมโซมพ่อแม่จากประชากรเพื่อสร้างโครโมโซมลูก ซึ่งการสลับสายพันธุ์ คือการสุ่มเลือกโครโมโซมพ่อแม่มาเพื่อดำเนินการตัดและ/หรือสลับรวมลักษณะจากโครโมโซมพ่อแม่ให้ได้โครโมโซมลูก จำนวนของโครโมโซมพ่อแม่จะถูกสุ่มเลือกขึ้นมาตามค่าความน่าจะเป็นในการการสลับสายพันธุ์ที่กำหนดไว้ ขณะที่ การกลายพันธุ์ คือการสุ่มเลือกโครโมโซมต้นแบบขึ้นมาหนึ่งโครโมโซม และสุ่มหน่วยพันธุกรรม ในโครโมโซมเพื่อทำการเปลี่ยนแปลงค่าทำให้ได้โครโมโซมลูกชุดใหม่หนึ่งโครโมโซม จำนวนโครโมโซมต้นแบบจะถูกสุ่มเลือกขึ้นมาตามค่าความน่าจะเป็นในการมิวเตชั่น

**ขั้นตอนที่ 4** การค้นหาแบบเฉพาะที่ (Local Search) มักจะถูกใช้หลังจากขบวนการทางพันธุกรรม ด้วยความหวังที่จะเพิ่มประสิทธิภาพของวิธีเจนิติก

**ขั้นตอนที่ 5** การประเมินค่าความเหมาะสม (Fitness Evaluation) เป็นขั้นตอนการถอดรหัสโครโมโซม เพื่อคำนวณหาค่าความเหมาะสมตามฟังก์ชันเป้าหมาย หรือฟังก์ชันความเหมาะสมของปัญหาที่ได้กำหนดไว้ ค่าความเหมาะสมของแต่ละโครโมโซมจะถูกใช้กำหนดความน่าจะเป็นในการอยู่รอด

**ขั้นตอนที่ 6** การคัดเลือกโครโมโซม (Chromosome Selection) คือการคัดเลือกโครโมโซม
เพื่อเป็นประชากรในรุ่นถัดไป กระบวนการคัดเลือก ที่ถือได้ว่ามีชื่อเสียงและเป็นที่รู้จักดีที่สุด คือ Holland’s Proportionate Selection หรือที่เรียกว่า กระบวนการของวงล้อรูเลท ซึ่งจะมีการสุ่มค่าที่อยู่ในช่วง 0-1 จำนวนครั้งในการสุ่มเท่ากับขนาดของประชากร และถ้าสุ่มตกในช่องของโครโมโซมใด โครโมโซมนั้นจะถูกคัดเลือกไปเป็นประชากรในรุ่นถัดไป ขั้นตอนการทำงานจะวนซ้ำกลับไปขั้นตอนที่ 3 จนกว่าจะเป็นไปตามเงื่อนไขของหยุดการทำงาน (Termination Criterion)

## การทดสอบประสิทธิภาพวิธีการลอกแบบ (มีมีติกขั้นตอนวิธี)
จากบทความวิจัยได้พัฒนาโปรแกรมที่เขียนขึ้นด้วยภาษา Microsoft Visual Studio .NET 2003 โดยเป็นการทดสอบการแก้ปัญหาสมการคณิตศาสตร์ที่มีผลเฉลยแบบต่อเนื่อง 2 สมการ ได้แก่ สมการพาราโบลิค (Parabolic function) และสมการโพลิโนเมียล (Polynomial function) ด้วยขั้นตอนวิธีแก้ปัญหาแบบขั้นตอนวิธีเจนิติก และวิธีการลอกแบบ(มีมีติกอัลกอรึทึม) เพื่อเปรียบเทียบประสิทธิภาพการหาคำตอบระหว่างสองวิธีนี้

โดยได้แบ่งการศึกษาออกเป็น 3 การทดลอง สำหรับการทดลองแรกเป็นการศึกษาค่าระดับปัจจัยของขั้นตอนวิธีเจนิติก (Genetic Parameters) ที่มีผลต่อการหาผลเฉลยจากสมการทั้ง 2 สมการที่กล่าวไว้ข้างต้น ขณะที่การทดลองที่ 2 เป็นการศึกษาค่าระดับปัจจัยของเทคนิคซัฟเฟิลฟรอกลิปปิง ที่มีผลต่อการหาผลเฉลยจากสมการ และการทดลองที่ 3 เป็นการศึกษาเปรียบเทียบประสิทธิภาพการหาคำตอบระหว่างขั้นตอนวิธีเจนิติก และวิธีการลอกแบบ (มีมีติกอัลกอรึทึม)

ผลจากการทดลองพบว่าวิธีการลอกแบบ (มีมีติกอัลกอรึทึม) มีประสิทธิภาพในการหาค่าผลเฉลยได้ดีกว่าสามารถหาค่าผลเฉลยได้เข้าใกล้ค่าที่ดีที่สุดได้มากกว่าขั้นตอนวิธีเจนิติก แต่ใช้ระยะเวลาในการประมวลผลนานมากกว่าเล็กน้อย

## กิจกรรมที่เกี่ยวข้องกับวิธีการลอกแบบ (มีมีติกขั้นตอนวิธี)
* IEEE Workshop on Memetic Algorithms (WOMA 2009). Program Chairs: Jim Smith, University of the West of England, U.K.; Yew-Soon Ong, Nanyang Technological University, Singapore; Gustafson Steven, University of Nottingham; U.K.; Meng Hiot Lim, Nanyang Technological University, Singapore; Natalio Krasnogor, University of Nottingham, U.K.
* Memetic Computing Journal, first issue appeared in January 2009.
* 2008 IEEE World Congress on Computational Intelligence (WCCI 2008), Hong Kong, Special Session on Memetic Algorithms.
* Special Issue on 'Emerging Trends in Soft Computing - Memetic Algorithm' , Soft Computing Journal, Completed & In Press, 2008.
* IEEE Computational Intelligence Society Emergent Technologies Task Force on Memetic Computing 
* IEEE Congress on Evolutionary Computation (CEC 2007) , Singapore, Special Session on Memetic Algorithms .
* 'Memetic Computing' by Thomson Scientific's Essential Science Indicators as an Emerging Front Research Area.
* Special Issue on Memetic Algorithms, IEEE Transactions on Systems, Man and Cybernetics - Part B, Vol. 37, No. 1, February 2007.
* Recent Advances in Memetic Algorithms, Series: Studies in Fuzziness and Soft Computing , Vol. 166, ISBN 978-3-540-22904-9, 2005.
* Special Issue on Memetic Algorithms, Evolutionary Computation Fall 2004, Vol. 12, No. 3: v-vi.

## วิธีการ (ขั้นตอนวิธี) ที่เกี่ยวข้อง
*Genetic algorithm
*Mutation
*Crossover

## อ้างอิง
บทความวิจัยเรื่อง การประยุกต์ใช้เทคนิคซัฟเฟิลฟรอกลิปปิงเพื่อเพิ่มประสิทธิภาพการทำงานของมีมีติกอัลกอริธึม โดย สุภัคกานดา ชมภูมิ่ง ประพล อิทธิพงษ์ และภูพงษ์ พงษ์เจริญ (บทความวิจัยนี้ได้รับการอนุญาตจากเจ้าของแล้ว)

Alkan, A. & Özcan, E. (2003). Memetic algorithms for timetabling. Yeditepe University. 34755 Kayisdagi - Istanbul/Turkey.
Amiri, B., Fathian, M. & Maroosi, A. (2007). Application of shuffled frog-leaping algorithm on clustering. Iran University of Science and Technology.

Aytug, H., Khouja, M. & Vergara F.E. (2003) Use of genetic algorithm to solve production and operation management problems: a review. International Journal of Production Research, 41, 3955-4009.

Chainate, W., Thapatsuwan, P., Kaitwanidvilai, S., Muneesawang, P. & Pongcharoen, P. (2006). Improving Hopfield Neural Network Performance and Parameters Investigation, KMITL Science Journal, 6(2a), 266-273.

Chaudhry, S.S. & Luo, W. (2005) Application of genetic algorithms in production and operation management: a review. International Journal of Production Research 43, 4083-101.

Dawkins, R. (1976). The selfish gene. University Press, Oxford.

Duan, H. & Yu, X. (2007). Hybrid Ant Colony Optimization Using Memetic Algorithm for Traveling Salesman Problem. Proceedings of the IEEE Symposium on Approximate Dynamic Programming and Reinforcement Learning, 92-95.

Emad, E., Tarek, H. & Donald, G. (2005). Comparison among five evolutionary-based optimization algorithm. Advanced Engineering Informatics, 19, 43-53.

Freisleben, B. & Merz, P. (1996). A Genetic local search algorithm for solving symmetric and asymmetric traveling salesman problems. Proceedings of IEEE International Conference on Evolutionary Computation, 616-621.

Gyori, S., Petres, Z. & Varkonyi-Koczy, A.R. (2001). Genetic Algorithms in Timetabling A New Approach. Academic research, Budapest University of Technology and Economics, Budapest.

Montgomery, D.C. (1997). Design and analysis of experiments. New York, John Wiley and Sons.

Moscato, P. & Norman, M.G. (1992). A memetic approach for the travelling salesman problem implementation of a computational ecology for combinatorial optimization on message-passing system. Proceedings of the International Conference on Parallel Computing and Transputer Application. Amsterdam, Holland, 177-186.

Genetic algorithms for flow shop scheduling problemsMurata, T., Ishibuchi, H. & Tanaka, H. (1996). . Computers and Industrial Engineering, 30 (4), 1061-1071.

Nearchou, A.C. (2004). The effect of various operators on the genetic search for large scheduling problems. International Journal of Production Economics, 88 (2), 191-203.

Applying designed experiments Pongcharoen, P. Stewardson, D.J., Hicks, C. & Braiden, P.M. (2001). to optimize the performance of genetic algorithms used for scheduling complex products in the capital goods industry. Journal of Applied Statistics, 28(3), 441-455.

Pongcharoen, P., Hicks, C., Braiden, P.M. & Stewardson, D.J. (2002). Determining optimum genetic algorithm parameters for scheduling the manufacturing and assembly of complex products, International Journal of Production Economics, 78(3), 311-322.

Pongcharoen, P., Hicks, C. & Braiden, P.M. (2004). The development of genetic algorithms for the finite capacity scheduling of complex products, with multiple levels of products structure, European Journal of Operational Research, 152(1), 215-225.

Stochastic optimisation timetabling Pongcharoen, P., Promtet, W., Yenradee, P. & Hicks, C. (2007). tool for university course scheduling, Revised and submitted to the International Journal of Production Economics.

Sermpattarachai, P. & Luangpaiboon, P. (2005). Response Surface Methodology via Ant colony Optimisation. Department of Industrial Engineering Faculty of Engineering. Thammasat University, Thailand.

หมวดหมู่:ขั้นตอนวิธีเชิงวิวัฒนาการ