Software framework for optimization problems and meta-heuristics based on scripting language

S Masrom, S.Z.Z. Abidin, N Omar, Z.I. Rizman
2018 Journal of Fundamental and Applied Sciences  
Since most researchers working algorithm for their specific optimization problem, the task of selecting, modifying and extending codes from rapid software framework is very likely to occur. Software framework enables design and codes reuse meta-heuristics. This paper presents a review of the available meta-heuristics and summarize some important fea about a new software framework based on scripting language is given. Furthermore, the scripting language that was used to develop a meta
more » ... on is evaluated according to the conciseness aspects. This results indicate that the program codes with JAVA codes. Since most researchers working in meta-heuristics fields are required to develop their own algorithm for their specific optimization problem, the task of selecting, modifying and extending codes from rapid software framework is very likely to occur. Software framework codes reuses to allow faster programming development of the paper presents a review of the available rapid software framework for heuristics and summarize some important features of the rapid software. A software framework based on scripting language is given. Furthermore, the scripting language that was used to develop a meta-heuristics algorithm of PSO hybridization is evaluated according to the conciseness aspects. This results program codes with scripting language has more conciseness that the main oftware heuristics fields are required to develop their own algorithm for their specific optimization problem, the task of selecting, modifying and extending codes from rapid software framework is very likely to occur. Software framework to allow faster programming development of the rapid software framework for tures of the rapid software. A description software framework based on scripting language is given. Furthermore, the heuristics algorithm of PSO-GA hybridization is evaluated according to the conciseness aspects. This results has clearly scripting language has more conciseness that the main heuristics. Research Article Special Issue S. Masrom et al. J Fundam Appl Sci. 2017, 9(5S), 33-48 Alongside this, GUI is limited in providing the precise textual codes. As discussed previously, to convey information with GUI sometimes demands more pages than textual codes. When considering to support both an easy and concise programming, DSL should be considered as the best programming platform at the frontend of software compared to GUI and GPL. Fig. 3 illustrates the role of DSL in a reusable software. Fig. 3.Programming approaches with GUI, DSL and GPL It can be depicted in the Fig. 3 that a DSL can be integrated with GUI or operated as an independent mechanism. Although without GUI, a DSL still can enable easy implementation, but more flexible than GUI [24] and more concise than GPL. Since this research attempts to produce a DSL for PSO-GA [22] hybrids, to review the existing DSL for meta-heuristics is a worthwhile. In this paper, the review focuses on the type of back-end software and the loop abstraction. 2.7.Back-End Software for DSL As previously discussed, the back-end software for a DSL or scripting language can be designed as a software library or software framework. The benefits that have been discussed S. Masrom et al. J Fundam Appl Sci. 2017, 9(5S), 33-48 41 suggest that it can be useful to know which one is more widely used by the existing DSLs of meta-heuristics and what types of paradigms the software largely provides. Table 1 illustrates the types of back-end software of the exiting DSLs. Table 1.Back-end software of existing DSLs for meta-heuristics Software Software Library Software Framework Meta-Heuristics Paradigm EASEA[8] X Single, Hybridization  main JAVA-The relevant codes for defining a program in the JAVA software framework are: import net.source forge: jswarm_pso.*;import java.io.*; public static void main(String[] args) 4.2.Experiment Specifications  The proposed scripting language can be written as: SGCrossoverMutation(Name CMR;ENum 50; Iter 3000;PSize 40);.  The main JAVA codes can be written in the JAVA software framework as: int numberofexperim = 50;double[] chibestf = new double[numofexperim]; double bestf = 0.0; double stddeviation = 0.0;double ch = 0.0; int converg = 0; int S. Masrom et al. J Fundam Appl Sci. 2017, 9(5S), 33-48 44 avgconverg = 0; int totalconverg = 0; for(int i = 0; i< numberofexperim; i++) double[] convergearray = new double [numberofiterations]; system.out.println("The best fitness is : "+ c +""+chibest f[c]); bestf+ = chibest f [c]; system.out.println("The totalbest fitness : "+bestf ); system:out:println("The average best fitness : " + bestf =numberofexperim); stddev+ = math.pow(chibestf [K],(bestf =numberofexperim),2); 4.3. General Specifications  The few codes of the scripting language are: SEARCHSPACE(particle,40);PROBLEM(Ackley,min);  The main JAVA codes that can be written in the JAVA software framework are: package net.sourceforge. jswarmpso.Ackley;Particle particles[]; ParticleUpdate particleUpdate; Swarm swarm=new Swarm(40,newMyParticle(),newMyFitnessFunction()); public MyFitnessFunction().super( false);swarm:initialization(); 4.4.Update Specifications  The only codes to update solutions in the scripting language are: Update(inertia[const 0.3];c1[const 1.5];c2[const 1.5];MxP 10.0;MnP 5.0;MxV 10.0;MnV 5.0);  Some of the relevant JAVA codes in the JAVA software framework are: Swarm.setInertia(0.5);swarm.setGlobalIncrement(1.5); Swarm.setParticleIncrement(2:0);swarm.setMaxPosition(10); Swarm.setMinPosition(5);swarm.setMaxMinVelocity(10); Swarm.evaluate();for(int i = 0; i< numberofparticle; i++)swarm.update(); Crossover Specifications  The proposed scripting language can be written as the following statement for crossover specifications: Crossover ( Crossoverrate[const 0.8]; Crossoperation[pbest];Selectionoperation[rouletewheel]);
doi:10.4314/jfas.v9i5s.4 fatcat:ar36bfc3nzg6zctlqtfms2r3ou