원클릭으로
skill-autosolver
AutoSolver 总入口 skill,统筹 loop、strategies、evaluate 三个分 skill,用于理解项目结构、自主迭代候选求解器、选择策略方向并执行本地评估。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
AutoSolver 总入口 skill,统筹 loop、strategies、evaluate 三个分 skill,用于理解项目结构、自主迭代候选求解器、选择策略方向并执行本地评估。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | skill-autosolver |
| description | AutoSolver 总入口 skill,统筹 loop、strategies、evaluate 三个分 skill,用于理解项目结构、自主迭代候选求解器、选择策略方向并执行本地评估。 |
| user-invocable | true |
| allowed-tools | ["Read","Write","Bash","Glob","Grep","Agent"] |
这个 skill 是 AutoSolver 项目的总调度入口。它不替代三个分 skill,而是说明什么时候、按什么顺序使用它们:
loop/SKILL.md:完整迭代闭环,负责“检查日志 → 选策略 → 实现候选 → 评估 → 记录 → 决策”。strategies/SKILL.md:策略方向目录,负责根据已有基线和失败记录选择下一轮可检验假设。evaluate/SKILL.md:本地评估流程,负责统一计算 data/*.txt 的平均 Penalty、逐 case Penalty 和合法性检查。当用户要求“继续优化 AutoSolver”“自动迭代”“找更好 solver”时,优先使用 loop。当用户只问“下一步试什么策略”或“分析方向”时,使用 strategies。当用户只要求“评估某个候选文件”时,使用 evaluate。
AutoSolver 项目根目录应同时包含:
candidate_solvers/
data/
docs/
examples/
logs/
skill-autosolver/
tools/
关键文件含义:
| 路径 | 用途 |
|---|---|
docs/AutoSolver.md | 题面、输出约束、目标函数逆向说明和历史策略记录 |
tools/recovered_objective.py | 本地 Penalty 计算、输入解析和分组工具 |
tools/evaluate_solver.py | 标准本地评估入口,输出均分、逐 case、合法性和耗时 |
tools/strategy.py | 已有贪心策略回放代码,可作为候选实现参考 |
logs/solver_log.md | 当前最优、逐 case 结果、失败方向和迭代历史 |
candidate_solvers/solver_<strategy_name>.py | 迭代阶段候选求解器 |
examples/example_solution.py | 简单贪心 solver 示例 |
data/*.txt | 本地评估数据集 |
data/provided/ | 原始输入文件副本,只作留档参考 |
最终提交用的 solver.py 放在项目根目录;在迭代阶段不要用它替代候选文件,除非用户明确要求评估或生成最终输出。
求解器必须定义:
def solve(input_text: str) -> list:
...
输入是制表符分隔的候选派单表:
task_id_list courier_id total_score willingness
输出格式:
[
("T0001", ["C001", "C009"]),
("T0002,T0005", ["C003"]),
]
必须满足:
courier_id 在所有输出分组中最多出现一次。task_id_list 允许多个备选骑手,但必须合并到同一个输出项的 courier_ids 列表中。(task_id_list, courier_id) 必须精确存在于输入候选池,不能混用单单和合单的 score 或 willingness。目标是最小化总 Penalty。根据项目内逆向结果,Penalty 由未覆盖订单惩罚和每个输出分组的期望惩罚组成;详见 docs/AutoSolver.md 和 tools/recovered_objective.py。
执行任何操作前先确认 PROJECT_ROOT。优先级:
data/、candidate_solvers/、tools/recovered_objective.py。AutoSolver/ 子目录。AutoSolver 目录。后续所有相对路径都以 PROJECT_ROOT 为基准。
先读:
README.mdlogs/solver_log.mddocs/AutoSolver.md当前真实官方最好记录是 candidate_solvers/solver_round37_adaptive_topn.py,官方均分 724.07,完成 10/10。当前根目录 solver.py 是 38 轮可测结构上的 low-timeout 修复版,备份为 candidate_solvers/solver_round38_lowtimeout.py;本地均分 687.94,目标是让官方 low_willingness 不再超时后回到约 723.x。如果日志被更新,以最新日志为准。
按任务选择一个或多个分 skill:
| 场景 | 使用 |
|---|---|
| 用户要求完整自动优化或继续迭代 | 先读 loop/SKILL.md,再按其中流程调用 strategies 和 evaluate |
| 用户要求选择下一轮策略方向 | 读 strategies/SKILL.md,结合 logs/solver_log.md 判断 |
| 用户指定候选 solver 要评估 | 读 evaluate/SKILL.md,使用统一合法性检查和 Penalty 口径 |
用户要求生成最终 solver.py | 先用 loop 确认终止条件,再整理当前最优候选为自包含文件 |
候选策略写入:
candidate_solvers/solver_<strategy_name>.py
候选文件必须提供 solve(input_text: str) -> list。迭代阶段可以参考或复用项目工具;最终 solver.py 必须自包含,只依赖 Python 标准库。
优先从 strategies/SKILL.md 的方向中选择:
MULTI_ADAPTIVE_K、MULTI_TOP_K_SEARCHEV_GREEDY、EV_MARGINSINGLE_FIRST_BUNDLE_BACKFILL每个候选都必须使用 evaluate/SKILL.md 的统一流程评估:
data/*.txttools/recovered_objective.pypython tools\evaluate_solver.py <candidate>format_error评估后把结果写入 logs/solver_log.md,记录策略文件、参数、平均 Penalty、与当前最优差值、逐 case 明细、状态和下一步判断。
如果评估使用的是额外合成的样例数据,还要把样例构造方式、结果摘要和策略启发同步记录到 strategies/SKILL.md 的对应策略段落中;真实 data/*.txt 的正式对比结果仍以 logs/solver_log.md 为准。
scarce_couriers、low_willingness 等关键 case 退化,要优先考虑分场景策略。loop/SKILL.md 的阶梯切换到组合策略、高级策略或目录外新假设。本总 skill 目录应保持如下结构:
skill-autosolver/
SKILL.md
loop/
SKILL.md
strategies/
SKILL.md
evaluate/
SKILL.md
三个分 skill 是具体操作手册。使用时先读本文件确定入口,再打开对应分 skill 的 SKILL.md 执行详细流程。
data/provided/,它是原始输入留档。solver.py,除非已经进入最终整理阶段。Cannot read properties of undefined (reading 'slice'),后续提交优先沿 38 轮可测结构小步修改:保持顶层 def solve(input_text: str) -> list,避免大规模入口重构、强制映射表和平台不熟悉的提交形态。skill-autosolver/ 目录下创建候选策略、日志或最终 solver。