Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify optimizer guarantees #7030

Merged
merged 4 commits into from
Dec 4, 2023

Conversation

hexagonrecursion
Copy link
Contributor

To me as a layperson from outside your theoretical field the phrasing such as "model meets the objectives", "solves objectives" and "check satisfiability while optimizing objective functions" sounds ambiguous. To me this phrasing sounds like it could mean either of the two options:

  1. Best effort - try to find an optimal solution, but it's ok if you find a sub-optimal solution or if you can't prove that there are no better solutions
  2. All or nothing - either find an optimal solution and prove that it is optimal or fail

From the C API documentation and from several bug reports about non-optimal solutions I have inferred that the second interpretation is correct.

Here is my attempt to document the guarantees given by the optimizer interface

The word "optimal" sounds unambiguous to me. If something is sub-optimal than it is not optimal. The words "optimize", "optimization" and "objective" on the other hand often do not imply that the result is perfect.

@hexagonrecursion
Copy link
Contributor Author

I'll think about this. Especially about the "Governing Law/Jurisdiction" section.

@hexagonrecursion
Copy link
Contributor Author

@microsoft-github-policy-service agree

@hexagonrecursion
Copy link
Contributor Author

Authorship clarification "Check consistency and produce optimal values." is copy-paste from your C API docs, "is optimal" is my own addition.

@NikolajBjorner NikolajBjorner merged commit 18f1492 into Z3Prover:master Dec 4, 2023
15 checks passed
@hexagonrecursion hexagonrecursion deleted the patch-1 branch December 4, 2023 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants