Bonsoir à tous,
je veux faire un programme qui prend comme argument une matrice pxq et renvoie un coefficient particulier (l'équilibre de Nash).
Le but c'est de prendre le coefficient le plus petit de la colonne et le plus grand de la ligne s'il existe.
Voici ma procédure:
equilibre := proc (A::Matrix, p::integer, q::integer)
local i, j, c, l, U, V;
for i to p do l[i] = Row(A, i) end do;
for j to q do c[j] := Col(A, j) end do;
for i to p do U := max(l[i]) end do;
for j to q do V := max(c[j]) end do;
if (U = V) = true then nash = U else Il n'y a pas d'équilibre end if ; end proc;
Probleme: pour la matrice ([1000,2,2000],[1010,2,-3000],[0,1,0]) il me dit qu'il n'y a pas d'équilibre... alors que c'est le coefficient 1 qui est le plus grand de sa ligne et le plus petit de sa colonne.
Je pense que c'est au niveau du
for i from 1 to p do l[i]=Row(A,i); od;
for j from 1 to q do c[j]:=Col(A,j); od;
que ca bloque. Je veux en fait faire apparaitre p vecteurs lignes L[i] et q vecteurs colonnes C[j], puis prendre le coefficient maximum des vecteur lignes et le coefficient minimum des vecteurs lignes.
Ou y a t il une erreur ?
merci de votre aide
-----