วันจันทร์ที่ 19 ธันวาคม พ.ศ. 2554

วันอาทิตย์ที่ 16 ตุลาคม พ.ศ. 2554

PGA Catagories

งานวิจัยที่เกี่ยวกับ PGA มีหลายตัว ในที่นี้มีเอกสารที่สรุปชนิดของ PGA[1] แบ่งออกเป็นกลุ่มใหญ่ ๆ 3 กลุ่ม คือ
  1. Global population master-slave PGA(GPGA) มีกลุ่มประชากรเพียงกลุ่มเดียวซึ่งเก็บไว้ที่ master รวมถึงกระบวนการต่างๆ ของ GA ก็จะทำอยู่ที่ master ด้วย ส่วน slave ทำหน้าที่คำนวณหาค่า fitness ของแต่ละ individual ที่ได้รับมาเท่านั้น
  2. Single population fine-grained PGA ลักษณะของ PGA แบบนี้จะมีการกระจาย individual ไปยัง processor แบบ 1-1 ซึ่งเหมาะกับ parallel machine ขนาดใหญ่ที่มีจำนวน processor มาก ๆ ข้อจำกัดของ PGA แบบนี้คือกระบวนการ selection และ mating จะจำกัดไว้ที่ processor ที่อยู่ใกล้เคียงเท่านั้น
  3. Multiple population coarse-grained PGA มีชื่อเรียกหลายแบบเช่น multiple-deme GA หรือ distributed GA หรือ island GA เป็นต้น เป็นการทำ GA ของกลุ่มประชากรย่อยหลายกลุ่ม ( subpopulations ) และมีการแลกเปลี่ยน individual ซึ่งกันและกันในระหว่างกระบวนการ GA โดยการแลกเปลี่ยนนี้เรียกว่า migration
ใน 3 กลุ่มใหญ่ของ PGA ข้างต้น GPGA นั้นจะเป็นกระบวนการที่คล้ายกับ sequetial GA มากที่สุดเนื่องจากไม่ได้ไปเปลี่ยนแปลงพฤติกรรมใดๆของ alogrithm ส่วนอีก 2 แบบต่อมานั้นเปลี่ยนแปลงค่อนข้างมาก เช่นในกระบวนการ selection แบบแรกจะเลือกจากประชากรทั้งหมด ส่วนอีก 2 แบบต่อมาจะเป็นการเลือกจากกลุ่มประชากรย่อยเท่านั้น เช่นเดียวกับกระบวนการ mating

นอกจากนี้ยังมี PGA อีกแบบหนึ่งที่รวมกลุ่มใหญ่ด้านบนเข้าด้วยกัน เรียกว่า hierarchical PGA(HPGA) โดยอาศัย coarse-grained เป็นแกนหลักจับไขว้กับ GPGA และ fine-grained PGA ซึ่งผมจะไม่ขอกล่าวในรายละเอียดตอนนี้ครับ




จากรูป [2]
(a) คือ GPGA
(b) คือ coarse-grained PGA
(c) คือ fine-grained PGA
(d) คือ coarse-grained PGA และ fine-grained PGA
(e) คือ coarse-grained PGAและ GPGA

อ้างอิง
1. E. Cantú-Paz. “A Summary of Research on Parallel Genetic Algorithms” ,revised version, IlliGAL R. 97003. May 1997
2. E. Alba and J. M. Troya, “A survey of parallel distributed genetic algo-
rithms,” Complexity, vol. 4, no. 4, pp. 31–52, 1999

วันเสาร์ที่ 15 ตุลาคม พ.ศ. 2554

Googling : parallel genetic algorithm

ครั้นเมื่อผม search หาจากอากู๋เกี่ยวกับ parallel genetic algorithm สิ่งที่ปรากฏต่อสายตาผมเป็นดังรูป (15/10/54)


ลิงค์ที่ปรากฏบรรทัดแรกเป็น google scholar แสดงว่าหัวข้อนี้ปรากฏอยู่ในงานวิจัยอยู่มากและไม่ค่อยจะมีใครเอามาบรรยายในเว็ปทั่วไป(งานเข้า) อันนี้ยังไงก็ได้ใช้แน่นอน ผมเลยผ่านไปก่อน

ลิงค์ที่สอง คือวิกีพีเดีย แต่เป็นหัวข้อ genetic algorithm อย่างเดียว เมื่อเข้าไปอ่านแล้วค้นคำว่า parallel จะพบว่าปรากฏอยู่ 2 บรรทัดเท่านั้น - -'

ลิงค์ที่ 3 เข้าใจว่าเป็น student project ของนักศึกษามหาลัย Boston ตั้งแต่ปี 1994 ไม่ค่อยมีรายละเอียดอะไร เก็บมาได้แค่ reference บางตัวแต่ก็ไม่น่าสนใจ

ลิงค์ที่ 4 น่าสนใจมากเป็นไฟล์ pdf ซึ่งเป็น paper ในงานประชุมวิชาการ KES'99 และที่สำคัญดาวน์โหลดมาอ่านได้ฟรี(สุดยอด)

