Max-plus algebra eigenvalue and eigenvector
[eigvalMode,x,criticalcircuit] = policyIteration(A)
The function valid for both an irreducible and a reducible matrix A since it has least one non-zero entry per row, and matrix A (:,:,1) contains no circuits. If the condition is not satisfied the function returns error. This function determine matrix eigvalmode and x such that D⊗m⊗x=A (D⊗-1)⊗D⊗m⊗x where diag(D)=eigvalmode using Policy Iteration Algorithm.
For details see: J.van der Woude (2000); "On the behaviour in classes of min-max-plus system", page 33.
A =[-%inf 3. -%inf -%inf 7. -%inf; 2. -%inf 6. -%inf 7. 2.; -%inf 7. 8. 9. -%inf -%inf; -%inf -%inf -%inf 1. 2. -%inf; 8. -%inf 7. -%inf -%inf 2.; 0. -%inf -%inf 6. 5. -%inf]; C=maxpluszeros(6,6); C(:,:,2)=A; [eigvalmode,x,criticalcircuit] = policyIteration(A) //or yo can write [eigvalmodeA,xA] = policyIteration(C) B = [12. -%inf -%inf 19. 13. 5. 15. -%inf -%inf -%inf; 11. 10. 16. 9. -%inf 13. 6. 8. 5. 18.; -%inf 8. -%inf -%inf 19. -%inf 8. -%inf 4. -%inf; 17. -%inf 16. -%inf -%inf 5. -%inf 17. 16. 19.; -%inf -%inf 4. -%inf 8. -%inf 20. -%inf 16. 14.; 6. 2. 7. -%inf -%inf -%inf -%inf -%inf 10. 19.; -%inf 1. -%inf -%inf 9. -%inf 14. 5. -%inf 1.; 19. -%inf 9. 19. 4. 20. 18. 10. 16. 11.; 5. -%inf 13. 15. -%inf -%inf -%inf 20. 3. -%inf; 18. 15. -%inf -%inf 7. -%inf 13. 9. 15. 6.]; [eigvalmodeB,xB,criticalcircuitB]=policyIteration(B) e=-%inf; C=[e e 16 e e e e e e e; 14 15 18 e e e e e e e; 14 2 e 1 e e e e e e; 17 3 e 12 2 e 3 e e e; 12 e e 1 e e e e e e; e e e e e 8 e e e e; e e e e e e 7 19 e e; e e e e e e e e 2 e; e e e e e e e 13 e e; e e e e e 10 7 12 2 5]; [eigvalmodeC,xC,criticalcircuitC]=policyIteration(C) | ![]() | ![]() |