Kushlendra Mishra's Thesis Page

Learning Expert Patterns of Behaviour from Multi-objective Design

Kushlendra Mishra

Supervisor: Prof. Amitabha Mukerjee


Documents

Multi-objective optimization: Example Problems

We use the NSGA code from Kanpur Genetic Algorithms Laboratory. Download our code: [designProbs.zip]

  To run the code on any of the problems below:
  - uncomment the relevant constant (e.g. GT = gear train problem) in global.h
  and comment out all others.  These constants are used in deciding the mutation
  and crossover aspects for certain problems.  
  - note that the file "problemdefs.c" from the original NSGA code has been 
  replaced by "designProbs.c" 
  - at runtime, call the ./nsga2r <randseed>  < inputfile (e.g. "nsga2r 0.654 <  bdcpm.in" for the BDCPM problem)
				
  - to edit the problem behaviour, search for the relevant constant and edit. 
				
The design codes for the following systems are included: The code generates a file "myout.out" which contains the estimated pareto solutions. The first n columns are the n objectives, and the last d columns are the design variables. You may now wish to change the filename to "clutch.out", say.

You may need to run local search on this (p. 18-19 of thesis). The code for localsearch is here. Follow the instructions in the README file to run local search. Local search code writes its output in the "lsout.txt" file.

The non-dominated fronts computed in this process are now passed to the clustering and manifold discovery computation.

Clustering

The clustering algorithm is a derivative of DBSCAN as described in p.21-25 of thesis. The code is written in python.

Download: [mfcluster.zip].
The parameters of the algorithm are specified in the class "glb".

To run the code...
python mfcluster.py <no of columns to skip in distance calculation> <inputfilepath>
Two output files are produced in the same directory as the input file. One file has the input data points with cluster labels in the first column The other file has information on the clusters. Names of the output files are similar to the input files. objective values as well as the decision variable values.

Manifold discovery

You can run the manifold discovery algorithm on the entire dataset or on the clusters as discovered using the clustering algorithm above. This part of the code is in MATLAB.

You select clusters from the output of the above using this MATLAB script xclusters.m. It generates a cell-array with each cell containing the indices of points in one cluster.

Manifolds are discovered only in the decision space (last d columns of the output file)

We use a variety of manifold discovery algorithms. We either use PCA (MATLAB function princomp) for linear manifolds, or Isomap for non-linear. For Isomap, we use the code from Isomap website. Just add the relevant calls to the .m file above. The plots are generated using matlab plotting functions.

Old results

See here for older results.