尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A webapp that visualizes and annotates your ortools' CP-SAT logs. Partially inspired by gurobi-logtools.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
CP-SAT's search log is dense, long, and full of information that only makes sense if you know
the solver's internals. This tool turns it into something you can read: parsed, explained,
plotted, and annotated with what the numbers actually mean for your model.
Paste a log, upload a file, or click one of the bundled examples. Nothing is stored - your log
is processed in memory for the duration of the request and then gone. No database, no account,
no cookies, no tracking.
This project is not affiliated with Google.檢視完整 README ↗CP-SAT's search log is dense, long, and full of information that only makes sense if you know the solver's internals. This tool turns it into something you can read: parsed, explained, plotted, and annotated with what the numbers actually mean for your model.
Try it: https://cpsat-loganalyzer.krupke-algorithms.de/
Paste a log, upload a file, or click one of the bundled examples. Nothing is stored - your log is processed in memory for the duration of the request and then gone. No database, no account, no cookies, no tracking.
This project is not affiliated with Google.
Explains every section of the log. Solver header, initial and presolved model, presolve
passes, search events, statistics tables, response summary - each gets a text that says what it
is and what to look for. Tables and their columns, constraint kinds (kNoOverlap2D,
kAllDiff, ...), solver messages and every response field are documented too.
Points out what matters. An Overview card scores the run - OR-Tools version, worker count, final gap, presolve share of the wall time, solutions and bound improvements, and whether a solution hint was given and used - and colors a tile when something deserves attention. On top of that, two dozen insight triggers look for specific situations and say what they imply, for example:
Says what became of your hint. Whether a solution hint reached the solver, whether it was
complete and feasible, and whether CP-SAT actually started from it (the complete_hint
solution) - including the trap that CP-SAT prints "The solution hint is complete and is
feasible." for runs that were given no hint at all.
Plots the progress. Incumbent objective and proven bound over time, interactive, and every point links back to the log line that produced it.
Attributes the work. Which subsolver found the solutions, which raised the bound, and what
each of the ~20 workers in CP-SAT's portfolio (default_lp, core, fs_random_no_lp,
graph_arc_lns, shared_tree, ...) is actually for.
Reviews your parameters. Every overridden parameter is shown with its official
documentation, practical advice, and a warning when it quietly disables part of the portfolio -
interleave_search, use_lns_only, linearization_level, FIXED_SEARCH and friends have
consequences that the log alone does not spell out.
Copes with broken logs. A run that was killed, a log clipped by a terminal, one prefixed by a logging framework, your own prints mixed in, or the wrong file entirely: nothing crashes, the parts that could not be read are marked in the raw log and listed, and the analysis says up front that it is looking at an incomplete log.
Keeps the evidence. Every parsed value knows the line it came from, so the analysis and the raw log sit side by side, linked in both directions - no claim without the line that supports it.
Speaks CP-SAT 9.3 to 9.15, including the older log formats, and is checked against 295 real logs from public instance libraries on every test run.
Open https://cpsat-loganalyzer.krupke-algorithms.de/ - that instance runs this repository, and needs nothing installed.
To run your own, so that logs never leave your machine or your network:
git clone https://github.com/d-krupke/CP-SAT-Log-Analyzer.git
cd CP-SAT-Log-Analyzer
docker compose up --build
# open http://localhost:8080
Deploying it for others, configuration, sizing and operations: docs/deployment.md.
The earlier Streamlit implementation - the one behind
https://cpsat-log-analyzer.streamlit.app/ - lives on the legacy branch and is
feature-frozen.
| Read this | For |
|---|---|
| docs/deployment.md | running it for other people |
| docs/development.md | local setup, tests, editing the explanations |
| docs/architecture.md | how the parser, backend, knowledge base and UI fit together |
| docs/README.md | index, including the per-component READMEs |
The repository is the analyzer: backend/ the FastAPI app,
frontend/ the React UI, knowledge/ the TOML
texts and corpus/ the 295 logs the tests run against. Reading the log
itself is the job of cpsat-logutils, a separate package developed for this tool -
pip install cpsat-logutils if you want the parsed model without the UI.
Issues and pull requests are welcome. Two things are easy to contribute without touching much code:
knowledge/ - texts, parameter advice, subsolver descriptions,
table columns. Correcting or sharpening a text needs no Python.backend/app/insights/triggers/: it gets the parsed log and
either stays quiet or writes its sentence. base.py shows the shape.Before opening a pull request, run the suites listed in
docs/development.md. If you changed something visible, regenerate the
screenshots on this page with npm run screenshots in frontend and commit them with the
change.
Developed by Dominik Krupke. There is no funding for this project; it is mainly developed in spare time. If you want to support it, contribute or get in touch.
MIT, see LICENSE.