<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - answers and comments on Question, optimization Method (PSO)</title>
    <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO</link>
    <language>en-us</language>
    <copyright>2026 Maplesoft, A Division of Waterloo Maple Inc.</copyright>
    <generator>Maplesoft Document System</generator>
    <lastBuildDate>Wed, 10 Jun 2026 20:49:53 GMT</lastBuildDate>
    <pubDate>Wed, 10 Jun 2026 20:49:53 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest answers and comments added to the Question, optimization Method (PSO)</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - answers and comments on Question, optimization Method (PSO)</title>
      <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO</link>
    </image>
    <item>
      <title>sound interesting...could</title>
      <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO?ref=Feed:MaplePrimes:optimization Method (PSO):Comments#answer65138</link>
      <itunes:summary>&lt;p&gt;sound interesting...could you please post the algorithm ? &amp;nbsp;&lt;/p&gt;
&lt;p&gt;It might be picked up by some smart Maple person :-) &amp;nbsp;&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;sound interesting...could you please post the algorithm ? &amp;nbsp;&lt;/p&gt;
&lt;p&gt;It might be picked up by some smart Maple person :-) &amp;nbsp;&lt;/p&gt;</description>
      <guid>65138</guid>
      <pubDate>Sat, 27 Jun 2009 16:52:59 Z</pubDate>
      <itunes:author>alex_01</itunes:author>
      <author>alex_01</author>
    </item>
    <item>
      <title>hi ahmed
I am studying on pso. one of my best frie...</title>
      <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO?ref=Feed:MaplePrimes:optimization Method (PSO):Comments#answer152036</link>
      <itunes:summary>&lt;p&gt;hi ahmed&lt;/p&gt;
&lt;p&gt;I am studying on pso. one of my best friend in france encourege me to work&amp;nbsp;this area&lt;/p&gt;
&lt;p&gt;I worked with maple soft&amp;nbsp; but i have started pso &amp;nbsp;for a few days&amp;nbsp;and i feel pso is defficult. could you help me when i need you.my email adress is &lt;a href="mailto:esmaeilsedghi1348@gmail.com"&gt;esmaeilsedghi1348@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;best regard&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;hi ahmed&lt;/p&gt;
&lt;p&gt;I am studying on pso. one of my best friend in france encourege me to work&amp;nbsp;this area&lt;/p&gt;
&lt;p&gt;I worked with maple soft&amp;nbsp; but i have started pso &amp;nbsp;for a few days&amp;nbsp;and i feel pso is defficult. could you help me when i need you.my email adress is &lt;a href="mailto:esmaeilsedghi1348@gmail.com"&gt;esmaeilsedghi1348@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;best regard&lt;/p&gt;</description>
      <guid>152036</guid>
      <pubDate>Sun, 22 Sep 2013 02:16:31 Z</pubDate>
      <itunes:author>esmaeil</itunes:author>
      <author>esmaeil</author>
    </item>
    <item>
      <title>PSO</title>
      <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO?ref=Feed:MaplePrimes:optimization Method (PSO):Comments#comment65139</link>
      <itunes:summary>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DEAR,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The algorithm of Partical Swarm Optimization:&lt;/p&gt;
