Skip to content

docs: align ZDT2 quality protocol to gens=250 (v0.1.4) - #7

Merged
jkbennitt merged 2 commits into
mainfrom
cursor/zdt2-protocol-250-eab7
Sep 19, 2026
Merged

jkbennitt merged 2 commits into
mainfrom
cursor/zdt2-protocol-250-eab7

Conversation

@jkbennitt

@jkbennitt jkbennitt commented Sep 19, 2026 •

Copy link
Copy Markdown
Member

Summary

Light protocol/docs PR so C# ZDT2 A/B matches unsga3-bend yardstick honesty, plus a patch version bump 0.1.3 → 0.1.4. No U-NSGA-III core / PackageId / API change. Do not merge or publish NuGet from this draft unless asked.

Bend investigation (PR #17): gens=100 collapses on Bend, C#, and pymoo; gens=250 + PymooCompatible recovered 0/15 collapses on both stacks. C# never published a hard ZDT2 oracle; smoke was roughly IGD < 0.75.

New ZDT2 defaults

Surface Before After (quality)
OracleCompare omitted --gens on --problem zdt2 100 250
run_pymoo_oracle.py omitted --gens on zdt2 100 250
Wilcoxon harness zdt2 protocol gens=100, RankNicheDistance gens=250, PymooCompatible
IgdSmokeTests ZDT2 150 gens, IGD < 0.75, RankNicheDistance 250 gens, same loose bar, same optional RankNicheDistance
ZDT1 100 unchanged
DTLZ2 150 unchanged

RankNicheDistance is documented as the optional unpublished Wilcoxon ZDT2 mating mode — not a silent default for all ZDT problems. gens=100 is an early-stress snapshot, not the quality bar.

v0.1.4 pins

  • Directory.Build.props <Version>0.1.4</Version>
  • CHANGELOG.md ## [0.1.4] — 2026-09-19 (ZDT2 protocol only; unrelated Unreleased items left)
  • CITATION.cff version: 0.1.4
  • README.md status line v0.1.4
  • .github/ISSUE_TEMPLATE/bug_report.yml placeholder 0.1.4

No v0.1.4 tag and no GitHub Packages / nuget.org publish in this PR.

Files

  • tools/OracleCompare/Program.cs
  • tools/oracle/run_pymoo_oracle.py
  • tools/oracle/run_multiseed_wilcoxon.py
  • tests/Unsga3.Tests/Benchmarks/IgdSmokeTests.cs
  • docs/EQUIVALENCE.md, docs/ORACLE-RESULTS.md, docs/WILCOXON-RESULTS.md, docs/RESEARCH-STANDARDS.md
  • README.md, CONTRIBUTING.md, CHANGELOG.md, CITATION.cff, Directory.Build.props
  • .grok/skills/unsga3-oracle/SKILL.md, .github/ISSUE_TEMPLATE/bug_report.yml

Checklist

  • CHANGELOG.md updated under [0.1.4]
  • dotnet build / dotnet test Unsga3.slnx -c Release after the version bump — 46/46 passed
  • Public API unchanged
  • Survival / normalization / metrics unchanged — no new Wilcoxon numbers invented

Test plan

  • Built + dotnet test Unsga3.slnx -c Release: 46 passed (ZDT2 smoke gens 150 → 250; loose IGD < 0.75 kept).
  • OracleCompare check: omitted --gens on zdt2 prints gens=250; zdt1 still gens=100; explicit --gens 100 on zdt2 still works.
  • ZDT1/DTLZ2 published tables and budgets left as-is.
  • Grep: package Version / CITATION / README pin at 0.1.4; historical 0.1.2 oracle notes left as recorded.
Open in Web Open in Cursor 

cursoragent and others added 2 commits September 19, 2026 05:35
Match unsga3-bend A/B honesty: ZDT2 default gens=250 + PymooCompatible.
gens=100 is an early-stress snapshot, not the quality bar. RankNicheDistance
stays an optional unpublished Wilcoxon mating mode. ZDT1 and DTLZ2 unchanged.

Co-authored-by: Jason <jkbennitt@users.noreply.github.com>
Patch bump for the ZDT2 quality-protocol honesty change. No algorithm or
public API change. Do not tag or publish from this commit until asked.

Co-authored-by: Jason <jkbennitt@users.noreply.github.com>
@cursor cursor Bot changed the title docs: align ZDT2 quality protocol to gens=250 docs: align ZDT2 quality protocol to gens=250 (v0.1.4) Sep 19, 2026
@jkbennitt
jkbennitt marked this pull request as ready for review September 19, 2026 05:48

@jkbennitt jkbennitt left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

Jason approved (via Bend). Merging on real green.

Scope

  • ZDT2 quality protocol → gens=250 + PymooCompatible defaults (docs/harness). gens=100 stays early-stress. RankNicheDistance optional, not silent ZDT default. ZDT1/DTLZ2 unchanged.
  • Patch bump 0.1.3 → 0.1.4 (Version / CHANGELOG / CITATION / README). No algorithm/API change. No NuGet/tag from this merge (Bend owns tag after).
  • Smoke test gens 150→250; loose IGD < 0.75 kept.

Checks

  • build-test SUCCESS (run 35424812924)
  • typesafe-pareto SUCCESS (same run)

Verdict

Looks right. Merging squash.

@jkbennitt
jkbennitt merged commit 6dd91b5 into main Sep 19, 2026
2 checks passed
@jkbennitt
jkbennitt deleted the cursor/zdt2-protocol-250-eab7 branch September 19, 2026 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants