zoukankan      html  css  js  c++  java
  • 多目标遗传算法 ------ NSGA-II (部分源码解析)README 算法的部分英文解释

    This is the Readme file for NSGA-II code.


    About the Algorithm
    --------------------------------------------------------------------------
    NSGA-II: Non-dominated Sorting Genetic Algorithm - II

    Please refer to the following paper for details about the algorithm:

    Authors: Dr. Kalyanmoy Deb, Sameer Agrawal, Amrit Pratap, T Meyarivan
    Paper Title: A Fast and Elitist multi-objective Genetic Algorithm: NSGA-II
    Journal: IEEE Transactions on Evolutionary Computation (IEEE-TEC)
    Year: 2002
    Volume: 6
    Number: 2
    Pages: 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 Makefile
    attempts to compile and link all the existing source files into one single
    executable.

    Name of the executable produced is: nsga2r

    To run the program type: ./nsga2r random_seed
    Here random_seed is a real number in (0,1) which is used as a seed for random
    number generator.
    You can also store all the input data in a text file and use a redirection
    operator 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 generations
    nobj: Number of objectives
    ncon: Number of constraints
    nreal: Number of real variables
    min_realvar[i]: minimum value of i^{th} real variable
    max_realvar[i]: maximum value of i^{th} real variable
    pcross_real: probability of crossover of real variable
    pmut_real: probability of mutation of real variable
    eta_c: distribution index for real variable SBX crossover
    eta_m: distribution index for real variable polynomial mutation
    nbin: number of binary variables
    nbits[i]: number of bits for i^{th} binary variable
    min_binvar[i]: minimum value of i^{th} binary variable
    max_binvar[i]: maximum value of i^{th} binary variable
    pcross_bin: probability of crossover for binary variable
    pmut_bin: probability of mutation for binary variable
    ---------------------------------------------------------------------------


    Defining the Test Problem
    ---------------------------------------------------------------------------
    Edit the source file problemdef.c to define your test problem. Some sample
    problems (24 test problems from Dr. Deb's book - Multi-Objective Optimization
    using Evolutionary Algorithms) have been provided as examples to guide you
    define your own objective and constraint functions. You can also link other
    source files with the code depending on your need.
    Following points are to be kept in mind while writing objective and constraint
    functions.
    1. The code has been written for minimization of objectives (min f_i). If you want to
    maximize 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 them
    by a positive non-zero constant.
    ---------------------------------------------------------------------------


    About the files
    ---------------------------------------------------------------------------
    global.h: Header file containing declaration of global variables and functions
    rand.h: Header file containing declaration of variables and functions for random
    number generator
    allocate.c: Memory allocation and deallocation routines
    auxiliary.c: auxiliary routines (not part of the algorithm)
    crossover.c: Routines for real and binary crossover
    crowddist.c: Crowding distance assignment routines
    decode.c: Routine to decode binary variables
    dominance.c: Routine to perofrm non-domination checking
    eval.c: Routine to evaluate constraint violation
    fillnds.c: Non-dominated sorting based selection
    initialize.c: Routine to perform random initialization to population members
    list.c: A custom doubly linked list implementation
    merge.c: Routine to merge two population into one larger population
    mutation.c: Routines for real and binary mutation
    nsga2r.c: Implementation of main function and the NSGA-II framework
    problemdef.c: Test problem definitions
    rand.c: Random number generator related routines
    rank.c: Rank assignment routines
    report.c: Routine to write the population information in a file
    sort.c: Randomized quick sort implementation
    tourselect.c: Tournament selection routine
    ---------------------------------------------------------------------------

    Please feel free to send questions/comments/doubts/suggestions/bugs
    etc. to deb@iitk.ac.in

    Dr. Kalyanmoy Deb
    25th March 2005
    http://www.iitk.ac.in/kangal/
    ---------------------------------------------------------------------------

  • 相关阅读:
    centos安装1
    centos安装
    Yii单表常用语句
    22.2015.08.18第二十三课mvc1,2(mvc环境搭建)
    21.2015.08.13第二十三课ado.net3(增删改查、get传值、post传值、SQL防注入、调存储过程、SQLHELPER)
    20.2015.8.12第二十二课ado.net1,2(增删改查代码)
    17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)
    16、2015.08.03第十七节课 C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)
    sql server 2008 相关错误整理(win7系统)
    刚刚接触的LINQ
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/6265486.html
Copyright © 2011-2022 走看看