StateGoal should use canonical state as function key
when setting the function key in state goal, it should do something like this:
canonical, sign = optimization_problem.alias_relation.canonical_signed(state)
self.function_key = canonical if sign > 0.0 else '-' + canonical