คำอธิบาย
โปรแกรม Optimization ด้วย particle swarm optimization (PSO) โดยใช้ MATLAB/PYTHON
An implementation of particle swarm optimization technique for a minimization problem
particle swarm optimization (PSO) เป็นวิธี Swarm Intelligence สำหรับการเพิ่มประสิทธิภาพทั่วโลก ซึ่งแตกต่างจาก Evolutionary Algorithms (EA) อื่นๆ ที่รู้จักกันดี เช่นเดียวกับใน EA ประชากรของโซลูชันที่มีศักยภาพจะถูกใช้เพื่อตรวจสอบพื้นที่การค้นหา แต่ไม่มีตัวดำเนินการที่ได้รับแรงบันดาลใจจากกระบวนการวิวัฒนาการที่นำไปใช้กับประชากรเพื่อสร้างโซลูชันใหม่
ที่มีแนวโน้มดี ใน particle swarm optimization (PSO) อนุภาคแต่ละตัวของประชากรที่เรียกว่าฝูงจะปรับเส้นทางไปยังตำแหน่งที่ดีที่สุดก่อนหน้านี้ของตัวเองและไปยังตำแหน่งที่ดีที่สุดก่อนหน้านี้ที่สมาชิกใดๆ ในละแวกใกล้เคียงทางโทโพโลยีบรรลุได้ ใน particle swarm optimization (PSO) เวอร์ชันทั่วโลก ฝูงทั้งหมดถือเป็นละแวกใกล้เคียง ดังนั้น การแบ่งปันข้อมูลทั่วโลกจึงเกิดขึ้น และอนุภาคได้รับการปกป้องจากการค้นพบและประสบการณ์ก่อนหน้านี้ของเพื่อนร่วมทางอื่นๆ ทั้งหมดในระหว่างการค้นหาภูมิภาคที่มีแนวโน้มดีของภูมิประเทศ
ที่มีแนวโน้มดี ใน particle swarm optimization (PSO) อนุภาคแต่ละตัวของประชากรที่เรียกว่าฝูงจะปรับเส้นทางไปยังตำแหน่งที่ดีที่สุดก่อนหน้านี้ของตัวเองและไปยังตำแหน่งที่ดีที่สุดก่อนหน้านี้ที่สมาชิกใดๆ ในละแวกใกล้เคียงทางโทโพโลยีบรรลุได้ ใน particle swarm optimization (PSO) เวอร์ชันทั่วโลก ฝูงทั้งหมดถือเป็นละแวกใกล้เคียง ดังนั้น การแบ่งปันข้อมูลทั่วโลกจึงเกิดขึ้น และอนุภาคได้รับการปกป้องจากการค้นพบและประสบการณ์ก่อนหน้านี้ของเพื่อนร่วมทางอื่นๆ ทั้งหมดในระหว่างการค้นหาภูมิภาคที่มีแนวโน้มดีของภูมิประเทศ
ความฉลาดแบบกลุ่ม (swarm intelligence) คือกลุ่มพฤติกรรมของระบบแบบกระจายศูนย์ซึ่งถูกนำมาประยุกต์ใช้ในด้านปัญญาประดิษฐ์ ระบบความฉลาดแบบกลุ่มโดยปกติแล้วจะประกอบขึ้นมาด้วย เอเจนต์ ซึ่งสามารถมีปฏิสัมพันธ์กับเอเจนต์ตัวอื่นหรือสภาวะแวดล้อมได้ เอเจนต์ในระบบทุกตัวจะปฏิบัติตัวตามกฎชุดหนึ่ง แม้ว่าจะไม่มีศูนย์สั่งการที่ควบคุมว่าเอเจนต์แต่ละตัวต้องปฏิบัติอย่างไร แต่การที่เอเจนต์แต่ละตัวมีปฏิสัมพันธ์กันก็ก่อให้เกิดรูปแบบความฉลาดในภาพรวมขึ้นมาซึ่งเอเจนต์แต่ละตัวไม่รู้ แรงบันดาลใจที่ช่วยผลักดันความฉลาดแบบกลุ่มนั้นมักจะมาจากธรรมชาติ โดยเฉพาะจากระบบนิเวศวิทยา
การหาค่าเหมาะที่สุดแบบกลุ่มอนุภาคถูกคิดขึ้นโดย Wilson ในปี 1975 นักวิจัยชาวอังกฤษได้กล่าวถึงการหาอาหารร่วมกันของฝูงนกที่ก่อให้เกิดประสบการณ์ในการหาอาหารของนกแต่ละตัวในฝูงทำให้นกตัวอื่นสามารถเข้าถึงแหล่งอาหารได้และทำให้ไม่เกิดการแย่งชิง อาหารระหว่างนกแต่ละตัวภายในฝูง ต่อมาในปี 1987 Raynolds ได้ทาการศึกษาพฤติกรรมในการหาอาหารของฝูงนกพบว่านกแต่ละตัวจะรักษากฎ 3 ประการ คือ กฎการแยกกันเมื่อเข้าใกล้กันมากเกินไป กฎการจัดแนวเพื่อให้นกแต่ละตัวมุ่งไปในทิศทางเดียวกันกับตัวข้างๆ และกฎการประสานงานกันของนกแต่ละตัวเพื่อให้เดินทางไปในตาแหน่งที่มีระยะห่างเดียวกันโดยเฉลี่ยกับเพื่อนที่อยู่ข้าง ๆ กัน และในปี 1995 Kennedy และ Eberhart ได้พัฒนาการศึกษาของ Raynolds โดยการจำลองกระบวนการหาอาหารของนกคือการหาระยะห่างระหว่างอาหารกับตนเอง ของนกแต่ละตัวพร้อมทั้งทำการสื่อสารกับนกในฝูง จากนั้นนกทั้งฝูงจะเลือกบินตามนกตัวที่อยู่ใกล้อาหารมากที่สุด และทำเช่นนี้ไปเรื่อย ๆ จนบินถึงแหล่งอาหาร ทำให้เกิดวิธีการหาค่าเหมาะสุดแบบอนุภาค (PSO) ขึ้นการหาค่าเหมาะสุดแบบกลุ่มอนุภาค (PSO) จะแทนคำตอบที่เป็นไปได้ด้วยตำแหน่งของอนุภาค (นกแต่ละตัว)อนุภาคทุกตัวจะมีค่าฟิตเน็สที่หาได้จากฟังก์ชันฟิตเน็ส(ฟังก์ชันวัตถุประสงค์) ที่ใช้ในการหาค่าเหมาะที่สุด ค่าความเร็วในการเดินทางที่จะเป็นตัวกำกับระยะการเดินทางของอนุภาคโดยอนุภาคทุกตัวจะเดินตามอนุภาคที่อยู่ใกล้ตาแหน่งที่เหมาะที่สุด (gbest) ซึ่งในการเคลื่อนที่แต่ละครั้งอนุภาคจะจดจำตาแหน่งที่ดีที่สุดของตนที่พบมา (pbest) และจะทำการปรับความเร็วด้วยค่าองค์ประกอบความเร่งจากนั้นนำความเร็วที่ปรับแล้วไปหาตำแหน่งที่ดีกว่าที่พบมา