{"id":17656419,"url":"https://github.com/darnir/nsga2-windows","last_synced_at":"2025-03-30T09:44:29.691Z","repository":{"id":5150089,"uuid":"6318043","full_name":"darnir/nsga2-Windows","owner":"darnir","description":"IIT-Kanpur, Kangal Labs, NSGA Algorithm","archived":false,"fork":false,"pushed_at":"2012-10-21T07:19:54.000Z","size":128,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-05T11:49:00.945Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darnir.png","metadata":{"files":{"readme":"Readme","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-21T07:16:38.000Z","updated_at":"2023-07-25T11:50:19.000Z","dependencies_parsed_at":"2022-08-22T14:50:22.951Z","dependency_job_id":null,"html_url":"https://github.com/darnir/nsga2-Windows","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darnir%2Fnsga2-Windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darnir%2Fnsga2-Windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darnir%2Fnsga2-Windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darnir%2Fnsga2-Windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darnir","download_url":"https://codeload.github.com/darnir/nsga2-Windows/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246301954,"owners_count":20755512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-23T14:32:13.712Z","updated_at":"2025-03-30T09:44:29.665Z","avatar_url":"https://github.com/darnir.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is the Readme file for NSGA-II code.\n\n\nAbout the Algorithm\n--------------------------------------------------------------------------\nNSGA-II: Non-dominated Sorting Genetic Algorithm - II\n\nPlease refer to the following paper for details about the algorithm:\n\nAuthors: Dr. Kalyanmoy Deb, Sameer Agrawal, Amrit Pratap, T Meyarivan\nPaper Title: A Fast and Elitist multi-objective Genetic Algorithm: NSGA-II\nJournal: IEEE Transactions on Evolutionary Computation (IEEE-TEC)\nYear: 2002\nVolume: 6\nNumber: 2\nPages: 182-197\n---------------------------------------------------------------------------\n\n\nHow to compile and run the program\n---------------------------------------------------------------------------\nMakefile has been provided for compiling the program on linux (and unix-like)\nsystems. Edit the Makefile to suit your need. By default, provided Makefile\nattempts to compile and link all the existing source files into one single\nexecutable.\n\nName of the executable produced is: nsga2r\n\nTo run the program type: ./nsga2r random_seed\nHere random_seed is a real number in (0,1) which is used as a seed for random\nnumber generator.\nYou can also store all the input data in a text file and use a redirection\noperator to give the inputs to the program in a convenient way.\nYou may use the following syntax: ./nsga2r random_seed \u003cinp_file.in, where\n\"inp_file.in\" is the file that stores all the input parameters\n---------------------------------------------------------------------------\n\n\nAbout the output files\n---------------------------------------------------------------------------\ninitial_pop.out: This file contains all the information about initial population.\nfinal_pop.out: This file contains the data of final population.\nall_pop.out: This file containts the data of populations at all generations.\nbest_pop.out: This file contains the best solutions obtained at the end of simulation run.\nparams.out: This file contains the information about input parameters as read by the program.\n---------------------------------------------------------------------------\n\n\nAbout the input parameters\n---------------------------------------------------------------------------\npopsize: This variable stores the population size (a multiple of 4)\nngen: Number of generations\nnobj: Number of objectives\nncon: Number of constraints\nnreal: Number of real variables\nmin_realvar[i]: minimum value of i^{th} real variable\nmax_realvar[i]: maximum value of i^{th} real variable\npcross_real: probability of crossover of real variable\npmut_real: probability of mutation of real variable\neta_c: distribution index for real variable SBX crossover\neta_m: distribution index for real variable polynomial mutation\nnbin: number of binary variables\nnbits[i]: number of bits for i^{th} binary variable\nmin_binvar[i]: minimum value of i^{th} binary variable\nmax_binvar[i]: maximum value of i^{th} binary variable\npcross_bin: probability of crossover for binary variable\npmut_bin: probability of mutation for binary variable\n---------------------------------------------------------------------------\n\n\nDefining the Test Problem\n---------------------------------------------------------------------------\nEdit the source file problemdef.c to define your test problem. Some sample\nproblems (24 test problems from Dr. Deb's book - Multi-Objective Optimization\nusing Evolutionary Algorithms) have been provided as examples to guide you\ndefine your own objective and constraint functions. You can also link other\nsource files with the code depending on your need.\nFollowing points are to be kept in mind while writing objective and constraint\nfunctions.\n1. The code has been written for minimization of objectives (min f_i). If you want to\nmaximize a function, you may use negetive of the function value as the objective value.\n2. A solution is said to be feasible if it does not violate any of the constraints.\nConstraint functions should evaluate to a quantity greater than or equal to zero\n(g_j \u003e= 0), if the solution has to be feasible. A negetive value of constraint means,\nit is being violated.\n3. If there are more than one constraints, it is advisable (though not mandatory)\nto normalize the constraint values by either reformulating them or dividing them\nby a positive non-zero constant.\n---------------------------------------------------------------------------\n\n\nAbout the files\n---------------------------------------------------------------------------\nglobal.h: Header file containing declaration of global variables and functions\nrand.h: Header file containing declaration of variables and functions for random\nnumber generator\nallocate.c: Memory allocation and deallocation routines\nauxiliary.c: auxiliary routines (not part of the algorithm)\ncrossover.c: Routines for real and binary crossover\ncrowddist.c: Crowding distance assignment routines\ndecode.c: Routine to decode binary variables\ndominance.c: Routine to perofrm non-domination checking\neval.c: Routine to evaluate constraint violation\nfillnds.c: Non-dominated sorting based selection\ninitialize.c: Routine to perform random initialization to population members\nlist.c: A custom doubly linked list implementation\nmerge.c: Routine to merge two population into one larger population\nmutation.c: Routines for real and binary mutation\nnsga2r.c: Implementation of main function and the NSGA-II framework\nproblemdef.c: Test problem definitions\nrand.c: Random number generator related routines\nrank.c: Rank assignment routines\nreport.c: Routine to write the population information in a file\nsort.c: Randomized quick sort implementation\ntourselect.c: Tournament selection routine\n---------------------------------------------------------------------------\n\nPlease feel free to send questions/comments/doubts/suggestions/bugs\netc. to deb@iitk.ac.in\n\nDr. Kalyanmoy Deb\n25th March 2005\nhttp://www.iitk.ac.in/kangal/\n---------------------------------------------------------------------------\nCurrently being maintained by:\nDarshit Shah\nBITS-Pilani\n21st October, 2012\n---------------------------------------------------------------------------","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarnir%2Fnsga2-windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarnir%2Fnsga2-windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarnir%2Fnsga2-windows/lists"}