Constrained optimization using `projection_polyhedron` claims the polyhedron is empty when it is not.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 76
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 1
Description
A minimal example:
```.py
import jaxopt
import jax.numpy as jnp
def objective(x):
return -jnp.sum(jnp.dot(jnp.array([2, 1], jnp.float32), x))
def main():
a = jnp.array([[0, 0]], jnp.float32)
b = jnp.array([0], jnp.float32)
g = jnp.array([[0, 0], [0, 0]], jnp.float32)
h = jnp.array([0, 0], jnp.float32)
pg = jaxopt.ProjectedGradient(dummy, jaxopt.projection.projection_polyhedron, jit=False)
result = pg.run(jnp.array([0, 0], jnp.float32), hyperparams_proj=(a, b, g, h))
return result
```
The equality and inequality conditions are tautological, but running `main` still results in a raised error:
```py
ValueError: The polyhedron is empty.
```
Other variations of equality and inequality constraints that clearly correspond to non-empty polyhedrons likewise raise the same error. Any guidance or advice would be appreciated. Thank you.
Contributor guide
Assessment
This issue has not been assessed yet.