ผลต่างระหว่างรุ่นของ "กลยุทธ์เชิงวิวัฒนาการ"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Nullzerobot (คุย | ส่วนร่วม)
เก็บกวาด
Billiska (คุย | ส่วนร่วม)
→‎รหัสเทียมของกลยุทธ์เชิงวิวัฒนาการ: จัดเรียงใหม่ให้อ่านง่าย ไม่ได้เปลี่ยนเนื้อหา
บรรทัด 33:
 
== รหัสเทียมของกลยุทธ์เชิงวิวัฒนาการ ==
Input: μ,λ,ProblemSize //จำนวนพ่อแม่,จำนวนลูก,ขนาดปัญหา<br />
Output: S[best] //คำตอบที่ดีที่สุดของปัญหา<br />
 
Input: μ,λ,ProblemSize //จำนวนพ่อแม่,จำนวนลูก,ขนาดปัญหา<br />
Population <= InitialPopulation(μ,ProblemSize)<br />
Output: S[best] //คำตอบที่ดีที่สุดของปัญหา<br />
S[best] <= GetBest(Population,1)<br />
 
Population <= InitialPopulation(μ,ProblemSize)<br />
While(NotStopCondition())<br />
S[best] <= GetBest(Population,1)<br />
children <= empty set<br />
 
While(NotStopCondition())<br />
for(i=0 to λ) //วนแก้ปัญหาตามจำนวนลูก<br />
children <= empty set<br />
Parent[i] <= GetParent(Population,i)<br />
S[i] <= empty set<br />
for(i=0 to λ) //วนแก้ปัญหาตามจำนวนลูก<br />
S[iProblem] <= Mutate(P[iProblem],P[iStrategy]) //เกิดการกลายพันธุ์ของปัญหา<br />
Parent[i] <= GetParent(Population,i)<br />
S[iStrategy] <= Mutate(P[iStrategy]) //เกิดการกลายพันธุ์ของกลยุทธ์<br />
S[i] <= empty set<br />
Children <= S[i] //ได้ลูกจากการกลายพันธุ์ของรุ่นพ่อแม่<br />
S[iProblem] <= Mutate(P[iProblem],P[iStrategy]) //เกิดการกลายพันธุ์ของปัญหา<br />
 
S[iStrategy] <= Mutate(P[iStrategy]) //เกิดการกลายพันธุ์ของกลยุทธ์<br />
End<br />
Children <= S[i] //ได้ลูกจากการกลายพันธุ์ของรุ่นพ่อแม่<br />
 
EvaluatePopulation(Children)<br />
S[best] <= GetBest(Children+S[best],1)<br />
Population <= SelectBest(Population,Children,μ)<br />
End<br />
return S[best] //ส่งค่าคำตอบที่ดีที่สุดออกไป
 
return S[best] //ส่งค่าคำตอบที่ดีที่สุดออกไป
 
== สัญกรณ์ของกลยุทธ์เชิงวิวัฒนาการ ==