Systeme distribué

Contenu du snippet

programmet Conception d'un programme distribué pour la résolution d'un système d'équation linéaire
et utilse similateur VISIDIA qui exicution Envoyer jeté formé quand un tableau dans lequel E. K est calculée
code
/*


* To change this template, choose Tools | Templates

* and open the template in the editor.

*/
package proje;

import java.awt.event.ActionEvent;
import java.io.*;
import java.util.Collection;
import java.util.LinkedList;
import java.util.Random;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.table.DefaultTableModel;
import visidia.simulation.process.algorithm.Algorithm;
import visidia.simulation.process.criterion.IntegerMessageCriterion;
import visidia.simulation.process.criterion.MessageCriterion;
import visidia.simulation.process.edgestate.MarkedState;
import visidia.simulation.process.edgestate.SyncState;
import visidia.simulation.process.messages.*;

/**
 *


* @author NADJEM

*/
public class PROJE extends Algorithm {

    /**


* @param args the command line arguments

*/
    static MessageType synchronization = new MessageType("synchronization", false, java.awt.Color.blue);
    static MessageType termination = new MessageType("termination", false, java.awt.Color.green);
    static MessageType labels = new MessageType("labels", true);
    private MessageCriterion MessageCriterion;

    public Collection getListTypes() {
        Collection typesList = new LinkedList();
        typesList.add(synchronization);
        typesList.add(labels);
        typesList.add(termination);
        return typesList;
    }
       public static  int mat[][] = new int[3][4];
    public static int tab[][] = new int[3][4];

    public  int v[][] = new int[2][8];
    public  int p[] = new int[2];
    //int [] p; //
    int[] tableau;
    public static int B[] = new int[3];
    public static int t[][]   ; 
    public static NewFrame Frame = new NewFrame();
    Vector neighboursLabel[];
    JFrame frame = new JFrame();

   
    public void r() {

        Integer id = getId();
        e z ;  variable f;
 
        Vector vec = new Vector();
        Vector vec1 = new Vector();
        //int[][] answer = new int[2][getArity()] ;
        int tab1[][] = new int[3][4];

//                             }       
        int a, b,c;

         if (id == 0) {
           
         z= new e();
         vec.add(z);
         
           sendAll(new VectorMessage(vec));
         
        }
        else {
           vec=((VectorMessage) receiveFrom(0)).data();
           z=(e)vec.elementAt(0);
           int R[][]=z.matricAB();
          
            sendTo(0,new StringMessage("ok"));    
          }
        receiveFrom(0);
        for(int k=0;k<mat.length-1;k++){
            if(id==0){        
                
                z= new e();

               int j=k;
                   
                 f=new variable(k,j,getArity());                        
                 vec.add(f);
                        sendAll(new VectorMessage(vec)); 
                        int R[][]=f.thache();
                        for(int i=0;i<2;i++){
                          for(int g=0;g<getArity();g++){
                      Frame.setString(R[i][j]+"|");  
                    }
                }
               
        }else{
        //////////////////////problème Hmaho////////////////////////
                vec=((VectorMessage) receiveFrom(0)).data();
                f=(variable)vec.elementAt(0);
                
//                int answer[][]=f.thache();
//                 answer[1][i]=f.y;

             sendTo(0,new StringMessage("ok"));  

            }
        }
            
    }
    @Override
    public void init() {
        int door;
        int n = getNetSize();
        int m = getArity();
        Integer id = getId();
        boolean run = true; /*


* booleen de fin de l'algorithme

*/
        r();

    }

    @Override
    public Object clone() {

        Frame.setVisible(true);
        PROJE s = new PROJE();
        //int e=getNetSize();
        //Frame.setString(""+e);
        return s;
    }

    public void neighbours() {
        int[][] tab1 = new int[getNetSize()][getNetSize()];
        Integer id = getId();

        //interface graphique   
        for (int i = 0; i < getNetSize(); i++) {

            for (int j = 0; j < tab1.length; j++) {

                if (isOutgoingDoor(j)) {
                    tab1[i][j] = j;
                }
            }
        }

      

        for (int i = 0; i < getNetSize(); i++) {
            Frame.setString("p" + i + "|");
            for (int j = 0; j < tab1.length; j++) {
                // p[i][i]=0;
                Frame.setString(+tab1[i][j] + " | ");

            }
            Frame.setString(" n ");

        }

    }

    public int noeud() {
        int number = getNetSize();
        return number;
    }

