กลับไปหน้าบทความ

อ่าน 2 นาที

การเขียนโปรแกรมแบบหลายนิพจน์

การเขียนโปรแกรมแบบหลายนิพจน์ (MEP) เป็นอัลกอริทึมเชิงวิวัฒนาการสำหรับการสร้างฟังก์ชันทางคณิตศาสตร์ที่อธิบายชุดข้อมูลที่กำหนด MEP เป็น รูปแบบหนึ่ง ของการเขียนโปรแกรมเชิงพันธุกรรม...

การเขียนโปรแกรมแบบหลายนิพจน์

(Learn how and when to remove this message)

การเขียนโปรแกรมแบบหลายนิพจน์ (MEP) เป็นอัลกอริทึมเชิงวิวัฒนาการสำหรับการสร้างฟังก์ชันทางคณิตศาสตร์ที่อธิบายชุดข้อมูลที่กำหนด MEP เป็น รูปแบบหนึ่ง ของการเขียนโปรแกรมเชิงพันธุกรรมที่เข้ารหัสโซลูชันหลายรายการในโครโมโซมเดียวกัน การแสดงผลของ MEP ไม่เฉพาะเจาะจง (มีการทดสอบการแสดงผลหลายแบบ) ในรูปแบบที่ง่ายที่สุด โครโมโซมของ MEP เป็นสตริงเชิงเส้นของคำสั่ง การแสดงผลนี้ได้รับแรงบันดาลใจจากรหัสสามแอดเดรสจุดแข็งของ MEP อยู่ที่ความสามารถในการเข้ารหัสโซลูชันหลายรายการของปัญหาในโครโมโซมเดียวกัน ด้วยวิธีนี้ เราสามารถสำรวจพื้นที่การค้นหาที่กว้างขึ้นได้ สำหรับปัญหาส่วนใหญ่ ข้อได้เปรียบนี้ไม่ได้มาพร้อมกับโทษของเวลาการทำงานเมื่อเทียบกับ รูปแบบ การเขียนโปรแกรมเชิงพันธุกรรมที่เข้ารหัสโซลูชันเดียวในโครโมโซม[ 1 ] [ 2 ] [ 3 ]

การเป็นตัวแทน

โครโมโซม MEP คืออาร์เรย์ของคำสั่งที่แสดงในรูป แบบรหัสสามแอดเดรส

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

ตัวอย่างโปรแกรม MEP

นี่คือโครโมโซม MEP อย่างง่าย (ป้ายกำกับทางด้านซ้ายไม่ใช่ส่วนหนึ่งของโครโมโซม):

1: ก 2: ข 3: + 1, 2 4: c 5: ง 6: + 4, 5 7: * 3, 5 

การคำนวณความเหมาะสม

เมื่อมีการประเมินโครโมโซมแล้ว จะไม่ชัดเจนว่าคำสั่งใดจะให้ผลลัพธ์ของโปรแกรม ในหลายกรณี จะได้ชุดโปรแกรมหลายโปรแกรม ซึ่งบางโปรแกรมอาจไม่เกี่ยวข้องกันเลย (ไม่มีคำสั่งร่วมกัน)

สำหรับโครโมโซมข้างต้น ต่อไปนี้คือรายการโปรแกรมที่เป็นไปได้ซึ่งได้จากการถอดรหัส:

E1 = a, E2 = b, E4 = c, E5 = d, E3 = a + b. E6 = c + d. E7 = (a + b) * d. 

คำสั่งแต่ละคำสั่งจะถูกประเมินว่าเป็นผลลัพธ์ที่เป็นไปได้ของโปรแกรม

ค่าความเหมาะสม (หรือค่าความคลาดเคลื่อน) จะถูกคำนวณในลักษณะมาตรฐาน ตัวอย่างเช่น ในกรณีของการถดถอยเชิงสัญลักษณ์ค่าความเหมาะสมคือผลรวมของความแตกต่าง (ในค่าสัมบูรณ์) ระหว่างผลลัพธ์ที่คาดหวัง (เรียกว่าเป้าหมาย) และผลลัพธ์จริง

กระบวนการมอบหมายงานด้านฟิตเนส

นิพจน์ใดจะใช้แทนโครโมโซม? นิพจน์ใดจะแสดงถึงความเหมาะสมของโครโมโซม?

