int test(int argc, char *argv[]) { int start, stop; if (argc != 9 && argc != 10) usageErr(); inName = argv[0]; cdnaName = argv[1]; chromDir = argv[2]; goodLogName = argv[3]; badLogName = argv[4]; unusualName = argv[5]; errName = argv[6]; start = atoi(argv[7]); stop = atoi(argv[8]); if (start >= stop) usageErr(); if (argc == 10) c2gName = argv[9]; inFile = mustOpen(inName, "r"); goodLogFile = mustOpen(goodLogName, "w"); badLogFile = mustOpen(badLogName, "w"); unusualFile = mustOpen(unusualName, "w"); errFile = mustOpen(errName, "w"); pushWarnHandler(reportWarning); dnaUtilOpen(); printf("Loading chromosomes\n"); loadGenome(chromDir, &chroms, &chromNames, &chromCount); startRedoHash(); printf("Analysing %s\n", inName); if (weAreWeb()) htmlHorizontalLine(); analyse(start, stop); //endRedoHash(); freeGenome(&chroms, &chromNames, chromCount); popWarnHandler(); fclose(inFile); fclose(goodLogFile); fclose(badLogFile); fclose(unusualFile); fclose(errFile); return 0; }
MedeaAltruismReplayWorldObserver::MedeaAltruismReplayWorldObserver( World *__world ) : WorldObserver( __world ) { _world = __world; // ==== loading project-specific properties gProperties.checkAndGetPropertyValue("gSwarmOnlineObsUsed",&MedeaAltruismSharedData::gSwarmOnlineObsUsed,true); gProperties.checkAndGetPropertyValue("gDynamicSigma",&MedeaAltruismSharedData::gDynamicSigma,true); gProperties.checkAndGetPropertyValue("gSigmaMin",&MedeaAltruismSharedData::gSigmaMin,true); gProperties.checkAndGetPropertyValue("gProbAdd",&MedeaAltruismSharedData::gProbAdd,true); gProperties.checkAndGetPropertyValue("gProbSub",&MedeaAltruismSharedData::gProbSub,true); gProperties.checkAndGetPropertyValue("gDynaStep",&MedeaAltruismSharedData::gDynaStep,true); gProperties.checkAndGetPropertyValue("gSigmaRef",&MedeaAltruismSharedData::gSigmaRef,true); gProperties.checkAndGetPropertyValue("gSigmaMax",&MedeaAltruismSharedData::gSigmaMax,true); gProperties.checkAndGetPropertyValue("gProbRef",&MedeaAltruismSharedData::gProbRef,true); gProperties.checkAndGetPropertyValue("gProbMax",&MedeaAltruismSharedData::gProbMax,true); gProperties.checkAndGetPropertyValue("gEvaluationTime",&MedeaAltruismSharedData::gEvaluationTime,true); gProperties.checkAndGetPropertyValue("gDriftEvaluationRate",&MedeaAltruismSharedData::gDriftEvaluationRate,true); gProperties.checkAndGetPropertyValue("gInitLock",&MedeaAltruismSharedData::gInitLock,true); gProperties.checkAndGetPropertyValue("gDriftLock",&MedeaAltruismSharedData::gDriftLock,true); gProperties.checkAndGetPropertyValue("gMaxKeyRange",&MedeaAltruismSharedData::gMaxKeyRange,true); gProperties.checkAndGetPropertyValue("gDeltaKey",&MedeaAltruismSharedData::gDeltaKey,true); gProperties.checkAndGetPropertyValue("gSynchronization",&MedeaAltruismSharedData::gSynchronization,true); gProperties.checkAndGetPropertyValue("g_xStart_EnergyZone",&MedeaAltruismSharedData::g_xStart_EnergyZone,true); gProperties.checkAndGetPropertyValue("g_yStart_EnergyZone",&MedeaAltruismSharedData::g_yStart_EnergyZone,true); gProperties.checkAndGetPropertyValue("g_xEnd_EnergyZone",&MedeaAltruismSharedData::g_xEnd_EnergyZone,true); gProperties.checkAndGetPropertyValue("g_yEnd_EnergyZone",&MedeaAltruismSharedData::g_yEnd_EnergyZone,true); gProperties.checkAndGetPropertyValue("gZoneEnergy_maxHarvestValue",&MedeaAltruismSharedData::gZoneEnergy_maxHarvestValue,true); gProperties.checkAndGetPropertyValue("gZoneEnergy_minHarvestValue",&MedeaAltruismSharedData::gZoneEnergy_minHarvestValue,true); gProperties.checkAndGetPropertyValue("gZoneEnergy_maxFullCapacity",&MedeaAltruismSharedData::gZoneEnergy_maxFullCapacity,true); gProperties.checkAndGetPropertyValue("gZoneEnergy_saturateCapacityLevel",&MedeaAltruismSharedData::gZoneEnergy_saturateCapacityLevel,true); gProperties.checkAndGetPropertyValue("gDeadTime",&MedeaAltruismSharedData::gDeadTime,true); gProperties.checkAndGetPropertyValue("gEnergyMax",&MedeaAltruismSharedData::gEnergyMax,true); gProperties.checkAndGetPropertyValue("gEnergyInit",&MedeaAltruismSharedData::gEnergyInit,true); gProperties.checkAndGetPropertyValue("gEnergyRevive",&MedeaAltruismSharedData::gEnergyRevive,true); gProperties.checkAndGetPropertyValue("gMaxPenalizationRate",&MedeaAltruismSharedData::gMaxPenalizationRate,true); if ( MedeaAltruismSharedData::gMaxPenalizationRate < 0 || MedeaAltruismSharedData::gMaxPenalizationRate > 1 ) { std::cerr << "gMaxPenalizationRate should be defined btw O and 1" << std::endl; exit(-1); } gProperties.checkAndGetPropertyValue("gDynamicRespawn",&MedeaAltruismSharedData::gDynamicRespawn,true); // forced, in this setup. gProperties.checkAndGetPropertyValue("gThresholdIncreaseRespawn",&MedeaAltruismSharedData::gThresholdIncreaseRespawn,true); gProperties.checkAndGetPropertyValue("gLowestBoundRespawn",&MedeaAltruismSharedData::gLowestBoundRespawn,true); gProperties.checkAndGetPropertyValue("gHighestBoundRespawn",&MedeaAltruismSharedData::gHighestBoundRespawn,true); gProperties.checkAndGetPropertyValue("fixedCost",&fixedCost,true); gProperties.checkAndGetPropertyValue("exponentialFactor",&exponentialFactor,true); // ==== if ( !gRadioNetwork) { std::cout << "Error : gRadioNetwork == false. The swarm online observer need the radio network" << std::endl; exit(1); } if ( !MedeaAltruismSharedData::gSwarmOnlineObsUsed) { std::cout << "Error : gSwarmOnlineObsUsed == false. The swarm online observer need some variables. Define this option to true or use another observer" << std::endl; exit(1); } if ( !gEnergyMode ) { std::cout << "Error : gEnergyMode should be true to use SwarmOnlineObserver" << std::endl; exit(1); } // * iteration and generation counters _lifeIterationCount = -1; _generationCount = -1; _firstStep = true; loadGenome(); }