From 88c3bc617e7ca2f63ccd0bd53462b4c737950acd Mon Sep 17 00:00:00 2001 From: Remi Ehounou Date: Mon, 21 Jun 2021 22:14:14 -0400 Subject: [PATCH] install flacco updated --- ...e.Identifier:$DATA => FlowchartRandom.xml} | 0 MDAF/MDAF.py | 37 +++++++++++++----- MDAF/__pycache__/MDAF.cpython-39.pyc | Bin 7763 -> 9991 bytes MDAF/__pycache__/__init__.cpython-39.pyc | Bin 249 -> 281 bytes 4 files changed, 27 insertions(+), 10 deletions(-) rename Design/{Flowchart2020-11-28.xml:Zone.Identifier:$DATA => FlowchartRandom.xml} (100%) diff --git a/Design/Flowchart2020-11-28.xml:Zone.Identifier:$DATA b/Design/FlowchartRandom.xml similarity index 100% rename from Design/Flowchart2020-11-28.xml:Zone.Identifier:$DATA rename to Design/FlowchartRandom.xml diff --git a/MDAF/MDAF.py b/MDAF/MDAF.py index 23ce30e..1e327bc 100644 --- a/MDAF/MDAF.py +++ b/MDAF/MDAF.py @@ -13,6 +13,8 @@ import shutil # Surrogate modelling and plotting import matplotlib.pyplot as plt +from sklearn.neural_network import MLPRegressor +from sklearn.model_selection import train_test_split # Test function representation from rpy2 import robjects as robjs @@ -27,6 +29,11 @@ def installFalcoo(mirror = 'https://utstat.toronto.edu/cran/'): utils = importr('utils') utils.install_packages('flacco', repos=mirror) utils.install_packages('list', repos=mirror) + utils.install_packages('lhs', repos=mirror) + utils.install_packages('plyr', repos=mirror) + utils.install_packages('RANN', repos=mirror) + utils.install_packages('numDeriv', repos=mirror) + utils.install_packages('e1071', repos=mirror) class counter: #wraps a function, to keep a running count of how many @@ -75,7 +82,7 @@ def simulate(algName, algPath, funcname, funcpath, args, initpoint): converged = 0 return cpuTime, quality, numCalls, converged -def measure(heuristicpath, funcpath, args, connection): +def measure(heuristicpath, funcpath, args, connection, sampleSize = 30): ''' This function runs a set of optimization flows for each test function. it returns the mean and standard deviation of the performance results ''' @@ -105,7 +112,7 @@ def measure(heuristicpath, funcpath, args, connection): # Defining random initial points to start testing the algorithms - initpoints = [[rand.random() * scale[i] + lower[i] for i in range(n)] for run in range(30)] #update the inner as [rand.random() * scale for i in range(testfuncDimmensions)] + initpoints = [[rand.random() * scale[i] + lower[i] for i in range(n)] for run in range(sampleSize)] #update the inner as [rand.random() * scale for i in range(testfuncDimmensions)] # building the iterable arguments partfunc = partial(simulate, heuristic_name, heuristicpath, funcname, funcpath, args) @@ -218,7 +225,7 @@ def representfunc(funcpath, forced = False): -def doe(heuristicpath, testfunctionpaths, args): +def doe(heuristicpath, testfunctionpaths, args, measurementSampleSize = 30): for i,funpath in enumerate(testfunctionpaths): if funpath.find('@') == 0: testfunctionpaths[i] = path.dirname(__file__) + '/TestFunctions/' + funpath[1:] @@ -240,7 +247,7 @@ def doe(heuristicpath, testfunctionpaths, args): funcname = funcnames[idx] # Creating the connection objects for communication between the heuristic and this module connections[funcname] = multiprocessing.Pipe(duplex=False) - proc.append(multiprocessing.Process(target=measure, name=funcname, args=(heuristicpath, funcpath, args, connections[funcname][1]))) + proc.append(multiprocessing.Process(target=measure, name=funcname, args=(heuristicpath, funcpath, args, connections[funcname][1], measurementSampleSize))) # defining the response variables responses = {} @@ -318,12 +325,22 @@ def plotfuncs(funcpaths, feature, low_limit = 0, high_limit = 200): plt.show(block=True) return representations -def model(feature, doe_data): - funcpaths = [] - for i,funcname in enumerate(doe_data.keys): - if funpath.find('@') == 0: - funcpaths[i] = path.dirname(__file__) + '/TestFunctions/' + funpath[1:] +def model(features, doe_data): + + X_train, X_test, y_train, y_test = train_test_split(features, doe_data, random_state=1) + + regr = MLPRegressor(random_state=1, max_iter=500).fit(X_train, y_train) + + score = regr.score(X_test, y_test) + return (score, regr) + if __name__== "__main__": - plotfuncs(['@Bukin2.py','@Bukin6.py'], 'ela_meta') + #plotfuncs(['@Bukin2.py','@Bukin6.py'], 'ela_meta') + testfuns = ['@Bukin2.py','@Bukin4.py','@Leon.py'] + perf = doe('@SimmulatedAnnealing.py', testfuns,{"t": 1000, "p": 0.95, "objs": 0},measurementSampleSize=2) + + feats = [representfunc(testfun)['ela_meta'] for testfun in testfuns] + + features = array(feats) # %% diff --git a/MDAF/__pycache__/MDAF.cpython-39.pyc b/MDAF/__pycache__/MDAF.cpython-39.pyc index de422b49c406859525a672667f79ecd9ad60903d..3f95cc42b050e2246475c9b61935dc3c4ee47a46 100644 GIT binary patch delta 5044 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 delta 2898 zcmZ`*O>Er86`movB=?W|qm_24Kg&sMbS*`d6+4z>MYR)KPT@8+U?Vmds~dWUmMQO_ zhuj!)xe?k`8}*PT!JtJCL9y~pC{PseF$HqVwFPn`+#etX0{3X-&_fIKJ+356MzagP zdGr3}@y(lW_`zFWE>79$bb`QdZvOZ0{%VSluW)kkC&T0%Jl?;^CsUmbtu|0ESc8-> z!t~luy=WC9J`VDdRf>4Ima$AW%#tj%Nv+{agr%9WNtn@|k=m3RTjI6R&L zM3;4i7ao114AY5WnD5YN)xKjtG2ik0+wDg6w3t?Bs3|JyO;4y59vpvon(;g z<$`#iZ%dujb;6S3-};fODW-0cAcc`2R@%=)ryZ0SATbU}G9bwul4OIlKMe3*`vWsL_XYA@=+|}jwb(viqjJvwL_)FY0 zb8KLd1ahww~2`k8w(CP&-k@$LMzg2dmP@0|zsavM}6zs`?UPvs~T+gpI>#e0* z;!N_|%ll6JRj>qy(}x`RJWQ)7S^y&clRPf|mb919t1N{Iw;POOEA+jk$UBUA(96!V zRihwx_kuh)F3u-M#BWo@*)t#uW!`SU8Nqc!+Te?57iEQQb=dXExOkkpJdN5NiKDlr zaL23l?GHQo=p7~f`NVPYlXPYhk8W=@4lqnOqCl9aHX9A6>buQ`W$YVO8g|{`lVD)Q5fR?FV{?zsiS5kH@_~FX z%1Ml(L3P_TzYkYsrQaOiLv^%GQFBEQq17GRYjfv^qL{rzZ#=4Gzoa@A96D-9EaXRM zR=l0ROsB-d{Iz6Mp?>KF9VpRXh~a@_wDIWNz`O+b^k8sj;T7)V3|)F5l$l$%G$?}4o3*kQ(iAxkd?P| zr)F2`j&FytTejy`EiqeM&R)dTmXW-OkOE>QxbN_WU2`8eq2jN%9G(^bEl$%PiK)`~a05)r z!_ih+>g^`4IxN~T{<2`DiPCk9pjKhy>?)78VjTl##HXc;YSfJP#n+|z!hss2{`)|F zCr+7HPa#)DsNVZwZ86a|;PD!2Wt@jh}JNPYmsQm(krRhNMcwJW?? zbv%#Xz*!8wdbl4dYfZPox5VSokuyI-xeVv1oZ;8dIk)${fZ&0!;zf|c=TND^2|}4A zE{?sJi0}sCBout?n7IVpb65-qvFSV(e;ga9-w}Tv8{haf*Z?S`qhYyxG?bcN{~fR= zL&L4Nn%u9sx2D^^Tk9V{d?#K;g2yh5HQM#odjH-*)Z{TF_>smnB={}DuK)=nkn@|( zn%9TT9}{SHxHDSovpfQqu9!SNx`Evv9nDaJIt<{ffCRsEqPlTBl+hXDnE!!y?4uaS vLVdB`WbK->gd5_W0Ft69_-O3^Q?vve%ws4`$-10~8A<&meO@m~iKYJmC8%~4 diff --git a/MDAF/__pycache__/__init__.cpython-39.pyc b/MDAF/__pycache__/__init__.cpython-39.pyc index da1d00d3a6d3801f3e58d4b3a63f1c38adac90b3..4900808f00ff53046a6124e43289ccc9d46a3f1e 100644 GIT binary patch delta 118 zcmey#IFpGtk(ZZ?0SI=>9!zMQ$ScceGErMYkRgR7has0GiiMFOg*BK#lWk&zo`ojk zEzW|R{F1cNyyRj(P1akSzAlb#dLW{R31~zSGl*aT5v)LBB|{NAh|NB6jVl)$kj29Y Ff&fxO7&ia_ delta 86 zcmbQq^plY{k(ZZ?0SL;}RwpD*