    public class e {
 public  int mat[][] = new int[3][3];
    public  int tab[][] = new int[3][4];
        int x , y;
//      
         int[][] Lirefichematrice() {
      

        try {
            File f = new File("D:/fich.txt");
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            try {
                String line = br.readLine();

                while (line != null) {
                    for (int i = 0; i < mat.length; i++) {
                        for (int j = 0; j < mat.length; j++) {
                            mat[i][j] = Integer.parseInt(line);
                          //: System.out.println(i+"   "+j+"  "+mat[i][j]);
                            line = br.readLine();
                        }
                    }
                }

                br.close();
                fr.close();
            } catch (IOException exception) {
                System.out.println("Erreur lors de la lecture : " + exception.getMessage());
            }
        } catch (FileNotFoundException exception) {
            System.out.println("Le fichier n'a pas été trouvé");
        }
return mat;
    }

          int [] LireficheVector() {

        try {
            File f = new File("D:/fich2.txt");
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);

            try {
                String line = br.readLine();

                while (line != null) {
                    for (int i = 0; i < B.length; i++) {
                        //System.out.println("mat["+i+"]["+j+"]=");
                        B[i] = Integer.parseInt(line);
                        //System.out.println (mat[i][j]);
                        line = br.readLine();
                    }

                }

                br.close();
                fr.close();
            } catch (IOException exception) {
                System.out.println("Erreur lors de la lecture : " + exception.getMessage());
            }
        } catch (FileNotFoundException exception) {
            System.out.println("Le fichier n'a pas été trouvé");
        }
return B;
    }

    ///////affichage de la matrice des coùts//////////////
           void AfficheMatrice() {
        Frame.setString("*************************** la matrice A ********************* n ");

        for (int i = 0; i < mat.length; i++) {
            for (int j = 0; j < mat.length; j++) {

                Frame.setString(+mat[i][j] + " | ");
            }
            Frame.setString(" n ");
        }
    }

///////affichage de la matrice des coùts//////////////
             void AfficheVector() {
        Frame.setString("*************************** la vecteur B ********************* n ");

        for (int i = 0; i < B.length; i++) {

            Frame.setString(+B[i] + " | ");

            Frame.setString(" n ");
        }
    }

             int [][] matricAB() {

//    Frame.setString( " n**************************** matrice A+B *********************n "); 
       for(int i=0;i<mat.length;i++){
                        for(int j=0;j<mat.length;j++){
                         tab[i][j]= mat[i][j];
                            // Frame.setString(+ tab[i][j] +" | ");
                        }
                    }
                    for(int i=0;i<mat.length;i++){
                            //j=j+1;
                            tab[i][tab.length]= B[i];
//                             Frame.setString(+ tab[i][j] +" | ");
//                             Frame.setString( " n "); 
                    }return tab;
         
    }

        void AffichematricAB() {
        Frame.setString("*************************** la matrice A+B ********************* n ");

        for (int i = 0; i < mat.length; i++) {
            for (int j = 0; j < mat.length + 1; j++) {

                Frame.setString(+tab[i][j] + " | ");
            }
            Frame.setString(" n ");
        }

    }
    }
      
           
      public class variable {
 
        int [][]v;int [][]f;int x,y,n;
        variable(int x,int y ,int n){
int v[][]=new int [2][getArity()];
            this.x=x;
            this.y=y;
            this.n=n;
        }
        int [][] thache(){
            for(int i=0;i<n;i++){
                v[0][i]=(x);
            }
            
             //for(int i=k+1;i<mat.length;i++){
              for( int i = 0; i < n; i++){
                    y=x+1;
                   
                 v[1][i]=y;
                        if(y==mat.length){
                            break;
                        }
 
             }
            return v;
        }
        
        int[][ ] calcule(){
                for(int i=0;i<getArity();i++){

    for(int j=0;j<mat.length+1;j++){
     f[ v[1][i]][j]=f[ v[1][i]][j]+((f[v[0][i]][j])*(f[ v[1][i]][v[0][i]]/f[v[0][i]][v[0][i]]));
     //System.out.println(""+t[y][j]);
    }}
 return tab;   
}
        void affichcalcule(){
            for (int j = 0; j < mat.length+1 + 1; j++) {

                Frame.setString(+tab[y][j] + " | ");
                Frame.setString(" n ");

            }
            Frame.setString(" n ");
        
        }

      }
      static public void main (String arg [ ])
{
PROJE t=new PROJE() ;
t.r();

}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.