Question Answering
Rust
English
optimization-ai999x
optimization
operations-research
linear-programming
integer-programming
network-optimization
queueing
inventory
scheduling
game-theory
mcda
linear-and-integer-programming
convex-and-nonlinear-optimisation
assignment
optimization-solver
step-by-step-solutions
homework-help
offline
zero-hallucination
python
ai999x
Eval Results (legacy)
Commit ·
8945b6e
0
Parent(s):
optimization-ai999x 1.6.0: Apache-2.0 release
Browse files- .gitattributes +44 -0
- CITATION.cff +24 -0
- LICENSE +204 -0
- NOTICE +8 -0
- README.md +1057 -0
- config.json +11 -0
- dist/optimization_ai999x-1.6.0-py3-none-any.whl +3 -0
- docs/optimization_ai999x_capabilities.html +0 -0
- docs/optimization_ai999x_capabilities.md +0 -0
- docs/optimization_ai999x_capabilities.pdf +3 -0
- docs/optimization_ai999x_rust_guide.html +0 -0
- docs/optimization_ai999x_rust_guide.md +0 -0
- docs/optimization_ai999x_rust_guide.pdf +3 -0
- evaluation/KNOWLEDGE_CARD.md +36 -0
- evaluation/release_gate.md +27 -0
- figures/johnson-two-machine-gantt.svg +1 -0
- figures/lp-two-variable-graphical-region.svg +1 -0
- figures/shortest-path-graph.svg +1 -0
- figures/steepest-descent-step-iteration.svg +1 -0
- figures/transportation-problem-heatmap.svg +1 -0
.gitattributes
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
dist/optimization_ai999x-1.0.0-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
docs/optimization_ai999x_capabilities.pdf filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
dist/optimization_ai999x-1.0.1-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
dist/optimization_ai999x-1.0.2-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
dist/optimization_ai999x-1.0.3-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
docs/optimization_ai999x_rust_guide.pdf filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
dist/optimization_ai999x-1.1.0-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
dist/optimization_ai999x-1.5.0-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
dist/optimization_ai999x-1.6.0-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
CITATION.cff
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cff-version: 1.2.0
|
| 2 |
+
message: "If you use this software, please cite it as below."
|
| 3 |
+
title: "optimization-ai999x: an offline, verified optimization solver"
|
| 4 |
+
authors:
|
| 5 |
+
- family-names: Farabi
|
| 6 |
+
given-names: Ibnul Jaif
|
| 7 |
+
affiliation: AI999X
|
| 8 |
+
version: 1.6.0
|
| 9 |
+
license: Apache-2.0
|
| 10 |
+
url: "https://huggingface.co/AI999X/optimization-ai999x"
|
| 11 |
+
repository-code: "https://github.com/AI999X/optimization-ai999x"
|
| 12 |
+
keywords:
|
| 13 |
+
- optimization
|
| 14 |
+
- operations-research
|
| 15 |
+
- linear-programming
|
| 16 |
+
- integer-programming
|
| 17 |
+
- network-optimization
|
| 18 |
+
- queueing
|
| 19 |
+
- inventory
|
| 20 |
+
- scheduling
|
| 21 |
+
- game-theory
|
| 22 |
+
- mcda
|
| 23 |
+
- ai999x
|
| 24 |
+
- offline
|
LICENSE
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Copyright 2026 AI999X Labs and Ibnul Jaif Farabi
|
| 2 |
+
Contact: support@ai999x.com · ibnuljaiffarabi@ai999x.com · https://www.ai999x.com
|
| 3 |
+
|
| 4 |
+
Apache License
|
| 5 |
+
Version 2.0, January 2004
|
| 6 |
+
http://www.apache.org/licenses/
|
| 7 |
+
|
| 8 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 9 |
+
|
| 10 |
+
1. Definitions.
|
| 11 |
+
|
| 12 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 13 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 14 |
+
|
| 15 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 16 |
+
the copyright owner that is granting the License.
|
| 17 |
+
|
| 18 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 19 |
+
other entities that control, are controlled by, or are under common
|
| 20 |
+
control with that entity. For the purposes of this definition,
|
| 21 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 22 |
+
direction or management of such entity, whether by contract or
|
| 23 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 24 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 25 |
+
|
| 26 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 27 |
+
exercising permissions granted by this License.
|
| 28 |
+
|
| 29 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 30 |
+
including but not limited to software source code, documentation
|
| 31 |
+
source, and configuration files.
|
| 32 |
+
|
| 33 |
+
"Object" form shall mean any form resulting from mechanical
|
| 34 |
+
transformation or translation of a Source form, including but
|
| 35 |
+
not limited to compiled object code, generated documentation,
|
| 36 |
+
and conversions to other media types.
|
| 37 |
+
|
| 38 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 39 |
+
Object form, made available under the License, as indicated by a
|
| 40 |
+
copyright notice that is included in or attached to the work
|
| 41 |
+
(an example is provided in the Appendix below).
|
| 42 |
+
|
| 43 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 44 |
+
form, that is based on (or derived from) the Work and for which the
|
| 45 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 46 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 47 |
+
of this License, Derivative Works shall not include works that remain
|
| 48 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 49 |
+
the Work and Derivative Works thereof.
|
| 50 |
+
|
| 51 |
+
"Contribution" shall mean any work of authorship, including
|
| 52 |
+
the original version of the Work and any modifications or additions
|
| 53 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 54 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 55 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 56 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 57 |
+
means any form of electronic, verbal, or written communication sent
|
| 58 |
+
to the Licensor or its representatives, including but not limited to
|
| 59 |
+
communication on electronic mailing lists, source code control systems,
|
| 60 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 61 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 62 |
+
excluding communication that is conspicuously marked or otherwise
|
| 63 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 64 |
+
|
| 65 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 66 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 67 |
+
subsequently incorporated within the Work.
|
| 68 |
+
|
| 69 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 70 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 71 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 72 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 73 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 74 |
+
Work and such Derivative Works in Source or Object form.
|
| 75 |
+
|
| 76 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 77 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 78 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 79 |
+
(except as stated in this section) patent license to make, have made,
|
| 80 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 81 |
+
where such license applies only to those patent claims licensable
|
| 82 |
+
by such Contributor that are necessarily infringed by their
|
| 83 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 84 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 85 |
+
institute patent litigation against any entity (including a
|
| 86 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 87 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 88 |
+
or contributory patent infringement, then any patent licenses
|
| 89 |
+
granted to You under this License for that Work shall terminate
|
| 90 |
+
as of the date such litigation is filed.
|
| 91 |
+
|
| 92 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 93 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 94 |
+
modifications, and in Source or Object form, provided that You
|
| 95 |
+
meet the following conditions:
|
| 96 |
+
|
| 97 |
+
(a) You must give any other recipients of the Work or
|
| 98 |
+
Derivative Works a copy of this License; and
|
| 99 |
+
|
| 100 |
+
(b) You must cause any modified files to carry prominent notices
|
| 101 |
+
stating that You changed the files; and
|
| 102 |
+
|
| 103 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 104 |
+
that You distribute, all copyright, patent, trademark, and
|
| 105 |
+
attribution notices from the Source form of the Work,
|
| 106 |
+
excluding those notices that do not pertain to any part of
|
| 107 |
+
the Derivative Works; and
|
| 108 |
+
|
| 109 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 110 |
+
distribution, then any Derivative Works that You distribute must
|
| 111 |
+
include a readable copy of the attribution notices contained
|
| 112 |
+
within such NOTICE file, excluding those notices that do not
|
| 113 |
+
pertain to any part of the Derivative Works, in at least one
|
| 114 |
+
of the following places: within a NOTICE text file distributed
|
| 115 |
+
as part of the Derivative Works; within the Source form or
|
| 116 |
+
documentation, if provided along with the Derivative Works; or,
|
| 117 |
+
within a display generated by the Derivative Works, if and
|
| 118 |
+
wherever such third-party notices normally appear. The contents
|
| 119 |
+
of the NOTICE file are for informational purposes only and
|
| 120 |
+
do not modify the License. You may add Your own attribution
|
| 121 |
+
notices within Derivative Works that You distribute, alongside
|
| 122 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 123 |
+
that such additional attribution notices cannot be construed
|
| 124 |
+
as modifying the License.
|
| 125 |
+
|
| 126 |
+
You may add Your own copyright statement to Your modifications and
|
| 127 |
+
may provide additional or different license terms and conditions
|
| 128 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 129 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 130 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 131 |
+
the conditions stated in this License.
|
| 132 |
+
|
| 133 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 134 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 135 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 136 |
+
this License, without any additional terms or conditions.
|
| 137 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 138 |
+
the terms of any separate license agreement you may have executed
|
| 139 |
+
with Licensor regarding such Contributions.
|
| 140 |
+
|
| 141 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 142 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 143 |
+
except as required for reasonable and customary use in describing the
|
| 144 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 145 |
+
|
| 146 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 147 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 148 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 149 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 150 |
+
implied, including, without limitation, any warranties or conditions
|
| 151 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 152 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 153 |
+
appropriateness of using or redistributing the Work and assume any
|
| 154 |
+
risks associated with Your exercise of permissions under this License.
|
| 155 |
+
|
| 156 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 157 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 158 |
+
unless required by applicable law (such as deliberate and grossly
|
| 159 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 160 |
+
liable to You for damages, including any direct, indirect, special,
|
| 161 |
+
incidental, or consequential damages of any character arising as a
|
| 162 |
+
result of this License or out of the use or inability to use the
|
| 163 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 164 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 165 |
+
other commercial damages or losses), even if such Contributor
|
| 166 |
+
has been advised of the possibility of such damages.
|
| 167 |
+
|
| 168 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 169 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 170 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 171 |
+
or other liability obligations and/or rights consistent with this
|
| 172 |
+
License. However, in accepting such obligations, You may act only
|
| 173 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 174 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 175 |
+
defend, and hold each Contributor harmless for any liability
|
| 176 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 177 |
+
of your accepting any such warranty or additional liability.
|
| 178 |
+
|
| 179 |
+
END OF TERMS AND CONDITIONS
|
| 180 |
+
|
| 181 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 182 |
+
|
| 183 |
+
To apply the Apache License to your work, attach the following
|
| 184 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 185 |
+
replaced with your own identifying information. (Don't include
|
| 186 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 187 |
+
comment syntax for the file format. We also recommend that a
|
| 188 |
+
file or class name and description of purpose be included on the
|
| 189 |
+
same "printed page" as the copyright notice for easier
|
| 190 |
+
identification within third-party archives.
|
| 191 |
+
|
| 192 |
+
Copyright 2026 AI999X Labs and Ibnul Jaif Farabi
|
| 193 |
+
|
| 194 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 195 |
+
you may not use this file except in compliance with the License.
|
| 196 |
+
You may obtain a copy of the License at
|
| 197 |
+
|
| 198 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 199 |
+
|
| 200 |
+
Unless required by applicable law or agreed to in writing, software
|
| 201 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 202 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 203 |
+
See the License for the specific language governing permissions and
|
| 204 |
+
limitations under the License.
|
NOTICE
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
AI999X
|
| 2 |
+
Copyright 2026 AI999X Labs and Ibnul Jaif Farabi
|
| 3 |
+
|
| 4 |
+
Licensed under the Apache License, Version 2.0 (see LICENSE).
|
| 5 |
+
|
| 6 |
+
support@ai999x.com
|
| 7 |
+
ibnuljaiffarabi@ai999x.com
|
| 8 |
+
https://www.ai999x.com
|
README.md
ADDED
|
@@ -0,0 +1,1057 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
license_link: LICENSE
|
| 4 |
+
library_name: optimization-ai999x
|
| 5 |
+
language:
|
| 6 |
+
- en
|
| 7 |
+
inference: false
|
| 8 |
+
pipeline_tag: question-answering
|
| 9 |
+
tags:
|
| 10 |
+
- optimization
|
| 11 |
+
- operations-research
|
| 12 |
+
- linear-programming
|
| 13 |
+
- integer-programming
|
| 14 |
+
- network-optimization
|
| 15 |
+
- queueing
|
| 16 |
+
- inventory
|
| 17 |
+
- scheduling
|
| 18 |
+
- game-theory
|
| 19 |
+
- mcda
|
| 20 |
+
- linear-and-integer-programming
|
| 21 |
+
- convex-and-nonlinear-optimisation
|
| 22 |
+
- assignment
|
| 23 |
+
- question-answering
|
| 24 |
+
- rust
|
| 25 |
+
- optimization-solver
|
| 26 |
+
- step-by-step-solutions
|
| 27 |
+
- homework-help
|
| 28 |
+
- offline
|
| 29 |
+
- zero-hallucination
|
| 30 |
+
- python
|
| 31 |
+
- ai999x
|
| 32 |
+
model-index:
|
| 33 |
+
- name: optimization-ai999x
|
| 34 |
+
results:
|
| 35 |
+
- task:
|
| 36 |
+
type: question-answering
|
| 37 |
+
name: optimization question answering
|
| 38 |
+
dataset:
|
| 39 |
+
name: "Golden answers (247 documented questions, Windows + Linux Python 3.10-3.14)"
|
| 40 |
+
type: ai999x-evaluation
|
| 41 |
+
metrics:
|
| 42 |
+
- type: accuracy
|
| 43 |
+
value: 1.0
|
| 44 |
+
name: "identical on every platform"
|
| 45 |
+
---
|
| 46 |
+
# optimization-ai999x: offline, verified optimization solver with step-by-step answers
|
| 47 |
+
|
| 48 |
+
**[Desktop app & command line](https://www.ai999x.com/desktop-cli/)** · **[Compute in your browser](https://www.ai999x.com/models/optimization-ai999x/#try)** · **[Install (Python)](https://pypi.org/project/optimization-ai999x/)** · **[Guides](https://huggingface.co/AI999X/optimization-ai999x/tree/main/docs)** · **[Evaluation](https://huggingface.co/AI999X/optimization-ai999x/tree/main/evaluation)** · **[AI999X on Hugging Face](https://huggingface.co/AI999X)** · **[Website](https://ai999x.com)** · **[Support: Buy Me a Coffee](https://buymeacoffee.com/ibnuljaiffarabi)**
|
| 49 |
+
|
| 50 |
+
License: Apache-2.0 · Author: Ibnul Jaif Farabi (creator and engineer) · Organization: AI999X · Version 1.6.0
|
| 51 |
+
|
| 52 |
+
Field: **Mathematics & Statistics** · Tasks: Question Answering
|
| 53 |
+
|
| 54 |
+
optimization-ai999x is an offline, deterministic optimization solver written in Rust: a desktop app, a command-line program, a browser module and a Python package. It answers optimization questions with verified results from 73 certified capabilities, gives 247 documented answers identically on Windows and Linux, and refuses rather than guesses when an answer cannot be verified.
|
| 55 |
+
|
| 56 |
+
**optimization-ai999x** reads a question in plain English (or a typed call), picks a certified optimization capability, computes the answer exactly, checks it, and returns the result with its steps, units, LaTeX and assumptions, or a refusal that says what is missing. It runs fully offline on any CPU, needs no GPU, no API key and no internet, and is built to give **zero wrong answers**: when it is not sure, it refuses instead of guessing.
|
| 57 |
+
|
| 58 |
+
[](https://buymeacoffee.com/ibnuljaiffarabi)    
|
| 59 |
+
|
| 60 |
+
**Run it your way.** optimization-ai999x comes as the AI999X desktop app and as the command-line program `optimization` for Windows and Linux, runs in your browser as WebAssembly, and installs as a Python package. The desktop app, the command line and the browser run the same compiled Rust program on your own device: offline, no Python needed.
|
| 61 |
+
|
| 62 |
+
## Get it
|
| 63 |
+
|
| 64 |
+
| Way to run it | For | Get it |
|
| 65 |
+
|---|---|---|
|
| 66 |
+
| **AI999X Optimization desktop app** 1.5.0 | Windows, Linux. This model in its own app: search, ask in words, forms, live figures, explanations, offline | [Windows (x86-64)](https://downloads.ai999x.com/desktop/1.5.0/ai999x-optimization-1.5.0-windows-x86_64.zip) · [Linux (x86-64)](https://downloads.ai999x.com/desktop/1.5.0/ai999x-optimization-1.5.0-linux-x86_64.tar.gz) |
|
| 67 |
+
| **AI999X desktop app** 1.5.0 | Windows, Linux. Every AI999X model in one app: search, ask in words, forms, live figures, explanations, offline | [Windows (x86-64)](https://downloads.ai999x.com/desktop/1.5.0/ai999x-1.5.0-windows-x86_64.zip) · [Linux (x86-64)](https://downloads.ai999x.com/desktop/1.5.0/ai999x-1.5.0-linux-x86_64.tar.gz) |
|
| 68 |
+
| **Command line** (`optimization`) | Windows, Linux. One program per model, offline, no Python | [Windows (x86-64)](https://downloads.ai999x.com/desktop/1.5.0/ai999x-cli-1.5.0-windows-x86_64.zip) · [Linux (x86-64)](https://downloads.ai999x.com/desktop/1.5.0/ai999x-cli-1.5.0-linux-x86_64.tar.gz) |
|
| 69 |
+
| **In your browser** | any device. Nothing to install | [Compute on the model page](https://www.ai999x.com/models/optimization-ai999x/#try) |
|
| 70 |
+
| **Python** | Python 3.10+ | `pip install optimization-ai999x` |
|
| 71 |
+
|
| 72 |
+
Checksums: [SHA256SUMS](https://downloads.ai999x.com/desktop/1.5.0/SHA256SUMS) · every version: [https://downloads.ai999x.com/desktop/latest/](https://downloads.ai999x.com/desktop/latest/) · install guide: [desktop & command line](https://www.ai999x.com/desktop-cli/)
|
| 73 |
+
|
| 74 |
+
## Quick start
|
| 75 |
+
|
| 76 |
+
### Desktop app
|
| 77 |
+
|
| 78 |
+
Download **AI999X Optimization** for your system (above), unpack it and start it; type a question in words or pick a capability, fill in the form and press Compute. Figures and an explanation of the answer appear beside it. The AI999X desktop app has the same, with Optimization among all AI999X models.
|
| 79 |
+
|
| 80 |
+
Linux, from a terminal:
|
| 81 |
+
|
| 82 |
+
```bash
|
| 83 |
+
curl -LO https://downloads.ai999x.com/desktop/1.5.0/ai999x-optimization-1.5.0-linux-x86_64.tar.gz
|
| 84 |
+
curl -LO https://downloads.ai999x.com/desktop/1.5.0/SHA256SUMS
|
| 85 |
+
sha256sum -c --ignore-missing SHA256SUMS
|
| 86 |
+
tar xzf ai999x-optimization-1.5.0-linux-x86_64.tar.gz
|
| 87 |
+
./ai999x-optimization-1.5.0-linux-x86_64/ai999x-optimization
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
### Command line
|
| 91 |
+
|
| 92 |
+
Linux:
|
| 93 |
+
|
| 94 |
+
```bash
|
| 95 |
+
curl -LO https://downloads.ai999x.com/desktop/1.5.0/ai999x-cli-1.5.0-linux-x86_64.tar.gz
|
| 96 |
+
curl -LO https://downloads.ai999x.com/desktop/1.5.0/SHA256SUMS
|
| 97 |
+
sha256sum -c --ignore-missing SHA256SUMS
|
| 98 |
+
mkdir -p ~/.local/share && tar xzf ai999x-cli-1.5.0-linux-x86_64.tar.gz -C ~/.local/share
|
| 99 |
+
echo 'export PATH="$HOME/.local/share/ai999x-cli-1.5.0-linux-x86_64:$PATH"' >> ~/.bashrc && source ~/.bashrc
|
| 100 |
+
optimization --version
|
| 101 |
+
```
|
| 102 |
+
|
| 103 |
+
Windows (PowerShell):
|
| 104 |
+
|
| 105 |
+
```powershell
|
| 106 |
+
$F = "ai999x-cli-1.5.0-windows-x86_64.zip"
|
| 107 |
+
Invoke-WebRequest "https://downloads.ai999x.com/desktop/1.5.0/$F" -OutFile $F
|
| 108 |
+
Invoke-WebRequest "https://downloads.ai999x.com/desktop/1.5.0/SHA256SUMS" -OutFile SHA256SUMS
|
| 109 |
+
(Get-FileHash $F -Algorithm SHA256).Hash.ToLower() -eq ((Select-String -SimpleMatch $F SHA256SUMS).Line -split ' ')[0]
|
| 110 |
+
Expand-Archive $F -DestinationPath "$env:LOCALAPPDATA\AI999X" -Force
|
| 111 |
+
$D = "$env:LOCALAPPDATA\AI999X\ai999x-cli-1.5.0-windows-x86_64"; $env:Path += ";$D"
|
| 112 |
+
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$D", "User")
|
| 113 |
+
optimization --version
|
| 114 |
+
```
|
| 115 |
+
|
| 116 |
+
Every command below was run as shown; the text under it is what the program printed.
|
| 117 |
+
|
| 118 |
+
**Ask in words**: Write the question as you would say it: the program reads the quantities and their units, picks the capability and answers.
|
| 119 |
+
|
| 120 |
+
```console
|
| 121 |
+
$ optimization ask "Solve the transportation problem with supply [20, 30], demand [10, 25, 15] and cost matrix [[2, 3, 1], [5, 4, 8]]."
|
| 122 |
+
Read as: Transportation problem (minimum shipping cost)
|
| 123 |
+
min_cost = 150
|
| 124 |
+
shipments = [[5.0,0.0,15.0],[5.0,25.0,0.0]]
|
| 125 |
+
plan_unique = yes
|
| 126 |
+
dual = [-3.0,0.0,5.0,4.0,4.0]
|
| 127 |
+
by: Transportation problem (minimum shipping cost) (the transportation LP solved exactly (rational simplex), certified by its dual (u_i + v_j <= c_ij))
|
| 128 |
+
assumes: total supply >= total demand (surplus stays at the sources at no cost); at most 60 routes
|
| 129 |
+
```
|
| 130 |
+
|
| 131 |
+
**What a capability needs**: The equation or method, every input and output with its SI unit. Read this before solve: it tells you the input names.
|
| 132 |
+
|
| 133 |
+
```console
|
| 134 |
+
$ optimization info eoq
|
| 135 |
+
Economic order quantity (EOQ)
|
| 136 |
+
minimise D S / Q + H Q / 2 (at the optimum ordering cost equals holding cost)
|
| 137 |
+
in D demand per period (units, e.g. per year) [1]
|
| 138 |
+
in S fixed cost per order [1]
|
| 139 |
+
in H holding cost per unit per period [1]
|
| 140 |
+
out Q economic order quantity [1]
|
| 141 |
+
out total_cost minimum ordering + holding cost per period [1]
|
| 142 |
+
out orders_per_period number of orders per period [1]
|
| 143 |
+
out cycle_time time between orders (in periods) [1]
|
| 144 |
+
```
|
| 145 |
+
|
| 146 |
+
**Solve**: Inputs as name=value, each with any unit of the right kind. The answer lists every output, the method used, each input converted to SI, and the conditions the answer assumes.
|
| 147 |
+
|
| 148 |
+
```console
|
| 149 |
+
$ optimization solve eoq D=1200 S=50 H=3
|
| 150 |
+
Q = 200
|
| 151 |
+
total_cost = 600
|
| 152 |
+
orders_per_period = 6
|
| 153 |
+
cycle_time = 0.1666666667
|
| 154 |
+
by: Economic order quantity (EOQ) (minimise D S / Q + H Q / 2 (at the optimum ordering cost equals holding cost))
|
| 155 |
+
D = 1200
|
| 156 |
+
S = 50
|
| 157 |
+
H = 3
|
| 158 |
+
assumes: D, S, H > 0; constant demand, instant replenishment, no shortages
|
| 159 |
+
```
|
| 160 |
+
|
| 161 |
+
**Many questions at once**: One JSON request per line in, one JSON answer per line out, in order: for scripts, notebooks and agents (the program starts once). In PowerShell: Get-Content cases.jsonl | optimization batch
|
| 162 |
+
|
| 163 |
+
`cases.jsonl`:
|
| 164 |
+
|
| 165 |
+
```json
|
| 166 |
+
{"key": "eoq", "inputs": {"D": 1200, "S": 50, "H": 3}}
|
| 167 |
+
{"key": "ahp_consistency_ratio", "inputs": {"judgments": "[3, 5, 2]"}}
|
| 168 |
+
```
|
| 169 |
+
|
| 170 |
+
```console
|
| 171 |
+
$ optimization batch < cases.jsonl
|
| 172 |
+
{"outcome":"SOLVED","message":"","value":200.0,"unit":"","solved_for":"Q","si":[["D",1200.0],["S",50.0],["H",3.0]],"values":[["Q",200.0,""],["total_cost",600.0,""],["orders_per_period",6.0,""],["cycle_time",0.16666666666666666,""]],"target":"Q","phrase":"economic order quantity","assumptions":["D, S, H > 0","constant demand, instant replenishment, no shortages"],"name":"Economic order quantity (EOQ)","equation":"minimise D S / Q + H Q / 2 (at the optimum ordering cost equals holding cost)"}
|
| 173 |
+
{"outcome":"SOLVED","message":"","value":0.0031849983307239735,"unit":"","solved_for":"CR","values":[["CR",0.0031849983307239735,""],["CI",0.0018472990318199045,""],["lambda_max",3.00369459806364,""],["weights",[0.6483290138222366,0.2296507940626371,0.12202019211512621],""],["acceptable","yes",""]],"target":"CR","phrase":"consistency ratio","assumptions":["3 to 10 criteria","RI = 0.58, 0.90, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49 for n = 3..10 (Saaty)"],"name":"AHP consistency ratio","equation":"principal eigenpair by power iteration (certified as an eigenpair), then CI and CR"}
|
| 174 |
+
```
|
| 175 |
+
|
| 176 |
+
### In your browser
|
| 177 |
+
|
| 178 |
+
Open [Optimization on ai999x.com](https://www.ai999x.com/models/optimization-ai999x/#try), choose a capability and press **Compute**: the model runs on your own device as WebAssembly; nothing is sent anywhere. Change any input (any unit of the right kind) and the answer, its explanation and the figures follow.
|
| 179 |
+
|
| 180 |
+
In your own page: `optimization_ai999x.wasm` and the loader `ax-wasm.js` (https://www.ai999x.com/compute/rust/ax-wasm.js).
|
| 181 |
+
|
| 182 |
+
### Python
|
| 183 |
+
|
| 184 |
+
```bash
|
| 185 |
+
pip install optimization-ai999x
|
| 186 |
+
```
|
| 187 |
+
|
| 188 |
+
## Worked examples in every form
|
| 189 |
+
|
| 190 |
+
The same worked example from the command line, from Python and in the browser. Each command-line output is what the program printed.
|
| 191 |
+
|
| 192 |
+
### Absolute extrema of a polynomial on a closed interval
|
| 193 |
+
|
| 194 |
+
The absolute minimum and maximum of a polynomial on [lo, hi] (closed-interval method: endpoints and critical points), and where they are attained.
|
| 195 |
+
|
| 196 |
+
Command line:
|
| 197 |
+
|
| 198 |
+
```console
|
| 199 |
+
$ optimization solve polynomial_extrema_interval "coefficients=[1, -3, 0, 2]" lo=-1 hi=3
|
| 200 |
+
min_value = -2
|
| 201 |
+
max_value = 2
|
| 202 |
+
argmin_example = -1
|
| 203 |
+
argmax_example = 0
|
| 204 |
+
by: Absolute extrema of a polynomial on a closed interval (real roots of f' in [lo, hi] (monotone pieces between the roots of f'' bisected to the last float), compared with the endpoints)
|
| 205 |
+
lo = -1
|
| 206 |
+
hi = 3
|
| 207 |
+
assumes: lo < hi; degree 1 to 5
|
| 208 |
+
```
|
| 209 |
+
|
| 210 |
+
Python:
|
| 211 |
+
|
| 212 |
+
```python
|
| 213 |
+
import optimization_ai999x as m
|
| 214 |
+
|
| 215 |
+
a = m.solve("polynomial_extrema_interval", coefficients=[1, -3, 0, 2], lo="-1", hi="3")
|
| 216 |
+
print(a.values or (a.value, a.unit))
|
| 217 |
+
```
|
| 218 |
+
|
| 219 |
+
Browser: [open this capability on the model page](https://www.ai999x.com/models/optimization-ai999x/#cap-polynomial_extrema_interval) and press **Compute in your browser**.
|
| 220 |
+
|
| 221 |
+
_What this means:_ This calculation determines the global extrema of a polynomial on the closed interval from -1 to 3. It evaluates the function at the endpoints and all real critical points where the derivative is zero within the interval. The smallest resulting value is reported as the absolute minimum, -2, attained at -1, while the largest is the absolute maximum, 2, found at 0.
|
| 222 |
+
|
| 223 |
+
### Closed cylinder of least surface area for a given volume
|
| 224 |
+
|
| 225 |
+
The radius, height and surface area of the closed cylindrical can that holds a volume V with the least material.
|
| 226 |
+
|
| 227 |
+
Command line:
|
| 228 |
+
|
| 229 |
+
```console
|
| 230 |
+
$ optimization solve can_min_surface V=500
|
| 231 |
+
radius = 4.301270069
|
| 232 |
+
height = 8.602540138
|
| 233 |
+
min_area = 348.7342055
|
| 234 |
+
by: Closed cylinder of least surface area for a given volume (A(r) = 2 pi r^2 + 2V/r; A'(r) = 0)
|
| 235 |
+
V = 500
|
| 236 |
+
assumes: V > 0; closed top and bottom
|
| 237 |
+
```
|
| 238 |
+
|
| 239 |
+
Python:
|
| 240 |
+
|
| 241 |
+
```python
|
| 242 |
+
import optimization_ai999x as m
|
| 243 |
+
|
| 244 |
+
a = m.solve("can_min_surface", V="500")
|
| 245 |
+
print(a.values or (a.value, a.unit))
|
| 246 |
+
```
|
| 247 |
+
|
| 248 |
+
Browser: [open this capability on the model page](https://www.ai999x.com/models/optimization-ai999x/#cap-can_min_surface) and press **Compute in your browser**.
|
| 249 |
+
|
| 250 |
+
_What this means:_ This calculation determines the dimensions for a closed cylindrical container that holds a specific volume while using the least amount of material. Given an input volume of 500, the method finds the optimal radius to be 4.30127 and the corresponding height to be 8.60254. The resulting minimum surface area required is 348.734. This ensures efficient packaging design by balancing the top, bottom, and side surfaces.
|
| 251 |
+
|
| 252 |
+
### Critical point of a two-variable quadratic and its classification
|
| 253 |
+
|
| 254 |
+
For f(x, y) = a x^2 + b xy + c y^2 + d x + e y + f0: the critical point, its value and whether it is a local minimum, a local maximum or a saddle point (second-derivative test).
|
| 255 |
+
|
| 256 |
+
Command line:
|
| 257 |
+
|
| 258 |
+
```console
|
| 259 |
+
$ optimization solve critical_point_two_variables a=3 b=2 c=1 d=-4 e=6 f0=1
|
| 260 |
+
f_value = -20.5
|
| 261 |
+
x = 2.5
|
| 262 |
+
y = -5.5
|
| 263 |
+
type = local minimum
|
| 264 |
+
by: Critical point of a two-variable quadratic and its classification (grad f = 0 solved exactly; D = f_xx f_yy - f_xy^2 = 4ac - b^2 classifies it)
|
| 265 |
+
a = 3
|
| 266 |
+
b = 2
|
| 267 |
+
c = 1
|
| 268 |
+
d = -4
|
| 269 |
+
e = 6
|
| 270 |
+
f0 = 1
|
| 271 |
+
assumes: 4ac - b^2 != 0 (an isolated critical point)
|
| 272 |
+
```
|
| 273 |
+
|
| 274 |
+
Python:
|
| 275 |
+
|
| 276 |
+
```python
|
| 277 |
+
import optimization_ai999x as m
|
| 278 |
+
|
| 279 |
+
a = m.solve("critical_point_two_variables", a="3", b="2", c="1", d="-4", e="6", f0="1")
|
| 280 |
+
print(a.values or (a.value, a.unit))
|
| 281 |
+
```
|
| 282 |
+
|
| 283 |
+
Browser: [open this capability on the model page](https://www.ai999x.com/models/optimization-ai999x/#cap-critical_point_two_variables) and press **Compute in your browser**.
|
| 284 |
+
|
| 285 |
+
_What this means:_ This calculation identifies the stationary point for the quadratic function defined by coefficients 3, 2, 1, -4, 6, and 1. Solving the gradient equal to zero shows that the critical point occurs at coordinates x equals 2.5 and y equals -5.5. The value of the function at this specific location is -20.5. Based on the second derivative test, which examines the curvature using the determinant of the Hessian matrix, the nature of this point is classified as a local minimum. This classification indicates whether the surface curves upward like a bowl, downward like a dome, or forms a saddle shape at this coordinate.
|
| 286 |
+
|
| 287 |
+
### Largest rectangle for a given length of fencing
|
| 288 |
+
|
| 289 |
+
The dimensions and maximum area of a rectangle enclosed by a fence of length L, on four sides or on three sides with a wall or river as the fourth.
|
| 290 |
+
|
| 291 |
+
Command line:
|
| 292 |
+
|
| 293 |
+
```console
|
| 294 |
+
$ optimization solve fence_max_area wall=False L=200
|
| 295 |
+
width = 50
|
| 296 |
+
length = 50
|
| 297 |
+
max_area = 2500
|
| 298 |
+
by: Largest rectangle for a given length of fencing (area as a function of one side, derivative set to zero)
|
| 299 |
+
L = 200
|
| 300 |
+
assumes: L > 0
|
| 301 |
+
```
|
| 302 |
+
|
| 303 |
+
Python:
|
| 304 |
+
|
| 305 |
+
```python
|
| 306 |
+
import optimization_ai999x as m
|
| 307 |
+
|
| 308 |
+
a = m.solve("fence_max_area", wall="False", L="200")
|
| 309 |
+
print(a.values or (a.value, a.unit))
|
| 310 |
+
```
|
| 311 |
+
|
| 312 |
+
Browser: [open this capability on the model page](https://www.ai999x.com/models/optimization-ai999x/#cap-fence_max_area) and press **Compute in your browser**.
|
| 313 |
+
|
| 314 |
+
_What this means:_ This calculation finds the largest rectangular area possible for a given fencing length. Using the total fence amount 200, it determines the optimal side dimensions. The resulting maximum area is 2500, achieved when the perpendicular side is 50 and the parallel side is 50. This ensures the most efficient use of boundary materials.
|
| 315 |
+
|
| 316 |
+
## Documentation
|
| 317 |
+
|
| 318 |
+
- **Rust user guide**: the command line, every capability with a command and what it printed: [PDF](docs/optimization_ai999x_rust_guide.pdf) · [Markdown](docs/optimization_ai999x_rust_guide.md)
|
| 319 |
+
- **Python guide**: every capability with a Python example: [PDF](docs/optimization_ai999x_capabilities.pdf) · [Markdown](docs/optimization_ai999x_capabilities.md)
|
| 320 |
+
- **Desktop app & command line**: downloads, install, ask and search, figures, offline use, checksums: https://www.ai999x.com/desktop-cli/
|
| 321 |
+
- **Model page**: compute in your browser, every capability explained: https://www.ai999x.com/models/optimization-ai999x/
|
| 322 |
+
|
| 323 |
+
## Highlights
|
| 324 |
+
|
| 325 |
+
- **Verified, not generated.** Every answer is computed by a certified optimization capability and checked (substituted back, dimension-checked or compared with an independent computation) before it is returned.
|
| 326 |
+
- **Zero wrong answers by design.** Seven explicit outcomes (SOLVED, NEEDS_INPUT, AMBIGUOUS, INVALID_INPUT, OUT_OF_SCOPE, UNRECOGNIZED_FORMAT, INTERNAL_ERROR), never a silent guess. Every one of its 247 documented answers is reproduced exactly on every tested platform.
|
| 327 |
+
- **Plain-English questions and a guaranteed typed interface.** `ask()` reads documented question forms; `solve(capability_id, **inputs)` always solves a supported task with valid inputs.
|
| 328 |
+
- **Explains itself.** Steps, formulas in LaTeX, units, assumptions and the model used, ready for notebooks, tutoring apps and homework checkers.
|
| 329 |
+
- **Native and in the browser.** Every capability also computes natively in Rust: the desktop app and the `optimization` command line for Windows and Linux, and WebAssembly on the model page, no Python, no network.
|
| 330 |
+
- **Small and portable.** Pure Python (sympy, mpmath); identical answers on Windows and Linux (Python 3.10, 3.11, 3.12, 3.13, 3.14).
|
| 331 |
+
- **Coverage:** linear and integer programming, convex and nonlinear optimisation, assignment, transportation and shortest-route problems, scheduling, inventory, queueing, game theory and multi-criteria decisions.
|
| 332 |
+
|
| 333 |
+
## Model overview
|
| 334 |
+
|
| 335 |
+
| Property | Value |
|
| 336 |
+
|---|---|
|
| 337 |
+
| Package | `optimization-ai999x` 1.6.0 (import `optimization_ai999x`) |
|
| 338 |
+
| Type | Deterministic neuro-symbolic optimization engine (rule-based reading + certified symbolic capabilities) |
|
| 339 |
+
| Capabilities | 73 certified procedures |
|
| 340 |
+
| Knowledge pack | version 1.0.1 |
|
| 341 |
+
| Golden answers | 247 documented answers, identical on every tested platform |
|
| 342 |
+
| Platforms tested | Windows (Python 3.13), Linux x86-64 (Python 3.10, 3.11, 3.12, 3.13, 3.14) |
|
| 343 |
+
| Runtime | CPU only, offline; no GPU, no network, no API key |
|
| 344 |
+
| License | Apache-2.0 |
|
| 345 |
+
| Creator / engineer | Ibnul Jaif Farabi |
|
| 346 |
+
| Organization | AI999X |
|
| 347 |
+
|
| 348 |
+
## Python quick start
|
| 349 |
+
|
| 350 |
+
```bash
|
| 351 |
+
pip install optimization-ai999x
|
| 352 |
+
# or straight from this repository:
|
| 353 |
+
pip install https://huggingface.co/AI999X/optimization-ai999x/resolve/main/dist/optimization_ai999x-1.6.0-py3-none-any.whl
|
| 354 |
+
```
|
| 355 |
+
|
| 356 |
+
```python
|
| 357 |
+
import optimization_ai999x as optimization
|
| 358 |
+
|
| 359 |
+
optimization.ask("Solve the transportation problem with supply [20, 30], demand [10, 25, 15] and cost matrix [[2, 3, 1], [5, 4, 8]].").show()
|
| 360 |
+
# -> SOLVED — min_cost = 150, shipments = [[5.0, 0.0, 15.0], [5.0, 25.0, 0.0]], plan_unique = yes, dual = [-3.0, 0.0, 5.0, 4.0, 4.0] (transportation_problem)
|
| 361 |
+
optimization.ask("Find the shortest path from A to D in the undirected graph with edges A-B 4, A-C 2, B-C 1, B-D 5, C-D 8.").show()
|
| 362 |
+
# -> SOLVED — distance = 8, path = ['A', 'C', 'B', 'D'], path_unique = yes (shortest_path)
|
| 363 |
+
optimization.solve("eoq", D=1200, S=50, H=3).show()
|
| 364 |
+
# -> SOLVED — Q = 200, total_cost = 600, orders_per_period = 6, cycle_time = 0.166667 (eoq)
|
| 365 |
+
optimization.ask("Find the AHP consistency ratio for the pairwise judgments [3, 5, 2].").show()
|
| 366 |
+
# -> SOLVED — CR = 0.003185, CI = 0.0018473, lambda_max = 3.00369, weights = [0.6483290138222366, 0.2296507940626371, 0.12202019211512621] (ahp_consistency_ratio)
|
| 367 |
+
optimization.ask("Find the pure-strategy Nash equilibria of the bimatrix game with row payoffs [[3, 0], [5, 1]] and column payoffs [[3, 5], [0, 1]].").show()
|
| 368 |
+
# -> SOLVED — count = 1, equilibria = [[2.0, 2.0]] (pure_nash_equilibria)
|
| 369 |
+
optimization.ask("Who created you?").message
|
| 370 |
+
# -> optimization-ai999x was created and engineered by Ibnul Jaif Farabi at AI999X.
|
| 371 |
+
```
|
| 372 |
+
|
| 373 |
+
The Python package also installs a Python command, `optimization-ai999x "<question>"`; for the native program use `optimization` (above). The outputs above were produced by running this exact code on optimization-ai999x 1.6.0.
|
| 374 |
+
|
| 375 |
+
## How every answer is verified
|
| 376 |
+
|
| 377 |
+
1. **Reading**: the question is turned into typed quantities (value, unit, kind, role) and one asked quantity; every stated number must be used or the question is refused.
|
| 378 |
+
2. **Planning**: only certified capabilities may answer; a capability applies only under the conditions the wording states (for example a pendulum, a liquid at rest, boiling).
|
| 379 |
+
3. **Computing**: exact symbolic or high-precision numeric evaluation.
|
| 380 |
+
4. **Checking**: dimensions, substitution back into the defining equation, and agreement between independent readings; any disagreement becomes a refusal, never a number.
|
| 381 |
+
|
| 382 |
+
Capabilities are certified before they ship: each must reproduce hand-worked reference cases, reject a deliberately wrong variant (a control), and leave every benchmark answer unchanged.
|
| 383 |
+
|
| 384 |
+
## Python worked examples, with their steps
|
| 385 |
+
|
| 386 |
+
Each question was put to `optimization-ai999x`; the answer is the one it returned, with the steps it took.
|
| 387 |
+
|
| 388 |
+
**Transportation problem (minimum shipping cost)** · _Network optimisation_
|
| 389 |
+
|
| 390 |
+
> Solve the transportation problem with supply [20, 30], demand [10, 25, 15] and cost matrix [[2, 3, 1], [5, 4, 8]].
|
| 391 |
+
|
| 392 |
+
→ **min_cost = 150, shipments = [[5, 0, 15], [5, 25, 0]], plan_unique = yes, dual = [-3, 0, 5, 4, 4]**
|
| 393 |
+
|
| 394 |
+
<details><summary>Steps</summary>
|
| 395 |
+
|
| 396 |
+
- Transportation problem (minimum shipping cost): supply = [20, 30], demand = [10, 25, 15], cost = [2 3 1; 5 4 8] → min_cost = 150, shipments = [[5, 0, 15], [5, 25, 0]], plan_unique = yes, dual = [-3, 0, 5, 4, 4]
|
| 397 |
+
|
| 398 |
+
</details>
|
| 399 |
+
|
| 400 |
+
**Shortest path (Dijkstra's algorithm)** · _Network optimisation_
|
| 401 |
+
|
| 402 |
+
> Find the shortest path from A to D in the undirected graph with edges A-B 4, A-C 2, B-C 1, B-D 5, C-D 8.
|
| 403 |
+
|
| 404 |
+
→ **distance = 8, path = [A, C, B, D], path_unique = yes**
|
| 405 |
+
|
| 406 |
+
<details><summary>Steps</summary>
|
| 407 |
+
|
| 408 |
+
- Shortest path (Dijkstra's algorithm): edges = A-B (4), A-C (2), B-C (1), B-D (5), C-D (8), source = A, target = D, directed = False → distance = 8, path = [A, C, B, D], path_unique = yes
|
| 409 |
+
|
| 410 |
+
</details>
|
| 411 |
+
|
| 412 |
+
**Economic order quantity (EOQ)** · _Inventory management_
|
| 413 |
+
|
| 414 |
+
`m.solve("eoq", D=1200, S=50, H=3)`
|
| 415 |
+
|
| 416 |
+
→ **Q = 200, total_cost = 600, orders_per_period = 6, cycle_time = 0.1666666667**
|
| 417 |
+
|
| 418 |
+
<details><summary>Steps</summary>
|
| 419 |
+
|
| 420 |
+
- Economic order quantity (EOQ): D = 1200, S = 50, H = 3 → Q = 200, total_cost = 600, orders_per_period = 6, cycle_time = 0.1666666667
|
| 421 |
+
|
| 422 |
+
</details>
|
| 423 |
+
|
| 424 |
+
**AHP consistency ratio** · _Multi-criteria decision analysis_
|
| 425 |
+
|
| 426 |
+
> Find the AHP consistency ratio for the pairwise judgments [3, 5, 2].
|
| 427 |
+
|
| 428 |
+
→ **CR = 0.003184998331, CI = 0.001847299032, lambda_max = 3.003694598, weights = [0.6483290138, 0.2296507941, 0.1220201921], acceptable = yes**
|
| 429 |
+
|
| 430 |
+
<details><summary>Steps</summary>
|
| 431 |
+
|
| 432 |
+
- AHP consistency ratio: judgments = [3, 5, 2] → CR = 0.003184998331, CI = 0.001847299032, lambda_max = 3.003694598, weights = [0.6483290138, 0.2296507941, 0.1220201921], acceptable = yes
|
| 433 |
+
|
| 434 |
+
</details>
|
| 435 |
+
|
| 436 |
+
**Pure-strategy Nash equilibria of a bimatrix game** · _Game theory_
|
| 437 |
+
|
| 438 |
+
> Find the pure-strategy Nash equilibria of the bimatrix game with row payoffs [[3, 0], [5, 1]] and column payoffs [[3, 5], [0, 1]].
|
| 439 |
+
|
| 440 |
+
→ **count = 1, equilibria = [[2, 2]]**
|
| 441 |
+
|
| 442 |
+
<details><summary>Steps</summary>
|
| 443 |
+
|
| 444 |
+
- Pure-strategy Nash equilibria of a bimatrix game: A = [3 0; 5 1], B = [3 5; 0 1] → count = 1, equilibria = [[2, 2]]
|
| 445 |
+
|
| 446 |
+
</details>
|
| 447 |
+
|
| 448 |
+
**Closed cylinder of least surface area for a given volume** · _Calculus optimisation_
|
| 449 |
+
|
| 450 |
+
> A closed cylindrical can must hold 500 cm^3. Find the dimensions that minimize the surface area.
|
| 451 |
+
|
| 452 |
+
→ **radius = 4.301270069, height = 8.602540138, min_area = 348.7342055**
|
| 453 |
+
|
| 454 |
+
<details><summary>Steps</summary>
|
| 455 |
+
|
| 456 |
+
- Closed cylinder of least surface area for a given volume: V = 500 → radius = 4.301270069, height = 8.602540138, min_area = 348.7342055
|
| 457 |
+
|
| 458 |
+
</details>
|
| 459 |
+
|
| 460 |
+
## Figures
|
| 461 |
+
|
| 462 |
+
Every point was computed by `optimization-ai999x`.
|
| 463 |
+
|
| 464 |
+
**A linear programme: feasible region and optimal corner**
|
| 465 |
+
|
| 466 |
+

|
| 467 |
+
|
| 468 |
+
_Maximise 3x + 5y subject to x ≤ 4; 2y ≤ 12; 3x + 2y ≤ 18, x, y ≥ 0: the feasible region with the corner points the package returns ((0, 0), (0, 6), (2, 6), (4, 0), (4, 3)) and the objective line through the optimum; marked: x = 2, y = 6, objective 36._
|
| 469 |
+
|
| 470 |
+
**Steepest descent zig-zagging to the minimum**
|
| 471 |
+
|
| 472 |
+

|
| 473 |
+
|
| 474 |
+
_Steepest descent with exact line search on f(x) = ½ xᵀQx, Q = [[2, 0], [0, 8]], from x₀ = (4, 1): six steps computed by the package, each perpendicular to the level set through its start (f = 20, 7.2, 2.592, 0.93312, 0.335923, 0.120932, 0.0435356); marked: x₆ = (0.186624, 0.046656)._
|
| 475 |
+
|
| 476 |
+
**Shortest path and minimum spanning tree**
|
| 477 |
+
|
| 478 |
+

|
| 479 |
+
|
| 480 |
+
_A weighted network (A-B 4, A-C 2, B-C 1, B-D 5, C-D 8, A-E 7, E-D 3, C-E 6): the shortest path from A to D the package finds, A → C → B → D of length 8, and its minimum spanning tree (B-C, A-C, E-D, B-D, total weight 11)._
|
| 481 |
+
|
| 482 |
+
**An optimal transportation plan**
|
| 483 |
+
|
| 484 |
+

|
| 485 |
+
|
| 486 |
+
_The optimal transportation plan the package computes for supplies [20, 30], demands [10, 25, 15] and unit costs [[2, 3, 1], [5, 4, 8]] (rows: sources, columns: destinations; left the unit costs, right the quantities shipped): minimum total cost 150._
|
| 487 |
+
|
| 488 |
+
**A two-machine schedule in Johnson's order**
|
| 489 |
+
|
| 490 |
+

|
| 491 |
+
|
| 492 |
+
_A two-machine flow shop: processing times [5, 2, 6, 7] on machine 1 and [3, 4, 8, 2] on machine 2. The package's Johnson order is job 2 → job 3 → job 1 → job 4, with makespan 22; each job starts on machine 2 as soon as it leaves machine 1 and machine 2 is free._
|
| 493 |
+
|
| 494 |
+
## Capabilities
|
| 495 |
+
|
| 496 |
+
73 certified procedures. A few of them:
|
| 497 |
+
|
| 498 |
+
- **Procedures:** 0/1 knapsack problem; 2 x 2 zero-sum game (saddle point or mixed-strategy formula); AHP consistency ratio; AHP priority vector (principal eigenvector); AHP weights by the geometric mean method; Absolute extrema of a polynomial on a closed interval; All-pairs shortest distances (Floyd-Warshall); Assignment problem (Hungarian method), maximum total value; Assignment problem (Hungarian method), minimum total cost; Bin packing (minimum number of bins); Break-even quantity; Chromatic number (minimum graph colouring); Closed cylinder of least surface area for a given volume; Critical path method (project duration and slack); Critical point of a two-variable quadratic and its classification; Discounted Markov decision process (optimal values and policy); Dynamic lot sizing (Wagner-Whitin); EOQ with planned backorders; Earliest due date rule (minimum maximum lateness); Economic order quantity (EOQ); Economic production quantity (EPQ); Equality-constrained quadratic program (Lagrange multipliers / KKT); Erlang B blocking probability (M/M/c/c loss system); Integer linear program (branch and bound) …
|
| 499 |
+
|
| 500 |
+
`optimization_ai999x.templates()` lists every question form `ask()` reads; the capability guide (PDF, every example executed) is included in this repository.
|
| 501 |
+
|
| 502 |
+
### All 73 formulas
|
| 503 |
+
|
| 504 |
+
<details><summary>Show every formula, by topic</summary>
|
| 505 |
+
|
| 506 |
+
**Calculus optimisation / geometry**
|
| 507 |
+
|
| 508 |
+
*Closed cylinder of least surface area for a given volume*
|
| 509 |
+
|
| 510 |
+
$$
|
| 511 |
+
r^* = \left(\frac{V}{2\pi}\right)^{1/3}, \quad h^* = 2r^*
|
| 512 |
+
$$
|
| 513 |
+
|
| 514 |
+
*Largest rectangle for a given length of fencing*
|
| 515 |
+
|
| 516 |
+
$$
|
| 517 |
+
A_{\max} = \frac{L^2}{16} \text{ (4 sides)}, \quad \frac{L^2}{8} \text{ (3 sides)}
|
| 518 |
+
$$
|
| 519 |
+
|
| 520 |
+
*Open box of maximum volume from a rectangular sheet*
|
| 521 |
+
|
| 522 |
+
$$
|
| 523 |
+
x^* = \frac{(L+W) - \sqrt{L^2 - LW + W^2}}{6}
|
| 524 |
+
$$
|
| 525 |
+
|
| 526 |
+
**Calculus optimisation / one variable**
|
| 527 |
+
|
| 528 |
+
*Absolute extrema of a polynomial on a closed interval*
|
| 529 |
+
|
| 530 |
+
$$
|
| 531 |
+
\min_{[a,b]} f = \min\{f(a), f(b), f(c) : f'(c) = 0,\ a < c < b\}
|
| 532 |
+
$$
|
| 533 |
+
|
| 534 |
+
**Calculus optimisation / several variables**
|
| 535 |
+
|
| 536 |
+
*Critical point of a two-variable quadratic and its classification*
|
| 537 |
+
|
| 538 |
+
$$
|
| 539 |
+
D = f_{xx} f_{yy} - f_{xy}^2 = 4ac - b^2
|
| 540 |
+
$$
|
| 541 |
+
|
| 542 |
+
**Cost-volume-profit analysis**
|
| 543 |
+
|
| 544 |
+
*Break-even quantity*
|
| 545 |
+
|
| 546 |
+
$$
|
| 547 |
+
Q_{BE} = \frac{F}{p - v}
|
| 548 |
+
$$
|
| 549 |
+
|
| 550 |
+
**Dynamic programming / Markov decision processes**
|
| 551 |
+
|
| 552 |
+
*Discounted Markov decision process (optimal values and policy)*
|
| 553 |
+
|
| 554 |
+
$$
|
| 555 |
+
V^*(s) = \max_a \Big( R(s,a) + \gamma \sum_{s'} P(s' \mid s,a)\, V^*(s') \Big)
|
| 556 |
+
$$
|
| 557 |
+
|
| 558 |
+
**Dynamic programming / inventory**
|
| 559 |
+
|
| 560 |
+
*Dynamic lot sizing (Wagner-Whitin)*
|
| 561 |
+
|
| 562 |
+
$$
|
| 563 |
+
C_t = \min_{1 \le s \le t} \Big( C_{s-1} + K + h \sum_{u=s}^{t} (u - s)\, d_u \Big)
|
| 564 |
+
$$
|
| 565 |
+
|
| 566 |
+
**Economic optimisation / monopoly pricing**
|
| 567 |
+
|
| 568 |
+
*Profit-maximising output with linear demand*
|
| 569 |
+
|
| 570 |
+
$$
|
| 571 |
+
q^* = \frac{a - c}{2b}, \quad p^* = \frac{a + c}{2}
|
| 572 |
+
$$
|
| 573 |
+
|
| 574 |
+
**Economic optimisation / pricing**
|
| 575 |
+
|
| 576 |
+
*Revenue-maximising price with linear demand*
|
| 577 |
+
|
| 578 |
+
$$
|
| 579 |
+
p^* = \frac{\alpha}{2\beta}, \quad R^* = \frac{\alpha^2}{4\beta}
|
| 580 |
+
$$
|
| 581 |
+
|
| 582 |
+
**Game theory / non-zero-sum games**
|
| 583 |
+
|
| 584 |
+
*Mixed-strategy Nash equilibrium of a 2 x 2 game*
|
| 585 |
+
|
| 586 |
+
$$
|
| 587 |
+
q = \frac{a_{22} - a_{12}}{a_{11} - a_{12} - a_{21} + a_{22}},\quad p = \frac{b_{22} - b_{21}}{b_{11} - b_{12} - b_{21} + b_{22}}
|
| 588 |
+
$$
|
| 589 |
+
|
| 590 |
+
*Pure-strategy Nash equilibria of a bimatrix game*
|
| 591 |
+
|
| 592 |
+
$$
|
| 593 |
+
a_{rs} = \max_k a_{ks},\quad b_{rs} = \max_k b_{rk}
|
| 594 |
+
$$
|
| 595 |
+
|
| 596 |
+
**Game theory / zero-sum games**
|
| 597 |
+
|
| 598 |
+
*2 x 2 zero-sum game (saddle point or mixed-strategy formula)*
|
| 599 |
+
|
| 600 |
+
$$
|
| 601 |
+
v = \frac{ad - bc}{a + d - b - c},\quad p = \frac{d - c}{a + d - b - c},\quad q = \frac{d - b}{a + d - b - c}
|
| 602 |
+
$$
|
| 603 |
+
|
| 604 |
+
*Two-person zero-sum game (value and optimal mixed strategies)*
|
| 605 |
+
|
| 606 |
+
$$
|
| 607 |
+
v = \max_{x \in \Delta_m} \min_{j} \sum_i x_i a_{ij} = \min_{y \in \Delta_n} \max_i \sum_j a_{ij} y_j
|
| 608 |
+
$$
|
| 609 |
+
|
| 610 |
+
**Integer programming**
|
| 611 |
+
|
| 612 |
+
*Integer linear program (branch and bound)*
|
| 613 |
+
|
| 614 |
+
$$
|
| 615 |
+
\max / \min \; c^\top x \quad \text{s.t. } A x \;(\le,\ge,=)\; b,\; x \in \mathbb{Z}_{\ge 0}^n
|
| 616 |
+
$$
|
| 617 |
+
|
| 618 |
+
**Integer programming / covering**
|
| 619 |
+
|
| 620 |
+
*Minimum vertex cover (and maximum independent set)*
|
| 621 |
+
|
| 622 |
+
$$
|
| 623 |
+
\tau(G) = \min\{\vert C\vert : C \cap \{u, v\} \neq \emptyset\ \forall uv \in E\},\quad \alpha(G) = \vert V\vert - \tau(G)
|
| 624 |
+
$$
|
| 625 |
+
|
| 626 |
+
*Minimum-cost set cover*
|
| 627 |
+
|
| 628 |
+
$$
|
| 629 |
+
\min \sum_i c_i x_i\ \text{s.t.}\ \sum_{i \ni e} x_i \ge 1\ \forall e,\ x \in \{0,1\}
|
| 630 |
+
$$
|
| 631 |
+
|
| 632 |
+
**Integer programming / graph colouring**
|
| 633 |
+
|
| 634 |
+
*Chromatic number (minimum graph colouring)*
|
| 635 |
+
|
| 636 |
+
$$
|
| 637 |
+
\chi(G) = \min\{k : \exists\, c: V \to \{1..k\},\ c(u) \neq c(v)\ \forall uv \in E\}
|
| 638 |
+
$$
|
| 639 |
+
|
| 640 |
+
**Integer programming / knapsack**
|
| 641 |
+
|
| 642 |
+
*0/1 knapsack problem*
|
| 643 |
+
|
| 644 |
+
$$
|
| 645 |
+
\max \sum_i v_i x_i \ \text{s.t.}\ \sum_i w_i x_i \le W,\ x_i \in \{0,1\}
|
| 646 |
+
$$
|
| 647 |
+
|
| 648 |
+
*Unbounded knapsack problem*
|
| 649 |
+
|
| 650 |
+
$$
|
| 651 |
+
V(c) = \max\big(V(c-1),\ \max_{i: w_i \le c} V(c - w_i) + v_i\big)
|
| 652 |
+
$$
|
| 653 |
+
|
| 654 |
+
**Integer programming / location**
|
| 655 |
+
|
| 656 |
+
*Uncapacitated facility location*
|
| 657 |
+
|
| 658 |
+
$$
|
| 659 |
+
\min_{S \neq \emptyset} \sum_{i \in S} f_i + \sum_j \min_{i \in S} c_{ij}
|
| 660 |
+
$$
|
| 661 |
+
|
| 662 |
+
**Integer programming / packing**
|
| 663 |
+
|
| 664 |
+
*Bin packing (minimum number of bins)*
|
| 665 |
+
|
| 666 |
+
$$
|
| 667 |
+
\min \#\text{bins} \ \ge\ \left\lceil \sum_j s_j / C \right\rceil
|
| 668 |
+
$$
|
| 669 |
+
|
| 670 |
+
**Inventory management**
|
| 671 |
+
|
| 672 |
+
*EOQ with planned backorders*
|
| 673 |
+
|
| 674 |
+
$$
|
| 675 |
+
Q^* = \sqrt{\frac{2DS}{H}\cdot\frac{H+B}{B}}, \quad s^* = Q^* \frac{H}{H+B}
|
| 676 |
+
$$
|
| 677 |
+
|
| 678 |
+
*Economic order quantity (EOQ)*
|
| 679 |
+
|
| 680 |
+
$$
|
| 681 |
+
Q^* = \sqrt{\frac{2 D S}{H}}, \quad TC^* = \sqrt{2 D S H}
|
| 682 |
+
$$
|
| 683 |
+
|
| 684 |
+
*Economic production quantity (EPQ)*
|
| 685 |
+
|
| 686 |
+
$$
|
| 687 |
+
Q^* = \sqrt{\frac{2DS}{H(1 - D/P)}}
|
| 688 |
+
$$
|
| 689 |
+
|
| 690 |
+
*Order quantity with quantity discounts (all-units)*
|
| 691 |
+
|
| 692 |
+
$$
|
| 693 |
+
TC(Q) = D p_k + \frac{D S}{Q} + \frac{i p_k Q}{2}
|
| 694 |
+
$$
|
| 695 |
+
|
| 696 |
+
*Periodic-review order-up-to level*
|
| 697 |
+
|
| 698 |
+
$$
|
| 699 |
+
S = \bar d (R + L) + z_{SL}\,\sigma_d\sqrt{R + L}
|
| 700 |
+
$$
|
| 701 |
+
|
| 702 |
+
*Reorder point with safety stock*
|
| 703 |
+
|
| 704 |
+
$$
|
| 705 |
+
ROP = \bar d L + z_{SL}\,\sigma_d \sqrt{L}
|
| 706 |
+
$$
|
| 707 |
+
|
| 708 |
+
**Inventory management / single-period**
|
| 709 |
+
|
| 710 |
+
*Newsvendor order quantity (discrete demand)*
|
| 711 |
+
|
| 712 |
+
$$
|
| 713 |
+
Q^* = \min\{ d : F(d) \ge \tfrac{p - c}{p - s} \}
|
| 714 |
+
$$
|
| 715 |
+
|
| 716 |
+
*Newsvendor order quantity (normal demand)*
|
| 717 |
+
|
| 718 |
+
$$
|
| 719 |
+
F(Q^*) = \frac{p - c}{p - s}, \quad Q^* = \mu + z\,\sigma
|
| 720 |
+
$$
|
| 721 |
+
|
| 722 |
+
*Newsvendor order quantity (uniform demand)*
|
| 723 |
+
|
| 724 |
+
$$
|
| 725 |
+
Q^* = a + \frac{p - c}{p - s}(b - a)
|
| 726 |
+
$$
|
| 727 |
+
|
| 728 |
+
**Linear programming**
|
| 729 |
+
|
| 730 |
+
*Linear program (simplex method)*
|
| 731 |
+
|
| 732 |
+
$$
|
| 733 |
+
\max / \min \; c^\top x \quad \text{s.t. } A x \;(\le, \ge, =)\; b,\; x \ge 0
|
| 734 |
+
$$
|
| 735 |
+
|
| 736 |
+
*Two-variable linear program (graphical corner-point method)*
|
| 737 |
+
|
| 738 |
+
$$
|
| 739 |
+
z^* = \max_{v \in \text{corners}} c^\top v
|
| 740 |
+
$$
|
| 741 |
+
|
| 742 |
+
**Linear programming / sensitivity analysis**
|
| 743 |
+
|
| 744 |
+
*LP duality and sensitivity ranges*
|
| 745 |
+
|
| 746 |
+
$$
|
| 747 |
+
\max c^\top x\ \text{s.t.}\ A x \le b,\ x \ge 0 \;\Longleftrightarrow\; \min b^\top y\ \text{s.t.}\ A^\top y \ge c,\ y \ge 0;\quad x_B + \delta\,B^{-1}e_i \ge 0,\quad d_k - \Delta\,(B^{-1}A_k)_r \ge 0
|
| 748 |
+
$$
|
| 749 |
+
|
| 750 |
+
*Shadow prices of a linear program*
|
| 751 |
+
|
| 752 |
+
$$
|
| 753 |
+
y^\top = c_B^\top B^{-1}, \qquad \frac{\partial z^*}{\partial b_i} = y_i
|
| 754 |
+
$$
|
| 755 |
+
|
| 756 |
+
**Multi-criteria decision analysis**
|
| 757 |
+
|
| 758 |
+
*TOPSIS ranking (closeness to the ideal solution)*
|
| 759 |
+
|
| 760 |
+
$$
|
| 761 |
+
C_i = \frac{D_i^-}{D_i^+ + D_i^-},\quad D_i^\pm = \Big\\vert w \odot r_i - v^\pm \Big\\vert _2
|
| 762 |
+
$$
|
| 763 |
+
|
| 764 |
+
*Weighted product model*
|
| 765 |
+
|
| 766 |
+
$$
|
| 767 |
+
P_i = \prod_j n_{ij}^{\,w_j}
|
| 768 |
+
$$
|
| 769 |
+
|
| 770 |
+
*Weighted sum model (simple additive weighting)*
|
| 771 |
+
|
| 772 |
+
$$
|
| 773 |
+
S_i = \sum_j w_j n_{ij},\quad n_{ij} = \frac{x_{ij}}{\max_i x_{ij}}\ \text{or}\ \frac{\min_i x_{ij}}{x_{ij}}
|
| 774 |
+
$$
|
| 775 |
+
|
| 776 |
+
**Multi-criteria decision analysis / AHP**
|
| 777 |
+
|
| 778 |
+
*AHP consistency ratio*
|
| 779 |
+
|
| 780 |
+
$$
|
| 781 |
+
CI = \frac{\lambda_{\max} - n}{n - 1},\quad CR = \frac{CI}{RI_n}
|
| 782 |
+
$$
|
| 783 |
+
|
| 784 |
+
*AHP priority vector (principal eigenvector)*
|
| 785 |
+
|
| 786 |
+
$$
|
| 787 |
+
P w = \lambda_{\max} w,\quad \sum_i w_i = 1
|
| 788 |
+
$$
|
| 789 |
+
|
| 790 |
+
*AHP weights by the geometric mean method*
|
| 791 |
+
|
| 792 |
+
$$
|
| 793 |
+
w_i = \frac{(\prod_j a_{ij})^{1/n}}{\sum_k (\prod_j a_{kj})^{1/n}}
|
| 794 |
+
$$
|
| 795 |
+
|
| 796 |
+
**Network optimisation / assignment**
|
| 797 |
+
|
| 798 |
+
*Assignment problem (Hungarian method), maximum total value*
|
| 799 |
+
|
| 800 |
+
$$
|
| 801 |
+
\min_{\sigma} \sum_i c_{i\sigma(i)} = \max \Big\{ \sum_i u_i + \sum_j v_j : u_i + v_j \le c_{ij} \Big\}
|
| 802 |
+
$$
|
| 803 |
+
|
| 804 |
+
*Assignment problem (Hungarian method), minimum total cost*
|
| 805 |
+
|
| 806 |
+
$$
|
| 807 |
+
\min_{\sigma} \sum_i c_{i\sigma(i)} = \max \Big\{ \sum_i u_i + \sum_j v_j : u_i + v_j \le c_{ij} \Big\}
|
| 808 |
+
$$
|
| 809 |
+
|
| 810 |
+
**Network optimisation / flows**
|
| 811 |
+
|
| 812 |
+
*Maximum flow and minimum cut (Edmonds-Karp)*
|
| 813 |
+
|
| 814 |
+
$$
|
| 815 |
+
\max \vert f\vert = \min_{(S, \bar S)} c(S, \bar S)
|
| 816 |
+
$$
|
| 817 |
+
|
| 818 |
+
*Minimum-cost flow (transshipment)*
|
| 819 |
+
|
| 820 |
+
$$
|
| 821 |
+
\min \sum c_{ij} x_{ij}\ \text{s.t.}\ \sum_j x_{vj} - \sum_i x_{iv} = b_v,\ 0 \le x_{ij} \le u_{ij}
|
| 822 |
+
$$
|
| 823 |
+
|
| 824 |
+
**Network optimisation / matching**
|
| 825 |
+
|
| 826 |
+
*Maximum bipartite matching*
|
| 827 |
+
|
| 828 |
+
$$
|
| 829 |
+
\nu(G) = \tau(G) \text{ for bipartite } G
|
| 830 |
+
$$
|
| 831 |
+
|
| 832 |
+
*Maximum-weight matching (general graph)*
|
| 833 |
+
|
| 834 |
+
$$
|
| 835 |
+
\max_{M \text{ matching}} \sum_{e \in M} w_e
|
| 836 |
+
$$
|
| 837 |
+
|
| 838 |
+
**Network optimisation / routing**
|
| 839 |
+
|
| 840 |
+
*Travelling salesman tour (exact, Held-Karp)*
|
| 841 |
+
|
| 842 |
+
$$
|
| 843 |
+
g(S, k) = \min_{m \in S \setminus \{k\}} \big(g(S \setminus \{k\}, m) + d_{mk}\big)
|
| 844 |
+
$$
|
| 845 |
+
|
| 846 |
+
**Network optimisation / shortest routes**
|
| 847 |
+
|
| 848 |
+
*All-pairs shortest distances (Floyd-Warshall)*
|
| 849 |
+
|
| 850 |
+
$$
|
| 851 |
+
d_{ij} \leftarrow \min(d_{ij},\, d_{ik} + d_{kj})
|
| 852 |
+
$$
|
| 853 |
+
|
| 854 |
+
*Shortest path (Dijkstra's algorithm)*
|
| 855 |
+
|
| 856 |
+
$$
|
| 857 |
+
d(v) = \min_{(u,v)} \big(d(u) + w_{uv}\big)
|
| 858 |
+
$$
|
| 859 |
+
|
| 860 |
+
*Shortest path with negative weights (Bellman-Ford)*
|
| 861 |
+
|
| 862 |
+
$$
|
| 863 |
+
d(v) \le d(u) + w_{uv} \ \forall (u,v)
|
| 864 |
+
$$
|
| 865 |
+
|
| 866 |
+
**Network optimisation / spanning trees**
|
| 867 |
+
|
| 868 |
+
*Minimum spanning tree (Kruskal's algorithm)*
|
| 869 |
+
|
| 870 |
+
$$
|
| 871 |
+
\min_{T \text{ spanning tree}} \sum_{e \in T} w_e
|
| 872 |
+
$$
|
| 873 |
+
|
| 874 |
+
**Network optimisation / transportation**
|
| 875 |
+
|
| 876 |
+
*Transportation problem (minimum shipping cost)*
|
| 877 |
+
|
| 878 |
+
$$
|
| 879 |
+
\min \sum_{ij} c_{ij} x_{ij}\ \text{s.t.}\ \sum_j x_{ij} \le s_i,\ \sum_i x_{ij} = d_j,\ x \ge 0
|
| 880 |
+
$$
|
| 881 |
+
|
| 882 |
+
**Nonlinear optimisation / descent methods**
|
| 883 |
+
|
| 884 |
+
*Steepest descent step with exact line search (quadratic)*
|
| 885 |
+
|
| 886 |
+
$$
|
| 887 |
+
\alpha = \frac{g^\top g}{g^\top Q g},\quad x_1 = x_0 - \alpha g
|
| 888 |
+
$$
|
| 889 |
+
|
| 890 |
+
**Nonlinear optimisation / quadratic**
|
| 891 |
+
|
| 892 |
+
*Equality-constrained quadratic program (Lagrange multipliers / KKT)*
|
| 893 |
+
|
| 894 |
+
$$
|
| 895 |
+
\begin{bmatrix} Q & A^\top \\ A & 0 \end{bmatrix}\begin{bmatrix} x \\ \lambda \end{bmatrix} = \begin{bmatrix} -c \\ b \end{bmatrix}
|
| 896 |
+
$$
|
| 897 |
+
|
| 898 |
+
*Unconstrained quadratic minimisation*
|
| 899 |
+
|
| 900 |
+
$$
|
| 901 |
+
x^* = -Q^{-1} c,\quad f^* = \tfrac12 c^\top x^*
|
| 902 |
+
$$
|
| 903 |
+
|
| 904 |
+
**Project scheduling**
|
| 905 |
+
|
| 906 |
+
*Critical path method (project duration and slack)*
|
| 907 |
+
|
| 908 |
+
$$
|
| 909 |
+
ES_k = \max_{j \to k}(ES_j + d_j),\quad LS_k = \min_{k \to s} LS_s - d_k,\quad \text{slack}_k = LS_k - ES_k
|
| 910 |
+
$$
|
| 911 |
+
|
| 912 |
+
*PERT project duration and completion probability*
|
| 913 |
+
|
| 914 |
+
$$
|
| 915 |
+
t_e = \frac{a + 4m + b}{6},\; \sigma^2 = \left(\frac{b - a}{6}\right)^2,\; P(T \le d) = \Phi\!\left(\frac{d - \mu}{\sigma}\right)
|
| 916 |
+
$$
|
| 917 |
+
|
| 918 |
+
**Queueing theory**
|
| 919 |
+
|
| 920 |
+
*M/G/1 queue (Pollaczek-Khinchine formula)*
|
| 921 |
+
|
| 922 |
+
$$
|
| 923 |
+
L_q = \frac{\lambda^2 \sigma_S^2 + \rho^2}{2(1-\rho)}
|
| 924 |
+
$$
|
| 925 |
+
|
| 926 |
+
*M/M/1 queue*
|
| 927 |
+
|
| 928 |
+
$$
|
| 929 |
+
L = \frac{\rho}{1-\rho},\; W = \frac{1}{\mu - \lambda},\; W_q = \frac{\rho}{\mu-\lambda}
|
| 930 |
+
$$
|
| 931 |
+
|
| 932 |
+
*M/M/c queue (Erlang C)*
|
| 933 |
+
|
| 934 |
+
$$
|
| 935 |
+
C(c, a) = \frac{B(c,a)}{1 - \rho(1 - B(c,a))}, \quad L_q = C\,\frac{\rho}{1-\rho}
|
| 936 |
+
$$
|
| 937 |
+
|
| 938 |
+
*M/M/c/K queue (finite capacity)*
|
| 939 |
+
|
| 940 |
+
$$
|
| 941 |
+
\pi_n \propto \frac{a^n}{n!}\ (n \le c),\quad \frac{a^c}{c!}\left(\frac{a}{c}\right)^{n-c}\ (c < n \le K)
|
| 942 |
+
$$
|
| 943 |
+
|
| 944 |
+
*Machine-repair (finite-source) queue*
|
| 945 |
+
|
| 946 |
+
$$
|
| 947 |
+
\pi_n \propto \frac{N!}{(N-n)!}\,\frac{(\lambda/\mu)^n}{n!\ \text{or}\ c!\,c^{n-c}}
|
| 948 |
+
$$
|
| 949 |
+
|
| 950 |
+
**Queueing theory / staffing**
|
| 951 |
+
|
| 952 |
+
*Minimum number of servers for a service target (Erlang C)*
|
| 953 |
+
|
| 954 |
+
$$
|
| 955 |
+
c^* = \min\{c > \lambda/\mu : C(c, \lambda/\mu) \le \alpha\}
|
| 956 |
+
$$
|
| 957 |
+
|
| 958 |
+
**Queueing theory / teletraffic**
|
| 959 |
+
|
| 960 |
+
*Erlang B blocking probability (M/M/c/c loss system)*
|
| 961 |
+
|
| 962 |
+
$$
|
| 963 |
+
B(c, A) = \frac{A^c / c!}{\sum_{k=0}^{c} A^k / k!}
|
| 964 |
+
$$
|
| 965 |
+
|
| 966 |
+
**Revenue management**
|
| 967 |
+
|
| 968 |
+
*Littlewood's rule (two-fare protection level)*
|
| 969 |
+
|
| 970 |
+
$$
|
| 971 |
+
P(D_1 > y^*) = \frac{p_2}{p_1}, \quad y^* = \mu + z\,\sigma
|
| 972 |
+
$$
|
| 973 |
+
|
| 974 |
+
**Scheduling / flow shop**
|
| 975 |
+
|
| 976 |
+
*Johnson's rule (two-machine flow shop)*
|
| 977 |
+
|
| 978 |
+
$$
|
| 979 |
+
\min C_{\max} \text{ for } F2 \\vert C_{\max}
|
| 980 |
+
$$
|
| 981 |
+
|
| 982 |
+
**Scheduling / parallel machines**
|
| 983 |
+
|
| 984 |
+
*Minimum makespan on identical parallel machines*
|
| 985 |
+
|
| 986 |
+
$$
|
| 987 |
+
\min_{\text{assignment}} \max_k \sum_{j \to k} p_j
|
| 988 |
+
$$
|
| 989 |
+
|
| 990 |
+
**Scheduling / single machine**
|
| 991 |
+
|
| 992 |
+
*Earliest due date rule (minimum maximum lateness)*
|
| 993 |
+
|
| 994 |
+
$$
|
| 995 |
+
\min L_{\max} = \min \max_j (C_j - d_j):\; d_{[1]} \le d_{[2]} \le \dots
|
| 996 |
+
$$
|
| 997 |
+
|
| 998 |
+
*Moore-Hodgson algorithm (minimum number of tardy jobs)*
|
| 999 |
+
|
| 1000 |
+
$$
|
| 1001 |
+
\min \sum_j U_j
|
| 1002 |
+
$$
|
| 1003 |
+
|
| 1004 |
+
*Shortest processing time rule (minimum mean flow time)*
|
| 1005 |
+
|
| 1006 |
+
$$
|
| 1007 |
+
\min \tfrac{1}{n}\sum_j C_j:\; p_{[1]} \le p_{[2]} \le \dots
|
| 1008 |
+
$$
|
| 1009 |
+
|
| 1010 |
+
*Weighted shortest processing time (Smith's rule)*
|
| 1011 |
+
|
| 1012 |
+
$$
|
| 1013 |
+
\min \sum_j w_j C_j:\; \frac{p_{[1]}}{w_{[1]}} \le \frac{p_{[2]}}{w_{[2]}} \le \dots
|
| 1014 |
+
$$
|
| 1015 |
+
|
| 1016 |
+
**Unconstrained optimisation / one variable**
|
| 1017 |
+
|
| 1018 |
+
*Optimum of a quadratic function*
|
| 1019 |
+
|
| 1020 |
+
$$
|
| 1021 |
+
x^* = -\frac{b}{2a}, \quad f^* = c - \frac{b^2}{4a}
|
| 1022 |
+
$$
|
| 1023 |
+
|
| 1024 |
+
</details>
|
| 1025 |
+
|
| 1026 |
+
## Out of scope
|
| 1027 |
+
|
| 1028 |
+
- Open-ended explanation, essay writing or tutoring dialogue: it is a solver, not a chatbot.
|
| 1029 |
+
- Questions outside its certified optimization capabilities, and any question whose stated numbers it cannot all use: it refuses with the reason instead.
|
| 1030 |
+
- High-stakes engineering, medical or legal decisions without independent review.
|
| 1031 |
+
|
| 1032 |
+
## Limitations
|
| 1033 |
+
|
| 1034 |
+
- It answers what its certified capabilities cover (linear and integer programming, convex and nonlinear optimisation, assignment, transportation and shortest-route problems, scheduling, inventory, queueing, game theory and multi-criteria decisions); anything else is refused with a reason.
|
| 1035 |
+
- `ask()` reads documented question forms and common phrasings; unusual wording may be refused; use `solve()` for guaranteed results.
|
| 1036 |
+
- Results are as correct as the certified relations and their stated conditions; a certified relation is a checked model, not a claim about every physical situation.
|
| 1037 |
+
|
| 1038 |
+
## Citation
|
| 1039 |
+
|
| 1040 |
+
```bibtex
|
| 1041 |
+
@software{optimization_ai999x_1_6_0,
|
| 1042 |
+
title = {optimization-ai999x: an offline, verified optimization solver},
|
| 1043 |
+
author = {Farabi, Ibnul Jaif}, organization = {AI999X},
|
| 1044 |
+
year = {2026}, version = {1.6.0},
|
| 1045 |
+
url = {https://huggingface.co/AI999X/optimization-ai999x}
|
| 1046 |
+
}
|
| 1047 |
+
```
|
| 1048 |
+
|
| 1049 |
+
## Contact
|
| 1050 |
+
|
| 1051 |
+
Questions, bug reports and requests: open a discussion on https://huggingface.co/AI999X/optimization-ai999x/discussions or visit https://ai999x.com.
|
| 1052 |
+
|
| 1053 |
+
## Support the project
|
| 1054 |
+
|
| 1055 |
+
optimization-ai999x is free and open source. If it helps you, you can support further development on [Buy Me a Coffee](https://buymeacoffee.com/ibnuljaiffarabi).
|
| 1056 |
+
|
| 1057 |
+
Created and engineered by **Ibnul Jaif Farabi** · **[AI999X](https://huggingface.co/AI999X)** · [ai999x.com](https://ai999x.com)
|
config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"library_name": "optimization-ai999x",
|
| 3 |
+
"import_name": "optimization_ai999x",
|
| 4 |
+
"version": "1.6.0",
|
| 5 |
+
"knowledge_pack": "1.0.1",
|
| 6 |
+
"capabilities": 73,
|
| 7 |
+
"license": "apache-2.0",
|
| 8 |
+
"install": "pip install optimization-ai999x",
|
| 9 |
+
"author": "Ibnul Jaif Farabi",
|
| 10 |
+
"organization": "AI999X"
|
| 11 |
+
}
|
dist/optimization_ai999x-1.6.0-py3-none-any.whl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6dd20697f73ee4321ba6ca71f1e0e8298d1979c62b5ff666bd446a072c8275d4
|
| 3 |
+
size 3968813
|
docs/optimization_ai999x_capabilities.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
docs/optimization_ai999x_capabilities.md
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
docs/optimization_ai999x_capabilities.pdf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e45943f95f10bf921c3f363bba42b562b87afc5365cac0150e3dde93cec4b5d3
|
| 3 |
+
size 2827479
|
docs/optimization_ai999x_rust_guide.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
docs/optimization_ai999x_rust_guide.md
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
docs/optimization_ai999x_rust_guide.pdf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:13eadc3e8b89b78b71d29a526cf03d19b4278ba77b1054b9d6ac6d5fd5d860a8
|
| 3 |
+
size 1942944
|
evaluation/KNOWLEDGE_CARD.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Dataset card: optimization
|
| 2 |
+
|
| 3 |
+
Generated 2026-11-13 by `tools/cards.py` from the domain's measured state (pack 1.0.1). Nothing here is hand-edited.
|
| 4 |
+
|
| 5 |
+
**Creator / engineer:** Ibnul Jaif Farabi · **Company:** AI999X.
|
| 6 |
+
|
| 7 |
+
## What the knowledge base holds
|
| 8 |
+
|
| 9 |
+
6207 records, of which 6135 are **machine-checked** (recomputed or checked step by step by the factory). Every other record is **structurally valid only**: well formed and consistent, but its meaning is not verified, and it is labelled so in the store.
|
| 10 |
+
|
| 11 |
+
| kind | tier | records |
|
| 12 |
+
|---|---|---|
|
| 13 |
+
| exercise | machine_checked | 6063 |
|
| 14 |
+
| explanation | structurally_valid | 72 |
|
| 15 |
+
| procedure | machine_checked | 72 |
|
| 16 |
+
|
| 17 |
+
## How it was produced
|
| 18 |
+
|
| 19 |
+
Candidate content was written by a teacher model and judged by the factory's own checks (no teacher output is trusted by itself). Campaigns:
|
| 20 |
+
|
| 21 |
+
| campaign | teacher | status | requests sent | accepted | machine-checked | spend (USD) |
|
| 22 |
+
|---|---|---|---|---|---|---|
|
| 23 |
+
|
| 24 |
+
## Reference sources
|
| 25 |
+
|
| 26 |
+
- none
|
| 27 |
+
|
| 28 |
+
## Decision-model datasets
|
| 29 |
+
|
| 30 |
+
- none
|
| 31 |
+
|
| 32 |
+
## Limits
|
| 33 |
+
|
| 34 |
+
- Machine-checked means checked by computation against the factory's certified relations, procedures and identities; it does not mean verified by experiment or by an expert.
|
| 35 |
+
- Structurally valid records (concepts, theories, explanations, many misconceptions) are not verified in meaning.
|
| 36 |
+
- The teacher model's wording is original to it; the source screen catches verbatim copying, not paraphrase.
|
evaluation/release_gate.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# optimization-ai999x 1.6.0 — release gate
|
| 2 |
+
|
| 3 |
+
Pack 1.0.1. **RELEASABLE** (generated by `tools/release_gate.py`). Not published: publication needs the owner's approval.
|
| 4 |
+
|
| 5 |
+
| criterion | passed | evidence |
|
| 6 |
+
|---|---|---|
|
| 7 |
+
| contracts | yes | {"contracts": 73, "invalid": {}} |
|
| 8 |
+
| wheel_is_this_version | yes | {"version": "1.6.0", "latest_wheel": "optimization_ai999x-1.6.0-py3-none-any.whl"} |
|
| 9 |
+
| acceptance | yes | {"tested": "optimization_ai999x-1.6.0-py3-none-any.whl", "latest_wheel": "optimization_ai999x-1.6.0-py3-none-any.whl", "tally": {"structured": {"run": 108, "passed": 108}, "missing": {"run": 278, "passed": 278}, "wrong_unit": {"run": 95, "passed": 95}, "unknown_input": {"run": 108, "passed": 108}, " |
|
| 10 |
+
| guide | yes | {"examples_run": 248, "printed": 248, "withheld": 0} |
|
| 11 |
+
| clean_install | yes | {"wheel": "optimization_ai999x-1.6.0-py3-none-any.whl", "wheel_kb": 3968.8, "installed_package_mb": 18.8, "cold_import_s": 0.043, "first_ask_s": 0.024, "warm_median_ms": 0.5, "peak_rss_mb": 29.0, "python": "3.14.4", "platform": "linux", "failed_checks": []} |
|
| 12 |
+
| procedures | yes | {"defined": ["ahp_consistency_ratio", "ahp_geometric_mean", "ahp_priority_vector", "all_pairs_shortest_paths", "assignment_max_profit", "assignment_min_cost", "bellman_ford_shortest_path", "bin_packing", "bipartite_matching", "break_even_point", "can_min_surface", "critical_path_method", "critical_p |
|
| 13 |
+
| must_refuse | n/a | {"questions": 0, "answered": []} |
|
| 14 |
+
| regression | yes | {"files": {"probes.json": {"correct": 4, "refused_no_answer_is_determined": 1, "refused_capability_gap": 0, "refused_unjustified": 0, "incorrect": 0, "crash": 0, "correct_rate": 0.8, "refusal_rate": 0.2}}} |
|
| 15 |
+
| no_network | yes | {"files_scanned": 36, "hits": []} |
|
| 16 |
+
| no_source_material | yes | {"wheel": "optimization_ai999x-1.6.0-py3-none-any.whl", "leaks": []} |
|
| 17 |
+
| reader_optional | n/a | {} |
|
| 18 |
+
|
| 19 |
+
Release standard (what the vault's `releases/` accepts): **PUBLISHABLE**
|
| 20 |
+
|
| 21 |
+
| criterion | passed | evidence |
|
| 22 |
+
|---|---|---|
|
| 23 |
+
| platforms | yes | {"identical_on": ["Linux", "Windows"], "reports": 2, "note": "macOS is expected (pure-Python core) but not tested"} |
|
| 24 |
+
| dataset_card | yes | {"card": "release/DATASET_CARD.md"} |
|
| 25 |
+
| pack_snapshot | yes | {"version": "1.0.1"} |
|
| 26 |
+
| licence | yes | {} |
|
| 27 |
+
| version | yes | {"version": "1.6.0"} |
|
figures/johnson-two-machine-gantt.svg
ADDED
|
|
figures/lp-two-variable-graphical-region.svg
ADDED
|
|
figures/shortest-path-graph.svg
ADDED
|
|
figures/steepest-descent-step-iteration.svg
ADDED
|
|
figures/transportation-problem-heatmap.svg
ADDED
|
|