Talk:Spec:particle swarm optimizer

jcfuller 7:44, 03 April 2012 (UTC)  How do you plan to calculate f(x)? GLD will not have a defined f(x) ( or f(x,y,z) ), so how do you plan to calculate that value in real-time?


 * Bharat - The calculation of the objective function takes place in sync (inrinsic sync) using runtime classes
 * jcfuller 21:03, 04 April 2012 (UTC) 
 * Not sure I follow that explanation. 
 * 1) How do you plan to get 'x'? For example, let's say f(P,Q) = w_1 * P_substation + w_2 * Q_substation, then how do you plan to get P & Q from powerflow?

Bharat - User inputs the starting positions for the particles and future positions are determined from the current partcle positions and velocities
 * 2) Why does it require a runtime class, unless you want a more complicated cost function -- assuming that cost function is the same as objective function, which is unclear from documentation.

Bharat - If the objective function is hardcoded, then runtime class is not required.
 * 3) Why is the objective function calculated in sync? How do you know that the values you need will have already been calculated by the sync call?  For example, losses are not calculated until the very end of post sync in powerflow.

Bharat - If PSO is used for minimization of losses, we should not put that objective function in sync. My initial plan is to make PSO work for a linear function. Later we will add complexity to the model.
 * 4) How do you know the objective function will converge to a valid solution in a single iteration (or in this case, in a partial iteration)?

Bharat - PSO only stops at the trial limit and retuns the best value found.
 * 5) If it takes more than one iteration to converge to a solution, what is the PSO's method for continuing or breaking that loop?

Bharat - One possibility might be if PSO has not converged and is not improving at the end of the trial limit then start with the different starting point the next time the PSO is run. If it has not converged and it is improving then start with the final point as a strating point for the next time when the PSO is run. Another possibility is to increase the number of particles and/or trial limit.

jcfuller 7:45, 03 April 2012 (UTC)  The step descriptions need a little clean-up...hard to read.


 * Bharat - I cleaned up the pseudo code for basic PSO. I think step descriptions are clear.

Ftuffner 20:23, 4 April 2012 (UTC) Bharat - defined [1][2] in the references section Bharat- Typefaced the variables (pbest, and gbest) Bharat- Removed (Gas) Bharat - Edited Bharat - Corrected Bharat - j indicates iteration count Bharat - Edited Bharat - It is on the open interval (0,1) Bharat - Bharat - Deleted Bharat - Could not find the correct refernce fo this, but will add it soon. Bharat - Edited Bharat - Edited Bharat - PSO published output is only 1, deleted the second one Bharat - For every time the decision variables are updated in presync, the PSO must go through sync to update the objective function value. After gBest is calculated in postsync the PSO returns to presync in the same time step. The clock advances after PSO complets all the iterations. Bharat - "PSO passes" has been moved up Bharat - Testing and validation is still being finalized and will be updated shortly. Bharat - Chnaged the input variables (number_unknowns</tt>) from 1 to 3, since we will have 3 unknowns in PID
 * 1) Under the "General Description" section, you have references [1][2], but they are never defined.
 * 1) Under the "General Description" section, I'd typeface the variables out so they are clearer.
 * 1) Under the "General Description" section, you may want to eliminate or reconsider the "genetic algorithms" acronym.  "Gas" doesn't look like an acronym and "GAs" looks like a chemical formulation (even though it doesn't fit anything).
 * 1) Under "General Description", the fact that the final output is a "real number" is explicitly called out.  Does this indicate the other terms can potentially be complex or some other form?
 * 1) The "equations" header is spelled wrong.
 * 1) What's j</tt> in your equation 1.1?
 * 1) I'd suggest formatting (1.1) and (1.2) on the page a little differently.  It wasn't clear to me at first that they were two equations (maybe right-justify the label)
 * 1) For equation 1.1 and the pseudo-code below, what are the characteristics of rand</tt>?  It indicates it is uniformly distributed pseudorandom numbers.  What is the range of the distribution?  Since you are explicitly calling it out as pseudorandom (and not just assuming it), are there any considerations on the pseudorandom interval?
 * 1) I'm not too clear how the p</tt> and d</tt> factor into the equations since they are subscripts.  p</tt> also could get a little confusing with pBest</tt>
 * 1) maximum_velocity</tt> is included twice in your PSO inputs table
 * 1) Is a definition or reference to what "Hooke's coefficient" is required for the PSO inputs table?
 * 1) The pseudo code section has some odd things with what looks to be ellipsis ("for each iteration")
 * 1) The tabbing in the pseudo code section gets a little inconsistent in a couple places
 * 1) In the pseudo code, step 4 lists 2 or 3 outputs.  Only 1 was listed in Table 3.
 * 1) For the PSO Timing, how are the outputs expected to be used?  The timing makes it sound like time-step iterations, which may or may not be well suited for what it is controlling.  It may be better to do the full optimization in presync</tt> or sync</tt> with an internal iteration counter.  I'm not sure on this one though since it would depend on the expected application.
 * 1) Should the "PSO passes" section be up with (or before) the pseudo code?
 * 1) The Requirements page lists a PID controller as a use case to test.  You should include an explicit mention (and possible parameter set) of this in your "Testing and Validation" section.  "Validated against MATLAB" is a little too ambiguous in this case.
 * 1) The Requirements page states that the PSO must work on at least 3 input variables.  I don't see this really reflected in the "PSO inputs" table in any of the ranges.

Ftuffner 14:31, 12 April 2012 (UTC)
 * 1) A small suggestion might be to align your "PSO passes" and "Pseudo code for basic PSO" sections.  With them stacked right next to each other and the steps in the pseudo code bolded out, I kept trying to reference them to the 1-5 in the PSO passes section.  This might not really need to be addressed, but just something I noticed while reading it.