Thursday, December 17, 2015

Visualization of large multi-criteria result sets with plot.ly

Plot.ly is a great Javascript based visualization tool. Here I try to get a better understanding of a solution set of Pareto optimal points.

These are the results of a three objective Multiple Objective Mixed Integer Programming problem: each point is the optimal solution of a MIP. We plot here the objective function values, with the x coordinate representing Cost, the y-coordinate is for Weight and the z-coordinate indicates Performance.

In addition we trace here the distance between the Utopia point (best coordinate in each direction) and the Compromise point (closest feasible point to the Utopia point). This is the dark line between the two dark points. We can obtain the Compromise point using a MIQP model. In this special case we have enumerated all non-dominated points (for large problems that is not possible), and we can recover the Compromise points by just running through all points and selecting the one with minimum (normalized) distance. Distance is of course a somewhat difficult concept in this context, but users find this a useful tool.

Above we use the Performance to color the points. Below we have an alternative where we color the points according to their distance to the Utopia point.



The visualization is done inside the browser. It relies on WebGL. This seems to work with modern browsers on relatively new machines. Older machines may not work it looks like (may be hardware or configuration or outdated software). To try the interactive viewer, click here.

I got some help from from a Plotly engineer here. I can now change the picture using a small user interface in HTML.