[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[oMetah-devel] ometah ./ometah.pws common/itsPoint.cpp common/...
From: |
Johann |
Subject: |
[oMetah-devel] ometah ./ometah.pws common/itsPoint.cpp common/... |
Date: |
Thu, 26 May 2005 04:55:43 -0400 |
CVSROOT: /cvsroot/ometah
Module name: ometah
Branch:
Changes by: Johann <address@hidden> 05/05/26 08:55:43
Modified files:
. : ometah.pws
common : itsPoint.cpp itsPoint.hpp
doc : makefile
interface : ometah.cpp
metaheuristic : itsEstimationOfDistribution.cpp
itsMetaheuristic.cpp
Log message:
* a sorting method for point samples
* first step on intensification for EDA
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/ometah.pws.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/itsPoint.cpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/common/itsPoint.hpp.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/doc/makefile.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/interface/ometah.cpp.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/metaheuristic/itsEstimationOfDistribution.cpp.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/metaheuristic/itsMetaheuristic.cpp.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
Patches:
Index: ometah/common/itsPoint.cpp
diff -u ometah/common/itsPoint.cpp:1.2 ometah/common/itsPoint.cpp:1.3
--- ometah/common/itsPoint.cpp:1.2 Fri Mar 11 10:23:36 2005
+++ ometah/common/itsPoint.cpp Thu May 26 08:55:43 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsPoint.cpp,v 1.2 2005/03/11 10:23:36 nojhan Exp $
+ * $Id: itsPoint.cpp,v 1.3 2005/05/26 08:55:43 nojhan Exp $
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -18,7 +18,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-
+#include <iostream>
+using namespace std;
#include "itsPoint.hpp"
//! Get the solution vector
@@ -44,3 +45,57 @@
{
this->values = values;
}
+
+
+
+bool isValueSmaller(itsPoint p1, itsPoint p2, int dimension)
+{
+ return (p1.getValues()[dimension] < p2.getValues()[dimension]);
+}
+
+
+bool isValueGreater(itsPoint p1, itsPoint p2, int dimension)
+{
+ return (p1.getValues()[dimension] > p2.getValues()[dimension]);
+}
+
+
+bool isValueEqual(itsPoint p1, itsPoint p2, int dimension)
+{
+ return (p1.getValues()[dimension] == p2.getValues()[dimension]);
+}
+
+
+vector<itsPoint> sortOnValues(vector<itsPoint> vec, int dimension)
+{
+ if( vec.size() <= 1) {
+ return vec;
+
+ } else {
+ // cut
+ unsigned int cent = vec.size()/2;
+
+ vector<itsPoint> v1(vec.begin(),vec.begin()+cent);
+ vector<itsPoint> v2(vec.begin()+cent, vec.end());
+ // sort
+ vector<itsPoint> vec1 = sortOnValues(v1, dimension);
+ vector<itsPoint> vec2 = sortOnValues(v2, dimension);
+
+ // merge
+ vector<itsPoint> res;
+ unsigned int k=0;
+
+ for(unsigned int i=0; i<vec1.size(); i++) {
+ while( k<vec2.size() && isValueSmaller(vec2[k],vec1[i],dimension)
) {
+ res.push_back(vec2[k]);
+ k++;
+ }
+ res.push_back(vec1[i]);
+ }
+ while(k<vec2.size()) {
+ res.push_back(vec2[k]);
+ k++;
+ }
+ return res;
+ }
+}
Index: ometah/common/itsPoint.hpp
diff -u ometah/common/itsPoint.hpp:1.5 ometah/common/itsPoint.hpp:1.6
--- ometah/common/itsPoint.hpp:1.5 Fri Mar 11 10:23:36 2005
+++ ometah/common/itsPoint.hpp Thu May 26 08:55:43 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsPoint.hpp,v 1.5 2005/03/11 10:23:36 nojhan Exp $
+ * $Id: itsPoint.hpp,v 1.6 2005/05/26 08:55:43 nojhan Exp $
* Author : Walid TFAILI <address@hidden>
****************************************************************************/
@@ -23,6 +23,7 @@
#define ITSPOINT
#include <vector>
+#include <functional>
using namespace std;
@@ -51,5 +52,20 @@
//! Set the value vector
void setValues(vector<double> values);
};
-
+
+//! Check if a point has a smaller value than another one for a given dimension
+bool isValueSmaller(itsPoint p1, itsPoint p2, int dimension=0);
+
+//! Check if a point has a greater value than another one for a given dimension
+bool isValueGreater(itsPoint p1, itsPoint p2, int dimension=0);
+
+//! Check if a point has an equal value than another one for a given dimension
+bool isValueEqual(itsPoint p1, itsPoint p2, int dimension=0);
+
+//! Sort a vector on values for a given dimension
+/*!
+ It uses a merge sorting algorithm
+*/
+vector<itsPoint> sortOnValues(vector<itsPoint> vec, int dimension);
+
#endif
Index: ometah/doc/makefile
diff -u ometah/doc/makefile:1.3 ometah/doc/makefile:1.4
--- ometah/doc/makefile:1.3 Fri Feb 18 13:53:16 2005
+++ ometah/doc/makefile Thu May 26 08:55:43 2005
@@ -1,9 +1,14 @@
SPLIT="+1"
-all: dia tex
+all: png eps tex
-dia: interface_main.dia classes_main.dia principles_main.dia
+png: interface_main.dia classes_main.dia principles_main.dia
+ dia -t png interface_main.dia
+ dia -t png classes_main.dia
+ dia -t png principles_main.dia
+
+eps: interface_main.dia classes_main.dia principles_main.dia
dia -t eps interface_main.dia
dia -t eps classes_main.dia
dia -t eps principles_main.dia
Index: ometah/interface/ometah.cpp
diff -u ometah/interface/ometah.cpp:1.13 ometah/interface/ometah.cpp:1.14
--- ometah/interface/ometah.cpp:1.13 Wed May 25 15:33:16 2005
+++ ometah/interface/ometah.cpp Thu May 26 08:55:43 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: ometah.cpp,v 1.13 2005/05/25 15:33:16 nojhan Exp $
+ * $Id: ometah.cpp,v 1.14 2005/05/26 08:55:43 nojhan Exp $
* Copyright : Université Paris 12 Val-de-Marne
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -148,8 +148,8 @@
cout << "PROBLEM" << endl << setProblem.item()->getInformations();
cout << endl;*/
- setMetaheuristic.item()->addDebugKey("bounds");
setMetaheuristic.item()->setLogLevel(2);
+ setMetaheuristic.item()->setSampleSize(3);
setMetaheuristic.item()->start();
Index: ometah/metaheuristic/itsEstimationOfDistribution.cpp
diff -u ometah/metaheuristic/itsEstimationOfDistribution.cpp:1.12
ometah/metaheuristic/itsEstimationOfDistribution.cpp:1.13
--- ometah/metaheuristic/itsEstimationOfDistribution.cpp:1.12 Wed May 25
15:33:16 2005
+++ ometah/metaheuristic/itsEstimationOfDistribution.cpp Thu May 26
08:55:43 2005
@@ -1,7 +1,5 @@
/***************************************************************************
- * itsMetaheuristic.hpp
- *
- * $Id: itsEstimationOfDistribution.cpp,v 1.12 2005/05/25 15:33:16 nojhan Exp
$
+ * $Id: itsEstimationOfDistribution.cpp,v 1.13 2005/05/26 08:55:43 nojhan Exp
$
* Author : Johann Dréo <address@hidden>
****************************************************************************/
@@ -23,14 +21,15 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-
-
+#include <iostream>
+#include <vector>
+#include <algorithm>
#include "itsEstimationOfDistribution.hpp"
#include "../common/matrix.hpp"
#include "../common/random.hpp"
-
-#include <vector>
+#include "../common/itsPoint.hpp"
+#include "../common/string.hpp"
using namespace std;
@@ -106,8 +105,7 @@
void itsEstimationOfDistribution::intensification()
{
- // sort the sample
- // select the selectRatio% best points
+ vector<itsPoint> sortedSample = sortOnValues(this->sample,0);
}
string itsEstimationOfDistribution::getDistribution()
Index: ometah/metaheuristic/itsMetaheuristic.cpp
diff -u ometah/metaheuristic/itsMetaheuristic.cpp:1.12
ometah/metaheuristic/itsMetaheuristic.cpp:1.13
--- ometah/metaheuristic/itsMetaheuristic.cpp:1.12 Wed May 25 15:33:16 2005
+++ ometah/metaheuristic/itsMetaheuristic.cpp Thu May 26 08:55:43 2005
@@ -120,10 +120,9 @@
// one more iteration
iterationsCurrent++;
- //TESTS
- //string msg = itoa(iterationsCurrent);
+ // log
ostringstream msg;
- msg << iterationsCurrent;
+ msg << "iteration " << iterationsCurrent;
printLog("iterations", msg.str() );
}
}
Index: ometah/ometah.pws
diff -u ometah/ometah.pws:1.12 ometah/ometah.pws:1.13
--- ometah/ometah.pws:1.12 Wed May 25 15:33:15 2005
+++ ometah/ometah.pws Thu May 26 08:55:43 2005
@@ -1,10 +1,10 @@
[filenumbers]
-0=195
-1=56
-2=83
-3=195
-4=80
+0=108
+1=1
+2=84
+3=67
+4=153
5=27
6=1
7=56
@@ -31,8 +31,11 @@
clean before build=false
[filelist]
-0=/home/nojhan/travail/openMetaheuristic/source/ometah/problem/itsProblem.cpp
-1=/home/nojhan/travail/openMetaheuristic/source/ometah/interface/ometah.cpp
+0=/home/nojhan/travail/openMetaheuristic/source/ometah/metaheuristic/itsEstimationOfDistribution.cpp
+1=/home/nojhan/travail/openMetaheuristic/source/ometah/metaheuristic/itsEstimationOfDistribution.hpp
+2=/home/nojhan/travail/openMetaheuristic/source/ometah/common/itsPoint.cpp
+3=/home/nojhan/travail/openMetaheuristic/source/ometah/common/itsPoint.hpp
+4=/home/nojhan/travail/openMetaheuristic/source/ometah/interface/ometah.cpp
[Project Tree]
0=0
- [oMetah-devel] ometah ./ometah.pws common/itsPoint.cpp common/...,
Johann <=