PARETO FRONT (Non-dominated solutions)
{{ pareto_table|safe }}
{% endif %}
{% if history %}
Evolution Timeline (Sample Structures per Generation)
The top 5 ranked survivor molecules are shown for each generation, based on the optimisation objective.
{% for h in history %}
Generation {{ h.generation }}
{% if h.samples and h.samples|length > 0 %}
{% for s in h.samples %}
Rank {{ s.rank }}
{{ s.name }}
{{ s.smiles }}
{% endfor %}
{% else %}
No valid samples captured for this generation.
{% endif %}
{% endfor %}
{% endif %}
{% if error %}
{{ error }}
{% endif %}