コード例 #1
0
ファイル: QAPTester.cs プロジェクト: jswk/GA-BO
        // results in "qap/results/testName"
        public void test(string testName)
        {
            QAPProblem problem = problemFromFile(testName);

            //configuration
            GlobalConfiguration globalConfig = new GlobalConfiguration(){maximize = false};
            globalConfig.configurations = new List<IslandConfiguration>();
            globalConfig.configurations.Add(new IslandConfiguration(algorithm.enums.EvolutionStrategy.Tournament, 0.01, 0.1, 20, 10, 1));
            globalConfig.configurations.Add(new IslandConfiguration(algorithm.enums.EvolutionStrategy.Tournament, 0.02, 0.05, 30, 10, 1));
            globalConfig.configurations.Add(new IslandConfiguration(algorithm.enums.EvolutionStrategy.Tournament, 0.05, 0.02, 20, 10, 1));
            globalConfig.configurations.Add(new IslandConfiguration(algorithm.enums.EvolutionStrategy.Tournament, 0.1, 0.01, 30, 10, 1));
            globalConfig.connections = new List<int>[globalConfig.configurations.Count];
            for(int i=0;i<globalConfig.configurations.Count;i++)
                globalConfig.connections[i] = new List<int>();
            //globalConfig.connections[0].Add(3);
            //globalConfig.connections[1].Add(3);
            //globalConfig.connections[2].Add(3);
            globalConfig.evolutionTimeInSeconds = 25;
            globalConfig.generator = new QAPGenerator(problem);

            IslandSupervisor supervisor = new IslandSupervisor(globalConfig);
            QAPIndividual result =(QAPIndividual) supervisor.getResult();
            foreach(int i in result.permutation)
                Console.WriteLine(i.ToString() + " ");
            //int result = 5;
            saveResult(result.value(), testName);
        }
コード例 #2
0
ファイル: IslandSupervisor.cs プロジェクト: jswk/GA-BO
        public IslandSupervisor(GlobalConfiguration configuration)
        {
            this.configuration=configuration;
            this.islands = new Island[configuration.configurations.Count];
            int i=0;

            //create islands
            foreach(IslandConfiguration islandConfiguration in configuration.configurations)
            {
                IFactory factory=null;
                switch(islandConfiguration.evolutionStrategy)
                {
                    case EvolutionStrategy.Roulette:
                        factory=new RouletteFactory(configuration,islandConfiguration);
                        break;
                    case EvolutionStrategy.Stochastic:
                        factory = new StochasticFactory(configuration, islandConfiguration);
                        break;
                    case EvolutionStrategy.Tournament:
                        factory = new TournamentFactory(configuration, islandConfiguration);
                        break;
                    case EvolutionStrategy.LinearRanked:
                        factory = new LinearRankedFactory(configuration, islandConfiguration);
                        break;
                    case EvolutionStrategy.Truncation:
                        factory = new TruncationFactory(configuration, islandConfiguration);
                        break;
                    default:
                        throw new MissingMemberException("Undefined factory for selected strategy!");
                }
                this.islands[i++]=new Island(factory,islandConfiguration,this);
            }
            Console.WriteLine("All islands initialized");
            //create connections
            this.connections = new IslandConnections(configuration.connections, this.islands);
            Console.WriteLine("Connections created");
            Console.WriteLine("Supervisor created");
        }
コード例 #3
0
ファイル: AbstractFactory.cs プロジェクト: jswk/GA-BO
 public AbstractFactory(GlobalConfiguration config, IslandConfiguration iconfig)
 {
     _config = config;
     _iconfig = iconfig;
 }
コード例 #4
0
ファイル: LinearRankedFactory.cs プロジェクト: jswk/GA-BO
 public LinearRankedFactory(GlobalConfiguration config, IslandConfiguration iconfig)
     : base(config, iconfig)
 {
 }
コード例 #5
0
ファイル: TournamentFactory.cs プロジェクト: jswk/GA-BO
 public TournamentFactory(GlobalConfiguration config, IslandConfiguration iconfig)
     : base(config, iconfig)
 {
 }
コード例 #6
0
ファイル: RouletteFactory.cs プロジェクト: jswk/GA-BO
 public RouletteFactory(GlobalConfiguration config, IslandConfiguration iconfig)
     : base(config, iconfig)
 {
 }
コード例 #7
0
ファイル: TruncationFactory.cs プロジェクト: jswk/GA-BO
 public TruncationFactory(GlobalConfiguration config, IslandConfiguration iconfig)
     : base(config, iconfig)
 {
 }
コード例 #8
0
ファイル: StochasticFactory.cs プロジェクト: jswk/GA-BO
 public StochasticFactory(GlobalConfiguration config, IslandConfiguration iconfig)
     : base(config, iconfig)
 {
 }