# Gemini Google Sheets 排班优化：先满足每日人数，再用一条冲突约束证明方案无解

本包是apizt原创教学材料。目标SaaS未登录、未运行，未发邮件、未修改云端记录。原生文件和结果为作者本地确定性参考，官方截图仅为来源示例。

1. Gemini Google Sheets 排班优化：把shift-input.xlsx导入为原生Google Sheets，先确认四类班型覆盖与七天需求。constraints.md明确每类人数只能为0至6的整数，成本都是周成本，不要把每天人数直接相加。

2. 在Ask Gemini中指向Patterns和Demand范围，说明最小化周成本。要求先复述整数上下界和每日覆盖条件，再调用可用的优化功能；没有合资格入口时保留本地练习，不声称已云端求解。

3. 再次核对四个班型人数均为0至6整数、每天覆盖不低于需求、目标为最小周成本。让结果给出四个班型人数，而不只是写“可以满足”。根据每个班型覆盖重算每日人数，周六周日也要过关。所有需求都来自原表，不能为得到答案而降低需求。

4. 在自己的表格中运行优化，把四个班型人数和目标值写入独立结果表。打开作者staffing-solution.xlsx与solve.py。脚本穷举7的4次方，即2401种允许组合并实际得到最小成本；这是本题有界问题的独立核对，不是对任意规模排班的最优性承诺。

5. 用coverage-check.csv逐日比coverage与demand，查看是否存在负surplus。截图的橙线为需求，柱形为作者可行解；这张图没有在Gemini求解器里生成。

6. 把班型周末覆盖全部改为0，周末需求仍为2。无论人数取多少，周末覆盖上界都是0，因此无解；不要接受一份周末缺人的“最优排班”。

7. 保存目标表格的结果与无解说明，再跑python3 verify.py。检查最小成本、人数整数、7天覆盖及无解反例。本包不替组织排真实班，也没有修改任何人员日程。

## 本地验证

运行 `python3 verify.py`。验证器在临时目录复算教材，不覆盖用户输入。原生PDF结构/页数检查需要pypdf（缺少时运行 `python3 -m pip install pypdf`）；其余脚本使用Python标准库。若本题有单独程序，命令见prompts.md；不含凭据或账号。

## 官方来源

- Google：Collaborate with Gemini in Sheets https://support.google.com/docs/answer/14356410?hl=en
