add inverse optimization