The major piece of this PR is the development of a custom optigraph backend, as opposed to using a MOIU.CachingOptimizer. The main motivation for this is that since an optigraph model is defined by optinodes, it is more efficient to build the underlying optimization model directly as opposed to using a caching optimizer which introduces a superfluous extra modeling layer (i.e. nodes --> caching optimizer --> actual optimizer). The optinodes already act as a model cache which we use to build the backend model (i.e. nodes --> actual optimizer).
This PR also fixes a few things and increases test coverage.
The major piece of this PR is the development of a custom optigraph backend, as opposed to using a
MOIU.CachingOptimizer
. The main motivation for this is that since an optigraph model is defined by optinodes, it is more efficient to build the underlying optimization model directly as opposed to using a caching optimizer which introduces a superfluous extra modeling layer (i.e. nodes --> caching optimizer --> actual optimizer). The optinodes already act as a model cache which we use to build the backend model (i.e. nodes --> actual optimizer).This PR also fixes a few things and increases test coverage.