ลิงค์ที่ 5 นี่เป็น paper ของนักศึกษา MIT แต่ว่า... เป็น math ล้วน ๆ ( - -' ) แต่เก็บไว้เผื่อได้ใช้

ลิงค์ที่ 6 เป็นบทที่ 3 ของเอกสารเผยแพร่ของ Dr.Travis Scott Metcalfe มหาลัย Texas เริ่มมีคีย์เวิร์ดคำว่า PIKAIA ตรงนี้เหมือนจะเอาทำให้เป็น parallel โดยใช้โมเดล master-slave

ลิงค์ที่ 7 เป็น Master thesis ของ Laurens Jan Pit ปี 95 มหาลัย Leiden ซึ่งเป็นเรื่องที่ถูกใจมากเพราะงานที่เขาทำเป็นเรื่อง parallel genetic algorithm ตรง ๆ และได้ ref มาเยอะมาก

ลิงค์ที่ 8 เป็นลิงค์เสียครับ -> MPIKAIA น่าจะสัมพันธ์กับลิงค์ที่ 6

ลิงค์ที่ 9 เป็นเว็ปของ Dr. Eyal Dassua ของวิทยาลัย Technion ประเทศอิสราเอล มีการนำเอา MathlabMPI มาใช้อิมพลีเมนต์ PGA

ลิงค์ที่ 10 เป็นลิงค์ paper ของประเทศสิงคโปร์ ปี 2006 ใช้ Grid Computing มาเป็นสถาปัตยกรรมในการอิมพลีเมนต์ PGA

ลิงค์สุดท้าย สำหรับหน้าแรก เป็นโปรเจคไลบราลีของ PGA ชื่อ PGAL บน sourceforge.net ซึ่งใช้ภาษา C++ (ยังอยู่ในเวอร์ชั่น beta)

ผมคงจะจบอยู่แค่ลิงค์สุดท้ายสำหรับหน้าแรก เพราะถ้าเอามาเล่าต่อไปงานผมคงไม่เดินหน้าเสียที ขอตัวไปอ่านก่อนนะครับ : )

วันศุกร์ที่ 14 ตุลาคม พ.ศ. 2554

วันที่ 3 ผมต้องได้อะไร

วันเสาร์ที่ 15 ต.ค. 2554
(ตอนที่ผมเริ่มเขียนเป็นวันที่ 15/10/54 แต่ blogger บันทึกให้เป็นวันศุกร์ซะงั้น)
9.00 น. เมื่อคืนผมมานอนที่ร้าน แล้วก็ไม่ได้อ่านอะไร กฏที่ผมตั้งขึ้นมาก็ยังทำงานอยู่แต่สิ่งสำคัญคือการกระตุ้นตัวเองให้กระหายที่จะอ่านหนังสือ แต่วันนี้ผมต้องทำธุระเรื่องรถและงานบ้านให้เสร็จก่อน หลังจากนั้นจะเข้าสู่โหมดการอ่านครับ
15.30 น. ผมกลับมาอ่าน PGA ต่อ หลังจากนอนหลับ รถก็ไม่ได้เอาไปซ่อม เพราะฝนตกทั้งวัน เลยทานข้าว แล้วก็ขึ้นมากะจะอ่านหนังสือ อ่านไปได้สักพักหลับเป็นตาย หลับไปกว่า 4 ชั่วโมง เหอะๆ
16.30 น. หยุดค้นหา PGA ไว้สักครู่ เพื่อไปซื้อหนังสือและเตรียมตัวเปิดร้าน

Parallel GA

หลังจากทำความเข้าใจเกี่ยวกับ NMR และ NMR Spectrometer ไปบ้างเป็นน้ำจิ้มแล้วคราวนี้ผมก็เริ่มมาศึกษาเรื่อง parallel GA ซึ่งเป็นเครื่องมืออีกตัวที่เกี่ยวกับงานของผมครับ

ตัว GA หรือ Genetic Algorithm เป็นอัลกอริทึมเชิงพันธุกรรม ซึ่งผมอ่านมาเยอะแล้วเลยไม่ขอกล่าวถึงมากในที่นี้ พูดสั้น ๆ ว่าเป็นอัลกอริทึมสำหรับใช้แก้ปัญหาที่ผมต้องการ และด้วยธรรมชาติของมันสามารถนำมาทำเป็น parallel ได้ไม่ยาก แต่ประเด็นที่ผมสนใจและมีคำถามเกิดขึ้นในสมองคือคือ การทำเป็น parallel นั้น มันช่วยให้งานเร็วขึ้นได้จริงหรือ ? ซึ่งเป็นคำถามที่ผมยังไม่ได้คำตอบเมื่อผมไปอ่านจากงานโปรเจคของรุ่นน้อง และ speed up มัน predict ได้ไหม ? อันนี้ผมยังไม่เคลียร์เลยต้องหาคำตอบกันต่อไป...