&lt;p&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;In PSO a number of simple entities&amp;mdash;the particles&amp;mdash;are placed in the search space ofsome problem or function, and each evaluates the objective function at its current location.Each particle then determines its movement through the search space by combining some aspect of the history of its own current and best (best-fitness) locations with those of one or more members of the swarm, with some random perturbations. The next iteration takes place after all particles have been moved. Eventually the swarm as a whole, like a flock of birds collectively foraging for food, is likely to move close to an optimum of the fitness function.&lt;/p&gt;
&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;Each individual in the particle swarm is composed of three&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;D&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;-dimensional vectors, where &lt;/font&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p align="left"&gt;&lt;font face="Times-Roman" size="2"&gt;D &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;best position &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, and the velocity &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. The current position &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;can be considered as a set of coordinates describing a point in space. On each iteration of the algorithm, the current position is evaluated as a problem solution. If that position is better than any that has been found so far, then the coordinates are stored in the second vector, &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. The value of the best function result so far is stored in a variable that can be called &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;(for &amp;ldquo;previous best&amp;rdquo;), for comparison on later iterations. The objective, of course, is to keep finding better positions and updating &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;and &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. New points are chosen by adding &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;coordinates to &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, and the algorithm operates by adjusting &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, which can effectively be seen as a step size.&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;font face="Times-Roman" size="2"&gt;of the particles through their interactions. In any case, populations are organized according to some sort of communication structure or topology, often thought of as a social network. The topology typically consists of bidirectional edges connecting pairs of particles, so that if &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;j &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is in &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;i&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;&amp;rsquo;s neighborhood, &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is also in &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;j &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;&amp;rsquo;s. Each particle communicates with some other particles and is affected by the best point found by any member of its topological neighborhood. his is just the vector &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;for that best neighbor, which we will denote with &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;g &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. The potential kinds of population &amp;ldquo;social networks&amp;rdquo; are hugely varied, but in practice certain types have been used more frequently.&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;In the particle swarm optimization process, the velocity of each particle is iteratively adjusted so that the particle stochastically oscillates around &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;and &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;g &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;locations. The (original) process for implementing PSO is as in Algorithm&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;b&gt;&lt;font face="Times-Roman" size="2"&gt;Original PSO.&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;D &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;dimensions in the search space.&lt;/font&gt;&lt;b&gt;&lt;font face="Times-Bold" size="2"&gt;loop&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;3: For each particle, evaluate the desired optimization fitness function in&lt;/p&gt;
&lt;p align="left"&gt;4: Compare particle&amp;rsquo;s fitness evaluation with its&lt;/p&gt;
&lt;p align="left"&gt;5: Identify the particle in the neighborhood with the best success so far, and assign itsindex to the variable&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;D &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;variables.&lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. If current value is better than &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, then set &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;equal to the current value, and &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;equal to the current location &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;in &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;D&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;-dimensional space.&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;6: Change the velocity and position of the particle according to the following equation:&lt;/p&gt;
&lt;/font&gt;&lt;font lang="JA" face="MTEX" size="2"&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;larr; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+ &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;U(&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;1&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;)&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;otimes;&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;( &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;minus; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;)&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+ &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;U(&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;2&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;)&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;otimes;&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;( &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;g &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;minus; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;),&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;7: If a criterion is met (usually a sufficiently good fitness or a maximum number ofiterations), exit loop.&lt;/p&gt;
&lt;p align="left"&gt;8:&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;larr; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+ &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;(1)&lt;/font&gt;&lt;b&gt;&lt;font face="Times-Bold" size="2"&gt;end loop&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;Notes:&lt;/p&gt;
&lt;p align="left"&gt;&amp;ndash;&lt;/p&gt;
&lt;p align="left"&gt;randomly generated at each iteration and for each particle.&lt;/p&gt;
&lt;p align="left"&gt;&amp;ndash;&lt;/p&gt;
&lt;p align="left"&gt;&amp;ndash; In the original version of PSO, each component of&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;U(&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;) &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;represents a vector of random numbers uniformly distributed in &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;[&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;] &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;which is&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;otimes; &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is component-wise multiplication.&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is kept within the range&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;
&lt;p&gt;[&amp;minus;&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;V&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;max&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;V&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;max&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;]&lt;/font&gt;
&lt;p&gt;thanks.&lt;/p&gt;
&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="left"&gt;Algorithm&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;1: Initialize a population array of particles with random positions and velocities on&lt;/p&gt;
&lt;p align="left"&gt;2:&lt;/p&gt;
&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p align="left"&gt;The particle swarm is more than just a collection of particles. A particle by itself hasalmost no power to solve any problem; progress occurs only when the particles interact.&amp;nbsp;Problem solving is a population-wide phenomenon, emerging from the individual behaviors&lt;/p&gt;
&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DEAR,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The algorithm of Partical Swarm Optimization:&lt;/p&gt;
&lt;p&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;In PSO a number of simple entities&amp;mdash;the particles&amp;mdash;are placed in the search space ofsome problem or function, and each evaluates the objective function at its current location.Each particle then determines its movement through the search space by combining some aspect of the history of its own current and best (best-fitness) locations with those of one or more members of the swarm, with some random perturbations. The next iteration takes place after all particles have been moved. Eventually the swarm as a whole, like a flock of birds collectively foraging for food, is likely to move close to an optimum of the fitness function.&lt;/p&gt;
&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;Each individual in the particle swarm is composed of three&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;D&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;-dimensional vectors, where &lt;/font&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p align="left"&gt;&lt;font face="Times-Roman" size="2"&gt;D &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;best position &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, and the velocity &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. The current position &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;can be considered as a set of coordinates describing a point in space. On each iteration of the algorithm, the current position is evaluated as a problem solution. If that position is better than any that has been found so far, then the coordinates are stored in the second vector, &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. The value of the best function result so far is stored in a variable that can be called &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;(for &amp;ldquo;previous best&amp;rdquo;), for comparison on later iterations. The objective, of course, is to keep finding better positions and updating &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;and &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. New points are chosen by adding &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;coordinates to &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, and the algorithm operates by adjusting &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, which can effectively be seen as a step size.&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;font face="Times-Roman" size="2"&gt;of the particles through their interactions. In any case, populations are organized according to some sort of communication structure or topology, often thought of as a social network. The topology typically consists of bidirectional edges connecting pairs of particles, so that if &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;j &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is in &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;i&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;&amp;rsquo;s neighborhood, &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is also in &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;j &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;&amp;rsquo;s. Each particle communicates with some other particles and is affected by the best point found by any member of its topological neighborhood. his is just the vector &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;for that best neighbor, which we will denote with &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;g &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. The potential kinds of population &amp;ldquo;social networks&amp;rdquo; are hugely varied, but in practice certain types have been used more frequently.&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;In the particle swarm optimization process, the velocity of each particle is iteratively adjusted so that the particle stochastically oscillates around &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;and &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;g &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;locations. The (original) process for implementing PSO is as in Algorithm&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;b&gt;&lt;font face="Times-Roman" size="2"&gt;Original PSO.&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;D &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;dimensions in the search space.&lt;/font&gt;&lt;b&gt;&lt;font face="Times-Bold" size="2"&gt;loop&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;3: For each particle, evaluate the desired optimization fitness function in&lt;/p&gt;
&lt;p align="left"&gt;4: Compare particle&amp;rsquo;s fitness evaluation with its&lt;/p&gt;
&lt;p align="left"&gt;5: Identify the particle in the neighborhood with the best success so far, and assign itsindex to the variable&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;D &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;variables.&lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;. If current value is better than &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;, then set &lt;/font&gt;&lt;i&gt;&lt;font face="Times-Italic" size="2"&gt;pbest&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;equal to the current value, and &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;equal to the current location &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;in &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;D&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;-dimensional space.&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;6: Change the velocity and position of the particle according to the following equation:&lt;/p&gt;
&lt;/font&gt;&lt;font lang="JA" face="MTEX" size="2"&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;larr; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+ &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;U(&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;1&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;)&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;otimes;&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;( &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;minus; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;)&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+ &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;U(&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;2&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;)&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;otimes;&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;( &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;p&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;g &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;minus; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;),&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;7: If a criterion is met (usually a sufficiently good fitness or a maximum number ofiterations), exit loop.&lt;/p&gt;
&lt;p align="left"&gt;8:&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;larr; &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;x&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+ &lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;(1)&lt;/font&gt;&lt;b&gt;&lt;font face="Times-Bold" size="2"&gt;end loop&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;
&lt;p align="left"&gt;Notes:&lt;/p&gt;
&lt;p align="left"&gt;&amp;ndash;&lt;/p&gt;
&lt;p align="left"&gt;randomly generated at each iteration and for each particle.&lt;/p&gt;
&lt;p align="left"&gt;&amp;ndash;&lt;/p&gt;
&lt;p align="left"&gt;&amp;ndash; In the original version of PSO, each component of&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;U(&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="MTMI" size="2"&gt;) &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;represents a vector of random numbers uniformly distributed in &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;[&lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;0&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&amp;phi;&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;] &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;which is&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;&amp;otimes; &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is component-wise multiplication.&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;v&lt;/font&gt;&lt;font face="MTMI" size="1"&gt;i &lt;/font&gt;&lt;font face="Times-Roman" size="2"&gt;is kept within the range&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;
&lt;p&gt;[&amp;minus;&lt;/p&gt;
&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;V&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;max&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;,&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;+&lt;/font&gt;&lt;i&gt;&lt;font face="MTMI" size="2"&gt;V&lt;/font&gt;&lt;font face="Times-Roman" size="1"&gt;max&lt;/font&gt;&lt;font lang="JA" face="MTSYN" size="2"&gt;]&lt;/font&gt;
&lt;p&gt;thanks.&lt;/p&gt;
&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="left"&gt;Algorithm&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;1: Initialize a population array of particles with random positions and velocities on&lt;/p&gt;
&lt;p align="left"&gt;2:&lt;/p&gt;
&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p align="left"&gt;The particle swarm is more than just a collection of particles. A particle by itself hasalmost no power to solve any problem; progress occurs only when the particles interact.&amp;nbsp;Problem solving is a population-wide phenomenon, emerging from the individual behaviors&lt;/p&gt;
&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;</description>
      <guid>65139</guid>
      <pubDate>Mon, 29 Jun 2009 08:44:26 Z</pubDate>
      <itunes:author>ahmedluss</itunes:author>
      <author>ahmedluss</author>
    </item>
    <item>
      <title>PSO</title>
      <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO?ref=Feed:MaplePrimes:optimization Method (PSO):Comments#comment65140</link>
      <itunes:summary>&lt;p&gt;Dear,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I&amp;nbsp;have a program written using Matlab for Partical Swarm Optimization, how can I change it into a program written using Maple.&lt;/p&gt;