ใน MEP โครโมโซมที่ดีที่สุด (ซึ่งมีข้อผิดพลาดน้อยที่สุด) จะถูกนำมาใช้แทนโครโมโซม ซึ่งแตกต่างจากเทคนิค GP อื่นๆ: ในการเขียนโปรแกรมเชิงพันธุกรรมแบบเชิงเส้นคำสั่งสุดท้ายจะให้ผลลัพธ์ ในขณะที่ในการเขียนโปรแกรมเชิงพันธุกรรมแบบคาร์ทีเซียนยีนที่ให้ผลลัพธ์จะถูกพัฒนาไปพร้อมกับยีนอื่นๆ

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

ซอฟต์แวร์

เมพีเอ็กซ์

MEPX เป็นซอฟต์แวร์ฟรีที่ใช้งานได้บนหลายแพลตฟอร์ม (Windows, macOS และ Linux Ubuntu) สำหรับการสร้างโปรแกรมคอมพิวเตอร์โดยอัตโนมัติ สามารถใช้ในการวิเคราะห์ข้อมูล โดยเฉพาะอย่างยิ่งสำหรับการแก้ ปัญหา การถดถอยเชิงสัญลักษณ์การจำแนกประเภททางสถิติและปัญหา อนุกรมเวลา

ภาพหน้าจอจากซอฟต์แวร์ MEPX

ลิบเมป

Libmepเป็นไลบรารีโอเพนซอร์สฟรีที่ใช้เทคนิคการเขียนโปรแกรมแบบหลายนิพจน์ (Multi Expression Programming) โดยเขียนด้วยภาษา C++

เอชเอ็มอีพี

hmepเป็นไลบรารีโอเพนซอร์สใหม่ที่ใช้เทคนิคการเขียนโปรแกรมแบบหลายนิพจน์ (Multi Expression Programming) ในภาษาโปรแกรม Haskell

ดูเพิ่มเติม

หมายเหตุ

  1. ออลเตียน ม.; Dumitrescu D.: " Multi Expression Programming ", รายงานทางเทคนิค, Univ. บาบส์-โบลาย, คลูจ-นาโปกา, 2002
  2. ^ Oltean M.; Grosan C.: "การพัฒนาอัลกอริทึมเชิงวิวัฒนาการโดยใช้การเขียนโปรแกรมแบบหลายนิพจน์ " การประชุมวิชาการด้านปัญญาประดิษฐ์แห่งยุโรปครั้งที่ 7 วันที่ 14-17 กันยายน 2546 เมืองดอร์ทมุนด์ บรรณาธิการโดย W. Banzhaf (และคณะ) LNAI 2801 หน้า 651-658 สำนักพิมพ์ Springer-Verlag กรุงเบอร์ลิน ปี 2546
  3. ^ Oltean M.; Grosan C.: "การพัฒนาวงจรดิจิทัลโดยใช้การเขียนโปรแกรมแบบหลายนิพจน์ " การประชุม NASA/DoD ว่าด้วยฮาร์ดแวร์ที่พัฒนาได้ 24–26 มิถุนายน ซีแอตเทิล บรรณาธิการโดย R. Zebulum (และคณะ) หน้า 87-90 สำนักพิมพ์ IEEE Press รัฐนิวเจอร์ซีย์ ปี 2004
  • เว็บไซต์การเขียนโปรแกรมแบบหลายนิพจน์
  • ซอร์สโค้ดการเขียนโปรแกรมแบบหลายนิพจน์
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Multi_expression_programming&oldid=1329878134 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมแบบหลายนิพจน์

การเขียนโปรแกรมแบบหลายนิพจน์ (MEP) เป็นอัลกอริทึมเชิงวิวัฒนาการสำหรับการสร้างฟังก์ชันทางคณิตศาสตร์ที่อธิบายชุดข้อมูลที่กำหนด MEP เป็น รูปแบบหนึ่ง ของการเขียนโปรแกรมเชิงพันธุกรรม...

การเป็นตัวแทน

โครโมโซม MEP คืออาร์เรย์ของคำสั่งที่แสดงในรูป แบบรหัสสามแอดเดรส

ตัวอย่างโปรแกรม MEP

นี่คือโครโมโซม MEP อย่างง่าย (ป้ายกำกับทางด้านซ้ายไม่ใช่ส่วนหนึ่งของโครโมโซม):

การคำนวณความเหมาะสม

เมื่อมีการประเมินโครโมโซมแล้ว จะไม่ชัดเจนว่าคำสั่งใดจะให้ผลลัพธ์ของโปรแกรม ในหลายกรณี จะได้ชุดโปรแกรมหลายโปรแกรม ซึ่งบางโปรแกรมอาจไม่เกี่ยวข้องกันเลย (ไม่มีคำสั่งร่วมกัน)