⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 多目标遗传算法的程序
💻
字号:
This is the Readme file for NSGA-II code.About the Algorithm--------------------------------------------------------------------------NSGA-II: Non-dominated Sorting Genetic Algorithm - IIPlease refer to the following paper for details about the algorithm:Authors: Dr. Kalyanmoy Deb, Sameer Agrawal, Amrit Pratap, T MeyarivanPaper Title: A Fast and Elitist multi-objective Genetic Algorithm: NSGA-IIJournal: IEEE Transactions on Evolutionary Computation (IEEE-TEC)Year: 2002Volume: 6Number: 2Pages: 182-197---------------------------------------------------------------------------How to compile and run the program---------------------------------------------------------------------------Makefile has been provided for compiling the program on linux (and unix-like)systems. Edit the Makefile to suit your need. By default, provided Makefileattempts to compile and link all the existing source files into one singleexecutable.Name of the executable produced is: nsga2rTo run the program type: ./nsga2r random_seedHere random_seed is a real number in (0,1) which is used as a seed for randomnumber generator.You can also store all the input data in a text file and use a redirectionoperator to give the inputs to the program in a convenient way.You may use the following syntax: ./nsga2r random_seed <inp_file.in, where"inp_file.in" is the file that stores all the input parameters---------------------------------------------------------------------------About the output files---------------------------------------------------------------------------initial_pop.out: This file contains all the information about initial population.final_pop.out: This file contains the data of final population.all_pop.out: This file containts the data of populations at all generations.best_pop.out: This file contains the best solutions obtained at the end of simulation run.params.out: This file contains the information about input parameters as read by the program.---------------------------------------------------------------------------About the input parameters---------------------------------------------------------------------------popsize: This variable stores the population size (a multiple of 4)ngen: Number of generationsnobj: Number of objectivesncon: Number of constraintsnreal: Number of real variablesmin_realvar[i]: minimum value of i^{th} real variablemax_realvar[i]: maximum value of i^{th} real variablepcross_real: probability of crossover of real variablepmut_real: probability of mutation of real variableeta_c: distribution index for real variable SBX crossovereta_m: distribution index for real variable polynomial mutationnbin: number of binary variablesnbits[i]: number of bits for i^{th} binary variablemin_binvar[i]: minimum value of i^{th} binary variablemax_binvar[i]: maximum value of i^{th} binary variablepcross_bin: probability of crossover for binary variablepmut_bin: probability of mutation for binary variable---------------------------------------------------------------------------Defining the Test Problem---------------------------------------------------------------------------Edit the source file problemdef.c to define your test problem. Some sampleproblems (24 test problems from Dr. Deb's book - Multi-Objective Optimizationusing Evolutionary Algorithms) have been provided as examples to guide youdefine your own objective and constraint functions. You can also link othersource files with the code depending on your need.Following points are to be kept in mind while writing objective and constraintfunctions.1. The code has been written for minimization of objectives (min f_i). If you want tomaximize a function, you may use negetive of the function value as the objective value.2. A solution is said to be feasible if it does not violate any of the constraints.Constraint functions should evaluate to a quantity greater than or equal to zero(g_j >= 0), if the solution has to be feasible. A negetive value of constraint means,it is being violated.3. If there are more than one constraints, it is advisable (though not mandatory)to normalize the constraint values by either reformulating them or dividing themby a positive non-zero constant.---------------------------------------------------------------------------About the files---------------------------------------------------------------------------global.h: Header file containing declaration of global variables and functionsrand.h: Header file containing declaration of variables and functions for randomnumber generatorallocate.c: Memory allocation and deallocation routinesauxiliary.c: auxiliary routines (not part of the algorithm)crossover.c: Routines for real and binary crossovercrowddist.c: Crowding distance assignment routinesdecode.c: Routine to decode binary variablesdominance.c: Routine to perofrm non-domination checkingeval.c: Routine to evaluate constraint violationfillnds.c: Non-dominated sorting based selectioninitialize.c: Routine to perform random initialization to population memberslist.c: A custom doubly linked list implementationmerge.c: Routine to merge two population into one larger populationmutation.c: Routines for real and binary mutationnsga2r.c: Implementation of main function and the NSGA-II frameworkproblemdef.c: Test problem definitionsrand.c: Random number generator related routinesrank.c: Rank assignment routinesreport.c: Routine to write the population information in a filesort.c: Randomized quick sort implementationtourselect.c: Tournament selection routine---------------------------------------------------------------------------Please feel free to send questions/comments/doubts/suggestions/bugsetc. to deb@iitk.ac.inDr. Kalyanmoy Deb25th March 2005http://www.iitk.ac.in/kangal/---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -