Numérotation des lignes :

C PERM21    SOURCE    BP208322  16/06/27    21:16:21     8990                  SUBROUTINE PERM21(N,C,F,ZMIN) c     CALCULE TOUTES LES PERMUTATIONS POSSIBLESc     ET NE RETIENT QUE CELLE DE PLUS BAS COUTc     BP, 2016-06-24       IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM-INC CCOPTIO       INTEGER N,C(N,N),A(N),F(N),Z,ZMIN,T c     INITIALISATION      Z=0      DO I=1,N        A(I)=I        F(I)=I        Z=Z+C(I,I)      ENDDO      ZMIN=Zc       IF(IIMPI.GE.1) WRITE(IOIMP,*) '#',1,' COUT=',Z c     IL Y A NC=N! COMBINAISONS POSSIBLES      NC=1      DO I=2,N         NC = NC * I      ENDDO c     ON BOUCLE SUR LES COMBINAISONS POSSIBLES            DO 1 IC=2,NC         I=N-1   10   IF(A(I).LT.A(I+1)) GO TO 20        I=I-1        IF(I.EQ.0) GO TO 20        GO TO 10    20   J=I+1        K=N    30   T=A(J)        A(J)=A(K)        A(K)=T        J=J+1        K=K-1        IF(J.LT.K) GO TO 30        J=I        IF(J.NE.0) GO TO 40        GOTO 2c       FIN DU PROGRAMME    40   J=J+1        IF(A(J).LT.A(I)) GO TO 40        T=A(I)        A(I)=A(J)        A(J)=T c       CALCUL DU COUT        Z=0        DO I=1,N          Z=Z+C(I,A(I))        ENDDOc         IF(IIMPI.GE.1) WRITE(IOIMP,*) '#',IC,' COUT=',Z        IF(Z.LT.ZMIN) THEN          ZMIN=Z          DO I=1,N            F(I)=A(I)          ENDDO        ENDIF    1  CONTINUE     2  CONTINUE         RETURN      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales