Current Problem
Currently, the Specification class is a super class of PenaltyModel. This is a bit confusing as Specification objects get passed to penaltymodel-mip, -maxgap, and -lp in order to generate a PenaltyModel object.
This also leads to issues between classical_gap and min_classical_gap in PR #74. (Most notably that the subclass classical_gap arg gets passed to the super's min_classical_gap).
Proposed Solution
Refactor the code so that PenaltyModel is a subclass of BQM
Current Problem
Currently, the Specification class is a super class of PenaltyModel. This is a bit confusing as Specification objects get passed to penaltymodel-mip, -maxgap, and -lp in order to generate a PenaltyModel object.
This also leads to issues between
classical_gapandmin_classical_gapin PR #74. (Most notably that the subclassclassical_gaparg gets passed to the super'smin_classical_gap).Proposed Solution
Refactor the code so that PenaltyModel is a subclass of BQM