Companion Notebook¶
The NSGA2Generator can be run on multi-objective optimization problems purely from Xopt's YAML configuration files. This notebook demonstrates how to set up the configuration file, how to run the optimization algorithm, and how to load the data into python and plot the results. At the end, we demonstrate how to restart an optimization from one of NSGA2Generator's checkpoint files.
import matplotlib.pyplot as plt
import pandas as pd
import shutil
Calling the Xopt Runner CLI Tool¶
Xopt includes a tool caled xopt-run which will load the Xopt object from the YAML configuration file and call Xopt.run() on it to perform the optimization until the termination condition is achieved.
# Run the optimizer (will take ~30s)
# We will run from the example directory containing `eval_fun.py` which is imported during our xopt run
! cd assets/yaml_runner_example && xopt-run nsga2_zdt3.yml
2025-09-30 19:53:37,485 - INFO - Initialized generator nsga2 2025-09-30 19:53:37,490 - INFO - Running Xopt 2025-09-30 19:53:37,490 - INFO - Running Xopt step
2025-09-30 19:53:37,490 - INFO - detected existing output_dir "nsga2_output" and corrected to "nsga2_output" to avoid overwriting 2025-09-30 19:53:37,490 - INFO - routing log output to file: nsga2_output/log.txt 2025-09-30 19:53:37,504 - INFO - completed generation 1 in 0.018s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=50, n_candidates=50) 2025-09-30 19:53:37,515 - INFO - Running Xopt step
2025-09-30 19:53:37,556 - INFO - completed generation 2 in 0.052s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=100, n_candidates=100) 2025-09-30 19:53:37,568 - INFO - Running Xopt step
2025-09-30 19:53:37,608 - INFO - completed generation 3 in 0.052s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=150, n_candidates=150) 2025-09-30 19:53:37,623 - INFO - Running Xopt step
2025-09-30 19:53:37,663 - INFO - completed generation 4 in 0.055s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=200, n_candidates=200) 2025-09-30 19:53:37,680 - INFO - Running Xopt step
2025-09-30 19:53:37,720 - INFO - completed generation 5 in 0.058s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=250, n_candidates=250) 2025-09-30 19:53:37,740 - INFO - Running Xopt step
2025-09-30 19:53:37,780 - INFO - completed generation 6 in 0.060s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=300, n_candidates=300)
2025-09-30 19:53:37,803 - INFO - Running Xopt step 2025-09-30 19:53:37,843 - INFO - completed generation 7 in 0.063s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=350, n_candidates=350)
2025-09-30 19:53:37,869 - INFO - Running Xopt step
2025-09-30 19:53:37,909 - INFO - completed generation 8 in 0.066s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=400, n_candidates=400) 2025-09-30 19:53:37,937 - INFO - Running Xopt step
2025-09-30 19:53:37,978 - INFO - completed generation 9 in 0.069s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=450, n_candidates=450)
2025-09-30 19:53:38,009 - INFO - Running Xopt step
2025-09-30 19:53:38,050 - INFO - completed generation 10 in 0.071s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=500, n_candidates=500) 2025-09-30 19:53:38,083 - INFO - Running Xopt step
2025-09-30 19:53:38,124 - INFO - completed generation 11 in 0.075s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=550, n_candidates=550)
2025-09-30 19:53:38,161 - INFO - Running Xopt step
2025-09-30 19:53:38,202 - INFO - completed generation 12 in 0.078s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=600, n_candidates=600) 2025-09-30 19:53:38,242 - INFO - Running Xopt step
2025-09-30 19:53:38,283 - INFO - completed generation 13 in 0.081s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=650, n_candidates=650)
2025-09-30 19:53:38,325 - INFO - Running Xopt step
2025-09-30 19:53:38,366 - INFO - completed generation 14 in 0.083s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=700, n_candidates=700)
2025-09-30 19:53:38,412 - INFO - Running Xopt step
2025-09-30 19:53:38,453 - INFO - completed generation 15 in 0.086s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=750, n_candidates=750)
2025-09-30 19:53:38,505 - INFO - Running Xopt step 2025-09-30 19:53:38,545 - INFO - completed generation 16 in 0.093s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=800, n_candidates=800)
2025-09-30 19:53:38,596 - INFO - Running Xopt step
2025-09-30 19:53:38,637 - INFO - completed generation 17 in 0.091s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=850, n_candidates=850)
2025-09-30 19:53:38,690 - INFO - Running Xopt step
2025-09-30 19:53:38,732 - INFO - completed generation 18 in 0.095s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=900, n_candidates=900)
2025-09-30 19:53:38,788 - INFO - Running Xopt step
2025-09-30 19:53:38,829 - INFO - completed generation 19 in 0.098s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=950, n_candidates=950)
2025-09-30 19:53:38,889 - INFO - Running Xopt step
2025-09-30 19:53:38,929 - INFO - completed generation 20 in 0.100s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1000, n_candidates=1000)
2025-09-30 19:53:38,991 - INFO - Running Xopt step
2025-09-30 19:53:39,032 - INFO - completed generation 21 in 0.103s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1050, n_candidates=1050)
2025-09-30 19:53:39,098 - INFO - Running Xopt step
2025-09-30 19:53:39,139 - INFO - completed generation 22 in 0.107s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1100, n_candidates=1100)
2025-09-30 19:53:39,207 - INFO - Running Xopt step
2025-09-30 19:53:39,248 - INFO - completed generation 23 in 0.109s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1150, n_candidates=1150)
2025-09-30 19:53:39,320 - INFO - Running Xopt step
2025-09-30 19:53:39,361 - INFO - completed generation 24 in 0.113s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1200, n_candidates=1200)
2025-09-30 19:53:39,433 - INFO - Running Xopt step
2025-09-30 19:53:39,474 - INFO - completed generation 25 in 0.113s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1250, n_candidates=1250)
2025-09-30 19:53:39,550 - INFO - Running Xopt step
2025-09-30 19:53:39,591 - INFO - completed generation 26 in 0.117s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1300, n_candidates=1300)
2025-09-30 19:53:39,670 - INFO - Running Xopt step 2025-09-30 19:53:39,711 - INFO - completed generation 27 in 0.120s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1350, n_candidates=1350)
2025-09-30 19:53:39,793 - INFO - Running Xopt step
2025-09-30 19:53:39,834 - INFO - completed generation 28 in 0.123s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1400, n_candidates=1400)
2025-09-30 19:53:39,919 - INFO - Running Xopt step 2025-09-30 19:53:39,960 - INFO - completed generation 29 in 0.126s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1450, n_candidates=1450)
2025-09-30 19:53:40,048 - INFO - Running Xopt step
2025-09-30 19:53:40,090 - INFO - completed generation 30 in 0.130s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1500, n_candidates=1500)
2025-09-30 19:53:40,180 - INFO - Running Xopt step
2025-09-30 19:53:40,221 - INFO - completed generation 31 in 0.131s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1550, n_candidates=1550)
2025-09-30 19:53:40,313 - INFO - Running Xopt step
2025-09-30 19:53:40,355 - INFO - completed generation 32 in 0.134s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1600, n_candidates=1600)
2025-09-30 19:53:40,451 - INFO - Running Xopt step
2025-09-30 19:53:40,492 - INFO - completed generation 33 in 0.137s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1650, n_candidates=1650)
2025-09-30 19:53:40,591 - INFO - Running Xopt step
2025-09-30 19:53:40,632 - INFO - completed generation 34 in 0.140s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1700, n_candidates=1700)
2025-09-30 19:53:40,734 - INFO - Running Xopt step
2025-09-30 19:53:40,775 - INFO - completed generation 35 in 0.143s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1750, n_candidates=1750)
2025-09-30 19:53:40,879 - INFO - Running Xopt step 2025-09-30 19:53:40,920 - INFO - completed generation 36 in 0.145s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1800, n_candidates=1800)
2025-09-30 19:53:41,028 - INFO - Running Xopt step 2025-09-30 19:53:41,069 - INFO - completed generation 37 in 0.149s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1850, n_candidates=1850)
2025-09-30 19:53:41,178 - INFO - Running Xopt step 2025-09-30 19:53:41,220 - INFO - completed generation 38 in 0.151s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1900, n_candidates=1900)
2025-09-30 19:53:41,332 - INFO - Running Xopt step 2025-09-30 19:53:41,373 - INFO - completed generation 39 in 0.154s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=1950, n_candidates=1950)
2025-09-30 19:53:41,488 - INFO - Running Xopt step 2025-09-30 19:53:41,529 - INFO - completed generation 40 in 0.156s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2000, n_candidates=2000)
2025-09-30 19:53:41,648 - INFO - Running Xopt step
2025-09-30 19:53:41,690 - INFO - completed generation 41 in 0.160s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2050, n_candidates=2050)
2025-09-30 19:53:41,812 - INFO - Running Xopt step
2025-09-30 19:53:41,854 - INFO - completed generation 42 in 0.164s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2100, n_candidates=2100)
2025-09-30 19:53:41,979 - INFO - Running Xopt step
2025-09-30 19:53:42,021 - INFO - completed generation 43 in 0.167s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2150, n_candidates=2150)
2025-09-30 19:53:42,148 - INFO - Running Xopt step
2025-09-30 19:53:42,190 - INFO - completed generation 44 in 0.169s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2200, n_candidates=2200)
2025-09-30 19:53:42,320 - INFO - Running Xopt step
2025-09-30 19:53:42,362 - INFO - completed generation 45 in 0.172s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2250, n_candidates=2250)
2025-09-30 19:53:42,495 - INFO - Running Xopt step 2025-09-30 19:53:42,537 - INFO - completed generation 46 in 0.175s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2300, n_candidates=2300)
2025-09-30 19:53:42,674 - INFO - Running Xopt step
2025-09-30 19:53:42,716 - INFO - completed generation 47 in 0.179s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2350, n_candidates=2350)
2025-09-30 19:53:42,854 - INFO - Running Xopt step
2025-09-30 19:53:42,895 - INFO - completed generation 48 in 0.179s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2400, n_candidates=2400)
2025-09-30 19:53:43,036 - INFO - Running Xopt step
2025-09-30 19:53:43,079 - INFO - completed generation 49 in 0.183s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2450, n_candidates=2450)
2025-09-30 19:53:43,223 - INFO - Running Xopt step
2025-09-30 19:53:43,265 - INFO - completed generation 50 in 0.186s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2500, n_candidates=2500)
2025-09-30 19:53:43,412 - INFO - Running Xopt step
2025-09-30 19:53:43,455 - INFO - completed generation 51 in 0.190s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2550, n_candidates=2550)
2025-09-30 19:53:43,606 - INFO - Running Xopt step 2025-09-30 19:53:43,648 - INFO - completed generation 52 in 0.193s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2600, n_candidates=2600)
2025-09-30 19:53:43,802 - INFO - Running Xopt step
2025-09-30 19:53:43,844 - INFO - completed generation 53 in 0.196s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2650, n_candidates=2650)
2025-09-30 19:53:44,001 - INFO - Running Xopt step
2025-09-30 19:53:44,043 - INFO - completed generation 54 in 0.199s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2700, n_candidates=2700)
2025-09-30 19:53:44,204 - INFO - Running Xopt step
2025-09-30 19:53:44,246 - INFO - completed generation 55 in 0.203s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2750, n_candidates=2750)
2025-09-30 19:53:44,408 - INFO - Running Xopt step
2025-09-30 19:53:44,450 - INFO - completed generation 56 in 0.204s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2800, n_candidates=2800)
2025-09-30 19:53:44,616 - INFO - Running Xopt step 2025-09-30 19:53:44,658 - INFO - completed generation 57 in 0.207s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2850, n_candidates=2850)
2025-09-30 19:53:44,824 - INFO - Running Xopt step
2025-09-30 19:53:44,866 - INFO - completed generation 58 in 0.208s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2900, n_candidates=2900)
2025-09-30 19:53:45,034 - INFO - Running Xopt step
2025-09-30 19:53:45,077 - INFO - completed generation 59 in 0.211s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=2950, n_candidates=2950)
2025-09-30 19:53:45,249 - INFO - Running Xopt step
2025-09-30 19:53:45,292 - INFO - completed generation 60 in 0.215s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3000, n_candidates=3000)
2025-09-30 19:53:45,467 - INFO - Running Xopt step
2025-09-30 19:53:45,509 - INFO - completed generation 61 in 0.217s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3050, n_candidates=3050)
2025-09-30 19:53:45,688 - INFO - Running Xopt step
2025-09-30 19:53:45,731 - INFO - completed generation 62 in 0.222s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3100, n_candidates=3100)
2025-09-30 19:53:45,909 - INFO - Running Xopt step
2025-09-30 19:53:45,952 - INFO - completed generation 63 in 0.221s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3150, n_candidates=3150)
2025-09-30 19:53:46,137 - INFO - Running Xopt step
2025-09-30 19:53:46,180 - INFO - completed generation 64 in 0.228s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3200, n_candidates=3200)
2025-09-30 19:53:46,365 - INFO - Running Xopt step
2025-09-30 19:53:46,408 - INFO - completed generation 65 in 0.228s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3250, n_candidates=3250)
2025-09-30 19:53:46,594 - INFO - Running Xopt step
2025-09-30 19:53:46,637 - INFO - completed generation 66 in 0.229s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3300, n_candidates=3300)
2025-09-30 19:53:46,829 - INFO - Running Xopt step
2025-09-30 19:53:46,871 - INFO - completed generation 67 in 0.235s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3350, n_candidates=3350)
2025-09-30 19:53:47,066 - INFO - Running Xopt step
2025-09-30 19:53:47,109 - INFO - completed generation 68 in 0.237s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3400, n_candidates=3400)
2025-09-30 19:53:47,305 - INFO - Running Xopt step
2025-09-30 19:53:47,348 - INFO - completed generation 69 in 0.239s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3450, n_candidates=3450)
2025-09-30 19:53:47,546 - INFO - Running Xopt step 2025-09-30 19:53:47,588 - INFO - completed generation 70 in 0.240s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3500, n_candidates=3500)
2025-09-30 19:53:47,789 - INFO - Running Xopt step
2025-09-30 19:53:47,832 - INFO - completed generation 71 in 0.244s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3550, n_candidates=3550)
2025-09-30 19:53:48,042 - INFO - Running Xopt step
2025-09-30 19:53:48,090 - INFO - completed generation 72 in 0.258s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3600, n_candidates=3600)
2025-09-30 19:53:48,310 - INFO - Running Xopt step
2025-09-30 19:53:48,352 - INFO - completed generation 73 in 0.262s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3650, n_candidates=3650)
2025-09-30 19:53:48,561 - INFO - Running Xopt step
2025-09-30 19:53:48,604 - INFO - completed generation 74 in 0.252s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3700, n_candidates=3700)
2025-09-30 19:53:48,817 - INFO - Running Xopt step
2025-09-30 19:53:48,860 - INFO - completed generation 75 in 0.256s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3750, n_candidates=3750)
2025-09-30 19:53:49,074 - INFO - Running Xopt step
2025-09-30 19:53:49,117 - INFO - completed generation 76 in 0.257s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3800, n_candidates=3800)
2025-09-30 19:53:49,336 - INFO - Running Xopt step
2025-09-30 19:53:49,379 - INFO - completed generation 77 in 0.262s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3850, n_candidates=3850)
2025-09-30 19:53:49,599 - INFO - Running Xopt step
2025-09-30 19:53:49,642 - INFO - completed generation 78 in 0.262s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3900, n_candidates=3900)
2025-09-30 19:53:49,865 - INFO - Running Xopt step 2025-09-30 19:53:49,908 - INFO - completed generation 79 in 0.266s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=3950, n_candidates=3950)
2025-09-30 19:53:50,134 - INFO - Running Xopt step
2025-09-30 19:53:50,178 - INFO - completed generation 80 in 0.270s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4000, n_candidates=4000)
2025-09-30 19:53:50,407 - INFO - Running Xopt step
2025-09-30 19:53:50,450 - INFO - completed generation 81 in 0.272s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4050, n_candidates=4050)
2025-09-30 19:53:50,681 - INFO - Running Xopt step
2025-09-30 19:53:50,724 - INFO - completed generation 82 in 0.274s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4100, n_candidates=4100)
2025-09-30 19:53:50,958 - INFO - Running Xopt step
2025-09-30 19:53:51,001 - INFO - completed generation 83 in 0.277s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4150, n_candidates=4150)
2025-09-30 19:53:51,240 - INFO - Running Xopt step
2025-09-30 19:53:51,284 - INFO - completed generation 84 in 0.283s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4200, n_candidates=4200)
2025-09-30 19:53:51,525 - INFO - Running Xopt step 2025-09-30 19:53:51,568 - INFO - completed generation 85 in 0.284s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4250, n_candidates=4250)
2025-09-30 19:53:51,811 - INFO - Running Xopt step
2025-09-30 19:53:51,855 - INFO - completed generation 86 in 0.287s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4300, n_candidates=4300)
2025-09-30 19:53:52,100 - INFO - Running Xopt step
2025-09-30 19:53:52,143 - INFO - completed generation 87 in 0.288s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4350, n_candidates=4350)
2025-09-30 19:53:52,393 - INFO - Running Xopt step
2025-09-30 19:53:52,436 - INFO - completed generation 88 in 0.293s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4400, n_candidates=4400)
2025-09-30 19:53:52,686 - INFO - Running Xopt step 2025-09-30 19:53:52,729 - INFO - completed generation 89 in 0.292s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4450, n_candidates=4450)
2025-09-30 19:53:52,981 - INFO - Running Xopt step
2025-09-30 19:53:53,024 - INFO - completed generation 90 in 0.295s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4500, n_candidates=4500)
2025-09-30 19:53:53,280 - INFO - Running Xopt step
2025-09-30 19:53:53,324 - INFO - completed generation 91 in 0.299s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4550, n_candidates=4550)
2025-09-30 19:53:53,584 - INFO - Running Xopt step
2025-09-30 19:53:53,628 - INFO - completed generation 92 in 0.304s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4600, n_candidates=4600)
2025-09-30 19:53:53,890 - INFO - Running Xopt step
2025-09-30 19:53:53,934 - INFO - completed generation 93 in 0.306s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4650, n_candidates=4650)
2025-09-30 19:53:54,199 - INFO - Running Xopt step 2025-09-30 19:53:54,243 - INFO - completed generation 94 in 0.309s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4700, n_candidates=4700)
2025-09-30 19:53:54,512 - INFO - Running Xopt step
2025-09-30 19:53:54,555 - INFO - completed generation 95 in 0.312s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4750, n_candidates=4750)
2025-09-30 19:53:54,826 - INFO - Running Xopt step
2025-09-30 19:53:54,870 - INFO - completed generation 96 in 0.314s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4800, n_candidates=4800)
2025-09-30 19:53:55,144 - INFO - Running Xopt step
2025-09-30 19:53:55,188 - INFO - completed generation 97 in 0.318s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4850, n_candidates=4850)
2025-09-30 19:53:55,465 - INFO - Running Xopt step 2025-09-30 19:53:55,508 - INFO - completed generation 98 in 0.320s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4900, n_candidates=4900)
2025-09-30 19:53:55,789 - INFO - Running Xopt step
2025-09-30 19:53:55,833 - INFO - completed generation 99 in 0.325s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=4950, n_candidates=4950)
2025-09-30 19:53:56,118 - INFO - Running Xopt step 2025-09-30 19:53:56,162 - INFO - completed generation 100 in 0.329s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5000, n_candidates=5000)
2025-09-30 19:53:56,448 - INFO - Xopt is done. Max evaluations 5000 reached.
Loading and Plotting Data¶
The YAML file specified that data will be output to the directory nsga2_output within the working directory of the script (ie assets/yaml_runner_example). In here, there will be several files.
populations.csv: Each completed population is recorded to this filedata.csv: Contains all evaluated invidualslog.txt: A record of all log messages the genreator emitted during its runvocs.txt: A copy of the variable, objectives, and constraints (VOCs) definitionscheckpoints/: This directory contains checkpoint files which are used with thecheckpoint_filekey of the generator to restart an optimization.
# Load every generation
df = pd.read_csv("assets/yaml_runner_example/nsga2_output/populations.csv")
df.head()
| x1 | x10 | x11 | x12 | x13 | x14 | x15 | x16 | x17 | x18 | ... | x6 | x7 | x8 | x9 | f1 | f2 | xopt_generation | xopt_candidate_idx | xopt_runtime | xopt_error | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.749100 | 0.904852 | 0.825058 | 0.753726 | 0.829243 | 0.553532 | 0.924112 | 0.906131 | 0.950256 | 0.317010 | ... | 0.432904 | 0.252288 | 0.949693 | 0.958399 | 0.749100 | 5.315430 | 1 | 34 | 0.000708 | False |
| 1 | 0.737146 | 0.450163 | 0.002521 | 0.296165 | 0.941776 | 0.935471 | 0.235312 | 0.786212 | 0.112432 | 0.769785 | ... | 0.918742 | 0.540895 | 0.795868 | 0.844475 | 0.737146 | 4.726222 | 1 | 24 | 0.000708 | False |
| 2 | 0.567114 | 0.600483 | 0.914868 | 0.121749 | 0.566058 | 0.401873 | 0.036351 | 0.767529 | 0.577823 | 0.597014 | ... | 0.858562 | 0.361545 | 0.695935 | 0.802939 | 0.567114 | 4.602685 | 1 | 33 | 0.000708 | False |
| 3 | 0.515170 | 0.826077 | 0.920846 | 0.081513 | 0.543213 | 0.953405 | 0.272386 | 0.110942 | 0.247633 | 0.725985 | ... | 0.834883 | 0.508003 | 0.712452 | 0.074518 | 0.515170 | 4.774605 | 1 | 23 | 0.000708 | False |
| 4 | 0.541255 | 0.006218 | 0.032887 | 0.178803 | 0.950692 | 0.881990 | 0.670555 | 0.541870 | 0.611447 | 0.918248 | ... | 0.357028 | 0.706172 | 0.388024 | 0.630269 | 0.541255 | 4.738360 | 1 | 39 | 0.000708 | False |
5 rows × 36 columns
# Grab just the final generation
last_gen = df[df["xopt_generation"] == df["xopt_generation"].max()]
last_gen.head()
| x1 | x10 | x11 | x12 | x13 | x14 | x15 | x16 | x17 | x18 | ... | x6 | x7 | x8 | x9 | f1 | f2 | xopt_generation | xopt_candidate_idx | xopt_runtime | xopt_error | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4950 | 0.027079 | 0.001203 | 0.033392 | 0.004935 | 0.017197 | 0.005725 | 0.015465 | 0.023969 | 0.048650 | 0.003947 | ... | 0.036755 | 0.010231 | 0.002728 | 0.028179 | 0.027079 | 0.964172 | 100 | 4469 | 0.000603 | False |
| 4951 | 0.031703 | 0.000112 | 0.033263 | 0.008995 | 0.015501 | 0.007358 | 0.002770 | 0.012660 | 0.047509 | 0.003945 | ... | 0.028779 | 0.010233 | 0.001290 | 0.007623 | 0.031703 | 0.930164 | 100 | 4951 | 0.000615 | False |
| 4952 | 0.638381 | 0.001248 | 0.033443 | 0.008900 | 0.016678 | 0.003506 | 0.015300 | 0.014099 | 0.052458 | 0.003912 | ... | 0.037382 | 0.001698 | 0.001990 | 0.029641 | 0.638381 | -0.291281 | 100 | 4840 | 0.000590 | False |
| 4953 | 0.434379 | 0.017519 | 0.027922 | 0.008643 | 0.004566 | 0.010443 | 0.002005 | 0.012613 | 0.052238 | 0.003180 | ... | 0.036707 | 0.001745 | 0.004842 | 0.009167 | 0.434379 | 0.072997 | 100 | 4993 | 0.000615 | False |
| 4954 | 0.193026 | 0.001926 | 0.003731 | 0.004993 | 0.013928 | 0.006820 | 0.003362 | 0.052861 | 0.046781 | 0.003967 | ... | 0.029173 | 0.022627 | 0.001901 | 0.010738 | 0.193026 | 0.727289 | 100 | 4751 | 0.000614 | False |
5 rows × 36 columns
# Plot the objectives
plt.scatter(last_gen["f1"], last_gen["f2"])
plt.xlabel("f1 (unitless)")
plt.ylabel("f2 (unitless)")
plt.title(f"Generation {last_gen['xopt_generation'].max()}")
Text(0.5, 1.0, 'Generation 100')
Restoring from Checkpoints¶
In this section, we will restart the optimizer from one of its saved checkpoints. This allows us to carry on an optimization that was previously terminated with no loss of information. The checkpoint is specified in the YAML file using the key checkpoint_file. Any additional settings in the generator will override the settings included in the checkpoint. The evaluation function still needs to be defined and should be identical to what was used during the original run.
# Hack so you do not need to change the checkpoint filename in the config file manually for this tutorial
# In a real optimization, you will set `checkpoint_file` to the file of your choice
! cd assets/yaml_runner_example/nsga2_output/checkpoints && mv $(ls -1 | tail -n 1) 20250805_065102_1.txt
# Run the optimizer for another few generations (will take ~30s)
! cd assets/yaml_runner_example && xopt-run nsga2_from_checkpoint.yml
2025-09-30 19:53:58,595 - INFO - Initialized generator nsga2 2025-09-30 19:53:58,602 - INFO - Running Xopt 2025-09-30 19:53:58,602 - INFO - Running Xopt step 2025-09-30 19:53:58,602 - INFO - detected existing output_dir "nsga2_from_checkpoint_output" and corrected to "nsga2_from_checkpoint_output" to avoid overwriting 2025-09-30 19:53:58,602 - INFO - routing log output to file: nsga2_from_checkpoint_output/log.txt
2025-09-30 19:53:58,648 - INFO - completed generation 101 in 0.055s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5050, n_candidates=5050)
2025-09-30 19:53:58,736 - INFO - Running Xopt step
2025-09-30 19:53:58,780 - INFO - completed generation 102 in 0.132s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5100, n_candidates=5100)
2025-09-30 19:53:58,873 - INFO - Running Xopt step
2025-09-30 19:53:58,917 - INFO - completed generation 103 in 0.136s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5150, n_candidates=5150)
2025-09-30 19:53:59,008 - INFO - Running Xopt step
2025-09-30 19:53:59,051 - INFO - completed generation 104 in 0.134s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5200, n_candidates=5200)
2025-09-30 19:53:59,144 - INFO - Running Xopt step
2025-09-30 19:53:59,188 - INFO - completed generation 105 in 0.136s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5250, n_candidates=5250)
2025-09-30 19:53:59,283 - INFO - Running Xopt step
2025-09-30 19:53:59,327 - INFO - completed generation 106 in 0.139s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5300, n_candidates=5300)
2025-09-30 19:53:59,425 - INFO - Running Xopt step
2025-09-30 19:53:59,468 - INFO - completed generation 107 in 0.141s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5350, n_candidates=5350)
2025-09-30 19:53:59,570 - INFO - Running Xopt step
2025-09-30 19:53:59,614 - INFO - completed generation 108 in 0.145s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5400, n_candidates=5400)
2025-09-30 19:53:59,717 - INFO - Running Xopt step
2025-09-30 19:53:59,761 - INFO - completed generation 109 in 0.148s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5450, n_candidates=5450)
2025-09-30 19:53:59,868 - INFO - Running Xopt step
2025-09-30 19:53:59,912 - INFO - completed generation 110 in 0.150s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5500, n_candidates=5500)
2025-09-30 19:54:00,021 - INFO - Running Xopt step
2025-09-30 19:54:00,065 - INFO - completed generation 111 in 0.153s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5550, n_candidates=5550)
2025-09-30 19:54:00,178 - INFO - Running Xopt step
2025-09-30 19:54:00,222 - INFO - completed generation 112 in 0.157s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5600, n_candidates=5600)
2025-09-30 19:54:00,339 - INFO - Running Xopt step
2025-09-30 19:54:00,383 - INFO - completed generation 113 in 0.161s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5650, n_candidates=5650)
2025-09-30 19:54:00,502 - INFO - Running Xopt step
2025-09-30 19:54:00,546 - INFO - completed generation 114 in 0.163s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5700, n_candidates=5700)
2025-09-30 19:54:00,667 - INFO - Running Xopt step
2025-09-30 19:54:00,713 - INFO - completed generation 115 in 0.167s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5750, n_candidates=5750)
2025-09-30 19:54:00,837 - INFO - Running Xopt step
2025-09-30 19:54:00,881 - INFO - completed generation 116 in 0.168s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5800, n_candidates=5800)
2025-09-30 19:54:01,011 - INFO - Running Xopt step
2025-09-30 19:54:01,057 - INFO - completed generation 117 in 0.176s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5850, n_candidates=5850)
2025-09-30 19:54:01,187 - INFO - Running Xopt step
2025-09-30 19:54:01,232 - INFO - completed generation 118 in 0.175s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5900, n_candidates=5900)
2025-09-30 19:54:01,364 - INFO - Running Xopt step
2025-09-30 19:54:01,409 - INFO - completed generation 119 in 0.177s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=5950, n_candidates=5950)
2025-09-30 19:54:01,544 - INFO - Running Xopt step
2025-09-30 19:54:01,589 - INFO - completed generation 120 in 0.180s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6000, n_candidates=6000)
2025-09-30 19:54:01,728 - INFO - Running Xopt step
2025-09-30 19:54:01,774 - INFO - completed generation 121 in 0.185s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6050, n_candidates=6050)
2025-09-30 19:54:01,915 - INFO - Running Xopt step
2025-09-30 19:54:01,962 - INFO - completed generation 122 in 0.187s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6100, n_candidates=6100)
2025-09-30 19:54:02,108 - INFO - Running Xopt step
2025-09-30 19:54:02,152 - INFO - completed generation 123 in 0.191s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6150, n_candidates=6150)
2025-09-30 19:54:02,302 - INFO - Running Xopt step
2025-09-30 19:54:02,346 - INFO - completed generation 124 in 0.194s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6200, n_candidates=6200)
2025-09-30 19:54:02,496 - INFO - Running Xopt step
2025-09-30 19:54:02,541 - INFO - completed generation 125 in 0.195s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6250, n_candidates=6250)
2025-09-30 19:54:02,694 - INFO - Running Xopt step
2025-09-30 19:54:02,739 - INFO - completed generation 126 in 0.197s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6300, n_candidates=6300)
2025-09-30 19:54:02,895 - INFO - Running Xopt step
2025-09-30 19:54:02,939 - INFO - completed generation 127 in 0.200s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6350, n_candidates=6350)
2025-09-30 19:54:03,098 - INFO - Running Xopt step
2025-09-30 19:54:03,143 - INFO - completed generation 128 in 0.204s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6400, n_candidates=6400)
2025-09-30 19:54:03,306 - INFO - Running Xopt step
2025-09-30 19:54:03,351 - INFO - completed generation 129 in 0.208s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6450, n_candidates=6450)
2025-09-30 19:54:03,516 - INFO - Running Xopt step
2025-09-30 19:54:03,561 - INFO - completed generation 130 in 0.209s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6500, n_candidates=6500)
2025-09-30 19:54:03,729 - INFO - Running Xopt step
2025-09-30 19:54:03,774 - INFO - completed generation 131 in 0.213s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6550, n_candidates=6550)
2025-09-30 19:54:03,944 - INFO - Running Xopt step 2025-09-30 19:54:03,989 - INFO - completed generation 132 in 0.215s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6600, n_candidates=6600)
2025-09-30 19:54:04,163 - INFO - Running Xopt step
2025-09-30 19:54:04,208 - INFO - completed generation 133 in 0.219s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6650, n_candidates=6650)
2025-09-30 19:54:04,385 - INFO - Running Xopt step
2025-09-30 19:54:04,430 - INFO - completed generation 134 in 0.222s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6700, n_candidates=6700)
2025-09-30 19:54:04,627 - INFO - Running Xopt step
2025-09-30 19:54:04,673 - INFO - completed generation 135 in 0.243s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6750, n_candidates=6750)
2025-09-30 19:54:04,867 - INFO - Running Xopt step
2025-09-30 19:54:04,912 - INFO - completed generation 136 in 0.239s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6800, n_candidates=6800)
2025-09-30 19:54:05,098 - INFO - Running Xopt step
2025-09-30 19:54:05,142 - INFO - completed generation 137 in 0.230s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6850, n_candidates=6850)
2025-09-30 19:54:05,331 - INFO - Running Xopt step
2025-09-30 19:54:05,376 - INFO - completed generation 138 in 0.233s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6900, n_candidates=6900)
2025-09-30 19:54:05,566 - INFO - Running Xopt step
2025-09-30 19:54:05,611 - INFO - completed generation 139 in 0.235s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=6950, n_candidates=6950)
2025-09-30 19:54:05,806 - INFO - Running Xopt step
2025-09-30 19:54:05,854 - INFO - completed generation 140 in 0.243s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7000, n_candidates=7000)
2025-09-30 19:54:06,055 - INFO - Running Xopt step
2025-09-30 19:54:06,103 - INFO - completed generation 141 in 0.249s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7050, n_candidates=7050)
2025-09-30 19:54:06,304 - INFO - Running Xopt step
2025-09-30 19:54:06,352 - INFO - completed generation 142 in 0.248s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7100, n_candidates=7100)
2025-09-30 19:54:06,554 - INFO - Running Xopt step
2025-09-30 19:54:06,600 - INFO - completed generation 143 in 0.248s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7150, n_candidates=7150)
2025-09-30 19:54:06,805 - INFO - Running Xopt step
2025-09-30 19:54:06,850 - INFO - completed generation 144 in 0.250s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7200, n_candidates=7200)
2025-09-30 19:54:07,057 - INFO - Running Xopt step
2025-09-30 19:54:07,103 - INFO - completed generation 145 in 0.253s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7250, n_candidates=7250)
2025-09-30 19:54:07,314 - INFO - Running Xopt step
2025-09-30 19:54:07,360 - INFO - completed generation 146 in 0.257s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7300, n_candidates=7300)
2025-09-30 19:54:07,578 - INFO - Running Xopt step
2025-09-30 19:54:07,624 - INFO - completed generation 147 in 0.263s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7350, n_candidates=7350)
2025-09-30 19:54:07,840 - INFO - Running Xopt step
2025-09-30 19:54:07,886 - INFO - completed generation 148 in 0.262s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7400, n_candidates=7400)
2025-09-30 19:54:08,106 - INFO - Running Xopt step
2025-09-30 19:54:08,151 - INFO - completed generation 149 in 0.266s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7450, n_candidates=7450)
2025-09-30 19:54:08,378 - INFO - Running Xopt step
2025-09-30 19:54:08,424 - INFO - completed generation 150 in 0.273s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7500, n_candidates=7500)
2025-09-30 19:54:08,651 - INFO - Running Xopt step
2025-09-30 19:54:08,696 - INFO - completed generation 151 in 0.272s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7550, n_candidates=7550)
2025-09-30 19:54:08,925 - INFO - Running Xopt step
2025-09-30 19:54:08,971 - INFO - completed generation 152 in 0.274s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7600, n_candidates=7600)
2025-09-30 19:54:09,205 - INFO - Running Xopt step
2025-09-30 19:54:09,251 - INFO - completed generation 153 in 0.280s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7650, n_candidates=7650)
2025-09-30 19:54:09,486 - INFO - Running Xopt step
2025-09-30 19:54:09,531 - INFO - completed generation 154 in 0.280s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7700, n_candidates=7700)
2025-09-30 19:54:09,769 - INFO - Running Xopt step
2025-09-30 19:54:09,815 - INFO - completed generation 155 in 0.284s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7750, n_candidates=7750)
2025-09-30 19:54:10,057 - INFO - Running Xopt step
2025-09-30 19:54:10,103 - INFO - completed generation 156 in 0.289s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7800, n_candidates=7800)
2025-09-30 19:54:10,348 - INFO - Running Xopt step
2025-09-30 19:54:10,394 - INFO - completed generation 157 in 0.290s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7850, n_candidates=7850)
2025-09-30 19:54:10,640 - INFO - Running Xopt step
2025-09-30 19:54:10,685 - INFO - completed generation 158 in 0.291s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7900, n_candidates=7900)
2025-09-30 19:54:10,938 - INFO - Running Xopt step
2025-09-30 19:54:10,984 - INFO - completed generation 159 in 0.298s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=7950, n_candidates=7950)
2025-09-30 19:54:11,236 - INFO - Running Xopt step
2025-09-30 19:54:11,281 - INFO - completed generation 160 in 0.297s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8000, n_candidates=8000)
2025-09-30 19:54:11,538 - INFO - Running Xopt step
2025-09-30 19:54:11,584 - INFO - completed generation 161 in 0.303s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8050, n_candidates=8050)
2025-09-30 19:54:11,843 - INFO - Running Xopt step
2025-09-30 19:54:11,890 - INFO - completed generation 162 in 0.306s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8100, n_candidates=8100)
2025-09-30 19:54:12,152 - INFO - Running Xopt step
2025-09-30 19:54:12,198 - INFO - completed generation 163 in 0.308s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8150, n_candidates=8150)
2025-09-30 19:54:12,463 - INFO - Running Xopt step
2025-09-30 19:54:12,509 - INFO - completed generation 164 in 0.311s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8200, n_candidates=8200)
2025-09-30 19:54:12,777 - INFO - Running Xopt step
2025-09-30 19:54:12,823 - INFO - completed generation 165 in 0.314s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8250, n_candidates=8250)
2025-09-30 19:54:13,095 - INFO - Running Xopt step
2025-09-30 19:54:13,141 - INFO - completed generation 166 in 0.318s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8300, n_candidates=8300)
2025-09-30 19:54:13,423 - INFO - Running Xopt step
2025-09-30 19:54:13,471 - INFO - completed generation 167 in 0.329s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8350, n_candidates=8350)
2025-09-30 19:54:13,750 - INFO - Running Xopt step 2025-09-30 19:54:13,796 - INFO - completed generation 168 in 0.325s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8400, n_candidates=8400)
2025-09-30 19:54:14,075 - INFO - Running Xopt step
2025-09-30 19:54:14,121 - INFO - completed generation 169 in 0.325s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8450, n_candidates=8450)
2025-09-30 19:54:14,404 - INFO - Running Xopt step 2025-09-30 19:54:14,453 - INFO - completed generation 170 in 0.333s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8500, n_candidates=8500)
2025-09-30 19:54:14,742 - INFO - Running Xopt step
2025-09-30 19:54:14,788 - INFO - completed generation 171 in 0.335s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8550, n_candidates=8550)
2025-09-30 19:54:15,078 - INFO - Running Xopt step
2025-09-30 19:54:15,124 - INFO - completed generation 172 in 0.336s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8600, n_candidates=8600)
2025-09-30 19:54:15,417 - INFO - Running Xopt step 2025-09-30 19:54:15,462 - INFO - completed generation 173 in 0.338s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8650, n_candidates=8650)
2025-09-30 19:54:15,774 - INFO - Running Xopt step
2025-09-30 19:54:15,820 - INFO - completed generation 174 in 0.358s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8700, n_candidates=8700)
2025-09-30 19:54:16,126 - INFO - Running Xopt step
2025-09-30 19:54:16,179 - INFO - completed generation 175 in 0.359s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8750, n_candidates=8750)
2025-09-30 19:54:16,499 - INFO - Running Xopt step
2025-09-30 19:54:16,545 - INFO - completed generation 176 in 0.366s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8800, n_candidates=8800)
2025-09-30 19:54:16,850 - INFO - Running Xopt step
2025-09-30 19:54:16,897 - INFO - completed generation 177 in 0.351s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8850, n_candidates=8850)
2025-09-30 19:54:17,204 - INFO - Running Xopt step
2025-09-30 19:54:17,251 - INFO - completed generation 178 in 0.354s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8900, n_candidates=8900)
2025-09-30 19:54:17,562 - INFO - Running Xopt step
2025-09-30 19:54:17,608 - INFO - completed generation 179 in 0.357s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=8950, n_candidates=8950)
2025-09-30 19:54:17,920 - INFO - Running Xopt step
2025-09-30 19:54:17,966 - INFO - completed generation 180 in 0.358s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9000, n_candidates=9000)
2025-09-30 19:54:18,284 - INFO - Running Xopt step
2025-09-30 19:54:18,331 - INFO - completed generation 181 in 0.365s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9050, n_candidates=9050)
2025-09-30 19:54:18,653 - INFO - Running Xopt step
2025-09-30 19:54:18,699 - INFO - completed generation 182 in 0.368s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9100, n_candidates=9100)
2025-09-30 19:54:19,023 - INFO - Running Xopt step
2025-09-30 19:54:19,070 - INFO - completed generation 183 in 0.371s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9150, n_candidates=9150)
2025-09-30 19:54:19,402 - INFO - Running Xopt step
2025-09-30 19:54:19,448 - INFO - completed generation 184 in 0.379s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9200, n_candidates=9200)
2025-09-30 19:54:19,775 - INFO - Running Xopt step
2025-09-30 19:54:19,822 - INFO - completed generation 185 in 0.374s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9250, n_candidates=9250)
2025-09-30 19:54:20,153 - INFO - Running Xopt step
2025-09-30 19:54:20,200 - INFO - completed generation 186 in 0.377s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9300, n_candidates=9300)
2025-09-30 19:54:20,534 - INFO - Running Xopt step
2025-09-30 19:54:20,581 - INFO - completed generation 187 in 0.381s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9350, n_candidates=9350)
2025-09-30 19:54:20,919 - INFO - Running Xopt step
2025-09-30 19:54:20,966 - INFO - completed generation 188 in 0.385s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9400, n_candidates=9400)
2025-09-30 19:54:21,307 - INFO - Running Xopt step
2025-09-30 19:54:21,358 - INFO - completed generation 189 in 0.392s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9450, n_candidates=9450)
2025-09-30 19:54:21,700 - INFO - Running Xopt step
2025-09-30 19:54:21,747 - INFO - completed generation 190 in 0.389s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9500, n_candidates=9500)
2025-09-30 19:54:22,096 - INFO - Running Xopt step
2025-09-30 19:54:22,143 - INFO - completed generation 191 in 0.396s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9550, n_candidates=9550)
2025-09-30 19:54:22,508 - INFO - Running Xopt step
2025-09-30 19:54:22,558 - INFO - completed generation 192 in 0.415s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9600, n_candidates=9600)
2025-09-30 19:54:22,912 - INFO - Running Xopt step
2025-09-30 19:54:22,960 - INFO - completed generation 193 in 0.401s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9650, n_candidates=9650)
2025-09-30 19:54:23,313 - INFO - Running Xopt step
2025-09-30 19:54:23,361 - INFO - completed generation 194 in 0.401s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9700, n_candidates=9700)
2025-09-30 19:54:23,723 - INFO - Running Xopt step
2025-09-30 19:54:23,771 - INFO - completed generation 195 in 0.410s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9750, n_candidates=9750)
2025-09-30 19:54:24,156 - INFO - Running Xopt step
2025-09-30 19:54:24,205 - INFO - completed generation 196 in 0.435s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9800, n_candidates=9800)
2025-09-30 19:54:24,572 - INFO - Running Xopt step
2025-09-30 19:54:24,619 - INFO - completed generation 197 in 0.414s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9850, n_candidates=9850)
2025-09-30 19:54:24,987 - INFO - Running Xopt step
2025-09-30 19:54:25,035 - INFO - completed generation 198 in 0.416s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9900, n_candidates=9900)
2025-09-30 19:54:25,411 - INFO - Running Xopt step
2025-09-30 19:54:25,458 - INFO - completed generation 199 in 0.423s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=9950, n_candidates=9950)
2025-09-30 19:54:25,889 - INFO - Running Xopt step
2025-09-30 19:54:25,936 - INFO - completed generation 200 in 0.477s (n_feasible=0, n_err=0, children_performance=0.001s (0.000s), add_data_round=0, fevals=10000, n_candidates=10000)
2025-09-30 19:54:26,315 - INFO - Xopt is done. Max evaluations 5000 reached.
# Grab the last generation
df = pd.read_csv(
"assets/yaml_runner_example/nsga2_from_checkpoint_output/populations.csv"
)
last_gen_restarted = df[df["xopt_generation"] == df["xopt_generation"].max()]
# Plot the objectives
plt.scatter(
last_gen["f1"],
last_gen["f2"],
label=f"Generation {last_gen['xopt_generation'].max()}",
)
plt.scatter(
last_gen_restarted["f1"],
last_gen_restarted["f2"],
label=f"Generation {last_gen_restarted['xopt_generation'].max()}",
)
plt.xlabel("f1 (unitless)")
plt.ylabel("f2 (unitless)")
plt.legend()
<matplotlib.legend.Legend at 0x7fd93f82d550>
Cleanup¶
We will now remove the files created in this notebook.
# Clean up the output directoris
shutil.rmtree("assets/yaml_runner_example/nsga2_output")
shutil.rmtree("assets/yaml_runner_example/nsga2_from_checkpoint_output")