Skip to content

Commit 6fc36f9

Browse files
author
Maximilian Reißmann
committed
update docu
1 parent 09ae07b commit 6fc36f9

14 files changed

+696
-82
lines changed

docs/build/api-reference.html

Lines changed: 94 additions & 19 deletions
Large diffs are not rendered by default.

docs/build/core-concepts.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/build/examples/basic-regression.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,4 +272,4 @@
272272
end
273273

274274
# Perform cross-validation
275-
cv_scores = cross_validate(x_train, y_train)</code></pre><h2 id="Best-Practices-Summary"><a class="docs-heading-anchor" href="#Best-Practices-Summary">Best Practices Summary</a><a id="Best-Practices-Summary-1"></a><a class="docs-heading-anchor-permalink" href="#Best-Practices-Summary" title="Permalink"></a></h2><ol><li><strong>Always use separate test data</strong> for unbiased performance evaluation</li><li><strong>Monitor convergence</strong> through fitness evolution plots</li><li><strong>Analyze residuals</strong> to identify systematic errors</li><li><strong>Use appropriate metrics</strong> for your specific problem type</li><li><strong>Consider cross-validation</strong> for robust performance estimates</li><li><strong>Visualize results</strong> to gain insights into model behavior</li><li><strong>Start with simple parameters</strong> and gradually increase complexity</li></ol><p>This basic example provides a solid foundation for understanding GeneExpressionProgramming.jl. The principles and techniques demonstrated here apply to more complex scenarios covered in the advanced examples.</p><hr/><p><em>Next: <a href="multi-objective.html">Multi-Objective Optimization</a></em></p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../core-concepts.html">« Core Concepts</a><a class="docs-footer-nextpage" href="multi-objective.html">Multi-Objective Optimization »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.14.1 on <span class="colophon-date" title="Friday 18 July 2025 08:59">Friday 18 July 2025</span>. Using Julia version 1.11.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
275+
cv_scores = cross_validate(x_train, y_train)</code></pre><h2 id="Best-Practices-Summary"><a class="docs-heading-anchor" href="#Best-Practices-Summary">Best Practices Summary</a><a id="Best-Practices-Summary-1"></a><a class="docs-heading-anchor-permalink" href="#Best-Practices-Summary" title="Permalink"></a></h2><ol><li><strong>Always use separate test data</strong> for unbiased performance evaluation</li><li><strong>Monitor convergence</strong> through fitness evolution plots</li><li><strong>Analyze residuals</strong> to identify systematic errors</li><li><strong>Use appropriate metrics</strong> for your specific problem type</li><li><strong>Consider cross-validation</strong> for robust performance estimates</li><li><strong>Visualize results</strong> to gain insights into model behavior</li><li><strong>Start with simple parameters</strong> and gradually increase complexity</li></ol><p>This basic example provides a solid foundation for understanding GeneExpressionProgramming.jl. The principles and techniques demonstrated here apply to more complex scenarios covered in the advanced examples.</p><hr/><p><em>Next: <a href="multi-objective.html">Multi-Objective Optimization</a></em></p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../core-concepts.html">« Core Concepts</a><a class="docs-footer-nextpage" href="multi-objective.html">Multi-Objective Optimization »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.14.1 on <span class="colophon-date" title="Thursday 24 July 2025 09:58">Thursday 24 July 2025</span>. Using Julia version 1.11.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

docs/build/examples/multi-objective.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,4 +435,4 @@
435435

