# Estimation of Problem type

Flopt includes problem estimation mechanism, and provide an API for user to see the user defined problem type.

```
import flopt
x = flopt.Variable("x")
y = flopt.Variable("y")
prob = flopt.Problem()
prob += x + y
flopt.estimate_problem_type(prob)
>>> Problem
>>> Name: None
>>> Type : Problem
>>> sense : Minimize
>>> objective : x+y
>>> #constraints : 0
>>> #variables : 2 (Continuous 2)
>>>
>>> Problem components
>>> Variable: Continuous
>>> Objective: Linear
>>> Constraint: Non
>>>
>>> Problem classes
>>> --> lp
>>> --> mip
>>> ising
>>> --> quadratic
>>> permutation
>>> blackbox
>>> blackbox with interger variables
>>> --> nonlinear
>>> --> nonlinear with integer variables
```

Flopt characterize the problem with (variable type, objective, constraints). These element are defined https://github.com/nariaki3551/flopt/blob/373fd556266404c3e0e92429ea3d2934cf6c7b92/flopt/constants.py#L46-L104 . In addition, optimization problem types are defined in https://github.com/nariaki3551/flopt/blob/373fd556266404c3e0e92429ea3d2934cf6c7b92/flopt/solvers/auto_search/selector.py#L51-L109 .