Here is a slightly more comprehensible form of the power method code I
posted yesterday.  It will correctly calculate the principal eigenvectors
in Coyle's paper.

mp=:+/ . *
normalize=:%(>./@:|)
iterate=:normalize@:mp
init=:[: ? # # 0:
power=:13 : 'y.&iterate^:_ init y.'

rod=. >(1,(%3),%9);(3,1,%3);9 3 1 NB. "Replication of detail", p. 7

   (%+/) power rod
0.0769231 0.230769 0.692308

0.077 0.231 0.692 NB. Coyle


Tarmo Veskioja wrote:
> Bill,
>
> I can reproduce Coyle's results (see 'm weigh_iter 5') if I use the
> first iteration of finding the right eigenvector - this has been the
> tradition in AHP, at least in the early days.

Interesting.  Is this because of technical limitations or a philosophical
perspective?

> There are ongoing discussions between using inexact vs exact weights and
> between using left or right eigenvectors. Saaty prefers right
> eigenvector. If the pairwise comparisons have been made by people, then
> the differences (exact / inexact, left/right) are usually so small that
> the results are more sensitive to subjective assessments.
>

Whether you should be looking at left or right eigenvectors depends
basically on whether you think of your matrices multiplying on the left or
right.  In any case, the left eigenvalues of A are the right eigenvalues
of |:A, so you don't need a separate method.


> I have added a verb for calculating the exact error of each pairwise
> comparison and a verb for "correcting" pairwise comparisons. If the
> pairwise comparisons have been made by people, then the same people
> should usually correct their mistakes and automatic correction should be
> prohibited.
>
> Anyways, the real fun begins with incomplete comparison matrices.
>
> Hope this helps,
> Tarmo
>

Thanks.

John


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to