436436
elem.fitness = (fit_quality, plausibility_penalty, simplicity)
437437
end
438-
end</code></pre><h2 id="Best-Practices-for-Multi-Objective-Optimization"><a class="docs-heading-anchor" href="#Best-Practices-for-Multi-Objective-Optimization">Best Practices for Multi-Objective Optimization</a><a id="Best-Practices-for-Multi-Objective-Optimization-1"></a><a class="docs-heading-anchor-permalink" href="#Best-Practices-for-Multi-Objective-Optimization" title="Permalink"></a></h2><h3 id="1.-Objective-Design"><a class="docs-heading-anchor" href="#1.-Objective-Design">1. Objective Design</a><a id="1.-Objective-Design-1"></a><a class="docs-heading-anchor-permalink" href="#1.-Objective-Design" title="Permalink"></a></h3><ul><li>Ensure objectives are conflicting (otherwise single-objective is sufficient) - can be figured out by observing correlation of different targets</li><li>Scale objectives to similar ranges</li><li>Consider the number of objectives (2-3 typically work best)</li></ul><h3 id="2.-Population-Management"><a class="docs-heading-anchor" href="#2.-Population-Management">2. Population Management</a><a id="2.-Population-Management-1"></a><a class="docs-heading-anchor-permalink" href="#2.-Population-Management" title="Permalink"></a></h3><ul><li>Use larger populations for multi-objective problems</li><li>Monitor diversity to ensure good Pareto front coverage</li><li>Consider archive strategies for very long runs</li></ul><h3 id="3.-Solution-Selection"><a class="docs-heading-anchor" href="#3.-Solution-Selection">3. Solution Selection</a><a id="3.-Solution-Selection-1"></a><a class="docs-heading-anchor-permalink" href="#3.-Solution-Selection" title="Permalink"></a></h3><ul><li>Use domain knowledge to guide selection</li><li>Consider elbow points on the Pareto front</li><li>Validate selected solutions on independent test data</li></ul><h3 id="4.-Visualization"><a class="docs-heading-anchor" href="#4.-Visualization">4. Visualization</a><a id="4.-Visualization-1"></a><a class="docs-heading-anchor-permalink" href="#4.-Visualization" title="Permalink"></a></h3><ul><li>Always visualize the Pareto front</li><li>Use parallel coordinate plots for &gt;2 objectives</li><li>Create decision support tools for stakeholders</li></ul><h3 id="5.-Computational-Efficiency"><a class="docs-heading-anchor" href="#5.-Computational-Efficiency">5. Computational Efficiency</a><a id="5.-Computational-Efficiency-1"></a><a class="docs-heading-anchor-permalink" href="#5.-Computational-Efficiency" title="Permalink"></a></h3><ul><li>Profile objective function evaluation</li><li>Consider approximation methods for expensive objectives</li><li>Use parallel evaluation when possible</li></ul><h2 id="Common-Pitfalls-and-Solutions"><a class="docs-heading-anchor" href="#Common-Pitfalls-and-Solutions">Common Pitfalls and Solutions</a><a id="Common-Pitfalls-and-Solutions-1"></a><a class="docs-heading-anchor-permalink" href="#Common-Pitfalls-and-Solutions" title="Permalink"></a></h2><h3 id="Pitfall-1:-Dominated-Objectives"><a class="docs-heading-anchor" href="#Pitfall-1:-Dominated-Objectives">Pitfall 1: Dominated Objectives</a><a id="Pitfall-1:-Dominated-Objectives-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-1:-Dominated-Objectives" title="Permalink"></a></h3><p><strong>Problem</strong>: One objective dominates others, leading to poor trade-offs (can sometimes be observed in NSGA) <strong>Solution</strong>: Proper objective scaling and normalization</p><h3 id="Pitfall-2:-Too-Many-Objectives"><a class="docs-heading-anchor" href="#Pitfall-2:-Too-Many-Objectives">Pitfall 2: Too Many Objectives</a><a id="Pitfall-2:-Too-Many-Objectives-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-2:-Too-Many-Objectives" title="Permalink"></a></h3><p><strong>Problem</strong>: Curse of dimensionality in objective space <strong>Solution</strong>: Limit to 2-3 objectives or use specialized many-objective algorithms</p><h3 id="Pitfall-3:-Poor-Diversity"><a class="docs-heading-anchor" href="#Pitfall-3:-Poor-Diversity">Pitfall 3: Poor Diversity</a><a id="Pitfall-3:-Poor-Diversity-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-3:-Poor-Diversity" title="Permalink"></a></h3><p><strong>Problem</strong>: Solutions cluster in one region of the Pareto front <strong>Solution</strong>: Increase population size or mutation rate</p><h3 id="Pitfall-4:-Expensive-Evaluation"><a class="docs-heading-anchor" href="#Pitfall-4:-Expensive-Evaluation">Pitfall 4: Expensive Evaluation</a><a id="Pitfall-4:-Expensive-Evaluation-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-4:-Expensive-Evaluation" title="Permalink"></a></h3><p><strong>Problem</strong>: Multi-objective evaluation is computationally expensive <strong>Solution</strong>: Use surrogate models, parallel evaluation, or approximation methods</p><hr/><p><em>Next: <a href="physical-dimensions.html">Physical Dimensionality</a></em></p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="basic-regression.html">« Basic Regression</a><a class="docs-footer-nextpage" href="physical-dimensions.html">Physical Dimensionality »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.14.1 on <span class="colophon-date" title="Friday 18 July 2025 08:59">Friday 18 July 2025</span>. Using Julia version 1.11.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
438+
end</code></pre><h2 id="Best-Practices-for-Multi-Objective-Optimization"><a class="docs-heading-anchor" href="#Best-Practices-for-Multi-Objective-Optimization">Best Practices for Multi-Objective Optimization</a><a id="Best-Practices-for-Multi-Objective-Optimization-1"></a><a class="docs-heading-anchor-permalink" href="#Best-Practices-for-Multi-Objective-Optimization" title="Permalink"></a></h2><h3 id="1.-Objective-Design"><a class="docs-heading-anchor" href="#1.-Objective-Design">1. Objective Design</a><a id="1.-Objective-Design-1"></a><a class="docs-heading-anchor-permalink" href="#1.-Objective-Design" title="Permalink"></a></h3><ul><li>Ensure objectives are conflicting (otherwise single-objective is sufficient) - can be figured out by observing correlation of different targets</li><li>Scale objectives to similar ranges</li><li>Consider the number of objectives (2-3 typically work best)</li></ul><h3 id="2.-Population-Management"><a class="docs-heading-anchor" href="#2.-Population-Management">2. Population Management</a><a id="2.-Population-Management-1"></a><a class="docs-heading-anchor-permalink" href="#2.-Population-Management" title="Permalink"></a></h3><ul><li>Use larger populations for multi-objective problems</li><li>Monitor diversity to ensure good Pareto front coverage</li><li>Consider archive strategies for very long runs</li></ul><h3 id="3.-Solution-Selection"><a class="docs-heading-anchor" href="#3.-Solution-Selection">3. Solution Selection</a><a id="3.-Solution-Selection-1"></a><a class="docs-heading-anchor-permalink" href="#3.-Solution-Selection" title="Permalink"></a></h3><ul><li>Use domain knowledge to guide selection</li><li>Consider elbow points on the Pareto front</li><li>Validate selected solutions on independent test data</li></ul><h3 id="4.-Visualization"><a class="docs-heading-anchor" href="#4.-Visualization">4. Visualization</a><a id="4.-Visualization-1"></a><a class="docs-heading-anchor-permalink" href="#4.-Visualization" title="Permalink"></a></h3><ul><li>Always visualize the Pareto front</li><li>Use parallel coordinate plots for &gt;2 objectives</li><li>Create decision support tools for stakeholders</li></ul><h3 id="5.-Computational-Efficiency"><a class="docs-heading-anchor" href="#5.-Computational-Efficiency">5. Computational Efficiency</a><a id="5.-Computational-Efficiency-1"></a><a class="docs-heading-anchor-permalink" href="#5.-Computational-Efficiency" title="Permalink"></a></h3><ul><li>Profile objective function evaluation</li><li>Consider approximation methods for expensive objectives</li><li>Use parallel evaluation when possible</li></ul><h2 id="Common-Pitfalls-and-Solutions"><a class="docs-heading-anchor" href="#Common-Pitfalls-and-Solutions">Common Pitfalls and Solutions</a><a id="Common-Pitfalls-and-Solutions-1"></a><a class="docs-heading-anchor-permalink" href="#Common-Pitfalls-and-Solutions" title="Permalink"></a></h2><h3 id="Pitfall-1:-Dominated-Objectives"><a class="docs-heading-anchor" href="#Pitfall-1:-Dominated-Objectives">Pitfall 1: Dominated Objectives</a><a id="Pitfall-1:-Dominated-Objectives-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-1:-Dominated-Objectives" title="Permalink"></a></h3><p><strong>Problem</strong>: One objective dominates others, leading to poor trade-offs (can sometimes be observed in NSGA) <strong>Solution</strong>: Proper objective scaling and normalization</p><h3 id="Pitfall-2:-Too-Many-Objectives"><a class="docs-heading-anchor" href="#Pitfall-2:-Too-Many-Objectives">Pitfall 2: Too Many Objectives</a><a id="Pitfall-2:-Too-Many-Objectives-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-2:-Too-Many-Objectives" title="Permalink"></a></h3><p><strong>Problem</strong>: Curse of dimensionality in objective space <strong>Solution</strong>: Limit to 2-3 objectives or use specialized many-objective algorithms</p><h3 id="Pitfall-3:-Poor-Diversity"><a class="docs-heading-anchor" href="#Pitfall-3:-Poor-Diversity">Pitfall 3: Poor Diversity</a><a id="Pitfall-3:-Poor-Diversity-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-3:-Poor-Diversity" title="Permalink"></a></h3><p><strong>Problem</strong>: Solutions cluster in one region of the Pareto front <strong>Solution</strong>: Increase population size or mutation rate</p><h3 id="Pitfall-4:-Expensive-Evaluation"><a class="docs-heading-anchor" href="#Pitfall-4:-Expensive-Evaluation">Pitfall 4: Expensive Evaluation</a><a id="Pitfall-4:-Expensive-Evaluation-1"></a><a class="docs-heading-anchor-permalink" href="#Pitfall-4:-Expensive-Evaluation" title="Permalink"></a></h3><p><strong>Problem</strong>: Multi-objective evaluation is computationally expensive <strong>Solution</strong>: Use surrogate models, parallel evaluation, or approximation methods</p><hr/><p><em>Next: <a href="physical-dimensions.html">Physical Dimensionality</a></em></p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="basic-regression.html">« Basic Regression</a><a class="docs-footer-nextpage" href="physical-dimensions.html">Physical Dimensionality »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.14.1 on <span class="colophon-date" title="Thursday 24 July 2025 09:58">Thursday 24 July 2025</span>. Using Julia version 1.11.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

0 commit comments

Comments
 (0)