Unbounded model with binary variable and exp constraint

I suspect you are encountering a limitation of CVX’s successive approximation method to deal with the exp, namely that it doesn’t work correctly with integer or binary variables - see Optimization problems containing binary variable and CVX reports unbounded status but with viable solution .

MOSEK 9 will natively support the exponential cone, so once MOSEK 9 is released and a version of CVX is released which supports that caability, you might be in luck if you need that combination, which I don’t think you do for this problem.

You wrote g(x)=x for x<=1, but you constrain 1<= x, so that branch is not even used, and there would be no need for Big M modeling of a conditional. Do you want this to work for any value of b? I guess b is a lower bound on x? I presume you didn’t do the correct Big M modeling, and don’t even show b in your program. In any event, you can separately solve 2 problems, both of which have easy solutions not requiring an optimizer, and pick the “best”. If you need help to do the correct Big M modeling, read http://www.fico.com/en/node/8140?file=5125 .

As for the last constraint (branch), which is inconsistent between your description and code, I’ll address the description. b <= 2 - exp(1-x) can be re-written as 1-x <= log(2 - b). This will avoid use of exponential cone in CVX, because log(2 - b) is a constant (I’m assuming b is an input, not a CVX variable), so this is just an affine (linear) constraint.