Multi-Objective Optimization case study

Max Conway

2017-10-24

Multi Objective Optimization tutorial

This tutorial is an in depth example of the use of this package in the context of an evolutionary optimization approach. It also shows the use of gene_eval to calculate a reaction speed from gene expressions.

First, we need to load the appropriate libraries. You may also need to load your optimization library of choice.

The evaluation function is where the actual metabolic simulations are performed. This has four main stages:

The gene-reaction associations (geneAssociation) are evaluated in the context of which genes are present in this iteration (genome).

We conduct a round of FBA, optimizing for maximum biomass.

Having found the maximum biomass production, we fix the biomass at this value (+/-1%).

With the biomass value fixed, we the optimize to maximize the synthetic objective.

The technique of fixing the biomass followed by maximizing the synthetic objective is important because there could still be slack in the model after the first optimization stage, and we wish to have a reliable synthetic objective estimate.

The second part of the NSGA-II evaluation procedure is finding the crowding distance. This is used to break ties between points in the same non-dominated front. In for each front, for each dimension, this function sorts the points into order along the dimension, and finds the normalized distance between the proceeding point and succeeding point. These values are summed up across each dimension to find the value for the point.