&lt;p&gt;the program:&lt;/p&gt;
&lt;p&gt;% THE&lt;br /&gt;
% MATLAB&lt;/p&gt;
&lt;p&gt;function [xmin, fxmin, iter] = PSO&lt;/p&gt;
&lt;p&gt;%%%&lt;br /&gt;
success = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PopSize = 20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
MaxIt = 5000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
iter = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;fevals = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
maxw = 1.2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;minw = 0.1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;weveryit = floor(0.75*MaxIt);&amp;nbsp;&lt;br /&gt;
c1 = 0.5;&amp;nbsp;&lt;br /&gt;
c2 = 0.5;&amp;nbsp;&lt;br /&gt;
inertdec = (maxw-minw)/weveryit;&lt;br /&gt;
w = maxw;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
f = &amp;ldquo;DeJong&amp;rdquo;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
dim = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;upbnd = 5;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;wbnd = &amp;ndash;5;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
GM = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
ErrGoal = 1e&amp;ndash;3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;%&amp;nbsp;Initializing&amp;nbsp;&lt;br /&gt;
popul = rand(dim, PopSize)*(upbnd-lwbnd) + lwbnd;&lt;br /&gt;
vel = rand(dim, PopSize);&lt;/p&gt;
&lt;p&gt;%Evaluate&amp;nbsp;&lt;br /&gt;
for i = 1:PopSize,&lt;br /&gt;
fpopul(i) = feval(f, popul(:,i));&lt;br /&gt;
fevals = fevals + 1;&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;%&amp;nbsp;Initializing&amp;nbsp;&lt;br /&gt;
% values&lt;br /&gt;
bestpos = popul;&lt;br /&gt;
fbestpos = fpopul;&lt;/p&gt;
&lt;p&gt;% Finding &lt;br /&gt;
[fbestpart,g] = min(fpopul);&lt;br /&gt;
lastbpf = fbestpart;&lt;/p&gt;
&lt;p&gt;% SWARM EVOLUTION LOOP ? START ?&lt;br /&gt;
while (success == 0) &amp;amp; (iter &amp;lt; MaxIt),&lt;br /&gt;
iter = iter + 1;&lt;br /&gt;
% Update the value of the inertia weight w&lt;br /&gt;
if (iter&amp;lt;=weveryit)&lt;br /&gt;
w = maxw &amp;ndash; (iter&amp;ndash;1)?inertdec;&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;% VELOCITY UPDATE&lt;br /&gt;
for i=1:PopSize,&lt;br /&gt;
A(:,i) = bestpos(:,g);&lt;br /&gt;
end&lt;br /&gt;
R1 = rand(dim, PopSize);&lt;br /&gt;
R2 = rand(dim, PopSize);&lt;br /&gt;
vel = w?vel + c1?R1.?(bestpos-popul) + c2?R2.?(A-popul);&lt;/p&gt;
&lt;p&gt;%&lt;/p&gt;
&lt;p&gt;popul = popul + vel;&lt;/p&gt;
&lt;p&gt;% Evaluate the new swarm&lt;br /&gt;
for i = 1:PopSize,&lt;br /&gt;
fpopul(i) = feval(f,popul(:, i));&lt;br /&gt;
fevals = fevals + 1;&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;% Updating&amp;nbsp;&lt;br /&gt;
changeColumns = fpopul &amp;lt; fbestpos;&lt;br /&gt;
fbestpos = fbestpos.*(~changeColumns) + fpopul.*changeColumns;&lt;br /&gt;
bestpos(:, find(changeColumns)) = popul(:, find(changeColumns));&lt;/p&gt;
&lt;p&gt;% Updating&lt;br /&gt;
[fbestpart, g] = min(fbestpos);&lt;/p&gt;
&lt;p&gt;% Checking&amp;nbsp;&lt;br /&gt;
%if&amp;nbsp;&lt;br /&gt;
if abs(fbestpart-GM) &amp;lt;= ErrGoal&lt;br /&gt;
success = 1;&lt;br /&gt;
else&lt;br /&gt;
lastbpf = fbestpart;&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
%&amp;nbsp; LOOP ? END ?&lt;br /&gt;
% Output &lt;br /&gt;
xmin = popul(:,g);&lt;br /&gt;
fxmin = fbestpos(g);&lt;/p&gt;
&lt;p&gt;function DeJong=DeJong(x)&lt;br /&gt;
DeJong = sum(x.?2);&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you so much&lt;/p&gt;
&lt;p&gt;Ahmed&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;Dear,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I&amp;nbsp;have a program written using Matlab for Partical Swarm Optimization, how can I change it into a program written using Maple.&lt;/p&gt;
&lt;p&gt;the program:&lt;/p&gt;
&lt;p&gt;% THE&lt;br /&gt;
% MATLAB&lt;/p&gt;
&lt;p&gt;function [xmin, fxmin, iter] = PSO&lt;/p&gt;
&lt;p&gt;%%%&lt;br /&gt;
success = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PopSize = 20;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
MaxIt = 5000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
iter = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;fevals = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
maxw = 1.2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;minw = 0.1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;weveryit = floor(0.75*MaxIt);&amp;nbsp;&lt;br /&gt;
c1 = 0.5;&amp;nbsp;&lt;br /&gt;
c2 = 0.5;&amp;nbsp;&lt;br /&gt;
inertdec = (maxw-minw)/weveryit;&lt;br /&gt;
w = maxw;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
f = &amp;ldquo;DeJong&amp;rdquo;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
dim = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;upbnd = 5;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;wbnd = &amp;ndash;5;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
GM = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
ErrGoal = 1e&amp;ndash;3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;%&amp;nbsp;Initializing&amp;nbsp;&lt;br /&gt;
popul = rand(dim, PopSize)*(upbnd-lwbnd) + lwbnd;&lt;br /&gt;
vel = rand(dim, PopSize);&lt;/p&gt;
&lt;p&gt;%Evaluate&amp;nbsp;&lt;br /&gt;
for i = 1:PopSize,&lt;br /&gt;
fpopul(i) = feval(f, popul(:,i));&lt;br /&gt;
fevals = fevals + 1;&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;%&amp;nbsp;Initializing&amp;nbsp;&lt;br /&gt;
% values&lt;br /&gt;
bestpos = popul;&lt;br /&gt;
fbestpos = fpopul;&lt;/p&gt;
&lt;p&gt;% Finding &lt;br /&gt;
[fbestpart,g] = min(fpopul);&lt;br /&gt;
lastbpf = fbestpart;&lt;/p&gt;
&lt;p&gt;% SWARM EVOLUTION LOOP ? START ?&lt;br /&gt;
while (success == 0) &amp;amp; (iter &amp;lt; MaxIt),&lt;br /&gt;
iter = iter + 1;&lt;br /&gt;
% Update the value of the inertia weight w&lt;br /&gt;
if (iter&amp;lt;=weveryit)&lt;br /&gt;
w = maxw &amp;ndash; (iter&amp;ndash;1)?inertdec;&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;% VELOCITY UPDATE&lt;br /&gt;
for i=1:PopSize,&lt;br /&gt;
A(:,i) = bestpos(:,g);&lt;br /&gt;
end&lt;br /&gt;
R1 = rand(dim, PopSize);&lt;br /&gt;
R2 = rand(dim, PopSize);&lt;br /&gt;
vel = w?vel + c1?R1.?(bestpos-popul) + c2?R2.?(A-popul);&lt;/p&gt;
&lt;p&gt;%&lt;/p&gt;
&lt;p&gt;popul = popul + vel;&lt;/p&gt;
&lt;p&gt;% Evaluate the new swarm&lt;br /&gt;
for i = 1:PopSize,&lt;br /&gt;
fpopul(i) = feval(f,popul(:, i));&lt;br /&gt;
fevals = fevals + 1;&lt;br /&gt;
end&lt;/p&gt;
&lt;p&gt;% Updating&amp;nbsp;&lt;br /&gt;
changeColumns = fpopul &amp;lt; fbestpos;&lt;br /&gt;
fbestpos = fbestpos.*(~changeColumns) + fpopul.*changeColumns;&lt;br /&gt;
bestpos(:, find(changeColumns)) = popul(:, find(changeColumns));&lt;/p&gt;
&lt;p&gt;% Updating&lt;br /&gt;
[fbestpart, g] = min(fbestpos);&lt;/p&gt;
&lt;p&gt;% Checking&amp;nbsp;&lt;br /&gt;
%if&amp;nbsp;&lt;br /&gt;
if abs(fbestpart-GM) &amp;lt;= ErrGoal&lt;br /&gt;
success = 1;&lt;br /&gt;
else&lt;br /&gt;
lastbpf = fbestpart;&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
%&amp;nbsp; LOOP ? END ?&lt;br /&gt;
% Output &lt;br /&gt;
xmin = popul(:,g);&lt;br /&gt;
fxmin = fbestpos(g);&lt;/p&gt;
&lt;p&gt;function DeJong=DeJong(x)&lt;br /&gt;
DeJong = sum(x.?2);&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you so much&lt;/p&gt;
&lt;p&gt;Ahmed&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>65140</guid>
      <pubDate>Mon, 29 Jun 2009 08:50:19 Z</pubDate>
      <itunes:author>ahmedluss</itunes:author>
      <author>ahmedluss</author>
    </item>
    <item>
      <title>@ahmedluss&amp;nbsp;

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Do yo...</title>
      <link>http://www.mapleprimes.com/questions/37108-Optimization-Method-PSO?ref=Feed:MaplePrimes:optimization Method (PSO):Comments#comment260555</link>
      <itunes:summary>&lt;p&gt;&lt;a href="/questions/37108-Optimization-Method-PSO#comment65140"&gt;@ahmedluss&lt;/a&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Do you have the parallel version of the pso code. Thank you&lt;/p&gt;
</itunes:summary>
      <description>&lt;p&gt;&lt;a href="/questions/37108-Optimization-Method-PSO#comment65140"&gt;@ahmedluss&lt;/a&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Do you have the parallel version of the pso code. Thank you&lt;/p&gt;
</description>
      <guid>260555</guid>
      <pubDate>Wed, 10 Jul 2019 04:37:46 Z</pubDate>
      <itunes:author>radaar</itunes:author>
      <author>radaar</author>
    </item>
  </channel>
</rss>