[Avida-SVN] r2265 - in branches/uml/source: cpu main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Mon Jan 21 13:09:09 PST 2008
Author: hjg
Date: 2008-01-21 16:09:09 -0500 (Mon, 21 Jan 2008)
New Revision: 2265
Modified:
branches/uml/source/cpu/cHardwareCPU.cc
branches/uml/source/main/cMDEAbsenceProperty.cc
branches/uml/source/main/cMDEExistenceProperty.cc
branches/uml/source/main/cMDEProperty.cc
branches/uml/source/main/cMDEUniversalProperty.cc
branches/uml/source/main/cOrganism.cc
branches/uml/source/main/cStats.cc
branches/uml/source/main/cStats.h
branches/uml/source/main/cTaskLib.cc
branches/uml/source/main/cUMLModel.cc
branches/uml/source/main/cUMLModel.h
Log:
added property stats tracking.
Modified: branches/uml/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/uml/source/cpu/cHardwareCPU.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/cpu/cHardwareCPU.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -5078,7 +5078,7 @@
bool cHardwareCPU::Inst_AbsenceProperty(cAvidaContext& ctx)
{
- bool val = 0;
+ float val = 0;
// Call a function on the model to create this property.
// Currently it just uses p
std::string s = organism->getUMLModel()->getP();
@@ -5089,12 +5089,15 @@
// val = organism->getUMLModel()->addAbsenceProperty(s);
val = m_world->GetPopulation().getUMLModel()->addAbsenceProperty(s);
}
+
+ organism->getUMLModel()->addPropertyReward(val);
+
return val;
}
bool cHardwareCPU::Inst_UniversialityProperty(cAvidaContext& ctx)
{
- bool val = 0;
+ float val = 0;
// Call a function on the model to create this property.
std::string s = organism->getUMLModel()->getP();
@@ -5104,12 +5107,15 @@
// val = organism->getUMLModel()->addUniversalProperty(s);
val = m_world->GetPopulation().getUMLModel()->addUniversalProperty(s);
}
+
+ organism->getUMLModel()->addPropertyReward(val);
+
return val;
}
bool cHardwareCPU::Inst_ExistenceProperty(cAvidaContext& ctx)
{
- bool val = 0;
+ float val = 0;
// Call a function on the model to create this property.
std::string s = organism->getUMLModel()->getP();
@@ -5119,6 +5125,9 @@
// val = organism->getUMLModel()->addExistenceProperty(s);
val = m_world->GetPopulation().getUMLModel()->addExistenceProperty(s);
}
+
+ organism->getUMLModel()->addPropertyReward(val);
+
return val;
}
@@ -5126,22 +5135,22 @@
{
ReadLabel();
int jump_amount = GetLabel().AsInt(NUM_NOPS);
- return (m_world->GetPopulation().getUMLModel()->relativeMoveExpressionP(jump_amount));
+ return (organism->getUMLModel()->relativeMoveExpressionP(jump_amount));
}
bool cHardwareCPU::Inst_NextExpressionP(cAvidaContext& ctx)
{
- return (m_world->GetPopulation().getUMLModel()->relativeMoveExpressionP(1));
+ return (organism->getUMLModel()->relativeMoveExpressionP(1));
}
bool cHardwareCPU::Inst_PrevExpressionP(cAvidaContext& ctx)
{
- return (m_world->GetPopulation().getUMLModel()->relativeMoveExpressionP(-1));
+ return (organism->getUMLModel()->relativeMoveExpressionP(-1));
}
bool cHardwareCPU::Inst_AbsoluteMoveExpressionP(cAvidaContext& ctx)
{
ReadLabel();
int jump_amount = GetLabel().AsInt(NUM_NOPS);
- return (m_world->GetPopulation().getUMLModel()->absoluteMoveExpressionP(jump_amount));
+ return (organism->getUMLModel()->absoluteMoveExpressionP(jump_amount));
}
Modified: branches/uml/source/main/cMDEAbsenceProperty.cc
===================================================================
--- branches/uml/source/main/cMDEAbsenceProperty.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cMDEAbsenceProperty.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -12,7 +12,8 @@
void cMDEAbsenceProperty::print() {
std::ofstream outfile;
- outfile.open (_name.c_str());
+// outfile.open (_name.c_str());
+ outfile.open ("property");
assert(outfile.is_open());
outfile << "#define p (" << _expr_p << ")" << std::endl;
@@ -32,10 +33,9 @@
void cMDEAbsenceProperty::printWitness() {
-
-
std::ofstream outfile;
- std::string file_name= "w" + _name;
+// std::string file_name= "w" + _name;
+ std::string file_name = "witness-property";
outfile.open (file_name.c_str());
assert(outfile.is_open());
@@ -72,8 +72,8 @@
// if this property passed, then save it to a file
if (verify_reward) {
- // cmd = "cat " + _name + " >> " + work_prop;
- // system(cmd.c_str());
+ cmd = "cat property >> " + work_prop;
+ system(cmd.c_str());
}
_reward = verify_reward;
Modified: branches/uml/source/main/cMDEExistenceProperty.cc
===================================================================
--- branches/uml/source/main/cMDEExistenceProperty.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cMDEExistenceProperty.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -12,7 +12,8 @@
void cMDEExistenceProperty::print() {
std::ofstream outfile;
- outfile.open (_name.c_str());
+// outfile.open (_name.c_str());
+ outfile.open ("property");
assert(outfile.is_open());
outfile << "/* Existence property " << _expr_p << "*/" << std::endl;
@@ -30,7 +31,7 @@
void cMDEExistenceProperty::printWitness() {
std::ofstream outfile;
- std::string file_name = "w" + _name;
+ std::string file_name = "witness-property";
outfile.open (file_name.c_str());
assert(outfile.is_open());
Modified: branches/uml/source/main/cMDEProperty.cc
===================================================================
--- branches/uml/source/main/cMDEProperty.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cMDEProperty.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -20,13 +20,15 @@
float cMDEProperty::numWitnesses() {
- std::string file_name = "tmp-witness" + _name + ".pr";
+// std::string file_name = "tmp-witness" + _name + ".pr";
+ std::string file_name = "tmp-witness.pr";
std::string cmd = "cp tmp.pr "+ file_name;
int num_witness = 0;
if(system(cmd.c_str())!=0) return 0.0;
- cmd = "cat w" + _name + " >> " + file_name + " && ./spin -a " + file_name + " &> /dev/null";
+// cmd = "cat w" + _name + " >> " + file_name + " && ./spin -a " + file_name + " &> /dev/null";
+ cmd = "cat witness-property >> " + file_name + " && ./spin -a " + file_name + " &> /dev/null";
if(system(cmd.c_str())!=0) return 0.0;
if(system("/usr/bin/gcc -DMEMLIM=512 pan.c -o pan &> /dev/null")!=0) return 0.0;
@@ -41,12 +43,14 @@
float cMDEProperty::verify() {
- std::string file_name = "tmp-" + _name + ".pr";
+// std::string file_name = "tmp-" + _name + ".pr";
+ std::string file_name = "tmp-property.pr";
std::string cmd = "cp tmp.pr "+ file_name;
if(system(cmd.c_str())!=0) return 0.0;
- cmd = "cat " + _name + " >> " + file_name + " && ./spin -a " + file_name + " &> /dev/null";
+// cmd = "cat " + _name + " >> " + file_name + " && ./spin -a " + file_name + " &> /dev/null";
+ cmd = "cat property >> " + file_name + " && ./spin -a " + file_name + " &> /dev/null";
if(system(cmd.c_str())!=0) return 0.0;
if(system("/usr/bin/gcc -DMEMLIM=512 pan.c -o pan &> /dev/null")!=0) return 0.0;
@@ -78,7 +82,8 @@
// if this property passed, then save it to a file
if (verify_reward) {
- cmd = "cat " + _name + " >> " + work_prop;
+// cmd = "cat " + _name + " >> " + work_prop;
+ cmd = "cat property >> " + work_prop;
system(cmd.c_str());
}
Modified: branches/uml/source/main/cMDEUniversalProperty.cc
===================================================================
--- branches/uml/source/main/cMDEUniversalProperty.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cMDEUniversalProperty.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -12,7 +12,8 @@
void cMDEUniversalProperty::print() {
std::ofstream outfile;
- outfile.open (_name.c_str());
+// outfile.open (_name.c_str());
+ outfile.open ("property");
assert(outfile.is_open());
outfile << "/* Universal property " << _expr_p << "*/" << std::endl;
@@ -34,7 +35,8 @@
void cMDEUniversalProperty::printWitness() {
std::ofstream outfile;
- std::string file_name = "w" + _name;
+// std::string file_name = "w" + _name;
+ std::string file_name = "witness-property";
outfile.open (file_name.c_str());
assert(outfile.is_open());
@@ -67,7 +69,8 @@
// if this property passed, then save it to a file
if (verify_reward) {
// cmd = "cat " + _name + " >> " + work_prop;
-// system(cmd.c_str());
+ cmd = "cat property >> " + work_prop;
+ system(cmd.c_str());
}
_reward = verify_reward;
Modified: branches/uml/source/main/cOrganism.cc
===================================================================
--- branches/uml/source/main/cOrganism.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cOrganism.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -672,12 +672,27 @@
m_world->GetStats().addActions(m_model.numActions());
m_world->GetStats().addStateDiagrams(m_model.numSDs());
-
if ((m_model.getBonusInfo("spinn1") > 0) &&
(m_model.getBonusInfo("spinn2") > 0)) {
m_world->GetStats().N1andN2Passed();
}
+ cUMLModel* pop_model = m_world->GetPopulation().getUMLModel();
+ m_world->GetStats().propSuccess(pop_model->numSuccess());
+ m_world->GetStats().propFailure(pop_model->numFailure());
+ m_world->GetStats().propTotal(pop_model->numTotalProperty());
+ m_world->GetStats().absPropSuccess(pop_model->numAbsencePropertySuccess());
+ m_world->GetStats().absPropFailure(pop_model->numAbsencePropertyFailure());
+ m_world->GetStats().absPropTotal(pop_model->numAbsencePropertyTotal());
+ m_world->GetStats().uniPropSuccess(pop_model->numUniversalPropertySuccess());
+ m_world->GetStats().uniPropFailure(pop_model->numUniversalPropertyFailure());
+ m_world->GetStats().uniPropTotal(pop_model->numUniversalPropertyTotal());
+ m_world->GetStats().existPropSuccess(pop_model->numExistencePropertySuccess());
+ m_world->GetStats().existPropFailure(pop_model->numExistencePropertyFailure());
+ m_world->GetStats().existPropTotal(pop_model->numExistencePropertyTotal());
+
+ m_model.resetPropertyReward();
+
// m_world->GetStats().addTransLabel(transition_labels.size());
Modified: branches/uml/source/main/cStats.cc
===================================================================
--- branches/uml/source/main/cStats.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cStats.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -1010,9 +1010,22 @@
void cStats::PrintPropertyData(const cString& filename)
{
+
cDataFile& df = m_world->GetDataFile(filename);
- df.Write( m_propertySuccess.Sum(), "total number of properties that passed" );
- df.Write( m_propertyFailure.Sum(), "total number of properties that failed" );
+ df.Write( m_propertySuccess, "total number of properties that passed" );
+ df.Write( m_propertyFailure, "total number of properties that failed" );
+ df.Write( m_propertyTotal, "total number of properties" );
+ df.Write( m_absPropertySuccess, "absence properties that passed" );
+ df.Write( m_absPropertyFailure, "absence properties that failed" );
+ df.Write( m_absPropertyTotal, "total number of absence properties" );
+ df.Write( m_uniPropertySuccess, "universal properties that passed" );
+ df.Write( m_uniPropertyFailure, "universal properties that failed" );
+ df.Write( m_uniPropertyTotal, "total number of universal properties" );
+ df.Write( m_existPropertySuccess, "existence properties that passed" );
+ df.Write( m_existPropertyFailure, "existence properties that failed" );
+ df.Write( m_existPropertyTotal, "total number of existence properties" );
+
+
df.Endl();
}
Modified: branches/uml/source/main/cStats.h
===================================================================
--- branches/uml/source/main/cStats.h 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cStats.h 2008-01-21 21:09:09 UTC (rev 2265)
@@ -271,8 +271,18 @@
cDoubleSum m_W2Attempt;
cDoubleSum m_W2Passed;
cDoubleSum m_N1andN2Passed;
- cDoubleSum m_propertySuccess;
- cDoubleSum m_propertyFailure;
+ int m_propertySuccess;
+ int m_propertyFailure;
+ int m_propertyTotal;
+ int m_absPropertySuccess;
+ int m_absPropertyFailure;
+ int m_absPropertyTotal;
+ int m_uniPropertySuccess;
+ int m_uniPropertyFailure;
+ int m_uniPropertyTotal;
+ int m_existPropertySuccess;
+ int m_existPropertyFailure;
+ int m_existPropertyTotal;
@@ -668,8 +678,23 @@
void W2Attempt() { m_W2Attempt.Add(1); }
void W2Passed() { m_W2Passed.Add(1); }
void N1andN2Passed() { m_N1andN2Passed.Add(1); }
- void propSuccess(int x) {m_propertySuccess.Add(x); }
- void propFailure(int x) {m_propertyFailure.Add(x); }
+
+ void propSuccess(int x) {m_propertySuccess = x; }
+ void propFailure(int x) {m_propertyFailure = x; }
+ void propTotal(int x) {m_propertyTotal= x; }
+ void absPropSuccess(int x) {m_absPropertySuccess =x; }
+ void absPropFailure(int x) {m_absPropertyFailure =x;}
+ void absPropTotal(int x) {m_absPropertyTotal =x;}
+ void uniPropSuccess(int x) {m_uniPropertySuccess =x; }
+ void uniPropFailure(int x) {m_uniPropertyFailure =x; }
+ void uniPropTotal(int x) { m_uniPropertyTotal =x;}
+ void existPropSuccess(int x) {m_existPropertySuccess =x; }
+ void existPropFailure(int x) {m_existPropertyFailure =x;}
+ void existPropTotal(int x) {m_existPropertyTotal =x;}
+
+
+
+
/* void scenario5Complete() { m_scenario5.Add(1); }
void scenario6Complete() { m_scenario6.Add(1); }
void scenario7Complete() { m_scenario7.Add(1); }
Modified: branches/uml/source/main/cTaskLib.cc
===================================================================
--- branches/uml/source/main/cTaskLib.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cTaskLib.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -2963,13 +2963,14 @@
double cTaskLib::Task_Properties(cTaskContext& ctx) const
{
double bonus = 0.0;
- //cOrganism* org = ctx.getOrganism();
- cPopulation* pop = (&m_world->GetPopulation());
+ cOrganism* org = ctx.getOrganism();
+ //cPopulation* pop = (&m_world->GetPopulation());
// call some sort of check properties function for the model.
- bonus = pop->getUMLModel()->checkProperties();
- m_world->GetStats().propSuccess(pop->getUMLModel()->numSuccess());
- m_world->GetStats().propFailure(pop->getUMLModel()->numFailure());
+ bonus = org->getUMLModel()->getPropertyReward();
+ //pop->getUMLModel()->checkProperties();
+ //m_world->GetStats().propSuccess(pop->getUMLModel()->numSuccess());
+ //m_world->GetStats().propFailure(pop->getUMLModel()->numFailure());
return bonus;
Modified: branches/uml/source/main/cUMLModel.cc
===================================================================
--- branches/uml/source/main/cUMLModel.cc 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cUMLModel.cc 2008-01-21 21:09:09 UTC (rev 2265)
@@ -1,3 +1,4 @@
+
#include "cUMLModel.h"
#include <sys/types.h>
@@ -180,8 +181,7 @@
expression_q = 0;
expression_r = 0;
createExpressionsFromClasses();
- int t = expressions.size();
-
+ m_property_reward = 0;
}
@@ -246,7 +246,7 @@
int cUMLModel::numStates()
{
int temp_states = 0;
- for (unsigned int i=0; i<numSDs(); i++) {
+ for (int i=0; i<numSDs(); i++) {
temp_states += getStateDiagram(i)->numStates();
}
return temp_states;
@@ -255,7 +255,7 @@
int cUMLModel::numTrans()
{
int temp_trans = 0;
- for (unsigned int i=0; i<numSDs(); i++) {
+ for (int i=0; i<numSDs(); i++) {
temp_trans += getStateDiagram(i)->numTrans();
}
return temp_trans;
@@ -264,7 +264,7 @@
int cUMLModel::numTriggers()
{
int temp_trigger = 0;
- for (unsigned int i=0; i<numSDs(); i++) {
+ for (int i=0; i<numSDs(); i++) {
temp_trigger += getStateDiagram(i)->numTriggers();
}
return temp_trigger;
@@ -273,7 +273,7 @@
int cUMLModel::numGuards()
{
int temp = 0;
- for (unsigned int i=0; i<numSDs(); i++) {
+ for (int i=0; i<numSDs(); i++) {
temp += getStateDiagram(i)->numGuards();
}
return temp;
@@ -282,7 +282,7 @@
int cUMLModel::numActions()
{
int temp = 0;
- for (unsigned int i=0; i<numSDs(); i++) {
+ for (int i=0; i<numSDs(); i++) {
temp += getStateDiagram(i)->numActions();
}
return temp;
@@ -393,7 +393,7 @@
return;
}
-float cUMLModel::checkProperties()
+/*float cUMLModel::checkProperties()
{
// for all properties:
std::set<cMDEProperty*>::iterator prop_ptr;
@@ -402,6 +402,7 @@
m_property_success = 0;
m_property_failure = 0;
+
for (prop_ptr=mdeprops.begin(); prop_ptr!=mdeprops.end(); prop_ptr++)
{
temp_val = (*prop_ptr)->getEvaluationInformation();
@@ -420,45 +421,98 @@
total += temp_val;
}
-
+// int size = mdeprops.size();
// return the reward.
return total;
-}
+}*/
-bool cUMLModel::addExistenceProperty(std::string s)
+float cUMLModel::addExistenceProperty(std::string s)
{
// a pointer to the existence property
std::string temp = StringifyAnInt(mdeprops.size());
+ float val = 0;
cMDEExistenceProperty* e = new cMDEExistenceProperty(s, temp);
- mdeprops.insert (e);
- //int q = mdeprops.size();
- return true;
+ // first, try to find the property
+ //
+ std::set<cMDEProperty*, ltcMDEProperty>::iterator mdepropiter = mdeprops.find(e);
+ if (mdepropiter != mdeprops.end()) {
+ val = (*mdepropiter)->getEvaluationInformation();
+ } else {
+ e->evaluate();
+ val = e->getEvaluationInformation();
+ mdeprops.insert (e);
+ if (val >0) {
+ m_property_success++;
+ m_existence_property_success++;
+ } else {
+ m_property_failure++;
+ m_existence_property_failure++;
+ }
+ }
+
+ return val;
}
-bool cUMLModel::addAbsenceProperty(std::string s)
+float cUMLModel::addAbsenceProperty(std::string s)
{
// a pointer to the absence property
std::string temp = StringifyAnInt(mdeprops.size());
+ float val = 0;
cMDEAbsenceProperty* e = new cMDEAbsenceProperty(s, temp);
- mdeprops.insert (e);
+// mdeprops.insert (e);
//int q = mdeprops.size();
- return true;
+ std::set<cMDEProperty*, ltcMDEProperty>::iterator mdepropiter = mdeprops.find(e);
+ if (mdepropiter != mdeprops.end()) {
+ val = (*mdepropiter)->getEvaluationInformation();
+ } else {
+ e->evaluate();
+ val = e->getEvaluationInformation();
+ mdeprops.insert (e);
+ if (val >0) {
+ m_property_success++;
+ m_absence_property_success++;
+ } else {
+ m_property_failure++;
+ m_absence_property_failure++;
+ }
+ }
+
+ return val;
}
-bool cUMLModel::addUniversalProperty(std::string s)
+float cUMLModel::addUniversalProperty(std::string s)
{
// a pointer to the universal property
std::string temp = StringifyAnInt(mdeprops.size());
+ float val = 0;
cMDEUniversalProperty* e = new cMDEUniversalProperty(s, temp);
- mdeprops.insert (e);
+// mdeprops.insert (e);
//int q = mdeprops.size();
- return true;
+ std::set<cMDEProperty*, ltcMDEProperty>::iterator mdepropiter = mdeprops.find(e);
+ if (mdepropiter != mdeprops.end()) {
+ val = (*mdepropiter)->getEvaluationInformation();
+ } else {
+ e->evaluate();
+ val = e->getEvaluationInformation();
+ mdeprops.insert (e);
+ if (val >0) {
+ m_property_success++;
+ m_universal_property_success++;
+ } else {
+ m_property_failure++;
+ m_universal_property_failure++;
+ }
+ }
+
+ return val;
}
+
+
// Create expressions for each class. Expressions are:
// Equality of an attribute and each of its values
// Inequality of an attribute and each of its values
@@ -479,7 +533,7 @@
temp_size = c.numAttributes();
// For each attribute...
- for (unsigned int j=0; j<temp_size; j++) {
+ for (int j=0; j<temp_size; j++) {
a = c.getAttribute(j);
temp1 = class_name + "_V." + a.attribute_name;
@@ -498,7 +552,7 @@
// For each method
temp_size = c.numOperations();
- for (unsigned int m=0; m<temp_size; m++) {
+ for (int m=0; m<temp_size; m++) {
o = c.getOperation(m);
temp1 = class_name + "_q??[" + o.op_name + "]";
addExpression(temp1);
@@ -545,7 +599,6 @@
std::string cUMLModel::getP() {
- int t = expressions.size();
return expressions[expression_p];
}
@@ -563,3 +616,4 @@
o << x;
return o.str();
}
+
Modified: branches/uml/source/main/cUMLModel.h
===================================================================
--- branches/uml/source/main/cUMLModel.h 2008-01-21 13:15:31 UTC (rev 2264)
+++ branches/uml/source/main/cUMLModel.h 2008-01-21 21:09:09 UTC (rev 2265)
@@ -69,11 +69,27 @@
int numSCs();
int numSuccess() { return m_property_success; }
int numFailure() { return m_property_failure; }
+ int numTotalProperty() { return m_property_success + m_property_failure; }
+ int numAbsencePropertySuccess() { return m_absence_property_success; }
+ int numAbsencePropertyFailure() { return m_absence_property_failure; }
+ int numAbsencePropertyTotal() { return m_absence_property_success + m_absence_property_failure; }
+ int numExistencePropertySuccess() { return m_existence_property_success; }
+ int numExistencePropertyFailure() { return m_existence_property_failure; }
+ int numExistencePropertyTotal() { return m_existence_property_success + m_existence_property_failure; }
+ int numUniversalPropertySuccess() { return m_universal_property_success; }
+ int numUniversalPropertyFailure() { return m_universal_property_failure; }
+ int numUniversalPropertyTotal() { return m_universal_property_success + m_universal_property_failure; }
+ void resetPropertyReward() { m_property_reward = 0; }
+ void addPropertyReward(float x) { m_property_reward += x; }
+ float getPropertyReward() { return m_property_reward; }
+
+
+
// Properties
- bool addExistenceProperty(std::string);
- bool addAbsenceProperty(std::string);
- bool addUniversalProperty(std::string);
+ float addExistenceProperty(std::string);
+ float addAbsenceProperty(std::string);
+ float addUniversalProperty(std::string);
void addExpression(std::string s) { expressions.push_back(s); }
void createExpressionsFromClasses();
std::string StringifyAnInt(int);
@@ -121,7 +137,7 @@
// check if the model is ready for hydra
bool readyForHydra();
bool getWitnessMode() {return witnessMode; }
- float checkProperties();
+// float checkProperties();
protected:
@@ -143,6 +159,14 @@
std::set<cMDEProperty*, ltcMDEProperty> mdeprops;
int m_property_success;
int m_property_failure;
+ int m_absence_property_success;
+ int m_absence_property_failure;
+ int m_existence_property_success;
+ int m_existence_property_failure;
+ int m_universal_property_success;
+ int m_universal_property_failure;
+ float m_property_reward;
+
// vector of expressions
std::vector<std::string> expressions;
More information about the Avida-cvs
mailing list