Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correction of function implementation.
authorSébastien Miquée <sebastien.miquee@univ-fcomte.fr>
Mon, 12 Jul 2010 09:47:49 +0000 (11:47 +0200)
committerSébastien Miquée <sebastien.miquee@univ-fcomte.fr>
Mon, 12 Jul 2010 09:47:49 +0000 (11:47 +0200)
Addition of some comments.

src/and/Mapping/Maheve.java

index c466778..a8f0472 100644 (file)
@@ -15,7 +15,7 @@ public class Maheve extends Algo
        private ArrayList<Cluster> sortedCluster = null ;
        private ArrayList<GTask> tasks = null ;
        
        private ArrayList<Cluster> sortedCluster = null ;
        private ArrayList<GTask> tasks = null ;
        
-       
+               
        /**
         * Empty default constructor.
         */
        /**
         * Empty default constructor.
         */
@@ -102,6 +102,8 @@ public class Maheve extends Algo
        {               
                ArrayList<GTask> l1 = sortTasks() ;
                
        {               
                ArrayList<GTask> l1 = sortTasks() ;
                
+               ArrayList<Integer> st = new ArrayList<Integer>() ;
+               
                if( l1 != null && l1.size() > 0 )
                {                       
                        ArrayList<GTask> l2 = new ArrayList<GTask>() ;
                if( l1 != null && l1.size() > 0 )
                {                       
                        ArrayList<GTask> l2 = new ArrayList<GTask>() ;
@@ -112,16 +114,18 @@ public class Maheve extends Algo
                                if( l2.size() == 0 )
                                {
                                        l2.add( l1.get( 0 ) ) ;
                                if( l2.size() == 0 )
                                {
                                        l2.add( l1.get( 0 ) ) ;
+                                       st.add( l1.get( 0 ).getNum() ) ;
                                }
                                
                                while( l2.size() > 0 )
                                {
                                        l1.remove( l2.get( 0 ) ) ;
                                }
                                
                                while( l2.size() > 0 )
                                {
                                        l1.remove( l2.get( 0 ) ) ;
-                                       tmp = addTask( l2.remove( 0 ), l1 ) ;
+                                       tmp = addTask( l2.remove( 0 ), l1, st ) ;
                                        
                                        for( int i = 0 ; i < tmp.size() ; i++ )
                                        {
                                                l2.add( tmp.get( i ) ) ;
                                        
                                        for( int i = 0 ; i < tmp.size() ; i++ )
                                        {
                                                l2.add( tmp.get( i ) ) ;
+                                               st.add( tmp.get( i ).getNum() ) ;
                                        }
                                }
                        }
                                        }
                                }
                        }
@@ -129,7 +133,8 @@ public class Maheve extends Algo
        }
        
        
        }
        
        
-       private ArrayList<GTask> addTask(GTask _gt, ArrayList<GTask> _ar) 
+       private ArrayList<GTask> addTask(GTask _gt, ArrayList<GTask> _ar, 
+                                                                        ArrayList<Integer> _st )
        {
        
                ArrayList<GTask> ret = null ;
        {
        
                ArrayList<GTask> ret = null ;
@@ -148,24 +153,33 @@ public class Maheve extends Algo
                        
                        ArrayList<Integer> dep = new ArrayList<Integer>() ;
                        
                        
                        ArrayList<Integer> dep = new ArrayList<Integer>() ;
                        
+                       // ** Retrieving dependencies and eliminating tasks already treated 
+                       // ** or in instance to be treated. **//
                        for( int i = 0 ; i < _gt.getDependencies().size() ; i++ )
                        {
                        for( int i = 0 ; i < _gt.getDependencies().size() ; i++ )
                        {
-                               dep.add( _gt.getDependencies().get( i ).getNum() ) ;
+                               if( ! _st.contains( _gt.getDependencies().get( i ).getNum() ) )
+                               {
+                                       dep.add( _gt.getDependencies().get( i ).getNum() ) ;
+                               }
                        }
                        
                        }
                        
+
+                       // ** Searching dependencies in sorted tasks list ** //
                        for( int i = 0 ; i < _ar.size() ; i++ )
                        {
                                num = _ar.get( i ).getNum() ;
                                
                        for( int i = 0 ; i < _ar.size() ; i++ )
                        {
                                num = _ar.get( i ).getNum() ;
                                
-                               for( int j = 0 ; j < dep.size() ; j++ )
+                               if( dep.contains( num ) ) 
                                {
                                {
-                                       if( num == dep.get( j ) )
-                                       {
+//                             for( int j = 0 ; j < dep.size() ; j++ )
+//                             {
+//                                     if( num == dep.get( j ) )
+//                                     {
                                                ret.add( _ar.remove( i ) ) ;
                                                cmpt++ ;
                                                ret.add( _ar.remove( i ) ) ;
                                                cmpt++ ;
-                                               dep.remove( j ) ;
-                                               break ;
-                                       }
+//                                             dep.remove( j ) ;
+//                                             break ;
+//                                     }
                                }
                                
                                if( cmpt == nbDep )
                                }
                                
                                if( cmpt == nbDep )