Skip to content

csp/App-23 : le balancer resout un modele dont 0/9 sorties sont atteintes — contrainte de throughput + discrimination MIP/CP-SAT #14699

Description

@myia-ai-01

App-23 (Factorio Belt Balancer) resout un modele borne dont aucune sortie n'est atteinte : le validateur externe rend valid=False sur toutes les solutions, avec sorties_atteintes=0/9 (3x3) et 0/16 (4x4), max_error = 1/N.

Le notebook est honnete sur ce point — titre (« borne »), body, et la cellule 32 le disent noir sur blanc :

3x3 : valid=False, max_error=0.3333, sorties_atteintes=0/9
4x4 : valid=False, max_error=0.2500, sorties_atteintes=0/16
3x3 mixer : valid=False, max_error=0.6667, sorties_atteintes=2/9

Ce n'est donc pas un defaut cache, c'est une limite de scope assumee — et c'est a ce titre que #14515 a ete mergee, la reserve etant nommee ici avant le merge plutot que laissee implicite.

Ce qui reste a faire

  1. Contrainte de throughput reellement satisfaite. Le modele actuel autorise une solution ou le flux ne parvient a aucune sortie tout en etant declaree OPTIMAL. Forcer l'atteinte des sorties (flux sortant >= P/N par sortie) est la contrainte manquante.
  2. Discrimination MIP vs CP-SAT. Post-repair les deux moteurs rendent la meme solution avec le meme max_err ; seul le temps differe (5.2 vs 11.1 ms en 3x3, 14.7 vs 33.3 ms en 4x4). Un ecart de runtime n'est pas un discriminant de modelisation — c'est le cas degenere que Prong B de sota-not-workaround.md demande d'eviter. Une fois la contrainte (1) posee, verifier si la discrimination apparait ; sinon, complexifier l'instance jusqu'a ce qu'elle apparaisse.
  3. Reprendre le critere 4 de Search : cas Factorio CP-SAT borné avec validation indépendante #14466 (« les 3 tailles resolues »), aujourd'hui satisfait au sens statut du solveur et non au sens semantique du domaine — distinction relevee par la review NanoClaw du 2026-09-03 sur notebook(csp,#14466): App-23 Factorio Belt Balancer CP-SAT borne #14515.

Ce qui est deja acquis (ne pas refaire)

Le repair 3a9355c54 a ferme la degenerescence de branchement : flux nul sur cellule vide, C5 sur N+W, ancrage de la source au bord gauche, min_mixers >= 2. Mesure firsthand sur les sorties committees : 112 branches (3x3) / 387 (4x4), contre 0 avant. Le solveur travaille reellement — c'est la semantique du modele qui reste en deca, pas son exercice.

See #14466. Suite de #14515.

Activity

  1. added a commit that references this issue on Sep 5, 2026
  2. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    and removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 5, 2026
  3. jsboige commented on Sep 12, 2026

    @jsboige
    Owner

    Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: MED/tooling #15720

    [CLAIMED] lane myia-po-2025:CoursIA -- paths: MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb

    Réparer la sémantique du modèle : imposer un throughput réellement atteint aux sorties, puis mesurer une discrimination substantielle MIP/CP-SAT sur une instance bornée. Préflight frais : issue sans commentaire, aucune PR liée ou ouverte sur le fichier, aucun worktree/branche #14699, claim CLEAR. Le notebook sera ré-exécuté intégralement avec outputs réels avant livraison.

  4. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 13, 2026
  5. myia-ai-01 commented on Sep 18, 2026

    @myia-ai-01
    CollaboratorAuthor

    Fermeture sur verification firsthand (cycle ai-01 2026-09-18, lot de verification — body integral + tous commentaires lus, artefacts relus sur origin/main = 1f2e7c2d1f, PRs etatees une par une).

    PR #15745 MERGED 2026-09-12T18:44:47Z : contrainte de capacite agregee par face, validation independante LP/audit (« toutes les sorties atteintes »), et discrimination MIP/CP-SAT sur un domaine numerique. Artefacts sur main : audit_solver_flow x6, familles W=N / H=N+1, variantes band/ceil. Durcissement complementaire par #15824 MERGED 2026-09-13T23:43:35Z.

    Le point qui compte : la validation est independante du solveur, donc elle ne peut pas se contenter de re-affirmer ce que le solveur a decide — c'est ce que l'acceptance demandait.

    Hygiene de claim : le [CLAIMED] po-2025:CoursIA n'a jamais ete [RELEASED], et #15745 renvoyait explicitement la fermeture au coordinateur. C'est fait ici.

    Verdict CLOSE_OK. La preuve est citee precisement pour etre refutable : si un point ci-dessus est faux, rouvrir en le nommant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions