コード例 #1
0
ファイル: EvacuationSimulation.cs プロジェクト: OlekNg/AHMED
        public EvacuationSimulation(Building building, GeneticsConfiguration<List<bool>> geneticsConfiguration)
        {
            _building = building;
            _geneticsConfiguration = geneticsConfiguration;

            Setup();
        }
コード例 #2
0
ファイル: FloorIconUpdater.cs プロジェクト: OlekNg/AHMED
 public FloorIconUpdater(Building building, ListView floors)
 {
     _building = building;
     _lastSelectedFloor = _building.CurrentFloor;
     _bw = new BackgroundWorker();
     _bw.DoWork += Work;
     floors.SelectionChanged += new SelectionChangedEventHandler(OnFloorChanged);
     UpdateAll();
 }
コード例 #3
0
ファイル: Building.cs プロジェクト: OlekNg/AHMED
        public Building(Building other)
            : this(other.ToDataModel())
        {
            ShortGenotype = other.ShortGenotype;

            if (ShortGenotype)
            {
                Rooms.Where(x => x.NumberOfDoors == 1)
                    .ToList()
                    .ForEach(x => x.ApplySimpleEvacuation());
            }
        }
コード例 #4
0
ファイル: Calculator.cs プロジェクト: OlekNg/AHMED
        /// <summary>
        /// Loads building definition from given xml file.
        /// </summary>
        /// <param name="file">Path to building definition file.</param>
        public void LoadBuilding(string file)
        {
            CurrentFile = file;
            Common.DataModel.Building building = new Common.DataModel.Building();
            building.Load(file);

            var viewMode = CurrentBuilding != null ? CurrentBuilding.ViewMode : "";
            CurrentBuilding = new Building(building);
            CurrentBuilding.ViewMode = viewMode;

            _debugInfo.Building = CurrentBuilding;
        }
コード例 #5
0
ファイル: Configuration.cs プロジェクト: OlekNg/AHMED
 internal GeneticsConfiguration<List<bool>> BuildConfiguration(Building CurrentBuilding)
 {
     return new GeneticsConfiguration<List<bool>>()
     {
         CrossoverOperator = SelectedCrossover.BuildCrossoverOperator(CurrentBuilding),
         MutationOperator = SelectedMutation.BuildMutationOperator(CurrentBuilding),
         InitialPopulationSize = InitPopSize,
         MaxIterations = MaxIterations,
         Selector = SelectedSelector.BuildSelector(),
         Transformer = SelectedTransformer.BuildTransformer(CurrentBuilding),
         ShortGenotype = ShortGenotype,
         CrossoverProbability = CrossoverProbability,
         MaxIterationsWithoutImprovement = MaxIterationsWithoutImprovement
     };
 }
コード例 #6
0
ファイル: Editor.cs プロジェクト: OlekNg/AHMED
 /// <summary>
 /// Creates new building.
 /// </summary>
 public void NewBuilding()
 {
     CurrentFile = "";
     CurrentBuilding = new Building(5, 5);
     CurrentBuilding.ViewMode = CurrentTool.Name;
 }
コード例 #7
0
ファイル: Editor.cs プロジェクト: OlekNg/AHMED
 /// <summary>
 /// Loads building definition from given xml file.
 /// </summary>
 /// <param name="file">Path to building definition file.</param>
 public void LoadBuilding(string file)
 {
     CurrentFile = file;
     Common.DataModel.Building building = new Common.DataModel.Building();
     building.Load(file);
     CurrentBuilding = new Building(building);
 }
コード例 #8
0
ファイル: EvacuationSimulation.cs プロジェクト: OlekNg/AHMED
 private void LoadBuilding()
 {
     LoadBuildingPath();
     var buildingCommonModel = new Common.DataModel.Building();
     buildingCommonModel.Load(buildingPath);
     building = new Building(buildingCommonModel);
 }
コード例 #9
0
ファイル: EvacuationSimulation.cs プロジェクト: OlekNg/AHMED
 private void CreateLocalOptimizationOperator()
 {
     Building building;
     switch (GetAttributeValueOfElement("Type", "Transformer"))
     {
         case "None":
             geneticsConfiguration.Transformer = null;
             break;
         case "ThreeSegmentLoopOptimizer":
             building = GetBuilding();
             if (geneticsConfiguration.ShortGenotype)
             {
                 building.ShortGenotype = true;
                 building.ApplySimpleEvacuationIfShortGenotype();
             }
             geneticsConfiguration.Transformer = new ThreeSegmentLoopOptimizer(building, Double.Parse(GetAttributeValueOfElement("Probability", "Transformer"), CultureInfo.InvariantCulture));
             break;
         case "LocalOptimization":
             building = GetBuilding();
             if (geneticsConfiguration.ShortGenotype)
             {
                 building.ShortGenotype = true;
                 building.ApplySimpleEvacuationIfShortGenotype();
             }
             geneticsConfiguration.Transformer = new LocalOptimization(building, GetEvaluator());
             break;
         default:
             throw new ArgumentException("Invalid transformer name");
     }
 }