Skip to content

docs(ctp): CTP1-CTP8 checked against the published paper and Deb's 2001 book - #419

Merged
tachsin merged 1 commit into
mainfrom
fix/ctp8-against-the-book
Oct 2, 2026
Merged

tachsin merged 1 commit into
mainfrom
fix/ctp8-against-the-book

Conversation

@tachsin

@tachsin tachsin commented Oct 2, 2026

Copy link
Copy Markdown
Owner

CTP8 came from the authors' code only, and CTP1-CTP7 were checked against the preprint (KanGAL report 200005). They are now checked against Deb, Pratap and Meyarivan's published paper (EMO 2001, LNCS 1993, pp. 289-298) and Deb's book (Multi-Objective Optimization Using Evolutionary Algorithms, Wiley 2001, section 8.3.5, pp. 352-360). This closes the open item in #260.

All eight definitions match both sources. No code, optimal_front or example output changed.

  • CTP1 and the CTP2-CTP7 generator: the same equations as the preprint. CTP1 is the paper's eq. 4 and the book's eq. 8.45; the generator is eq. 5 and eq. 8.46.
  • CTP8 (book p. 358): C₁: θ = 0.1π, a = 40, b = 0.5, c = 1, d = 2, e = −2. C₂: θ = −0.05π, a = 40, b = 2, c = 1, d = 6, e = 0. These are exactly the values taken from the code. The three front pieces marked in the book's figure 232 match genoxide's derived pieces.

Documented, not changed:

  • f₂: both sources print f₂ = g(1 − f₁/g), while their figures draw 1 − √f₁, as the code does. genoxide keeps the square root.
  • g and the bounds: neither source fixes them; genoxide keeps the code's.
  • Figures: they omit CTP5's last touch point and CTP7's edge pieces, which genoxide's fronts include.

Fixed: CTP8's documented piece ends were slightly off (0.1341 for 0.1345, and similar). The docs, the Python docstrings, the eight examples' READMEs and comments, and the plan now cite the paper, the report and the book with pages. CTP8 is marked as verified against its original.

…01 book

The EMO 2001 paper (LNCS 1993: 284-298, eqs. 4-6, pp. 289-294) has the
KanGAL report's equations and parameters for CTP1-CTP7, and Deb's book
(section 8.3.5, eqs. 8.45 and 8.46, pp. 352-360) restates them and gives
CTP8's two constraints on p. 358, genoxide's exactly; its figure 232 marks
the three front pieces genoxide derives. No definition changes. Both
sources print f2 without the square root their figures draw, as the report
does; the book names g = 1 + x2 (p. 360). The docs, READMEs, Python
docstrings, CTP8's reference and the plan now cite the paper and the book,
and Ctp8's Rust docs give its pieces' ends as optimal_front computes them.
@tachsin
tachsin merged commit 9aa2311 into main Oct 2, 2026
22 checks passed
@tachsin
tachsin deleted the fix/ctp8-against-the-book branch October 2, 2026 16:11
@github-actions github-actions Bot mentioned this pull request Oct 2, 2026
tachsin pushed a commit that referenced this pull request Oct 2, 2026
## 🤖 New release

* `genoxide`: 0.13.0 -> 0.13.1 (✓ API compatible changes)
* `genoxide-python`: 0.13.0 -> 0.13.1

<details><summary><i><b>Changelog</b></i></summary><p>

## `genoxide`

<blockquote>

##
[0.13.1](v0.13.0...v0.13.1)
- 2026-10-02

### <!-- 0 -->Added

- shift and rotation wrappers and seventeen CEC- and BBOB-style
functions, each with its own example
([#409](#409))
- *(moead)* MOEA/D-DE, differential evolution in place of the crossover
(Li and Zhang 2009)
([#418](#418))
- the constrained DTLZ8 and DTLZ9, the DC-DTLZ and the DAS-CMOP
problems, each with its own example
([#414](#414))
- *(problems)* gradients for batch 10b's functions, and gradients and
constraint values through Shifted and Rotated
([#420](#420))
- *(problems)* binary and combinatorial problems, batch 12, each with
its own example ([#421](#421))

### <!-- 4 -->Documentation

- *(ctp)* CTP1-CTP8 checked against the published paper and Deb's 2001
book ([#419](#419))
</blockquote>



</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

1 participant