From 8a9b3ddbb33b7f463ea4218b2f5230366acefd58 Mon Sep 17 00:00:00 2001 From: Qi Zhao Date: Sun, 19 Jul 2026 20:31:17 +0800 Subject: [PATCH 1/4] Prepare AutoOptLib 1.2.0 --- .github/workflows/release.yml | 43 + .github/workflows/tests.yml | 146 ++ .gitignore | 2 + .readthedocs.yaml | 17 + AutoOptLib_Documentation.pdf | Bin 726302 -> 0 bytes CHANGELOG.md | 104 ++ CITATION.cff | 43 + CODE_OF_CONDUCT.md | 25 + CONTRIBUTING.md | 55 + MANIFEST.in | 13 + README.md | 244 +++- SECURITY.md | 20 + benchmarks/check_core_runtime.py | 59 + benchmarks/paper_cec_parity.py | 189 +++ .../paper_cec_parity_20260719/REPORT.md | 113 ++ .../paper_cec_parity_20260719/results.json | 213 +++ .../paper_cec_parity_20260719/run_fitness.csv | 271 ++++ .../paper_cec_parity_20260719/summary.csv | 10 + docs/api.md | 76 + docs/applications.md | 46 + docs/architecture.md | 18 + docs/conf.py | 22 + docs/custom-problems.md | 73 + docs/getting-started.md | 50 + docs/index.rst | 23 + docs/project.md | 10 + docs/reliability.md | 67 + docs/reproducibility.md | 27 + examples/applications/README.md | 21 + .../material_stacking_alg_star.json | 30 + .../algorithms/ris_beamforming_alg_star.json | 30 + examples/applications/material_stacking.py | 29 + examples/applications/ris_beamforming.py | 25 + examples/reproducibility/README.md | 24 + .../algorithms/cec2013_f13_alg_star.json | 28 + .../algorithms/cec2013_f21_alg_star.json | 36 + .../algorithms/cec2013_f6_alg_star.json | 28 + .../reproducibility/application-smoke.json | 36 + .../reproducibility/application_benchmarks.py | 152 ++ pyproject.toml | 100 +- {src => scripts}/smoke_all_problems.py | 4 +- src/autooptlib.egg-info/PKG-INFO | 63 - src/autooptlib.egg-info/SOURCES.txt | 79 -- src/autooptlib.egg-info/dependency_links.txt | 1 - src/autooptlib.egg-info/top_level.txt | 1 - src/autooptlib/__init__.py | 61 +- src/autooptlib/_version.py | 3 + src/autooptlib/applications/__init__.py | 31 + src/autooptlib/applications/beamforming.py | 249 ++++ src/autooptlib/applications/stacking.py | 241 ++++ src/autooptlib/autoopt.py | 35 +- src/autooptlib/components/__init__.py | 79 +- src/autooptlib/components/_utils.py | 4 - src/autooptlib/components/archive_best.py | 8 +- .../components/archive_diversity.py | 12 +- .../components/archive_statistic.py | 8 +- src/autooptlib/components/archive_tabu.py | 1 - .../components/choose_brainstorm.py | 21 +- src/autooptlib/components/choose_nich.py | 13 +- src/autooptlib/components/choose_traverse.py | 1 - src/autooptlib/components/cross_arithmetic.py | 7 +- src/autooptlib/components/cross_order_n.py | 15 +- src/autooptlib/components/cross_order_two.py | 11 +- src/autooptlib/components/cross_point_n.py | 15 +- src/autooptlib/components/cross_point_one.py | 13 +- src/autooptlib/components/cross_point_two.py | 11 +- .../components/cross_point_uniform.py | 9 +- src/autooptlib/components/cross_sim_binary.py | 12 +- src/autooptlib/components/para_cma.py | 55 +- src/autooptlib/components/para_cmaes.py | 1 - src/autooptlib/components/para_pso.py | 33 +- .../components/reinit_continuous.py | 5 +- src/autooptlib/components/reinit_discrete.py | 3 +- .../components/reinit_permutation.py | 3 +- src/autooptlib/components/search_cma.py | 66 +- .../components/search_de_current.py | 13 +- .../components/search_de_current_best.py | 23 +- src/autooptlib/components/search_de_random.py | 15 +- src/autooptlib/components/search_eda.py | 6 +- src/autooptlib/components/search_ica.py | 18 +- src/autooptlib/components/search_insert.py | 3 +- src/autooptlib/components/search_mu_cauchy.py | 15 +- .../components/search_mu_gaussian.py | 15 +- .../components/search_mu_polynomial.py | 66 +- .../components/search_mu_uniform.py | 13 +- src/autooptlib/components/search_pso.py | 44 +- .../components/search_reset_creep.py | 7 +- src/autooptlib/components/search_reset_one.py | 3 +- .../components/search_reset_rand.py | 3 +- src/autooptlib/components/search_scramble.py | 7 +- src/autooptlib/components/search_swap.py | 3 +- .../components/search_swap_multi.py | 3 +- .../components/update_simulated_annealing.py | 11 +- src/autooptlib/problems/__init__.py | 3 +- src/autooptlib/problems/base.py | 191 +++ src/autooptlib/problems/cec2013.py | 404 +++--- src/autooptlib/problems/data/README.md | 19 + src/autooptlib/problems/data/__init__.py | 1 + src/autooptlib/problems/data/cec2013.npz | Bin 0 -> 1289585 bytes src/autooptlib/serialization.py | 227 +++ src/autooptlib/utils/__init__.py | 5 +- src/autooptlib/utils/design/__init__.py | 20 +- src/autooptlib/utils/design/_approximate.py | 71 +- src/autooptlib/utils/design/_decode.py | 17 +- src/autooptlib/utils/design/_disturb.py | 129 +- src/autooptlib/utils/design/_embedding.py | 52 +- src/autooptlib/utils/design/_estimate.py | 4 +- src/autooptlib/utils/design/_evaluate.py | 82 +- src/autooptlib/utils/design/_helpers.py | 34 +- src/autooptlib/utils/design/_initialize.py | 10 +- src/autooptlib/utils/design/_repair.py | 66 +- src/autooptlib/utils/general/__init__.py | 6 +- src/autooptlib/utils/general/improve_rate.py | 8 +- src/autooptlib/utils/general/input.py | 271 +++- src/autooptlib/utils/general/output.py | 190 ++- src/autooptlib/utils/general/process.py | 359 ++++- src/autooptlib/utils/general/select_stats.py | 4 +- src/autooptlib/utils/select.py | 76 +- src/autooptlib/utils/solve/__init__.py | 1258 +++++++++++++++-- src/autooptlib/utils/space.py | 104 +- src/solve_f1.py | 28 - src/temp_test.py | 274 ---- src/test_run.py | 79 -- tests/conftest.py | 3 +- tests/system/test_workflow.py | 197 ++- tests/unit/test_applications.py | 186 +++ tests/unit/test_cli.py | 1 - tests/unit/test_component_contracts.py | 147 ++ tests/unit/test_components.py | 107 +- tests/unit/test_evaluation_modes.py | 183 +++ tests/unit/test_helper_contracts.py | 117 ++ tests/unit/test_input_validation.py | 214 +++ tests/unit/test_matlab_parity.py | 181 +++ tests/unit/test_problem_contract.py | 121 ++ tests/unit/test_public_api.py | 163 +++ tests/unit/test_reliability.py | 764 ++++++++++ tests/unit/test_selection_and_improvement.py | 157 ++ tests/unit/test_serialization_contracts.py | 122 ++ tests/unit/test_solve_contracts.py | 317 +++++ tests/unit/test_utils.py | 66 +- 140 files changed, 9605 insertions(+), 1393 deletions(-) create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/tests.yml create mode 100644 .readthedocs.yaml delete mode 100644 AutoOptLib_Documentation.pdf create mode 100644 CHANGELOG.md create mode 100644 CITATION.cff create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 MANIFEST.in create mode 100644 SECURITY.md create mode 100644 benchmarks/check_core_runtime.py create mode 100644 benchmarks/paper_cec_parity.py create mode 100644 benchmarks/results/paper_cec_parity_20260719/REPORT.md create mode 100644 benchmarks/results/paper_cec_parity_20260719/results.json create mode 100644 benchmarks/results/paper_cec_parity_20260719/run_fitness.csv create mode 100644 benchmarks/results/paper_cec_parity_20260719/summary.csv create mode 100644 docs/api.md create mode 100644 docs/applications.md create mode 100644 docs/architecture.md create mode 100644 docs/conf.py create mode 100644 docs/custom-problems.md create mode 100644 docs/getting-started.md create mode 100644 docs/index.rst create mode 100644 docs/project.md create mode 100644 docs/reliability.md create mode 100644 docs/reproducibility.md create mode 100644 examples/applications/README.md create mode 100644 examples/applications/algorithms/material_stacking_alg_star.json create mode 100644 examples/applications/algorithms/ris_beamforming_alg_star.json create mode 100644 examples/applications/material_stacking.py create mode 100644 examples/applications/ris_beamforming.py create mode 100644 examples/reproducibility/README.md create mode 100644 examples/reproducibility/algorithms/cec2013_f13_alg_star.json create mode 100644 examples/reproducibility/algorithms/cec2013_f21_alg_star.json create mode 100644 examples/reproducibility/algorithms/cec2013_f6_alg_star.json create mode 100644 examples/reproducibility/application-smoke.json create mode 100644 examples/reproducibility/application_benchmarks.py rename {src => scripts}/smoke_all_problems.py (96%) delete mode 100644 src/autooptlib.egg-info/PKG-INFO delete mode 100644 src/autooptlib.egg-info/SOURCES.txt delete mode 100644 src/autooptlib.egg-info/dependency_links.txt delete mode 100644 src/autooptlib.egg-info/top_level.txt create mode 100644 src/autooptlib/_version.py create mode 100644 src/autooptlib/applications/__init__.py create mode 100644 src/autooptlib/applications/beamforming.py create mode 100644 src/autooptlib/applications/stacking.py create mode 100644 src/autooptlib/problems/base.py create mode 100644 src/autooptlib/problems/data/README.md create mode 100644 src/autooptlib/problems/data/__init__.py create mode 100644 src/autooptlib/problems/data/cec2013.npz create mode 100644 src/autooptlib/serialization.py delete mode 100644 src/solve_f1.py delete mode 100644 src/temp_test.py delete mode 100644 src/test_run.py create mode 100644 tests/unit/test_applications.py create mode 100644 tests/unit/test_component_contracts.py create mode 100644 tests/unit/test_evaluation_modes.py create mode 100644 tests/unit/test_helper_contracts.py create mode 100644 tests/unit/test_input_validation.py create mode 100644 tests/unit/test_matlab_parity.py create mode 100644 tests/unit/test_problem_contract.py create mode 100644 tests/unit/test_public_api.py create mode 100644 tests/unit/test_reliability.py create mode 100644 tests/unit/test_selection_and_improvement.py create mode 100644 tests/unit/test_serialization_contracts.py create mode 100644 tests/unit/test_solve_contracts.py diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..905ead2 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,43 @@ +name: release + +on: + push: + tags: + - "v*" + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - run: python -m pip install --upgrade pip build twine + - run: python -m build + - run: python -m twine check dist/* + - uses: actions/upload-artifact@v4 + with: + name: distributions + path: dist/ + if-no-files-found: error + + publish: + if: startsWith(github.ref, 'refs/tags/v') + needs: build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/project/autooptlib/ + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v4 + with: + name: distributions + path: dist/ + - uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..1cc528e --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,146 @@ +name: tests + +on: + push: + pull_request: + +permissions: + contents: read + +jobs: + test: + name: ${{ matrix.os }} / Python ${{ matrix.python }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + python: "3.9" + - os: ubuntu-latest + python: "3.10" + - os: ubuntu-latest + python: "3.11" + - os: ubuntu-latest + python: "3.12" + - os: ubuntu-latest + python: "3.13" + - os: macos-latest + python: "3.11" + - os: windows-latest + python: "3.11" + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install ".[test]" + - run: python -W error -m pytest + + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install ".[test]" + - run: >- + python -W error -m pytest + --cov=autooptlib + --cov-report=term-missing + --cov-fail-under=90 + + package: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: pip + - run: python -m pip install --upgrade pip build twine + - run: python -m build + - run: python -m twine check dist/* + - run: python -m pip install dist/*.whl + - name: Validate installed wheel outside the repository + working-directory: /tmp + run: | + python - <<'PY' + from types import SimpleNamespace + from pathlib import Path + import tempfile + import autooptlib + from autooptlib.problems import cec2013_f1 + from autooptlib.utils.solve import input_algorithm + + assert autooptlib.__version__ == "1.2.0" + problems, data, _ = cec2013_f1([SimpleNamespace()], [10], "construct") + assert problems[0].bound.shape == (2, 10) + assert data[0].o.shape == (10,) + + problem = autooptlib.make_problem( + lambda decision, dimension: float((decision ** 2).sum()), + bounds=(-1.0, 1.0), + ) + custom, custom_data, _ = problem([SimpleNamespace(N=2, Gmax=1)], [2], "construct") + assert custom[0].evaluate(custom_data[0], [0.0, 0.0])[0] == 0.0 + + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + with tempfile.TemporaryDirectory() as directory: + path = autooptlib.save_algorithm(algorithm, Path(directory) / "algorithm.json") + assert autooptlib.load_algorithm(path).operator_pheno + PY + + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install ".[docs]" + - run: sphinx-build -W --keep-going -b html docs docs/_build/html + + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install ".[dev]" + - run: python -m mypy + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install ".[dev]" + - run: python -m ruff check . + - run: python -m ruff format --check . + + performance: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install . + - run: python benchmarks/check_core_runtime.py --max-seconds 10 diff --git a/.gitignore b/.gitignore index 5883773..febc10f 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ env/ .pytest_cache/ .coverage htmlcov/ +docs/_build/ # IDE and editor settings .vscode/ @@ -26,6 +27,7 @@ htmlcov/ # Generated experiment artifacts smoke_outputs/ +benchmarks/results/*/f*_d*/ # Miscellaneous OS files Thumbs.db diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..811dabb --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,17 @@ +version: 2 + +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +sphinx: + configuration: docs/conf.py + fail_on_warning: true + +python: + install: + - method: pip + path: . + extra_requirements: + - docs diff --git a/AutoOptLib_Documentation.pdf b/AutoOptLib_Documentation.pdf deleted file mode 100644 index 3e4468366a26e6495097d1de50e6501c1bb76833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726302 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
  • o&@b`|Jxfv{pwifSp{d83s zxq7xzh!A!WK6NXT7`bx4&^Fw9?iaK3bIfAZW}dOISJ6Z@K%?plQy`h|Yzxtk#LP60 zPQH6aa}~p2$n@);jESOj#d2%;f)(CncaF-H3Pt@d8TmCW8w@iq&E~l^(lv%k<|jvc z^j$k=Ur3(OelDrJvsT1u5XB>xZf3&v9BDBam=1m0ho^>OOt`&Vt2C45))|#N*>GKT1>MuDm4STjudWyboBF;d zt>%!7`34ge?2xXM#L)D|26ODZX^|1&NW@Y2hp9HyadI9Y-cu*qiTply!2lXi@sb}oSyjGya^GRC7@gZ4Gj7!fW3dvOc?vgJh zB80}N_aP&+%X|S{hTyLPsFT8db~Ojt;lWhG9>}54T1vFa6DoSss_rP>&$EZw+G1tF zrkm>_Lbj34{%lWVZtw?Lm-})RKZfgybqyG(0-npjF=}iX^Vbp3L zWfIJ=C4)MFW_4MOJ$i;!7MUJ?I-f?ZF>?K-*6(hi%f3@`^|CCaJGf=M>nmgG7Uc-k z!#(71RM5%=q;x{0|E^o#M~L4pec6%s07Ewq2#_{tpuV?0xDyLDx~Y#r5UAOYd7)`A zqg@}%#p{{u?e%>Xfw6iik|>|G+z$SQS?ABOo>{j1{)(gh^No?xBxE>SlxLt9E{l%1 zNwLn`%=(RIRO%7wUUe=Pf6!Ju9w6}K;iJ=GTy!(T0$(g2wJ=xRF+4>YF~Sv;vrs~P z=(-skwM`9H*Ee1z5vBJC-+(!E3 zpwtGBJqq9BDK#h~6HBM#ynaZIlM^;Shu>Isd?$+|rsUN4#}S(~f{#JWVGLIo;?ec^ z6twm(AAbxVv=s)NAIn5Hm2diTwRpA<((RDJ84CGT{3;SLp>z4x%Xz_!&;_JCgRALj z_wnR)14>0?Or5*HaDjS+pkFgbhc~+!c&BTR{xTAOX2|0Sj1%uXK2shN1+%;}EAPiA z|8*A))XrxG9kt$byuirCpX>uS1g`&!v3?lmd|1`*Vj@I1OtM`ideE6BXkg}9{N0+a z4Y1I5Mbzw@?;OdvNsN=S`2{s>X&0z-@pNfcb#DobysD0B$`aZC?7Az-dQ)XRB9t~z z{U?k9RvDxI~`AkD2EfK+ywa?h!&oCs!3R zI6KV&19r;~l@%RxGh2oNBb7r-NLoeH?DT-&GzFPofzw1gG`HG(dnSz`4d)_oBzx4wNUlhd_LW+;sFy?voLxFT+zt9Q^# z|8#1R3_DP8#(tT6&Z!z$FN~B8YhNaGn_Q3r{}mSd{O^d0ad>`%ooaZ}3&eCm@}XZn zfUq@L3d_lo;h*7Y4exXMZ$J=|Mw{(;>%!~(%`M$z(gytH%D1iml_XI+fr|B_*o%tNsb$dW374sdTN^;ozbd`!e~dD=^O&+X(^3m|e6E zja+Q$xmOxYD((j9dD|8#I>ar{&(qj9-2dZ}XNJ^0h7b6hWL56Qli0;D0&PJg5TE8? zwfEM=I-G&A&-*+>o_DAK(w z5Oh+$j#?Q&=3imRd>YawOJqbr+hvE+{Us3coTcw`Ns-ny(c|8dVZ=2I*VULzd=%CKt{4mISH60AJWt*dFq?3$fi{!_W z+xxrxhIkjbtsk$5;|^4+P^So|n$W&c5N$jzgcifIZoPLx?8yTlWKXX8P z`CmwlAq;~-bPE8{E*4&kagc7vG|YCs*7tuKiRr`<)G(oQc(XbABdP5t*Zx=l|icuX5*Xic?pJ-x~v#uUmBW{7`G*o9N%{?p&l5%5^Jw{Uwuj@jHla4_G&B2SIa_(;q$YcBGOqjb3k$J=9b1m^x9?Q(lhky;K zK=4<$4}m*Q;T-AfTK&1RSYw9+0LO5n7*Ktt1?Fp2Br3Ffor@#0DMkhrV45r4xt4_K z-AOx{7+N4rE})6edsaJatER3s8tQrePv~+CuvE;(jv$q=Lb#fD-Ev|haE>h>`neTn ze3(+5u61G5v=1wwx&qeyX-@u<<*1H$Q83|YXkm=N+v8D1IQtkq8x^YW$ev6dj5!?f zCb(&X%^OCx?J=2Z!&%kA?0F*aN-Qt%Q>M5y&k{;+|1{ z+qDWCH+BVXDaSuVuFOoHtvFxSXsgO6B#K-$T}VtNZ4DFrDK7W0b@x{;;^o#uzx zd*r>@r1)QZk7i#Z!Rq;|?2{o>KX?dBjt0b8y5U`&b@^SC{bZM`>W_dW({atSKibaf zD)MG7WXM=q5w%ucPGgS*y|iHN5Wm@!3}GW5@UTR?z%rd+j1~K@$%a|pj!ouk=ga|Uki1JNh)#YH`W^W#|MYiiI-5*1azK=_CNGr zZJtkX7s1i9cnLmMNwULXl!M^iiQX{hutEyD^|RJh;z19htM-JGWBV- zqf%UADFUci_0&UYN)R4?8nk8@yLB)-p_zuG%@a z9=&pCzv&q)CVH-+R{x7@uN4k4m&$8>Iba$c4#58`aJ0Nz#` z7?t;RPRcWiX9@mFMW_M;dcJ^Sww1sJ8qB-M=w(xZD?uiBXm-K~=szEW)3-slQb|vc zdWPQX%%Y^;3m&-@NFTzANPedUPTv}CU%$J9jaVNWvAez1|8TF9f>d14?OZ9fxr7GG z4zcB&uS-G|>WZ}BeZk}uQ>wI$fs;tv090JHrG6E9ijYK1-DiXvbUCIJJb**Qm-6X9 zF*EcYYC+$j+q;3;S#p;T=K)<7vZ=E;(7@bSoOwe>Rl%4$W2cTh5#up58L~1d%Vx`S z*;?)K(iY*j)_TJ%RtvYOyH6?ZP#tKX`QZo>hFVEeAQvR#3`3(iV;oq;DCir2%+)yi zSBGbn&I|-Q#<#TH)&a-!U|M4DFnIV2TP zXJ;~;O%X@Y{L4e^ci^x?AJOoT8j)!Hz7qVI5?l$Npo;@o?z0x@IL!_3UaZ0JajLCaJ`W1vh&5xS z^zD%Hu%Fy@TT8PvD;H9`q2`Mwie>(uMtO8}dOAIG8Baq!J7DASkgOi`{uF}mj*zHd zWGsOrB)s#;OkoY?dcV9`uNQv(id3D_RcwiR?+)DiO+unwH_ldYM#NL3g2Gy9d_YKzjx)D!91#3$9{r11q4PlK+D5<+Lx5{Z~3$=y+odIY@vCQ<&Q zLoDfnb(Q$5t0?qWE0QcX^e5H?Hk%-{0cVj1S}SJtTs#-PiW%#WBJpHmqngZ?se(nn z-y%=1uuq=mg);}jP6|vTt8xJ1h%DJ4v6FMhkNent*d-*{nXoFMuZ`yC@_R@AaIHGZ zV8)4hV#S5K9U^>+w0JWzi9wSX2lt;WivRe71ZQz1oBB~|HHb+48q&LZMEpJtG}0osO_^bAR;W#(0r?I>CuaBYuw zL*AWg=`c~wP(vRRAH@IfRGqMg11VM0merf=Y4Be;?x8@?q*e4?K!vX+@os2R_ALUk zQ5t$j4T?e?ckoJ&Tqg0@q0SV&Um*2Z{Y3UF<6S-?xjO5w;TVR|^vv=w^k8W&3f{5S zpa(YkvEju(CByG!M=qvN6NTsDpQ06aG{`D#xoCr(@ie^!C5MB{;Z<%&7NjrBV72a}Hi6VMN!$#5?Fd&TDZ8EK ztioP$5zSSyA&1|N_RMT|rLF4IcNekt*aD>v+vYO@-T+JxZO4UO?@MMsnJ{-C7KRZz z<$AwI@RcR=Rs$l6lVjCQ^}^thbNtD7zOgDh#jrSGMAch(blT@QQskpMko6+4*?tGU z$@UE5YizB*xnLUr13Hc3-B-R63uXEB&VT^{YzEjeN;`w=)cd!C_p4H3Nrw0u{K6bU z@rghA4FNi4feW`Jq|z?UVVUXUh$&xmgDRETHu#dOou0%RumtKQU9Z_ku^wJDR9Xf) zg(;p@A0tLwrysRfFTCYaGibz_7=C^6qb=!b&9M-LHURDOw^}EZqZo468+1B8MFgxd zGvj|tyzy-aP53z95OKGBD?g?+G0EDZ+rjZghGk&=fKE_jUH?!>x-9;&jNAB}m!cNQ~PWtfbp-?BAU6 z{AmNFRp5miV~rZBmP2RJ#O-Wg@e!!M3#j@@Hw$RR=iW!>82SXEej=wHESCjPxHB_W z=}}QPVdZ_#o%e0yOs0v0pu|6j=?3#jc>5=A+8%cu z6zDsE3sTZEXny{7i(Q0hbx)f;`LwH9C(Y%=VwNX!Fitu%{QAt|Aol% zF_O=}_IqL2<;~&jf4A)*I4Ln|VwW3H*RLF1286NKPs@@Rt%iRd$^Pv?V*{(!Kc@T8 z7_7pH(`B6LA^k!70B3G4UFF|~bi@Zsq+o(G#oTc(5h1!ZqzTh)l#^q#f3+bOFRH&* zXQ@VL>m)~vemNAVvWSaIZd`r-8!F5hNNVhs2UX)bEi(K!%t=v33F4A?mX63>yD%Vs zst7w@+F+i>R=nujF;Fh}>qysU>!&{m#iB0-mf&`Rjt0$VS-V7_O9_-{mf-QuwzM3U zE_n6~9!ypoJB(`GqXHH+e#hLwB42OMSfZO_3%8#nDQ za!#p=Wd;r5zBj)Y7^eghETvr)?yPqisU`T(%K|7X()Z6ov0R>zwm~vgIZUmhJ5&&jGR?vx+>=qM~GC6^l%RYdPGBrogZ4B z@OWV@e-Ljj#LzC9$9w_C3bJpsX3_n9-@7q4O7hkqe4`x4xjT6S@?Mn|merUckr-{8 z66EGW`L?T>4|R=k#0>^i7#=a)-?*)N|p|Hpa5AO zYJ+UE`s3$^t23Can=`>fM%&9Q;TR;{-{k<*R49^k>=1%72@N~0t5xIP!_!Cj$FcA+|G-*!`;bJf$tfNHVKzhLu2L^h z_|*~F^A90^=MoN{aiC^z)+3+W@ddZ^O@;KXJ?g)#zzeDuMrxXjKJz;R-uTuF3A&mM zZ-mAqF~=jbhmrF1g%?p>Nb zTwlSpvD6ZB=@XkVP%Hv{AuX%TS-A`)Wu0^^!Xy7RrkBm_NCJv#V%h~PD8wXdDQ=-g zu!4D2Pc2*2&Gwi*WBUkqo5Dd{%kQ{4-=)vJTETo8wpUU3OMB}}$6xUa_wr2#E6<0Zu|Ka~O+8Af^csnrXi%H81&QQ&7$aCb z2*PL;z}ftXX)_Ba263G@JV~R4Rb4#)gdz*<+L>yeP6Uy(@__I&44VfUVlmmS8Be0{ zE9Te<*&H9yjk4*0L9&7=8x&QDlI#^9{B6TW2@C2LKodX$u?1-7M`bO%SZB|SZyZHX zW^7vrrg6&o73*(8GQLT6gf8GAN7DhqPJ2ePyD`sVCz*m(K)hYLNgXjpTn-i{sa4S z|5bHN=IE`CQ6@OKp&GE+OP=`8P)%0;Uv~?O(MEI#vf#~d*S@-cVld8m?Glest=B^Q z&(7q;jO9f5eWrjKQYm~&oUw}lApH^vD!t(VW z?5w<KDyYX10wROV5_ZL#*@eO+IK7>yILn1g9mVdzk`7 z;J_7ZO~0LES$Lz-4l3^Qv#CbprtK`ftzXK)cv^m9Est-IG1%;?>wk9ssVAhPjrX~U z{c&_K<28UX&63ga*Wj&OYj6SMc4BKpF46p!^CxYVjAQDu7MWuEFszp5vg{dSNk8mD zmgVIb&uP3Rjko|aw$w*5;s{#pL_AND8B;C2(baVGY@;-mZy{Q^d`ciRQiBtv zi{t`t*z5#F@{G4nf?@J6mRv95`bQ|@?=Was^SRKF7obAi5hJrx7(^gbE=tGlv`mk zLoU|2k_3lt6LJ12p3i@`A{ztt4;XYxq4VTcsE@dXBmflgRmQn(L^kt4nf0+lo1>8ewh<1q@~eBoDxSCjuAumWne3gK{=$m{gszQgP!Hjic~^i;nm3Ynf1 z10IGcz%F+`VF$v89^dBy_RYY29PoW7p>=z3wrts7L^)TK|7Ir@4^#^fK30(#@pm#v zUZav|DOrQD|LLs70{wS;&>&3m#T-a#6r+T}v=;?Ho*mWCfDFZ0#LoLOv)NaA@6o#0 z4;G8c@4JqKk{bGq=dx`qk*yYbKmr+;LBPVZ-p5e6ha$Z#sy}KH1AZrG`=ugL1fbS~ zxCj67n;zm;v(}eMWv!Nxw5*}0sG*md2vPx0ZiJ2XgA`t1WD1XY$CUt90w9kjIS!l z5F3d57U1BaJ*mq^JC7j0@Gl#t^%_0R7vZYRd@?b4Na1Haf7@H&9E69uvQwbF6Lxyo z7i|!Q=eo6<_1knm9&1G~BkEJR-Xj)q40(QK+Di=PTVixEP2)(p7np&j2_HiL=FxEp z8LX|s`rjQlmLAOCd)kD;y7-!rSdLMlv({CLj6?r&ymE(>|K1Zggvz2Ger%i|&(7K6 z#?Z+CICgqFp)Zn+Og$C0&U>2{I8JQ=irsK71r=U1QnXPJ>*%{Ldx}E|L#*)z&>#XJ z9M}uT(YucEK!pR?c!kj;Wv6w6w|eyt{rbOYp7)gFXzfs zHDng&W{Y6QO)5eD`o3cg5d_ku9|M2i1?QPzb|~^`@0zV|+6xYV3(5V_<;K;Do@5pB ze%bT6UTk6wng1a^I{xBC{FRW$`v?g$8y9pUcejY9TxK5andinKLHUpf_i>Z$o1xA; zPuMV)!CSFfjE71!gR5cJx=YFYlc=F1Mi%7&pIjQG>1b|yQ|OkdbV3iYX!kVa|M$QG zxy}oTQW17GKnh%5-%Wur#l^-vb1!!I>3D_iSU>`)^#t+9clpu>*wdI=x^6w zzWV?-O;bxp?j?~KG|~Uyc8Szlt=q~f!og%yZ&(G$O7Tw*xddx{L$ZvST#m|u9Yry7 z6@k}LkLU>$n$Mo$5UNg3rYT{uT*HFZpAv}0iB{*%vfisVV*e`%4`zP+c!;4%7%=|# zr{f(~@lW^GQL5+`!So*Akp9$1YC0?(fnNM24JR^AHr!BGgG`JWN3xHX@z5*~Q$0y0u`xgK)v%o~Rp zkh_ z!fF?h1T5}F@3Ag@n070Z!-r~6QiX}6C_A>-L<3r*3BuU3V>`wNp?YQ0QY8XL&o{ag z-~T4tT`@#Mr8jIsMkWl3;=t2{3qT6xYn_Ylk-u-fbG$3;ydZdzBmsApw1y2lZ{DD*djH*R_DCkb`w(-Rq z3j0DNT%_OjpGKOAimGr%DA*>1Xj(BPFc#!&T=zH$9ez-a6{Y_#=fi`g(W` z@)ml#4-JRZDX>)d!Q!Iuo(JEY;Mg<9>34X2?E96_7@B_?3Yuw~=qfv%E8{Us7OEqk zOQO!ioxUrz#Iq2sMRjQAd-%NZk4Lw7%JtA!Ueq4~Mkgd3rqSiP3_#TjFpe6ztCmjt ztVdmq%hMJ>9%mah3mzrTe$<1^TYsGM34$YhjtUAViEH;(TjYg1c%I3Xl#0o)eJ@I2 zUHY4WjwysH=v+v22aLiEA?~^Ce`pwo<~L{?k%&ym&6e| zhQSn~voqT%TJPBk?xaB3H==SlzUMX4`}7BY^IYn~E?+36TC8B_GPE*$2+ zdPPa-8k(-4;;2k+400k!-d4>8{_MEWg3%0Ke;_kvOJe@V7Gb9MFNOu#8kvSbI--#$zO+qMaQRr_A zU#%eKH5uP--P?E8NE;exjM$V!TMgaAr|2PEtsi%Imm&o#3|-}5TiuyfnuH!`)u0Tp zgLK2z`og$thU2dYa#36-J(7&%l}rt?!2P*umJXwhRyZ_Q>%ZwGx>kv-e~?>wjZ3@k zs_sMr8&TaMmhuAhl7u^!=_87d{yRbzn1mzK)%!!vC#&yHx_NU8z`}t!8}%pk#RUqVb?pji_XD0 zL=m%lXllv@T)PH_a=mF?tAU%UcqXVh~u>5+@1S&kdRjDAkB1&(**AA^0#3g>O1`1^!i;#5FB118s zCt|PniXrYk;-<39r$f@{C0%1K<-Muc?(uYTy(6~9}D0i0~2ncHeB|SiLCD= z6`;q|9bKY$1gwr#4T7}Q$HLE>lh^DOH2UQ;p*nuYk&_&4B^w2Ebb_Sn-8D)65?2Lp z8+8@EVvD@ZCD7g|!TFZ$j-Hgfed3xK&i?h3`i&|`y%q-AF#(Y;H#YLhPBI znV0eI-qS@VH^x9Q;E+CU116l-nYF+%0OQRRfxR;0slmr>G%YGSAr~99Sp2`Q zlmfY8%MhD$>Et8@Y;ZxGi^Am%T+^ninFOitHjTJ9fC1`b@eIpMlslV~4@xsXMu zamFKM(96UGpmgWRsHU7f3lcF4UpcIz*t$|YBJ z53jo?xnp)2$VSNqsoU3V@ksXGzu26dvmF$UMA0S(X`bq{snKez57!(62kuO*6I0a{({ zs8zlfx4k=WAaoO!frP8;9$eb25QhKM{ZxrU^KBnvIe_RfB%U1}z!;+k!VSs=Ln7Sb zU{Vnn0N_dEf3+#E&&xkh#Gf?{(mV|c3f}n3wIlFewV5S|Mpxg>YFCg33Cm8|XSEY! z$?r>nz+6I|`mr+YB7{b6`2TL(#}n5FIQJpx1xg79XGatMJDkR=xF^uUQ~W(Qdil3l zF-Y5*gdd5=exBA*1rCVizt6$9(w_Rm^ypRRy)XZQLxDPS@j&2XDKzIMP4oqcxixNg z&yqMYrld5DSp}el!7m^)WfPS(a9fbD2LSrRH}M07?Cul&h<9i58V!s(o^timX=pyT zqNeBb@Sxdn=S(DB;8%`1=5p_~k#Jgd$45=c9$R*9Ed$O z04?7sa;|M|LKOYS(K09bwiM-#JKUWH41-xDNp`yNR@GqZ$$yHAG-&9cV z1&qf#R0~j77Sl$uDX*G@BrC1b1%TC%FZbn$k9ri2)S&p>>iSYF^N~p>reC=R&W3>g z_ilO1-7*r$;JX_1&F)yeT9SkSJ#sN(B~}YWDmDLGMm)!8qL3j0_#9X{YhY@&Zl}H$ z{f+^x?Vk3v7s~ns_=k!hACSV};dKLgG?ul*`57GCd8-cHSMb34H1}8qPzEb zoT}jr=;WFp=Yypi9)l&f1 zuI9!E!rmiAyW~*TOz}+?j0+eoJF}rb&P`MEHT2;7=!2o^|H-m@t&pOVN9^?6jLnfV zIap^z(1qr5?@h|Uu^iraVFj7TD%C`MZ`S#_L~F5BdglW!;o|6E?J2vs4j-2;r+c&5 zhByx!3DEa6T)XKV>&o@qAA{z;e3~esnJl*;a%pbyI z?r3S1Tuc(lu9S_c1n(~EEu99byZ;OmuJZGK(oh=~9s)<6O%vA>i&NO~N=(ydA=ds0 zVQC(H8}KYCS&{|Y9;K7%O39!XXd9c%n;n}D$x@=-Ds(OaDdB~TvuqB)MTS3qW9L?z;xyd%v{ zrq|aH#lixWWb}Va7UbvX0=HQgW}t+Q7CuFy2&*R$+p;=UdP^YeMzHp|~xL?7S0@r8y=p=ypeetUs9z7nyjY=I$k9n=i> z{nwA;&7_k&SNCW5l_D1QgpSE?!Yob3V3f|38TdAUn`X5sdK#&(4YBUM?%g5mxo%uB ztCjH((aQBddMAngPlPDyD?Tk11a)#KJNfanq}Cm8;eY- zvW_F%Ie8Z7*-;P*D4io!9SiU}E2H2y?f}54isu8~o=Bu&YX`7i;I(Vg9cTeq4J3ST1heL`Y+MyBKSj|1M)C|N%{-A*}hzDMX@A?2P zjiin@5;Cs|GA-7>IzcR+CP0~s<`Yh*pyVwiM12X_#$3pW**5`=sh5Fd1~GHp7ecK2 zeLirh4*9K81=3yURnmLk!Co|Ej6__o{1vd_=+BqIM$I@=)d&E-Wz1qwLt0AVJq*LbqLZ*n46_rktpq zfn5;wX;bwfw$yrKc;0RVSn|cLswXg#kxx_h$W+9Sy2<4An@bSk+pn9G-C*GefJdA z6yRb}@@+W_gBa)y5!4^%#@Gqup_GcEHK_0@Ll)#fDs;RW+eTC%eOdt7n5mxxlGYAq z-7ZsmD%TBAia}P|h3T{wq<1_#zfA<!(nl zY%wx)KeRE53b|d`5x2M0N(lz%g|5H3nT`6W60@o*t0=zs@dVBmynDrs6h3K&caryj ziZ_Nb(7cF;83nq-kIlBvB;d6=-$riil)y*hdqtLw-E-gR2mi7=EfP)ZgDXR~2c$Q) zhxjbX66|!sY{C9=>D0X0$_7x38#sDVyUJNdP0e&cF}tobnY=s91|ltPUYI$AUN@j9 z|2;H&9>Yg0r7g>OxE;VgQ%Zdaro?3uctvsB^WgJR7Yf@a-?*Kr%@$14isfH^Edx{c zI6&itYxOJC>o;cq=MNp{>!0&n*PQ~Fh7`?A=<`Wx~b>B@`+z zp|kd9R;RCBH&|bdBEx1XG4gRaW`gj)WTjkBVxHcaIrwQKotfu_L41%jc2Z?>+;n=_ zDX}0bQ`1wJZi@<>-ro4N=iO)tT2BWhP^g|}I+p;Mh2Id)!3%iewqeN$R?V9i*9E&(6%%v}UkJs^M{GIpAd!azK*M#7s_+32tV-^EXgUBaNZPz0df@ zIDupKPkQBOgegkCPZ4hQd890S@vyF!?oXd@(?~!8NlGy4WiA!XyuF;fo{)`MRP~sRAi{Zwl zk4-y7v)F1XAh$HpD?)|^OhWj@p%s5lU|c<@;DtH6RB-DaQ5NRD2-VN-aU^5Plt>=;!zy0{dz zPrmIZ2E^k86KzOTa$GZ^qRoh$Y`E*Vb@E$XpU18YidE-w$&vdkG}D90Q~*VfJ~>ip z*>z7tUHfN_8fEIcI9*Hmv$TPmbwKgMMG#~o2d3@M!<%w@`ma*5bKbpu07ez{#4&vC z4pI_`@%=lfG^)y(i`8eCVRfO&T@DknBRQ_=HpDNIMWOVdM_gI2hfPY*(>}&S#WJ#w z>lRTbg@PC|ph4t8JP;a-;u--fj32h`&F(V|m_crt>hy9MwSSNxglMvPSsmwY=Cm`) z&DJGe2V39ekcpUh?FN)zSu&m6LzU>bP&F#1G#BMa*F9S}T7QNhw1u-!KM&blxC^FE zE@4cM&@P)ySRJ%{=qnRd54?+3r|6pV2UE>oow^#KSl0Zh|GZc8URrn7B2oWXL__kQ z$KXm(#`At7d;gGT9D{5N7zdO??CrS*wYjumS|?xuVAUQu3DWR!7ID)AruI1hZgrEMyw72O1SYs`o)AAxYzePm;yFN3@U=dRxv+W zVeEF5BcnSLi1U}g>iqgylI<#q`#2cAXCnrme}EE`pM5xs3j|T=?4bfg>leH%tVURv z(1aeB7ksDb6~E5y@zItu92V@)N4Ru1X$H(8d^ppB)u_j8%Zf z?N7jj#jr!>-8EZVmF!siHu5ZaDMbYy|YDjI5pCU zh37vCMHM*Bc8>eDg8kw&F?bADr zEZpSP_?gF?w_AfIg*>Yt!&_|NLm~KDG(S6tGkgFOy@~;-5Zhu{QaiVkM}R*#)QHxF z%Ikoki%%`M#R@*KWj&UX8QO4eIrw-^Ap&_#Lk!{Sxlc2~827xTBN$A4?%2-ZIY#%A zx5#Jk*bL0(j>-RG?VW-|37UQ1u|2cKwr$&9W81cE+qP}nwr$%p>&*ACiqsEd$L2vq#7b|^MDIO$j`dbVFS|(e5pg#Xp8jI=HOtot{bx1Nm4n;)BZ%! z-X>BEJ0r?j2e@!Gclp55t-VC3Xmmj2MxhQ}huJT48hNJ!#!g7yYGrfO(Q zhLv$fC7-R?EEun#6reOw5|{RmstBcTHgjdplqk;E)CHHBTE>x6;}r&(5~LPpIu|7N zYNR*m6-WdQ-@bruh@m&?Hn8fXlW~Ip&v_zv_|w6ai{!6`xAa;{1kuqG=t9J1k*nY8 zM6Q1`4m+Ca{f=T~|Doi}Z{$M^!vX{2T7h#Q(^9?|E5{Rz9TNe?@Peqq3##~e$ro}V zw?F#TFdg^VCkVPoDeN@TO&HVty=czM7Y<8WTHO`0icXJ!@;|b=_sgDhu@s5T-5d?7C_g5of-Xbs9Bz$ug z?EEo00nrXufB`-^_D(-H^e54{jj3i5(W7N;UaX*mVi=fD5-i_9L?h%V_DYa&hCG|2 z*3I9MGxRTZWv1uYE3mIn=;V)^i`8JnsYXUQ)q0=GhlqL!x14MP3R;udg|Sb&o!Y!l zCbqUE*H&5ZQY|CD3yw&N^D9f9NQ5=kegoxs@>x1Q@H%FsZ8^J@>>~o^JZPA!jutLA zgt?ymY8c(W1|=Vn265MF#k|%z)0E~AEg)FGXjD&k%jaze4qpaDw~?JOSIsb&?Hq;G zxr<<2;G7~qFFrfBzX3U9DbZ=+owzBxR++})$q{%i$yaBDP?r&Kc`EX9wQaWBDsuA6 zJiZ0VI-iD^P9%#?NILcyhmE>4dKx|r;H-BvNGww5N>B2>x>i;A~SFvYT9)j*)P}vZfu)u*B9E6Q8f*tsTJIB&qRCZlx5i=QhrZZq!pVL# zpADgi{Hup2!paKw6OtBvYRR;|+X~iYjdm3xzU!jpq9LtK~rPj+=xb_ZyMk2l+7wTY2+cG}}kO{2sZVLY7s~)#?gV0?Uwx6H@%C4=ea`@LS(F)BGY4 zU**i^m!>sAZ_h@>T|kE}vLPB*BSScFEzqS1=@aCWv|$Mo9X)~$5F^xN7dg1{wbZ<+ zW6p2l-=-v*W^VS32+{5^-Jnv|uesYMY2n%9Pvjgy*~w4JZ#Sm?It(c78`q_ZByha3!(;C>it-;V@Wp|#G`Gmuu_HZ6p73*X56?~cL$O>gJ{n0E9)ld6I zDZT^}Cs^McKbLDuO!yOoDO`OQZBv4hPTuFhICH89c9YF9B&XOA7aNowM@Z zRgr&^dq!xBzG)`Ck( zgpm)LCM#UoOFIJ8xcp;Hk7o`W{Q(Z);^JdZMIE06IHU0mC$Fz9HKo~(9M|h#RhwTayPOGprhzUiD9@~ z4}=|Vk*N9Uk=C;RCWavni)Z1@kNV!@3>NnNcnf{#ngz?z<R9KMVvmV15s`$D=uAF`61GcqC0qmK*=&C6-Z5&#Sfkycq%rNxRf}*< zohn2V58IMF09H{sg{4@^drl&pd>e=tx85VqNp(G33!~ zC4ma{?mxiJ*Cy)+p9#vKHyAA0G8h{b?>Y3nT(K$(wASZl`X_}^k8w}mbfyUx!o*tI zk9La*!E*A&42m6(=ax$v+&18f1V>%xfO0D)p0HZj=b_Y@0!p0JwOt(1f6!>rfRaAK ztt!-$E#{Z1o=D1Cp}v*jSeXw}zQx7LBF#j}w!v9@nGj&*4zx{>H&MTu&o-Z2NU%tKrtT2VYx%eIEuF2`wD6uPC_%0qo|=gfBF_N!&$8~ zJ+@G?I;!l|pBjV%{W91>K1p1%MASblfKx_n0AR^Y_OXYXxTe_X^b;?cd-&@BNW9ny z2{VXS@Ct7C@S~jTojtNMA%aq1I6heU5hc;*TviDOvybElE@{GvfW^t@QjI}WGRjd8 z&QMqZI0|yQpfj(UuDxVLm?fz?<)WKY?O9&Y0y+8|Yqy(*C?*1~D`(t@_e{Y+tRUkvY*tmM zdRvje0i>AF7iwpe_FCM-ywIlP6cr9Hayh%@^CK!TojaG4h}5M6LfRRF0l&gKZK~vF zUd(vF#Z*0QEVB8c)PLk)0!jF+8aA_X;PeUBoU#S+*GEsBJ!eaP*e}63b*OxaDR$E@ zxN14%@h(?Oo&2ZfU*$ibk&K#^`cU$YmO_6PR~H*cI?Q*cL`QxWN0Bz+^!#UM=H7-R zmOLyK2KY}DX{L*+s7?a4TeB{<`VYazRf)B`A#+2ZGLf{HW@tAH*8A-k>8TG4z4Fo16?Qj^|_ zf+#4^?F2ZNCLgW9atS-C%<)rOK;-H)*Emt{e|~Z_>Oc?1lm35y|YY3cFToey77~qpM_ft>4QiT~%8s^}wSOUQ$M@ofWS=lmX z0n%U5)8+WNpWOxNabnk8L&ff~pa5-1zHR`e`x`UNr*Sgn^DYOqp|rBq2GKrgCk|K4 zBg|~cX5AC1mwYmC0y#9eUwNAynvII;SWhQ%N`D~Gg1PHRALGn=q`1K5SI#AhqTWau z*NArZ(yUbZ)rK+bwFnXGPA8X?2uR8^`!)Mk+j=@w7$3}lENyG6&3!+3G|_t}VHyFX zQ!A(MV8Z@L}pvz8SZZrSdL4LJG zvznkbOjBD0KG|w?3ym~mEAa#l;evLHl5|K2xM$|DL`hQ#yj8_~9-p(-S90iY1s6wq zt{pZ$vpBF2DO@lo0VHQ8bO|xUVGv^d{<5iy#+hzO-h7jQ_QLpD4t~8uVuk@bWR|Qe zh4_-GTX!4Mh~c(=l85|E#{Jc!3n6vqkxX7O-rrY=nHK#3Rwe;N(vg##=Z=(z_rFD%_8nJ zb2T?9QD}t&3{rkbk@mQSgkK=7AWp(5E~~ss_|W=U!KRTc9~5i z_X~kx`?wKIh(QnJ&UAb}rGJ`cE`!@e?0qpd^3Xui%{xCxTGos>QZrVa5Xig1Jd?DB zid&eFo!jTRSf21+N&6(EtEiqFC{u~+)hBe&9A2ai?w)Xv(8=WT^0FUnzO)I%+<*xJD~$l)DJjojlY z9XUYYM{;ITgN6sd4e5nK-FFCX?JK|%WJ{puDGtJPlg+$UfM0U?`Vs`U?=@^cCQOtV zanEx#G0gnjF1`6``vobzg`}IZuWPGLh({$%7A6-drV{8LuBs((-{T!ESE$0C+x{!q zQRU#nGSh_<1iL`hb)A!z z+{Ktg!>1N@SxCaW06$%k%pJ9+0Q|83r!IGlaKem3fi6tNFd&-P1#GU>>40;uWoKwe z9mIH-rkztdjmqTCn+1BN&Xc9#gS$t`dvpC{muTT6vL(UL`>s?Pw=FwJ3WKiE@Suo_bO_o~W7ujFbLw!i&BA|0qtlDMBDt_d zMvTzj7JO1(SrAQ~8wVcc$ZrWF(-1g8*H9gGT4$c8u~eI$ipdEPPs7>pywL?(sgWxL zL`Mk2>nd1qk9bRMMy-Tb_X}l3#br-gXD-~eGhx>fq?74kJdISVMmMe+n2Nu9KmeSU z7sPgMcjcQC67yx+(|6??>82V&FALx8xL@U+LqzWHS|MDCm7DQAL=Gq`t?G)+rd%m{ zXGm>?;}l?0({C%F2rxkfgQ>g&l8C4?J{@h>^|f0AqS6!C!`Pq|6;oik=g2AUIsLtT zb`Etucz|9uCE)4tgR&(8Mk2r|Tii)|8;6;M??jR17RV%JF5ql+HdP^6Ri^%T0clh^ zgcs|eO>sn1v6mDXsHyA?);qfv-M3C{bV5di8F@dLjaC$t+}pmwwbWRN>ve-59Y5T< ze$p}#Ws#$^WMENv^5LDiHGy)M@+nLtOZ2pKM}`Wck4%T2(q`(v_kev5F4t-GaCz`^ zgr*lSVSVaR;C$v$m&30w>zh-dTK4rp$UZ*|=6S5(X~zHp*c;A6!=oV!*{^&P^^wyE z8T$edxSO7fuKHC;4Un@YB;t2#%}U|1$8%*u`~2VBng5C+095h}EuKLB+)8{i`ci=y zTxa8-8yeNmc_YK()UsQ4ozz{TJKR{R*n!W~6p@)mR@13m<;DHcmjxob#wGQT)rN!e z7jFlNYRq&2CrdLp!no96S&TlSL&{ucTY((f&>Zu4r(d$m#WR`#8i$~guodkJbf*QF z8bC#K#r@}Ct+*YmtYa|rM567%_=zCsC5GF`w@ddme`9Q~qNMYH;2CzxtXIo%6z6AG z3F!KP@#4M&%FTzcgG}VoyY`b|p!q*RFIoS;K`-%HS(*PE%FmCL{mq$1_L*{Qj4V~2XDx6H-(EWY|~5AD$}E_aL@X0k1i#f z=r^C)@y^8w6A1Ug%kp=Q)8M(@2jn;LfzIWA_DU}uWW(?>D)z_Z^J#}QZcs<6VuIne zlDlWXjUzMcmH}r4$BN7{IN$*QNBlxT#Uz2+7mXY<0P!vFOdywarXdy$s=Q( z{$OYxT_xa zuEuipR_bUGLjCv7g1O73CYO0eCr+fV{y%v*+yDO_{-x5IcAHG_{F~yWBQ-YVot(VS-;!)= zT8u@E^WSFyKeym4adU;`V+87-6f#VJ1XsM%{_K|N`e;;W2Jigg$2s4+hEB7OCDoeR zOg4K@Ws#lj;>#Tz6bKBO)B*=FO3`j!Tv=J^UN&d#9bYF|vzBDlzb(mJuAvLhp(oQK z&=jc#_3P9`t4g~oO5*N3G4&L~6CAvh3Q`VL{%luiXh-rPbq!DRoHAqi3ObHC#L{rW zQ>;7sWAT&&j9SzaK zaXKmgVS8Kvwkx8cew)z|74vQ0m%LQ?se5Jz)^U&GHJBs-p1d} ze!5jh5;f=}kP7Dr?n}ud>N|1>gBf*@f%!CXSdA9hbeiHRg zJdTbjJ#8uay=Ht5s$Q zj5d=+^R?AyoNk%oDBT9PHvz@hN|?pZYu{$(22-=z+V#YBXYv4vtRv91JY~?I(ZCZE1_e z*0OtBn-=?85XSD6*k|C+9=^zGe=uT`T{H&1u3}|vJehpNx~}Ux8^}axDr(4~sfYGD zfba{M8+_yqWiq|8R9{Z6RX#@XI+yf--z`z(9B8fn)$hKhB*O9foDj}Jqm(+VcUV!; z0fK}QcLIr!@uHOtQExJ zmjxwWu96%9*fQ6#fTU{vx8DLAkQBXd#u9wXjz8xm*+o1UF8QSm&2O%M;HIR;DatQ4 zzK^l(Cb}X@bOc=+BQP<#JSy64Tm>xEBX1WZy3((o03UnL4)(}{e^nCv4Zx|=uYO1J zObuHhd6^}~>0ObWx zC6qnvGW;AN5awh}h1Ft{`;I{c0~>!j;7#&0Z?t6l~xkx5&EmXlL17%R1|CziEGs8s7_ ztklsQSDaBQCad7uwcpDW|6agVDY7Z0E_diPC;jJE2W~@v_~=*_{M221^YV^w%A8H;OCD*Hl6T^(4b7OYE-DxAfmiwRYU);;ck{PoF=WZgTWxE7z#oNv>jKH@+XAc*tN3;dkJ{%f`g`oaK2k zcV_Y7YOji{^7_?a39KHUHT<+oc4g?+RO;$e5Dg*eGc>R#v`UFSno~`pKTgM#sx~_3 zVvOGE`gnax8H~(7xZw4hGxb4j8iNW~A*zV8khW__yj(pESF!;|ybPLjxOF`V!W(nM zIG_uxACdEchm-h+zvA%*{LNX4qrcdYF>vfz(%1Pqep zeG3hu;(CkXLMnfP;B-LG4pgP%?fSXfo*(a5pkO!!N4Q`di+&VaM+~~q51N77#r2NG zd^+$Bp92UK-2S7+V^ik%C6y;KIY=d?`Nmt80*1awheUFw*nm zvpOAy+V5b`feStV_>?sKc{)1Fi+_6% z*mY?Vpodd@9D^JG+cz4L4VQSnmjd_qJSs_+;heo8SO50TQ*=1ofAEC1*VVzz<>e)*t53*( zcNET)KT%W-SyZcK8&PP7hsW#jChchiRYwgDG+xYOpFSaM&D$U>#@=8*PxZlJ)Tnq{ zIKXz-vVqknfUWX1@M^0lX8=2sFI zo*;{PMbaD)Y8S%sqMA8O2+hKix)I{mq@s~E!p70Xhcp$mnjEuSt#4+b09BS7ci| z;lk0b5W$=d5T|V36OWCeT#-3j1I#*=uLtTOqNsazYY*~8jJLGd1#g!x4*#y*FpM$bEg!ppqu85zW~5XTA&!uGVmDOGC^09s~B5 zQL;1;9<0QL$JMKImztK(%TWT&-G*w zxqe!b8PfmS7xipQ-{D6yJp6ECq7i;s>$=*g8NjIvRP=1n(Ni)4$k@bB@#C)nu=@ca1-nz@nB?m6nUE&DJa^4P#VGS%i}YgpLn<@4JKP$Q^qW+jtj zChedc&x?}X!s+S&l$~x&it?TZyNBwY=*`+LBMwCMK!#)|;9td%90EeWX8=~^(5#&> z;4XwefUHLHn_Bqe^3y@W8^W^7xf(yx*Z&ZDiFEY1EoDE zbvX#c1zs|M4&bM)AFUo}9fTeDJfLwOJb-dIALYF%i65-4zhT#A)Jus|iqFFek^`YV zgRb`0u9wbKj}p>>29Y?7c-(a8W${-aN~< z?3(9~tMD~L2P~RS4Xgd3=uWk#vz5&qGWIT;{`$aI!qBW+KPDqZMR5{HaTnD zsJ3JLVQ;PTZg9*$&0DQXe-vI`%n1t1%*PK?t^t!W_UBD{uf*DCO_9exgzx&3(NIV|OSOp9-Z-sh zLOy=g3j4}ZAEvon5o3*Et63_IF3CQ@Vh3OmQ0t+ zNK0k)=&H^NYI#WNK_+W1pxrPbVg~6uePjSc+RvGoM3@B=k0}hnr0-Oq#8$yR zj#MaE_)MH;8W@(}hHzKA4`XV5Obj9zT`eG3RhvNBrd5lf$TdxttHVEl#1tf+c_}VS zhF?1R^|$#_Y12>ijyn|84n+$%#5zczXMM$Ki4pD?>LJj6PQz|Uw&alFHb)~iWYspE z)#lN@+B{1pour=zRMqAke~Jdn!h$KyeG+NQ2cH;=Q+*+|^lZqwhf)smA!RYrhe|zu zK^1>ek|x9&2LBLs+tK3CIwM!F)zip_0D-R9h^*g=Y@~!>yx#svRR)^y63kz(tW)Ec z%6K5yzCEUjttPTDwf8~PJ|mwuwZ-iif-D&969HHJ{li^@Oq4}ntlF&Wp7i+!kC6;x3P|*i}P^Ivi(;|9en#n+*%am7Kb1sFSPKJ z6RKMrB5jCEf+G*+=z6YIB(@)QU$cuPg6VsOv6$5joWeqJbYo#VFfGWIyB%m;JQ&49 z;PelNhJze>W52VgP)u+Z!E|Wlo(c*^UI8|M9I&__bc{`l88JGQJjsYhW&LnlELkvT zwMeU6ahs+MoR7JT>uTBb@kebF$CNhIEpad&1ap=f6}4|sr+)~xNFEmpN)u3QB5(~3 zhv4#-8_?+4J8FLZ5MH9=0`^^Rn|{$&wt)r>g#sgrCWVTJ5bM>sS6+PUjMPM%JY>|M zC%e0*!wfw_3gEV5BT^uSi79SnR(&5vbKggjIH?UFH3XG zFaIqAE?yLcM-=y`@N!`<6Lg8qf=a21=^4Xo19{PQEk8YW7s6Lp#C#7w>Ll<`Azu0| z@Xv*0b8met-oPw+N6Zs}&->O%X8YB~E;Ib-Jx#z6+5whVV6FANh20QO#%&hs)nO^d ztGTrR-UD~PtsZ{NTXe46Ke?NfZ!+&OmxL>rq7cBV* z*-E{-;a&@FCrN8wGwu!(W4V#Jr*U#GJtDa1R(L0xgGy}n)zE8hC9_K?b}ud>;0<}1 zFc5W(SZ6Dqb1ppF)gmA9?-P$sQupc;4I5)89Jou#Fj=9m3R$4Sr z1ZO8;XZCJ!kb<_q^XV$pi4c~_$H>wrH$*By*2YZT zGGdxarZEfDq0b-|#wLnAUl4WA1S4b#DCM<@fT9v3Cn-hsR3_>8huBgGshn1jWe$#Y z;Nie`<)25d&qUmH9H-y5_2=*DX_Q=NotahF$n(`KD)g_A_5v8Mg27LuH=uk~P)(!l zL#a{(*Eog~{T{RTxFYA7jM9U2Huo8(R~`g5Wk*8P^@>KCZVAiT^7Y|r_TLaG31M_fnhkiB zeGFtO%ic_J)0ah>D#^D^FdqU{qCb`x!(04d`0k&`rI=WwfLiE`PjuHp8C3OnTC4UR;TjNcSo!-cU8i6?Tu! zPK}dra)!Kw($G&W{m2tmh@<{` zMT&q@fogD?-I@IO(l+uI3TQ}$H5zL6@N(>3o4Q5S9WQTu;g!@UDf&cg@G3vs)pvT_ zm^$oAICO1F!l(Y%vGUsXKdd4PDwXul8EDKr8>aFFN?AKp`H@Q9e5q z8I_|Aj>KKE-)&k92;7CCg+Sy9w(kDd{*C*gF4MjPt1@ZEyuR#9Q$y#D!)Ofg(EW(% zs4%IHzr_I@V;pk^{WX|AdDFNRvyg@Ncfs2RAs;%d-RFd*JOAb#BD!cE(X|A`o~Auu zgeynAv3xhkl`qMz65?-~wP(2l9PBmO;n|_8k%?iaK=3w#mFp=0+O`=szI)^GeN#%L z5|3XA*4n@6_Kpuk3`gmQFFT$++pH)k$U;eJ@L#p?) zK0N`a2l}SL;F8hL!YnIVPC+|dfma@l-fHi7DIDa6YzkD~DpjFIKZ;)PNMh!AiABC8 zh3-U^(vnIl(gp?++VkyStt-L_YHC1JFCptBnenZkzsB1=-%aV5Y}!ya_3zA;+ftf9bOtTcszLse5V1I zpmqb-W{c{dcoy6AEma&+p~$E_PUZ_xRCUv{+;-!x8?D?nSK=1C0Yx=y-czBSt-q(r!OP6_Rr!l_89R>bpQ8*Q9 zRr8i zzBpX12m-V99xJ~;m;}^Q0B_Z*LwDJsvo+1!(WPfdLDPmdMP>8$%7|bRGj>io2U8b0 zB~4P;1jGS!IDea3KFuy?e&FCTbRkiVK-w3tV8(4Cex~q}q}o%s2DFryZIH}atpt1E z&j!@#`wnDkuIE0*9%c|cnCjU=`8UTIgCudNeH1Fi{W3&#mRR7N_!fYm3??l9l0TM? z*{qY?tH%MX?DwwYsy8ak&8VNIcWAgy}EF)a>5bWEs=MCKG2S~7=rQjaf z+?0J7fT^08(;PN%mEByH8k3e0l4Z!Oxalbe^ID)CD#j!uV00g2SbDHwq0k&Qd_f*TH?UMyKx|>GnH|I)VkP1wdLQ`o_WhE@ z4cx2x;I;ssC1FUPTM7&tHf9t!d9@)Wh}p{&lbR)m2Lr!jL|nKe`?N;^Y7EL$xG4K% zPN?GP9lNLr)+L}Mnws3x9*$6OmMS;r+MbM0LJ+tLBBJN5n%u&G=N%O(u#3SF1eC{# zku)mo3pe`_6Y`#SE;}bgDfj?g4jHOr!1JV|hq<<|2{y>J0E7f5yF2DUpGz+_ z9}hgxwSXB5mo|(L;ZE?v1G562<3wvxOPk- z?rY$-kg>b)^3JC5{MLJE5M?L>oII=>W(41>S1Yj5fd5MBeoFNOfz8>=(^i>rt2Rs}W~QWXn4<6?oIoS6I8MS3|9{&zo!?657%Row`rI!0G9bn< znAZ92FsiqkJd+shN#5(O~m3+UOUZYH5Dbw@>b zkQY9CFUV6fW$E5HFPiCFt0)I3QlYnx-h3-<#>h^`Zg7Z6;}xw|WgOO~z%2*p#+_?d zNjb7&x&DV{WawTX)t4ojdC-F(R6p?gtGnCWEAOqj%BjVyFjcu|y}%o?NBpO(x?1(r zP~bHge9M~@8!mu#nxU?XujS*~Ar6ldJmo$+n4woClpjVUxcgYJgn1{_KU-1CD_*B4 zvVYQha9TY~W~g{NAXhT0r~9qfIkf7pLs@sxT0)wpXRY;ds=j7bU{%&XFCS71_^nV+ zSD$sdgrBEBZVGw=F@t@lzk7$HXIk6db(CsFo>5Eo%OTaI^8338JOy1z?-@JYtGm^ehY13UQpl47%s-`5VYf6l3(HVvZ;;@AX>PRk}vLHoK`$Qx`*>WClD91}v-Udc1ZWwELpc&6&7o+^0 zI=d^mQ42oKt!gW={3SF{ba<@sDPBb(=7Nfz0AMq7|01Kils2HG;}YPJnjI5jHvw4O zUlGhyGfT>E^$a_-w`h2)YHsm>V^2XwOGCx!lxVI4jtm8&Czu;q|7D(WQ$ltv6-H`Q zJOMZX+%0adcJu4RH^ugJS!8T})>d4^DmylFq)tAEMl=rB*k)dkVDjy-&c*<&hDrfN zB+RB~J14+r)1YzM20Q9JtcH+fJXJ8&aiQ;St8E1#mkee{u(M*k)bqHQ*dIhtBv|ng zgP6ZVM<@0Z*jguf8Tepc$7E|~wW%p6JlMN~M<+Q=@L)8FRTriS=lO!u_( z?K>}^u)kn{{?swI%xoh!r7gZO?b{0|UGI&eu7d|ia59;i-9`0E;G!+9QB~|0yyGQw zvM&C=Lpj@TIre|+(Eg9*Tqb4~=Ko_kmyP|uLOB})$A1gu(OBBC*sa&yy#~0~K_!Fs z(KdPZ*jmCrmtgz{z4Up|UufXD-2a}1p89+TwM5R^9;xQN_{mp^0eW*bm0=%=vK-W4ZHGu`%f(|I)*W=adFw zbs-}G1d0(rP1%C@zxA8WA_<@mkQWGG13@T=3qcfm9T5LsA4Ef%7+1RmC+y9omPOb`Ml z+S#BOg3jvVr|jv@=qF*s_XZ$yGZ>?YG_GV%5`xzr=}oD(?a`q?*XO|j)r!QM^CNZF z``{R<5Q&rk7U@a{%2528?(lQb5`X*^y$v`8tw?t#E4?2{X<*=Sv_-w=#wRQ7Pzj~< zG%yn!W6UaCe+Jmuf`8|ow;{H^=tF@c`>Fezz1+NfS|PSych|bHr=^h}?QmaCd%EVL zpQ}%N@1V!4v!Rbejf}UT-`}@~$ISO~OS!wgz9a`|jpidcrk6b$Q!&?9O&Ql$>wLMT zvvgXsmI{q2SgHG>VkmbzJ@;U*~e_%U!?tX*j*p@_t$K_I&i0xmjt5)pDZk5pdXsEJJ7iF zvA(_1udZ+_U)Ayk%m08PfM`U^pds+uKU!@=*h^_9`?d~QFbspVtTzF}J z4{UQN)!+-@Q`r>qKOhZEh`~!iBo5N=n8cWz0MML>r>I>32+K(Q0jQKHm;pKf5tM?M zeMnA3v*2yZ?DFq@5CyYkyc$&0g8)*u#{z9INL@y;3m&vcSnKhl=a>OuOYg*7ZlH)r z7%&i_^D7n!1V{mk22!(NfYd7&CQVwjwv1rd#a-{@*4F+!IceYDAK>j()+8H{rI^*R)iy)izhcL_-gmVIQj3mPYB>P zHZ}CTJpOy+2%t^x!ijx%lC$vB=_Ky{g|QnMrB~Sfi}}0%a_I2=&gDQsEOP$yeA3CJ zfAKJL*Zsq?96n`mv^4ePPLPeDf1yJ+N8N2!*Hq`|kr<}WLhT)E{bljo>8tNtRDJ|>0uK*9HYz}F_H-7R zid|p1FPULZ9#0!s#fPYb#(fu$k2{w|W-8a7W*0gjvr!6EVyx!V3`_z-whhQ#g5L%d z3Q2EOO#x}cB#)g(TXwW`@_v7Cn{D9yp;fnWGf&dL&`IS^K`@mi&vOMGKmuuLP+cdD z#5^tFI;egK#?pSPg*l<)guF3GY@8ZQYe8*{M=N37s)a<05#`zL1Y&d=$iN>$Bq8+l zlWkEwsVdx82y@)$r5x?Ls2eRPeTf-5<%KhBKXgN z8C-b9p~-|roFf_WfDFN~#(Y!CitVoni!FI0Ux_GbmaqCV9ZkR;qOtC+EIOn!;w2@T zj!-aNqehjnB3Q4&TpessZKMG`tTDcYK42u?8gP!3&Pl+tgQ8fKENvMcWj1m4JJytf zW=XQBp;MJS^`DnDsoOG-^(5Y#82$N*vl19m8)r^IGc;aQ(}_x!F&y_Wt09|w&$e%d zt(0vXYzZ2OWqU{5y+2|7)9E>QQvMk7FlM1O%kX8{zIrQQ~ZncGW>^`_GD1JX1CMik+n zLbyl6mLLfdg$|+-=7$)_?^5eD@ClfI`=U-$1uAq%-y{fTnl7E@nxY@%YPv3hJ*jSj z*lOp!r!bco5d?7{77@?>u7_Z=t`htHWVcyfa<|6plh+dXchsGq!u}fo$ebTL2 z?JW9s*QGAlRH7SKu)bSCFWBJIY6h|TghznL z$(?#@!Vpy3h6c94AZ_cC59M^c8&GiEuzlAj|EPYevaSw1{RL92+K%l(O#uAjHT?yk zpB*D8VRVc!_JpBfs?a@ZYFW6miHtskHa7Uip+E?{FbS3<9)rc0JbbE*LP)|$R0iXT z8Aen_eQnTQZXNH2vvezlAOdCtlKM;nQ*4sG0OrsLl{pOkv>{J`SiJ&4riiCl%q&p6 z!#PR8ihjmWATZ1xGjhX%Il!C}_*+q;5E?V|bpUgOXOp@ak#D;$g|IMwG9e8yS}A2n z&CIBw$lH!6o`eAv(_I>4P}`ikd1RuMu*bmg>YFsYe$Fh*s5yN8cx;$7#M`kxJRTa# zHtm&J)B)|@(UWLV-|!|mi)F7c9;yM%i&;@%#V=Nra_o3zO&oLr=jP)5h}G)oMYc&q zl&Hk?nT;sN=+{{MZ$oa_MrCo-Ng5iTVf2^s{&y_yBQw5C{CgV9)LYT_QS^)Wnavh^ z8QRfj>#t{=#~fzEb{FN^&RJWWM_9bMgp3ujh9Yueb5h#cSi%IxLe2{%3r%GvEYm^&URAXqN#@!Usp5-lW7?3! zKX$^X?2Bxp$#vOp$n&(2skU6ovegBf~D>%nC5l{%y}8P8#B^R>KBme@8W52s#f znitp}y~V1VroDFMsl48KzMB@nGyz$8YWF^R(p5N3dTxu8L(*?G&GSZKc3l_v7OwbA*{HACCGvZmLIsy)BxYPQRcX~r)eW9 z$|dqnT57gEvhOLXa2(H|4LKj=PF|v#`B(fe&fYn?vM1X2jcsaFMWQ$^WHh*+;_(v_pe%et(vu}YV1*af9gAHPIT++mkks6x#Lwk2U8k_ zt=Zf3)BMIIjjfhtaI=&o4hMMDqP_-_+*uCtRdiYt#&4iRQ_U@_YQ@bM*=%&db8tiq|#+XZ-xjWZ~6_skYP3r@Hzc2pE>J(M_X9QoRjN`KL`+b~q zfNhI~-+J#U_;}ga_JoCHU3plzQ;SC7uxTo>lHV|0D&jpj(X|cV1ZL>P&^*m@l#vtC z%g}Y^l_0C`S14@-ULE=Md}Tx+mPuRd_sgJU$d&VxmPxv~k_{6j_#0(mR-G!KisXf& zgLfn0yg{r|UFimx+>>@?@5D;6o{me@KXJuLNXk+WrKBM9aX(Ka`~fL*Nn>tJ(~~6X z10{SC^RLCWPNg}?)9WNlo1Tm5Wx?9_xTQJ2EFrS7kxL*1g!%|nBkY_5v>a8^TD3}o z6-r;@E#aj%>|^Io^dB^_EgRwrG@BJGluD8cl4t;7{+Vk@+s&ktOzt}Px(jM!&UyS?8L6p;_+V5?z0`F4cp{Q94q z$M|0;PtexZ&e;i|1>j(3{kpCARsKDfp$O0c&~9LuGhT`*BHN7gS!swrFyg`;qqO!bBlFrf4 zkT?P=`iG632MvGM-S?f1EP%gOK+{-vkmizLk|SYK5jDL8=Vz#mEvP;wsoa}RTP8Puig#B zhOfHs5)s~->A7f1HLvFfZDmzb>IFagTw)oC9 zhJ8fPS#W4?uT%9=m$Q|V zX>3yCat=Of^BO<&Qik%WqE(;=*$$r7ak%S*JsCEQ3!ZVa`>!!9%5-Rp7KkxIqu_|q zYAJyP(cplPLT`#8d$6b#(5mHeq&N)y{b>BF_Xd}$v@_inzp|Ay+0Bxb)a4agMZ+m& z3giNXrp|@LK&6%;rk2IPAx9TiOnIxYVmycZFvliYTN!F(%96o8t&0C~>s6Ljx&y1S zIn@QdBmlXg4SA(+O#c0$MFp-KJ{w)!Tq%KPalE+lc)0KvUoSLErFaC<+={ZA&hN(a zj01sec}4m(PzL3z8dCv=33!^kLI5-j2h?nkkK?>kb{{py5s!?va7u9-nKEE-MD$6B z-Lx066A%t%WuoQcf>ow4sG5Md5ekAPzis{g3il1fU;(okA4&@tB;W*c=BI#aZg&g5 zl~*=UZYWOU3YSmT!uQ+$UPg#Mx}?EMOqHg_3hNo(Lix-i`Ed9l;WAjiEW;vk=GMsoS6 zgc1$#uX>BBN6QpP`2!tL#FO`;bu<$SxFB+N(QFd+DtOOyzvQ{jk*IX?s`{f4njSgk zAW$7K0%bo6>}5&NU<>X%RiUc@VtUI00o>UdO(=R(Z1L_KuygO&$~5TGaWTB)kkVm- zki2Ru00WK5`EK)Kq%QMkml{0XWSg@IqUMgM2r|kXEWIRJ-l_X_&cY3oDy+PY(D;a& zc4Su=4L}h;G3d#i;IdA8+3Yfm#U^>2)*DmEl05+QyY zfU<>w-1m8wsd`{UOC6kVrM#*doQrot!`&SBxomKRO?yTSw*igav6aoPkHV?C=_^x+Ut@-UVK-u*26J(QtGfo z;J7u!8bEkJu}c3}-B7$z9ioK*O|diiiZQ8YrTQf1cIN)RY&j2la-0)j;1SYHbrEq0 zpJoUJ9`%t1$cE_CoR!LP+rzry8mo_iq#u8PG>SA*CmPD}wfsSFpL#Gru&kqaigC$p zlF8A0u=~9VYc(=fX*_nGex#cH_T>ve{fd;uqszq6BSezIlK9~uMi^WYQHeJ-BC?$$*Fn#{#j<7KsTS|r~oVTkyVeo`RI08-3@ z5MUDTa#c`7Bp4PnojFBDn0fgE9SBpzKG0|hcE<-gn^3DK?!;F3@+~|F4KzH4QGC4w z`Jqb)It3DRjsAGXbJ5LtjvCgvfS;d8@})w)zzPME!UPcv3nZXn)RtS%wCZr)M8jwH z^ld++1_;0s7_H_@sPHj&&0w-{?pqj7-AWdOBfd-P>fPWC*4t{bmo)Lf*D=`#{_(Zd zyc8Bt%OwfbM3sJ$w+aaRr70dPL&HG8@gi>pI`nG=mKj88Ol{)MJy1b}=Ne`sxqSbA z-|~kpq$Q?@cgxD}ML$hM=$?J;EK)EjL25+G@MeNaLFMj>`yoN`Lq=O(S>l2HY4kX7 z-pn0R=Y1w2V0F92GXpQWwovBAKI zQswp0dma+Ms7cqY9TnH$0MfcgpF|zH5wZc{EN6v``oNW=c%!?W0zT(a;5(~g>(pqo zPll5*axTjW@fck1WAm3Hq*XOWmkcGvf9BXAV@%qHKgZ=7Vu@MUWLS^ywAADQA2wgyb_;#0dn|}rmkM)!Znw2+wkew zJeO{WCI3Ck-OAjrnU?2%L}DDib&Pt_THfOG5&Yu!;@jznC6or73B<<0917?r7vE-n_1#AmC4@@wyZciR=|or@2;J7)J}I<}Hrv+q%OtUw_E=ej z+&SFMa7U)%p&2zDP2(XtoLZHUp%Mb^KoTQ~u3abetwC5V9`GDF+t?P*+LmZrI(F#! ziczv(ddbdxPL^$!LLIWHq`%N#o>1>vL8#mFibD(ujd98AP#YQ}qA^($A} zWj#G@9>d_TELvwt6c@9wxLKHhA<+cmTHBiT;NCm5fFe*_I3}~i$aLuK9?j=J_<(WK z=mVO{;*7NgR5(E@>J)--0W_n9pB%oS1j)x9@zjsjUUx=ay3Vy7bI`Ya{U?bPPJdi! zVq<-*Ar;0mJ6pte=sLBG(-sC$O7yAv$dA~N120&9ZBZR)(M8Nxw2|?6 zI0@cY1(zt@(o6u{EX&h^n5`06f0mA_aRK2JIopO>ofS4|#jjSL8I0*e)hP`?egjC_ zAG=zX#c#edwkC$6C4%lSaJ+*%&UJR&U6nBSPXVq1kV8@Y28yE|*HL)9%@Kp{@0vVD z>rCmu-0$;t2(-E%~C>)6GD>J=*x8_rJ`Gh5PtL=KQ0k|(G zQn~k7O+3g&c;CYSxhGV$(FLVPxiw1Pe@233pDhI0=7V(B<*b-jzOc}#?x>nQ=!}VY zCH;ORfA}Li#2DUj1J>`IQ)Yos>bbh52gp6ToN9)+3?Hucgg>ZU0{wpBhdcL3+1{fP zBl?cL#URYn=ouD!bsEt{2mZ({#G`~kgUHajCXWRaos`~%U>@xgU#4VFa>Xm_@yW*$ z3z`B_r-JzBP2vFf=#e%I-|SAxyhiS8s*eg}=5F31VAmR0HJOjqj`{|71+@Z(Xe>Ee zb+@o=N+D9J;QkNWPfo=T&55J9#(+p)KYZpRfQPw@A2v z-QfPHl4EWo-prTMPf#ImVY>ebS>y z{)r~4@L(I~baD}3zYX+l+#5owqe86Xw5)4WhxdaoUsniaq`-I@o zTiK%;oNPY66S+MKC8svqmYDQ zl51n4(9m`C3k=5lS(O|l+H2z)w8$5^h>FTv*QTLk$$1=|%ULETd&{1Q%q?=-){j<( zF12&nDx9X$!LmcEhQZV|zbGh7`7CvzyHGi3ArUlBCRuTsLYA;NbCLMiD*)Ef%qD;E z>sa?j7Pv@YZ@hv~zVy`xzh)rj7)9={PiOtl9tr*=W*+@B&e89OK$S7s2&;^W&y z2F%z1x)YF}_IgzF7D>sgSRi4sKY@>+?|O4dp%0Nmzrkl@x9>Am>m_A_ z0?fw#u)Re`>i>mXoKNGouSXs|f0IFXG)r zp^uQ&ZmqJshr`jqZiXt6M-K8FQ)%*;T%asp0lZF2H3%%Ko1E>VB`b z2ny9+^KCrdchbsx@JC-E1XBVubkMD?bq!q9Crg)Cjd3^mr|Fi9NL(mW-8VSFeiJ(t zUAm;W*QTqn?oZeQ{svU~vwqlB-`1a*7uJu1A0NiPdI&!VkhL705X1?JNcMJkm{9zx z16j|p;k`AEoTC&%Qe{>JOT{oTBKx<9@MhW?E7Hhg2r^6!0OFhYd`Yo4(# z!bO2xpNGnpMCE=@T5QG5_l$hrfH_qBUUOa7ph4ik&m2cXwCxtgVrl!yknSI^3aqm<~#JIoeQzVv21Cw~1YYum(3tA{M6?Qo^8E6n(#Foy{MfzxW2znQEi6m4G1parZpHtx{cDq8Pj*gL* zX5Fn|OHR!XpaF}QiqtIus#tCS4MaUq&9RzpS4)rVtV&{~mJyZT3oye;gXiYHOIPlE ztAGzJUNm{K-f_%Au;wllS#x7y?Ul6;joSG1DKspvG-8 zEk6&CvHK32s*s)@rt2*)P4!Zhl=M|{VBX*&$|`wnO=UB-7ihuMOCmya=dp)o>4-MjiI+A&Zq+UFQXZ zMt4&U1)xgB>4sjsFnh{0nE_R0o=*NTxnB#QoJ+!*9Rz@)3U)atnJpywQBvQ`!{OJE z(1d&18+WugYtpNq*{Q5%5R-}DRP6RfIfQ$UTMB86Hvxg~+DJPkxqy?H;wFguSB3E> zhbvBz#Q$>AE7B4t(~szH{XJz;=L*VIC+bzTpJ)8k%n_J>f|!9f6I#vT!vP-5@)p?2 zoWEb~;G87-+cxrgO>_;vbpV+iOJgm&<+nrvs$ehD@DSlltRR6!q?7YyGU+bQHFYSb z`W`{Gg$(K|H?9S)AIEoKP^D3SQM6|y_|c!MK_Iylvkc6VLfktvjMUP*a5@orXgFr+ z*%#Zz((P=2e8Ns`n{R;ck zzr{RGh*XGIZBe7J#PUw!7y+^J~i{IuAw63YQW$kz>?8A#n`^~7c)CSut&X%S0ymYqP6XkS>Ff6*} zhfB4~!!43tAW4#NP_VxLFh>9^cx+{0prVKFEpp|-?XC2L7z0XePTZTR@|cGyEbnIq zb+W($Lq2H}bGoF^fPJdM`4KAsWHvTZsh;buLn6+3yY%BwgK)1v#VKve#hdm* zUBlDyL>2fE=)wv?vYGmvk;$cl5bscUD_Cyh%9;X8QCh%bMhz?8;deN}9hm+wca&L3 z`)qz~FFJ<4CG(nVt*!WSb{4U&aLvEHmLAu+!0*0*i-9~>=Dj!RTP z2yH39r<97SbYxN-$JrdI z{Dk>TrK{6i&dmzC7@b)#F{9#DHg~Z{e)zi*>|SDWxwurr1dFwGz!UnZc-Lbv`O{KX8`oGzEyT;p9$OlLfK+H zcMuz(6v#T3b^LB^(0me{yJnMAwta1+zv#A)5ew!P(!dW|#C?mg-+WVuE1|T$B&J!0 zpFVZ&*%S)c7;!D2yITm;kI5u~Zcgk}wz8V9q4Y{GWe%LPxJ5AAaNFXoa85aH@7E|7 z>Fbx7bsnYFMd$i)n6xU%Htv$>;nwX_IA%0~<1*G=iSYES0-3s*;9bX2=8j-zG6$oW~@ewEtil3 zX(AHgXwb7&iyHYw9n9`r9DzE`whhluqKm026~=9eLQ4&zTBZW+p&T^`Lk9*(14p0V zc^RRNt+ck|upy_IRV(MyDLVdhqhKX7*wX%*5-eViI#<|XwG@~D_N=*|55?^`^x_u zk~cd(zIpyQ z12Z{7taye3e#A7KVdB&CQl+FKya5P>5Pe1ddV`m%?*^4X&dQKS3x3~Ks5-P)32WQ= z`<=rKIH5-{fB@4k2;efN2J{26P zzDHhE?p|dkTmsJoc3TpmXt>C~BQ zFWb9IZq2;PmLLnU4#@-f%r#hY-nSxoa-Ixo;kZS(fDj3uw9@J25;nvkS;m+-{2pqo z;gHlZ7DFO8wfTV6IhEiDv(RiaL=rNg^2BB|Y*C5%0UK4zW|(-9Q40a60epy)6cTvz zE|Mis7>CjKW+Qg7k_o(rbs4*XGH&m~9xeW-8DFiaQu?1e=yT$6X(vvIbZC&k5mhAh zJiwSPemG*pAP^J$W^F7$O`y7n3nw|%HuLuyp1^Ge@;T^%YvXa}!V=eA4bLJE^XfT) z-%Rft)YbFc5GI`HSju_GR~3jl+F+97ltR%l zFUAHF2Blf&ZeiuK3Uq(ih+q|t=pvM#JDA21#!nX{pGUweR-qNWZuKfHGbg7sOeX32 zreoM;vf;&GxW4XKbdwq5B7-K+f*|jREU_+fc z4i89PAC&ScgW#X-1s1Vsoq_02`AyAl#?+*}MzOo}D~bh5qk?dPFiH9~7}>^N;g-b8 zmr)9dOpGGOKMZ9LH=KWA;hF|f8XTP&0b;MvO;B9HtrF=--pLJpTk;AU45Vxkb*CQA zho3=@BFBA;9C@wIYu=xqTH2Bg3>)n?;}NyoGMmS{gPXV!zdTxzmASUS46==Hx7I!Y zH4Z5$^ww8>;_L>UW~QGWTMG|%C)_J9OX&Y|rT@E1{O7v(zg+G9QyJ&@T2Q_O^?w6% zxo0$JYQ^t0R`_J;{fRj##jA8rOyD8Gx%6bFBySrTA5;mu%~r5#b16^aid#9ou0j-u zoipKh;M~thwha#y2Lkg$%$`|yNWR$EeB0hWxL@R2M=xjSJ;Ud_bWgivvPt>n^=QBJ z&g|io`GS~yoPOZoOYNN2eqMIka#84L`GU|Yk~X?W|Ni@Q5Av;KD&}4wp9tOavnqst zz5Pe?^CNr+`YfIsHB=IHUD+i2=bKt9cXxM|D`mWB=d0n!B)7)5Cp))CcHa&O_A|#x zn2Mm?n-*azqsJB&hv`Ey_eU2zy;=FNV%zTo zn!_3TC$YAGdq*QwVlViD^uTe&O&|llDz04y8R?=A zu5Cjmi&qB{+t;Z%r}8#Wid9q36`ag=5DTS5>7uk^$?6>^&Ur{8zBwbOvtk+4;yrD- z{gO_E2@Y0t_{8%X0{!JWtupIk()g01Po-r%%_a!CV4{5PCEjX4Q%%-uiL^*`5NRO;z zA&iW&j4>+%2)^vJTZ!~#C{(!@A&nUsJAiq1rNTY@sz5!dw+G~8?(~y%@F~3JQt`K_ zd%QGE=ia$dBs*~1M1>qwT|w^zncA9zJ$3f`-10qRZAIF(a}Gl0cQO!y*r0%2x9RdV z4phG_Um|AnLKA?w4=kHeZ2`(m!$pKLt@;i!DL~4TJpzI%_JJdN8kenQ__hIlc%rl9 zzVn^!fYE(0fu-3=!_pMpVQTI|^&nj02bI3WrFK`wNlr8kHN$jR6pwPrK?WJ)!l;fli`Q3di`f>aK=HVNQK`( z9YM+fQ>9E?EpK*za-1;gJBOto7l@0ExI81zGn-shWd`Yy_P@)rHMpT}Is71MT0vO_ zB2BXoEUMy*q^AUXS|ygKqQ zY78jO2S@0zIK!~It2GFIm9ScC$6hidguZk(hh=t9+g&aJ{n+K~KMea#FZ{W*5Pbr~ z#syT5X5px#9=@C%i1sr_>x!<_!8S=uFl=uHj|MJ?b+DvLmQ>Wm3%@(%)kzK1KeQOb zzeK@w!_W>g9XxSPYPNj&S4(1gr9+4$$mHxwd6T{+Q2v|oALdT^Vq==AWQ=M*?>UJW z>%)~AiSwFDL~|SaZnP;N?|qAzS$PeW_Xgqh1BmM2A0Aw+#4g~+k31!&&Vkf_Fo0d6 zw4QbgDrp3Io03dh`dMV5xH+W*>GmY)vEq676zsxQB}TgC@uBYp9*M-h9R=MsWTwIH zkmEiU?i~aNAT9p}Dc8I{T&-hDg@gM}pU3u8Fh@dQgbaQN`vHuX!ZxBKMxz~!@}{Pe z*U4lzGwplcc?mVc+4~uVC9Fs~F_q?kz~>u1k{4qZOJm-#;OpV1bZ4}SQ~@MgNqnsF z4JRcVl2LqdsTnMDR^HzL1$t%n4kUte>UUi;n5_K_z-pWBX~n`w2`h=po)1=W3DVDV zJg>G7mQ3qhINT#@7ehEQnPjr;BL{GvtaJ>arco`vjxW%6 z0gUvs5E&nZU=G~S1-;c3!|1gW!rim_y7o#SC&iC3WgY5|Wvv*>u0><|q zYSQ3O}ZU z8B#YDRxb&aYIyx+Q5UkCUBUnheI-~3RcvCe-o*xmQB6=qzS<`&L=!oU3IUPw)e}d!lWTtQa=>QYSsN&YmWCSvG+vd!g z|I(&b!eh(Hsi=?rUaq2YToI`k@{#S2+G=e;9Y?{`eN_BobSu(n7bbK{%ysFt%9B?~ za}UtUQIg(4Y^=8}PNt$@uNbN~Y>%o}VV#XOKah$gU$lDcyi&K=VGI)v-$j|yn(B4O zWluh!8HFYx)55S7ITI(vb!@EKb?M$2-plt5q0dtHH4#xHyD#xogNy}~k>t=Z;y%6m z>U;D<^CAlIZZ6k^m~x=va0URE0e=?V%sPLpZoauFSRmXr51$(*iVxrxu`J6<{>*G4 zdM0#SV)iGx-kkpPe$=^^RV|LE{eEGn2@HjVfWLm36Qy!uq z!))eN$xu}`R6|5J<}Oe{Ky+&|js{%gTR*=QvLq5)a_D!FJ}eS^tUZN<`1~SVFWx@~ zcWi`G$&p+8p!V<>lhoGIe}1~GM;pG8g)wkt?$U+y^OOzzEb1al<)th7TzGOWV{s#> z)ay+VSU+`+u%kJqls-|A7Eu>woAiZ$#GFIw8Vx=2(9jQ@kiRavvf&(L{jwqLOre{Q z#o|p*mx>T;NB4}MuGdsdC+hW)9A*T(4@{NJZp{kz>0yWZ=t>a)uB_g|XXvb5$CkNf zzRH8Jj|3lIz`GI@b$rC~xK+W$5e<1Va4*_Z0U110T46I%aTS_dz28!bwN4`_k+LDI zd7V@CF0y67uf?L&Qt2W=t2CBtK$ish2yc>CY~~t$mg65N4iNyIAybs|V0C{E{HsZd z)sc)PhO!rf_h>T*kP7F`udoPAWW{t%AgI+b{J5_FCzn+U5Zca z|CL<*)&<<$)!)l1|CxSqDCvanXZxxnE;OfP%(;mC(UE#v*PKc~k^-$!XIhn;t;cWw zYdgz=-TP}%4Yd3~jVtyl-_M8j_x0DMpcGjRHYq0m8Jac^iurFS{x9NS=3vNc#OQvJ zuw-CRu|8p*$<75@M$o{Hyu{$tE6x47b|;_rR~ zOq} zK<@pc0XOK~fscL3zuvJTT~m11pgat6O&zw-vH57DZdGdiM#TP&(exLih5uz+5g3w} z*?5H1L;_T+_IJpBpX_%1zK@5AqRft0Nl?3RYoL|<+CMyVYy??s4TSu^CFwGKF3wq#sUdQF6Fm-RxCI(ifZ4y|w!N@l9eNLS`vAiURH zl;7_-H9O>qUDA24$nH}I`QUvrI9TTe7XlfW5^ji`M@S`2ruZYpPb?AAe$R7`hOma0 zck8@PcE-5!1eH3Hq#R2F8QRXlY8)tovIF0vzh#vULd|^fDbMniBQb^<0{^Chlo*lq znh$lE9dV`bYhrI9T0)Xc1z1TU3CC9t^dg)3nnvtC57zYHRrD@I0Y}Xc;WQM&-sXX;XbxmuT;lHD=!hH@!9jR6(5Rpn|SLV~IF4 zDkyJ2j0evr`t0IJ;V?TGJX!NY7yfsj8heciinh+?D z&U3WOTaQ8+``IT5zFlpvgIdh}H7xh{X=s`_3Y27s7ACg0a%f%PxD>B|c`kLU%PcOUGYSo!glZH7^492ZcZFFeci9*aX=Rm-M=R#pNG&KbB z9A_b6A;{|C*U97v$UD@m<}2$D)|rXZ3mTjlbkUoKW?GaJjsn1(?#dOu6Ms~Z=x?;Q zrArW!&7=F0fna>(^o8aNuct{utQBppG$_&pC-rY#ETAg8Zwr}z>MVS-hqCIPa}I99 zy?2c`4_e~o`IIt$HYS2igaf||a-GQ1*#9+n_5Y5szZ@C<8)EAyj9Ku0-3hMy{G_SS5u}CH;C#BIuENEniX9lg7$40mw*8G$fh%(9ibBhE zl$eBZcx(zT6cR8)BOyq&%_gG9=-5X@Z=1Zly>#SbXabGo{d9761`GIT_%TE1= zinn{a%$C>IZt!g@bVYEy6o%ws<2Wc?jgLr#gqv+Wis!Te7+T2DcEBMj9=VF5-(1=%g%;W(Jks@>`9Yscl~o4!vKun<}I!>o%jaiuL*StUdRe^48r0DeKCPv>+jM z#{!|Uc`OZR(tqZo;Wq#$Q~$_+rW?f6=V{)#nOD>H zl&*pOSv6E2L8sMXtZ+*}&Z_^zw*SpLnZ7kw>pAS^Fy(Nt`L04Vnf~@s?Ru#NFXbWr zBC$-BJfIq_Z=R*A%}v8?|8)urh{qBLbpe#8*bkIB))=MF+4`W*Odg&e0=+N-DX0Y~ z+$~T}z|WyPRab();#N=lseP1x1?X1f$?|?PCW2-^qb#6+qM5cT`tHLrr{u-SB`MA1 zZBJ)vc8~pG9lh-j1%98jytC{82Gsp3eYBBmFg=Ec+{ODm*k7z~^1&8biH5m91 zY`NNQWn-!f$}pgZZ6GQyDqne@JZ7xEPlCohJvTM_>(~2C?_^~BPTbhg67yD68o64T zmPLTNzGq+>-pT-{!mnV#;KW)TELo6VMyB%>@iER9JLIzuvxNK}cN>5A@>8v;I%-2Q z=BDNIM3q19S-@g6g(4$w1C42|w1gGeC+ zqx7@Z2l}S^A;JLqptAoh(H^;z^bK+9^R?+6&WKc93yw^`7+zH$`Z#NaX1i4<%*BOS zJMg%q5v_*R8*8I}GUB>|n!!$`6|qdcZIOs>APyjxI!m@F{acy0rnENKOQ^lPKA!`F zmWn2HFXYzINvKDlQSZis*EX4X%%I7{RDC>m#C-a+9=k!Z1j#*GKu|clMoMzenKUq? zyWS#*1z$Z7I%1I2nUqA@lBY>p=)`a!-$`mz{U+C!g0e_*)JzgZp)~lU7o>y`K#H&k znJ>uXtI8d0SBmH?9%g{?d!+ZB#=5(DGX_x{J{tXA(cf7DK5VdonvKheyKQ+S$;Ei7-nu3gXBrRFSj6ULE{|$ zp02AauNokDk_3i94qzZP2(KoRAJUDNUm#UJW1ShOXRp>+QDLY*9u!2za1*_g0+qs~ zHJ7`J;5y7lE>-3Js%~c%@ zhG}`WG8anUi5yaG(HMBSQ+a7F7khdggmMmfu2kwa1_IAgaEd~i11$|*zT_-{DI4je z1Txt*!@uP``WjE(y$rCiv_gDBWvvt#%JqD#lwNZFNNlS!raWEC==ImhR1aA#hmMw{(p^Z3t`1j);4ep-wBx0n zF+JyEgHpzzlRrg{M#u=TdBL^+0PV~AonA|knF|+|1q!c7$w_RU!jB;7p#^aP{uP)sYTqq8|B6WV8H1S=)c05;!*R zS2Wn7s8jHuW4V*L?56r;>QEa9#n6uw)kd;8PP30x5v}ii;iX_T@9AeIC2xhxeuWyh zs|CR_I>$9OmfYk?qg5R7$q2ucArRb!pti+j5VMam`MWa7w)jPh8K>u_K0a48Z_4%C&(`(S32q<&wyucsr-H@@j|mM{1YY)UC&DIKaatGJYN|Jt=J95AAE zM|qIxO|xDkqO!O4)bF%&$RgJjHUt67sjam7CX-%&xW`JQVY4##Ef$;I#YU4QVM#6c6Tu{^qxI^Jr4L({7rR2qo@WI?z{T#1(>$H)gM)X097hm6 zDehCzj0TdIOd@xMrT%ni0g2?#txpZMjYb(*vt0 zi80&ChYLd#H2~S`HfaxOiICod!voHUKlo9cp#`?k;K;jP+0lUa4T#1(hbQX|TMIjI z;0n-^<^|?cpUnrvuy1VZD0yQm?Ty5@OSD$k4zr5vcU+BR z>;G!cq8k){#rfwK$1|e`*d^u&0s2t2jf}alHn{iF4dm4_UUe2)yy4{JvP1oux!HJ6 zJ8d=IW*1I$9NCOu@UYUGtEhE7S!!xM8NWaoKfy{(kk&S(*N_EDAJY>AU%DQxd(eD% z+%K!@5UFi3do%;9BdMR84AO9w!sH1+z&%j%D&83n-K`d?Mf3R13EIJ?c(=Ps6+TKUHz*(@Yg&EmlK+yuOKT%k>A_ zK*dW9Q{B)twr8#O;duN)ymIJFvfJf;!g*SKI()(m)ZIqjh97VqAQ~Vp70uhk_GVm8 z=wD}{qa|&m#)O&fq!D{=fhsswwAN$a=&)zi22I~GO-R<#$KmmR_d!AEz1)&{LNfyj zC0O-h?0k1jXgwX7aNm@1jV&5x-UE1~dkNan;au|Af~fV)J4CHHUU;_K?M6FRITGC1 z`apO6zU+I|^&$9d1@Z@wpp&}GDOs!X6!YYdD#<9(s(wD4ZvT4w75%H}yTKf%XU`E{ zo?MhqY({!J$|`}sP(4&tF#OVJn*v1B?mL6z4xc-Q4{TLUqtADaT!ApRSRhGZ;7LvR zRLR0!-uUs}9|#+_!(Q!}zXpuKH%=u8p7C3fw8dv)vT^df%RTS}r8eiZaeq3^DzstY)r8`>fKO}XkSRgO}wJ1youTqlZ+6rt*%*Ifc8kP zG{=blz5>0WXo{=aO|bratkp-aRPhR3En3VD*AfeEHhZ#qwuF;*^llbTZQoAr#2)MQfxfNl9)oD_OIS3FH;f%J z0!KKkGprIP7V97uiWw|{=p4T)NEQ>%J_10xLHYz(9NckeK~D;d{t4z7e;uK2$KW!@ zkw7pbtyrV9MfeQ7p&%d!)7T+x4!dlcKB$M0Z`f(5|rLilMr_=D2f z@J!4;!m(<{#GKG|jaw@3F*o58m`)_~macO%?8gQHpl+QUO}~uP_yFH)M=WpFK7`5$ z77-a?!62P{m&*>lknncnS3B4bcgB-q)44Fn?VY_$`4A^JpPQ9EQ}vW~`WB!^!@77x z!p}+>gslzRfZTxevQQ|K;Tp&h;5o4_@~?=eMLjsfVuU+CW3E5I8+~hc9F|DhgV!|T z+Zms^t9RUuccEy%(|V$~MfvtSqz@tr9v^wERT>j-Mq!_Dj7##R+#%DJi|YoDzk*q- zQO5pw=`LG}u5Ht34vjGQ(Wg(WAgzld-*&rQ!Jd`MNSPZSDU0*mtRT_v^X!nhfo83WM5jN>Fqv5O*L^^Yp^LL1uWn>a@2Ka_|-r^KU>qjy;4K^ zw|vwo(El9b=iA)wUEOh3=s|4LrpvI5AJb4#A71F~>gtV6C*Z&t@UBJsmUVfzW#iCh zv5w3hE*7lg+;%!T3N-$yzR0huKoJ=<^4>XhsI^@Qu2YP@R=kYWv5l6;Xm(a`Ytx zT4K}`;{NVAOh}3SLZAc8dK@pVE`tqr{GzX~jGu(kSMr8y)`G;{+dfhESD1)mdo~Po zbU*qd8Y*qi4UfNbV1+#=lkUtGUR9F9!q=4zX6NewjXrrRDJj{VbxKFMjA-*#)b{M9 zCsUEg53TbiR-NdJ7@dbI(2s^J%zD(ym?2Umj&N;vX=_gL3-V748lx|OUb{BS6pmw^ zv}YIt(w}Z?x$zE zx3_j{c6PQOxaknc5eO@~LJ(pUs3r#pkjFT%odlQNKbM@V3*Qy5uAG2A&F|i>?SMzlgtx z*Jf?pxg#5*Y)Lt3&q8tp!W+F6p}dB?NYCa2?%3~J@+x0nrar1BzbW730KWcbtvAOv z100Vn#RvQ%ImbH*ay{4wY=9f7cUQx9=uhrd$+(yvUR?c&8iScCx%Z71RS>-#jf){K zNL?7*n7j=JCv3Pa>&0?ml2+pO$gaQWZ=|RC+4uIX%djsXR?*8>&1Okf1BALE!aZ=} zHn`E7TnG#o=XFf#CF3af>PBf5b(2dP#}+tA7(GxsE#W>`A}Di`r*1gUsvOrWynY;k z*A&t{aCP`wY*+_9Q3n{qYSxGJn4=GQv9vq7lqrim(bxk1OL~pm6Uy~RRx$-e{-NEB zR~hDOCN!>VHc{EdbQ@QILN6NUzg2Piz&nB?f@FpWx|r=APQX3J1Q?IJ!#NNs6@qMU z%Z?YXkNqA&2o>bX&wKHB8oa~oxaUMatuQ= z>h9Bvv>=!n5&lq0=l+%O9s9?KxTOe_BcSich@8x9z=>R(&afn6Ehdt_5MB+f>&m6> zPG)wAsr7|2B^W}Lz;0NMIPwI#Pl+YO4q^lziOFEvt0dl5Qx`;(A6SiwJ2NkrD_kas zGZ9hr&@oG?`9-N_N+Vx9X68h!|QJ+bARJSU2xDBf+4CNU_;8~w-I)F z;1gZOKeCu34BZ}dit;izL)k^}Ht){jO+8USm_C!0Fk>|03Zs(Ly!bN_(G9hs=EA$! z_Iu^lI8!kvmzF2U{&PlqcE6#~4sU;ni3e%JSJ3v_`f*JBIujCf+CE3Q`of)Pl-QeX5Mwkw~m8Wzlas%VdM7PR7zACS18KIi>kG0EffL{ZXiV{f<15b>B zU*;M6$CT|$#Llf*&)$fSaLf+Fn0$`o!8)s58jLf_7%q$%!(^N@-#`Q308dWdrdcU# ztS4kQZZQLZ$w`qU=ZbMDL*Rkq73RE-j7b6a3D%*PCmyG?TGZAl*MrJ~7-Z==|M}VP zT-#edwg<6zeiR*~FQHqDnp3tIn&m5{@!O0E7f!TZy;0g@V_+||@R`#jL=wX;PS3I9?}>E_S&vx6LOX6Q27 zf2{lXT-+-vPtbqOfwfy^`K=tdt6NH@8iQoPm4BZa4sO19ur^x!>Gl3DiW6u#k@G0V z-d-V&)xpoA$)e7p+9KH^zg$JNG+qTSNjs^mxm2`Cu}a-?t?pm$@nWkyu1t0;F@S+b zdCZ5m2!#TQhQMUpEWr|h?%0uq3?44uWEx3>%~E(v8rb4V82WF-B`VIOm| zDR~NDWt>0S+6Sd|GHmK>%iqwaQbvcDN1>5DIN5`^vJD%^@Sa>qq%5%jCl=D;`I?jW zHar^>;ZL9H3=iC^_c2u+`GHrKEFIMy`(g}Z$1M$*@-p#=t6(cFnEEjrwaPS9Va6$& z(w(HNEGhs?njCcA3(pi3t^5+|p!y%(s>K1rOmzRsYJ!uZAq708q_ko6VhBUSq%=S; zmE(d?hY%r+5<)O> zxBhK#UZAVdaxUICt}D=#9%}K%pA^>msv~)H;v52PECLHS;+)%szqY&jEYsDR=b^g& z@jJi%v9X@(tr{ZzOVkB<%I9BqMcDth3!qn^r|RN|lGx(qCtZuwdBqljqnl$VEgg7W zI^PkLj8)z=+UPK!5m((9$bS~n=w}kAAj(MKPAnC*&9%v7>Yrm~>+k5~}W+EEe9{2i2Y5S&APKbcrubvWXr?ujdO2OBo|aG3R-{uJ zv)%I5+v%SrRz9#&$eK~=!n~d*Sb#hHsA|22aJ_%@8bNfA?W5@ux}Mf-G=i2Xxh8tQ zF;9U{rRJu@O8)5+cSm09I{6Bc_cn#Lv72sDD(n~&&Fy$Pb(1a3!RCp0@CMB|L=Z3X){ zLYE%5{^y|=*@Mz8+phEtCtTiH__l}(a`bdearPgY;)DW3`{D0X!5H&D=AaJS^^@I0v}LJeUav1(D|@Th*zP$5D*%O4ZYE)#;3sI_qMy>d(Oa>h36F*03_%?bp$X_;IZ=c#>VDrN z7Qh%GNM;8cQV7ua2@NU*n;^)3f$bv*XZF_OgdRR%+bCLnyn zB;?`Lfm0!vlnPaf@_;G-Au_~OAzmIJ83Z5X7bIRJkORZC#~L_O$oL>WAEykJRR~#y zc?@OFBjkiR5hON*mJziw;eakCD5UM_)R0z;J7Eprt59hJzI~?FUw1@<@U!9C z|5|~$5a~_bAZcW};Zuar_f2Yl-#G;D_z#Ue{~@IjybLZ1<*kLOL#LC<4pgnhv1c7% ztp&EH)rowuZe@9;)9JgFYK6I@YQ?$ZzO6dswqqS|o{f6ZJr&f6d0_(x((kj@Lfv`R zV%=$JB=7*O^l1%V>}`bZgis@}6X1nl?@A3u-Qo_)!mtl4jkWBGX@s~Td!gT%25aZi zzmfq4SVQ^$-4Jf~->S8u-LbXOy+X9&R*QFnbjP@nTlJP)`(raa+XO%NiVfoTn-1dl zMQI$5z}y67Ahh&Pg>E4D!aoc0@5}E(ggy_@hVqMgfiw?Pg~In*hr;*chQbqe!|?}j zBjN{lAmICTFnU7_|-+S%S?!1SsOZq>rt!*7PPqWi>q!9MkU zhQ=`A1m+N3hd{*F^c%t8hd?0a{0l+wh2)q1g7X==m2?BO|LsD+2gWbo4J^<6!TJGw z_lpD}N6-s1J4iRQ$8RfirVnp00467-Yb<3K;Zpd6mM7c|0~}HR-{%&4&lz)4et(@Bk_Z_bK;id1MQC24d~807{52}knjZ|n#c!~p2%nN7TJyS zmB$OJh5&Bh2H|`3R{oZ1pVAHXZpIGgj@b?Oj{a8co**-LhuCNO7WxHbUw^Oa(D9ZO zNBjeOpl1Mbux9t_(011{nD~}%pCVI4rr&eS>^o%PJHzpfJaU2GAoGjy01$&&;ycOl zX*7I>&nWjDYX2tw0~uz1A^t!ZCBB0kpTs{9liYW#{aeTnWSsd0bO3<=fqFSUL59z6 znB{zP?BCua7k11tzxWOS&ln{=BOIT+KMeeeB=d{z z0O0y#H^A|U`(wu-=bK^ww($d*W`4090FZyo8RYo;I6grS00)r^G0bxO(;S~1{}Fb6 zfGb3KCsANOoqo>f zXJm#0z(C}J?*zvu!T~@yasmD);GZP_SNNv=AN2`l3I7bor~B~P%ugDA0w6d51pM^- ziQ&2ju|)jq=ZgNc4ZF9k?;4KJrf=!Y?gw9v&uNJI}4%JH(odi4W9oxYfC`*}t!@#vSR7p6&_j)(`(`G5~WAI89;7!i~d9m{&Yr z06P|o=2hyUy*+*(sr)i&otC{`AVgjJNz#r*v4k-Ki!Lnv3jM#VCZTc-3r7yzJW~9h zzj4BqZCxw7B46W(j^P89$CTu#*3M)}H#G16CAr^c8H%O#6%LG3%QDME?K{~<^bD}b zXC|y&cMUe`=ERkPTAk#@qIuumyxBLJ|T6A?LByGXBDfGHgeq1Wn(RID62Y_NqK~- zkxUe+*~qd+W1iYF75Yw{;~2$FoXTWRIOyb?arw8{3me~6uSc8iRxwqqX1RDRc<-ud z)Nj^$CAP*hI^@#g_OmknuEHi&U$^8oK8lT>NVjzu8mjMP$|=qjf-7gQafuV0Zh>e! zxRAB9FYyR&q$pA+$5WfPpm7*#rBKO@VE>OpW-!lp7bOl{CNQg}QQq7=G-F1sW8W9Ro^vgeJuoq1HOQ2_AQlh(xArA)}l3aey zt$<`)^tJQ`ZeeTtUG`b~DGjgbbW!hTDb@MIwNic6W}kh{XL4t6vyXq;640r*%d_wT zr-!H-ahwYc9%e{?LUhQ8ahUNW`Al)Y$%A9kTcz4Oi%_cC&2L(7ThM<$iw^$N&JxK&Z)4$_4wA^@C3b! zmpMfKd3QDjka^AX=`(d(Qew{$A`c${5n<%4J|4eRv{)fDjiVb)Tj=x`O3+qR!Hg0r zY}tkal*6&!V~UmIc6MVyk_niT)6a_3Y^rfpN}4QjBS}bLd@3wO)4zz+MW$a9K@ads z*5kVq%)VTO+kMe~QUlOs@i@Pm%X(+OB4+LBbe8TON;+Glq{F4;O3r`WM#L#dvw1jl>_~;MwK(M3%~lQ+09ch*K2aLW|ixr-lFka zLnOjDOw%}`pDESL5+7H10`N<>Ai;9q;hzN1JnkwQ2jVV>PX`lmK!(vuh78JIMbBob zGIUX!=y+19EEYv~+oya0jtJ2bvp7b07H?M^{c7Q?D1%H^TRjt!f#a@=hpZZ7V%h;~ z+X+$$YM;^56lry2Wt-7}?-c9oT0sA{GFHg|Hhap^F(|No4~a%)zSP;wkRn9GZ$B&5 zTqm2^*DX60wyJpU+Kr$+1)DlH(evq<8hZl&Tacp$swK$NN*y9uJec z3>GBrF``F2s*BfO{dhQcN=$;)aR(DyJ1*Z0Ps}6Hs|R(+_K%yDHYP0=T^?P<@@pmQ z`P=z(px$&b{M?6*q8~s_G7utH>{#AdDO#c-^YY3nKG6@9x>PNv`x3v}mXx73h(#4B z&>VsSHYe(PatZu_o3;+#X0M(~S-BT2j-s)aJWwI16qoY%>#CoR)YMki^Krot^$k$) zyC&O&g_`-U_jMbz54P^C?fKw{GN|IF!bgjxCgH%=RKPS1V`Wuux9gGL$G~$%L`%Y^ zP^;6X_ZG6q#qHX;LhQ3o1HHqog0?9NXcq~Vh?fSf1Rw7xLvzF>)=L&3vkDVZKb^o5 z(?K}fS`|KyWiqM~tC3|6KCQl{&BYg zExX@H&>|#U%xY=LG-TVB=i@s~pll8Y1m@1?I!Uhuw#~0TbUIM7I&GZ9N9o3;U$QMb z-Sg&F=&YO4PqD^_F{5UCR04q=hI}acCEJ>)@MyITG_JI+y18mPPF-5grA7++M(%xX z-n!nSa+#>rX~rkYU{sIgCL>U%X1X|9I!bFKo@o$DxG!xSdXgVKQ}*+C?!9iE-?95v z9Al2WkyP4`{*lXD1KJk9to9wtK7bNtOdcV6iBS(d?=667f#?tvG#~82v^bljtbs~S zBRNgXT9o%P^%C`56+{m6MG#w>%u7$r5%pCBR-KU890O&^$Jj8}oUkt!5}m z1=)pc)O;u*+klG>mJb2V)FyKoSI=N%P-}XBiC#$Y5z3E<5DdK57NkAO6huNfk<029 z&-q<}Qg$_rsX*2^+t|j7?wF*isP2_rrzh*Bu4{kiROj0IHKAtVp+z;$yH?R?&%Ejj0~2APJ~jF3=}X3eM_Y@s& ztaU8UpIqMC3%2T_&TlT*FxW6^n5{#3NO)AJv|x&YnS?i$&nX`U%PeS6NNNtDL!cG6 z#>s|CFpG~`&W^E;!yE@3iOqXnIn>MOuhVCb%_l4zT@q<1bQPKj zy8rZlI1tw?1Ti~R+X;}X%EFA4d(d`aVh6aEU59VudQxyDKC65+#O0MMtEQclQR~#k zJ6@59&l+mV&!?-h4c<_?bnsAn)73mP!pl-lw39RAiwfCJE?z_-dUq?1&N0Yi5)l6y z?=<9#6=$W3>sm807t71WB>~cmOwVC)9GMbfx?#a*e=vWsa$9T}z(!;h5r%$gMvEhl z_)=F_kJPwX7Zm_w(&%^Qs>aToe$sRLj-`qvo{9u^-hRx!c3OVTFZ6rsAa1Cq*Y8YAb2&R{)<Sn4jBbAd5w#%UuPubJnek!Cc zA?3PPfq@NvM?X%QQaB0?Kb|Yu@K-(3&(b@YfDalk)DyIwY_$SPlVKeL95VF8?Ld+; zgym#!$4Ig=UCBhrjP#!?p$08-;j)tt4ikgE&G#KrYMRyAIZ9bK{vO_07lr@=DKVkO z?NCx{Zd4lbQYBOdiwDQ2qyno!pbJepGl5krPvON2H=Ue^C)1DXYK+yRuXII#kan&` zf@3^XRYm`eFofz%fOIAjTtei-!R2qP|0;FJ5M~${_BlJ75jP5SmozX`CoxD`v)IO- z?lxI88XOSXM9Sl`uE0RX5pprw6g>q_m@qmq+vmnZzKY zbLZl$my|7@oKZbC-b|Obmf9{kG6|(*r=+&1(Vte}28mzlyEVoQ4NONgAmCmV)*0*2IMSSm6K}=PZg@(1#KV z?Vi(sB-AgZU&Kc`oGn9GK_?=NLxbX-Uh;#gq=@U5x**V`^VFRiH%zjsOjM~V=R>70 zAEiY7tBR<)b=YoObXrx?!tSpfvlq&Nl(&vCxuPod=gGLW zFW%rDbCZOdK~eE67|JWV%id+S~P<)wdletdm@+o!=!;^<=mL`_y|8Iy|orlK$PS>-g< zX?bQdg1XOr#i686&%Wtq2-ui(SyInLMJ}~Qp`~VA8AM33wUFY!ogHEH_Uv#>Swo=q z>Bq)SzvPt*To(im*_U_r4h4P8PhGgYMPu6Lk5VZFSY5 zo6k9x5{y&4G3-}i$umcJGM}??k*v*7CKiyUkQ^_*T(r^DuieZOtAaE*g>@masPc)O ztCQ2TH9abMA9$v(>_{0KIPmNpan|sXRPk`}w`iwj91K%`ht%wytNL2qkMfUxrr)z` z4cNz&9Ij#+4BCv^YsD6>O&zKesFtYSvnM+T9%5WnS^u6<(jAzRCY>kk>0z8W+czz7 zyRK!EGnn6|KBFN<<=e9Swhk%pv6pP?`IK^;d}*@C;7HjAm}ctNS~Sn0GoeZ+k=%*g zfk~YBNMLS%k?vxQi>CC<%=qa8q`%bouhe^dGx+!L@9`gVZgcLjKhWKy3+%tJwIvGr zuW_+QD+{xA49W)O&Odq{&m<#!BC;36MMM2ybZ22dWB(Cy0AZ!~_6<~Iu5h)fk*}ST zObh0x(3T{ECgw9eqEkYd=(=qATtiTTBxb`nKRrbPoU$(s3{k@tVc?$`&iVdI(lcIJ z%^=NC!TVM~ytbBrtcZzKdb+*tKC=rGy1!BLD9H7zwqXn9MYfcCMP?HoEiX|17UQmAdryz9+eMwh=?FinWxQP?Jl{5)Vv* zBU3p~{KsejGG=5HXtE%gm^`VHO~Q-H5|%W)NN++GA0NO+*oJ?w0|c+Si1F}3lh{58 zqiJ+_Y-}v_o4h*rpBWm2Ni_vmd^5wg$h%=EB>6gq5x}_{EC*O}x)kGteGMXr%sHqOH*s~ZS%cE~+=0Z^&o9m{4P}J^bWfEr; z-$H8>E=n&ZQfk!UR^?XrOu7B@)m&;p;X&0ei6rqgqOk5<3Wi-?gmxx$Ms#H|uR5=` zO2u2bUgN>0pHeVAy0oIziTS7|UtP6)^|<(c%b2C`$E4txng9%pPwxaIOP^j5WWeyM z{&CG^-7TkTXLyYdvW4o*-a}6j^ASG_OMMx2sY*VlehLTg>`DYVRnHujm=jLf0|k@c z-z}LeixW{W3wvBKgf#T`Z};+8k$Y6I`Bh4CUXzMkBsuo$!jx=g*IXAlN<(O>{TEGB znKGjeA_VpYSOu-%ww=Ytsn&zRl%DQ-FwA*OMg+&aF~$Vi5$ z%8&tL>TAdtZeNP+Sb>IF(TE^Txr+X!D$Xu0Om$+;IJ`VgYM7pt-nFo2p(z;LcV%LQ z+o@a-FiMDMs_|5L`+`eB!3S(fx$UAaVGIPf09C3>EZs0pl}u)4Z@o)$SVLRI%fGgB z%lPHRG|TSX_%_UDV&q zD;k}d#~1m^iM(V6?|*)HxctaxN@0>-$hOb3&hzd*04@o?#VV32Sf;LANWyNzPQnIc z3|{a)JH~K4nRfPf*?0)^OnnB;)H;>5FK(@NM5ULg%%sVcDJ+!1tk`!3S0j^FCtxD8 zL~W|bM$|-EF3=o%v_)ZJH(XD@lpU9>3qI<}3cX`rgIouGHL@vttB49Xs|-CVsZ=2|5t=s47n^EO(Lz^URB2a@RQWHRduS4H1c)p8{azHA%H3vkPcMp(z5_Dj&0#_!whjXynb$a}lGdhc1xw|e7oJMamIDOOO_z+6Ir;5t zU9cXYX!oHVqM~JPbyCo=QQk13U5<#KTBmpT_`rhLQ9BBm#RorO(RXChCRhV%`_@ziX*b zr*9*2JlF{A{DM@(^=K{U)gaUlcv67=<(srG7HW46IEO=J@>Zo#Zc-k7TB6%r!%h;h zhCycKesA2>@TJi{1!mP+otMY;rz-Q9&y|}m4#>7Tm|Gr8sk)*(0sTaDOod3Ec2XZ>Z`0xcujVb;s(z#b>u{-_es}BKdw#-wsxLN6M9cmGdjej2 zQmRRcI{zPh{DZ4)AM6dm^U$xc7#O4Yhnv#_6dF8=An!?0?H{)PGr4T|>_R(UmfRslD zC;#+kk;Wof*1PHPQ1tgUO*Uk#O-HXOH2TP0>YwIbNba zK9;Z8eyL!63_{&*{l1Tk+&`+3OB4G(Hkdaj{`PDfBky-Q-MvZdF{^9ZPIG()#e*7x zZf$zCG;@rtp;5~2(L}Ns*QV3Z>?SLD_owYg8)|yGz|r2%Ak*KdEjoLrZP~DO-P~fL zxKzKayRpZi;a+8N>YIa>)3G}TPEoE;4!@g(?1n~xFE^7ZwfBq4+0EJWuWWDlj;JOh zCRQ%EhDMYQ&4$-hfDbx#GCsE~rN5wQPp`_$$|D!{GLPNtXyKg?$)Kg7!Zz2OQ2Unq zPVm{z@d1dlv<=(UT+$w2?kc2*0X=+D}O0k8JOlJ^AyHd z&(uuX%sM=RqtY`BaFQI{PZIUg$NpR3&Ae+d)cfE$D1+t}ku}sf7w}Vo9bHL#G)4SA z6=prlMEhPsTF-S`VSA2;a7IGfaQSa@)^IPr2{dVBC+j>|9rPh|^Ij@7U2aUf^IJW1 zr1rHrNz^4uNu5SLVnWr13+R{+!)uzA=}D}I1;(ldwspWJ{ZV9xrG%_~r0r3gTJ|sc zdmQ-?rU~U?ugav7ni5kcSRSeOQGK3o|B+GD)|!Ru_0v$1(-oF>Tik101HV0q8%f6b z2e1ec56X9OkHG}Z_9LT7pKpUtZ}?oc9f6(t=l9koenOGhn-aG_UD zM`3H5{p?d`VP&skP-TfI&;%4#8*|#sv)~6}Yosz)miDpCO?Mk6*X)w$AUbIw|Gjw4$Wic0TQ(Jjf(Y z$}p?0vAeR#-Cp?YG-Xa>X_ z;Ou*C;2X@<5xJH2@78Hq>{&l*lPRropq6;-FzzMAmY}@*X}aC)14r|KBSu*)mqTeY zU@j2H_lKG!_64jfJLAC2`2`xcF}lC+aOZhe1;(o{x)N$+83UXzNmhok;SCD%y5FLy z)PnX@==6T}NC=ZkPdPKoXoy^(dQF*NR=LtV@fu9=!sqR0%I(2F8mV^I+d#VSCqZ?@ zV1oc3xq;oBqInu0$vnt@oNQ3kDCJn4T&7Q}+@@8W+;o;emz>D=?x2#0%rE`aVEl71 zvXx_O?&~%4GzSOo_DMWOMN>;GX<}1e|KTdMa5A7*Dlu}>Mf8xutBQU2sV76%m?2B3 zET=E(8x&iLQO=>&C!Sc?lwXmbK{kdeqQu>=_dsA9KeZNQV0#^DWxYy0{rhELJ5z9* z0v&9>O|;2m+l@EQf&AA6X}YRuL+O+QDC?(I{47#Jvv!B7rwFwN0}z!p`dg zw-}S-(X++Og^LMB6QjFRy(-<@efOKj9Vv5VQdEIz0&p5!!pz?&tT0jghtd5CtYf-Z zd^~T%>_a<)ZSESc`wnB-*)9HYn>Ki8+i zl#Q^uqo;Gd=5-Pe97Ef?8bFOWYi1YHid{-PMH=aZ%T*(=Ni!2jRiAp?BD`z3txK`I zgp$4?+(Ep+bR^K``we#krvwLTMBvY^Pcx2rL&zDHz!G;Rld|H&yncNlI>-eQZ_NNL zHaD6a{-PppyuDcU0>8fGgfoZl{@};QdDzYrRW)u^1+~Lp6}=Mf83`s-_JzpvkB_i| zFT}q#q)_z@9&nmYo_>iYP%Z_5GD2mnd5cVCT6Z76&=6+ z+Cq&o+TVmBb5Fbc742j3OQFbBxXc@YJE0&-3NoIrh(m*bRKlZc%LOiNxz>?`iaX|M zBjmE=vNOwC0BfR@UR_m=hWH6+U>>r{g=j50k_#0Ve% z)VIEL5f~B+aAu*DgK&U6@%C7#D&G#+dh_{Y`=sm=;{St94n-+dS;oixY93t63z_lm zc;ac*-jkrp=G<6ZJo*>Fndxq7sJ8i`dbJ4!pP{YywYP{ujQGYsNomyDkUG+nxxD)X zSKPT<_2% zqhOJiyZBQKu!S{-cZH{TBV&ZBw|D1=Mypv6{sqY`CjiPy_c%;(AaXtbnOr>_-? z0szcpD!E*|#MvD!lf&SWvt*Vl6bhYv$$|IvlhC4bn}EW{lN1W-6Tw;H>q zotuy3Sb5=xyFoPlAp)P@@e2+|dEx?Zt9dp~3F#Wbh;?3@GPqg9Tsy8^iEbXx79hEd zg1rys^;@rPK?J!!?9JRvYqH+vd_1>%m1$$jECE+FKi_nBG86*ysFEu}K`Aeb8e$C5 z-7sk37ImD(PmpLyjOF+nJ7}Wp-b#T~8Jd)EeJ{ePF1KLCe6j?dk>Sm(ZRX(3{BGvJ zpqx22HR#+$zo5p}P|;-+o6)loqc%;T>B0Nnw2^ibSW;Hy$aJKdvr=1`{UsKt$9lOl zY4G;G0FaNQ+KWVGF@-RJcq9|1h(%s}-x@R@XA2(Q5HtrD{moq}5D}6l_}z~|mBa7^ z!rmCH^3=fNK&Ht$EyX3Ckr=;Rl-!S68*VFdbBWA~RRxXuAD~oZ?b_J?>v+Yhg zgL7JIi9>5sr%d?;T8nJZ4BZr!JxZ>U(w=E5!ICHq@p_@CIP;?jy2jihUD^5ZbiFMe zHj1nRgP|o}c1zU3E1iyMeUPT?&#V_;G3rFN|GnbH2W0i1Syp?vw%ci7UoGh~d-{8I z<9elQn1mtBgrQZj0**&zk)|=U+(ZQtBOrN(O4GzbQ?J~g)?7y`{kFn?shwaQnQdjn zA5k}_>kUV10|M{4IzV+_OT}Z*Yy{abC6P*p_v9Brho{BDBj#W*Zmsnug0ZQ?AQmQ~ zOtT=bK12%s27ye}ez}MzwhSuUhm_Pn@OZ?FWrB?s=k3dHwt|F-HG)q>ion=p&nb7?4GY(!gLTU|;T|tT5GBlFk^EUKhMR%=dRqBVJZE!K&E}(@jGXUi!9H2L6KL z{hU<{-9U=0QG^4B{=FC*gJq+9zcoN{-b zvJG_k+Y(708JTm7N5xyHmcqhRB(=^t_?|{p4RzdI#TP663#QOgV;v-`*-`SwBCWU1?s6N(?91B#FLpuJM93XPrtNn%GoAi z=Dz~dxnaQ6WUIm!Ss4C_rZS&21WiL6?|o9j4}Uqyy;ns|#wm@N!X_3YCjF7qUdb4^ z|AB+`Rjico@i3~21VK9^M&eqtYrIt+3U2UiFdya~|2uJxn!oo;mib|8IM%EoXSZNW z*K;lNa*)*dgP+;_HrlWpASd?}cXnR4tO3e(h8R&@3?`~bAWqo~r7P4jOHTq?bX%5< zXE^>=Uec(uLaA{_1++#G%iQVgl_l5Dhq}~DMO+G z0_pxfVkK7xs3uh4BKbEn`nxmgIF=M{nPtk9Wh?7=MWZ@qO}&nR_JPKMnyZUbv5$Va zeZ;X8Iu|wX$9xf7&na6Vu5U?9Gnq{70`jel^czA%K*3Iz(^cH#cSV&YtW80Czo+Zt zYDl5Ck^3aNIy^(@G)+$!6^$P!DZ|$8v@oyqL36Gl`yhW>M(8EUsuj1OV8(RiHa@k*9FcU z&J*s7mY(;hE8Fd5@0}>*nCgu>drZgMv@Hny*Ur05pvT@>hPrZO(Dv`Q(fTBxu<#CGCT^9z{hawLJaLePkJmv+Gr zwi1lB#q65$J=!&uri@f>cG3SdE*GNCqT! zJ^jh|4ta8=Q`^j>v8Cdy0WA<_!lWrG+9-Fi%cJ5d z&VFh0m4(X03(2JKWpIg7%f>`;`Cs{V=A|n-VTJpA-JlDz40V*1Lw$jlo5p3AGbuwb4gh~x90lH(1|=l)}n zoptSQpAUI$n>m#6>7@A)gklb24lE&ZxoxvjkeMb(X1lCDQoA@q_SkHbZbDR1bLMoOQ%4042~tL% zSzGqWklR*`V{5k`A-ZvfZP4~i29h2Cnt>^F;!R=b z4MMj{b+zzCKx0V2@uZ-Jqkm-KeKsS*IIco+kn7s04^D>Y*e$~uL*iZitK@3OAT!I5 zei583>4|pJ8{L9Jn4+2HOsIpwMy9k6AOezW#_ay_ASwc>}Eal}whqU*(cGxi0ikTY3i#!>4+vrNeU>X@T+<$PFLqf*I6FPWkj|#6&PMeoV zL7GExDSu7Raq)5;m7MA45jAnj`sa=n%bHL-+%Oh~?T3*i1j_ip0*^8u@J_HzDDKOl zLL8tcz3!hK$m=$1r&5K=vc#8Sm?Nz+ON!zIS)}$4%4cdMnIeB+5R2G-&bjji6kj_W zU3VlRS}=nw;VNPuaMAOxN^OLezi?Ji%V%9nN^aAgN?prguaL86D+Dj1=;zbZ*~%ZM z(-GTDuiJ_YLq9fK8Z@8dYf{VQsjiK=y6?E`4C?wqx6}Z~8h+=S@n~$Owf*|X85{hV zTX2o1LwMUN+BVC|nr71p`3;erVB1R1BYi*$PK^Q~!^Zq{qc&8%!Ig+0v71EdC1h!D zS$vrkPTG1oa{1~5qEyHZG*Vv$ur@+~4+PqjLT?by+U1#YQQBECyk|)fe~)PnfUUzp z?#a*H5%AtBk*{39I%iK7OA;pzN)SqjuzCtX{qav{T1Y`;1x=_|k|Hx9uv2ayEUO&% zuwzsz>{~cNUNTrlbz|T`NH722MGmiSjl5(@;h6_@MvPBY-a#Td?Vq?3Hqc=6_8xB? zycK=8PMpj|`t$2Bm)enEAlX1Sv1X(1_^?9}KvRpUe*_j_!FRLxoqjR+O&?pN$)$tS z$+PP@-Cp(XfZ&6r_VRwsW+XB|^3_5iaLyQ(eJXHo$pP)!aU^^#QJI(iQzCtgjc3WLlM}E~q}uoQAG?>a+COFS@z%AgPU?KI?O8x8Lgc`Y|c* z5x{QL7d5f)9NWQE@Y^YQO}yxInylQPYz$C4B^3CJd8*So0lrUy8IHrYEbt5aP(YZF z)36APy$F>tcZ^htK{>waS6@ky4lv+v^^?E6ossN1A`U?Kl@J5EOovd z#$4q>wvF&~F?1nv0jdyoUI^Hsg_EF`{-W2vJ20TiTwIW7>Qu6&iejbvzwzTt&f!o_YG@LUGcz;*>T$uVbT2KR# zo|Z;pLXUxdehqfJA1iGzN!3P<}NQ})P<4p zBX^1EHnn*sIu;gbNapk2f$WHHs(@s}Lz`{7Kt_oG71{&MglQ9lfG+0#Mwv2;Y#euM z|0Pc^^JR>SpKWrjb@QxEP5G(;;^Y1+kzMQb9o+1CPcGA zw;1BL(*xt(>DKfqGF}@ciVA^tZQ1wsl2^F6h>0yv?xWL^Hd+iOh2YdUS*Kax#w8Rl zT%43dGu~jhTI$VT#=_LGEtP1kKf$pqwR&vkSKJj-tNF0~ye&1IcD&6ST8m=`A6wCo zsW9i7P(}f$C&yo~mcW32wE%gM?{!o|b(53=f;k+az+28xUAKNwN}#g$^^`gcCpzXoKn z{!{p$efSST);~>iaI!Lew$9GY!NkML!^8bQ!(y3#BC`H95{v6UxK{s0()$00#Nzr- z4Av(Si|gMpSjmxPlg!Bf6L+fM{lEsvfa*4$e=#= zlgH_r8b}f-5c&4oGtgI<+8yN%0KEMW7Eb_aH&=RZCh`0M+fQ^TO0ByPr`d3lXOkF))CP$zoSWJf_A~pBe%!jD3g{0M4bz|PAtRwVa>-XO5G<7RCAavDkPfRdVY-{g{M_! zM>qOg*^(!g=U}`KrxHQmvbiZMY*`zhbz`GjX?f*A-U)^}i~?>slrt7%BCUxhUhtUK zAykU^_U0BphhQ|rQx@65F>(10{hogyV0{x7r8y&?F({--=ik;60n`=%err9C<8#S>E!A04!KzDD*A^!&+R-!xt zU7sR&)=atY3O$`$`n^AzY!FsH|4C*uLSd+&G25(;d?p70LNH@sLLIJSRyBM>5TR)J z!ndsyq3*X)K&yrS$p--Z;lAPZ#^^6`%7@Y4-ft5hPAmOcDHgt;MFbBVo54H29}kr~ z%Ti-;mml13<%e~!7V{>uFE7N~??!M;L{ev?S>sLzm+#ltZvl!@=5*o?BKlA7J4Cnn zuN(IfJaZ^7+;s0(TknGh!ZE`ic~esX^R9ZxZ?}&V5`3mr-t|yt`YS(iz4Xc*N^SJg zXYK=TN_tMDN6220yn-y`+y#7W*W|xl94f}RZu9uJ7#}f+qdMtYvW#2*6~(f%L}%Ri z-b{u^KU8exgo>#ks*aeML4(+2=4F(iwh~H(MHjiX1bVleA@la56XT*STi&iLkO==)Iu^5j0T@n(w5w z9`a9Y4gpx}A~B+IvjUX_h!|%w?9Kuu?Tx?CGYyG`lyK1Mb7Epc0T7f{HK(?68l`9S zdH18FuJ5K{9jsp!>!MsZ7p%BJfbOSrFM+`UmXBnUkR1bRG5AeLMyG#&IwILa zBDd%8sua%*)3s+g=WOaPx2i!4++J;a`>F0gXOI<3A%S8I*{!Y>)8%`|E%kS4I0d>5yz`=aDX%k23n{nquSC&j z^2Im8K66=27d#anoKxbTM~vkCzPI13?&3~VkVSQl(fRqGsoWx_gFDl{v7(wI;K;3~ zc>Xxa4@FT{TV+TGQ6FJn8AdnYka(L_d#xNu29O<&msou3G475 zwfgB4P1z~lh?*hIlXFBUrQt_{1Z&qWJ|vURh+>oiuiV6%J~ecoawLz3bkT>^C&7lt@@i@rkBCbiN&~K8^Iq}oYVb}-{$ubi zAhP7+k8wZ7;BA`GdX{$)kmcyGSze*iPBQpYH?*iXPH1y_r>v837aF%O&i5t(z5Vg><{cyG4X$*0rv%&_!o2I()R}jooSW# z2SPvto{{iL;TQ$imYi0<6X=mioiY#y74T-8RBhAv=b*4CViMNn9Mj^hAxzY=V=)~& zQP3ziNNS7fb-5vdw3o9ij1U@>(sH;-(CD}N7g*5kpL|-KfpVpMrv9rd<8>{H3?K@} zo@<7yJRcY2JB)&h=8!b0b;tRTD=G7m>6hUHRATXVtm=ZW2xmV{Phdno#UjIEWO!eN z)L>Y~e3x!+BxKd|5K|f~D;AUl8#lLLXqRCb#k|->%dmrzjSA6>%GnT*^F@bf1wJP6 zia7B43(lwEg2yp9%zg6|wc=eNbyo3jxQ34`&Q1RI3_tFOIx)i1ZjPV|Smk8BTy&y5 zM_t#x;3iG`rj}DDonOvv)WwQ5fz0L$tF{o*7eXsNfdtMQTH?l4QOJl(?!0luLJ5*e}E)=r>;*`A9 z03Jxh9N!qDNtx9KOLuri%drf)`P4deT4u-cXHEK7{1w9tu2Wv8vFc#%(`7M!YCiJQ zHi<-xeMSG#r=0Q2G{VY(tzL&n<@}`FC4<*0|C`2+ey)#!M_VCYYUax0Y=pp-*+xo; zvHp|c#4ps?l^X-Botj(zovYoaOa2auNb0Qy;t#dFCf`p&l}8~92M{G8b+j#_;U4$` zM#}Qsmv9RQmYUHr^s`y$$`q(SceM!N6b@t?P%gqthG9p;g(~m;Tdgqs=z{I>2Hz~x zAVJ~=wG1Au=38LZju&hiNeOyRno4&+pk8t;ms zb}_kLsRVB;oOYqhc|Ij?1G{#hL#|6CWn;z@g6(sLg$+w(*`5=v7=8!vsEQhW| z7^MMjTSM`F@Zu*kS*3}EuwHqu3(xzWC1{EpB&IKeUYN5khIqo7M>d`XHkJi)&Zdd_ zd;-bt#tbEIUHX2RF{qKCwL7$#5>@`pSo&$I+cG7V%*n?ZK;wAUow#9AET0BT`f)Cd zc~Te*fkesvG^RYBXQ&8ECWEL9yg9l={VCco6}%sKzik5!t@9<8;xPIoRa6&Qzpbp( zEf{;NVNI4Hr`6^PkG}#I36}Y@-BZTA8DD6;tv1~b;HScAbb}|B`)`GT-F63I2uWC& zep@h3euq9ZZom^bHQ{mEA(%J}bRR6~kNYB+c!g2=F;Si}1r0J+|IHwVyF~N-XSrL! z3j&cIOHiYW>{s z=G5yG&S+i|%vkbaK|_z;pLvdW;}fh@?&I2Nm@VzLCGM{=#~!zl853}QZV+SbaxINU zT{gLM_Lr}l7%S2VXPmZ3utux*d6U*EFGp?MS?AEJ891{jnF7`iDY=V^^n?9t52cfP21$fOnfqmSQjNZ0I$ zJHJsSp0_6G_C_8&(N(IsyuxFBmMsF8Uis7cU8 z@{oD69j}%ICJ*xbocPHy!3@jJALVG&noe6&x2-BP?2JQAhB*n%ia0|shwK?j1KV}y z_#-{G4IU)o3&jd|VJe$eEH{8~CQ_eOj#^D)>$kDS8+G`sz_8+A-0qJ*ai6JKvoqxU z#+1@Io=Q2BTI?~Edbt0=T$+1=qUg;Nnxq)vsL~Tu=9_Bsi>tlF*R5Qo$EAFJ>N@jh zEtA@>R+wZ56uMlLAFnGbyYjX z$`)&2lGo)LBB!^DQX9EEQ=)Seb9gH~#~w?(>Aq@4a+| zy$?m}f=g}AkGDIu0Tk%W7hP0Yi4HsphaBi}r3DVk3OVgcd@jTzjRJRbZnzsYu=yI7 zIaLPszhD2}lJ7cCS@azeNyQvS%!4h?P{7+klo9Le_m)-Y`;Tc^mgxHvX!}QO4c~s| z%;LbFnbA0RcyYddrD*8@drmr+Y8lpGdA&>85@mm_>UZxyC%xj|dcLK-;`cIM-B(ad z%<<3bQEeVX_Jz|eOQ{&ORoS=#dMRb_dG3BY<5NRcRLtn7))cft%0-zj!t)jNO)|eK z2Pq6fEL72p5UuQL4GCGIC!jsXrorut{|@_0BDE&YaUy|4uI=JMkkEuEFmh_hjt%5u&2JWv0yQH~G3q-!X^h=ynJBE+-b9iGUqWV)tQVSLvQr)Rk?p%p z15iF^Iw}Qfq;>@q>MeKRvDc=pSO`xdh8c8C<~?6{)gSI`?TmOT+E&-=>)3m_zajcd zwt|`ZZ_Phkz4D28s2#$*4_v$dl-77|B&5hFbjq!U9B}VNUd1_0ba9qI= zJjV|Z%SrCU*z7lDr*NvnHRlYWl{!-W{7pnBOgATK@Sn@nM)}J~u(I)WR-vCrNternH~$bS)+|a@XX80GE{vtf5C!~ zQJ%np49H+!U$<0TFplYp$f&Qs|1!#vZMx;zQoqNeF8$!8&CHmGs%vR*gYU~Ixvtn< zD74C{b#^;kK0^%TP$Cq?no^C9*RuHo)t6Dqm=8U*kU5)b9y!bYS(q*goms4o+jn$} z-*+$%hM*++F-P_r;MXW&^pizka)c3M!CVz8#PH6LqVEd>HAavv7#9kWp^RB4m^@_< zSXGH7AJKKutm_Plc9o23U1VpC413+zp^R8~f7m}i3^-~444&kGIUG=4JcdZxifFd1 z=hsBp7>(1ZV@~h!;(Y9!P{}+AOQdIW!dnqh+(+@ehBOv>E=>q_N2CGmKC2e`F#s0K zngY5T{d>j1WW-d!>TAT*M}h78MzPV+iN1At)UnEg)*kuFb{U=bPjIgm((=s8TeqdT znVq8X;fccY!x^oyXOO7xwDy6yb>rd*y}+KkB!_?wg&_s0WgAIoB1g)(zQG+zs|&PC zcN&jeWcGNtU{O%VLcDVgt2OtEN4WxNOV@sTPo=Z$pWJU8dFNB#q<{a|J)u=L-Dz=Dqc0brf{w62o$1SeAsAsgk9;yVaO((<-L) zYOOP`H6b-D(+VzCEoA*?L#gT?Sf8zKRNKYUG}Z&ztrO*B8_Xg!c_X`{3t1ma1qixj z+~SoSC}_*uabz^H-@PNLOkVb7$ zxSf1e=Ev!>@#y=e%0I>x?ytAmn>TRQBoQ7? z<^e%>rYX8(ISe=wm*dOIM7fSZa;NCwPe%se_&<-S4M8gJeJmJn1}qWC5GU2eZM=f` z^)+ug5SC*?GQxWE?^bx(0f&L+dj?{8unQjOK(3zg%(N2&V-o)bE_~^)FZ)Ood>>Gu z<1J=}JL`>#l6x~~M}Mebuge_RWQZx{SE$7#6&I-Z9idPixyfNofQJAnCV~OR)ID&{ zjfS2Yy9r(a_~tyxeBMPN8(c(8JQ)|~rQ)^5ln^Br7!b951WD{vGzk)w%)IV`*UqH` zgX8Vgd93N0->_y5`RG?KP_YTZ`;B5G?%lZL!@coJxVnjYQHib~uMyF~_qyXyvA;i( z`Y`RA>zp5qCw9ideghKUASqs8Dc-u!*BI2$$j%=ifT7^}nZT>y3LMl1&u(&2lG-S7 zO$p3SFl+rfoBW&=<9R;AeWs=6nn6f>WdPipQ#(yGf?F{Q#A5D%Zo3L*TX2T@E|IlC z(2Oo6Jer6A;~0Wl>-Q4vLOHW)jt)abPpn-aXHe`WUls1YYvrhGATqxb39Key>@9s5 ztnmgI%q=KbjLr~HXEqPUH}RO7T%;f1{=LhWaWV~7J@R3#MW0`wGtjIoUn!q>somLT zT;#1VC%lgK#Ix$~^IDQ@5U;qD<~&a(8E@$}rpO0dN}=ewqWc+2uV0;r0zA_OujqO| z9B3E=w!)XyoXZ0>YCd1vB-qzQ3CWdQz>2)DE6&G=1@kmcGxUjQx#jM(GDVvt`d%Vk zqCgFOl-f_fU4;KE8)aq`c8FdhAf8(Bvw?RKO&OrZ#j6M~0;M(!g&E@7{qVatr#>oj zhFJF~-%tqKysxg6)lt#5VZz22r};mSz|j=Qp%BE+m9J#iV`Wwc$_#xe6Ec%Rm36pA z47jdDA6u#SP|6K$m?p!39y4f#|52?cKLxMoWp6s4(7vd*+11;9ph=)o z{P-?MZ|G1F_{93OTy!#B^e-G%tKXY}aMFmgrcH>pf3N=EQ9FV%~g@j7L-q#pEt(467_;5oO>Gn2N?>WkUu>wUh@g4vDj^G|~*$r%1xuEut) zKo2q8j5Go_XQ{~e@22ZXMk32lZ$(@q(_IMQh)9hgnNe4R&k4ZA1YuH0MF2~5Mu>fC zH+X?74cKDWwv5+kpI)j)`=j+Sv{hR3la*zz;{ARI|8>PEbfm}<5;7XG4H4IzM{{Ec z1AaY*w8NIxX1DDa$i92~InW*D6W$ry=4bhBSiql#;b^=9F}4pT%c&02F|8V|A@EJa z+&I5(|FOTnqvFR01wmE0(>hA)88TB&ro~v?bYyOBO2yi!sI-p^%;|>Fj(+{J08x)| zj2(&OfIh1B?}3`cg#jGSyje0l_lj9(e9q=9^`pACF!k#?rEvAC`r@M| zW?hr~{4iOQ6=zdb5+i?ZP@qd6WnCId^stB_ z^c*95i06GuN;S3-v(6>HDzP=n56SG?V2+WnJ9C};Hp7RD?Y^~Bt~xm zb#eTA8M&`S+Cq%;reWdUc$ticvz8tFeS-PpxN#!BSQ){WrCieDWt}-ADe1FcalWTx zy&-OZ%XKl{h3K^eP|9eM{O0cOsQ8LGY(}Z#tAJ^4iw2!NHlPJ<+{2W6j zz%kz`K8XZMiGfKE^~g-{-_epILmgF|aa^v~JR}>EA?fb4rfzPu6!@cfwJp&xTiZMq zj|RAv2jOo;nwfKW&Vqxa%7~%#3+8cL2sy?{h!>eca8~+7pUceKeZQlhiP(WEDL#Q? za=}iZMv63KLAl`cTML;!a^Dm{*U+cq_RIh~6f%=29Q{r^b>p8)nXr&tI+Mu2Ouun< zjomBUV4Z2TE?+w#Zcyz~qH#%FRm0qM+(5Qu`uRs&v<{MIq7Sauq{b%T?1vf%&Q_>4 zf-vfLLboMh;C3Jrn!TPy4D4yH(CS{T;%iBn&0I=evI}g{tJH$k-U1xybZXxshWZ5@ zHfyPEbOHU3ifXM1yidd*Vb3<-_ORRsrtz~W^m2K85$|IAtcAihv(mCt2OTmKKlu<5{VL`Z|cru z@#(o(4MMqR`i_|Hn}!yuWqG)u#hPVDJv3xFqzd~5%dsPMP6MVI6+)~3rMp)K0BD#skJqdyOOY=1-+QA8GxD8q~5ys zhK(Cg0@NP8xL$F7pv#bpcj_Jl?(#rBKDj;Jjrg^~0DS08ts{><7$h7I-#!0iTzd*- z=}CEfG@7e_#}<|I;L5(XI~uv5gvvz>$q6O}JDlWE&dLaf`#FWUX3=b*#sHI=M95g+ z5j6BC!))IO$lEyiVwe`h(g0yzuRD&GG8y5*!P-rA{YS*KsJmBZV(j$y)I=0VV)rVN zg@!G2$DeFQL%aB07S?!E3K!4TEyT;NQB$$*IOCa^7?;LDpVl`{-__U&YTCeXh67-A zePVN}maRIPE3Js)8hq}yO0QHTD0mDQHz#?QgFx;w90t28D{6hc!8{!doJ=1v6olHI z*9@WXaWK2Wecas#RvW?LekCu3*!4F}HD|~rCD9itWT}-03sHpqF8?rD{S5f|O*2Qj zsUl7sF5ggzmYImMz!*zTGZSV`nj-XggkT4*bnyTvT;jxsU1@jh^_kUTwXextZQkF@ zNtM12C5=VyLQXrSjzV_zSh4sLdHsZhIgvX4qP9U z+*awJd4Q-Vyt;QQ?&+f~xh%nITyi_Etf^SpwWdJUK$HfipLFzRiq+Q}4uHN+1! z|8mZtNSPre5?XS^0PqIr1E?6Vv|G@kYRu~W#OQ$7WPD+{nwBOvaCZ@SEm%()maEK1 z4KSnsVlMgT0Q}Fmo&PVoG%Gth%YO?^$<~mI+u%g$dC@pg$JJ!@1=c?Nq{=jmA`z*J zdWb*DOKxw$6CjA3=6t&+6r`AF(FJq^zw%`LJrWoh=j9`}my63D$i(u@ zb7!0>Gz;8OoxR`kng9m12$i5Vh-LXuU6qWo*SJP$ZytD8uu)KB0DCecG-#sGUar|r zk3)Vl4}ihvU#z!%l=JiXzTk~yinNaR1l!f@BJ-(N#iws~l&5x^ahGvFEc%3HEy!b> ziGp71)w$ig`xh$QynS_4zttn5?lC!9=dKvWF@58ZSPIwE!X7jX7iK3SigDgY(p<-i zDer~m-(5;4hY=IKR?c5(ee`hHVcs=|I}DC7mFU#kl>p3JH%z@nc=YZtITqm27E4xS zf<1X@BzNYCsWuIB;tgJa%y&G}_mfS(+k{3si-g}<_RS+0evvFjhL@D+U=?e&t8~YY zjq={OPu}84_+5U!FG12O(Mv_Qg@+$2vTb6QAq}zaUGasVt^RKH_2^kALC{~Q5UDS^ zl^ADFJceAB1>S`1&r}^(arLrm71FMFzh9PUAU~jl8z8c3Utzp~t;joPg^AqCj%3GO z0pg{~-e4ca&gqW!*xENB5xB@5IKyan6$q4gJ$X4d0!;6lQoz@B>!iDKBxSD;4qE); zi##nn9oVz1y1K<}G2%)qZ17W#Xx;tUeQIacWkouPuwIZk92yT42?L^RRSt+Y>7EV1 zl6lV`DwW}wt^Dr9`r$KV=Mjbony4YPHA7yG=AsI3{05AoHv;1yM;p;4>!$|3fWO*R zX${fjLFF2L{Zq1$(Zbi3n16rWJQ!`F7j}zM=ja#?1^S^s5ukuN9oHt0Yz1|yn*nK> z*J|n<%P`wHfUTMh8%ra=uDF}3JP!U{Q!F|DFYR}r8I{`@suZTnKOIP7!_@HPaaEvz z(D~h=K+&Y9NxXm9#U0>uxC&Y5b2;w|6*jzxO9tdp{7KIfyWB<`fIZd2$t9;oqOC7Z zBloTWyc&1+ursSHsCj3d{-Jme=`umEKKFU2$@n_XT48t14}pCAS=m8IYamm@fG^Exi4# zO(4CJZGh*iB+$LaB`wl5t6}w?mR|Okc|i&lV_q<0Kg-|vSLb$gqwF z0QganJh&c*r&*dg>zC&Wu%W?b|9n7!Z3C6(UIajI=vCL)k7cE(U4^_P5{-8US>~3o zA))R70`PIp>FT0{311ygyid>Y@s3iWAbS zpPfUZY%{>p+{4{ni`p*WceC?XuhuA>zBw5yDa74<}C~l~jn#Bx-$Iaeuw;io1W~_{2j6Rasu{2VR z7&2c?l%xx&rFf)7Vx41Yy9WH>elzvD5edE^j9+jHQ#jEv11Z#LaTCkvW2Mzs${k~` zR0nS^@zJqu-WouNkvecM%6J#4V+>Sf1Gn%Qx|LS{Vo3gp3H?795>^s6Hdan<5@vZb zdka@f5?1!FY+V2C^w{hR>-&A_{-fO?lk262Iz3(fL56LOnluQvp&kG*LqwAysUic2 z=vD-~iS%nPsy98OuWO&HoTH%3Ny_UzwdV)6X+(847c5s4OPjwRZ*#GS4lVEW_Rcs^ zUGhC{dF*&S=KRTVxr87AGZaMuE181PQ1E}BGY4zHw&}EJRm|>ukC`xsSgnCZiDTle zEmcZm_6Fm|*6%f$dv<$2ci(A16K?o&b(7drd`xMai}VEt$@nFxSit6`57xSfgP8eT;IiOYW>*jld46`g(bh@n@_d1lp#K5C-fxSoie(zpVfgm1 zXHM(yE;sD0mmZ>8cn`xZ33?6Yv-Fz@to7V2Prn^60qlF&R2cWJl(6G>HGyNs7RIXh zdWZA6nmmX5b+>WFC)SkAllz`q?8okx@k~{)#Z~>yNH_kmz93j>wn(#InJ&9Tj{S+> z{SeHJ3h~>iMTT66R;hV1=U;P>x0#c~sRQlDJvgYD=KkUi@8!B^#*Dq)t ze5svediB3j=7sW9aoc;iv_|{G+q)TCYVBKbv-cN&O#OEl!@FqJh}0o{?<>+1Yb!cm zWimh?1EBcr+3AekEqo_#pC&@Ch~T$Qq5PP`TPVew#MlbcHOe6ZjR!5k?B1HXdgWq- z5r0!ZAPt~u$U7OhRtJ_MMyv~lJwQ3eCA`jRDbvgip))yvB~XVpJ&J`*oizUVvE_jg z_ud$XoDp#Kg4v#>JDu#(>51Aqb3Fr_{M)C-u_ldCkW!)4Kn>o1Cy5#7ev8aOd8e>l zbE9nGEb`rb(A;G43H2?*Jgv4dx{;t&(8h0h*)Z2GV6=X)e$b26zt<_oqFc3}|Cinu zI|y$htqS@0m0MLaB!n@(;z=>cgQ8ypb)00&q7@AF&ueu!?Oj-h^?2&}UDnE2nBO8b zA+h_vR~dw^XqZGTl`Wjt4a@(WWaH;U4tR6K+U~`mY)6}!CU)ZNI_zF;fuq$BCQRvx zvxiTama5KM4dIZD`*r=xv#1pPTIMl-693gDO`&;Zg1QJZ;b{ijaEKz5$pC<~gH?3l%oZXNYAyS4yU1_HWVEq05D`G+j1GlA!yKqmqn~2PPnO71e7wT>3 z7ZKbkEk>to4WYU}^uw38!`AP8Rw3gCl7whdQf1sL?kFtCWs%>(c`s13#4dl0r}MA0;FQgU~Qyt91h+_|ed{;nP9xorOnccXNp zw0Mu4;4qVr>+-Vaai!CS_u@hx`^@Fpg2&mfwCBFcdZTXDXo=OsTW!tE54Mum-5ZwW z4|mxH)y;5t5CcpNg5uvr?^LzB3^914E_~~Kf;o0XCT;Z}A>7Su|H3pK!4pJG!d1|d zy$g9V;z0cn0C!^q>q;VYF|y_XW^;1vy;$Yn_T@gre|h&2+mWE=;9~FryASe}(3esl zKd`hSZ)MLQs#O64k+8bq?T#4-QTG0sXZCV`%W&3;k_uReTu2e*i2@zoe zAbLk0@3x7A%Huy-u=|V$Yx}x0;dM2FJMj|vdD@QdJMq6qM*t*;Xo%piRs$pA2`Jc~8yn7v`UeX9qmnVF zPikvqFmK@EpKv=f2n6>{4s4&mk&$u*9a1;M{;^xr{x1qt?o!80&Ee{I#T_eBol?xM z_Z!Ir1OAx;YSIFaRjx)>0c}ibEEshIiT=$wnBMbY!*5G&<)X?m74d&Y6`3v`+x%n~ ztSm|{aIqCIH-ABRyK8BA__$l$-+71xC}VcAR0llp7uQwh*Vh<#g~$&oD~d5GirGJs z+7CetlFUarpAOH93>7wsd%wJRuZ3*9RJZUJ?>ZL2jUj4VUT~={3x+|)1T96Mdvs_T z+4f?=7X^o!tkdm`=H5LE^62i}BF97hG=Z3RI62nqxyGB9u9#(fmIegeKk3L-JlpkL zc@pNJt4LKi-8>}Vy*BSTP?leC{WXqD^!}drteM8%L+qa$)t#QH;c?PjcDb~|-xE_C zuW>c{hAKU z@9=wPj`&h&HK56Wef7gk$d1s)4+i?chH_-BXKk}d3*Ox6J}&i1T}ZJ-=zVuz_W-q% z`4yV2Zsyd-Hg~Y~lC|@4PHOt*k5|#^;}yADPq!z(%Es=7-15kXc%`p`XLL;LeM}UT zFXNo8fy*7kjwipdr?^d}ui8>~&)GVjf!&n6fr4G^rQy_E2D8mm_xOy*pXpr9RxU5s z6?;{b0HHWs_sSTzP62d3XpMwIn^nujRuxLUkim`2R}=Xy3z1^Ym<*9xFZFUpH^0_| zRh6!4hw%|gzLcR<7-S}YUsilG8RqTg=OaWem&(?}9{jQJ^HzfyyG;?py}Pgw_`jM; z2FMn?8vzf?jeomM^?n=aBs-+r6*yoMnQ=DOE~Z?NEl!^F=NgV_l%j} zY@Iq>|Fz}m0egS8Q|S4V)96cd3CLYpIJhMt-YfYh680AFSG8ZqtY!O{ z*|Kvff)2u`+csIr)k0DHmum)lo6kYMI=a?6%jl`W)i$S*K{+_V)tW$jt2G>3N++F- zhBn4kJZ*fucM-gD(KGadfI+5y$o$KfDib9O0hk0g(!Nej#6oe>pW%}s%YH(XhjjSg zVBTyu*Z>4DHVVXn3!=8aCr4Nj?-M%KGtMf0{c!ZsvMMWTE2|?BVot-qdU0-O>>_HN zIIY{L!fG71oIP*CYpzNZ4?2eVnb=locA?lxcYp{0&o(P}nK?an65P2{BSA`8!1I#Y z{K*00_Zjk1JbI1hUIqQ>Pf?fkq;3kpfVRn61qtVhR;gaglxMDcYXCMg;wD=LKWyz*n|8&8eXqdaAzK!w$E< za(Y(*M_XJ?NLPRSy!vs!i21ekJi-9Hi&3wEjuI_Z8$|b@`*Gu0MUABM$|ncSWzf3< zfbSIR*fw;S@jcK*esH3``fE2~t|HhnSLl;2#6;o*rC)X3%6RL5q~hMhcrJ<10@B;j ziCa2LY0m@?*=~aj*Z>`U^9657a~y}(_jk#(Y0u5E-|iYG-f=qG+|z)-;N#=dTiu(o z6QKYOt*d|C|E9awpkgLZ3w7sSn>V97C-$<|GSKTaVZ6L@u0^c5&|*fDmP2ga?B$~4 zP*>er+NzbmjTSd$D#YTlt;;EFs%K+SLAL}}3-epn!^T3`h%>_%{*Pu|=~5+7Ky@Lz zqW?$BorKVzehLbdN9LQ+y{dK*TWuvHCjndi?=wHCXJxKxPD?L-MExzv3%KR_j0fvC z$<5YZNUBJzxw0IilpTu%drrIs zifJ|2!R2yeCO3(H{0^}`lYxH^HJN?7aC)jLoGdy#->^r5edVBX2HlRpeq0a{J6P48 zt$(nftDO^Rc9=?sMrSYZi+h;!SK;tI?n6`2k07w6X+|HDIus=k{!CV7){9YoE3xq& z%CEvqeO!5i`k4X^&XQVF`%5H{s(WM85>YBVTYzNJ;ChR#d=~fn)Zy^2`?h8?rprU# zWVGW$D;acAIfoy7Vwy~Fc9Nt72qOylZQLHS8;hr0>2na@PN!hpvv?e8dhJ{!;eTc< zN|zJmRY3cs*eRx?sXbrT7NY|PtSag)=XK)u@v&=!i~DG2L@x7K?jfNtXdRfHl`W#K;w7ZXVwZ|FipZ2;RZTiPLGHy*}XPXJHWL?Rf z@Qyk0z_N{v1Ik2V%Dx~LU^M}GXQ?Att_m!{Ol~M}`a>b|L22z_y8Q*v_=BxBA&f-CZ8lE4$GS84zWHY@fGN=STM8Z;#E z?>At(?-vYGEH;MV!~>x`98n2ow3>tO&_K%x__uuuDL-Zy}n9 zZa@y;jxeJ*%6T3U>p&e5UXp=H%0ehN)Cd_Tn{BWY(1i2{H|H3hrtcuL?2vC1!Y01 z7=a747??c3cElRQWx;o%niRh%nIQqzGgoO zh6En>4Ny$Y(zp+j4H2Cvyklaq=>p_Xe2i#8#+tEhfNNDvIC_-Se%YZz1dTo~;PF7k zfq^0A;H@Ddh>n}siK9y5lUE419drX84|)$ZJCcHUKk<^_Z4`f5t1LW8UtzAvKB17t zpHN7&p}1YCx-Zu%ZQ$2zPpqIrM@kS>8{J=0TT@R+-IynnHmGaaHl%C1A>>`_)o4#d zTanG7EA1y(kej2}jo<2|BfPCd7m>aAE9_>LFY>L?523JJQv0x6^6jxJs?~5$_RSPu zY*2md%?gOHvO zLCkxtz)z?mv_Ik_**4@O>3jIzmZK2JVb5c{mDM8v>{{Own z6F2Z@HVuN-d}C+}!4f~8PA1`C16teX%4(mk-qgJ2+iPl9XI@VEgI5bWvdg5#g`{Hhk^MgB3#`V!( zae^wZkU%y-=D~AEjB7+s>}!Q^hkl>&!7FM{;%mDnlxxB#nCqD=&;94*IvcD8~ zIcSg+u?z8pa4p6i{)Flq`#D4+Pkskb%kXqEZ{?<=QrOOaDE9PHl zP^u%rwF5$LFgh?GA_-`~{t6Y2(iGznh$pRZg1U(mYoraQy61ymdIKTx!tv z!}HTpG5JO@ffaQaahl2UQ}mhF6bWtNG=VM03`0k(y;NBa53$&xh$`%kL)w5*r+PVI zu}JxDO4^`y_#wI{XMQC|lDNHeNm`q+*kRtfX;HEXXS&=hbBgmv4}Zf*0Yo;b1aW7W zL{aSw4w4|@sZD~Qb&h2TRi#R06Aq2_qI>6C#HkKz*VmIeA+}-%ma`MdGEx)nXdm8c z+0w#0M&9aJINb=+GRZ%V+>$D)F$E4{&(e$1rzWlPi)w_`}rO3}&J(sO@nO2Y&JZSC|ehRuz zOrB(h&#jRAbyv-{DyJ4Mllj4)1%5I@WE6-F>$j*_w4zt_#Uiz;EN?thSmntvBj@rs z@yboyR8sTi%42ZO&fV75*2v4trMzt8a3?v@sbD;Z!PNQw?bkDCCgdfX$HfUNqdEXF z`X&Q+{dtcsZ{+1xl3u@U=`{(lON#=ihZ>HHK9*LaL%A zeYq`GzLWC$O@O~jp#B@V@bcRUA6vMI@`(*2*4a}-ncOUHLJz+D$m{EC!eUb)zk3Y? zfjwUf*EeH(WR;c>`odMty7fuU%4ze`J3sfYTHRU}qkvz=bhNa%G73V!3bESyvkwQp zPl&@>9OlXLkxpdy{2n6J%0}v5kReo!ujrbyb~FYvYE4N^jVm(8IlPu_AelJse=wJw z#1{TVG&W9?gRg7fxnbt&Q?^fY*S2NYf-jJ^%wwmfrbb?lE9KSIKrl8wHDEd`8wnY# z6=(u`P{i!hpL95Rlh)8c^OnfqfTc-r#2}Bh72DC#k+3LV$gfgN{Q8$CO?#cDz6-o4 z3!*<7WJW%*$)k0YMR3Ob%eld&@2ug#@YktZ3@*Dl1;+$U+;{v?LnAPBHE2q8&EKWW zo*00I)VKKk$7esR-dsF)N;R*}(X&wi=f=YPJX>PM6nlfYEh

    VW9~H$1zQmJ!4428JcabM5NjhR^eEF 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

    V87iMKxL(_^<}~fO_c}d`p8{+XHS}U zZkHiM%jLCsk5*nFPBUoOcy>W-QIgZ;mrrSS>BQN@*`eRWgx9AID?e)pIi(XY1 zwmcC|ra?R6=K`YV`l5MoW>zv2lf0(3tm_A_yC%8l!=26d2>F;muv(%1e}VKu0n>t_u8?uN{Q^M z;IL@2pnqm||1I(x9O%v~_TTKBj_iByFZMoKxWjtr8sj@R!~XVp_E|zG*G~2N3S49E zCH(X@7piK|?&}m8NrL8`A0@oBCEoAMpS>cwqTCWNn!pwv@q_2ck-xTZwqG>{Ww9(A z%5Q=ScT8!;Y?p_k;lZ5$C;xEyM+D;h#U};iO5% zp0t|yTCPfmlf8RJ%X$~&Mhj)>JF87w*u*r*^p2W3x0tzZEBYw~qKBTv>3nUp*BSm~ zXA$yx z!&>e^RLBb9kJe+N_WB=I8Yuur4{^Oj8>BUEr7$M^@*I1$FwK~vpak!9LLdX=abstac+ zd&_YX3i76(OacWyRF>~b`$e9J-h(BY*25cJyN_gjTr}QzGjw0Hhyd12Ed*|DE5(^w z@Ia`d$I|%Jm~HGtWg-3z$K19%jr?k)&(Y0KF2GkXENiH+l~Bc_t92HSI2$#$h1huM z&6oJ=jfe}fBHlZuL) zANJPmKb% z*M4{qG2Lb9d)aF95QfiU^$=NL54<*5M4c9HnXG8aibcAnCK0FtV_B&i-3a~Q%bQ%4%i_g(K z*6iy2I~c7G>DTJW2zl)9`Y~ZKG-Rdq&K0nc2>Sq?B zgDQgxPY~UKfwZD8jQ7NB^4rhNSD;){<5`@FPc~}4xCuHg4LYg{3&mDCuGdKfMsr_B zh-454m~rC?JL4?e*|(Aj*Rg>5kJ38E#|GhPR*phQv6bK9h9k6rG&2jg^z!g&&66Uo zJDQ|)kZ#`6Cz(A7;rrxCu*eXc%ltUWcv;6-#Zyuodi5REqfhixis?;|CR|Q|1mkRI zvDk!?(l&@cW$&wUGGzoyvOnoxAsXiKVt>T90P{^yTwK@d5i!t>E z!@|AeV}l#zBHVXwg%IM>^Jnh61Z-B6kOQvqI~%AKx-MkAsJnTMAoCu(Lz8jd%m_#K z#YSZ68%?0YZfD&W_J&REJ=qFF3z4|>nGXf$)}+=13y1T;|v#Xd4rnlX;yvy1uSd~|9Sfv+|6Sbv-wN5}TmEU^(6=3U#q zbIm5iEfPxNYWlG9DTT(|dowkXjY^aBi2L&DQAv&fam8^eRd}Yke@8pX-E$nP{r50H z9r+JoZ8}H3n_)XwDX!QSxCF)A36oAC!2#d=lr~~~uX=mNrK(}cEV98aL`RI!6OSXf zZNuH5ezdhv2AmyjtwBF0!Na?ig zE6l3c!w;3JN<>-agw#2y>rp9W<|u~7jSQQ-XUl8Q87S6?zPJLAKaDnP^~YZ(iGH0) z#eGd2|AIZn_|~l2Ico!_{@RRJ-*6$di2v6a=-wr1WUMbzZMutHd zT_Esnj6!m6ZaRGoXxJ5JlbN~}!BuySjfMN_52u9#8&i}MdSmL)3};!M?$%Uzb=PM? z{FQ2lD-@9r)f%aWV(~~#a&N!>Q4hj(S|Ogiz@4Y96ZXkU%~)5;NptiV{?S*=XKD-E zQ+4BGhUVlldRRuFgWTO$oK_TF-cYH88f`Y07Ye0$SdD!mIh_n?N9)v1lX`I9kA+X2 zYIzw+Re6E{L^4f3vx8)El^rm@Wao!Z90I@OQdxlh&D~L4e3l? z)ognx?)Sg&ee@prXtjBL&|64W@TS_B*OgXi-Bi_TnB2v)O6^BIM9=fcv+rlY5?{5~ zgyS-Se=xRN7Fj1f?je~D{x&iCP&;1NHD=nsogSB{*w$21tTRkhpf0A5do1>cDr5Z9 zM<>yxwLOj77)y}+ONSw%t8D7G%$}l)ctEt%^hTiMAwo>e+RXs8)i^ol=G7f-4cz471!~ zGSrS-A>pg{9n#+rZs6=L4=g@NvgNrmJ30J3(5$JqN7+}q=e-B*hbj@l!Epx=)c5=C z8;9vMFX)X(`i()t$q^8L0k%AQ|MR4!2P5p}NycL`mH12-8}@?|LPhc?vSE1xBb++&(}3@pgSlr*hQ1wFAW$Tp*IPy14U zlvuJP%v4FL`Vv^6k$zDZwl7nEUQpqnhSz_0hS=dceV1~}Mm76K>4=jscW9o_{fz8> z$8$!3i=j*jx6)n8;yy1x@W`22vPDyAWv2}#mpg53BtYOczG4D_#qr3d>7(d7KN6!F zE_zi)TY4>`!e+$_K87hf*BEBBtZ!P}?vmKQU++CGZd4c^;AHxmF;)Q6MX!Ku2dLWk zIq?eSbF^zots!duH3@I^G08`*d7Gtg7-NZ)vf0#SBl`4Vc0xYzdPh(Tbc~AG;KBL@ zB|XKRl#dnkGM{U0}9{DX|VHFK<{?q4OvOHZam)I)6;R$b)b_nPmpqY z_la5T`jZChVb%1vl*$^r^m)bkQ~w1Z{Ij>Sileueo~@^<8_37t z)6m`8#ukgI{z8`j9l>eZI@&vUW3RLm6~)3MSMQ(Wg|M^P*t&cBSiAi7o~OH;i?z2c zo42PA7CZh8nSNoe{|z&lIzGi-lqVuBg`MyZOpy>4!QO%JA3z0nV|o>AWQ@XGt_!Wy zhdc~9{{gNFtOyw-KT*awZH-_?Oamt#q!AH`UL8!;vZXO<_jRJtuu$&sr6YJsK>_ek zqR41V!o6n0mh?2X{C}*3=2U#)f|8*pGHZ@A=G53qlkxRsVeWawz&g*OMzd!vy|I`U_ zQWN{R;%&PZ|7|7z^WOh@LW4a7-JUhE^!vIQPxNij<-0 zEb67L)JuTGN@V;n-PQ?Pv4h4~yw1RX_(O!~t+anBEMK&(aWzKnAUAj!FKB!7NLhBzO8o2CPH(b-&C z>=MnkjCtvJndTPO;N&$yBWA#<7fZspcvGX1(`C3PXoieEAHhevI!=uB^r zb^Ef^Ozjdx1aKn%F?cZItu=M67|Xbb-~Lhvrm_+JE(Ho}L?36XXMB|h2B_lT;!`ML z9}M{Q%#F|2oU7oX&ZD#Js;(^yWVGGgdR+tkc8oHk@0!I0#QJi2}0zXH@Twd&!#depD z%jI$YEl^5AG}1fALsx7>A0#pvN%$L$B#Ri6$BQVI6~8Pw?0%1Zs>l@AraesT(_4H> znT>)Ut;FVy%*+(wxD7*;;{!mf-_uLR9&arlD(fPzO1U!Yolm1JHUk3&=AXu&cAz>I zS{Uwns?J=WxJeBr%}EyvGT7YKgMr7}r>v>H?yW2zZRFh!-6(S^eOvCaO8A=;6q@i) zsR97qFW)a7)gDF{+_$-W_FVF1v+w3-$dC>y>S`>DgPkU6D;RxBln-p?}U@@olKj_%%LDR zs_tYN; zPKpR{anLzG^>iu0?{QadYtFg4E){DU%P$_lK0I@!)YBa9ysm5ASv$aK%b6wV29Z}3 zx7D5x<{g(in2QGGFw@qpfES8%W5|nTknECfsMmhc2o{qdgaMx?nxcrp1_qs7`IdL{ zCIYgF+*#nl$C}}RXy`vBA-AI`cE&`Psl*31(v2ECG_*$P8^2M}pZWT}4lV#yb*OL~ zX+Qmbr_~r?f5`vU%3XCKwV8JHphn7t3@*ttB$w+^3q&FJ?B3(GbZ>tI4IWoqq1hdI zJ*&o4X9nJ`S?@wKiHd-ajy9|pXcr``QQ0>aeC=M&PzKoYY_G#%BQ2$=5>LO>teY=p zU6TV*{uBTTrQBwG8Y(7nha^TWBl8^t4kFDUZLLJi#X1@sWH{o43Pqf()j1{}paYAW zb*cwnFK|)aji`*n@J6>$KfJs8U_904B?htmIS%rbIr!x6!TxYgFr+v81COXeaHIPe`%XsApA4txpq9OCW>e{7@yv}C! znWPHO&`g>W-zqdrNo3qi4qc7epaQ5eoULQsEBj7Hv!;r=FjGa<^^g>#vhH_1o=`cd z&HjAQf+^{t$>9=-DZlBuAH1P5X2%tC3%+pQziV(uP7FrdVh&`E3`&^>PnkXk)A@Q% z_4lQk{5dG4c|67P({E9v)1OPLS`K|e%0FuE0QO}4xM!x6$Q{cE?$*J}VL@%3@o{uQqt4Tb>%ltKVo;E2@FF3k&GAW5bi!*!x4tR6 zXl_9n*Ju;v32(F@?LMTgeCn`VvtE=O39W7qjC5Hq6Ao=vk(;U=P_PG+GTa>pKY}n2 z{H5W3ayN>{-KAd#*bfxas-o{P_8tRtIX{6}j55Yz0u*&;!9$u=;UzLY%RD{{XCD8k^$^53{*>;-m3bvH5=v^IDnC=< zwSZ_mIM!c3jWRh5kYR%5R^q{sVx9i2sJsPOS~qF{GG1kJ7NvsdJ`?r~o{zLa|q>qEPd3j{3 zZyb?!MA?lhwB9QNa1~&a`_lKT!VD8|RQ#VqDqUPHQW<`QW(4-Y_O zRaB+)uJw@>uQuv?sOO;tiT*GO4j%kbE&(a9q1{KQ4E!dWGcgw<#OoZg!mU8#4iZ(S+rYf-D(JUB{}ebp zAOWew5h`7Cl)C%5p{q{-<-bJ_UE^_~R&iwFjHr={cme|!fX{s4u*X#)yoc*>BUDLR z+O{&ecUF?TH`WF&r?$(x!W6!1{Gse?j$G-yK2|xG@$I!ti{||LhdBsD&^1fSEz9b8 zFGeVd5bP8cxcRDyaxx7V3#(Le4x0|yc)mR4SEW*Zg^dWmwd-mXZw)b4IqYs?8ru!Miy-#~4!3}0Iz z+f+0^^x(T*Y7{nIvn2wum^$4%0lJx20m*zWlJ2y%N=pPqU+Cx zjG<91gG=(66&`W%n*q)NNFdQ()F>u1hX~J^^dmh}KU0Bmt5b+5-zH(F0P0{)-q|&) z&N;%LDJ#Dr&lZlF2f8V{VMz^OubcmAFHB7cg?>0w9hWxB#$fzP68|jGI}Ll?M~L&4 z=T(Tq%%VBYFUG>7*=CP+P$Ok6W3t9lDrFqallf`!N=@&b8Nkyc53LPs9X}cxShs$D z*vGUHZdQwl3k_ZE?-OWVeSww*NTHlhP46R9b*<;ywK#DV3^OGTP*p_cBYu8+imdy1R$!;EJ3U>@ zrFZFKz|HRt%Hv_R8~hDVOi!kgah?=-o5TX5y@ddHB+cc-0}h6F2M$p9@S3q+wUs=H6C;cp)iG+=Db4dMNU~>3_{6TO$IZc$`Sp;x&Q@}z?i*q3-bcId(zBScTtOlmMk_ILWJadI!en?uaf4ojDIn3i-ROXn{Dr zwgz~ZRTAw^WkRdy4Y>WQM#iy35TWUh-W1Qg!}}SW@XusZq}b z3!d$#6*nHI8f!3R$N$4(s43-5Ithujr8`w@7*|H=K~Rv~%G6!nYE|y-Q!lJ$S_7;u z25qOFmd5PLM9jmbx_W$$h8Y>5WcxsindZgi2zZ`Gts~FYKr0HuRqr1cA{8|x7cqJg zaLfub+xc|%a3KN1Yg877ZXax$ggqsTT?|k};JDh`qTJlF>C=;S zH;4B%x5fo{$6c-?q5{@ANg<8l(|%jYC5FKjQ?s>M9k;N&)D-;Vn+E#s9y#l`)WFTg zF_*75B+E;iI)9SN4F*2iru0p&GO5@-z}^^U0zL;pbi>sD*e!|`c|5``Rv>ft@@&Pf zF%8&Y#TrEPBMPqt9RjI1A~n{#HKX;OmzCkYQuUCs_pKb&)>!uVEaa|C`VxbBA;-jIh3K#Z@!u8gsTcIo-)5*TDt>O zm9MG@0p;vj6gAuGaYvLD!UCMKw8pVIU$}~X7IbOAjGmO$+(9+f2Y=UsEhw~DPp0<; z0JG9sz$)B@s@xgRp@XI(z&HJ4{Oh2e6~^x6-1}rjh+Rz7yRkzD*up=Q6#UcBfI_Xu zmlXoW2i^;C3&xH9iC`tOmpeeIvI>(=P4JS9s}_oubze4&MS*h095;Qvh>=ScBrfY8 z^xXG9Oe}T=rjRJ}xPz!^lby#P0jJsE4M8wN_1!96Qmpc}Qx7@GuzzG<$Oe%=CEDo> zT<#Ct77Zu7B>nD@Z3l02z_Q}*^z1l75I?m z!;P=C?1t!?W5*V&+EGxxbg_`jDH=M{NJ~>uAKbJ9966qSZdEx!#?s9y{5TABbRab| zZsLly>tOWZ3PA;hB)kOK#d_Jy!`BlLc!Xfd?+T<-+>VfRGl&-k2gdY>rP1@)y z`wP49{TmnGm6CJY1_7nVqJmUCrn@0iWT+Zo;o3ns9P8iFEFJJhgtuYI?7xp-ho&uU zyiBWxxp&QVKqXxpk;KQD90<IN2<)M=fD)>Ztop(9R4bMV$-DLa?)RZ=e(t^WUFIkieJmxjf=grr=1FUfH z0XyE@Mw}D6;19)9@iD+WhB+&A`=%h4ly*pM88?ugX{6Sh$;cAcAosT?Q;^{3@VWto z)3=O8CgcDy=)?jRsMMQkxrUly7VL8b7-gK2nI90y-{^-7iA-8DIAdMF{B>@^Dp29q zaT7?c#^(v5xk&CEl#gPi)I)nil1KVh!zMJ9Lm$4q_u;qK?%5|%kdN;tll5BKo3p7V z_@`E&>Gwb0|Dp`i38MXSAS(0HH4w{qy^OqpJpuK6$ph>(8`=2>aGU;@OhGP(I@!Z= zh~tjT5hx!D`Sji7XzBoaa<6g*)8uOz?&{}hL#=87s&Rn_A0e$0Gc&-N)yV$%Q@f?T z+hdsQ2InI+fgP+%4$`e+>05&L?oHlrMJ^Hq!gDOh%RAsdLrhEAjA{RIt$7I)GFm=G z;nSjDO4ntvkGAvDE_;iuOtJ(KNTCAffAGuz;q}Uzk*}s_pZe)`xIta}yo-wmy<0-g z+nl4^^rgo@H(0hv-SP#5;AgQ&?VI4XvdHMJX-;0gO$G%m0gFRpubF!>7=^=eZ#hD6 z$L|7YV^63@uJcnPAsP7JtXlOK2J{F9=;C2Jeyz1nv9pDL{N&1jAqOnI23* z>4ARVOnevMYbKON%{??OFw?+VFV8K+Xxc4yu<05g9^FcxU;e=sYFCAWtq^_H=@%unaTt%pwF$|1|JZ%9v= zDsiPEoGZ`6bkp+g)8m5$U$SG4S5@Zg>lI7J1>g_i@b1m^#iQwxbob8ow{utpKmznV zr$41)kfP+9{9Aig6CYvO_@+ub#3FI6lN`Nk#G!PAoVlpbxLsxU}x+xuP8uxv9zb_Pk8M^Pr?NL}Y zNoi!;Zv1G{?)vCT>>!JLKyP*<&(gx&+WP5<5+X-wiWJV=lkMA%17-#O6EYQ|;kMYe z2DY@A#J5N#k1G=gt72U*5tOz7Mj|c*4z(#QPSBSi2-KkqNtXWpSI`u^uyg@5LETpm zRuv)$lnR`)5~{C)mP;kqnu^Tnp6}70VZI)*4$~~!w@B5exu zh$)WAE8`By`XJM}DYJlKi%04bwA)74EO71RYs+UHqF0H7c7Vg7>b5B?qeTZzMA}wf zYJHFPTI}j8Kj@ik7D{Y7yv|H#G6_DfXELd}K=mn3(Z0!h_y^46JbTBEjiVBFk;%zB z=`9w#3JA)gUm)dJC6({iT@UFp(q+cNH~V{}1`N^oriV>WEXo6)9?!0AxtYSCJYIUk zzCx;1^cN%Vr;LOZp=2L`!GT!ZSd8KKMRFQkJlUGZ<~>XVt>okSbe6Nkg2F}b{;0Ec zOHY@3GB1b~a;#1hvmSYD{NO47f7tArcfC@(pPMPU_T_)%;#xs%nCCHFe~ACqEK+B4 z)k=Xg`MarOAnj51Hgvc8Cdcg)=dtPup|s7Z)T#H}iV$@B68#?iv;kx-6^p<6-PVdF z;3#anf6N#FbhqYcbRp}VY5k9c=34H(KF~no(b-bq*p#HNR|_GO+yrJSRJg_rFPVYQ z%=iv;17^Ow)#^w6s2OJb!$yO&cu|W0OPt7IM1le&j+;BB66u2TIUaxDI@hC755LK z{Y-1Ea^{vpgy8!%{sQJr;?qT4L4U&Ze{1i*orJ$a*#GnL|7!|8W8rj94*g#a@;@)- zRdS#G-+emEb@8{s`_HKV`R`9`@_)_t{_WTN&j)|>+yBo_BzOBt2sobJP+s5K5Kl<7}?T9eI@o`PrV zg^upuCikb>Wjny*X*tmP95!|K8(t}GQEGlJRF(31b+RsdPwihixM}q&cb;|N0JES* z>~9{vZYl2VY*Q)rAM^7wGxeR=dmW_5MY!Bg|692SBr0(U(GTUCuT`zzp!}D{*LhdWmX@?s+Nk|| zXML_OpJYDRYHVBlJIYfO_q?vW-RBQY{*tn!fM<0u`KHc-hP~fWs%NO%?(se0;;8KZ zodiQioF#1~2k+z_CD8odg)EFs^OX6K{onZX*Wya(HBSMB*QkH|lLQeu&%#`^&wZG0 z|NG0hjn+<5eJHQ!o>za4p*b#02|g!F{clpim2zFPCOLbug?ugZ#+vp)D z*ZWt0{xDlGez+fb$IoB8W11_wJdp`AAM-=|H@Yl*_>qt`k1F+5*koDA*xJ(G!M{O< zi!aMX(e6w;4`21F=(+!s6S(oJ-#)Prw1S!WH$7?V-p~(yIb=-ai}o)_l(W|5CwMN3 z|8plw6a-Uy>U!PT&42=0yldWfD7wHc^^4jzj_ON45}LG^(G{jbO&S&m$NRDasg3Mm zVYKcojjgFz|zTPl1^*Ckt z>{in1FA4LWuQPaat_p6X+(HZbcm8A-Jg&hQ>PJwiRex{|6D8g>-(aJV&q3vKGk9_* zfrSHweDn%^OFY|x-fbD1yn9wj?cVYZyX?)Hr0c(yt()srobnlyvqs0g=;Z(p7(ob* znfmmI-}uE{Z07{B;P7>ni6vM=Yv9`cgJ=E0?*UbkgmH0xZXXqd?Bc>`SEgn@csrzA zj6Lh6z@FL4A|B$6x|gHYanrzlsaebXRNjV;#A1bM)zR7tsHbr0tw`t^ws(udFS5%L zN94eULgV1L1z0j^QEmsX3njbqoO@t9cvQ4NWluAfc9{`Q0RV*UBLmK)%m*(pMV%S? z6q-#+N31!yE?UccN=s2crIZbK=6a!L53gd+7sb&Zl^Ek;WM;X8IrA<{^ZL=e=|IrA z{x^+*(v7V>gyIooBO?I$tugVPnQZZX^D$Ryzo6fFp5+_Y-I17e^s~^XZ%^i@UlR!V zH04Zrgz{V*H4cpsCkka2u69Vsru<^_CQG)n-V|(m?2y}9(bx7pac7{2)$fxp*y6dy zPMqHLU2;Fs1@T)-)k$uRM15X7AeJP2S4yEBo}<7OsoF7L}J(#(9>29~A13w+}%I?WOtj-eV;n;vj*@WMj^UMo- z#MaoOl=Zms(v;VVZ~4qt%3M&qy@8E+YQ{m?*idg_Em7Ht#cGMuVZQj22iKcTBS-mk zA&qV(0YCrPGoLMMGToaW#!1<-E#8M^-~8m4*A_{1p(gR{nQC;^B6%2#^J-= z#J@@eZ{W^M6ukGV;I>v!bLsgo!M??BHXjbl-U@Htk)ce#9qK4 z!4Jt`0dp|W3Lp1GRkM0os4i4OW_=1xwX)4^0Z8b5_moTZS9F{$n_#L1t<1xP5qyoJ zQ2Ky@AL+WKi@0f8r)Yh3E$=R`I^}>uRXrUT>>1v@KgRx6Ic|W=n1w}jP zXzZX8*0Rujv|Q*jo?mvRpjK(WWqGwxDh8V59f^ZSwH-Vx7mMM2w_0Xi?em(TygQ&9 zDm9PnS&ju!+p09!eH`=7PyP%^sRA@l(@mOcs=%PGms5wqzDExnxi`eQu}ZTBU-qoK z@I1jAf%nw)m(`)#&eqCr4+QHrw3<#_bxY}-D<1W|EV1b6Anq<3bbp#ggtn-Ml(OCq z6;vFX9(fcpzgx?Af<5ZU&#ZhIswLCqq_jXXJh-Zd#+~x6j$a!hULzwgtF7qD4o>C-@R% z+SAcwg=0GN&9gDjQnBg2i?l~|z`#gcJsPsUL#IfnKEM(%GhJBU+8wKhIK~ByWddge zIJ~m$y@oGAh#C%xjihAUQ(E+S9=DiRDB8!X0npQEJ)@Lxu!_1Lo<% zrXV>|Y{)u^9~VP>qulevicnM)YsYfah>srd>CeN%cL{t37ME|pmuePV746CGY~#<~ zPo&77T#BdhdQ1pimWsBBGzZCe#wlc4L)Pv4(-j-(QAFdJmdu@j8W-Q_zZ=(?kUtWu z@Z7u{h#RqO>18vDrP`9W@>Zf22BjR0jp>nlh&3Pm0xn7Yc!(C%Grz3zQ;id49NgO! zb8#~P#ysFqfAv!RY_T>xNtVmeihOQ|)x@^YiNGg5&2W0&UP1Ne(^$?ihr|$>X7NtJ zeFdtU^=+XsJkTl%0hBXR()4L_MdpKw+GZn%#wkH+3p8rNx9Zj$y0Q~cId1vW!kOc3 zj)|Eq{);b6uyOw2>(rSKnDohGi<+_>l&eS&8Rp~--Msi5bR#^4987x(eH{n)50CQA zW685jy64=VtTLU7GGf`3<)}*-d@W^<1?`-fo|8uiuLnGvvW7wH)yadskSCsa>)77c z!0ul>xXLptCxkx_s@Y`yS%vsg31$@(>BR?m2|h?(9!0A?^!37&ZV+dfY^E2*Bh+C; zZ+TrGowPk3hIpR7x8GCzSXD!c$v|%^@n*$u4jj_Hrq}|(Ck1b2qDEPRFuiMXeYqBu zE?gzya@5!#Orm*qXtl-$*BNkDw8P5PHMYkDL0l;-*d*KKqG{WtCF4jUi}jLkzMtFT zs4*g~DsNZugZ08rn`;}y(|NtHse5vov3_byu%^Bi&5gpQPm#v${LS>*anrKQ*yujP z1eraNHqo49dH30*>9fB|3LLp-FILI4Wq70#y~ASD>*H|cHgKgH1gN3;6aCGrwV;?9M3+CQm@oanU)2i zSAHJfD&8wZSnGId6n)73>pyYWC)(}o2Uxkr+}#LWiljo9mJMw!oys;YA#Ydd8nv}u zGHvNl%(;zEmU6TcUc9pAn$m}v&e=lIjj9un7y<66jnP$ZY&np7CFlv!!6~$vv_xS&l4%4nQqSNUWXDkoge(VnA*0AU99<9Baaiku6?Xe%B+m zPM>cX!{1wm*JIz5kWoBg7~P!M@U5&4qV@Y#gp?G8x0$nC$3UoV4DaU=dkWs|{PLGq9G&>f}IMWBh!R{>`e66;pn(=Ns6G8ZUP z<&;S41*UX)&2r$BRdX!l#$KiGma{LzU-I+{0s3zTA~a%r%)1q`LWec*t{HC4LudCw znFCKfz+_z)2WIC85TXlOzg}DKGZw-49cvi3z78PejVl_@B9JXS>pU*5Im}&wW5<&x z^YHSmgX8U=hF$X^F2*fHuls9LXaOreg)kmsD`dE&eoj=|Jok*iwQn@Fr^sRvQnKlr z0ssiAhaN|L_!9JCbwAOfd%cHv&KHn{acZA9DJqp{bLI1K;B(O4tlW)%kFH!9aIPJ3 z@@*M^l(F8UJ9k(z=W=0izN^*z^7e5HQD}>MuXTEi7Cq$xc-J3E>0ZU3$QYty>6`wjU+?FpcRfoP0iKy5MuVJn8iF zoOtliE#H*`#%>ES%W(hH`&`$L9`MfXpx&Nd8pgQ=kL;UR0~bCz55;c+D>nLA&O?LL zIQFcJCJ9dsa!zwtN?+`x?18FcNpqTY5AVZu2ZFttjiZ3ZE8M7N=O@iFAFPLC!pmQU ziU(tDy$u$#VU1)ArfD`A3rYVk_TD?FsV(XoRun}LK@kyYDhkrCA|Sn~pfmyLB#3lE z?;Q~lkf!twg46(^*Ca?+dJCZ@(n}zrht78p?|tsmzW?8O-ci)Rv-%jnP7Rw=pqH(XM~ z*pU@=uOI07!fZ#%m|xFpriY#(38pANR=cZ!At2|9_pnAv`b=ILA8^t1MNLTe7b z#pzcGG|DpaYR1)EK{CRf-Sx&1q_*YzDwD5uJiV`uLc79*jgDq2EsLHkb^{sriYma1 zb4ih`MHj->XB{h0qDWY`E-ooG?>QWe$_8#pwkdWN`{E9@Els`Sw~Obg?MVN)pMy)# zyo&1Vw7Gl`z6jbSkOjFoa;M#gu}>mS2HN;-6sHiHK93w><9wW|KfRszl-v{sL!l@% z+64?oJ3{fD!2D^Zi^Gya7SN!0PRb*gIok` zfyPLjLc<*ID+@Hep zF0OfArYlm8P6toV_!(c?L7JTP82i^=n?02+Y6g>!*AFMjCOaUk+d!mIVXe2fauDR) zC^R|`1ANi^u>k`l9cIWzb&pI>)6WfdcpLB-fvu^1KTKkYcKF*kza!MK+{fTLKz2yu z7y&WY9U244FW5>j5B70udH(2bHD4}6O)zJLehI}#$ToajwL*T(=o4`WpTd;4qVj3e zGM_S_gB4GSb<0{SCq0q$pV!Eai%3lrBH&Il=_jn1dXE}?DQnSK8oz^MW%lVFKGyU7 zUVr&Jy5>E?G@)qaD-aSOMJ8<#np8(|7T3fvP!U~=g7b|>%DQ?gMZgg5z%0DW6k=OF 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

    W$4VMFaJi`8mphw= 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 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c40ca81 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,104 @@ +# Changelog + +All notable changes to AutoOptLib are documented here. + +## 1.2.0 - 2026-07-18 + +### Added + +- Self-contained Python packaging with declared runtime and test dependencies. +- Packaged CEC 2013 shift and rotation data for wheel installations. +- Public runtime API for registering custom components and including them in + compatible design spaces. +- Cross-platform continuous integration and wheel-installation checks. +- Citation, contribution, conduct, and security documentation. +- End-to-end reproducibility tests for seeded runs. +- `make_problem` and a runtime-checkable problem-definition protocol for user + objectives. +- Versioned, validated JSON import/export for designed algorithms. +- Frozen numerical regressions against the official CEC 2013 C reference. +- Behavioral tests for public problem contracts, configuration failures, + evaluation modes, serialization validation, selection, archives, and solve + helpers, with a 90% CI line-coverage floor. +- Canonical Sphinx/Read the Docs sources in the main repository, with a + warning-clean documentation CI job. +- Executable synthetic reference models and examples for the paper's material + stacking and RIS passive-beamforming application classes. +- Opt-in evaluator retries, isolated hard timeouts, failure penalties, + deterministic caching, and structured JSON Lines event logging. +- Ordered `EvalWorkers` thread parallelism for candidate batches, including + in-flight duplicate suppression when deterministic caching is enabled. +- Atomic `experiment.json` manifests recording environment and normalized + invocation provenance. +- Atomic, run-scoped checkpoint/resume for static and sequential Solve + workflows and the outer Design search, including optimizer, inner-search, + stage, surrogate, budget, and random-generator state. +- Configuration-driven application repeatability harness retaining every raw + run and seed, plus trusted-publishing release automation for tagged builds. +- Incremental mypy checks for public/core execution modules and a lightweight + core-runtime regression gate in continuous integration. +- Ruff formatting and static-analysis checks for source, tests, examples, and + benchmark utilities. +- Fault-injection regressions proving that interrupted static Solve, + sequential Solve, and Design runs resume identically to uninterrupted seeded + baselines, plus parallel ordering, retry, logging, caching, and determinism + stress tests. +- Portable algorithm profiles for the three CEC2013 Alg* structures fully + disclosed in the software paper (f6, f13, and f21). +- A faithful Python port of the historical RIS zero-forcing/water-filling + objective and an optional loader for user-supplied MATLAB channel records. +- A time-bounded CEC2013 paper-performance parity benchmark with machine-readable + summary results. + +### Changed + +- Established Python as the canonical implementation. +- Standardized the project license as Apache-2.0. +- Routed stochastic operations through one NumPy random generator per run. +- Restored stateful CMA parameter search for single-algorithm design and + polynomial parameter mutation for population-level design. +- Preserved MATLAB-style `AlgP`, `AlgQ`, and `AlgN` settings during Python + namespace normalization. +- Stabilized covariance handling in CMA-based components. +- Updated project metadata and documentation for version 1.2.0. +- Made public options case- and underscore-insensitive, rejected unknown + options, and validated budgets before execution. +- Enforced `ProbFE` as a hard per-stage objective-evaluation budget and aligned + `AlgFE` with MATLAB as the post-initialization proposal budget. +- Restored MATLAB mode-specific defaults and per-stage sequential budgets. +- Corrected rotations, transforms, buffer ordering, and composition indexing in + all CEC 2013 functions to match the official reference implementation. +- Made intensification and surrogate-assisted modes perform exact held-out + final evaluation and removed fixed hidden surrogate budgets. +- Added contextual errors for failing, vector-valued, and non-finite objective + results. +- Restored paper-listed arithmetic crossover, simulated-binary crossover, and + EDA operators to the continuous automated-design space. +- Corrected serial multi-step execution so every search call updates the + population before the next local iteration or search step. +- Prevented intensification from shrinking candidate performance matrices + after evaluating only the first of multiple training instances. +- Restored one-value-per-algorithm performance aggregation for design-level + CMA updates across multiple problem instances and runs. +- Aligned disturbance probabilities and shared pathway operators, statistical + racing/intensification, AUC checkpoints, historical-best tracking, embedded + archives, shared component auxiliary state, embedding order, and operator + details with the original MATLAB implementation. +- Added problem-specific repair hooks, uncertain-problem aggregation, and + retained evaluator accessory data on solutions. +- Added an optional MATLAB-equivalent 1000-tree random-forest surrogate while + retaining a NumPy-only deterministic fallback for lightweight installs. + +### Removed + +- Dependence on benchmark files in the historical MATLAB source tree. +- Pickle as the only algorithm interchange format (legacy pickle loading is + retained with an explicit security warning). + +## 1.1.0 - 2025-09-15 + +- Added the initial Python translation alongside the MATLAB implementation. + +## 1.0.0 - 2023-10-18 + +- Initial public MATLAB release. diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..21623c8 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,43 @@ +cff-version: 1.2.0 +message: "If you use AutoOptLib, please cite this software and the accompanying paper." +title: "AutoOptLib" +type: software +version: 1.2.0 +date-released: 2026-07-18 +license: Apache-2.0 +repository-code: "https://github.com/auto4opt/AutoOptLib" +url: "https://github.com/auto4opt/AutoOptLib" +authors: + - family-names: Zhao + given-names: Qi + email: zhaoq@sustech.edu.cn + - family-names: Liu + given-names: Jinrun + - family-names: Yan + given-names: Bai + - family-names: Duan + given-names: Qiqi + - family-names: Shi + given-names: Yuhui +preferred-citation: + type: article + title: "AutoOptLib: Tailoring Metaheuristic Optimizers via Automated Algorithm Design" + authors: + - family-names: Zhao + given-names: Qi + - family-names: Yan + given-names: Bai + - family-names: Hu + given-names: Taiwei + - family-names: Chen + given-names: Xianglong + - family-names: Duan + given-names: Qiqi + - family-names: Yang + given-names: Jian + - family-names: Shi + given-names: Yuhui + year: 2023 + identifiers: + - type: doi + value: 10.48550/arXiv.2303.06536 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..e7a1b25 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,25 @@ +# Code of Conduct + +## Our commitment + +We are committed to providing a welcoming, respectful, and harassment-free +environment for everyone participating in the AutoOptLib community. + +## Expected behavior + +- Be respectful and constructive. +- Focus criticism on ideas and code, not individuals. +- Welcome questions and contributions from people with different backgrounds + and levels of experience. +- Respect privacy and do not publish confidential data. + +## Unacceptable behavior + +Harassment, discriminatory language, personal attacks, threats, and deliberate +disruption are not tolerated in project spaces. + +## Enforcement + +Report conduct concerns privately to zhaoq@sustech.edu.cn. Maintainers may edit +or remove inappropriate contributions and may temporarily or permanently ban +participants whose behavior is harmful to the community. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6a527ab --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,55 @@ +# Contributing to AutoOptLib + +Contributions are welcome through GitHub issues and pull requests. + +## Development setup + +```bash +git clone https://github.com/auto4opt/AutoOptLib.git +cd AutoOptLib +python -m venv .venv +source .venv/bin/activate +python -m pip install -e ".[dev]" +python -m ruff check . +python -m ruff format --check . +python -m pytest -W error +python -m pytest --cov=autooptlib --cov-report=term-missing --cov-fail-under=90 +python -m build +``` + +On Windows, activate the environment with `.venv\\Scripts\\activate`. + +## Pull requests + +1. Open an issue for substantial behavior or API changes. +2. Keep changes focused and add tests for new behavior. +3. Preserve seeded reproducibility: stochastic code must use the generator + supplied through component auxiliary state or the problem/setting object. +4. Update user documentation and `CHANGELOG.md` when behavior changes. +5. Confirm that the full test suite and wheel build pass locally. +6. Treat `ProbFE` and `AlgFE` as inclusive hard limits in new execution paths. + +## Adding a component + +A component must implement each mode relevant to its category: + +- `execute`: run the component and return `(result, auxiliary_state)`; +- `parameter`: describe tunable parameter bounds; +- `behavior`: describe local/global-search behavior. + +Use `register_component` for external components. Components proposed for the +built-in library should be added to the registry, documented, and covered by +deterministic unit tests. + +## Benchmark changes + +Changes to a bundled benchmark require numerical comparisons with an +independent official implementation. Do not approve a benchmark change solely +because it reaches the documented optimum; transformations can be wrong while +still passing that test. + +## Reporting bugs + +Include the AutoOptLib, Python, NumPy, and operating-system versions; the full +call arguments; the traceback; and a minimal reproducible example. Do not post +confidential application data in a public issue. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..9fe03e2 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,13 @@ +include CHANGELOG.md +include CITATION.cff +include CODE_OF_CONDUCT.md +include CONTRIBUTING.md +include LICENSE +include README.md +include SECURITY.md +include pyproject.toml +include .readthedocs.yaml +include scripts/smoke_all_problems.py +recursive-include docs *.md *.rst *.py +recursive-include examples *.json *.md *.py +recursive-include tests *.py diff --git a/README.md b/README.md index 7587f61..ac4b007 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,228 @@ -## AutoOptLib (Automated Design of Metaheuristic Optimization Algorithms) -[![GNU General Public License v3.0](https://img.shields.io/badge/license-GNU%20GPL--v3.0-green.svg)](https://github.com/qz89/AutoOpt/blob/main/LICENSE) -![](https://img.shields.io/badge/Matlab-%3E%3D%202018a%20-blue.svg) -![](https://img.shields.io/badge/Windows-Pass-brightgreen.svg) -![](https://img.shields.io/badge/MacOS-Pass-brightgreen.svg) +# AutoOptLib -## What does AutoOptLib provide? -AutoOptLib is a MATLAB library for automatically designing metaheuristic optimizers. It provides: +[![Version](https://img.shields.io/badge/version-1.2.0-blue.svg)](https://github.com/auto4opt/AutoOptLib/releases) +[![License](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE) +[![Tests](https://github.com/auto4opt/AutoOptLib/actions/workflows/tests.yml/badge.svg)](https://github.com/auto4opt/AutoOptLib/actions/workflows/tests.yml) +[![Documentation](https://readthedocs.org/projects/autooptlib/badge/?version=latest)](https://autooptlib.readthedocs.io/) -* **Rich library of design choices** - Over 40 representative metaheuristic components for designing algorithms for continuous, discrete, and permutation problems with/without constraints and uncertainties. -* **Flexibility to designing diverse algorithms** - Design algorithms with diverse structures in a single run, enables great possibility to find novel and efficient algorithms. -* **Various design objectives and techniques** - Various design objectives, e.g., solution quality, runtime, and anytime performance. Different design techniques, e.g., racing, intensification, and surrogate. -* **Good accessibility** - GUI for users to input problems, manage the algorithm design process, make experimental comparisons, and visualize results with simple one-clicks. -* **Easy extensibility** - Easily add new algorithmic components, objectives, and techniques by a uniform interface. +AutoOptLib is a Python framework for component-based automated design of +metaheuristic optimizers. It searches over typed operator pathways containing +selection, search, and update components, and evaluates candidate algorithms on +user-provided training instances before testing them on held-out instances. -## What are AutoOptLib's benefits: -* **Save labor resources and time** - Human experts may cost days or weeks to conceive, build up, and verify the optimizers; AutoOptLib would saves such labor resources and time costs with today's increasing computational power. -* **Democratize metaheuristic optimizers** - Through automated algorithm design techniques, AutoOptLib would democratize the efficient and effective use of metaheuristic optimizers. This is significant for researchers and practitioners with complicated optimization problem-solving demands but without the expertise to distinguish and manage suitable optimizers among various choices. -* **Surpass human algorithm design** - By fully exploring potential design choices and discovering novelties with computing power, AutoOptLib would go beyond human experience and gain enhanced performance regarding human problem-solving. -* **Promote metaheuristic research** - With a uniform collection of related techniques, AutoOptLib would promote research of the automated algorithm design and metaheuristic fields and be a tool in the pursuit of autonomous and general artificial intelligence systems. +Version 1.2.0 is the first release packaged as a self-contained Python project. +The earlier MATLAB implementation remains available from the repository's +historical releases. -## How to use AutoOptLib? -Follow the steps below to use AutoOptLib: +## Features -1. Download source code and add it to MATLAB path. +- Components for continuous, discrete, and permutation search spaces. +- Joint search over operator composition and component parameters. +- Exact, racing, intensification, and surrogate-assisted evaluation modes. +- Quality, evaluation-count, wall-clock, and anytime objectives. +- Deterministic runs through a single user-provided random seed. +- Strict `ProbFE` objective budgets and MATLAB-compatible `AlgFE` proposal budgets. +- Versioned JSON export for designed algorithms. +- A small public factory for ordinary Python objective functions. +- Runtime registration of custom components without editing package internals. +- Bundled CEC 2013 data that works from source and installed wheels. +- Executable reference models for material stacking and RIS beamforming. +- Retry, hard-timeout, failure-penalty, evaluation-cache, and JSONL logging + controls for external objectives. +- Automatic experiment manifests with software and invocation provenance. -2. Implement the targeted optimization problem. +## Installation -3. Define the space for designing algorithms. +AutoOptLib requires Python 3.9 or newer. -4. Run AutoOptLib by command or GUI. +Until 1.2.0 is published on PyPI, install it from a clone: -Refer to the Documentation [Web](https://AutoOpt.readthedocs.io/) / [PDF](https://github.com/qz89/AutoOpt/blob/main/AutoOptLib%20for%20Matlab/Documentation.pdf) for user guide. +```bash +git clone https://github.com/auto4opt/AutoOptLib.git +cd AutoOptLib +python -m pip install . +``` + +For development: + +```bash +python -m pip install -e ".[dev]" +python -m ruff check . +python -m ruff format --check . +python -m pytest -W error +``` + +## Quick start + +The following example designs a small optimizer for the bundled CEC 2013 +shifted-sphere problem. The small budgets are intended only as a smoke test. + +```python +from autooptlib import autoopt, make_problem + +sphere = make_problem( + lambda decision, dimension: float((decision**2).sum()), + bounds=(-5.0, 5.0), + name="sphere", +) + +algorithms, trace = autoopt( + Mode="design", + Problem=sphere, + InstanceTrain=[10], + InstanceTest=[20], + AlgN=2, + AlgFE=40, + AlgRuns=2, + ProbN=10, + ProbFE=500, + Evaluate="exact", + Compare="average", + Seed=2026, + OutputDir="results/design", +) + +print(algorithms[0].operator_pheno) +``` + +To run a built-in optimizer directly: + +```python +from autooptlib import autoopt + +best, history = autoopt( + Mode="solve", + Problem="cec2013_f1", + InstanceSolve=[10], + AlgName="CMA-ES", + AlgRuns=3, + ProbN=20, + ProbFE=2000, + Metric="quality", + Seed=2026, +) +``` + +The design call writes portable files such as `Algorithm_1.json` to +`OutputDir`. Use one output directory per experiment. Designed algorithms can +later be loaded without executing pickle code: + +```python +best, history = autoopt( + Mode="solve", + Problem=sphere, + InstanceSolve=[30], + AlgFile="results/design/Algorithm_1.json", + ProbN=20, + ProbFE=2000, + Seed=2026, + OutputDir="results/solve", +) +``` + +All public keyword names are case-insensitive and accept snake case. Unknown +keywords raise an error. `ProbFE` includes initial-population evaluations and +is a hard upper bound per algorithm run. For compatibility with the published +MATLAB procedure, `AlgFE` counts newly proposed algorithms after the initial +`AlgN` incumbents; held-out evaluation of the final algorithms is separate. +Sequential problems receive a fresh `ProbFE` budget at every stage. -AutoOptLib is developed and maintained by Qi Zhao at the Department of Computer Science and Engineering, Southern University of Science and Technology. Users should reference the following papers if using AutoOptLib in their publications: +## Reproducibility + +Pass `Seed=` to `autoopt`. Version 1.2.0 routes this seed through +algorithm construction, component execution, selection, archiving, and +surrogate sampling. Repeating the same call with the same software version, +inputs, and platform produces the same stochastic sequence. + +For expensive thread-safe objectives, set `EvalWorkers` above one to evaluate +candidate batches concurrently while preserving result order. Static and +sequential Solve runs and the outer Design search support atomic +`CheckpointDir`/`Resume` recovery; see the +[reliability guide](docs/reliability.md). + +For archival experiments, record the AutoOptLib version, Python and NumPy +versions, operating system, complete call arguments, and the generated output +files. + +## Extending the component library + +Components use a mode-based callable interface. A custom component can be +registered at runtime: + +```python +from autooptlib import register_component + +def search_example(*args): + mode = args[-1] + if mode == "execute": + parent = args[0] + aux = args[3] + return parent.decs(), aux + if mode == "parameter": + return None, None + if mode == "behavior": + return ["", "GS"], None + raise ValueError(f"Unsupported mode: {mode}") + +register_component( + "search_example", + search_example, + category="search", + problem_types=["continuous"], +) ``` + +Registered components are automatically added to compatible design spaces +created later in the same Python process. + +For most applications, use `make_problem` as in the quick start. Advanced +dynamic or sequential problems can implement the `ProblemDefinition` protocol. +See [the user-problem guide](docs/custom-problems.md) and +[the API guide](docs/api.md). The canonical rendered documentation is hosted +on [Read the Docs](https://autooptlib.readthedocs.io/). + +## Application examples + +The repository contains runnable examples for the material-stacking and RIS +passive-beamforming problem classes discussed in the paper. The included +instances are synthetic and public; they validate the software workflow but do +not reproduce the paper's proprietary stacking records or original wireless +channel files. See [the application guide](docs/applications.md) and +[`examples/applications`](examples/applications/README.md). + +## Scope and limitations + +AutoOptLib performs offline algorithm design and can require many objective +function evaluations. It is most appropriate when the design cost can be +amortized over repeated solution of related instances. The default component +space is curated rather than exhaustive, and the current graph representation +encodes one or more bounded operator pathways rather than arbitrary programs. +It is a research-oriented beta: application-specific validation, complete +constraint modelling, simulator resource isolation, and deployment monitoring +remain the user's responsibility, although opt-in retry, timeout, penalty, +caching, and evaluation logging controls are available. AutoOptLib is not a +universal replacement for expert optimizer selection on a one-off problem. + +## Contributing and support + +See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow. Report +bugs and request features through the +[GitHub issue tracker](https://github.com/auto4opt/AutoOptLib/issues). + +## Citation + +Citation metadata is provided in [CITATION.cff](CITATION.cff). Until the +software paper is published, please cite: + +```bibtex @article{zhao2023autooptlib, - title={AutoOptLib: Tailoring Metaheuristic Optimizers via Automated Algorithm Design}, - author={Zhao, Qi and Yan, Bai and Hu, Taiwei and Chen, Xianglong and Duan, Qiqi and Yang, Jian and Shi, Yuhui}, - journal={arXiv preprint arXiv:2303.06536}, - year={2023} + title = {AutoOptLib: Tailoring Metaheuristic Optimizers via Automated Algorithm Design}, + author = {Zhao, Qi and Yan, Bai and Hu, Taiwei and Chen, Xianglong and Duan, Qiqi and Yang, Jian and Shi, Yuhui}, + journal = {arXiv preprint arXiv:2303.06536}, + year = {2023} } ``` -## Contact -Users may ask question in [Issues block](https://github.com/qz89/AutoOpt/issues) and upload contributions by [Pulling request](https://github.com/qz89/AutoOpt/pulls). +## License -For any question, comment, or suggestion, please contact Dr. Qi Zhao, email: zhaoq@sustech.edu.cn. +AutoOptLib is licensed under the [Apache License 2.0](LICENSE). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..0d1b066 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,20 @@ +# Security policy + +## Supported versions + +Security fixes are provided for the latest minor release of AutoOptLib. + +## Loading algorithm files + +Use the versioned JSON algorithm format for exchange and archival. Legacy +pickle files can execute arbitrary Python code when loaded; AutoOptLib emits a +warning, and users must load them only from trusted sources. Objective +functions are ordinary user-provided Python code and should be reviewed before +execution. + +## Reporting a vulnerability + +Please do not disclose suspected vulnerabilities in a public issue. Email +zhaoq@sustech.edu.cn with a description, reproduction steps, affected versions, +and any suggested mitigation. We will acknowledge the report and coordinate a +responsible disclosure timeline. diff --git a/benchmarks/check_core_runtime.py b/benchmarks/check_core_runtime.py new file mode 100644 index 0000000..f2d8f33 --- /dev/null +++ b/benchmarks/check_core_runtime.py @@ -0,0 +1,59 @@ +"""Small, dependency-free performance regression gate for the solve engine.""" + +from __future__ import annotations + +import argparse +import json +import tempfile +import time +from pathlib import Path + +import numpy as np + +from autooptlib import autoopt, make_problem + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--max-seconds", type=float, default=10.0) + args = parser.parse_args() + + calls = 0 + + def sphere(decision, dimension): + nonlocal calls + calls += 1 + return float(np.dot(decision, decision)) + + problem = make_problem(sphere, bounds=(-5.0, 5.0), name="benchmark_sphere") + started = time.perf_counter() + with tempfile.TemporaryDirectory() as directory: + autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[20], + AlgName="Continuous Random Search", + AlgRuns=1, + ProbN=64, + ProbFE=2048, + Seed=2026, + OutputDir=Path(directory), + ) + elapsed = time.perf_counter() - started + report = { + "schema": "autooptlib.performance-smoke", + "objective_evaluations": calls, + "elapsed_seconds": elapsed, + "maximum_seconds": args.max_seconds, + } + print(json.dumps(report, sort_keys=True)) + if calls != 2048: + raise SystemExit(f"expected 2048 objective evaluations, observed {calls}") + if elapsed > args.max_seconds: + raise SystemExit( + f"core runtime {elapsed:.3f}s exceeded ceiling {args.max_seconds:.3f}s" + ) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/paper_cec_parity.py b/benchmarks/paper_cec_parity.py new file mode 100644 index 0000000..f1ce118 --- /dev/null +++ b/benchmarks/paper_cec_parity.py @@ -0,0 +1,189 @@ +"""Time-bounded execution parity check against the software-paper CEC table. + +This benchmark evaluates the three Alg* structures fully disclosed in the +paper. It deliberately tests all three possible held-out dimensions because +the paper does not disclose which dimension was selected for each function. +""" + +from __future__ import annotations + +import argparse +import csv +import json +import platform +from datetime import datetime, timezone +from pathlib import Path +from time import perf_counter +from typing import Any + +import numpy as np + +from autooptlib import __version__, autoopt + +PAPER_RESULTS = { + 6: {"mean": -868.49, "std": 8.87, "optimum": -900.0}, + 13: {"mean": 5.90, "std": 98.8, "optimum": -200.0}, + 21: {"mean": 1113.42, "std": 4.15, "optimum": 900.0}, +} + + +def _atomic_json(path: Path, document: dict[str, Any]) -> None: + temporary = path.with_suffix(path.suffix + ".tmp") + temporary.write_text( + json.dumps(document, indent=2, sort_keys=True) + "\n", encoding="utf-8" + ) + temporary.replace(path) + + +def _write_csv(path: Path, rows: list[dict[str, Any]]) -> None: + columns = [ + "function", + "dimension", + "runs", + "prob_n", + "prob_fe", + "seed", + "python_mean", + "python_std_sample", + "python_std_population", + "paper_mean", + "paper_std", + "python_gap_to_optimum", + "paper_gap_to_optimum", + "gap_ratio_python_over_paper", + "mean_absolute_difference", + "elapsed_seconds", + ] + with path.open("w", newline="", encoding="utf-8") as handle: + writer = csv.DictWriter(handle, fieldnames=columns, lineterminator="\n") + writer.writeheader() + writer.writerows(rows) + + +def run_benchmark( + output: Path, runs: int, seed: int, max_seconds: float +) -> dict[str, Any]: + repository = Path(__file__).resolve().parents[1] + output.mkdir(parents=True, exist_ok=True) + started = perf_counter() + document: dict[str, Any] = { + "schema": "autooptlib.paper-cec-parity", + "schema_version": 1, + "created_utc": datetime.now(timezone.utc).isoformat(), + "software": { + "autooptlib": __version__, + "python": platform.python_version(), + "numpy": np.__version__, + "platform": platform.platform(), + }, + "method": { + "functions": [6, 13, 21], + "dimensions": [10, 30, 50], + "runs": runs, + "prob_n": 50, + "prob_fe": "1000 * dimension", + "seed_base": seed, + "max_seconds": max_seconds, + "paper_test_dimension_disclosed": False, + "algorithm_source": "software-paper pseudocode JSON profiles", + }, + "paper_results": PAPER_RESULTS, + "results": [], + "complete": False, + } + json_path = output / "results.json" + + for function in (6, 13, 21): + profile = ( + repository + / "examples" + / "reproducibility" + / "algorithms" + / f"cec2013_f{function}_alg_star.json" + ) + for dimension in (10, 30, 50): + if perf_counter() - started >= max_seconds: + document["stopped_reason"] = "time limit reached between cases" + document["elapsed_seconds"] = perf_counter() - started + _atomic_json(json_path, document) + _write_csv(output / "summary.csv", document["results"]) + return document + + case_seed = seed + function * 1000 + dimension + case_output = output / f"f{function}_d{dimension}" + case_started = perf_counter() + best, _ = autoopt( + Mode="solve", + Problem=f"cec2013_f{function}", + InstanceSolve=[dimension], + AlgFile=profile, + AlgRuns=runs, + ProbN=50, + ProbFE=1000 * dimension, + Seed=case_seed, + OutputDir=case_output, + ) + fits = np.asarray([solution.fit for solution in best[0]], dtype=float) + paper = PAPER_RESULTS[function] + python_mean = float(np.mean(fits)) + paper_gap = float(paper["mean"] - paper["optimum"]) + python_gap = float(python_mean - paper["optimum"]) + row = { + "function": function, + "dimension": dimension, + "runs": runs, + "prob_n": 50, + "prob_fe": 1000 * dimension, + "seed": case_seed, + "python_mean": python_mean, + "python_std_sample": float(np.std(fits, ddof=1)) if runs > 1 else 0.0, + "python_std_population": float(np.std(fits)), + "paper_mean": float(paper["mean"]), + "paper_std": float(paper["std"]), + "python_gap_to_optimum": python_gap, + "paper_gap_to_optimum": paper_gap, + "gap_ratio_python_over_paper": ( + python_gap / paper_gap if paper_gap > 0 else float("inf") + ), + "mean_absolute_difference": abs(python_mean - float(paper["mean"])), + "elapsed_seconds": perf_counter() - case_started, + } + document["results"].append(row) + document["elapsed_seconds"] = perf_counter() - started + _atomic_json(json_path, document) + _write_csv(output / "summary.csv", document["results"]) + print( + f"f{function} D={dimension}: {python_mean:.8g} " + f"± {row['python_std_sample']:.4g} " + f"({row['elapsed_seconds']:.1f}s)", + flush=True, + ) + + document["complete"] = True + document["elapsed_seconds"] = perf_counter() - started + _atomic_json(json_path, document) + _write_csv(output / "summary.csv", document["results"]) + return document + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument( + "--output", + type=Path, + default=Path("benchmarks/results/paper_cec_parity_20260719"), + ) + parser.add_argument("--runs", type=int, default=30) + parser.add_argument("--seed", type=int, default=20260719) + parser.add_argument("--max-seconds", type=float, default=3300.0) + args = parser.parse_args() + result = run_benchmark(args.output, args.runs, args.seed, args.max_seconds) + print( + f"complete={result['complete']} elapsed={result['elapsed_seconds']:.1f}s " + f"cases={len(result['results'])}", + flush=True, + ) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/results/paper_cec_parity_20260719/REPORT.md b/benchmarks/results/paper_cec_parity_20260719/REPORT.md new file mode 100644 index 0000000..600bbcf --- /dev/null +++ b/benchmarks/results/paper_cec_parity_20260719/REPORT.md @@ -0,0 +1,113 @@ +# CEC2013 paper-performance parity check + +## Decision + +The disclosed Python `Alg*` profiles execute reliably and often meet or beat +the mean objective value reported in the paper, but this experiment does **not** +establish numerical reproduction of the paper table. + +- All 270 runs completed without exceptions or non-finite fitness values. +- Total wall time was 1,224.5 seconds (20 minutes 24.5 seconds), below the + one-hour limit. +- For minimization, the Python mean met or beat the paper mean in 6 of the 9 + tested function/dimension cases. +- The closest mean match was CEC2013 f6 at D=10 (absolute difference 21.66), + f13 at D=30 (31.50), and f21 at D=30 (85.53). +- Only the f13/D=30 mean is statistically compatible with the published mean + under an approximate comparison made from the two sets of summary statistics. + The other cases differ materially in mean, variance, or both. + +The appropriate status is therefore **stable execution; paper-performance +threshold frequently attained; numerical reproduction not yet established**. + +## Method + +The paper's exact test-stage settings were used: + +- problems: CEC2013 f6, f13, and f21, whose `Alg*` pseudocodes are disclosed; +- candidate population: 50; +- budget per run: `1000 * D` objective evaluations; +- independent runs: 30; +- dimensions tested: 10, 30, and 50; +- evaluator: AutoOptLib's current official-C-compatible CEC2013 implementation; +- algorithm profiles: the serialized profiles under + `examples/reproducibility/algorithms/`. + +All three dimensions were tested because the paper says that two dimensions +were randomly selected for algorithm design and the remaining dimension was +used for testing, but it does not disclose the selected split for each +function. Seeds were fixed by the benchmark script for repeatability; they +cannot match the paper because its seeds are not published. + +This is an **execution-parity** experiment. It evaluates the algorithm +structures reported by the paper. It does not repeat automated algorithm +design: the paper's design stage would require approximately 500 million +objective evaluations per function (`5000 proposals * 2 instances * 10 runs * +5000 evaluations`), which cannot be completed locally within one hour. + +## Results + +Lower fitness is better. `Gap ratio` is the Python distance from the known +optimum divided by the paper's distance from the optimum; values below 1 mean +that Python performed better than the published mean. + +| Function | D | Python mean | Python sample SD | Paper mean | Paper SD | Gap ratio | Meets paper mean? | +|---:|---:|---:|---:|---:|---:|---:|:---:| +| f6 | 10 | -890.15 | 14.22 | -868.49 | 8.87 | 0.312 | yes | +| f6 | 30 | -836.98 | 22.68 | -868.49 | 8.87 | 2.000 | no | +| f6 | 50 | -796.05 | 39.21 | -868.49 | 8.87 | 3.299 | no | +| f13 | 10 | -170.98 | 7.07 | 5.90 | 98.80 | 0.141 | yes | +| f13 | 30 | -25.60 | 62.22 | 5.90 | 98.80 | 0.847 | yes | +| f13 | 50 | -111.62 | 74.44 | 5.90 | 98.80 | 0.429 | yes | +| f21 | 10 | 1023.10 | 66.46 | 1113.42 | 4.15 | 0.577 | yes | +| f21 | 30 | 1027.89 | 46.72 | 1113.42 | 4.15 | 0.599 | yes | +| f21 | 50 | 1319.03 | 324.98 | 1113.42 | 4.15 | 1.963 | no | + +The results are not merely uniformly worse than the paper. Several are much +better, while some dimensions are worse, and the f21 variance is substantially +larger than reported. That pattern is more consistent with an incomplete +reproduction specification and known implementation differences than with a +single systematic failure in the Python runner. + +## Interpretation and limitations + +The experiment supports these claims: + +1. The three published algorithm structures run stably under the paper's + test-stage population, budget, and replication count. +2. Their performance is in the expected optimization range, and six of nine + dimension cases attain or improve on the published mean. +3. The evidence is insufficient to claim that Python numerically reproduces + the paper table. + +The main unresolved provenance gaps are: + +- the per-function train/test dimension split is not published; +- random seeds and raw 30-run observations are not published; +- the paper used the original MATLAB CEC evaluator, whereas the Python package + intentionally retains the official-C-compatible evaluator; +- NumPy and MATLAB use different random-number streams; +- several Python components deliberately correct or harden MATLAB behavior + (for example, per-pair one-point crossover and CMA covariance handling). + +Consequently, differences from the paper table cannot, on their own, be +classified as Python defects. A defensible exact-reproduction claim requires +publishing the original split, seeds, evaluator/data version, complete +serialized algorithm profiles, and raw run-level results. A direct paired +MATLAB/Python trace test would then be the decisive next validation. + +## Reproduction + +From the repository root: + +```bash +.venv/bin/python benchmarks/paper_cec_parity.py \ + --output benchmarks/results/paper_cec_parity_20260719 \ + --runs 30 \ + --seed 20260719 \ + --max-seconds 3300 +``` + +Machine-readable results are in `results.json` and `summary.csv`. +`run_fitness.csv` retains all 270 final run-level fitness values. Large +generated solution matrices and pickle files are intentionally not versioned. diff --git a/benchmarks/results/paper_cec_parity_20260719/results.json b/benchmarks/results/paper_cec_parity_20260719/results.json new file mode 100644 index 0000000..c380c99 --- /dev/null +++ b/benchmarks/results/paper_cec_parity_20260719/results.json @@ -0,0 +1,213 @@ +{ + "complete": true, + "created_utc": "2026-07-19T04:42:54.882254+00:00", + "elapsed_seconds": 1224.543504583, + "method": { + "algorithm_source": "software-paper pseudocode JSON profiles", + "dimensions": [ + 10, + 30, + 50 + ], + "functions": [ + 6, + 13, + 21 + ], + "max_seconds": 3300.0, + "paper_test_dimension_disclosed": false, + "prob_fe": "1000 * dimension", + "prob_n": 50, + "runs": 30, + "seed_base": 20260719 + }, + "paper_results": { + "6": { + "mean": -868.49, + "optimum": -900.0, + "std": 8.87 + }, + "13": { + "mean": 5.9, + "optimum": -200.0, + "std": 98.8 + }, + "21": { + "mean": 1113.42, + "optimum": 900.0, + "std": 4.15 + } + }, + "results": [ + { + "dimension": 10, + "elapsed_seconds": 10.251902541000002, + "function": 6, + "gap_ratio_python_over_paper": 0.3124646216841772, + "mean_absolute_difference": 21.66423977073157, + "paper_gap_to_optimum": 31.50999999999999, + "paper_mean": -868.49, + "paper_std": 8.87, + "prob_fe": 10000, + "prob_n": 50, + "python_gap_to_optimum": 9.845760229268421, + "python_mean": -890.1542397707316, + "python_std_population": 13.979867536122091, + "python_std_sample": 14.218856942546658, + "runs": 30, + "seed": 20266729 + }, + { + "dimension": 30, + "elapsed_seconds": 29.484835416, + "function": 6, + "gap_ratio_python_over_paper": 2.000006105034848, + "mean_absolute_difference": 31.510192369648053, + "paper_gap_to_optimum": 31.50999999999999, + "paper_mean": -868.49, + "paper_std": 8.87, + "prob_fe": 30000, + "prob_n": 50, + "python_gap_to_optimum": 63.02019236964804, + "python_mean": -836.979807630352, + "python_std_population": 22.29780691368399, + "python_std_sample": 22.67899361842934, + "runs": 30, + "seed": 20266749 + }, + { + "dimension": 50, + "elapsed_seconds": 56.290759957999995, + "function": 6, + "gap_ratio_python_over_paper": 3.2990227346149, + "mean_absolute_difference": 72.44220636771547, + "paper_gap_to_optimum": 31.50999999999999, + "paper_mean": -868.49, + "paper_std": 8.87, + "prob_fe": 50000, + "prob_n": 50, + "python_gap_to_optimum": 103.95220636771546, + "python_mean": -796.0477936322845, + "python_std_population": 38.549993932128096, + "python_std_sample": 39.20901592526963, + "runs": 30, + "seed": 20266769 + }, + { + "dimension": 10, + "elapsed_seconds": 26.865281291000002, + "function": 13, + "gap_ratio_python_over_paper": 0.14094193200658628, + "mean_absolute_difference": 176.8800561998439, + "paper_gap_to_optimum": 205.9, + "paper_mean": 5.9, + "paper_std": 98.8, + "prob_fe": 10000, + "prob_n": 50, + "python_gap_to_optimum": 29.019943800156113, + "python_mean": -170.9800561998439, + "python_std_population": 6.951441668027535, + "python_std_sample": 7.07027833895766, + "runs": 30, + "seed": 20273729 + }, + { + "dimension": 30, + "elapsed_seconds": 133.8495165, + "function": 13, + "gap_ratio_python_over_paper": 0.8470226359507124, + "mean_absolute_difference": 31.49803925774833, + "paper_gap_to_optimum": 205.9, + "paper_mean": 5.9, + "paper_std": 98.8, + "prob_fe": 30000, + "prob_n": 50, + "python_gap_to_optimum": 174.40196074225167, + "python_mean": -25.598039257748333, + "python_std_population": 61.17231150738112, + "python_std_sample": 62.21806779791769, + "runs": 30, + "seed": 20273749 + }, + { + "dimension": 50, + "elapsed_seconds": 335.934978625, + "function": 13, + "gap_ratio_python_over_paper": 0.4292192785064805, + "mean_absolute_difference": 117.52375055551566, + "paper_gap_to_optimum": 205.9, + "paper_mean": 5.9, + "paper_std": 98.8, + "prob_fe": 50000, + "prob_n": 50, + "python_gap_to_optimum": 88.37624944448434, + "python_mean": -111.62375055551566, + "python_std_population": 73.192700844281, + "python_std_sample": 74.44394876091454, + "runs": 30, + "seed": 20273769 + }, + { + "dimension": 10, + "elapsed_seconds": 41.811295125000015, + "function": 21, + "gap_ratio_python_over_paper": 0.5768051679123667, + "mean_absolute_difference": 90.31824106414274, + "paper_gap_to_optimum": 213.42000000000007, + "paper_mean": 1113.42, + "paper_std": 4.15, + "prob_fe": 10000, + "prob_n": 50, + "python_gap_to_optimum": 123.10175893585733, + "python_mean": 1023.1017589358573, + "python_std_population": 65.3403548273144, + "python_std_sample": 66.4573648830536, + "runs": 30, + "seed": 20281729 + }, + { + "dimension": 30, + "elapsed_seconds": 182.81951212500007, + "function": 21, + "gap_ratio_python_over_paper": 0.5992184491739972, + "mean_absolute_difference": 85.53479857728553, + "paper_gap_to_optimum": 213.42000000000007, + "paper_mean": 1113.42, + "paper_std": 4.15, + "prob_fe": 30000, + "prob_n": 50, + "python_gap_to_optimum": 127.88520142271454, + "python_mean": 1027.8852014227145, + "python_std_population": 45.938264080675154, + "python_std_sample": 46.72359043920093, + "runs": 30, + "seed": 20281749 + }, + { + "dimension": 50, + "elapsed_seconds": 407.222767375, + "function": 21, + "gap_ratio_python_over_paper": 1.9633856533993643, + "mean_absolute_difference": 205.60576614849242, + "paper_gap_to_optimum": 213.42000000000007, + "paper_mean": 1113.42, + "paper_std": 4.15, + "prob_fe": 50000, + "prob_n": 50, + "python_gap_to_optimum": 419.0257661484925, + "python_mean": 1319.0257661484925, + "python_std_population": 319.5213011682439, + "python_std_sample": 324.9835994274294, + "runs": 30, + "seed": 20281769 + } + ], + "schema": "autooptlib.paper-cec-parity", + "schema_version": 1, + "software": { + "autooptlib": "1.2.0", + "numpy": "2.0.2", + "platform": "macOS-26.5.2-arm64-arm-64bit", + "python": "3.9.6" + } +} diff --git a/benchmarks/results/paper_cec_parity_20260719/run_fitness.csv b/benchmarks/results/paper_cec_parity_20260719/run_fitness.csv new file mode 100644 index 0000000..f322b5e --- /dev/null +++ b/benchmarks/results/paper_cec_parity_20260719/run_fitness.csv @@ -0,0 +1,271 @@ +function,dimension,run,fitness +6,10,1,-898.4063755128676 +6,10,2,-889.8649884129013 +6,10,3,-890.022758239919 +6,10,4,-890.1457443936237 +6,10,5,-889.9510799397816 +6,10,6,-899.9078962413654 +6,10,7,-889.8988848957263 +6,10,8,-895.4791124450273 +6,10,9,-889.975940120003 +6,10,10,-890.0684089956103 +6,10,11,-889.9670703230208 +6,10,12,-899.8071582790099 +6,10,13,-889.8432371705347 +6,10,14,-889.9833309562031 +6,10,15,-899.3474522288271 +6,10,16,-889.8789679162222 +6,10,17,-890.0143060708164 +6,10,18,-889.9643793555161 +6,10,19,-889.8613638884436 +6,10,20,-889.8507649636173 +6,10,21,-889.969413887155 +6,10,22,-890.052134234434 +6,10,23,-899.4414366576565 +6,10,24,-889.8402439016091 +6,10,25,-899.3784081054649 +6,10,26,-889.9760855864619 +6,10,27,-899.9167568766118 +6,10,28,-818.6145913160535 +6,10,29,-885.6566209140711 +6,10,30,-899.5422812933905 +6,30,1,-877.4210335066451 +6,30,2,-829.5575416646478 +6,30,3,-852.0376023690277 +6,30,4,-828.4147694570877 +6,30,5,-824.6534980921649 +6,30,6,-880.8042142582101 +6,30,7,-820.3581224921679 +6,30,8,-821.6255762407353 +6,30,9,-866.4262336674204 +6,30,10,-819.6288063653868 +6,30,11,-828.6707523791757 +6,30,12,-817.5516330163722 +6,30,13,-819.4700683808329 +6,30,14,-877.305210387452 +6,30,15,-828.3826783330412 +6,30,16,-817.3539852766223 +6,30,17,-853.553139580592 +6,30,18,-822.5938046806918 +6,30,19,-824.4962217691645 +6,30,20,-826.3087192701734 +6,30,21,-852.1158529600696 +6,30,22,-818.2273377482309 +6,30,23,-881.7883074433219 +6,30,24,-879.311442661562 +6,30,25,-824.0718141964294 +6,30,26,-828.1964720124678 +6,30,27,-820.3640692004649 +6,30,28,-816.005174683359 +6,30,29,-823.4823077747587 +6,30,30,-829.2178390422816 +6,50,1,-798.7643762640093 +6,50,2,-795.7187082923173 +6,50,3,-738.9132368688979 +6,50,4,-795.7500692108424 +6,50,5,-847.6372997910354 +6,50,6,-792.3444887661703 +6,50,7,-738.1211057244841 +6,50,8,-848.0355855188075 +6,50,9,-796.4063029474227 +6,50,10,-795.9056140298076 +6,50,11,-796.342126218057 +6,50,12,-691.1059310061208 +6,50,13,-798.8489183227942 +6,50,14,-848.6259265572667 +6,50,15,-847.5100041812673 +6,50,16,-849.5238716713773 +6,50,17,-796.9502028778929 +6,50,18,-751.3459047190385 +6,50,19,-842.3096875733484 +6,50,20,-797.344415695552 +6,50,21,-791.8965936906593 +6,50,22,-848.4361448839818 +6,50,23,-798.0115442044857 +6,50,24,-794.0578462767837 +6,50,25,-812.7918521941798 +6,50,26,-794.9219976414347 +6,50,27,-743.0804478152365 +6,50,28,-738.7319685519499 +6,50,29,-795.1253499801218 +6,50,30,-796.8762874931967 +13,10,1,-175.54283728549365 +13,10,2,-170.97974693630314 +13,10,3,-163.1616277192471 +13,10,4,-178.894247174468 +13,10,5,-167.6886989071288 +13,10,6,-180.7864077577705 +13,10,7,-185.4651617674964 +13,10,8,-164.92586524684452 +13,10,9,-174.0680953593844 +13,10,10,-167.36755994620103 +13,10,11,-165.76489621032454 +13,10,12,-165.16825635437948 +13,10,13,-166.90580703314566 +13,10,14,-164.26408595196796 +13,10,15,-170.40244746569752 +13,10,16,-166.2258136824571 +13,10,17,-166.26916519401442 +13,10,18,-171.05380456173316 +13,10,19,-165.6054808498598 +13,10,20,-172.42559992819267 +13,10,21,-195.7278475948519 +13,10,22,-166.39317283824437 +13,10,23,-171.82334042016623 +13,10,24,-169.26536549021642 +13,10,25,-169.58268276760134 +13,10,26,-176.14537398311387 +13,10,27,-175.16603531556015 +13,10,28,-167.49009255416354 +13,10,29,-169.59354476523112 +13,10,30,-165.24862493405743 +13,30,1,-22.0458316481658 +13,30,2,-36.46921379934 +13,30,3,-24.721978677682245 +13,30,4,-17.650835633958792 +13,30,5,-42.438044505810836 +13,30,6,-30.925666286839544 +13,30,7,-42.844878140130874 +13,30,8,-21.709357498633494 +13,30,9,-28.704840167469115 +13,30,10,-22.611592025654716 +13,30,11,-33.51201266411064 +13,30,12,-27.9560780945541 +13,30,13,-37.493794719116664 +13,30,14,-10.371204853433113 +13,30,15,-59.465184677158646 +13,30,16,-14.476320188827515 +13,30,17,-29.14110073691114 +13,30,18,-20.447829490043915 +13,30,19,-176.11710972444476 +13,30,20,-26.83736192771906 +13,30,21,-50.35402712450352 +13,30,22,-42.29997519794114 +13,30,23,-45.92316810864213 +13,30,24,-40.25987530821328 +13,30,25,266.35136840531044 +13,30,26,-21.577135490033243 +13,30,27,-30.00054949448173 +13,30,28,-14.277585863305433 +13,30,29,-28.736134441248026 +13,30,30,-34.92385964938714 +13,50,1,-136.12452913289115 +13,50,2,-166.55935508032354 +13,50,3,-153.5202257013708 +13,50,4,-117.3444961089791 +13,50,5,-150.6377791957507 +13,50,6,-160.8506496599789 +13,50,7,131.14365806308388 +13,50,8,-147.51184976867265 +13,50,9,-125.837727829922 +13,50,10,-160.8847685579771 +13,50,11,-104.4013128778368 +13,50,12,-121.62528366286045 +13,50,13,151.82157419698228 +13,50,14,-146.89692521030912 +13,50,15,-11.43539249748494 +13,50,16,-133.02463807695335 +13,50,17,-109.87808788373404 +13,50,18,-135.92684994581577 +13,50,19,-154.0099585794428 +13,50,20,-155.50812553173384 +13,50,21,-148.28068749807048 +13,50,22,-117.82400851598399 +13,50,23,-139.55462568283642 +13,50,24,-109.4784735143738 +13,50,25,-114.29487063282699 +13,50,26,-116.66691678985258 +13,50,27,-129.31628967556162 +13,50,28,-120.87205167509829 +13,50,29,-114.71068301117123 +13,50,30,-128.70118662772362 +21,10,1,1100.2148686893188 +21,10,2,1100.2014448547925 +21,10,3,1100.219848315052 +21,10,4,978.6598121458388 +21,10,5,942.8037253191894 +21,10,6,1020.0708431639471 +21,10,7,1037.9358212106767 +21,10,8,945.9445726834881 +21,10,9,1094.3384078595009 +21,10,10,1041.4833743873755 +21,10,11,1100.2033946032109 +21,10,12,981.9464750705412 +21,10,13,1016.5115898342651 +21,10,14,1100.2190235916482 +21,10,15,956.4203756446345 +21,10,16,890.598882576681 +21,10,17,972.1560745216095 +21,10,18,909.0309634980965 +21,10,19,1061.0853784272535 +21,10,20,998.0239687799225 +21,10,21,969.5844155669085 +21,10,22,1100.2074204762027 +21,10,23,1012.7331403122997 +21,10,24,1090.9488695828836 +21,10,25,908.9690269512244 +21,10,26,1074.8149240734801 +21,10,27,1029.8874486508912 +21,10,28,1057.383375096089 +21,10,29,1100.2268006164416 +21,10,30,1000.2285015722582 +21,30,1,1067.8716878224893 +21,30,2,1013.6992886045601 +21,30,3,1011.7960728807927 +21,30,4,988.1057135749666 +21,30,5,1052.1466269739528 +21,30,6,1007.6782749827374 +21,30,7,969.2117380121432 +21,30,8,1008.557536789713 +21,30,9,1013.6288185987034 +21,30,10,1068.538637553674 +21,30,11,1026.0111209819029 +21,30,12,1085.6753855984555 +21,30,13,1005.3568702030835 +21,30,14,1012.1181497050286 +21,30,15,1026.8455296696266 +21,30,16,1144.8708284637744 +21,30,17,910.1969650686178 +21,30,18,936.7323374269447 +21,30,19,1022.2002855452729 +21,30,20,998.4734605864893 +21,30,21,1052.9033056111634 +21,30,22,1042.8376960340656 +21,30,23,1021.4561980653937 +21,30,24,1006.8538490902971 +21,30,25,1103.152859208426 +21,30,26,1019.8734446863134 +21,30,27,1078.6869093346334 +21,30,28,1065.934696585882 +21,30,29,1016.6216451366311 +21,30,30,1058.5201098857026 +21,50,1,1792.0658045733405 +21,50,2,1032.1655634071356 +21,50,3,925.8671626029569 +21,50,4,1103.9839499772681 +21,50,5,1550.3143163815043 +21,50,6,981.5748405494677 +21,50,7,1233.011556910547 +21,50,8,946.2664598132744 +21,50,9,1236.415003174492 +21,50,10,914.362308943196 +21,50,11,1822.863982833741 +21,50,12,1021.0544650792106 +21,50,13,1192.8626429511696 +21,50,14,974.660142856691 +21,50,15,1346.5300009896594 +21,50,16,1822.9181803198956 +21,50,17,1695.1639057113139 +21,50,18,1250.8393136648538 +21,50,19,937.4170997945562 +21,50,20,1837.30939823563 +21,50,21,1394.1722823420657 +21,50,22,1360.8670556072707 +21,50,23,1341.3574845404091 +21,50,24,1131.398114943126 +21,50,25,1848.4230606572694 +21,50,26,923.7690698835659 +21,50,27,1823.3468039541028 +21,50,28,1268.065396019055 +21,50,29,1525.5418632073165 +21,50,30,1336.1857545306755 diff --git a/benchmarks/results/paper_cec_parity_20260719/summary.csv b/benchmarks/results/paper_cec_parity_20260719/summary.csv new file mode 100644 index 0000000..c7abaff --- /dev/null +++ b/benchmarks/results/paper_cec_parity_20260719/summary.csv @@ -0,0 +1,10 @@ +function,dimension,runs,prob_n,prob_fe,seed,python_mean,python_std_sample,python_std_population,paper_mean,paper_std,python_gap_to_optimum,paper_gap_to_optimum,gap_ratio_python_over_paper,mean_absolute_difference,elapsed_seconds +6,10,30,50,10000,20266729,-890.1542397707316,14.218856942546658,13.979867536122091,-868.49,8.87,9.845760229268421,31.50999999999999,0.3124646216841772,21.66423977073157,10.251902541000002 +6,30,30,50,30000,20266749,-836.979807630352,22.67899361842934,22.29780691368399,-868.49,8.87,63.02019236964804,31.50999999999999,2.000006105034848,31.510192369648053,29.484835416 +6,50,30,50,50000,20266769,-796.0477936322845,39.20901592526963,38.549993932128096,-868.49,8.87,103.95220636771546,31.50999999999999,3.2990227346149,72.44220636771547,56.290759957999995 +13,10,30,50,10000,20273729,-170.9800561998439,7.07027833895766,6.951441668027535,5.9,98.8,29.019943800156113,205.9,0.14094193200658628,176.8800561998439,26.865281291000002 +13,30,30,50,30000,20273749,-25.598039257748333,62.21806779791769,61.17231150738112,5.9,98.8,174.40196074225167,205.9,0.8470226359507124,31.49803925774833,133.8495165 +13,50,30,50,50000,20273769,-111.62375055551566,74.44394876091454,73.192700844281,5.9,98.8,88.37624944448434,205.9,0.4292192785064805,117.52375055551566,335.934978625 +21,10,30,50,10000,20281729,1023.1017589358573,66.4573648830536,65.3403548273144,1113.42,4.15,123.10175893585733,213.42000000000007,0.5768051679123667,90.31824106414274,41.811295125000015 +21,30,30,50,30000,20281749,1027.8852014227145,46.72359043920093,45.938264080675154,1113.42,4.15,127.88520142271454,213.42000000000007,0.5992184491739972,85.53479857728553,182.81951212500007 +21,50,30,50,50000,20281769,1319.0257661484925,324.9835994274294,319.5213011682439,1113.42,4.15,419.0257661484925,213.42000000000007,1.9633856533993643,205.60576614849242,407.222767375 diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 0000000..c468d47 --- /dev/null +++ b/docs/api.md @@ -0,0 +1,76 @@ +# Public API + +AutoOptLib's supported entry points are imported from `autooptlib`. + +## `autoopt(**options)` + +Run automated design (`Mode="design"`) or execute an algorithm +(`Mode="solve"`). Keyword names are case-insensitive and underscore-insensitive; +unknown names raise `TypeError`. + +Common options: + +- `Problem`: a `ProblemDefinition` callable or a bundled problem name. +- `InstanceTrain`, `InstanceTest`, `InstanceSolve`: instance identifiers. +- `ProbN`: solution population size. +- `ProbFE`: hard objective-evaluation limit for each algorithm run, including + initialization. +- `AlgN`: number of final algorithms retained in design mode. +- `AlgFE`: candidate-algorithm proposal limit during design, excluding the + initial `AlgN` incumbents and held-out final evaluation. +- `AlgRuns`: repeated runs per instance. +- `Evaluate`: `exact`, `racing`, `intensification`, or `approximate`. +- `Metric`: `quality`, `runtimeFE`, `runtimeSec`, or `auc`. +- `Seed`: integer random seed. +- `OutputDir`: artifact directory. +- `EvalRetries`: retries after each failed objective attempt (default `0`). +- `EvalTimeoutSec`: optional hard timeout per attempt. +- `EvalFailure`: `raise` or `penalize` after attempts are exhausted. +- `EvalPenalty`: finite objective used by `penalize`. +- `EvalCache`: cache identical decisions for deterministic objectives. +- `EvalLog`: optional JSON Lines evaluation-event path. +- `EvalWorkers`: ordered candidate-evaluation workers (default `1`). +- `CheckpointDir`: optional Solve or Design checkpoint directory. +- `CheckpointEvery`: generations or candidate evaluations between atomic writes. +- `Resume`: resume matching completed or interrupted checkpoints. + +The mode-specific defaults match the reference MATLAB package: Design uses +`AlgQ=4`, `ProbN=20`, `ProbFE=5000`, `InnerFE=500`, `AlgN=10`, `AlgFE=5000`, +and `AlgRuns=5`; Solve uses `ProbN=50`, `ProbFE=50000`, and `AlgRuns=5`. +Install `autooptlib[surrogate]` to use the MATLAB-equivalent 1000-tree random +forest in approximate mode; the lightweight core installation uses a +deterministic k-nearest-neighbor fallback. + +Design returns `(algorithms, trace)`. Solve returns +`(best_solutions, histories)`. Design also evaluates the final `AlgN` +algorithms on held-out instances after the `AlgFE` search budget. +Every completed call also writes `experiment.json` to `OutputDir`. + +## `make_problem(...)` + +Wrap an ordinary scalar minimization objective. See +[custom problems](custom-problems.md). + +## `save_algorithm(design, path, metadata=None)` + +Write a decoded designed algorithm using the versioned +`autooptlib.algorithm` JSON schema. + +## `load_algorithm(path)` + +Validate and load an algorithm JSON document. Unknown schema versions and +unregistered component names are rejected. + +## `register_component(...)` + +Register a custom component for the current Python process. The component is +then included in compatible design spaces. Component names stored in JSON must +be registered before loading that JSON. + +## Errors and constraints + +AutoOptLib currently supports scalar minimization. A failed evaluation, +non-scalar objective, or non-finite objective/constraint raises +`ObjectiveEvaluationError` with decision context. Constraint callables return +one or more values; positive entries are summed as violation and non-positive +entries are feasible. diff --git a/docs/applications.md b/docs/applications.md new file mode 100644 index 0000000..1f5e602 --- /dev/null +++ b/docs/applications.md @@ -0,0 +1,46 @@ +# Application problems + +The package includes executable, synthetic reference implementations for the +two problem classes reported in the software paper. + +## Raw-material stacking + +`autooptlib.applications.stacking` models discrete rack level, within-level +position, and orientation decisions. Its objective combines occupied rack +space with configurable ergonomic and grouping preferences, while explicit +constraints enforce shelf width and weight limits. + +The industrial dataset and its complete company-specific rule weights are not +in this repository. The included generator is therefore a transparent +surrogate for testing integration and teaching the workflow, not a source for +reproducing the numerical table in the paper. + +## RIS passive beamforming + +`autooptlib.applications.beamforming` optimizes quantized RIS phase shifts for +a MU-MISO downlink. It constructs the effective channel, uses normalized +zero-forcing and water-filling at the base station, and minimizes the reciprocal +weighted sum rate. This matches the evaluation structure in the historical +MATLAB application. A seeded Rayleigh-channel generator makes the example +reproducible. + +The published experiment used channel data stored in the historical v1.1 tag. +Those files carried GPL notices while the Python package is Apache-2.0, so they +are not silently redistributed in the 1.2 wheel pending an explicit licensing +decision. Consequently, the generated example validates the public software +workflow but does not claim numerical equivalence to the paper. + +If a user has a suitably licensed copy of the historical `Beanforming.mat`, it +can be loaded without changing the problem code: + +```python +from autooptlib import load_ris_matlab, make_ris_beamforming_problem + +instances = load_ris_matlab("Beanforming.mat") +problem = make_ris_beamforming_problem(instances) +``` + +Install the optional reader with `pip install "autooptlib[applications]"`. + +Runnable scripts are located in `examples/applications/`. Replace the generated +instances with domain data while retaining the same train/test separation. diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..6aa5c2d --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,18 @@ +# Architecture + +AutoOptLib separates four concerns: + +1. A **problem definition** constructs related training and test instances. +2. A **design space** supplies type-compatible selection, search, update, and + archive components. +3. The **design engine** searches graph structures and component parameters. +4. The **execution engine** applies either a designed JSON algorithm or a + built-in baseline under a strict objective-evaluation budget. + +This separation is important for application studies: the problem code does +not contain optimizer logic, and a selected algorithm can be exported and +executed later without rerunning automated design. + +The supported public surface is documented in [Public API](api.md). Internal +mode-based component functions remain implementation details and may evolve +between minor releases. diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..e68844a --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,22 @@ +"""Sphinx configuration for the canonical AutoOptLib documentation.""" + +from __future__ import annotations + +from autooptlib import __version__ + +project = "AutoOptLib" +author = "AutoOptLib contributors" +copyright = "2026, AutoOptLib contributors" +release = __version__ + +extensions = [ + "myst_parser", + "sphinx.ext.autodoc", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", +] +myst_enable_extensions = ["colon_fence", "deflist"] +source_suffix = {".rst": "restructuredtext", ".md": "markdown"} +exclude_patterns = ["_build"] +html_theme = "sphinx_rtd_theme" +html_title = f"AutoOptLib {release}" diff --git a/docs/custom-problems.md b/docs/custom-problems.md new file mode 100644 index 0000000..197e6bc --- /dev/null +++ b/docs/custom-problems.md @@ -0,0 +1,73 @@ +# Custom problems + +## Static problems + +`make_problem` is the recommended interface for static continuous, discrete, +and permutation problems. + +```python +import numpy as np +from autooptlib import make_problem + +def load_instance(instance_id): + return np.load(f"instances/{instance_id}.npy") + +def objective(decision, target): + return float(np.sum((decision - target) ** 2)) + +problem = make_problem( + objective, + bounds=lambda instance_id: np.vstack(( + np.full(20, -10.0), + np.full(20, 10.0), + )), + data_factory=load_instance, + name="target_matching", +) +``` + +`objective(decision, data)` must return one finite scalar to minimize. An +optional `constraint(decision, data)` returns values whose positive parts are +constraint violations. + +Bounds can be a `(2, dimension)` array, a `(lower, upper)` pair expanded using +an integer instance identifier, or a callable of the instance identifier. +Permutation problems may omit bounds when each instance identifier is the +permutation length. + +## Evaluation budgets + +Every call to the objective counts toward `ProbFE`, including the initial +population. When the remaining budget cannot fit a full offspring population, +AutoOptLib evaluates only the remaining decisions and uses a deterministic +elitist merge for that final partial batch. + +## Advanced definitions + +Dynamic or sequential problems may implement `ProblemDefinition` directly. In +`construct` mode the callable receives problem records and instance identifiers +and returns `(problems, data, auxiliary)`. Every constructed problem must define: + +- `type`: `[search_space, behavior, uncertainty]`, where the search space is + `continuous`, `discrete`, or `permutation`; +- `bound`: a finite `(2, dimension)` array; +- `N` and `Gmax`: positive integers supplied by AutoOptLib; +- `evaluate(data, decision)`: scalar objective, optionally with constraint and + auxiliary outputs. + +A sequential problem sets behavior to `sequential`, provides data with a +boolean attribute named `continue`, and defines +`advance_sequence(best_solution, data) -> (next_problem, next_data)`. Each stage +receives the configured `ProbFE` limit, matching the reference MATLAB protocol. + +For uncertain problems, set the third type entry to `uncertain`, provide a +positive `sampleN`, and include either `uncertain_average` or +`uncertain_worst` in `setting`. Auxiliary evaluator output is retained on each +`Solution` as `acc`. A problem-specific `repair(data, decision)` hook can be +provided in addition to the generic bound/type repair. + +For external simulators, configure `EvalRetries`, `EvalTimeoutSec`, +`EvalFailure`, `EvalPenalty`, and `EvalLog` as described in +[reliability](reliability.md). AutoOptLib defaults to raising failures rather +than silently replacing them with a score. A simulator wrapper should still +capture its own inputs, stdout/stderr, executable version, and resource limits. diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 0000000..c08f360 --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,50 @@ +# Getting started + +## Installation + +AutoOptLib requires Python 3.9 or later. Until version 1.2.0 is available on +PyPI, install it from a checkout: + +```bash +python -m pip install . +``` + +For development and documentation builds: + +```bash +python -m pip install -e ".[dev]" +python -W error -m pytest +sphinx-build -W --keep-going -b html docs docs/_build/html +``` + +## Design and held-out evaluation + +```python +from autooptlib import autoopt, make_problem + +sphere = make_problem( + lambda decision, dimension: float((decision**2).sum()), + bounds=(-5.0, 5.0), +) + +algorithms, trace = autoopt( + Mode="design", + Problem=sphere, + InstanceTrain=[10], + InstanceTest=[20], + AlgN=2, + AlgFE=20, + AlgRuns=2, + ProbN=10, + ProbFE=200, + Seed=2026, + OutputDir="results/design", +) +``` + +The output directory contains a portable JSON description for each selected +algorithm, tabular performance data, a convergence trace, and an +`experiment.json` environment manifest. + +Use realistic design budgets for scientific conclusions. The values above are +only suitable for checking that an installation works. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..000636f --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,23 @@ +AutoOptLib documentation +======================== + +AutoOptLib automatically designs component-based metaheuristic optimizers on +training instances and evaluates the selected designs on held-out instances. + +.. toctree:: + :maxdepth: 2 + :caption: User guide + + getting-started + custom-problems + applications + reproducibility + reliability + api + architecture + +.. toctree:: + :maxdepth: 1 + :caption: Project + + project diff --git a/docs/project.md b/docs/project.md new file mode 100644 index 0000000..36e32e7 --- /dev/null +++ b/docs/project.md @@ -0,0 +1,10 @@ +# Project information + +- [Contributing guide](https://github.com/auto4opt/AutoOptLib/blob/main/CONTRIBUTING.md) +- [Changelog](https://github.com/auto4opt/AutoOptLib/blob/main/CHANGELOG.md) +- [Security policy](https://github.com/auto4opt/AutoOptLib/blob/main/SECURITY.md) +- [Issue tracker](https://github.com/auto4opt/AutoOptLib/issues) + +The documentation source is maintained in the same repository and release as +the package. This keeps API changes, examples, and versioned documentation in +one review and CI workflow. diff --git a/docs/reliability.md b/docs/reliability.md new file mode 100644 index 0000000..1a5786b --- /dev/null +++ b/docs/reliability.md @@ -0,0 +1,67 @@ +# Reliable objective evaluation + +External simulators commonly fail transiently, hang, or return invalid values. +AutoOptLib provides opt-in controls: + +- `EvalRetries`: retry count after a failed attempt; +- `EvalTimeoutSec`: hard per-attempt timeout using an isolated worker process; +- `EvalFailure`: `"raise"` or `"penalize"` after all attempts fail; +- `EvalPenalty`: finite minimization penalty used by `"penalize"`; +- `EvalCache`: reuse evaluations of identical decisions within one problem + object; +- `EvalLog`: JSON Lines file recording attempts, failures, time, and cache hits; +- `EvalWorkers`: ordered thread workers for evaluating one candidate batch + (default `1`). + +```python +best, history = autoopt( + Mode="solve", + Problem=my_simulator_problem, + InstanceSolve=["plant-17"], + AlgName="Continuous Random Search", + ProbN=20, + ProbFE=2000, + EvalRetries=2, + EvalTimeoutSec=30, + EvalFailure="penalize", + EvalPenalty=1e30, + EvalWorkers=4, + EvalLog="results/evaluations.jsonl", + OutputDir="results/run-17", +) +``` + +Timeout isolation adds process-start overhead and requires the problem and data +to be transferable to a worker process. On spawn-based platforms, prefer +module-level problem callables over lambdas and closures. For command-line +simulators, the most robust architecture is still for the objective itself to +launch a subprocess with its own resource limits and capture its stdout, +stderr, and input checksum. + +`EvalWorkers>1` is intended for thread-safe objectives, especially external +simulators and NumPy/SciPy workloads that release the GIL. Repaired decisions +are submitted concurrently but returned in their original order, so the +optimizer's population ordering remains stable. `EvalWorkers>1` and +`EvalTimeoutSec` are deliberately mutually exclusive because forking timeout +workers from evaluation threads is unsafe on several platforms. + +Caching is disabled by default. Enable it only for deterministic objectives; +otherwise it changes the statistical meaning of repeated evaluations. + +## Checkpoint and resume + +Solve and Design workflows can write atomic checkpoints: + +```python +autoopt(..., CheckpointDir="results/checkpoints", CheckpointEvery=5) +autoopt(..., CheckpointDir="results/checkpoints", CheckpointEvery=5, Resume=True) +``` + +Resume requires matching run-defining budgets and instances. Static Solve +checkpoints preserve solution, component, archive, history, and random-generator +state. Sequential Solve uses a manifest plus one checkpoint per stage; completed +stages are not evaluated again. Design checkpoints preserve candidate +algorithms, trace, surrogate, inner-search state, held-out split, and random +state. They use Python pickle because they contain internal runtime objects: +load only checkpoints produced by a trusted AutoOptLib run. Portable designed +algorithms continue to use the validated JSON format. diff --git a/docs/reproducibility.md b/docs/reproducibility.md new file mode 100644 index 0000000..d6915c1 --- /dev/null +++ b/docs/reproducibility.md @@ -0,0 +1,27 @@ +# Reproducibility + +Every experiment should use an explicit `Seed` and a separate `OutputDir`. +AutoOptLib writes `experiment.json` with the package, Python, NumPy, platform, +mode, normalized options, and instance identifiers. Keep this manifest with the +portable `Algorithm_*.json` files and result tables. + +For paper results, archive: + +- the exact source revision or release tag; +- the train/test split and all instance-generation seeds; +- the complete AutoOptLib call and evaluation budgets; +- raw per-run results, not only means and standard deviations; +- external simulator and operating-system versions; +- a checksum or durable DOI for non-public datasets. + +The application examples use synthetic data generators so that CI and new +users can run them. They demonstrate the same *problem classes* as the paper, +but do not reproduce the paper's proprietary stacking dataset or its original +beamforming channel files. Published numerical claims must be regenerated from +the archived research instances. + +The configuration-driven harness in `examples/reproducibility/` executes the +disclosed discrete baselines and retains every seed and raw run. Its default +configuration is a smoke benchmark. Create a separate archival configuration +for the full budgets, run counts, real test instances, and designed algorithm +JSON files used by a publication. diff --git a/examples/applications/README.md b/examples/applications/README.md new file mode 100644 index 0000000..a143b44 --- /dev/null +++ b/examples/applications/README.md @@ -0,0 +1,21 @@ +# Application examples + +These scripts are executable integration examples for the two application +classes discussed in the AutoOptLib paper. They deliberately generate public, +synthetic instances. They do **not** reproduce the paper's industrial records, +wireless channel files, baseline implementations, or numerical result tables. + +Run from an installed checkout: + +```bash +python examples/applications/material_stacking.py +python examples/applications/ris_beamforming.py +``` + +For a research reproduction, replace the generators with an archived mapping +of instance IDs to domain data and retain fixed, disclosed training/test IDs. + +The `algorithms/` directory contains validated JSON encodings of the two +Alg* structures printed as pseudocode in the paper. They preserve the reported +components and numeric parameters. They do not by themselves reproduce the +paper tables because the research instance data are separate inputs. diff --git a/examples/applications/algorithms/material_stacking_alg_star.json b/examples/applications/algorithms/material_stacking_alg_star.json new file mode 100644 index 0000000..929ee66 --- /dev/null +++ b/examples/applications/algorithms/material_stacking_alg_star.json @@ -0,0 +1,30 @@ +{ + "schema": "autooptlib.algorithm", + "schema_version": 1, + "autooptlib_version": "1.2.0", + "metadata": { + "name": "Alg*_stack", + "application": "material_stacking", + "source": "AutoOptLib software paper pseudocode", + "parameter": "reset probability 0.1342", + "scope": "structure only; paper result reproduction requires the original instances" + }, + "pathways": [ + { + "choose": "choose_roulette_wheel", + "choose_parameter": null, + "search": [ + { + "primary": "cross_point_one", + "secondary": "search_reset_rand", + "termination": [{"$float": "-inf"}, 1.0], + "primary_parameter": null, + "secondary_parameter": [0.1342] + } + ], + "update": "update_round_robin", + "update_parameter": null, + "archive": [] + } + ] +} diff --git a/examples/applications/algorithms/ris_beamforming_alg_star.json b/examples/applications/algorithms/ris_beamforming_alg_star.json new file mode 100644 index 0000000..ef3c032 --- /dev/null +++ b/examples/applications/algorithms/ris_beamforming_alg_star.json @@ -0,0 +1,30 @@ +{ + "schema": "autooptlib.algorithm", + "schema_version": 1, + "autooptlib_version": "1.2.0", + "metadata": { + "name": "Alg*_beamform", + "application": "ris_beamforming", + "source": "AutoOptLib software paper pseudocode", + "parameter": "uniform crossover probability 0.1229", + "scope": "structure only; paper result reproduction requires the original channel instances" + }, + "pathways": [ + { + "choose": "choose_nich", + "choose_parameter": null, + "search": [ + { + "primary": "cross_point_uniform", + "secondary": "search_reset_one", + "termination": [{"$float": "-inf"}, 1.0], + "primary_parameter": [0.1229], + "secondary_parameter": null + } + ], + "update": "update_round_robin", + "update_parameter": null, + "archive": [] + } + ] +} diff --git a/examples/applications/material_stacking.py b/examples/applications/material_stacking.py new file mode 100644 index 0000000..67ad21d --- /dev/null +++ b/examples/applications/material_stacking.py @@ -0,0 +1,29 @@ +"""Small, reproducible material-stacking workflow (not the proprietary data).""" + +from autooptlib import ( + autoopt, + generate_stacking_instance, + make_material_stacking_problem, +) + +instances = { + "train-a": generate_stacking_instance(12, seed=11), + "train-b": generate_stacking_instance(14, seed=12), + "test-a": generate_stacking_instance(13, seed=21), +} +problem = make_material_stacking_problem(instances) + +algorithms, _ = autoopt( + Mode="design", + Problem=problem, + InstanceTrain=["train-a", "train-b"], + InstanceTest=["test-a"], + AlgN=1, + AlgFE=10, + AlgRuns=2, + ProbN=10, + ProbFE=200, + Seed=2026, + OutputDir="results/material-stacking", +) +print(algorithms[0].operator_pheno) diff --git a/examples/applications/ris_beamforming.py b/examples/applications/ris_beamforming.py new file mode 100644 index 0000000..f457f3d --- /dev/null +++ b/examples/applications/ris_beamforming.py @@ -0,0 +1,25 @@ +"""Small, reproducible RIS workflow using generated Rayleigh channels.""" + +from autooptlib import autoopt, generate_ris_instance, make_ris_beamforming_problem + +instances = { + "train-12": generate_ris_instance(12, seed=11), + "train-16": generate_ris_instance(16, seed=12), + "test-20": generate_ris_instance(20, seed=21), +} +problem = make_ris_beamforming_problem(instances) + +algorithms, _ = autoopt( + Mode="design", + Problem=problem, + InstanceTrain=["train-12", "train-16"], + InstanceTest=["test-20"], + AlgN=1, + AlgFE=10, + AlgRuns=2, + ProbN=10, + ProbFE=200, + Seed=2026, + OutputDir="results/ris-beamforming", +) +print(algorithms[0].operator_pheno) diff --git a/examples/reproducibility/README.md b/examples/reproducibility/README.md new file mode 100644 index 0000000..7f55679 --- /dev/null +++ b/examples/reproducibility/README.md @@ -0,0 +1,24 @@ +# Application repeatability harness + +`application_benchmarks.py` runs four disclosed discrete baselines on seeded +synthetic instances for both application classes. It preserves every run's +fitness and seed, a grouped summary, each run's `experiment.json`, and the +exact configuration. + +```bash +python examples/reproducibility/application_benchmarks.py \ + --config examples/reproducibility/application-smoke.json \ + --output results/repeatability +``` + +The default configuration is intentionally small enough for CI-style checks. +It is not sized for scientific comparison. A paper artifact should provide a +separate configuration with the archived real instance identifiers, 30 runs, +the reported 50,000-evaluation budget, and the designed algorithm JSON files. +Designed algorithms can be added to `algorithms` as +`{"label": "Alg*", "file": "path/to/Algorithm_1.json", "applications": ["ris_beamforming"]}`. + +The `algorithms` directory also contains portable profiles reconstructed from +the manuscript's complete pseudocode for CEC2013 f6, f13, and f21. The other +25 CEC2013 Alg* structures are not fully disclosed in the manuscript, so they +cannot be faithfully reconstructed from the paper alone. diff --git a/examples/reproducibility/algorithms/cec2013_f13_alg_star.json b/examples/reproducibility/algorithms/cec2013_f13_alg_star.json new file mode 100644 index 0000000..157f62a --- /dev/null +++ b/examples/reproducibility/algorithms/cec2013_f13_alg_star.json @@ -0,0 +1,28 @@ +{ + "schema": "autooptlib.algorithm", + "schema_version": 1, + "autooptlib_version": "1.2.0", + "metadata": { + "name": "Alg*_f13", + "problem": "cec2013_f13", + "source": "AutoOptLib software paper pseudocode" + }, + "pathways": [ + { + "choose": "choose_roulette_wheel", + "choose_parameter": null, + "search": [ + { + "primary": "search_cma", + "secondary": null, + "termination": [{"$float": "-inf"}, 1.0], + "primary_parameter": null, + "secondary_parameter": null + } + ], + "update": "update_always", + "update_parameter": null, + "archive": [] + } + ] +} diff --git a/examples/reproducibility/algorithms/cec2013_f21_alg_star.json b/examples/reproducibility/algorithms/cec2013_f21_alg_star.json new file mode 100644 index 0000000..cd75111 --- /dev/null +++ b/examples/reproducibility/algorithms/cec2013_f21_alg_star.json @@ -0,0 +1,36 @@ +{ + "schema": "autooptlib.algorithm", + "schema_version": 1, + "autooptlib_version": "1.2.0", + "metadata": { + "name": "Alg*_f21", + "problem": "cec2013_f21", + "source": "AutoOptLib software paper pseudocode", + "note": "The 25-iteration local-search cap follows InnerFE=500 and design population 20." + }, + "pathways": [ + { + "choose": "choose_traverse", + "choose_parameter": null, + "search": [ + { + "primary": "search_de_random", + "secondary": null, + "termination": [0.05, 25.0], + "primary_parameter": [0.0562, 0.1047], + "secondary_parameter": null + }, + { + "primary": "cross_point_one", + "secondary": "search_mu_polynomial", + "termination": [{"$float": "-inf"}, 1.0], + "primary_parameter": null, + "secondary_parameter": [0.2767, 28.1453] + } + ], + "update": "update_pairwise", + "update_parameter": null, + "archive": [] + } + ] +} diff --git a/examples/reproducibility/algorithms/cec2013_f6_alg_star.json b/examples/reproducibility/algorithms/cec2013_f6_alg_star.json new file mode 100644 index 0000000..39db1ba --- /dev/null +++ b/examples/reproducibility/algorithms/cec2013_f6_alg_star.json @@ -0,0 +1,28 @@ +{ + "schema": "autooptlib.algorithm", + "schema_version": 1, + "autooptlib_version": "1.2.0", + "metadata": { + "name": "Alg*_f6", + "problem": "cec2013_f6", + "source": "AutoOptLib software paper pseudocode" + }, + "pathways": [ + { + "choose": "choose_roulette_wheel", + "choose_parameter": null, + "search": [ + { + "primary": "cross_arithmetic", + "secondary": "search_mu_cauchy", + "termination": [{"$float": "-inf"}, 1.0], + "primary_parameter": [0.20423], + "secondary_parameter": null + } + ], + "update": "update_greedy", + "update_parameter": null, + "archive": [] + } + ] +} diff --git a/examples/reproducibility/application-smoke.json b/examples/reproducibility/application-smoke.json new file mode 100644 index 0000000..0eca628 --- /dev/null +++ b/examples/reproducibility/application-smoke.json @@ -0,0 +1,36 @@ +{ + "seed": 2026, + "runs": 2, + "prob_n": 5, + "prob_fe": 20, + "algorithms": [ + "Discrete Random Search", + "Discrete Genetic Algorithm", + "Discrete Iterative Local Search", + "Discrete Simulated Annealing", + { + "label": "Alg*_stack (structure)", + "file": "examples/applications/algorithms/material_stacking_alg_star.json", + "applications": ["material_stacking"] + }, + { + "label": "Alg*_beamform (structure)", + "file": "examples/applications/algorithms/ris_beamforming_alg_star.json", + "applications": ["ris_beamforming"] + } + ], + "applications": { + "material_stacking": { + "instances": [ + {"id": "stack-test-12", "size": 12, "seed": 101}, + {"id": "stack-test-16", "size": 16, "seed": 102} + ] + }, + "ris_beamforming": { + "instances": [ + {"id": "ris-test-12", "size": 12, "seed": 201}, + {"id": "ris-test-16", "size": 16, "seed": 202} + ] + } + } +} diff --git a/examples/reproducibility/application_benchmarks.py b/examples/reproducibility/application_benchmarks.py new file mode 100644 index 0000000..a5bb024 --- /dev/null +++ b/examples/reproducibility/application_benchmarks.py @@ -0,0 +1,152 @@ +"""Run deterministic application baselines and retain every raw run. + +This is an integration/repeatability harness, not a reproduction of the paper's +private industrial data or original wireless channels. +""" + +from __future__ import annotations + +import argparse +import json +from datetime import datetime, timezone +from pathlib import Path +from statistics import fmean, pstdev +from typing import Any + +from autooptlib import ( + autoopt, + generate_ris_instance, + generate_stacking_instance, + make_material_stacking_problem, + make_ris_beamforming_problem, +) + + +def _build_problem(name: str, specifications: list[dict[str, Any]]): + instances = {} + for spec in specifications: + instance_id = spec["id"] + if name == "material_stacking": + instances[instance_id] = generate_stacking_instance( + spec["size"], seed=spec["seed"] + ) + elif name == "ris_beamforming": + instances[instance_id] = generate_ris_instance( + spec["size"], seed=spec["seed"] + ) + else: + raise ValueError(f"Unknown application {name!r}.") + factory = ( + make_material_stacking_problem + if name == "material_stacking" + else make_ris_beamforming_problem + ) + return factory(instances), list(instances) + + +def run(config: dict[str, Any], output_directory: Path) -> dict[str, Any]: + output_directory.mkdir(parents=True, exist_ok=True) + records: list[dict[str, Any]] = [] + base_seed = int(config["seed"]) + runs = int(config["runs"]) + + for app_index, (application, app_config) in enumerate( + config["applications"].items() + ): + problem, instance_ids = _build_problem(application, app_config["instances"]) + for algorithm_index, algorithm_spec in enumerate(config["algorithms"]): + if isinstance( + algorithm_spec, dict + ) and application not in algorithm_spec.get("applications", [application]): + continue + if isinstance(algorithm_spec, str): + algorithm = algorithm_spec + algorithm_option = {"AlgName": algorithm_spec} + else: + algorithm = str(algorithm_spec["label"]) + algorithm_option = {"AlgFile": str(algorithm_spec["file"])} + for instance_index, instance_id in enumerate(instance_ids): + for run_index in range(runs): + seed = ( + base_seed + + app_index * 100_000 + + algorithm_index * 10_000 + + instance_index * 100 + + run_index + ) + run_dir = ( + output_directory + / "runs" + / application + / algorithm.lower().replace(" ", "-") + / str(instance_id) + / f"run-{run_index + 1}" + ) + best, _ = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[instance_id], + AlgRuns=1, + ProbN=int(config["prob_n"]), + ProbFE=int(config["prob_fe"]), + Seed=seed, + OutputDir=run_dir, + **algorithm_option, + ) + records.append( + { + "application": application, + "algorithm": algorithm, + "instance": instance_id, + "run": run_index + 1, + "seed": seed, + "fitness": float(best[0][0].fit), + } + ) + + groups: dict[tuple[str, str, str], list[float]] = {} + for record in records: + key = (record["application"], record["algorithm"], str(record["instance"])) + groups.setdefault(key, []).append(record["fitness"]) + summary = [ + { + "application": key[0], + "algorithm": key[1], + "instance": key[2], + "mean": fmean(values), + "std": pstdev(values), + "runs": len(values), + } + for key, values in sorted(groups.items()) + ] + return { + "schema": "autooptlib.application-benchmark", + "schema_version": 1, + "created_utc": datetime.now(timezone.utc).isoformat(), + "data_scope": "synthetic reference instances; not paper result data", + "config": config, + "raw_runs": records, + "summary": summary, + } + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument( + "--config", + type=Path, + default=Path(__file__).with_name("application-smoke.json"), + ) + parser.add_argument("--output", type=Path, default=Path("results/repeatability")) + args = parser.parse_args() + config = json.loads(args.config.read_text(encoding="utf-8")) + document = run(config, args.output) + target = args.output / "application-benchmarks.json" + temporary = target.with_suffix(".json.tmp") + temporary.write_text(json.dumps(document, indent=2) + "\n", encoding="utf-8") + temporary.replace(target) + print(target) + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml index 07123dd..0cd93a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,16 +4,106 @@ build-backend = "setuptools.build_meta" [project] name = "autooptlib" -version = "0.1.0" -description = "AutoOptLib Python port (algorithm design framework)" +dynamic = ["version"] +description = "Component-based automated design of metaheuristic optimizers" readme = "README.md" requires-python = ">=3.9" -license = {text = "GPL-3.0-or-later"} -authors = [{ name = "Swarm Intelligence Lab" }] +license = "Apache-2.0" +license-files = ["LICENSE"] +authors = [ + { name = "Qi Zhao", email = "zhaoq@sustech.edu.cn" }, + { name = "Swarm Intelligence Lab" }, +] +keywords = [ + "automated algorithm design", + "metaheuristics", + "optimization", + "evolutionary computation", +] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Science/Research", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Scientific/Engineering", +] +dependencies = [ + "numpy>=1.23,<3", +] + +[project.optional-dependencies] +test = [ + "pytest>=7.4", + "pytest-cov>=4.1", +] +dev = [ + "build>=1.2", + "pytest>=7.4", + "pytest-cov>=4.1", + "sphinx>=7.2,<9", + "sphinx-rtd-theme>=2,<4", + "myst-parser>=2,<5", + "mypy>=1.10,<2", + "ruff>=0.9,<1", +] +docs = [ + "sphinx>=7.2,<9", + "sphinx-rtd-theme>=2,<4", + "myst-parser>=2,<5", +] +applications = [ + "scipy>=1.10,<2", +] +surrogate = [ + "scikit-learn>=1.2,<2", +] + +[project.urls] +Homepage = "https://github.com/auto4opt/AutoOptLib" +Documentation = "https://autooptlib.readthedocs.io/" +Repository = "https://github.com/auto4opt/AutoOptLib" +Issues = "https://github.com/auto4opt/AutoOptLib/issues" [tool.setuptools] package-dir = {"" = "src"} [tool.setuptools.packages.find] where = ["src"] -include = ["autooptlib*"] \ No newline at end of file +include = ["autooptlib*"] + +[tool.setuptools.package-data] +"autooptlib.problems.data" = ["*.npz", "README.md"] + +[tool.setuptools.dynamic] +version = { attr = "autooptlib._version.__version__" } + +[tool.pytest.ini_options] +addopts = "--strict-markers" +testpaths = ["tests"] + +[tool.mypy] +python_version = "3.9" +files = [ + "src/autooptlib/serialization.py", + "src/autooptlib/problems/base.py", + "src/autooptlib/applications", + "src/autooptlib/utils/general/input.py", + "src/autooptlib/utils/general/process.py", + "src/autooptlib/utils/solve/__init__.py", +] +follow_imports = "skip" +ignore_missing_imports = true +check_untyped_defs = true +show_error_codes = true + +[tool.ruff] +target-version = "py39" +line-length = 88 + +[tool.ruff.lint] +select = ["E4", "E7", "E9", "F", "I"] diff --git a/src/smoke_all_problems.py b/scripts/smoke_all_problems.py similarity index 96% rename from src/smoke_all_problems.py rename to scripts/smoke_all_problems.py index 00271f1..4b443e3 100644 --- a/src/smoke_all_problems.py +++ b/scripts/smoke_all_problems.py @@ -1,3 +1,5 @@ +"""Run lightweight design and solve workflows for every bundled problem.""" + from __future__ import annotations import argparse @@ -22,7 +24,7 @@ def _working_directory(path: Path): def _require_files(paths: Iterable[Path]) -> None: - missing = [str(p) for p in paths if not p.exists()] + missing = [str(path) for path in paths if not path.exists()] if missing: raise RuntimeError(f"expected output files missing: {', '.join(missing)}") diff --git a/src/autooptlib.egg-info/PKG-INFO b/src/autooptlib.egg-info/PKG-INFO deleted file mode 100644 index 45f310e..0000000 --- a/src/autooptlib.egg-info/PKG-INFO +++ /dev/null @@ -1,63 +0,0 @@ -Metadata-Version: 2.4 -Name: autooptlib -Version: 0.1.0 -Summary: AutoOptLib Python port (algorithm design framework) -Author: Swarm Intelligence Lab -License: GPL-3.0-or-later -Requires-Python: >=3.9 -Description-Content-Type: text/markdown - -## AutoOptLib (Automated Design of Metaheuristic Optimization Algorithms) -[![GNU General Public License v3.0](https://img.shields.io/badge/license-GNU%20GPL--v3.0-green.svg)](https://github.com/qz89/AutoOpt/blob/main/LICENSE) -![](https://img.shields.io/badge/Matlab-%3E%3D%202018a%20-blue.svg) -![](https://img.shields.io/badge/Windows-Pass-brightgreen.svg) -![](https://img.shields.io/badge/MacOS-Pass-brightgreen.svg) - -## What does AutoOptLib provide? -AutoOptLib is a MATLAB library for automatically designing metaheuristic optimizers. It provides: - -* **Rich library of design choices** - Over 40 representative metaheuristic components for designing algorithms for continuous, discrete, and permutation problems with/without constraints and uncertainties. -* **Flexibility to designing diverse algorithms** - Design algorithms with diverse structures in a single run, enables great possibility to find novel and efficient algorithms. -* **Various design objectives and techniques** - Various design objectives, e.g., solution quality, runtime, and anytime performance. Different design techniques, e.g., racing, intensification, and surrogate. -* **Good accessibility** - GUI for users to input problems, manage the algorithm design process, make experimental comparisons, and visualize results with simple one-clicks. -* **Easy extensibility** - Easily add new algorithmic components, objectives, and techniques by a uniform interface. - -## What are AutoOptLib's benefits: -* **Save labor resources and time** - Human experts may cost days or weeks to conceive, build up, and verify the optimizers; AutoOptLib would saves such labor resources and time costs with today's increasing computational power. -* **Democratize metaheuristic optimizers** - Through automated algorithm design techniques, AutoOptLib would democratize the efficient and effective use of metaheuristic optimizers. This is significant for researchers and practitioners with complicated optimization problem-solving demands but without the expertise to distinguish and manage suitable optimizers among various choices. -* **Surpass human algorithm design** - By fully exploring potential design choices and discovering novelties with computing power, AutoOptLib would go beyond human experience and gain enhanced performance regarding human problem-solving. -* **Promote metaheuristic research** - With a uniform collection of related techniques, AutoOptLib would promote research of the automated algorithm design and metaheuristic fields and be a tool in the pursuit of autonomous and general artificial intelligence systems. - -## How to use AutoOptLib? -Follow the steps below to use AutoOptLib: - -1. Download source code and add it to MATLAB path. - -2. Implement the targeted optimization problem. - -3. Define the space for designing algorithms. - -4. Run AutoOptLib by command or GUI. - -Refer to the Documentation [Web](https://AutoOpt.readthedocs.io/) / [PDF](https://github.com/qz89/AutoOpt/blob/main/AutoOptLib%20for%20Matlab/Documentation.pdf) for user guide. - -## Release Notes -* Version 1.0 (18 Oct 2023) - -## License -Users can use, redistribute, and modify AutoOptLib under the terms of the GNU General Public version 3 or any later version. - -AutoOptLib is developed and maintained by the Swarm Intelligence laboratory at the Department of Computer Science and Engineering, Southern University of Science and Technology. Users should reference the following papers if using AutoOptLib in their publications: -``` -@article{zhao2023autooptlib, - title={AutoOptLib: Tailoring Metaheuristic Optimizers via Automated Algorithm Design}, - author={Zhao, Qi and Yan, Bai and Hu, Taiwei and Chen, Xianglong and Duan, Qiqi and Yang, Jian and Shi, Yuhui}, - journal={arXiv preprint arXiv:2303.06536}, - year={2023} -} -``` - -## Contact -Users may ask question in [Issues block](https://github.com/qz89/AutoOpt/issues) and upload contributions by [Pulling request](https://github.com/qz89/AutoOpt/pulls). - -For any question, comment, or suggestion, please contact Dr. Qi Zhao, email: zhaoq@sustech.edu.cn. diff --git a/src/autooptlib.egg-info/SOURCES.txt b/src/autooptlib.egg-info/SOURCES.txt deleted file mode 100644 index 9f805b4..0000000 --- a/src/autooptlib.egg-info/SOURCES.txt +++ /dev/null @@ -1,79 +0,0 @@ -README.md -pyproject.toml -src/autooptlib/__init__.py -src/autooptlib/autoopt.py -src/autooptlib.egg-info/PKG-INFO -src/autooptlib.egg-info/SOURCES.txt -src/autooptlib.egg-info/dependency_links.txt -src/autooptlib.egg-info/top_level.txt -src/autooptlib/components/__init__.py -src/autooptlib/components/_utils.py -src/autooptlib/components/archive_best.py -src/autooptlib/components/archive_diversity.py -src/autooptlib/components/archive_statistic.py -src/autooptlib/components/archive_tabu.py -src/autooptlib/components/choose_brainstorm.py -src/autooptlib/components/choose_ica.py -src/autooptlib/components/choose_nich.py -src/autooptlib/components/choose_roulette_wheel.py -src/autooptlib/components/choose_tournament.py -src/autooptlib/components/choose_traverse.py -src/autooptlib/components/cross_arithmetic.py -src/autooptlib/components/cross_order_n.py -src/autooptlib/components/cross_order_two.py -src/autooptlib/components/cross_point_n.py -src/autooptlib/components/cross_point_one.py -src/autooptlib/components/cross_point_two.py -src/autooptlib/components/cross_point_uniform.py -src/autooptlib/components/cross_sim_binary.py -src/autooptlib/components/para_cma.py -src/autooptlib/components/para_cmaes.py -src/autooptlib/components/para_pso.py -src/autooptlib/components/reinit_continuous.py -src/autooptlib/components/reinit_discrete.py -src/autooptlib/components/reinit_permutation.py -src/autooptlib/components/search_cma.py -src/autooptlib/components/search_de_current.py -src/autooptlib/components/search_de_current_best.py -src/autooptlib/components/search_de_random.py -src/autooptlib/components/search_eda.py -src/autooptlib/components/search_ica.py -src/autooptlib/components/search_insert.py -src/autooptlib/components/search_mu_cauchy.py -src/autooptlib/components/search_mu_gaussian.py -src/autooptlib/components/search_mu_polynomial.py -src/autooptlib/components/search_mu_uniform.py -src/autooptlib/components/search_pso.py -src/autooptlib/components/search_reset_creep.py -src/autooptlib/components/search_reset_one.py -src/autooptlib/components/search_reset_rand.py -src/autooptlib/components/search_scramble.py -src/autooptlib/components/search_swap.py -src/autooptlib/components/search_swap_multi.py -src/autooptlib/components/update_always.py -src/autooptlib/components/update_greedy.py -src/autooptlib/components/update_pairwise.py -src/autooptlib/components/update_round_robin.py -src/autooptlib/components/update_simulated_annealing.py -src/autooptlib/problems/__init__.py -src/autooptlib/problems/cec2013.py -src/autooptlib/utils/__init__.py -src/autooptlib/utils/select.py -src/autooptlib/utils/space.py -src/autooptlib/utils/design/__init__.py -src/autooptlib/utils/design/_approximate.py -src/autooptlib/utils/design/_decode.py -src/autooptlib/utils/design/_disturb.py -src/autooptlib/utils/design/_embedding.py -src/autooptlib/utils/design/_estimate.py -src/autooptlib/utils/design/_evaluate.py -src/autooptlib/utils/design/_helpers.py -src/autooptlib/utils/design/_initialize.py -src/autooptlib/utils/design/_repair.py -src/autooptlib/utils/general/__init__.py -src/autooptlib/utils/general/improve_rate.py -src/autooptlib/utils/general/input.py -src/autooptlib/utils/general/output.py -src/autooptlib/utils/general/process.py -src/autooptlib/utils/general/select_stats.py -src/autooptlib/utils/solve/__init__.py \ No newline at end of file diff --git a/src/autooptlib.egg-info/dependency_links.txt b/src/autooptlib.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/src/autooptlib.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/autooptlib.egg-info/top_level.txt b/src/autooptlib.egg-info/top_level.txt deleted file mode 100644 index e3ce8fc..0000000 --- a/src/autooptlib.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -autooptlib diff --git a/src/autooptlib/__init__.py b/src/autooptlib/__init__.py index 9f8ced5..a9bc2e8 100644 --- a/src/autooptlib/__init__.py +++ b/src/autooptlib/__init__.py @@ -1,23 +1,44 @@ -from __future__ import annotations - -try: # noqa: SIM105 - from .utils.design import Design # noqa: F401 -except Exception: # pylint: disable=broad-except - Design = None # type: ignore +"""Public API for AutoOptLib.""" -try: # noqa: SIM105 - from .components import get_component # noqa: F401 -except Exception: # pylint: disable=broad-except - get_component = None # type: ignore - -try: # noqa: SIM105 - from .problems.cec2013 import cec2013_f1 # noqa: F401 -except Exception: # pylint: disable=broad-except - cec2013_f1 = None # type: ignore +from __future__ import annotations -try: # noqa: SIM105 - from .autoopt import autoopt # noqa: F401 -except Exception: # pylint: disable=broad-except - autoopt = None # type: ignore +from ._version import __version__ +from .applications import ( + MaterialStackingInstance, + RISBeamformingInstance, + StackingWeights, + generate_ris_instance, + generate_stacking_instance, + load_ris_matlab, + make_material_stacking_problem, + make_ris_beamforming_problem, +) +from .autoopt import autoopt +from .components import get_component, register_component +from .problems.base import ProblemDefinition, make_problem +from .problems.cec2013 import cec2013_f1 +from .serialization import load_algorithm, save_algorithm +from .utils.design import Design +from .utils.solve import ObjectiveEvaluationError -__all__ = [name for name in ("Design", "get_component", "cec2013_f1", "autoopt") if name in globals() and globals()[name] is not None] +__all__ = [ + "Design", + "MaterialStackingInstance", + "RISBeamformingInstance", + "StackingWeights", + "autoopt", + "cec2013_f1", + "get_component", + "generate_ris_instance", + "generate_stacking_instance", + "load_ris_matlab", + "make_material_stacking_problem", + "make_problem", + "make_ris_beamforming_problem", + "ObjectiveEvaluationError", + "ProblemDefinition", + "load_algorithm", + "save_algorithm", + "register_component", + "__version__", +] diff --git a/src/autooptlib/_version.py b/src/autooptlib/_version.py new file mode 100644 index 0000000..9a5b4a0 --- /dev/null +++ b/src/autooptlib/_version.py @@ -0,0 +1,3 @@ +"""Single source of truth for the package version.""" + +__version__ = "1.2.0" diff --git a/src/autooptlib/applications/__init__.py b/src/autooptlib/applications/__init__.py new file mode 100644 index 0000000..9283d4e --- /dev/null +++ b/src/autooptlib/applications/__init__.py @@ -0,0 +1,31 @@ +"""Reference application problem definitions used by the documentation.""" + +from .beamforming import ( + RISBeamformingInstance, + generate_ris_instance, + load_ris_matlab, + make_ris_beamforming_problem, + reciprocal_sum_rate, +) +from .stacking import ( + MaterialStackingInstance, + StackingWeights, + generate_stacking_instance, + make_material_stacking_problem, + stacking_constraints, + stacking_objective, +) + +__all__ = [ + "MaterialStackingInstance", + "RISBeamformingInstance", + "StackingWeights", + "generate_ris_instance", + "generate_stacking_instance", + "load_ris_matlab", + "make_material_stacking_problem", + "make_ris_beamforming_problem", + "reciprocal_sum_rate", + "stacking_constraints", + "stacking_objective", +] diff --git a/src/autooptlib/applications/beamforming.py b/src/autooptlib/applications/beamforming.py new file mode 100644 index 0000000..387b454 --- /dev/null +++ b/src/autooptlib/applications/beamforming.py @@ -0,0 +1,249 @@ +"""Reproducible reference model for discrete RIS passive beamforming. + +The model represents the application class described in the AutoOptLib paper. +It uses the zero-forcing and water-filling evaluation implemented by the +historical MATLAB application. Generated channels remain the default, so the +paper's numerical table still requires the archived research instances. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path +from typing import Hashable, Mapping + +import numpy as np + +from ..problems.base import ProblemDefinition, make_problem + + +@dataclass(frozen=True) +class RISBeamformingInstance: + """Channel data for a quantized-phase MU-MISO downlink.""" + + bs_to_ris: np.ndarray + direct_channels: np.ndarray + ris_to_users: np.ndarray + phase_bits: int = 2 + transmit_power: float = 1.0 + noise_power: float = 1.0 + user_weights: np.ndarray | None = None + + @property + def n_elements(self) -> int: + return int(np.asarray(self.bs_to_ris).shape[0]) + + def validate(self) -> None: + g = np.asarray(self.bs_to_ris) + hd = np.asarray(self.direct_channels) + hr = np.asarray(self.ris_to_users) + if g.ndim != 2 or hd.ndim != 2 or hr.ndim != 2: + raise ValueError("All RIS channel arrays must be two-dimensional.") + n_elements, n_antennas = g.shape + n_users = hd.shape[0] + if n_elements == 0 or n_antennas == 0 or n_users == 0: + raise ValueError("RIS instances require elements, antennas, and users.") + if hd.shape[1] != n_antennas or hr.shape != (n_users, n_elements): + raise ValueError( + "Incompatible BS-RIS, direct, and RIS-user channel shapes." + ) + if not isinstance(self.phase_bits, int) or self.phase_bits <= 0: + raise ValueError("phase_bits must be a positive integer.") + if self.transmit_power <= 0 or self.noise_power <= 0: + raise ValueError("transmit_power and noise_power must be positive.") + if self.user_weights is not None: + user_weights = np.asarray(self.user_weights, dtype=float).reshape(-1) + if ( + user_weights.size != n_users + or np.any(user_weights < 0) + or not np.all(np.isfinite(user_weights)) + or float(user_weights.sum()) <= 0 + ): + raise ValueError( + "user_weights must contain one finite non-negative value per user " + "and have a positive sum." + ) + for name, channel in ( + ("bs_to_ris", g), + ("direct_channels", hd), + ("ris_to_users", hr), + ): + if not np.all(np.isfinite(channel)): + raise ValueError(f"{name} must contain only finite values.") + + +def _complex_normal(rng: np.random.Generator, shape: tuple[int, ...]) -> np.ndarray: + return (rng.normal(size=shape) + 1j * rng.normal(size=shape)) / np.sqrt(2.0) + + +def generate_ris_instance( + n_elements: int, + *, + seed: int, + n_antennas: int = 4, + n_users: int = 3, + phase_bits: int = 2, + transmit_power: float = 1.0, + noise_power: float = 1.0, +) -> RISBeamformingInstance: + """Generate deterministic Rayleigh channels for examples and CI.""" + if min(n_elements, n_antennas, n_users) <= 0: + raise ValueError("n_elements, n_antennas, and n_users must be positive.") + rng = np.random.default_rng(seed) + instance = RISBeamformingInstance( + bs_to_ris=_complex_normal(rng, (n_elements, n_antennas)), + direct_channels=0.2 * _complex_normal(rng, (n_users, n_antennas)), + ris_to_users=_complex_normal(rng, (n_users, n_elements)), + phase_bits=phase_bits, + transmit_power=transmit_power, + noise_power=noise_power, + user_weights=np.ones(n_users), + ) + instance.validate() + return instance + + +def load_ris_matlab(path: str | Path) -> dict[int, RISBeamformingInstance]: + """Load the historical ``Beanforming.mat`` records using optional SciPy. + + Returned keys are one-based to match the original MATLAB instance IDs. + The data file is not bundled in the Apache-licensed wheel; users must + supply a copy whose licensing is appropriate for their use. + """ + try: + from scipy.io import loadmat + except ImportError as exc: # pragma: no cover - optional dependency path + raise ImportError( + "Reading MATLAB application data requires " + "`pip install autooptlib[applications]`." + ) from exc + source = Path(path) + if not source.is_file(): + raise FileNotFoundError(f"RIS MATLAB data file not found: {source}") + document = loadmat(source, simplify_cells=True) + records = document.get("Data") + if records is None: + raise ValueError("MATLAB data file does not contain a 'Data' variable.") + if isinstance(records, dict): + records = [records] + instances: dict[int, RISBeamformingInstance] = {} + for index, record in enumerate(records, start=1): + try: + instance = RISBeamformingInstance( + bs_to_ris=np.asarray(record["G"]), + direct_channels=np.asarray(record["Hd"]), + ris_to_users=np.asarray(record["Hr"]), + phase_bits=int(record["b"]), + transmit_power=float(record["PT"]), + noise_power=1.0, + user_weights=np.asarray(record["omega"], dtype=float).reshape(-1), + ) + except (KeyError, TypeError, ValueError) as exc: + raise ValueError(f"Invalid RIS record {index} in {source}.") from exc + instance.validate() + instances[index] = instance + return instances + + +def reciprocal_sum_rate( + phase_indices: np.ndarray, instance: RISBeamformingInstance +) -> float: + """Return reciprocal downlink sum rate for a quantized RIS phase vector.""" + instance.validate() + decisions = np.asarray(phase_indices, dtype=int).reshape(-1) + if decisions.size != instance.n_elements: + raise ValueError( + f"Expected {instance.n_elements} RIS phase decisions, got {decisions.size}." + ) + levels = 2**instance.phase_bits + if np.any(decisions < 0) or np.any(decisions >= levels): + raise ValueError(f"RIS phase decisions must be in [0, {levels - 1}].") + + phases = np.exp(1j * 2.0 * np.pi * decisions / levels) + # Explicit contraction avoids backend-specific complex GEMM warnings + # observed for one of the larger historical channel matrices. + reflected = np.asarray(instance.ris_to_users) * phases[np.newaxis, :] + effective = np.asarray(instance.direct_channels) + np.einsum( + "kn,nm->km", reflected, np.asarray(instance.bs_to_ris), optimize=False + ) + + # Match the historical MATLAB application: zero-forcing followed by + # water-filling under the total BS power budget. + gram = effective @ effective.conj().T + beamformer_base = effective.conj().T @ np.linalg.pinv(gram) + power_cost = np.real(np.diag(beamformer_base.conj().T @ beamformer_base)) + if np.any(power_cost <= np.finfo(float).tiny): + return float(1.0 / np.finfo(float).tiny) + filled = _water_filling(instance.transmit_power, power_cost) + allocated = filled / power_cost + beamformers = beamformer_base * np.sqrt(allocated)[np.newaxis, :] + received = effective @ beamformers + powers = np.abs(received) ** 2 + signal = np.diag(powers) + interference = powers.sum(axis=1) - signal + sinr = signal / (interference + instance.noise_power) + user_weights = ( + np.ones(effective.shape[0]) + if instance.user_weights is None + else np.asarray(instance.user_weights, dtype=float) + ) + sum_rate = float(np.sum(np.log1p(sinr) * user_weights)) + tiny = float(np.finfo(float).tiny) + denominator = sum_rate if sum_rate > tiny else tiny + return 1.0 / denominator + + +def _water_filling(total_power: float, power_cost: np.ndarray) -> np.ndarray: + """Port of the water-filling routine shipped with AutoOptLib v1.1.""" + costs = np.asarray(power_cost, dtype=float).reshape(-1) + count = costs.size + level = float(np.max(costs)) + used = float(np.sum(level - costs)) + if used > total_power: + descending = np.sort(costs)[::-1] + index = 1 + while used > total_power and index < count: + level = float(descending[index]) + used = float(np.sum(np.maximum(level - costs, 0.0))) + if used <= total_power: + level += (total_power - used) / (count - index) + break + index += 1 + return np.maximum(level - costs, 0.0) + level += (total_power - used) / count + return level - costs + + +def make_ris_beamforming_problem( + instances: Mapping[Hashable, RISBeamformingInstance], +) -> ProblemDefinition: + """Build an AutoOptLib discrete problem from keyed RIS channel data.""" + data = dict(instances) + if not data: + raise ValueError("At least one RIS beamforming instance is required.") + for instance in data.values(): + instance.validate() + + def get_data(instance_id: Hashable) -> RISBeamformingInstance: + try: + return data[instance_id] + except KeyError as exc: + raise KeyError(f"Unknown RIS instance {instance_id!r}.") from exc + + def bounds(instance_id: Hashable) -> np.ndarray: + instance = get_data(instance_id) + upper = 2**instance.phase_bits - 1 + return np.vstack( + ( + np.zeros(instance.n_elements, dtype=int), + np.full(instance.n_elements, upper), + ) + ) + + return make_problem( + reciprocal_sum_rate, + bounds=bounds, + problem_type="discrete", + data_factory=get_data, + name="ris_beamforming", + ) diff --git a/src/autooptlib/applications/stacking.py b/src/autooptlib/applications/stacking.py new file mode 100644 index 0000000..b5c0de3 --- /dev/null +++ b/src/autooptlib/applications/stacking.py @@ -0,0 +1,241 @@ +"""Transparent reference model for the material-stacking application class. + +The industrial study used proprietary material records and company-specific +rules. This module exposes those concepts through a documented data model and +a synthetic generator; it does not claim to reproduce the paper's table. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Hashable, Mapping + +import numpy as np + +from ..problems.base import ProblemDefinition, make_problem + + +@dataclass(frozen=True) +class StackingWeights: + """Soft-preference weights used by :func:`stacking_objective`.""" + + heavy_low: float = 1.0 + same_material: float = 1.0 + same_product: float = 0.5 + shared_central: float = 0.5 + frequent_near_shipping: float = 0.5 + + def validate(self) -> None: + values = np.asarray(list(vars(self).values()), dtype=float) + if np.any(values < 0) or not np.all(np.isfinite(values)): + raise ValueError( + "Stacking preference weights must be finite and non-negative." + ) + + +@dataclass(frozen=True) +class MaterialStackingInstance: + """Material dimensions and rack rules for one stacking instance.""" + + widths: np.ndarray + heights: np.ndarray + weights: np.ndarray + material_groups: np.ndarray + product_groups: np.ndarray + access_frequencies: np.ndarray + shared_material: np.ndarray + n_levels: int + n_positions: int + rack_width: float + max_level_weight: float + preferences: StackingWeights = StackingWeights() + + @property + def n_items(self) -> int: + return int(np.asarray(self.widths).size) + + @property + def dimension(self) -> int: + return 3 * self.n_items + + def validate(self) -> None: + arrays = { + "widths": self.widths, + "heights": self.heights, + "weights": self.weights, + "material_groups": self.material_groups, + "product_groups": self.product_groups, + "access_frequencies": self.access_frequencies, + "shared_material": self.shared_material, + } + lengths = {np.asarray(value).reshape(-1).size for value in arrays.values()} + if lengths != {self.n_items} or self.n_items == 0: + raise ValueError( + "All stacking item arrays must have the same non-zero length." + ) + for name in ("widths", "heights", "weights", "access_frequencies"): + values = np.asarray(arrays[name], dtype=float) + if np.any(values < 0) or not np.all(np.isfinite(values)): + raise ValueError(f"{name} must contain finite non-negative values.") + if min(self.n_levels, self.n_positions) <= 0: + raise ValueError("n_levels and n_positions must be positive.") + if self.rack_width <= 0 or self.max_level_weight <= 0: + raise ValueError("rack_width and max_level_weight must be positive.") + self.preferences.validate() + + +def _decode( + decision: np.ndarray, instance: MaterialStackingInstance +) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + values = np.asarray(decision, dtype=int).reshape(-1) + if values.size != instance.dimension: + raise ValueError( + f"Expected {instance.dimension} stacking decisions, got {values.size}." + ) + n = instance.n_items + levels = values[:n] + positions = values[n : 2 * n] + orientations = values[2 * n :] + if ( + np.any(levels < 0) + or np.any(levels >= instance.n_levels) + or np.any(positions < 0) + or np.any(positions >= instance.n_positions) + or np.any((orientations != 0) & (orientations != 1)) + ): + raise ValueError("Stacking decision is outside the declared discrete bounds.") + return levels, positions, orientations + + +def _group_spread(location: np.ndarray, labels: np.ndarray) -> float: + total = 0.0 + for label in np.unique(labels): + members = location[np.asarray(labels) == label] + if members.size > 1: + total += float(np.var(members)) + return total + + +def stacking_objective( + decision: np.ndarray, instance: MaterialStackingInstance +) -> float: + """Minimize occupied rack area plus documented operational preferences.""" + instance.validate() + levels, positions, orientations = _decode(decision, instance) + heights = np.where(orientations == 0, instance.heights, instance.widths) + + level_heights = np.zeros(instance.n_levels, dtype=float) + for level in range(instance.n_levels): + members = levels == level + if np.any(members): + level_heights[level] = float(np.max(heights[members])) + occupied_area = float(instance.rack_width * np.sum(level_heights)) + + location = levels * instance.n_positions + positions + scale = max(1.0, float(instance.n_levels * instance.n_positions)) + weights = np.asarray(instance.weights, dtype=float) + frequency = np.asarray(instance.access_frequencies, dtype=float) + shared = np.asarray(instance.shared_material, dtype=bool) + prefs = instance.preferences + heavy_low = float(np.sum(weights * levels) / max(1.0, weights.sum())) + same_material = ( + _group_spread(location, np.asarray(instance.material_groups)) / scale + ) + same_product = _group_spread(location, np.asarray(instance.product_groups)) / scale + center = (instance.n_positions - 1) / 2.0 + shared_central = float(np.sum(np.abs(positions[shared] - center))) / scale + frequent_shipping = float(np.sum(frequency * positions) / max(1.0, frequency.sum())) + + return occupied_area + ( + prefs.heavy_low * heavy_low + + prefs.same_material * same_material + + prefs.same_product * same_product + + prefs.shared_central * shared_central + + prefs.frequent_near_shipping * frequent_shipping + ) + + +def stacking_constraints( + decision: np.ndarray, instance: MaterialStackingInstance +) -> np.ndarray: + """Return per-level width and weight excess; positive values violate.""" + instance.validate() + levels, _, orientations = _decode(decision, instance) + widths = np.where(orientations == 0, instance.widths, instance.heights) + width_excess = np.zeros(instance.n_levels, dtype=float) + weight_excess = np.zeros(instance.n_levels, dtype=float) + for level in range(instance.n_levels): + members = levels == level + width_excess[level] = float(np.sum(widths[members]) - instance.rack_width) + weight_excess[level] = float( + np.sum(np.asarray(instance.weights)[members]) - instance.max_level_weight + ) + return np.concatenate((width_excess, weight_excess)) + + +def generate_stacking_instance( + n_items: int, + *, + seed: int, + n_levels: int = 4, + n_positions: int = 8, + rack_width: float = 12.0, + max_level_weight: float = 40.0, +) -> MaterialStackingInstance: + """Generate a deterministic non-proprietary instance for examples and CI.""" + if min(n_items, n_levels, n_positions) <= 0: + raise ValueError("n_items, n_levels, and n_positions must be positive.") + rng = np.random.default_rng(seed) + instance = MaterialStackingInstance( + widths=rng.uniform(0.5, 2.0, n_items), + heights=rng.uniform(0.5, 2.5, n_items), + weights=rng.uniform(1.0, 10.0, n_items), + material_groups=rng.integers(0, max(2, n_items // 3), n_items), + product_groups=rng.integers(0, max(2, n_items // 4), n_items), + access_frequencies=rng.uniform(0.0, 1.0, n_items), + shared_material=rng.random(n_items) < 0.25, + n_levels=n_levels, + n_positions=n_positions, + rack_width=rack_width, + max_level_weight=max_level_weight, + ) + instance.validate() + return instance + + +def make_material_stacking_problem( + instances: Mapping[Hashable, MaterialStackingInstance], +) -> ProblemDefinition: + """Build an AutoOptLib discrete problem from keyed stacking records.""" + data = dict(instances) + if not data: + raise ValueError("At least one material-stacking instance is required.") + for instance in data.values(): + instance.validate() + + def get_data(instance_id: Hashable) -> MaterialStackingInstance: + try: + return data[instance_id] + except KeyError as exc: + raise KeyError(f"Unknown stacking instance {instance_id!r}.") from exc + + def bounds(instance_id: Hashable) -> np.ndarray: + instance = get_data(instance_id) + lower = np.zeros(instance.dimension, dtype=int) + upper = np.concatenate( + ( + np.full(instance.n_items, instance.n_levels - 1, dtype=int), + np.full(instance.n_items, instance.n_positions - 1, dtype=int), + np.ones(instance.n_items, dtype=int), + ) + ) + return np.vstack((lower, upper)) + + return make_problem( + stacking_objective, + bounds=bounds, + problem_type="discrete", + constraint=stacking_constraints, + data_factory=get_data, + name="material_stacking", + ) diff --git a/src/autooptlib/autoopt.py b/src/autooptlib/autoopt.py index 36f405e..5178735 100644 --- a/src/autooptlib/autoopt.py +++ b/src/autooptlib/autoopt.py @@ -3,11 +3,11 @@ from __future__ import annotations from importlib import import_module -from pathlib import Path from types import SimpleNamespace -from typing import Any, Iterable, List +from typing import Any, List -from .utils.general import input_handler, output, process +from .utils.general import input_handler, normalize_options, output, process +from .utils.general.output import write_experiment_manifest def _to_arguments(kwargs: dict[str, Any]) -> List[Any]: @@ -42,11 +42,15 @@ def autoopt(**kwargs: Any): ) """ - if "Mode" not in kwargs and "mode" not in kwargs: + kwargs = normalize_options(kwargs) + if "Mode" not in kwargs: raise ValueError("AutoOpt requires a Mode parameter ('design' or 'solve').") - mode = kwargs.get("Mode", kwargs.get("mode")) - setting = SimpleNamespace(Mode=str(mode)) + mode = str(kwargs["Mode"]).lower() + kwargs["Mode"] = mode + manifest_options = dict(kwargs) + setting = SimpleNamespace(Mode=mode) + output_directory = kwargs.pop("OutputDir", None) arguments = _to_arguments(kwargs) @@ -68,7 +72,15 @@ def autoopt(**kwargs: Any): instance_test, setting=setting, ) - output(final_algs, alg_trace, instance_train, instance_test, setting=setting) + output( + final_algs, + alg_trace, + instance_train, + instance_test, + setting=setting, + directory=output_directory, + ) + write_experiment_manifest(output_directory, mode=mode, options=manifest_options) return final_algs, alg_trace best_solutions, all_solutions = process( @@ -76,7 +88,14 @@ def autoopt(**kwargs: Any): instance_solve, setting=setting, ) - output(best_solutions, all_solutions, instance_solve, setting=setting) + output( + best_solutions, + all_solutions, + instance_solve, + setting=setting, + directory=output_directory, + ) + write_experiment_manifest(output_directory, mode=mode, options=manifest_options) return best_solutions, all_solutions diff --git a/src/autooptlib/components/__init__.py b/src/autooptlib/components/__init__.py index 451ec2a..903cb1c 100644 --- a/src/autooptlib/components/__init__.py +++ b/src/autooptlib/components/__init__.py @@ -3,7 +3,7 @@ from __future__ import annotations from importlib import import_module -from typing import Callable, Dict +from typing import Callable, Dict, Iterable _COMPONENT_MODULES = { "archive_best": "archive_best", @@ -56,8 +56,82 @@ } _cache: Dict[str, Callable] = {} +_custom_components: Dict[str, Callable] = {} +_custom_component_specs: Dict[str, tuple[str, frozenset[str]]] = {} + +_VALID_CATEGORIES = {"choose", "search", "update"} +_VALID_PROBLEM_TYPES = {"continuous", "discrete", "permutation"} + + +def _infer_category(name: str) -> str | None: + prefix = name.split("_", 1)[0] + if prefix == "choose": + return "choose" + if prefix in {"search", "cross", "reinit"}: + return "search" + if prefix == "update": + return "update" + return None + + +def register_component( + name: str, + component: Callable, + *, + category: str | None = None, + problem_types: Iterable[str] = ("continuous", "discrete", "permutation"), + replace: bool = False, +) -> None: + """Register a user-defined component for the current Python process. + + The callable must follow the same mode-based protocol as built-in + components. Registration is explicit so extensions do not need to edit + AutoOptLib's internal component map. ``category`` may be ``choose``, + ``search``, or ``update`` and is inferred from conventional component + names. Compatible registered components are included by :func:`space`. + """ + if not isinstance(name, str) or not name.isidentifier(): + raise ValueError("Component names must be valid Python identifiers.") + if not callable(component): + raise TypeError("component must be callable") + resolved_category = category or _infer_category(name) + if resolved_category not in _VALID_CATEGORIES: + raise ValueError( + "category must be 'choose', 'search', or 'update'; it cannot be " + f"inferred from {name!r}" + ) + resolved_types = frozenset(str(value).lower() for value in problem_types) + if not resolved_types or not resolved_types <= _VALID_PROBLEM_TYPES: + raise ValueError( + "problem_types must contain one or more of: continuous, discrete, permutation" + ) + if not replace and (name in _COMPONENT_MODULES or name in _custom_components): + raise ValueError(f"Component {name!r} is already registered.") + _custom_components[name] = component + _custom_component_specs[name] = (resolved_category, resolved_types) + _cache.pop(name, None) + + +def list_components() -> tuple[str, ...]: + """Return all built-in and user-registered component names.""" + return tuple(sorted(set(_COMPONENT_MODULES) | set(_custom_components))) + + +def compatible_custom_components(category: str, problem_type: str) -> tuple[str, ...]: + """Return registered extensions compatible with a design-space section.""" + return tuple( + name + for name, ( + registered_category, + problem_types, + ) in _custom_component_specs.items() + if registered_category == category and problem_type in problem_types + ) + def get_component(name: str) -> Callable: + if name in _custom_components: + return _custom_components[name] if name not in _cache: module_name = _COMPONENT_MODULES.get(name) if module_name is None: @@ -66,6 +140,5 @@ def get_component(name: str) -> Callable: _cache[name] = getattr(module, name) return _cache[name] -__all__ = sorted(_COMPONENT_MODULES) - +__all__ = ["get_component", "list_components", "register_component"] diff --git a/src/autooptlib/components/_utils.py b/src/autooptlib/components/_utils.py index 0f0c80c..c1e84f8 100644 --- a/src/autooptlib/components/_utils.py +++ b/src/autooptlib/components/_utils.py @@ -2,7 +2,6 @@ from __future__ import annotations -import math import re from typing import Any, Sequence @@ -77,8 +76,6 @@ def extract_fits(solution: Any) -> np.ndarray: val = flex_get(item, "fits") if val is None: raise ValueError("Each solution must expose fit/fitness value") - # values.append(float(np.asarray(val).reshape(1))) - arr = np.asarray(val) if arr.size != 1: raise ValueError(f"Expected a scalar-like value, got shape={arr.shape}") @@ -123,4 +120,3 @@ def ensure_column(vector: Any) -> np.ndarray: if arr.ndim == 1: return arr.reshape(-1, 1) return arr - diff --git a/src/autooptlib/components/archive_best.py b/src/autooptlib/components/archive_best.py index eee56a2..a685220 100644 --- a/src/autooptlib/components/archive_best.py +++ b/src/autooptlib/components/archive_best.py @@ -15,7 +15,9 @@ def _extract_fits(solution) -> np.ndarray: try: seq = list(solution) except TypeError as exc: # not iterable - raise ValueError("Solution must expose fits() or be iterable of items with fitness") from exc + raise ValueError( + "Solution must expose fits() or be iterable of items with fitness" + ) from exc vals = [] for it in seq: val = getattr(it, "fit", None) @@ -23,7 +25,9 @@ def _extract_fits(solution) -> np.ndarray: obj = getattr(it, "obj", None) con = getattr(it, "con", None) if obj is None: - raise ValueError("Item lacks fit/obj attributes for fitness computation") + raise ValueError( + "Item lacks fit/obj attributes for fitness computation" + ) if con is None: val = float(obj) else: diff --git a/src/autooptlib/components/archive_diversity.py b/src/autooptlib/components/archive_diversity.py index b989921..43fd832 100644 --- a/src/autooptlib/components/archive_diversity.py +++ b/src/autooptlib/components/archive_diversity.py @@ -1,11 +1,12 @@ """Select the most diversified solutions for the archive.""" + from __future__ import annotations from typing import Any, Sequence import numpy as np -from ._utils import flex_get +from ._utils import ensure_rng, flex_get def _ensure_solution_list(sol: Any) -> list: @@ -15,7 +16,9 @@ def _ensure_solution_list(sol: Any) -> list: def _stack_decs(sol_list: list) -> np.ndarray: - decs = [np.asarray(flex_get(s, "dec"), dtype=float).reshape(1, -1) for s in sol_list] + decs = [ + np.asarray(flex_get(s, "dec"), dtype=float).reshape(1, -1) for s in sol_list + ] return np.vstack(decs) @@ -25,6 +28,7 @@ def archive_diversity(*args): solutions = _ensure_solution_list(args[0]) archive = _ensure_solution_list(args[1]) if len(args) > 1 else [] problem = args[2] if len(args) > 2 else None + rng = ensure_rng(problem) combined = solutions + archive if not combined: @@ -38,7 +42,7 @@ def archive_diversity(*args): else: dist = np.mean(decs[:, None, :] != decs[None, :, :], axis=-1) n = int(flex_get(problem, "N", len(solutions))) - chosen = [int(np.random.randint(len(combined)))] + chosen = [int(rng.integers(len(combined)))] while len(chosen) < n and len(chosen) < len(combined): sums = np.sum(dist[chosen], axis=0) order = np.argsort(sums)[::-1] @@ -55,4 +59,4 @@ def archive_diversity(*args): if mode == "behavior": return ["", ""], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/archive_statistic.py b/src/autooptlib/components/archive_statistic.py index 4a99814..7ffb9ca 100644 --- a/src/autooptlib/components/archive_statistic.py +++ b/src/autooptlib/components/archive_statistic.py @@ -1,7 +1,6 @@ """Track mean and std of fitness.""" -from __future__ import annotations -from typing import Any, Sequence +from __future__ import annotations import numpy as np @@ -19,7 +18,8 @@ def archive_statistic(*args): values = np.asarray(fits()).reshape(-1) else: values = np.asarray(fits).reshape(-1) - stat = np.array([[np.mean(values), np.std(values)]]) + std = np.std(values, ddof=1) if values.size > 1 else 0.0 + stat = np.array([[np.mean(values), std]]) if archive is None or len(archive) == 0: return stat, None archive_arr = np.asarray(archive) @@ -31,4 +31,4 @@ def archive_statistic(*args): if mode == "behavior": return ["", ""], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/archive_tabu.py b/src/autooptlib/components/archive_tabu.py index 1dee1f3..94170e7 100644 --- a/src/autooptlib/components/archive_tabu.py +++ b/src/autooptlib/components/archive_tabu.py @@ -18,4 +18,3 @@ def archive_tabu(*args: Any): return ["", ""], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/choose_brainstorm.py b/src/autooptlib/components/choose_brainstorm.py index 55e4499..48a3cc7 100644 --- a/src/autooptlib/components/choose_brainstorm.py +++ b/src/autooptlib/components/choose_brainstorm.py @@ -26,7 +26,9 @@ def _extract_objs(solution: Any) -> np.ndarray: return arr.reshape(-1) -def _kmeans_labels(data: np.ndarray, k: int, rng: np.random.Generator, max_iter: int = 50) -> np.ndarray: +def _kmeans_labels( + data: np.ndarray, k: int, rng: np.random.Generator, max_iter: int = 50 +) -> np.ndarray: n_samples = data.shape[0] if n_samples == 0 or k <= 0: return np.empty(0, dtype=int) @@ -67,11 +69,17 @@ def choose_brainstorm(*args: Any): ptype = flex_get(problem, "type", ["continuous"]) ptype0 = ptype[0] if isinstance(ptype, (list, tuple)) else ptype if "continuous" not in str(ptype0).lower(): - raise ValueError("choose_brainstorm is only available for continuous problems") + raise ValueError( + "choose_brainstorm is only available for continuous problems" + ) - para_arr = np.asarray(para, dtype=float) if para is not None else np.array([2.0, 0.5]) + para_arr = ( + np.asarray(para, dtype=float) if para is not None else np.array([2.0, 0.5]) + ) if para_arr.size < 2: - para_arr = np.pad(para_arr, (0, 2 - para_arr.size), mode="constant", constant_values=0.5) + para_arr = np.pad( + para_arr, (0, 2 - para_arr.size), mode="constant", constant_values=0.5 + ) k = max(2, int(round(float(para_arr[0])))) gamma = float(para_arr[1]) k = min(k, pop_size) @@ -104,7 +112,9 @@ def choose_brainstorm(*args: Any): probabilities /= total n_select = int(flex_get(problem, "N", pop_size)) - chosen_centers = rng.choice(centers, size=n_select, replace=True, p=probabilities) + chosen_centers = rng.choice( + centers, size=n_select, replace=True, p=probabilities + ) result = [] for center_idx in chosen_centers: @@ -126,4 +136,3 @@ def choose_brainstorm(*args: Any): return ["", ""], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/choose_nich.py b/src/autooptlib/components/choose_nich.py index d7b8c54..a058066 100644 --- a/src/autooptlib/components/choose_nich.py +++ b/src/autooptlib/components/choose_nich.py @@ -23,9 +23,13 @@ def _extract_decisions(solution) -> np.ndarray: return np.asarray(decs, dtype=float) -def _nearest_better_clustering(distance: np.ndarray, fai: float, min_size: int, g: int, gmax: int) -> List[Species]: +def _nearest_better_clustering( + distance: np.ndarray, fai: float, min_size: int, g: int, gmax: int +) -> List[Species]: if min_size == -1: - min_size = round(3 + g / max(gmax, 1) * 7) + # MATLAB rounds positive .5 values away from zero; Python uses bankers' + # rounding, which changes species splitting at exact half steps. + min_size = int(np.floor(3 + g / max(gmax, 1) * 7 + 0.5)) npop = distance.shape[0] nearest = np.full(npop, -1, dtype=int) @@ -58,7 +62,10 @@ def _nearest_better_clustering(distance: np.ndarray, fai: float, min_size: int, while nearest[top_index] != -1: top_index = nearest[top_index] chain.append(top_index) - if follow[inf_index] >= min_size and follow[top_index] - follow[inf_index] >= min_size: + if ( + follow[inf_index] >= min_size + and follow[top_index] - follow[inf_index] >= min_size + ): nearest[inf_index] = -1 dist_val[inf_index] = 0.0 seeds.append(inf_index) diff --git a/src/autooptlib/components/choose_traverse.py b/src/autooptlib/components/choose_traverse.py index 0801bad..e9cb452 100644 --- a/src/autooptlib/components/choose_traverse.py +++ b/src/autooptlib/components/choose_traverse.py @@ -24,4 +24,3 @@ def choose_traverse(*args): if mode == "behavior": return ["", ""], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/cross_arithmetic.py b/src/autooptlib/components/cross_arithmetic.py index 62d346a..30ccfe9 100644 --- a/src/autooptlib/components/cross_arithmetic.py +++ b/src/autooptlib/components/cross_arithmetic.py @@ -24,7 +24,11 @@ def cross_arithmetic(*args: Any): first = parent[: (n + 1) // 2] second = parent[n // 2 :] - prob = np.asarray(para, dtype=float) if para is not None else np.array(0.5, dtype=float) + prob = ( + np.asarray(para, dtype=float) + if para is not None + else np.array(0.5, dtype=float) + ) if prob.ndim == 0: ratio = prob else: @@ -42,4 +46,3 @@ def cross_arithmetic(*args: Any): return ["", "GS"], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/cross_order_n.py b/src/autooptlib/components/cross_order_n.py index ece69d6..0e52a3e 100644 --- a/src/autooptlib/components/cross_order_n.py +++ b/src/autooptlib/components/cross_order_n.py @@ -1,4 +1,5 @@ """N-order crossover for permutations.""" + from __future__ import annotations from typing import Any @@ -34,7 +35,11 @@ def cross_order_n(*args): aux = args[3] if len(args) > 3 else None rng = ensure_rng(aux) - n_points = int(round(float(np.asarray(para).reshape(-1)[0]))) if para is not None else 1 + n_points = ( + int(round(float(np.asarray(para).reshape(-1)[0]))) + if para is not None + else 1 + ) parent = _extract_matrix(parent_obj) n, d = parent.shape half = (n + 1) // 2 @@ -49,10 +54,8 @@ def cross_order_n(*args): temp = _stable_setdiff(parent2[i], parent1[i, k]) off1[i, complement] = temp - k2 = rng.choice(d, size=min(max(1, n_points), d), replace=False) - k2.sort() - complement2 = [idx for idx in range(d) if idx not in k2] - temp2 = _stable_setdiff(parent1[i], parent2[i, k2]) + complement2 = [idx for idx in range(d) if idx not in k] + temp2 = _stable_setdiff(parent1[i], parent2[i, k]) off2[i, complement2] = temp2 offspring = np.vstack([off1, off2]) return offspring[:n], aux @@ -69,4 +72,4 @@ def cross_order_n(*args): if mode == "behavior": return [["LS", "small"], ["GS", "large"]], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/cross_order_two.py b/src/autooptlib/components/cross_order_two.py index 2184f4f..4959c7e 100644 --- a/src/autooptlib/components/cross_order_two.py +++ b/src/autooptlib/components/cross_order_two.py @@ -1,4 +1,5 @@ """Two-order crossover for permutations.""" + from __future__ import annotations from typing import Any @@ -21,11 +22,13 @@ def _extract_matrix(parent: Any) -> np.ndarray: return arr -def _order_crossover(p1: np.ndarray, p2: np.ndarray, start: int, end: int) -> np.ndarray: - segment = p1[start:end + 1] +def _order_crossover( + p1: np.ndarray, p2: np.ndarray, start: int, end: int +) -> np.ndarray: + segment = p1[start : end + 1] remainder = [x for x in p2 if x not in segment] mask = np.ones(p1.shape[0], dtype=bool) - mask[start:end + 1] = False + mask[start : end + 1] = False offspring = p1.copy() offspring[mask] = remainder return offspring @@ -59,4 +62,4 @@ def cross_order_two(*args): if mode == "behavior": return ["", "GS"], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/cross_point_n.py b/src/autooptlib/components/cross_point_n.py index e5df35c..e760dd3 100644 --- a/src/autooptlib/components/cross_point_n.py +++ b/src/autooptlib/components/cross_point_n.py @@ -4,14 +4,21 @@ import numpy as np +from ._utils import ensure_rng + def cross_point_n(*args): mode = args[-1] if mode == "execute": parent = args[0] para = args[2] if len(args) > 2 else None - aux = args[3] if len(args) > 3 else None # noqa: F841 - n_points = int(round(float(np.asarray(para).reshape(-1)[0]))) if para is not None else 1 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) + n_points = ( + int(round(float(np.asarray(para).reshape(-1)[0]))) + if para is not None + else 1 + ) decs = getattr(parent, "decs", None) if callable(decs): parent = decs() @@ -25,11 +32,11 @@ def cross_point_n(*args): off1 = p1.copy() off2 = p2.copy() for i in range(nh): - k = np.random.choice(d, size=min(max(1, n_points), d), replace=False) + k = rng.choice(d, size=min(max(1, n_points), d), replace=False) off1[i, k] = p2[i, k] off2[i, k] = p1[i, k] offspring = np.vstack([off1, off2]) - return offspring[:n, :], args[3] if len(args) > 3 else None + return offspring[:n, :], aux if mode == "parameter": # Cannot compute D without Problem here; return a reasonable default range return [1, 5], None diff --git a/src/autooptlib/components/cross_point_one.py b/src/autooptlib/components/cross_point_one.py index 3538ac1..86676c5 100644 --- a/src/autooptlib/components/cross_point_one.py +++ b/src/autooptlib/components/cross_point_one.py @@ -4,12 +4,15 @@ import numpy as np +from ._utils import ensure_rng + def cross_point_one(*args): mode = args[-1] if mode == "execute": parent = args[0] - aux = args[3] if len(args) > 3 else None # noqa: F841 (kept for API parity) + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) decs = getattr(parent, "decs", None) if callable(decs): parent = decs() @@ -20,14 +23,14 @@ def cross_point_one(*args): p1 = parent[: (n + 1) // 2] p2 = parent[n // 2 :] nh = p1.shape[0] - k = np.random.randint(0, d, size=(nh,)) + k = rng.integers(0, d, size=nh) off1 = p1.copy() off2 = p2.copy() for i in range(nh): - off1[i, k[i] : ] = p2[i, k[i] : ] - off2[i, k[i] : ] = p1[i, k[i] : ] + off1[i, k[i] :] = p2[i, k[i] :] + off2[i, k[i] :] = p1[i, k[i] :] offspring = np.vstack([off1, off2]) - return offspring[:n, :], args[3] if len(args) > 3 else None + return offspring[:n, :], aux if mode == "parameter": return None, None if mode == "behavior": diff --git a/src/autooptlib/components/cross_point_two.py b/src/autooptlib/components/cross_point_two.py index 8848029..c34b968 100644 --- a/src/autooptlib/components/cross_point_two.py +++ b/src/autooptlib/components/cross_point_two.py @@ -4,12 +4,15 @@ import numpy as np +from ._utils import ensure_rng + def cross_point_two(*args): mode = args[-1] if mode == "execute": parent = args[0] - aux = args[3] if len(args) > 3 else None # noqa: F841 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) decs = getattr(parent, "decs", None) if callable(decs): parent = decs() @@ -22,7 +25,9 @@ def cross_point_two(*args): p1 = parent[: (n + 1) // 2] p2 = parent[n // 2 :] nh = p1.shape[0] - k = np.sort(np.random.randint(0, d, size=(nh, 2)), axis=1) + k = np.vstack( + [np.sort(rng.choice(d, size=2, replace=False)) for _ in range(nh)] + ) off1 = p1.copy() off2 = p2.copy() for i in range(nh): @@ -30,7 +35,7 @@ def cross_point_two(*args): off1[i, a : b + 1] = p2[i, a : b + 1] off2[i, a : b + 1] = p1[i, a : b + 1] offspring = np.vstack([off1, off2]) - return offspring[:n, :], args[3] if len(args) > 3 else None + return offspring[:n, :], aux if mode == "parameter": return None, None if mode == "behavior": diff --git a/src/autooptlib/components/cross_point_uniform.py b/src/autooptlib/components/cross_point_uniform.py index 4f0846b..810515a 100644 --- a/src/autooptlib/components/cross_point_uniform.py +++ b/src/autooptlib/components/cross_point_uniform.py @@ -4,13 +4,16 @@ import numpy as np +from ._utils import ensure_rng + def cross_point_uniform(*args): mode = args[-1] if mode == "execute": parent = args[0] para = args[2] if len(args) > 2 else None - aux = args[3] if len(args) > 3 else None # noqa: F841 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) prob = float(np.asarray(para).reshape(-1)[0]) if para is not None else 0.5 decs = getattr(parent, "decs", None) if callable(decs): @@ -22,13 +25,13 @@ def cross_point_uniform(*args): p1 = parent[: (n + 1) // 2] p2 = parent[n // 2 :] nh = p1.shape[0] - mask = np.random.rand(nh, d) < prob + mask = rng.random((nh, d)) < prob off1 = p1.copy() off2 = p2.copy() off1[mask] = p2[mask] off2[mask] = p1[mask] offspring = np.vstack([off1, off2]) - return offspring[:n, :], args[3] if len(args) > 3 else None + return offspring[:n, :], aux if mode == "parameter": return [0, 0.5], None if mode == "behavior": diff --git a/src/autooptlib/components/cross_sim_binary.py b/src/autooptlib/components/cross_sim_binary.py index 601ceac..c6866cc 100644 --- a/src/autooptlib/components/cross_sim_binary.py +++ b/src/autooptlib/components/cross_sim_binary.py @@ -6,6 +6,8 @@ import numpy as np +from ._utils import ensure_rng + def cross_sim_binary(*args: Any): mode = args[-1] @@ -13,6 +15,7 @@ def cross_sim_binary(*args: Any): parent = args[0] para = args[2] if len(args) > 2 else None aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) decs = getattr(parent, "decs", None) if callable(decs): @@ -25,8 +28,12 @@ def cross_sim_binary(*args: Any): second = parent[n // 2 :] n_half = first.shape[0] - eta = float(np.asarray(para, dtype=float).reshape(-1)[0]) if para is not None else 20.0 - mu = np.random.rand(n_half, d) + eta = ( + float(np.asarray(para, dtype=float).reshape(-1)[0]) + if para is not None + else 20.0 + ) + mu = rng.random((n_half, d)) beta = np.empty_like(mu) mask = mu <= 0.5 beta[mask] = (2.0 * mu[mask]) ** (1.0 / (1.0 + eta)) @@ -47,4 +54,3 @@ def cross_sim_binary(*args: Any): return ["", "GS"], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/para_cma.py b/src/autooptlib/components/para_cma.py index 1c8e50c..44318a9 100644 --- a/src/autooptlib/components/para_cma.py +++ b/src/autooptlib/components/para_cma.py @@ -1,4 +1,5 @@ """Python translation of para_cma.""" + from __future__ import annotations from typing import Any @@ -8,6 +9,17 @@ from ._utils import flex_get +def _regularize_covariance(matrix: np.ndarray) -> np.ndarray: + matrix = np.asarray(matrix, dtype=float) + matrix = np.nan_to_num(matrix, nan=0.0, posinf=1e6, neginf=-1e6) + matrix = 0.5 * (matrix + matrix.T) + eigvals, eigvecs = np.linalg.eigh(matrix) + eigvals = np.clip(eigvals, 1e-12, 1e6) + with np.errstate(all="ignore"): + result = (eigvecs * eigvals) @ eigvecs.T + return np.nan_to_num(result, nan=0.0, posinf=1e6, neginf=-1e6) + + def _extract_fitness(obj: Any, mode: str) -> np.ndarray: if mode == "solution": fits = flex_get(obj, "fits") @@ -52,12 +64,22 @@ def para_cma(*args): hth = float(aux.get("cma_hth")) ps = np.asarray(aux.get("cma_ps"), dtype=float) pc = np.asarray(aux.get("cma_pc"), dtype=float) - C = np.asarray(aux.get("cma_C"), dtype=float) + C = _regularize_covariance(aux.get("cma_C")) fitness = _extract_fitness(solution, mode) rank = np.argsort(fitness) disturbance = disturbance[rank] - disturbance_w = w @ disturbance[:half_n] + selected_n = min(half_n, len(w), len(disturbance)) + if selected_n == 0: + return aux + selected_w = np.asarray(w[:selected_n], dtype=float) + selected_w /= np.sum(selected_w) + # The last generation may be deliberately truncated to respect ProbFE. + # Recompute the effective selection mass for that smaller sample. + better_n = 1.0 / np.sum(selected_w**2) + with np.errstate(all="ignore"): + disturbance_w = selected_w @ disturbance[:selected_n] + disturbance_w = np.nan_to_num(disturbance_w, nan=0.0, posinf=1e6, neginf=-1e6) mean = mean + sigma * disturbance_w try: @@ -68,20 +90,31 @@ def para_cma(*args): inv_chol_T = np.linalg.solve(chol_c.T, disturbance_w) ps = (1 - csigma) * ps + np.sqrt(csigma * (2 - csigma) * better_n) * inv_chol_T - gmax = int(flex_get(problem[0] if isinstance(problem, (list, tuple)) else problem, "Gmax", 1)) + gmax = int( + flex_get( + problem[0] if isinstance(problem, (list, tuple)) else problem, "Gmax", 1 + ) + ) denom = np.sqrt(1 - (1 - csigma) ** (2 * (gmax + 1))) hs = float(np.linalg.norm(ps) / denom < hth) pc = (1 - cc) * pc + hs * np.sqrt(cc * (2 - cc) * better_n) * disturbance_w delta = (1 - hs) * cc * (2 - cc) C = (1 - ccov - cmu) * C + ccov * (np.outer(pc, pc) + delta * C) - for i in range(half_n): - C += cmu * w[i] * np.outer(disturbance[i], disturbance[i]) - C = 0.5 * (C + C.T) - eigvals, eigvecs = np.linalg.eigh(C) - eigvals = np.clip(eigvals, 0, None) - C = eigvecs @ np.diag(eigvals) @ eigvecs.T + for i in range(selected_n): + C += cmu * selected_w[i] * np.outer(disturbance[i], disturbance[i]) + C = _regularize_covariance(C) + + exponent = 0.3 * csigma / dsigma * (np.linalg.norm(ps) / chi_n - 1) + sigma = sigma * np.exp(np.clip(exponent, -20.0, 20.0)) + sigma = np.clip( + np.nan_to_num(sigma, nan=1e-3, posinf=1e6, neginf=1e-12), 1e-12, 1e6 + ) - sigma = sigma * np.exp(csigma / dsigma * (np.linalg.norm(ps) / chi_n - 1)) ** 0.3 + target = problem[0] if isinstance(problem, (list, tuple)) else problem + bound = flex_get(target, "bound", None) + if bound is not None and mode == "solution": + bound = np.asarray(bound, dtype=float) + mean = np.clip(mean, bound[0], bound[1]) aux.update( { @@ -92,4 +125,4 @@ def para_cma(*args): "cma_sigma": sigma, } ) - return aux \ No newline at end of file + return aux diff --git a/src/autooptlib/components/para_cmaes.py b/src/autooptlib/components/para_cmaes.py index ac6416e..3cc9a89 100644 --- a/src/autooptlib/components/para_cmaes.py +++ b/src/autooptlib/components/para_cmaes.py @@ -9,4 +9,3 @@ def para_cmaes(*args: Any): return para_cma(*args) - diff --git a/src/autooptlib/components/para_pso.py b/src/autooptlib/components/para_pso.py index 1206ad8..ea24be9 100644 --- a/src/autooptlib/components/para_pso.py +++ b/src/autooptlib/components/para_pso.py @@ -1,34 +1,15 @@ """Python translation of para_pso.""" + from __future__ import annotations -from typing import Any, Iterable +from typing import Any import numpy as np +from ..utils.solve import SolutionSet from ._utils import flex_get from .update_pairwise import update_pairwise -try: # noqa: SIM105 - from ..utils.solve import SolutionSet # type: ignore -except Exception: # pylint: disable=broad-except - class SolutionSet(list): # type: ignore - def __init__(self, items: Iterable[Any]): - super().__init__(items) - - def decs(self) -> np.ndarray: - if not self: - return np.zeros((0, 0)) - return np.vstack([np.asarray(flex_get(sol, "dec"), dtype=float) for sol in self]) - - def objs(self) -> np.ndarray: - return np.asarray([flex_get(sol, "obj") for sol in self], dtype=float).reshape(-1, 1) - - def cons(self) -> np.ndarray: - return np.asarray([flex_get(sol, "con") for sol in self], dtype=float).reshape(-1, 1) - - def fits(self) -> np.ndarray: - return np.asarray([flex_get(sol, "fit") for sol in self], dtype=float).reshape(-1, 1) - def _ensure_solution_set(solution: Any) -> SolutionSet: if isinstance(solution, SolutionSet): @@ -38,7 +19,6 @@ def _ensure_solution_set(solution: Any) -> SolutionSet: def para_pso(*args): solution = _ensure_solution_set(args[0]) - problem = args[1] aux = args[2] if len(args) > 2 else None if aux is None: @@ -47,9 +27,12 @@ def para_pso(*args): return aux pbest_set = aux["Pbest"] - combined = list(pbest_set) + list(solution) + update_count = min(len(pbest_set), len(solution)) + combined = list(pbest_set)[:update_count] + list(solution)[:update_count] selected, _ = update_pairwise(combined, "execute") - aux["Pbest"] = SolutionSet(selected) + # A strict ProbFE boundary can truncate the last particle batch. Preserve + # personal bests for particles that were not evaluated in that batch. + aux["Pbest"] = SolutionSet(selected + list(pbest_set)[update_count:]) objs = np.asarray([flex_get(sol, "obj") for sol in aux["Pbest"]], dtype=float) best_idx = int(np.argmin(objs)) diff --git a/src/autooptlib/components/reinit_continuous.py b/src/autooptlib/components/reinit_continuous.py index 6d4af33..11475fc 100644 --- a/src/autooptlib/components/reinit_continuous.py +++ b/src/autooptlib/components/reinit_continuous.py @@ -4,6 +4,8 @@ import numpy as np +from ._utils import ensure_rng + def reinit_continuous(*args): mode = args[-1] @@ -11,6 +13,7 @@ def reinit_continuous(*args): solution = args[0] problem = args[1] if len(args) > 1 else None aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, problem) try: n = len(solution) @@ -19,7 +22,7 @@ def reinit_continuous(*args): bound = getattr(problem, "bound") lower = np.asarray(bound[0], dtype=float) upper = np.asarray(bound[1], dtype=float) - dec = lower + (upper - lower) * np.random.rand(n, lower.shape[-1]) + dec = lower + (upper - lower) * rng.random((n, lower.shape[-1])) return dec, aux if mode == "parameter": diff --git a/src/autooptlib/components/reinit_discrete.py b/src/autooptlib/components/reinit_discrete.py index d305abb..514b385 100644 --- a/src/autooptlib/components/reinit_discrete.py +++ b/src/autooptlib/components/reinit_discrete.py @@ -1,4 +1,5 @@ """Reinitialization for discrete problems.""" + from __future__ import annotations from typing import Any @@ -44,4 +45,4 @@ def reinit_discrete(*args): if mode == "behavior": return ["", "GS"], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/reinit_permutation.py b/src/autooptlib/components/reinit_permutation.py index d7d1cc3..5116808 100644 --- a/src/autooptlib/components/reinit_permutation.py +++ b/src/autooptlib/components/reinit_permutation.py @@ -1,4 +1,5 @@ """Reinitialization for permutation problems.""" + from __future__ import annotations from typing import Any @@ -39,4 +40,4 @@ def reinit_permutation(*args): if mode == "behavior": return ["", "GS"], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_cma.py b/src/autooptlib/components/search_cma.py index e7be7cd..0445448 100644 --- a/src/autooptlib/components/search_cma.py +++ b/src/autooptlib/components/search_cma.py @@ -1,11 +1,12 @@ """Python translation of search_cma.""" + from __future__ import annotations from typing import Any, Tuple import numpy as np -from ._utils import flex_get +from ._utils import ensure_rng, flex_get def _extract_decs(parent_obj: Any) -> np.ndarray: @@ -17,7 +18,9 @@ def _extract_decs(parent_obj: Any) -> np.ndarray: if decs is not None: return np.asarray(decs, dtype=float) # assume sequence of Solution objects - return np.vstack([np.asarray(flex_get(item, "dec"), dtype=float) for item in parent_obj]) + return np.vstack( + [np.asarray(flex_get(item, "dec"), dtype=float) for item in parent_obj] + ) def _ensure_aux(aux: Any) -> dict: @@ -26,13 +29,32 @@ def _ensure_aux(aux: Any) -> dict: return aux -def _init_cma(aux: dict, n: int, d: int, lower: np.ndarray, upper: np.ndarray) -> None: - half_n = int(np.round(n / 2)) - w = np.log(np.arange(1, half_n + 1) + 0.5) - w = w - w[-1] - w = w[::-1] +def _regularize_covariance(matrix: np.ndarray) -> np.ndarray: + """Return a finite, symmetric positive-definite covariance matrix.""" + matrix = np.asarray(matrix, dtype=float) + matrix = np.nan_to_num(matrix, nan=0.0, posinf=1e6, neginf=-1e6) + matrix = 0.5 * (matrix + matrix.T) + eigvals, eigvecs = np.linalg.eigh(matrix) + eigvals = np.clip(eigvals, 1e-12, 1e6) + # Some macOS Accelerate builds emit spurious floating-point warnings for + # otherwise finite matrix products. The result is validated immediately. + with np.errstate(all="ignore"): + result = (eigvecs * eigvals) @ eigvecs.T + return np.nan_to_num(result, nan=0.0, posinf=1e6, neginf=-1e6) + + +def _init_cma( + aux: dict, + n: int, + d: int, + lower: np.ndarray, + upper: np.ndarray, + rng: np.random.Generator, +) -> None: + half_n = max(1, int(np.floor(n / 2 + 0.5))) + w = np.log(half_n + 0.5) - np.log(np.arange(1, half_n + 1)) w = w / np.sum(w) - better_n = 1.0 / np.sum(w ** 2) + better_n = 1.0 / np.sum(w**2) aux.setdefault("cma_halfN", half_n) aux.setdefault("cma_w", w) @@ -53,18 +75,26 @@ def _init_cma(aux: dict, n: int, d: int, lower: np.ndarray, upper: np.ndarray) - ), ) aux.setdefault("cma_hth", (1.4 + 2 / (d + 1)) * aux["cma_chiN"]) - aux.setdefault("cma_mean", lower + (upper - lower) * np.random.rand(d)) + aux.setdefault("cma_mean", lower + (upper - lower) * rng.random(d)) aux.setdefault("cma_ps", np.zeros(d)) aux.setdefault("cma_pc", np.zeros(d)) aux.setdefault("cma_C", np.eye(d)) aux.setdefault("cma_sigma", 0.1 * (upper - lower)) -def _sample(aux: dict, n: int, d: int) -> Tuple[np.ndarray, np.ndarray]: +def _sample( + aux: dict, n: int, d: int, rng: np.random.Generator +) -> Tuple[np.ndarray, np.ndarray]: mean = np.asarray(aux["cma_mean"], dtype=float) sigma = np.asarray(aux["cma_sigma"], dtype=float) - C = np.asarray(aux["cma_C"], dtype=float) - disturbance = np.random.multivariate_normal(np.zeros(d), C, size=n) + C = _regularize_covariance(aux["cma_C"]) + sigma = np.clip( + np.nan_to_num(sigma, nan=1e-3, posinf=1e6, neginf=1e-12), 1e-12, 1e6 + ) + aux["cma_C"] = C + aux["cma_sigma"] = sigma + with np.errstate(all="ignore"): + disturbance = rng.multivariate_normal(np.zeros(d), C, size=n) offspring = mean + sigma * disturbance aux["cma_Disturb"] = disturbance return offspring, aux @@ -76,13 +106,14 @@ def search_cma(*args): parent_obj = args[0] problem = args[1] aux = _ensure_aux(args[3] if len(args) > 3 else None) + rng = ensure_rng(aux, problem) parent = _extract_decs(parent_obj) n, d = parent.shape bound = flex_get(problem, "bound") lower = np.asarray(bound[0], dtype=float) upper = np.asarray(bound[1], dtype=float) - _init_cma(aux, n, d, lower, upper) - offspring, aux = _sample(aux, n, d) + _init_cma(aux, n, d, lower, upper, rng) + offspring, aux = _sample(aux, n, d, rng) return offspring, aux if mode == "parameter": @@ -95,11 +126,12 @@ def search_cma(*args): parent = np.asarray(args[0], dtype=float) bound = np.asarray(args[1], dtype=float) aux = _ensure_aux(args[2] if len(args) > 2 else None) + rng = ensure_rng(aux) n, d = parent.shape lower = bound[0] upper = bound[1] - _init_cma(aux, n, d, lower, upper) - offspring, aux = _sample(aux, n, d) + _init_cma(aux, n, d, lower, upper, rng) + offspring, aux = _sample(aux, n, d, rng) return offspring, aux - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_de_current.py b/src/autooptlib/components/search_de_current.py index 6734b99..66a722e 100644 --- a/src/autooptlib/components/search_de_current.py +++ b/src/autooptlib/components/search_de_current.py @@ -4,13 +4,16 @@ import numpy as np +from ._utils import ensure_rng + def search_de_current(*args): mode = args[-1] if mode == "execute": parent_obj = args[0] para = args[2] if len(args) > 2 else None - aux = args[3] if len(args) > 3 else None # noqa: F841 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) decs = getattr(parent_obj, "decs", None) if callable(decs): parent = decs() @@ -25,12 +28,12 @@ def search_de_current(*args): f = float(arr[0]) cr = float(arr[1]) if arr.size > 1 else 0.5 p1 = parent.copy() - p2 = parent[np.random.permutation(n)] - p3 = parent[np.random.permutation(n)] - mask = np.random.rand(n, d) < cr + p2 = parent[rng.permutation(n)] + p3 = parent[rng.permutation(n)] + mask = rng.random((n, d)) < cr offspring = parent.copy() offspring[mask] = p1[mask] + f * (p2[mask] - p3[mask]) - return offspring, args[3] if len(args) > 3 else None + return offspring, aux if mode == "parameter": return [[0, 1], [0, 1]], None if mode == "behavior": diff --git a/src/autooptlib/components/search_de_current_best.py b/src/autooptlib/components/search_de_current_best.py index 3235006..4a3c5d4 100644 --- a/src/autooptlib/components/search_de_current_best.py +++ b/src/autooptlib/components/search_de_current_best.py @@ -1,27 +1,36 @@ -"""Python translation of search_de_current_best.""" +"""Python translation of search_de_current_best.""" from __future__ import annotations import numpy as np +from ._utils import ensure_rng + def search_de_current_best(*args): mode = args[-1] if mode == "execute": parent_obj = args[0] para = args[2] if len(args) > 2 else None - aux = args[3] if len(args) > 3 else None # noqa: F841 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) fits = getattr(parent_obj, "fits", None) if callable(fits): fit_vals = np.asarray(fits()).reshape(-1) else: - fit_vals = np.asarray(fits if fits is not None else getattr(parent_obj, "fit", None)).reshape(-1) + fit_vals = np.asarray( + fits if fits is not None else getattr(parent_obj, "fit", None) + ).reshape(-1) best_idx = int(np.argmin(fit_vals)) best_dec = getattr(parent_obj[best_idx], "dec", None) if callable(best_dec): gbest = np.asarray(best_dec()) else: - gbest = np.asarray(best_dec if best_dec is not None else getattr(parent_obj, "decs")[best_idx]) + gbest = np.asarray( + best_dec + if best_dec is not None + else getattr(parent_obj, "decs")[best_idx] + ) decs = getattr(parent_obj, "decs", None) if callable(decs): parent = decs() @@ -37,11 +46,11 @@ def search_de_current_best(*args): cr = float(arr[1]) if arr.size > 1 else 0.5 p1 = parent.copy() p2 = np.repeat(gbest.reshape(1, -1), n, axis=0) - p3 = parent[np.random.permutation(n)] - mask = np.random.rand(n, d) < cr + p3 = parent[rng.permutation(n)] + mask = rng.random((n, d)) < cr offspring = parent.copy() offspring[mask] = p1[mask] + f * (p2[mask] - p3[mask]) - return offspring, args[3] if len(args) > 3 else None + return offspring, aux if mode == "parameter": return [[0, 1], [0, 1]], None if mode == "behavior": diff --git a/src/autooptlib/components/search_de_random.py b/src/autooptlib/components/search_de_random.py index 773b988..1695772 100644 --- a/src/autooptlib/components/search_de_random.py +++ b/src/autooptlib/components/search_de_random.py @@ -4,13 +4,16 @@ import numpy as np +from ._utils import ensure_rng + def search_de_random(*args): mode = args[-1] if mode == "execute": parent_obj = args[0] para = args[2] if len(args) > 2 else None - aux = args[3] if len(args) > 3 else None # noqa: F841 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) decs = getattr(parent_obj, "decs", None) if callable(decs): parent = decs() @@ -24,13 +27,13 @@ def search_de_random(*args): arr = np.asarray(para).reshape(-1) f = float(arr[0]) cr = float(arr[1]) if arr.size > 1 else 0.5 - p1 = parent[np.random.permutation(n)] - p2 = parent[np.random.permutation(n)] - p3 = parent[np.random.permutation(n)] - mask = np.random.rand(n, d) < cr + p1 = parent[rng.permutation(n)] + p2 = parent[rng.permutation(n)] + p3 = parent[rng.permutation(n)] + mask = rng.random((n, d)) < cr offspring = parent.copy() offspring[mask] = p1[mask] + f * (p2[mask] - p3[mask]) - return offspring, args[3] if len(args) > 3 else None + return offspring, aux if mode == "parameter": return [[0, 1], [0, 1]], None if mode == "behavior": diff --git a/src/autooptlib/components/search_eda.py b/src/autooptlib/components/search_eda.py index ccb0bc4..ff04933 100644 --- a/src/autooptlib/components/search_eda.py +++ b/src/autooptlib/components/search_eda.py @@ -6,12 +6,15 @@ import numpy as np +from ._utils import ensure_rng + def search_eda(*args: Any): mode = args[-1] if mode == "execute": parent = args[0] aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) decs = getattr(parent, "decs", None) if callable(decs): @@ -26,7 +29,7 @@ def search_eda(*args: Any): std = parent.std(axis=0, ddof=1) std = np.where(np.isfinite(std) & (std > 0), std, parent.std(axis=0, ddof=0)) std = np.where(std > 0, std, 1e-12) - offspring = np.random.normal(loc=mean, scale=std, size=(n, parent.shape[1])) + offspring = rng.normal(loc=mean, scale=std, size=(n, parent.shape[1])) return offspring, aux if mode == "parameter": @@ -36,4 +39,3 @@ def search_eda(*args: Any): return ["", "GS"], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/search_ica.py b/src/autooptlib/components/search_ica.py index 8357e6b..5286504 100644 --- a/src/autooptlib/components/search_ica.py +++ b/src/autooptlib/components/search_ica.py @@ -6,7 +6,7 @@ import numpy as np -from ._utils import flex_get +from ._utils import ensure_rng, flex_get def _ensure_aux(aux: Any) -> Dict[str, Any]: @@ -37,10 +37,15 @@ def search_ica(*args: Any): problem = args[1] if len(args) > 1 else None para = args[2] if len(args) > 2 else None aux = _ensure_aux(args[3] if len(args) > 3 else None) + rng = ensure_rng(aux, problem) if not isinstance(raw_parent, (np.ndarray, list, tuple)): decs_attr = getattr(raw_parent, "decs", None) - parent = decs_attr() if callable(decs_attr) else (decs_attr if decs_attr is not None else raw_parent) + parent = ( + decs_attr() + if callable(decs_attr) + else (decs_attr if decs_attr is not None else raw_parent) + ) else: parent = raw_parent parent = np.asarray(parent, dtype=float) @@ -79,16 +84,16 @@ def search_ica(*args: Any): offspring = parent.copy() if colonies.size: colony_indices = order[imperialist_count:] - assign = np.random.randint(0, imperialist_count, size=colonies.shape[0]) - rand_scale = np.random.rand(colonies.shape[0], d) + assign = rng.integers(0, imperialist_count, size=colonies.shape[0]) + rand_scale = rng.random((colonies.shape[0], d)) target = imperialists[assign] moved = colonies + assimilation_coeff * rand_scale * (target - colonies) moved = np.clip(moved, lower, upper) offspring[colony_indices] = moved - revol_mask = np.random.rand(n, d) < revolution_prob + revol_mask = rng.random((n, d)) < revolution_prob if np.any(revol_mask): - random_values = lower + range_span * np.random.rand(n, d) + random_values = lower + range_span * rng.random((n, d)) offspring[revol_mask] = random_values[revol_mask] return offspring, aux @@ -100,4 +105,3 @@ def search_ica(*args: Any): return ["", "GS"], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/components/search_insert.py b/src/autooptlib/components/search_insert.py index 0ec7489..4839682 100644 --- a/src/autooptlib/components/search_insert.py +++ b/src/autooptlib/components/search_insert.py @@ -1,4 +1,5 @@ """Insertion operator for permutations.""" + from __future__ import annotations from typing import Any @@ -45,4 +46,4 @@ def search_insert(*args): if mode == "behavior": return ["LS", ""], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_mu_cauchy.py b/src/autooptlib/components/search_mu_cauchy.py index b58e4d7..266c88c 100644 --- a/src/autooptlib/components/search_mu_cauchy.py +++ b/src/autooptlib/components/search_mu_cauchy.py @@ -4,6 +4,8 @@ import numpy as np +from ._utils import ensure_rng + _KEY = "cauchy_eta" @@ -29,11 +31,14 @@ def search_mu_cauchy(*args): if mode == "execute": parent = args[0] aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) inner_g = int(args[5]) if len(args) > 5 else 1 if not isinstance(parent, (np.ndarray, list, tuple)): decs = getattr(parent, "decs", None) - parent = decs() if callable(decs) else (decs if decs is not None else parent) + parent = ( + decs() if callable(decs) else (decs if decs is not None else parent) + ) parent = np.asarray(parent, dtype=float) n, d = parent.shape @@ -43,16 +48,16 @@ def search_mu_cauchy(*args): if eta is not None and np.shape(eta) != (n, d): eta = None if eta is None: - eta = np.random.rand(n, d) + eta = rng.random((n, d)) _set_eta(aux, eta) - disturb = eta * np.random.standard_cauchy(size=(n, d)) + disturb = eta * rng.standard_cauchy(size=(n, d)) offspring = parent + disturb tau1 = 1.0 / np.sqrt(2.0 * np.sqrt(d)) tau2 = 1.0 / np.sqrt(2.0 * d) - normal = np.random.randn(n, 1).repeat(d, axis=1) - normal_j = np.random.randn(n, d) + normal = rng.standard_normal((n, 1)).repeat(d, axis=1) + normal_j = rng.standard_normal((n, d)) eta = eta * np.exp(tau2 * normal + tau1 * normal_j) _set_eta(aux, eta) return offspring, aux diff --git a/src/autooptlib/components/search_mu_gaussian.py b/src/autooptlib/components/search_mu_gaussian.py index cad70dd..cf431b3 100644 --- a/src/autooptlib/components/search_mu_gaussian.py +++ b/src/autooptlib/components/search_mu_gaussian.py @@ -4,6 +4,8 @@ import numpy as np +from ._utils import ensure_rng + _KEY = "gaussian_eta" @@ -29,11 +31,14 @@ def search_mu_gaussian(*args): if mode == "execute": parent = args[0] aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, args[1] if len(args) > 1 else None) inner_g = int(args[5]) if len(args) > 5 else 1 if not isinstance(parent, (np.ndarray, list, tuple)): decs = getattr(parent, "decs", None) - parent = decs() if callable(decs) else (decs if decs is not None else parent) + parent = ( + decs() if callable(decs) else (decs if decs is not None else parent) + ) parent = np.asarray(parent, dtype=float) n, d = parent.shape @@ -43,16 +48,16 @@ def search_mu_gaussian(*args): if eta is not None and np.shape(eta) != (n, d): eta = None if eta is None: - eta = np.random.rand(n, d) + eta = rng.random((n, d)) _set_eta(aux, eta) - disturb = eta * np.random.randn(n, d) + disturb = eta * rng.standard_normal((n, d)) offspring = parent + disturb tau1 = 1.0 / np.sqrt(2.0 * np.sqrt(d)) tau2 = 1.0 / np.sqrt(2.0 * d) - normal = np.random.randn(n, 1).repeat(d, axis=1) - normal_j = np.random.randn(n, d) + normal = rng.standard_normal((n, 1)).repeat(d, axis=1) + normal_j = rng.standard_normal((n, d)) eta = eta * np.exp(tau2 * normal + tau1 * normal_j) _set_eta(aux, eta) return offspring, aux diff --git a/src/autooptlib/components/search_mu_polynomial.py b/src/autooptlib/components/search_mu_polynomial.py index b6a88e2..9335ca6 100644 --- a/src/autooptlib/components/search_mu_polynomial.py +++ b/src/autooptlib/components/search_mu_polynomial.py @@ -4,6 +4,8 @@ import numpy as np +from ._utils import ensure_rng + def search_mu_polynomial(*args): mode = args[-1] @@ -12,10 +14,13 @@ def search_mu_polynomial(*args): problem = args[1] if len(args) > 1 else None para = args[2] if len(args) > 2 else None aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, problem) if not isinstance(parent, (np.ndarray, list, tuple)): decs = getattr(parent, "decs", None) - offspring = decs() if callable(decs) else (decs if decs is not None else parent) + offspring = ( + decs() if callable(decs) else (decs if decs is not None else parent) + ) else: offspring = parent offspring = np.asarray(offspring, dtype=float) @@ -36,17 +41,38 @@ def search_mu_polynomial(*args): lower = np.repeat(lower.reshape(1, -1), n, axis=0) upper = np.repeat(upper.reshape(1, -1), n, axis=0) - site = np.random.rand(n, d) < prob_m - mu = np.random.rand(n, d) + site = rng.random((n, d)) < prob_m + mu = rng.random((n, d)) temp = site & (mu <= 0.5) if np.any(temp): offspring[temp] = offspring[temp] + (upper[temp] - lower[temp]) * ( - (2.0 * mu[temp] + (1.0 - 2.0 * mu[temp]) * (1.0 - (offspring[temp] - lower[temp]) / (upper[temp] - lower[temp])) ** (dis_m + 1.0)) ** (1.0 / (dis_m + 1.0)) - 1.0 + ( + 2.0 * mu[temp] + + (1.0 - 2.0 * mu[temp]) + * ( + 1.0 + - (offspring[temp] - lower[temp]) / (upper[temp] - lower[temp]) + ) + ** (dis_m + 1.0) + ) + ** (1.0 / (dis_m + 1.0)) + - 1.0 ) temp = site & (mu > 0.5) if np.any(temp): offspring[temp] = offspring[temp] + (upper[temp] - lower[temp]) * ( - 1.0 - (2.0 * (1.0 - mu[temp]) + 2.0 * (mu[temp] - 0.5) * (1.0 - (upper[temp] - offspring[temp]) / (upper[temp] - lower[temp])) ** (dis_m + 1.0)) ** (1.0 / (dis_m + 1.0)) + 1.0 + - ( + 2.0 * (1.0 - mu[temp]) + + 2.0 + * (mu[temp] - 0.5) + * ( + 1.0 + - (upper[temp] - offspring[temp]) / (upper[temp] - lower[temp]) + ) + ** (dis_m + 1.0) + ) + ** (1.0 / (dis_m + 1.0)) ) return offspring, aux @@ -62,20 +88,42 @@ def search_mu_polynomial(*args): prob_m = 1.0 dis_m = 30.0 offspring = np.asarray(parent, dtype=float) + rng = ensure_rng(args[2] if len(args) > 3 else None) n, d = offspring.shape lower = np.repeat(bound[0].reshape(1, -1), n, axis=0) upper = np.repeat(bound[1].reshape(1, -1), n, axis=0) - site = np.random.rand(n, d) < prob_m - mu = np.random.rand(n, d) + site = rng.random((n, d)) < prob_m + mu = rng.random((n, d)) temp = site & (mu <= 0.5) if np.any(temp): offspring[temp] = offspring[temp] + (upper[temp] - lower[temp]) * ( - (2.0 * mu[temp] + (1.0 - 2.0 * mu[temp]) * (1.0 - (offspring[temp] - lower[temp]) / (upper[temp] - lower[temp])) ** (dis_m + 1.0)) ** (1.0 / (dis_m + 1.0)) - 1.0 + ( + 2.0 * mu[temp] + + (1.0 - 2.0 * mu[temp]) + * ( + 1.0 + - (offspring[temp] - lower[temp]) / (upper[temp] - lower[temp]) + ) + ** (dis_m + 1.0) + ) + ** (1.0 / (dis_m + 1.0)) + - 1.0 ) temp = site & (mu > 0.5) if np.any(temp): offspring[temp] = offspring[temp] + (upper[temp] - lower[temp]) * ( - 1.0 - (2.0 * (1.0 - mu[temp]) + 2.0 * (mu[temp] - 0.5) * (1.0 - (upper[temp] - offspring[temp]) / (upper[temp] - lower[temp])) ** (dis_m + 1.0)) ** (1.0 / (dis_m + 1.0)) + 1.0 + - ( + 2.0 * (1.0 - mu[temp]) + + 2.0 + * (mu[temp] - 0.5) + * ( + 1.0 + - (upper[temp] - offspring[temp]) / (upper[temp] - lower[temp]) + ) + ** (dis_m + 1.0) + ) + ** (1.0 / (dis_m + 1.0)) ) return offspring, None diff --git a/src/autooptlib/components/search_mu_uniform.py b/src/autooptlib/components/search_mu_uniform.py index b3dd96c..52257c1 100644 --- a/src/autooptlib/components/search_mu_uniform.py +++ b/src/autooptlib/components/search_mu_uniform.py @@ -4,6 +4,8 @@ import numpy as np +from ._utils import ensure_rng + def search_mu_uniform(*args): mode = args[-1] @@ -11,11 +13,14 @@ def search_mu_uniform(*args): parent = args[0] problem = args[1] if len(args) > 1 else None para = args[2] if len(args) > 2 else None - aux = args[3] if len(args) > 3 else None # noqa: F841 + aux = args[3] if len(args) > 3 else None + rng = ensure_rng(aux, problem) if not isinstance(parent, (np.ndarray, list, tuple)): decs = getattr(parent, "decs", None) - offspring = decs() if callable(decs) else (decs if decs is not None else parent) + offspring = ( + decs() if callable(decs) else (decs if decs is not None else parent) + ) else: offspring = parent offspring = np.asarray(offspring, dtype=float) @@ -23,8 +28,8 @@ def search_mu_uniform(*args): n, d = offspring.shape lower = np.asarray(getattr(problem, "bound")[0], dtype=float) upper = np.asarray(getattr(problem, "bound")[1], dtype=float) - mask = np.random.rand(n, d) < prob - rand_vals = lower + (upper - lower) * np.random.rand(n, d) + mask = rng.random((n, d)) < prob + rand_vals = lower + (upper - lower) * rng.random((n, d)) offspring[mask] = rand_vals[mask] return offspring, aux diff --git a/src/autooptlib/components/search_pso.py b/src/autooptlib/components/search_pso.py index 0c9dfa8..f22d7f5 100644 --- a/src/autooptlib/components/search_pso.py +++ b/src/autooptlib/components/search_pso.py @@ -2,33 +2,13 @@ from __future__ import annotations -from typing import Any, Iterable +from typing import Any import numpy as np +from ..utils.solve import SolutionSet from ._utils import ensure_rng, flex_get -try: # noqa: SIM105 - from ..utils.solve import SolutionSet # type: ignore -except Exception: # pylint: disable=broad-except - class SolutionSet(list): # type: ignore - def __init__(self, items: Iterable[Any]): - super().__init__(items) - - def decs(self) -> np.ndarray: - if not self: - return np.zeros((0, 0)) - return np.vstack([np.asarray(flex_get(sol, "dec"), dtype=float) for sol in self]) - - def objs(self) -> np.ndarray: - return np.asarray([flex_get(sol, "obj") for sol in self], dtype=float).reshape(-1, 1) - - def cons(self) -> np.ndarray: - return np.asarray([flex_get(sol, "con") for sol in self], dtype=float).reshape(-1, 1) - - def fits(self) -> np.ndarray: - return np.asarray([flex_get(sol, "fit") for sol in self], dtype=float).reshape(-1, 1) - def _ensure_solution_set(solution: Any) -> SolutionSet: if isinstance(solution, SolutionSet): @@ -47,7 +27,6 @@ def search_pso(*args): mode = args[-1] if mode == "execute": solution_obj = args[0] - problem = args[1] para = args[2] if len(args) > 2 else None aux = args[3] if len(args) > 3 else None rng = ensure_rng(aux) @@ -63,21 +42,22 @@ def search_pso(*args): if "Pbest" not in aux: aux["Pbest"] = SolutionSet([sol for sol in sol_set]) - fits = flex_get(sol_set, "fits") - if fits is None: - fits = sol_set.fits() - fits = np.asarray(fits, dtype=float).reshape(-1) - best_idx = int(np.argmin(fits)) - aux["Gbest"] = aux["Pbest"][best_idx] + # The original PSO component seeds the global guide with a random + # particle; ParaPSO promotes the best guide after evaluation. + aux["Gbest"] = aux["Pbest"][int(rng.integers(n))] aux["V"] = np.zeros((n, d)) velocity = np.asarray(aux.get("V", np.zeros((n, d))), dtype=float) pbest = _extract_dec_matrix(aux["Pbest"]) gbest = np.asarray(flex_get(aux["Gbest"], "dec"), dtype=float).reshape(1, -1) - r1 = rng.random((n, d)) - r2 = rng.random((n, d)) - velocity = inertia * velocity + 2 * r1 * (pbest - decs) + 2 * r2 * (gbest - decs) + # MATLAB draws one coefficient per particle and broadcasts it across + # dimensions, rather than drawing a coefficient per coordinate. + r1 = rng.random((n, 1)) + r2 = rng.random((n, 1)) + velocity = ( + inertia * velocity + 2 * r1 * (pbest - decs) + 2 * r2 * (gbest - decs) + ) offspring = decs + velocity aux["V"] = velocity diff --git a/src/autooptlib/components/search_reset_creep.py b/src/autooptlib/components/search_reset_creep.py index ddc5da4..b4bab7e 100644 --- a/src/autooptlib/components/search_reset_creep.py +++ b/src/autooptlib/components/search_reset_creep.py @@ -1,4 +1,5 @@ """Creep mutation for discrete ordinal variables.""" + from __future__ import annotations from typing import Any @@ -30,7 +31,9 @@ def search_reset_creep(*args): aux = args[3] if len(args) > 3 else None rng = ensure_rng(aux) - params = np.asarray(para).reshape(-1) if para is not None else np.array([0.1, 0.1]) + params = ( + np.asarray(para).reshape(-1) if para is not None else np.array([0.1, 0.1]) + ) prob = float(params[0]) if params.size > 0 else 0.1 amp_ratio = float(params[1]) if params.size > 1 else 0.1 @@ -60,4 +63,4 @@ def search_reset_creep(*args): if mode == "behavior": return [["LS", "small", "small"], ["GS", "large", "large"]], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_reset_one.py b/src/autooptlib/components/search_reset_one.py index 97b937a..d09e14c 100644 --- a/src/autooptlib/components/search_reset_one.py +++ b/src/autooptlib/components/search_reset_one.py @@ -1,4 +1,5 @@ """Reset a single element of each solution.""" + from __future__ import annotations from typing import Any @@ -52,4 +53,4 @@ def search_reset_one(*args): if mode == "behavior": return ["LS", ""], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_reset_rand.py b/src/autooptlib/components/search_reset_rand.py index 9402135..cb4b8b1 100644 --- a/src/autooptlib/components/search_reset_rand.py +++ b/src/autooptlib/components/search_reset_rand.py @@ -1,4 +1,5 @@ """Random reset operator for discrete variables.""" + from __future__ import annotations from typing import Any @@ -49,4 +50,4 @@ def search_reset_rand(*args): if mode == "behavior": return [["LS", "small"], ["GS", "large"]], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_scramble.py b/src/autooptlib/components/search_scramble.py index 8d0ae29..a0c7522 100644 --- a/src/autooptlib/components/search_scramble.py +++ b/src/autooptlib/components/search_scramble.py @@ -1,4 +1,5 @@ """Scramble elements within a segment.""" + from __future__ import annotations from typing import Any @@ -33,9 +34,9 @@ def search_scramble(*args): for i in range(n): idx = np.sort(rng.choice(d, size=2, replace=False)) start, end = int(idx[0]), int(idx[1]) - segment = new[i, start:end + 1] + segment = new[i, start : end + 1] rng.shuffle(segment) - new[i, start:end + 1] = segment + new[i, start : end + 1] = segment return new, aux if mode == "parameter": @@ -44,4 +45,4 @@ def search_scramble(*args): if mode == "behavior": return ["", "GS"], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_swap.py b/src/autooptlib/components/search_swap.py index e042553..5681550 100644 --- a/src/autooptlib/components/search_swap.py +++ b/src/autooptlib/components/search_swap.py @@ -1,4 +1,5 @@ """Swap two randomly selected elements.""" + from __future__ import annotations from typing import Any @@ -42,4 +43,4 @@ def search_swap(*args): if mode == "behavior": return ["LS", ""], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/search_swap_multi.py b/src/autooptlib/components/search_swap_multi.py index 2e9c200..787c132 100644 --- a/src/autooptlib/components/search_swap_multi.py +++ b/src/autooptlib/components/search_swap_multi.py @@ -1,4 +1,5 @@ """Multi swap between segments.""" + from __future__ import annotations from typing import Any @@ -46,4 +47,4 @@ def search_swap_multi(*args): if mode == "behavior": return ["", "GS"], None - raise ValueError(f"Unsupported mode: {mode}") \ No newline at end of file + raise ValueError(f"Unsupported mode: {mode}") diff --git a/src/autooptlib/components/update_simulated_annealing.py b/src/autooptlib/components/update_simulated_annealing.py index 6a9547d..1eb54d1 100644 --- a/src/autooptlib/components/update_simulated_annealing.py +++ b/src/autooptlib/components/update_simulated_annealing.py @@ -21,16 +21,20 @@ def update_simulated_annealing(*args): fitness = extract_fits(solution) n = int(flex_get(problem, "N", len(sol_list) // 2)) if len(sol_list) < 2 * n: - raise ValueError("update_simulated_annealing expects old and new populations of size N") + raise ValueError( + "update_simulated_annealing expects old and new populations of size N" + ) try: t_initial = float(np.asarray(para).reshape(-1)[0]) except Exception as exc: # pylint: disable=broad-except - raise ValueError("Parameter for simulated annealing must be convertible to float") from exc + raise ValueError( + "Parameter for simulated annealing must be convertible to float" + ) from exc t_final = 0.01 gmax = max(int(flex_get(problem, "Gmax", g + 1)), 1) rate = (t_final / t_initial) ** (1.0 / gmax) - temperature = t_initial * (rate ** g) + temperature = t_initial * (rate**g) old_list = sol_list[:n] new_list = sol_list[n : 2 * n] @@ -57,4 +61,3 @@ def update_simulated_annealing(*args): return ["", ""], None raise ValueError(f"Unsupported mode: {mode}") - diff --git a/src/autooptlib/problems/__init__.py b/src/autooptlib/problems/__init__.py index b4ecb95..30e1224 100644 --- a/src/autooptlib/problems/__init__.py +++ b/src/autooptlib/problems/__init__.py @@ -2,6 +2,8 @@ from __future__ import annotations +from .base import ProblemDefinition as ProblemDefinition +from .base import make_problem as make_problem from .cec2013 import ( cec2013_f1, cec2013_f2, @@ -63,4 +65,3 @@ "cec2013_f27", "cec2013_f28", ] - diff --git a/src/autooptlib/problems/base.py b/src/autooptlib/problems/base.py new file mode 100644 index 0000000..5846424 --- /dev/null +++ b/src/autooptlib/problems/base.py @@ -0,0 +1,191 @@ +"""Public contracts and helpers for user-defined optimization problems.""" + +from __future__ import annotations + +from typing import Any, Callable, Iterable, Protocol, Sequence, Union, runtime_checkable + +import numpy as np + +Objective = Callable[[np.ndarray, Any], float] +Constraint = Callable[[np.ndarray, Any], Any] +Bounds = Union[ + np.ndarray, + Sequence[Sequence[float]], + Callable[[Any], Any], + None, +] + + +@runtime_checkable +class ProblemDefinition(Protocol): + """Mode-based callable accepted by :func:`autooptlib.autoopt`. + + ``construct`` receives mutable problem records plus user instance + identifiers and returns ``(problems, data, auxiliary)``. Constructed + problem records must expose ``type``, ``bound``, and an + ``evaluate(data, decision)`` callable. + """ + + def __call__( + self, problems: Iterable[Any], instances: Sequence[Any], mode: str + ) -> tuple[Any, Any, Any]: ... + + +def _resolve_bound(bounds: Bounds, instance: Any, problem_type: str) -> np.ndarray: + raw = bounds(instance) if callable(bounds) else bounds + if problem_type == "permutation": + if raw is None: + dimension = int(instance) + domain = np.arange(1, dimension + 1) + return np.vstack((domain, domain)) + if raw is None: + raise ValueError(f"{problem_type} problems require explicit bounds.") + + array = np.asarray(raw, dtype=float if problem_type == "continuous" else int) + if array.ndim == 1 and array.size == 2: + try: + dimension = int(instance) + except (TypeError, ValueError) as exc: + raise ValueError( + "Scalar lower/upper bounds require an integer instance dimension." + ) from exc + array = np.vstack((np.full(dimension, array[0]), np.full(dimension, array[1]))) + return array + + +def make_problem( + objective: Objective, + *, + bounds: Bounds = None, + problem_type: str = "continuous", + constraint: Constraint | None = None, + data_factory: Callable[[Any], Any] | None = None, + name: str | None = None, +) -> ProblemDefinition: + """Create an AutoOptLib problem definition from ordinary Python callables. + + Parameters + ---------- + objective: + Callable ``objective(decision, data) -> scalar`` to minimize. + bounds: + A ``(2, dimension)`` array, a ``(lower, upper)`` pair expanded using + an integer instance dimension, or a callable returning bounds for an + instance. Permutation problems may omit bounds when instances are + dimensions. + problem_type: + ``continuous``, ``discrete``, or ``permutation``. + constraint: + Optional callable returning values where positive entries represent + violations. + data_factory: + Optional callable mapping each instance identifier to objective data. + Without it, the instance identifier itself is passed as data. + """ + if not callable(objective): + raise TypeError("objective must be callable") + problem_type = str(problem_type).lower() + if problem_type not in {"continuous", "discrete", "permutation"}: + raise ValueError("problem_type must be continuous, discrete, or permutation") + if constraint is not None and not callable(constraint): + raise TypeError("constraint must be callable") + if data_factory is not None and not callable(data_factory): + raise TypeError("data_factory must be callable") + + problem_name = str(name or getattr(objective, "__name__", "user_problem")) + + def evaluate_one(data: Any, decision: np.ndarray) -> tuple[Any, Any, None]: + decision = np.asarray(decision) + # Keep the raw result so the central evaluator can reject vectors and + # non-finite scalars consistently for built-in and user problems. + value = objective(decision, data) + violation = 0.0 if constraint is None else constraint(decision, data) + return value, violation, None + + def definition(problems: Iterable[Any], instances: Sequence[Any], mode: str): + normalized_mode = str(mode).lower() + if normalized_mode == "construct": + problem_list = list(problems) + if len(problem_list) != len(instances): + raise ValueError( + "The number of problem records and instances must match." + ) + data_entries: list[Any] = [] + for problem, instance in zip(problem_list, instances): + bound = _resolve_bound(bounds, instance, problem_type) + problem.type = [problem_type, "static", "certain"] + problem.bound = bound + problem.dimension = int(bound.shape[1]) if bound.ndim == 2 else 0 + problem.name = problem_name + problem.evaluate = evaluate_one + data_entries.append( + data_factory(instance) if data_factory is not None else instance + ) + return problem_list, data_entries, None + if normalized_mode == "repair": + return np.asarray(instances), None, None + if normalized_mode == "evaluate": + data = problems + decisions = np.asarray(instances) + single = decisions.ndim == 1 + decisions = np.atleast_2d(decisions) + values = [] + violations = [] + for decision in decisions: + value, violation, _ = evaluate_one(data, decision) + values.append(value) + violations.append(violation) + if single: + return values[0], violations[0], None + return np.asarray(values), np.asarray(violations), None + raise ValueError(f"Unsupported problem mode: {mode!r}") + + definition.__name__ = problem_name + return definition + + +def validate_constructed_problems(problems: Sequence[Any], data: Sequence[Any]) -> None: + """Validate the runtime problem contract with actionable error messages.""" + if not problems: + raise ValueError("Problem construction returned no problem instances.") + if len(data) != len(problems): + raise ValueError( + f"Problem construction returned {len(problems)} problems but {len(data)} data entries." + ) + for index, problem in enumerate(problems): + type_field = getattr(problem, "type", None) + if ( + not isinstance(type_field, Sequence) + or isinstance(type_field, (str, bytes)) + or not type_field + ): + raise TypeError( + f"Problem {index} must define a non-empty sequence attribute 'type'." + ) + problem_type = str(type_field[0]).lower() + if problem_type not in {"continuous", "discrete", "permutation"}: + raise ValueError( + f"Problem {index} has unsupported type {problem_type!r}; expected continuous, " + "discrete, or permutation." + ) + bound = np.asarray(getattr(problem, "bound", None)) + if bound.ndim != 2 or bound.shape[0] != 2 or bound.shape[1] == 0: + raise ValueError( + f"Problem {index} bound must have shape (2, dimension), got {bound.shape}." + ) + if not np.all(np.isfinite(bound)): + raise ValueError(f"Problem {index} bounds must be finite.") + if np.any(bound[0] > bound[1]): + raise ValueError( + f"Problem {index} has lower bounds greater than upper bounds." + ) + if not callable(getattr(problem, "evaluate", None)): + raise TypeError( + f"Problem {index} must expose evaluate(data, decision) after construction." + ) + for attribute in ("N", "Gmax"): + value = getattr(problem, attribute, None) + if not isinstance(value, (int, np.integer)) or value <= 0: + raise ValueError( + f"Problem {index} attribute {attribute} must be positive." + ) diff --git a/src/autooptlib/problems/cec2013.py b/src/autooptlib/problems/cec2013.py index fce8996..b318f06 100644 --- a/src/autooptlib/problems/cec2013.py +++ b/src/autooptlib/problems/cec2013.py @@ -1,60 +1,46 @@ """CEC2013 benchmark problems translated for the Python port. -This module currently exposes a growing subset of the official -benchmark suite. The implementations are direct ports of AutoOptLib's -Matlab definitions, sharing the same data files (shift vectors, -rotation matrices, etc.) so that fitness values remain comparable. +The implementations are direct ports of AutoOptLib's MATLAB definitions. +Shift vectors and rotation matrices are distributed as package resources so +the benchmark works from both source checkouts and installed wheels. """ from __future__ import annotations -from pathlib import Path +from importlib import resources from types import SimpleNamespace from typing import Any, Callable, Iterable, List, Sequence, Tuple import numpy as np - -_REPO_ROOT = Path(__file__).resolve().parents[3] -_DATA_DIR = ( - _REPO_ROOT - / "AutoOptLib for Matlab" - / "Problems" - / "Numerial Benchmarks" - / "CEC2013" - / "data" -) -_SHIFT_DATA = None +_DATA_ARCHIVE: dict[str, np.ndarray] | None = None +_SHIFT_DATA: np.ndarray | None = None _ROTATION_DATA: dict[int, np.ndarray] = {} -_RNG = np.random.default_rng(42) - -# Rotation matrices are bundled for a fixed set of dimensions. The text -# files store multiple stacked matrices (each block is D rows). -_ROTATION_FILES = { - 2: "M_D2.txt", - 5: "M_D5.txt", - 10: "M_D10.txt", - 20: "M_D20.txt", - 30: "M_D30.txt", - 40: "M_D40.txt", - 50: "M_D50.txt", - 60: "M_D60.txt", - 70: "M_D70.txt", - 80: "M_D80.txt", - 90: "M_D90.txt", - 100: "M_D100.txt", -} + +_SUPPORTED_DIMENSIONS = (2, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) # --------------------------------------------------------------------------- # Shared utilities # --------------------------------------------------------------------------- + +def _load_data_archive() -> dict[str, np.ndarray]: + global _DATA_ARCHIVE + if _DATA_ARCHIVE is None: + resource = resources.files("autooptlib.problems.data").joinpath("cec2013.npz") + with ( + resources.as_file(resource) as path, + np.load(path, allow_pickle=False) as archive, + ): + _DATA_ARCHIVE = {name: archive[name].copy() for name in archive.files} + return _DATA_ARCHIVE + + def _load_shift_data() -> np.ndarray: global _SHIFT_DATA if _SHIFT_DATA is None: - path = _DATA_DIR / "shift_data.txt" - _SHIFT_DATA = np.loadtxt(path, dtype=float) + _SHIFT_DATA = _load_data_archive()["shift_data"] if _SHIFT_DATA.ndim == 1: _SHIFT_DATA = _SHIFT_DATA.reshape(1, -1) return _SHIFT_DATA @@ -62,28 +48,18 @@ def _load_shift_data() -> np.ndarray: def _load_rotation_blocks(dim: int) -> np.ndarray | None: """Return stacked rotation matrices for the requested dimension.""" - if dim not in _ROTATION_FILES: + if dim not in _SUPPORTED_DIMENSIONS: return None if dim not in _ROTATION_DATA: - path = _DATA_DIR / _ROTATION_FILES[dim] - raw = np.loadtxt(path, dtype=float) - if raw.ndim == 1: - raw = raw.reshape(1, -1) - rows, cols = raw.shape - if cols < dim or rows % dim != 0: - raise ValueError( - f"Rotation data '{path.name}' has shape {raw.shape}, " - f"cannot extract {dim}x{dim} blocks." - ) - blocks = raw[:, :dim].reshape(rows // dim, dim, dim) - _ROTATION_DATA[dim] = blocks + _ROTATION_DATA[dim] = _load_data_archive()[f"M_D{dim}"] return _ROTATION_DATA[dim] -def _random_orthonormal(dim: int) -> np.ndarray: - """Fallback rotation when no precomputed matrix exists.""" - mat = _RNG.normal(size=(dim, dim)) +def _random_orthonormal(dim: int, index: int) -> np.ndarray: + """Return a deterministic fallback rotation for nonstandard dimensions.""" + rng = np.random.default_rng(np.random.SeedSequence([2013, dim, index])) + mat = rng.normal(size=(dim, dim)) q, _ = np.linalg.qr(mat) # Ensure a proper rotation matrix (determinant +1). if np.linalg.det(q) < 0: @@ -95,7 +71,7 @@ def _get_rotation(dim: int, index: int = 0) -> np.ndarray: blocks = _load_rotation_blocks(dim) if blocks is not None and index < blocks.shape[0]: return blocks[index].copy() - return _random_orthonormal(dim) + return _random_orthonormal(dim, index) def _construct_lambda(alpha: float, dim: int) -> np.ndarray: @@ -106,14 +82,27 @@ def _construct_lambda(alpha: float, dim: int) -> np.ndarray: return np.diag(diag) +def _safe_matmul(left: np.ndarray, right: np.ndarray) -> np.ndarray: + """Multiply finite CEC buffers without leaking backend FP warnings.""" + with np.errstate(all="ignore"): + result = np.matmul(left, right) + if not np.all(np.isfinite(result)): + raise FloatingPointError("CEC2013 transformation produced non-finite values.") + return result + + def _compute_t_osz(values: np.ndarray) -> np.ndarray: values = np.asarray(values, dtype=float) - result = np.zeros_like(values) - mask = values != 0.0 + one_dimensional = values.ndim == 1 + array = values.reshape(1, -1) if one_dimensional else values + result = array.copy() + mask = np.zeros_like(array, dtype=bool) + mask[:, 0] = array[:, 0] != 0.0 + mask[:, -1] = array[:, -1] != 0.0 if not np.any(mask): - return result + return result.reshape(-1) if one_dimensional else result - v = values[mask] + v = array[mask] x_hat = np.log(np.abs(v)) sign = np.sign(v) sign[sign == 0.0] = 1.0 @@ -122,10 +111,12 @@ def _compute_t_osz(values: np.ndarray) -> np.ndarray: c2 = np.where(v > 0.0, 7.9, 3.1) transformed = np.exp(x_hat + 0.049 * (np.sin(c1 * x_hat) + np.sin(c2 * x_hat))) result[mask] = sign * transformed - return result + return result.reshape(-1) if one_dimensional else result -def _compute_t_asym(values: np.ndarray, beta: float) -> np.ndarray: +def _compute_t_asym( + values: np.ndarray, beta: float, fallback: np.ndarray | None = None +) -> np.ndarray: arr = np.asarray(values, dtype=float) if arr.ndim == 1: arr = arr.reshape(1, -1) @@ -133,17 +124,20 @@ def _compute_t_asym(values: np.ndarray, beta: float) -> np.ndarray: else: squeeze_back = False - result = arr.copy() + if fallback is None: + result = arr.copy() + else: + result = np.asarray(fallback, dtype=float).reshape(arr.shape).copy() dim = arr.shape[1] if dim == 1: return result.squeeze(0) if squeeze_back else result - exponents = 1.0 + beta * np.arange(dim) / (dim - 1) for j in range(dim): pos = arr[:, j] > 0.0 if not np.any(pos): continue - result[pos, j] = np.power(arr[pos, j], exponents[j]) * np.sqrt(arr[pos, j]) + exponents = 1.0 + beta * j / (dim - 1) * np.sqrt(arr[pos, j]) + result[pos, j] = np.power(arr[pos, j], exponents) return result.squeeze(0) if squeeze_back else result @@ -152,7 +146,17 @@ def _prepare_shift(dim: int) -> np.ndarray: shift_data = _load_shift_data() if shift_data.shape[1] >= dim: return shift_data[0, :dim].copy() - return _RNG.uniform(-100.0, 100.0, size=dim) + rng = np.random.default_rng(np.random.SeedSequence([2013, dim])) + return rng.uniform(-100.0, 100.0, size=dim) + + +def _composition_centers(dim: int) -> np.ndarray: + """Return centers using the official reference file's sequential read order.""" + flat = _load_shift_data().reshape(-1) + required = 10 * dim + if flat.size < required: + raise ValueError(f"CEC 2013 shift data does not contain {required} values.") + return flat[:required].reshape(10, dim).copy() def _initialise_problem(problem: Any, shift: np.ndarray, name: str) -> None: @@ -220,6 +224,7 @@ def _mode_guard(mode: str) -> str: # Individual problems # --------------------------------------------------------------------------- + def cec2013_f1(problems: Iterable[Any], instances: Sequence[int], mode: str): """Shifted sphere.""" mode = _mode_guard(mode) @@ -261,7 +266,7 @@ def cec2013_f2(problems: Iterable[Any], instances: Sequence[int], mode: str): shift = np.asarray(data_obj.o, dtype=float) M = np.asarray(data_obj.M, dtype=float) - z = (decs - shift) @ M + z = (decs - shift) @ M.T z = _compute_t_osz(z) dim = z.shape[1] @@ -295,9 +300,10 @@ def cec2013_f3(problems: Iterable[Any], instances: Sequence[int], mode: str): M1 = np.asarray(data_obj.M1, dtype=float) M2 = np.asarray(data_obj.M2, dtype=float) - z = (decs - shift) @ M1 - z = _compute_t_asym(z, 0.5) - z = z @ M2 + shifted = decs - shift + z = _safe_matmul(shifted, M1.T) + z = _compute_t_asym(z, 0.5, fallback=shifted) + z = _safe_matmul(z, M2.T) a = 1e6 # f3 = z1^2 + a * sum_{i=2..D} z_i^2 @@ -329,7 +335,7 @@ def cec2013_f4(problems: Iterable[Any], instances: Sequence[int], mode: str): shift = np.asarray(data_obj.o, dtype=float) M = np.asarray(data_obj.M, dtype=float) - z = (decs - shift) @ M + z = _safe_matmul(decs - shift, M.T) z = _compute_t_osz(z) a = 1e6 @@ -366,7 +372,8 @@ def cec2013_f5(problems: Iterable[Any], instances: Sequence[int], mode: str): if dim == 1: powers = np.array([2.0]) else: - powers = 2.0 + 4.0 * (np.arange(dim) / (dim - 1)) + # Match the integer arithmetic in the official CEC 2013 reference. + powers = 2.0 + (4 * np.arange(dim)) // (dim - 1) values = np.sqrt(np.sum(np.abs(z) ** powers, axis=1)) - 1000.0 return _finalise(values, single) @@ -390,7 +397,7 @@ def cec2013_f6(problems: Iterable[Any], instances: Sequence[int], mode: str): shift = np.asarray(data_obj.o, dtype=float) M = np.asarray(data_obj.M, dtype=float) - z = (2.048 * (decs - shift) / 100.0) @ M + 1.0 + z = _safe_matmul(2.048 * (decs - shift) / 100.0, M.T) + 1.0 left = z[:, :-1] right = z[:, 1:] values = np.sum(100.0 * (left**2 - right) ** 2 + (left - 1.0) ** 2, axis=1) @@ -420,10 +427,11 @@ def cec2013_f7(problems: Iterable[Any], instances: Sequence[int], mode: str): M1 = np.asarray(data_obj.M1, dtype=float) M2 = np.asarray(data_obj.M2, dtype=float) - z = (decs - shift) @ M1 - z = _compute_t_asym(z, 0.5) - z = z @ M2 + shifted = decs - shift + z = shifted @ M1.T + z = _compute_t_asym(z, 0.5, fallback=shifted) z = z @ _construct_lambda(10.0, z.shape[1]) + z = z @ M2.T if z.shape[1] < 2: values = np.zeros(z.shape[0]) @@ -461,10 +469,11 @@ def cec2013_f8(problems: Iterable[Any], instances: Sequence[int], mode: str): M1 = np.asarray(data_obj.M1, dtype=float) M2 = np.asarray(data_obj.M2, dtype=float) - z = (decs - shift) @ M1 - z = _compute_t_asym(z, 0.5) - z = z @ M2 + shifted = decs - shift + z = shifted @ M1.T + z = _compute_t_asym(z, 0.5, fallback=shifted) z = z @ _construct_lambda(10.0, z.shape[1]) + z = z @ M2.T dim = z.shape[1] term1 = np.sum(z**2, axis=1) / dim @@ -496,11 +505,11 @@ def cec2013_f9(problems: Iterable[Any], instances: Sequence[int], mode: str): M1 = np.asarray(data_obj.M1, dtype=float) M2 = np.asarray(data_obj.M2, dtype=float) - z = 0.5 * (decs - shift) / 100.0 - z = z @ M1 - z = _compute_t_asym(z, 0.5) - z = z @ M2 + scaled = 0.5 * (decs - shift) / 100.0 + z = scaled @ M1.T + z = _compute_t_asym(z, 0.5, fallback=scaled) z = z @ _construct_lambda(10.0, z.shape[1]) + z = z @ M2.T a = 0.5 b = 3.0 @@ -509,7 +518,11 @@ def cec2013_f9(problems: Iterable[Any], instances: Sequence[int], mode: str): b_k = b**k inner = z[:, :, None] + 0.5 term1 = np.sum( - np.sum(a_k[np.newaxis, np.newaxis, :] * np.cos(2.0 * np.pi * b_k[np.newaxis, np.newaxis, :] * inner), axis=2), + np.sum( + a_k[np.newaxis, np.newaxis, :] + * np.cos(2.0 * np.pi * b_k[np.newaxis, np.newaxis, :] * inner), + axis=2, + ), axis=1, ) constant = np.sum(a_k * np.cos(2.0 * np.pi * b_k * 0.5)) @@ -538,7 +551,7 @@ def cec2013_f10(problems: Iterable[Any], instances: Sequence[int], mode: str): M = np.asarray(data_obj.M, dtype=float) z = 600.0 * (decs - shift) / 100.0 - z = z @ M + z = z @ M.T z = z @ _construct_lambda(100.0, z.shape[1]) sum_term = np.sum(z**2, axis=1) / 4000.0 @@ -600,12 +613,13 @@ def cec2013_f12(problems: Iterable[Any], instances: Sequence[int], mode: str): M2 = np.asarray(data_obj.M2, dtype=float) z = 5.12 * (decs - shift) / 100.0 - z = z @ M1 + z = _safe_matmul(z, M1.T) + rotated = z.copy() z = _compute_t_osz(z) - z = _compute_t_asym(z, 0.2) - z = z @ M2 - z = z @ _construct_lambda(10.0, z.shape[1]) - z = z @ M1 + z = _compute_t_asym(z, 0.2, fallback=rotated) + z = _safe_matmul(z, M2.T) + z = _safe_matmul(z, _construct_lambda(10.0, z.shape[1])) + z = _safe_matmul(z, M1.T) values = np.sum(z**2 - 10.0 * np.cos(2.0 * np.pi * z) + 10.0, axis=1) values -= 300.0 @@ -635,18 +649,19 @@ def cec2013_f13(problems: Iterable[Any], instances: Sequence[int], mode: str): M2 = np.asarray(data_obj.M2, dtype=float) z = 5.12 * (decs - shift) / 100.0 - z = z @ M1 + z = _safe_matmul(z, M1.T) mask = np.abs(z) > 0.5 rounded = np.round(2.0 * z[mask]) / 2.0 z = z.copy() z[mask] = rounded + rounded_rotated = z.copy() z = _compute_t_osz(z) - z = _compute_t_asym(z, 0.2) - z = z @ M2 - z = z @ _construct_lambda(10.0, z.shape[1]) - z = z @ M1 + z = _compute_t_asym(z, 0.2, fallback=rounded_rotated) + z = _safe_matmul(z, M2.T) + z = _safe_matmul(z, _construct_lambda(10.0, z.shape[1])) + z = _safe_matmul(z, M1.T) values = np.sum(z**2 - 10.0 * np.cos(2.0 * np.pi * z) + 10.0, axis=1) values -= 200.0 @@ -705,7 +720,7 @@ def cec2013_f14(problems: Iterable[Any], instances: Sequence[int], mode: str): z = z + 4.209687462275036e2 g_sum = _schwefel_core(z, z.shape[1], penalty_sign=-1.0) - values = 418.9829 * z.shape[1] - g_sum + values = 418.9828872724338 * z.shape[1] - g_sum values -= 100.0 return _finalise(values, single) @@ -730,12 +745,12 @@ def cec2013_f15(problems: Iterable[Any], instances: Sequence[int], mode: str): M1 = np.asarray(data_obj.M1, dtype=float) z = 10.0 * (decs - shift) - z = z @ M1 + z = z @ M1.T z = z @ _construct_lambda(10.0, z.shape[1]) z = z + 4.209687462275036e2 - g_sum = _schwefel_core(z, z.shape[1], penalty_sign=1.0) - values = 418.9829 * z.shape[1] - g_sum + g_sum = _schwefel_core(z, z.shape[1], penalty_sign=-1.0) + values = 418.9828872724338 * z.shape[1] - g_sum values += 100.0 return _finalise(values, single) @@ -763,9 +778,9 @@ def cec2013_f16(problems: Iterable[Any], instances: Sequence[int], mode: str): M2 = np.asarray(data_obj.M2, dtype=float) z = (5.0 / 100.0) * (decs - shift) - z = z @ M1 + z = z @ M1.T z = z @ _construct_lambda(100.0, z.shape[1]) - z = z @ M2 + z = z @ M2.T exponent = 10.0 / (z.shape[1] ** 1.2) product_val = np.ones(z.shape[0], dtype=float) @@ -830,7 +845,9 @@ def cec2013_f18(problems: Iterable[Any], instances: Sequence[int], mode: str): problems, instances, "cec2013_f18", - lambda dim, shift: SimpleNamespace(o=shift, M1=_get_rotation(dim, 0), M2=_get_rotation(dim, 1)), + lambda dim, shift: SimpleNamespace( + o=shift, M1=_get_rotation(dim, 0), M2=_get_rotation(dim, 1) + ), ) if mode == "repair": @@ -850,9 +867,9 @@ def cec2013_f18(problems: Iterable[Any], instances: Sequence[int], mode: str): y = 10.0 * (decs - o) / 100.0 sign_vec = np.where(o > 0.0, 1.0, -1.0) xhat = 2.0 * sign_vec * y + mu0 - z = (xhat - mu0) @ M1 + z = (xhat - mu0) @ M1.T z = z @ _construct_lambda(100.0, z.shape[1]) - z = z @ M2 + z = z @ M2.T term1 = np.sum((xhat - mu0) ** 2, axis=1) term2 = d * decs.shape[1] + s * np.sum((xhat - mu1) ** 2, axis=1) @@ -879,11 +896,11 @@ def cec2013_f19(problems: Iterable[Any], instances: Sequence[int], mode: str): data_obj = problems if hasattr(problems, "o") else list(problems)[0] decs, single = _ensure_array(instances) o = np.asarray(data_obj.o, dtype=float) - M = np.asarray(data_obj.M, dtype=float) - z = 5.0 * (decs - o) / 100.0 - z = z @ M - z = z + 1.0 + scaled = 5.0 * (decs - o) / 100.0 + # The official reference implementation performs the rotation but then + # constructs the shifted vector from the pre-rotation buffer. + z = scaled + 1.0 N, D = z.shape # Rosenbrock pair then Griewank applied to each scalar @@ -899,7 +916,7 @@ def rosen_pair(a, b): g2_vals = np.hstack([parts, parts_last]) # Griewank on each scalar u: u/4000 - cos(u) + 1 - g1_vals = g2_vals / 4000.0 - np.cos(g2_vals) + 1.0 + g1_vals = g2_vals**2 / 4000.0 - np.cos(g2_vals) + 1.0 values = np.sum(g1_vals, axis=1) + 500.0 return _finalise(values, single) @@ -912,7 +929,9 @@ def cec2013_f20(problems: Iterable[Any], instances: Sequence[int], mode: str): problems, instances, "cec2013_f20", - lambda dim, shift: SimpleNamespace(o=shift, M1=_get_rotation(dim, 0), M2=_get_rotation(dim, 1)), + lambda dim, shift: SimpleNamespace( + o=shift, M1=_get_rotation(dim, 0), M2=_get_rotation(dim, 1) + ), ) if mode == "repair": @@ -924,9 +943,10 @@ def cec2013_f20(problems: Iterable[Any], instances: Sequence[int], mode: str): M1 = np.asarray(data_obj.M1, dtype=float) M2 = np.asarray(data_obj.M2, dtype=float) - z = (decs - o) @ M1 - z = _compute_t_asym(z, 0.5) - z = z @ M2 + shifted = decs - o + z = shifted @ M1.T + z = _compute_t_asym(z, 0.5, fallback=shifted) + z = z @ M2.T def g(x, y): r2 = x**2 + y**2 @@ -978,7 +998,9 @@ def _eval_base(i: int, x: np.ndarray, o: np.ndarray, rot_idx: int) -> np.ndarray return val - _OFFSETS[2] if i == 3: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f3(data, x, "evaluate") return val - _OFFSETS[3] @@ -987,28 +1009,37 @@ def _eval_base(i: int, x: np.ndarray, o: np.ndarray, rot_idx: int) -> np.ndarray val, _, _ = cec2013_f4(data, x, "evaluate") return val - _OFFSETS[4] if i == 5: - data = SimpleNamespace(o=o) - val, _, _ = cec2013_f5(data, x, "evaluate") - return val - _OFFSETS[5] + z = _safe_matmul(x - o, _get_rotation(x.shape[1], rot_idx).T) + if z.shape[1] == 1: + powers = np.array([2.0]) + else: + powers = 2.0 + (4 * np.arange(z.shape[1])) // (z.shape[1] - 1) + return np.sqrt(np.sum(np.abs(z) ** powers, axis=1)) if i == 6: data = SimpleNamespace(o=o, M=_get_rotation(x.shape[1], rot_idx)) val, _, _ = cec2013_f6(data, x, "evaluate") return val - _OFFSETS[6] if i == 7: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f7(data, x, "evaluate") return val - _OFFSETS[7] if i == 8: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f8(data, x, "evaluate") return val - _OFFSETS[8] if i == 9: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f9(data, x, "evaluate") return val - _OFFSETS[9] @@ -1022,7 +1053,9 @@ def _eval_base(i: int, x: np.ndarray, o: np.ndarray, rot_idx: int) -> np.ndarray return val - _OFFSETS[11] if i == 12: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f12(data, x, "evaluate") return val - _OFFSETS[12] @@ -1032,13 +1065,17 @@ def _eval_base(i: int, x: np.ndarray, o: np.ndarray, rot_idx: int) -> np.ndarray return val - _OFFSETS[14] if i == 15: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f15(data, x, "evaluate") return val - _OFFSETS[15] if i == 16: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f16(data, x, "evaluate") return val - _OFFSETS[16] @@ -1048,14 +1085,24 @@ def _eval_base(i: int, x: np.ndarray, o: np.ndarray, rot_idx: int) -> np.ndarray return val - _OFFSETS[19] if i == 20: data = SimpleNamespace( - o=o, M1=_get_rotation(x.shape[1], rot_idx), M2=_get_rotation(x.shape[1], rot_idx + 1) + o=o, + M1=_get_rotation(x.shape[1], rot_idx), + M2=_get_rotation(x.shape[1], rot_idx + 1), ) val, _, _ = cec2013_f20(data, x, "evaluate") return val - _OFFSETS[20] raise ValueError(f"Unsupported base function id: {i}") -def _composition_value(x: np.ndarray, centers: np.ndarray, base_ids: Sequence[int], lambdas: Sequence[float], sigmas: Sequence[float], biases: Sequence[float], rot_start: int = 0) -> np.ndarray: +def _composition_value( + x: np.ndarray, + centers: np.ndarray, + base_ids: Sequence[int], + lambdas: Sequence[float], + sigmas: Sequence[float], + biases: Sequence[float], + rot_start: int = 0, +) -> np.ndarray: N, D = x.shape n = len(base_ids) w = np.zeros((N, n), dtype=float) @@ -1065,7 +1112,7 @@ def _composition_value(x: np.ndarray, centers: np.ndarray, base_ids: Sequence[in diff = x - oi dist2 = np.sum(diff**2, axis=1) # raw g' value - gvals[:, i] = _eval_base(fid, x, oi, rot_start + 2 * i) + gvals[:, i] = _eval_base(fid, x, oi, rot_start + i) # weights denom = np.sqrt(dist2 + 1e-30) w[:, i] = (1.0 / denom) * np.exp(-dist2 / (2.0 * D * (sigmas[i] ** 2) + 1e-30)) @@ -1073,11 +1120,15 @@ def _composition_value(x: np.ndarray, centers: np.ndarray, base_ids: Sequence[in omega = w / w_sum lambdas = np.asarray(lambdas, dtype=float) biases = np.asarray(biases, dtype=float) - values = np.sum(omega * (lambdas[np.newaxis, :] * gvals + biases[np.newaxis, :]), axis=1) + values = np.sum( + omega * (lambdas[np.newaxis, :] * gvals + biases[np.newaxis, :]), axis=1 + ) return values -def _construct_composition(problems: Iterable[Any], instances: Sequence[int], name: str): +def _construct_composition( + problems: Iterable[Any], instances: Sequence[int], name: str +): problem_list = list(problems) data_entries: List[SimpleNamespace] = [] for prob, inst in zip(problem_list, instances): @@ -1085,150 +1136,169 @@ def _construct_composition(problems: Iterable[Any], instances: Sequence[int], na shift = _prepare_shift(dim) # for bounds only _initialise_problem(prob, shift, name) data_entries.append(SimpleNamespace(dim=dim)) + def _eval_closure(_): def inner(_d, dec): - return globals()[name](SimpleNamespace(dim=dim), dec, 'evaluate') + return globals()[name](SimpleNamespace(dim=dim), dec, "evaluate") + return inner + prob.evaluate = _eval_closure(dim) return problem_list, data_entries, None def cec2013_f21(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f21') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f21") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - shift_data = _load_shift_data() - centers = shift_data[:5, :] + centers = _composition_centers(decs.shape[1])[:5] base_ids = [6, 5, 3, 4, 1] sigmas = [10, 20, 30, 40, 50] lambdas = [1, 1e-6, 1e-26, 1e-6, 0.1] biases = [0, 100, 200, 300, 400] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 700.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 700.0 + ) return _finalise(values, single) def cec2013_f22(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f22') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f22") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:3, :] + centers = _composition_centers(decs.shape[1])[:3] base_ids = [14, 14, 14] sigmas = [20, 20, 20] lambdas = [1, 1, 1] biases = [0, 100, 200] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 800.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 800.0 + ) return _finalise(values, single) def cec2013_f23(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f23') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f23") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:3, :] + centers = _composition_centers(decs.shape[1])[:3] base_ids = [15, 15, 15] sigmas = [20, 20, 20] lambdas = [1, 1, 1] biases = [0, 100, 200] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 900.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 900.0 + ) return _finalise(values, single) def cec2013_f24(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f24') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f24") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:3, :] + centers = _composition_centers(decs.shape[1])[:3] base_ids = [15, 12, 9] sigmas = [20, 20, 20] lambdas = [0.25, 1.0, 2.5] biases = [0, 100, 200] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1000.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1000.0 + ) return _finalise(values, single) def cec2013_f25(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f25') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f25") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:3, :] + centers = _composition_centers(decs.shape[1])[:3] base_ids = [15, 12, 9] sigmas = [10, 30, 50] lambdas = [0.25, 1.0, 2.5] biases = [0, 100, 200] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1100.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1100.0 + ) return _finalise(values, single) def cec2013_f26(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f26') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f26") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:5, :] + centers = _composition_centers(decs.shape[1])[:5] base_ids = [15, 12, 2, 9, 10] sigmas = [10, 10, 10, 10, 10] lambdas = [0.25, 1.0, 1e-7, 2.5, 10.0] biases = [0, 100, 200, 300, 400] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1200.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1200.0 + ) return _finalise(values, single) def cec2013_f27(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f27') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f27") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:5, :] + centers = _composition_centers(decs.shape[1])[:5] base_ids = [10, 12, 15, 9, 1] sigmas = [10, 10, 10, 20, 20] lambdas = [100, 10, 2.5, 25, 0.1] biases = [0, 100, 200, 300, 400] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1300.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1300.0 + ) return _finalise(values, single) def cec2013_f28(problems: Iterable[Any], instances: Sequence[int], mode: str): mode = _mode_guard(mode) - if mode == 'construct': - return _construct_composition(problems, instances, 'cec2013_f28') - if mode == 'repair': + if mode == "construct": + return _construct_composition(problems, instances, "cec2013_f28") + if mode == "repair": return _repair(instances) decs, single = _ensure_array(instances) - centers = _load_shift_data()[:5, :] + centers = _composition_centers(decs.shape[1])[:5] base_ids = [19, 7, 15, 20, 1] sigmas = [10, 20, 30, 40, 50] lambdas = [2.5, 2.5e-3, 2.5, 5e-4, 0.1] biases = [0, 100, 200, 300, 400] - values = _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1400.0 + values = ( + _composition_value(decs, centers, base_ids, lambdas, sigmas, biases) + 1400.0 + ) return _finalise(values, single) + __all__ = [ "cec2013_f1", "cec2013_f2", diff --git a/src/autooptlib/problems/data/README.md b/src/autooptlib/problems/data/README.md new file mode 100644 index 0000000..94396d2 --- /dev/null +++ b/src/autooptlib/problems/data/README.md @@ -0,0 +1,19 @@ +# CEC 2013 benchmark data + +`cec2013.npz` contains the shift vectors and rotation matrices used by the +AutoOptLib Python translation of the CEC 2013 real-parameter optimization +benchmark. The archive is a lossless compressed conversion of the text data +distributed with the historical AutoOptLib MATLAB release. + +The conversion contains `shift_data` plus ten rotation matrices for each +supported dimension (2, 5, 10, and multiples of 10 through 100). The Python +implementation is regression-tested at fixed points against the organizers' +official C implementation, rather than only checking the known optima. + +The arrays are loaded through `importlib.resources`, so the benchmark behaves +the same in source checkouts and installed wheels. + +Before redistributing this dataset independently of AutoOptLib, verify the +original CEC benchmark's data-distribution terms. Apache-2.0 covers AutoOptLib's +source code but does not replace any third-party terms that may apply to the +benchmark data. diff --git a/src/autooptlib/problems/data/__init__.py b/src/autooptlib/problems/data/__init__.py new file mode 100644 index 0000000..8aa4e42 --- /dev/null +++ b/src/autooptlib/problems/data/__init__.py @@ -0,0 +1 @@ +"""Packaged numerical data used by AutoOptLib benchmark problems.""" diff --git a/src/autooptlib/problems/data/cec2013.npz b/src/autooptlib/problems/data/cec2013.npz new file mode 100644 index 0000000000000000000000000000000000000000..c8cf5a2fee819bf59c6132ec9ec8b875d99f945d GIT binary patch literal 1289585 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%0AGWok;qx~~3QY)TPte$S><|st>Fnr-yoqR|X&B|- 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≺Pe4NN?XA|1b#K!rf>>8QCt^d0aOSQn{+(xSYA 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 z%0D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 z

    9d&po-|ty(y~D>nQpp#_BbpPsf7Y{d$n!3QI52+KvnG94~`@K|X*$0EHJ4ka(M zte8>Y~*_<}*cRIdy<4-(ZUIx1# z+6>Y{%D>9x7jLC z70Fyxu?_f1$mUbr0RlQ7_YwRPU4gn^Aemt^4DQ_t;rEw#jGX30XK(4ZfOOs4O+K+= zkdwW@6mCa>9kJbmVv~75EyHi~;eJ1Qo>vw8`nw*C#IEc8{#gPfQPmJlFJQ(3U7 z*F#9`*SoXwIap_LT~}Pc3}#r)XoT!3#gh8coTs-NP+5;=PjbE9W~?StjmJshwDA9I{A>N)#Gs7rVvA_RXL6iXF%S< zijV--}Z8QJG~?IM=HROE`RY$C<)qc1`U$y>yiD;?sucT@%XX@RPF;A8e5&uS?(={ zMuN((kLEeBpvCY|y{Q!5l8TfnFV>)SP;kDwdNuO1>Qz!=+i>Y`E#&)!VMEE7pY+EX zbYlri?Kwe#wfm#O6FZt9)#{)FUo;7d4ji2Aqa$N!LkI^?V>obJ9-+6+s={xaU;g@N z6`(wO1l(p~(0%;?WPo6ULpjA|@QI?ox~ z^ta%@lVh7?$0F#6op@JBn++P*;LzA`4G5-&aqarhf@yTWTDquGamQ8dV{7RZ`2Kf% zgrKoFyrEQx5Eb$;!n#?-X2KqyjwSv1La2u?9))Xl8R>XZWmEJ=cM3-8Y8Te~=c4AA z<6Vx4QrJQD{sir%YWP_a)t|N}59>Pp4y00%5tr=_NsD_xisBWEec`FVp&&^2wW|Vr zNjGk~SvA3P-B5p9hgRTS5fceaD2Gux6VJa#-J!fMyTv;t6r&!x%ayj3V$-N*$Hk*% z_|NPVYsnA+E;1$5cH59KvR+T@o&XUmK+)tel)_W54~0LkR)EgaL#yu^DR9SUxw|E+ z02wqk$CWBx;=i~e5qIrMByQ-c3D~;9mpjd&^+qohg%(|k{!QlLK3Pe(U%7rssAgNwzv zeyB>AV?Ae>gS#GTbV-_)pyTHs+Qnr~Q0gC)dblhW3lH&~scOsx8WHCm{-hSLc=G*k zF?|_)JrTJt{%tkZYC1l({jUdIVzq93{D`QuOXSm)HwCET$`Gq?vJm){zbC|S)qyKX z!|qCKA)HfcPt)5Sf&Zn*I2xDbfqnDsk~>kc7`dwW!EL*~I=AK2ZjUFyjYRU3V3RJa zX*qS2hSH3oH>v%{RVq;8%i{jjhJ4u5r>Od;xdCK3c3O{`XW=Vachz;PK$MAJ)8kMe zLC@6Y7h{8P%zJs{?k#nn7w^2vi|qjTq#R>*M7>FEKcXO(cLV4}`jv;*vN zk9DpE#zI%zX2svmN_fFP_{=n?1|)8NuCk1%f?(HOB~NrJ;o@SeYTnIIa7Y`vo;_0t z5|KG9#tVKpX+L>;uVypahpVa0@nxZJ5Iz3@PYVt*INlgatiV;>f;USN<(QtL>i_9Z zIwqHOX%XJl!)FqoheO_Lc$%au@-vHsHr1;N2^+D{!rO7-V|X3rTv?=PnlZzwNPn;K zd*z@TG!k2p_5wv82D_3@Bmq;(f!ADra-n?3FBU)1N)W9Xcyqk04pLuze&667fx&T7 zRVAWTD0T0oorFLuI&{{A773=ptE86w%9hy}H_h{mr-p=scdeS6zm}t-2Gv6N(K2{V z-F2srCJVV=@0aa14+4uHLarHX_4t%U?&ddv5|GT0R#{0%!@~A@vk}1#oGRR8y*QV% z?JLLXj=hY;xB)N2z_V5OP~`C;#iv#9&l+`_b`y}aLviBBfCt>ac)iyw-Vfit7Ab4; zjK=F)t(O!C84$l~u1?n^3v_&V+b6R+a5M0q`?^CS+EMdxL>tutRr#*0*Ib?0I(l?x z^BE$ZlDRM08`uIhyX2EdvAMvxUZ8hv`wqJM)T>nY)nm+0+P?&=0@S~l@!|~=3GRRL z7RYT4gCtY4hOgq~IGJNK7CTr65l3%6bD$@IA-jpi^`dl?WI9NDSFQm_XV>mgr~5)y z=*|WGYsu)8^wca)xeVShFT}O&E5at#OIzc=YVnD^Kl`UN#Is7rxYyb8;J4F1jV0Lt zc>7pX{)OkXN-ra-8&YDJ`l*Yi$!A&8U7#3$y=I={$)c&~HiS= z@#(vrp6Z3DrC(?-xRQ#^j+b}6c|yW#ao?E7JV~g0+t+!vw;cBjPBUEhAi$3!*~>;Z z3Ap)4!Or3^1*V=cdzoiYfDIjYizcOG;l+&Gl5sCl=3%$xl|K}$I*_i$wA2Wqr)-q3 zuQh>)`a+)hm|o%Fw;y@azNbEX+7D^69L213VGlNW_0R zAS7@-cF7|J^j<|NTrnudM^oqbP8A0NCqXG)-YWu*!pG?dxeUA`pnQvxPDb@*`yWKM z0$dDrx*=li2ASWqcT}D#gU9}_IW8O6VY#cCd%jHvhy=gQX40twm;Dx{b+##ZX?}k9 zmu;TBSFK2VPg4RKT}c-UBh%1O&^#&6rV-2@sbt(f+5%3Mbvyr7CZa{a3%h53;&6q< zH{-_ra-4o%Lrzf7g9MVw5$f1fWW8$@8GIoOW!{xLUvn)%a`7t#`fMu{|Dw$elIbwE z^)PO(rxI`6uh!@P*N17ZHFNndWq`8dYbRcx28bgaB1I)yqv@^4Gr1255GTj-`e0NN zI9j-r4Zn6q$=b*kq45NmPw!F2re+8-+;75En2(>7tao4f+6KzTV`6O~6wE$iIc>7N z2bYwEkMB8OgT{2DH)GYwsC_BEM_xY(#pVuvQWr?YD?=TNd{63tZM{UJHlGOLO&_iu zSTTY(^&ej|bu^*h#q1wq$)&h;cXx=&Y@zb_x9Szi>G9;`$i!i}as*+k6#=4tFZ*aUQq zF{^T}?yz;ai}n3k5_$`=TmSgA-A|4A-vmD6OU&Le@oohOo1%DD7oQHS4gy&cqslQ z2w7b!FCBc41>bH6Y0JBL!P4-zFV&`b_;4iCLB=f_Szx#>w;1uyn5=+-Vii8e>&nch zN^v3C{$Y7q6&f~6i*B4H!-h!Ym(q77sIwZM@usu|dZ-6wbY;nq!YwGcKb!y>N0$(`;BygvCmu%591Mp<{+=kONdwUZ=y!N^!(CT=MkvR4Bwf7bZYMjbS9 zm#-VYufPMzw{BP`w;`RBXoy^YIy$#Jy`3J`fu>OtI*DG95KzHG_2Wwes+IlKiDD}N zeE$3g=f4)*<58_IBAktEKgY#?9c#zVp2;3o>mpb+3EojAS%$vP#!Tu2(}9D#{kh@y zJaEr(aTwAif>)_h#=brZ2xZgl4>c#?nUH`?XOl22YFy7|DQ(5}tSIif+a-9*C1Dp= zrz^Uvl~H|TYDLkOzJqLv6x`J20PV79p#SE4CFENPc>ZB};>M!_>9sk8uM!C;y)izl zM_&tarjGj_--w32F6#cb7kshCipR@Q8^Jrj`p)113fd$;*ASJfgKpiXo1F9|u=IXZ zm?pj(t{E;d#S~@1=9j~yS5OWY%POA)JICV4i0|K(y;UfZTlP&|j)ML!!%~+0WLOm{ zzNR!#3_(jhSKe&Wo7V zmwUmFHVa^f!|(7njCHYnqH-#UB9?*u_FoY?eQGBDOicCs|$s34fc>_)HFx-tirvPicdpk z6Y;tx-5aja3OI5!Y_Mja1g8|`){=CKQ6c83df3BCZ2z0%C0)`G#OoJ z(~k^`>5Omb1Ye+Y#m(1KQDvAntHWR$kPV%&UtiYQ6`|?vHtD{tY)Iu-j3@{tqigKC z^{$%@;H%PK@=`S%$qk~{N5o1o)LyGkc(IkwcDG|gNp#4`(d-i7jrdgpH1#?9u#@@S1jLP89X zTAQp4FbxvgqdYvGBt!9krBSEYa)I>6tM5@%I`o~1IoUm0478%Tf9#^N(OF)?TbNP> zyKVQlIiD)QzhmhMYQ`BLwR=z9k-{vvvanpxbkY_G_L{W3eAO^0-Y)lq=m@)iI$g59 z+X_BWC#%JRvSE;^X4qV%4rbNHskJxTP$)r#vA8W6H4hY$<_lV3c;am2dAe=xy;{%3 z>f`}>XI%-NZ^?Mnj?gQ~n1gSmf9epc^YB_YuPL2KHU7OTIh7Fm2=y7H^l7Ip(T$Ve z$-E~XGGj!C_o+1Ehh$AnGG{9GPVRs2(vtzV4D0o5ZF50xhw+uGS&cZ2nGEUbO`wzN zSq$$h;qS@dq*DWxz-J%bTU4733ay{z9Jc!ub+BU>y|z43{o&rNkxapq{K(|i)1{!U zJ1%rJxE=At;zz=497GMb-O~3XV}HN+sh`J*cu#cCeASau{1g3T+^!K}(vZzWkW5CQ z_%!$5=ZYZB@3hz9k~T2-Om|2x@dbA9{i~}sYr$}{^LNIblEGPc>Hudb0Zzyl*=OEw zLffGDXVsI{sFo9WA#br06wW8SsW*CzmsQ5D>93a{=T=30y-gERpM3uLpkM^wBJ5Fx~4$@qqhRrF7PE%QYJ@x0Xvc_;$XE7s~yM>T>(W}*-C)l3+8nW!``(1>_A zA=mx_3123i#y)g+q(*W$5?(m*GmM0^)(I2WKGyf?QdJrnhv8jrndzqYv6m<=QAyHdBDq&wi5p+ z3wf`*w#K)VBi)aI%JT)GaOytsO`}2u{tyxfOOnh$D-o4%>}+MYpQI?CwiFB6H}^)E z>G`7ki2{%5&Kh{%csn+!B_A^DgPD&?Re+Q?)lVOT5)@uOInZoV1j|zGbgSOAV5{NF zZWv4e)-ZF1euGL3$jX?W2+_jbbITLGMG6~mZ>E$9vBal=r6J=XSKtd+l zK)GQFT-jANFnzKEa}(nV`YOZGMO!icYa$r~{Oyu^XN&M;ej2sn(OA%UF`i01pNfx{ z9lyu?E=P^k-8L1MUc#TQNB>iF-r-dKZyZOVL`r0&l9E*^5fOK?lZ=v#L?RU;BBRW* z_uhN2bBuHB``CL$zLedhA|a#V=lAdP{PX$T}XBkBno}Z>~gx^Rt$;y^?VQj^p zzZoRDxBJTe>O|n=vLA{wk9$!5Hf;0Uda7xfGnx+nNE?o-#E~!tp?ao77*x4%i{?}- zc<*uiTPoI#vCOO9DMiib8TnLC_&@>9N3Uxw%eDcNW8SFBI|9;-3cJ4fR*MFsmD1fp zjnGoMuyQ!93%WQvZqS_a0V-Lp1*Y>2DEUI0>xxD*M41k7g&rWmUzItZXZAMO#VSZ% zPpSkZB^iyO^CeIz-{{P)5(fKwZ-*@9rs8t6!mO80Bi<6Nt^cW*hVi$aMxA?^j7lv- zmJAk282PH--p2}|BmIVv8BZGI9tc-!=#K=#)vsDv&JEBi>wDN-unAE1%P#e+8ECA@ zbRnp{9$reIK%Oz8>5N~3q(Lswon+gI?&+X^uKiNhi%K{*V0A=#Zxrqn8Y?M|?MGd? z2NxM{`C!AxWp+Br5Pan%z+hKj2@N~xKXDu=1^PxFgI(6e(5&-nk_8)(+wo1d%HA3f z<+5XbsZ)zj{nK9<{_q4&@-GIxH6nCAus(T!g^1bcL_U>90&f7;t_{AFnz= zLB9N7Cl%$YA){qzQ&jjB(lX7u9SzP$rp4>NLK*~=xZFPS+A11{myA6W70OU3W94+h zKN37OWZK!_SP3eAL2@)DF7P~DyJB@*3ANog-i@s?qw$^ObVc&i|q-|{8_H*O?I z)1Puj>*<>PJS*97q33*liA_C-mD$XVYf}zb+Veytxd2vuO~nn%CkbP5#I}^Jie(^obiv0`Zc78Y@}O5wD$@Rd4Am zz!5%usnbh{?(QS)Yhgb4L*EUPRI6c^)7M$!p;#!k?7zivI}WBP!i)w_DRBFYQgpm# zJ?zx_aKBYJ3U{oHbTJl=We{YFrMjfw~!vmcwp zCQ86vh@d)Y{22Y$>SkYw6=Qbhc`qNmP*{G(u>0bH*Puo`%r@bhh*ZQa#b~rd$Kw8s z8I4pZAlqvFY^A{81FC~dH3Pu(kVRRKEelEd#?%4z6yUk?QImFik9ccLBnbMxn7hfF zewRB3{lX6xsQkr?7ox_1OKgaF80U0H)3pQUiB0Dj9Yn*$4sk=y*{f9kC%omM-BBxM~EPtAdU7skg18d|Y)*SX8#HMOWaXZvzP ztqi#%CT9jSOORntDz5}zBzSforaX}?gH!TXmF0v&P;iplnpw6ReODusndu#IEre2Y zZFe*393HZwj~c+YxkZnIA7>)N)s_JMv>>?0aY*-Melze-KQs5VX@#yw#r!X(Tkxkh zePZ8qIr2pM-D!DS4T|06^J@L+&|%~dy`0+(Z9lIORWDJ%^+5}bheab&dFZ+ZFJ1)i z%ABfcelo_bH?A1hW;uLX1gvHvAsmHKpd+gcg;%;@@v`c|t7*5&jZU-fn#1+EFt2|6VuP zeZK~MxI9vl9jhTMR&Qd`x(Qc|ESZxYQ(*D;vsTBId~Db7zMKWVC^_4e8&y&X1KkNL zI8^~%7v&y&I#!FyO~zBl>WkpWm5rj4n!&JD^fIf^J_4wYm7Y*8YsKQ(A9-;-*>Hni zNKDR;jEwo|lV9h_m}Fanr997I^o{x|Ik_8M&x?G#nAwgUd_k|??+JijpZLoj>iJl{ z^KydMW)>WI|55*lPbPLbNfO!hBhfXEsgj3q4+o@;o#hQnkge4$PgsG7o@JGL+IEnD z|GC9MPt#UBMQgR=$&UcEu71U_BGLp$7soBNxBFoy{`0%!-B*xol&5HUARbRSt*YJ1 ztp~a%3v2QbDZncy73e?R1b<(2q*6I&;#z2cQ3qooyyzs}crBa`b&W049D4)ceU-i0 zo@dc0#?8IuPF)Kc3+^)dmpjn;JP+&cfkd=7z4+$t<1T!@pm_Ts5a4ZS`T&QUKmL;1 z`+|DswqMp+y?-?K6zpp)Hx~aZMQfIJ5w;JnK=z;Zn9jD}KCMgGZOo7d9(w1VGc%`x z)5L0`#oa(;SAB0hn4F74{ejHS&NM>!Vo=;Zg;u;*`AcWTD;Wx`>bGjb!q7Qv{~da6 zb9h+kWW5+r3GQw0rkrlq!DVAlPjkaE3~pm?@#-R?YXGxZ163^~XW)P1g$a0}?B;sR zcHS-*`t&c+pnOGgOejvNoQmf?wguYMu}Q%kNc! zY1_!~{G3OR??66eb@~c>i&jFlAD@mtQzoeY67~5?PKE$-uSAWf%(?2Nf%;u;ChEUiEM9$1d=78K-Kh`vC* z>aL+~)(i(jTMB=wrsCSsvn)LVefU%Oq=VpD0+N1}mPM7cWAyy3uCo{GE&UKXvI zWx?}5@Aw$quY#+LgQQ7SIt*}Cw=?OsBgORIgS&HTNHrO=FEm~SrY_H2oTY2Tx$%}C zLHm6`LAZ6al=2nMY{lVEkB)-d=aRvRH#GO*#a#TAkQyju839?0 z@hes4rKqy!&rUA649s84L)GOZyyoENJmOvp$EBvTSPClfh>^{Pc2F)Z97>LM-1>7F1(` zfT0xqb8on0#63bxa>dh~W@Xy{IY6!2VLhu~o!Ix~o%`#uGT>@?8T&(*47XcOtsFg> zinmV3aN3^E!mN$RLwl^q7_SiDUeV(Nc=S0Y^tFKTO_|%Bk|eyHr5JmKz6Sc{=mV+8 z{6JKAuR>IABYN4^GUzrofoDf!;faE0NYnm!gEOxWxt65~-CujqoVCH+V0Q_mQGffw zvXg*OmL1YbhntNJ>{VEt(WDTQz~$KEtE_i?L~jm&>@j$6`&Nn`#7ge4Kk?*MHL04 zLe6vggHB=yPVTDjv?+Bs^DFdRbw(6^U1$DH*vhJYdF8`>f<;>b4+%_MVX`}*83oo4(QW;X!S6*C zKLoSWV2lt$ayU|fKWP}70~m8*LiDDb$lG?vNvYRWH7WuB{k#)v-8sN7V)*jTTrGai zzM;+#M#lEXVcGw_X23z}IX$@?5AZtUe>WpE11((=+_JJOfv53>!-W+xCja@!R=iw; z;a!p%4G(frfAZt-T4&f90IjzVu zbYJm!X(e{wytb-yECU?s|MqV(S79gr>N)rEYPenZSnAb8Ayy{l$Xb>*;?kANs$vXH z@N>o4CFZUVuJOJ;KyV)bhTc`GOFgyVnib`HeIgYziy4JZ?%`Z<&uwS*0t$TMa(!>U(Qq4Nx?;865{v3z^KexAMcJjx7 z+;brhfw($knH1lz_AL!K)I6AV(w@Wb?(X)ofI8r-HH|u^Q-!b34ff5CR>058Q$1zj z)ksr0nZfagjF~ihgO5s5V7a^cfkjLi?pE3LVo)~{@{iDKsRq_hariLw@UyckKXI^3K7ztl}70IaE<~?t& zk<7`LC0Ks1n4Xv!2b|`qDFoMaxJ;)*iD4vQq{Ei3FR>C-O?OIeZRfke*jQ=aI~3gV zu^FA^%*H7l6DhxE4QNPD?<~0^9+`}eAJkoLMy=aw>T7#z!78EgyBS*(ekM^@{r7RZ z5A0rabh)`$&i-xfZFDhUPg^jZXg=P(JL8ymdVAiko;Rs)!fgwLj@WaF|+UbpA9 z4wNMqxIN(LMLjj3L7pr;7=0q)a$F01DN44E4k*XZ$xpwseQLn3#vgyGvFBnzvLn;C zplzKuTe5HQsD{j%uIZtmCRm#--f{6bqIht#tK0iBv^ed2mL{(YX9rE=KcsK_zhV2a zPfEd%p)B$@G>?cSitO$O&*8RCMf6}YmCTiZRN4Pv@d(``J6kkm4E zYe=a9<5$dg_Lt^@-n1y^a9s`X^lzmMhV((&q0nN#=vS9tiS)e>uGF{%KMxkE<_ZY3W#G;Gg+QRPN$XRc~+wz#GzA=8N8 zU6?W0#DH>TU*(&N)oA=M<}d4tGQO`oyTKUK1R@9Z{R@|Z zfL&-UUEwMLzV4_$_WNr*`ce7Iv)j8NUq{T$v&Z2WrKLYSH|vL6k4D!P>5C!vz+N*jAu$a+{XHfV5@G0*KeJIPO68G z7)6F6YqQs4V~#bXH8R#*VQR*)?w>n;Jh8zqv`;1&WvlRLLA$dMe-YfYYZRle3qbjk zpMR{9qwu~1=iFN(bL2dEWpHS^5Hu|5O?iCMQTMLX^-%{3+!vfVs_?iPe!uLEls}S- ziK0K=tIs@vZ9%}7G5z?wkB}6aUx$UXug;v3Z-oEesqygGkw9rJoc3976o{6{MVi0J zMeTLb+{33g+wU)C~rcgk`P;J zNdmID*JpX}DTDa|%Mt&CQiy$&zk9^06r(c(4t=GHhvvdhVyt#msBfaNQBoI;y!sDC zf|n7KN^LC+g%Mx8+keH^su8b#OgtgqXL0Rz;?FKBuht+!@K2MIpw}3%cC79|8WCMRv36 zR^s$%Cg!xb;LWOb)QR!Mb5@BA;oceWefjB$jhrS7;EXic8YN+ikJJ7+K@#4d*JRG8 zkWoM~q~uvr4_-}`{G`9Ot&=zt_$8nN9hamnlxND&g!4KNM~^2Sab%Cy>nMQi4EjUU z%tesRAKPFXQiJN>{*&vth5et6 zOhCaouZ(A-0dLK-d~Z9v?W@HvK`=Q=6$u@1(B9hiUGxFYHM z#RRufKh!l@T0O9>TP{CuU2qI)1n28DyJb#RgLvz!8fmd6n4Z3Q>Cg5)jy;j|Q=lP% z_708l8xh%%!+c~zQ9KV7jc=dVJxjs4rQs3x1qwLJ?Mfb`D+m7_+OnQc(lC?t^%X@y zWgsg3Sg)}p;WdV9&fT?M$ZYE>5wV>Ilin*_k;p8>0-3~`qcY7XTX2p)Gqo5WWl{Z@ zy3~y+T5Dpwyfw(qXn7*8oCs_vnihUJ8_&Ea(rjjAB!H zq>I|+qId`Xdw7_Dd*odU_!jelCyy*4_q+u&`umSa?xLU~x?H5L%z#a!gm%euY49TM zl6in?HX2%uTTq8}<7l919glr6M$A?y8h@<^O%J`d{GW=@O{L@gbw&cT+FnN`h#3l z6jX_0DAWD6?em9KW*>y+z*SS5e`CLjKvN*)ao-6Nsx+S~GB{O%He&5&g>wEV`dpC5 z;!7=_{^cvfawZkEwk%#-#?`{7gN3Yl=vhpW#M z|JL4WK%)h+tDSN;+U@=nI4{(T3pFCA_gQ)12?61kraubdx39~AduB~|I^@nbx|&kB zZh81h(oh)`7@ovRDpMsMn{CcrQl}R8OP%;2(hpLy;A5g1!3fRi-4=o_$SxFaHANQwMUi%5vb#Mp)2!y+)XM$9SO5vkoh6 zIy^l-T!0UMI2p{zpGvrwv0md3~UnUmS!?RMM&6t1|oVrU)njiN7 z2|n#g29Zkqe#u|@;#>rTs^z{lxlIAPq_$5x#$$ly^<&wUHX`)hb$9>NOM-;N>(0OZ zGQqDbhQk?N$*{vG*n@qvtkKe-yyOzc$l93#PKFpqJy zZVw~|ZM7FKBqGgL=%-`+MBJHK$m_dS3r|M>bj1Em1P;F~s{+#sRJx*G*GwkETIMwcrQhybWq#Pq)?Va=P<_x+}b%iPN^&xNMm7e(e_`MIl zW%?A{(dY)fQ8_#FZzo`~abZxbc?rC>ouf5yPlaa>=?poxeBe1{r*TnPB+_%}hA2m5 z!XWFc(GMXq#C~hn`gXeeT&j%j0}gm%s|S| zZSD?Kgom$lOJS7c&(@?w0Mkh2x7Vmjp!1e;a-}>41x;y(*QF})w9$nuk*nLe&ezx0 ztKSdq=!@oDrpZOFl#6n3z6dHQhQlB9WRWM%yEL}H8o!-4Df_vajr+ya^KE|-(UW$V zxzjrkTj<(v+;%I6f%kkOZm(T%>e^YOvY7xVF%-Py|E?Q)_M}F095qBvoj<0Uu0+)N zAfoglA`lOwl-#|^YW&@+>wd{92lq&I51l#EidVF6tVeE?pn}uKA~7}s?6HpMZxM@t z_?cvmB1RinpJurH=3**j747jp#a#(o93p+!-WS1&MC>N{W)sS^lkH7%Gr)pYD6P4- z6U)Cx*7a(&;v#1Xac^KWI{)|}Yj!LL+%%tG-|7v)hZP;C2BWf&k;t>B>2eEvO}OlG z)~O72g`3yxP0Eq6@!u^8|0-BKR{xm!c{z0OZt?6&djrqu739?SHp8Q%jg!xhX5)ux zyDnNE3i94nxxn+L6vx$r+JY8xLD6=%vV$5Ky$XwZg3q*I$->-H=$AGy;+Qc#=bQoo zpM2U4f-A5oyF9wYy%$4-UytM_lF@lp;4~pM5NGY9f>_^&fkXIKgO4!@(|AJP&qsBE z#Kz*stndQ(VX(B#kM?-l=2TyEcR4KEI8n*1H-d3zQ`Dj4dT_a?*~3X)g@>t=4R^+- zLdvg5t)M(Ia4Ur8Wj#xSXE!D&AJzyUB|NHPSI`cPmedcXavE@qx>b>!nh9O98oOy; zb^?Ru`h|+KRS@HHUExu@Cvuw}#hrdvHAPs;9_dN#1*9(!-OcNm5jc*``klp&2}ioH)G5g+|C+%2M23I=A$ z2Sap{K_g{OxSF1Xran@gH{(+w{C%c3L7N09Iy-(=G90#4E+{LkbVG~U=kIH4&G3d+ zRIqie1=Q}|kI zxi%;N@jPmV*iyl5o@xZf(L(3+Z5=W^;rU^VDHrUepX#der9-9~OIwS58C)sZP5V`= z0Zslbt;{lJf(rZczIR^|F!<5wz;_&#uo6a)S=UU)svDX+^bPZ1qmW(%f+ck<#TxowW*bq%sOlm_Zw?7nXn6VZ_BN_(w$9u|-K zOJ$}cV}+Rex4?@O&|ny~yh?nHm$N$mOE+tPqt6@WWg;u#QqxL)F+&kv8ryev$t4Zk zPjH6L4ErNg{G7>=EJw+;nC}^TvY=<-O1#;&e?QV`Js%_zftJy6pIFPvL27T^Qe;UK z&W?vqi&Zrs2s23ALMB|Gso(LXsRmrb0@p?V6~dxJlIZvS&A_WpiuUZy#B=P~M|b@p z!P|LOdgARS4En7st11%>`csKZtpA$f)1UCV3tFw)d6V^s1hEx={N+_TE8Px|N+7P%h=Gq|5G#?`wjF@gq_XqS0IJLF{sigG>^>6$LVk7sS}iFIdVmj>B~`D+74 z2#d)E4uxZ-=aP2fDhX)W)@0ODtMQ=2f%00q7Kps_^IUX&5Q-(bz1q!J14{Q3to^IK zQ0bfQN$Fw=p7-pFOSLFOR(VKxz@CMg?hA2OewX4vyw#C-odO)|VDo9`EP_ea=MfOEX`~p(>2`vB1$B)GYV#5y>e+U)|+PFYlAFChK%%y|O=KcTk#6 zj;F#}c>VbMrwEGt0XNb*NYH-uLe{aYbQlq&&)ehB0uOx&f%e1IaPXUy&)03g66-v` z>LJ_%V^KM6aHR znqf;;@AnhIzfp0L_FgyAwH=Si@SxzdTNF8@tsJci5)a-EYQPr`Nt+Y}L*$56y)ni| z#5xsc3Q4IGY-D9)9ceugQ)0@LUi5&x%^xv8>JlV9eR)!~EfP)^i^#w>*BDJQD;SJd zLF3b+A>oo@D7-elsJdwfBY!#LXntFxD9xIv`@3-Xz4BK`h8~ffnBjG(#|h8vZ|7vr ztweXvno9zGy*T2RGq4ig1a6`vM&i{N7%&{MDQ;=Ok5}}?r4Oc}!5)_XGX6B-Au9Wg zR3!?GFjXtdQg@@w?4RNA=pZ~QDXFq+unU(@PUvpBy~Klk-c4D*Bhl@#SizsS1l$+x zgp>cA;McF^Df`(}B(A#hkeMPOlP4x0f+LNmj#+8I81qFyyJT<3f)j#nc6DHfJbYe23l&d z)K8T;ddv;7H(6{IFB8Fv(bYz?uK?1Ps^;geJA#v|JfEUt0@#0=7V-K_f*ylC&E)<% z;LEfbRoIgR;ZGBb6KHb4Nuy zB>2jEF5yO6BpAPum^Izy4dc~XF<(s6QCLHqbH^tHLJ&)H{f7!Hdu@O8_5BvqH|>x% z(f5aySK`!tiuHKqa(NaV6yi<(^YXOYIgih4+TL`!2m(!xOHtRI!+R`^KC?Yf;j7ZM zBH>@2uzH>K-y~lddhC5tUQEjbJUSRcy470W{PEdux6YaDJTptbe8$uH03qZex6iA}b|P$JRPg z?oZd9gDkz^kkjlX?N9@4yj~~8wi@2!*%e|=nlJhQa(p7TB^C3*zR{D{yx2DIh{LtDHznslL@s(79_lfcA)}PBkJb6&d>C?Bl)L_; z3nC}1Yn5N;fUQ-FHn(gF%y&mRZ60k#voN0*0}z7x_Rh;SH#5Od?B){7=VDknBumhn zZbN1Jk>T|xSva`T5teZ{8HVCNxQXYN!IWXBY=>Gi3ccOGY-1dQ$FhrMKMNB<_{Sh! zi)thKhc7bK@6!Vt=G={U`HfgS|BCL!!$yp2OnzipoQIX6CEEY4y~2K@k2jp3c%tjW zql-6)1rU4t-m(9*+Cg7jb64{X64tn#jpS6S#ZMY<%!2yE9jGhi>INFiHMQ}rK)n9%*|*w% z0~mCJ{*Orv5${a&MJ&oz;A>Ly$JB$VAXluzJ8-oCURdX>yY9(`Yt=d}HH;-79LN?Y zuAGUlE)JcVP)&nSy^&L3tOw7|-#uK)&X%sV4R&>5GS_k$3K7tRGnCbic=0Cj)xr(5~>!7eDpqAw3OQx`~I9#jK) z^jpn`4@qF3*Y6a^Q;!E86=yHqu7!^ur2{s%`AVJp;p+5>U?{mb))A#|gC#q@kNWB+ zVB9+arSJz8P+Yh7bHlc7TF(5Zzk@mxH`Z1pt=P$6C=<35Xv*=d-EHpr5)$ls+Sl`> zC z>eDLJElLa2?61S~imS0=g}K1DMU}d`SqhgoikJ39>LVfW#Q>|Y6`a*Q(Pbk}LGDrN zwM3RTShi{LYJH7}LEI(}Pw^H3(~``ISFB{f$7kgP3ezEY@_A5>YaQHnP@`pGrr-}N zO5(T@1$#^O57#Y{kkM4boQf+C1(X>EJc1kGH_xFjNw!7kNn;c6P&5tmceb8UcQ41l zr|f+L)?IMc-_Uzr)C@$WO@CchAfVUzEsF28a@5na+g&p1gyq5HM;-1&tPWW`LT{0U zOOO6+TraAI(Kq5|Kb7*Ke@)fjQAQJvax0I9l&7KF?zCx>u{?<(xA2miYwqxDCz<}jjwTfQCZJgz--5l-rxJdhCgb7pkIG(d zX~@(<@!t4SgaI_PuCswe;O?g0Q}MS3V=~nnviyp{*@(}luBI8;GQ6nj1|zVz;+mi1 z1wQ<7&wRzJo(K(r+-pacnm~)DV@2s4VhLdvGyOs`ewB`xdCnCB8RuJ$M~RZ~`{jMj z8tN33RTtH1|K1LBy&RqM9TiCayxFO{+=FagzF`mLQgHU}N)wA!Iyka-biU;9!xvT3 zK{h_+@HleTrbsOnszN<@?hH5JN7}xduWQM0E$cg*=w{5e@6vZAZWN>Ggvt&}LIs=+ zHyU=dCcsu@t^flI0p{C6y(X^2LdfrPydG7Z5S3AQ>iwl$XiVUo%?_Y|i4*S>wN)Y9 zXm&C#zy@IbcgTaEqaS=WUUl}|iiSu0zVenv6g(9E9RoBIKq~Z6SLKreD0|z_#LYy4 zsBeBnPUlMTgvLDW*yB71jIWqzq-%p(#nXHB6f4m~=icNCmNH}`q_X->d%>T%CFf_1 z6rdRYckYf`5vX0#bBk!K1gi=+s$(qaQ1BmSm}!04sO@oil^cg5SvHv_?is9De#g`cTEtg2o`cshRn zp0i&yd~}G;ZMG?d;4f+is&5d1{G}&xw4xky51t+qcdLQGoRPP$(g`3K#_csDoC#)k zO!9WPb%8MVYs2e<4Vas@sKD}p2y0scS0zi^f#YgWS8aJL#CO>*oqtmdH(%uB)wZ_) zaWE+&FT5RP6MT+4IOKwqq9%LnyLM2G>|+>x*NmErYSS@$NO(Z~jy#u{GYaX|bgWY6 zV6&h`{=F+v5asksiBYN)&-~D;tewvS2EwwAwp9&OT=HBjY%>Gp{^61f`Jt#rmtCX# z*#jADRo_1BvB3{Ymi%pAbs)XVkYR2s30_=(%;)kh9)DfX`EDy!0W<^6rdNo~IGDUO zbs#Pa!h@sjdabH4+lEc)#p7~pEVE|*$ry;v&y1#fFS=t}thZEGcnR`(YUP?Hmm~YJ zf}nQ{mAHqlr7r{P;dXJFTH1Om{;lCIP}VI2Ct2pZH=dQ@{LHgW6|q$C;M|av{Zfyi zXCJ-rQ>ubz*XKD{mf9e6J>2TRR0FiZxp2lY3YL_z&MDlC#fNX|SH`cD;>2EF`S1I* zpk%*n_FVk-{b>%^=tra?C(m%y&wDj^zo2RA6r&fuDtLIRIgN;!K3AVx#Z)5G<)$Cr zi@DHScJceCgDpt4Onaeio6mSidgVtB1!9u&KRQ9vG?f26J392Y76m`QFKK+-3MTr6 z>5ALB&i`VTTC6J@SxiNELL5qQ`ZTi(n`3T~65Jg1wG z>(fnsnyOAD-Fbc6XCfYQN@xC^E~7y8$4>$JG0~{)z$T*f#|EARO#Kb$t-&;vq=_Jz zL|Cto$Skg^LV@z=+k0P7;L*R>AgfY6EVJExN{6K!lKBh#{!=P}Qy(`B6GY2Ub3DM~ zq);jZDJT9BBog5Sh5dTPVk_S3q>J#NYJejqTsu8M&L_NJ2PmQt_|N_a_su^l&k z-m>L)SAuAn&58W}QVfmEPad{R1Ea~h_LZXqJb!*DDMPCn)j!ikdRjMN`&oYR3sohc z*Ybz7zEOhFu61F@FE)bGILpD|PuW=B7k%keXDCQ=%8WMT5Kzg|Ma^Kf4)n7L1w?mH>}`Sh@W1PAzGbkq@Ul>7wi%315o;eg zKi;Xn;CHP_xzXm z(lQhqJ(1y4O+v~v)$`!73baW6VpMmJf~^eZHx|zOz_1N_>SKpwtUVTN{VMM&*MZ7^ z4^M<=6re#(3njg|8Q^@m?DVS^xMH!`N?S+7sW*1K_WBh_+xO(D%U&|Zh;wynvaVEe1*~1~XGpu+jJ}4sqRo2AFwVr$E}Wc+ z4lOr#vK5x%*NLHmcqs#T_j_T_#LZTuJ>b%=Ul|T$ojW|vU1iX)SaIr-crDb43fA%u z_rrtTUrtjQ8jx;MBx^XO%MGZrEcT zK9G%Gx3Z;IzfpigMQp4|PZ2o@!wZrF^=LNux@Mu12=c}rhqyCJFp={wePTTclYNfe zH8g4knGZU04@#=BjIpTeta1ZJ_Uw1Rs*(?^%s~@oij5GRQeF`1UJrXD#vH7D|zzs-*bj_B!I{h7;tSOcF>Z!(J!(q5y+_K91Ym zSq%n*Hv7vrS}^MVhsf@K4WQ-ECQ0v-h8~i(CY}9c*z2aC;O0ff8@00}a%co>HKjeL z^>2diL!#s7MiBoahX3KSH$dh&?)7E602F`XHEV87M)9t6_TisZP`2*p+{e>^iCU2> z5eLceZjIxi4~&VMIg)ITFYadu#MH&+)DrTSUJeckajjLBFw_u~7N z8+RPv#p1E*doNki13*xCV)mUw1h5~qtcW$Og>~t}%g{>sB&$p(grx2o}~cjpzEPmP$f^>)X@<4s^7pCNI*mjFEEZnedW zrRdl6`RCM+T3npgm;U;!5+mPOJ=4lh#N!)Z7^VcfKsl!44DZbXbQVp#uYI@?pCk!0 z@BEz&bMq^wp6(^$uY2P)cgyPF+`{@>qN^8jy_WdgzES}_VEex2b2u$P_C4EvpnQXy`S4cQCPfKuAkFGEaprFAMq@>26D& z&4S{g5dA|vdHC@#KW+FPd*D#o8FN3K0*OotQ;UgY5Pd_aJH(d>J5Ikd__mmiW&9md z75|l^=h&KM-OncUfAMztDVi^)G@kQS;)D3 zQ9?JM0dgyDu_lfdAg9*(tU1+au=G3RBGFQfbmh8SZbvHMC51YfM|k`B;kflc+A?I_ z)A%*>M>6 z^*HqTkc>?q3C$*KGB5ZNL3;ehmt$!qnBui`BP=rx-7FXErjnIl?=z z-1>1Ow)9*(+_GJVWJ2HQU3DTx?M%qN_ox>1%vVJ%w)5X>i!772_9mSB^4b3LpHSpg zni>)KZUdYvbhD5D4dTx)dF4C>VX*Xmm1A?d7T4ZhuL&ntV|Sy&gF{gS$TIJr40~OO z6=F`~UMAIGu2gpOTWlfR*RfnJ5okchgvD@1`7C@Ex_%*|k&JJh>z|tLi$dMxx^wOw z)hKp^_m%5XKG^BRRBwDL2d<-+az)Z(U{vZe%|Ko{ykz^zt+?ERj+U2!D!CGe^KTwC z;H`vR|I`AKQxnnncgE{$%tXBKGC%ENT{blEQlWG${L9YR3XonI z?oSH#N4ovj514YfVyOKm(of%F$f=dHIMbK|Cx8D77@8~v=GN2ol0Ajs^+JWD`@9PI z6#`EDql?DpLi?h$VjqH!wWC+z&+WZ!+PJ{JS%6Jik#~*c$w2thH?QV`==Y=gu)cRQ ziYa@&n)0YdeVW$Lppjbq!#}L2I$Ms`2DXtadzwMw=D11>R|OR6cZKZHA|TPIS9#z< z9Za1sD&3VrhKkd@q8fj*QOo{>f79_UxaL}z;S^X8nJXvO$E=d^xoxr#47Gmq0ar+Qa`ZuZc{&_V z+OKT5t$%j)i>96hv5@M#9Q7!y2d8{Ro|uf}pih{j2ivP`sJ4Gg))9!qkh=v(+<#W! zXWK;!CxuK@*VK9U?p78~F(%FgB^yAyLWYsX?DjcrhY$K$w&2x>zE>{t6((_9Y2^7A_wSd-h~^C_bZcP^Xcogl8r#%>Vv2LYfMl zynsXYCP7up~ z>&2CV1Tc#I{o%G;9XMM1X7=O~!8GpD4bk;5JhIU*7^L71sO5>Z7lzM4kqEt`HVhh&w^r? z$&kC?lMwe4v1_0Io1+J}`%Gx4qRu4XqkU&3mZ+Q|RA(#y?Pw;Q!8nYvs%S`15vGN1kkrC>X6hPtVE55|1=W%Ev~L7UaVz@N*RkSfRF z%aFb*sR^@m}sea7@$=b6^ey&w8#M#fgb08U3LPq?CsEDvc zH>75Bw*my7%f7|sdVEhV^esM;iB0KcDu4CbLG8DxR+fDea{s+nXd9V>97)CdRaJG- ztyC$gnkE&pc^&ik_qJlCz2{z!Gno)NM;o|ll?!yPY+vhMQE=@{zOj`<1KRc`3*jGs z&^Y7}dxpOQiQ1g=^pVAIedXSO<5W19oT2YtQ7%GR0pX)`he~nu&%wq1(q_;ryC!UD zSPY!!zX-h&YJq#rSK1C6CxWkLsfaT}9J2Y-&uLvO#CQ8Y8;y!JfW1Xk%7%IXcJ17=`U-w~-h3lJRfPt3XOM}r6y^0=!GFL5M0?yD zKKEB*rfkzvk`1!^ZAV+tDq38D^pdZwmx^XBMlI_n(#mv8f%wjQ$CS5F)Fq{|; zxnK{i*Zqb$Vl(in$P-%c$MH~a9hn#Qrx5+-2Rr7&EAYfhbCPjqG5Srot!?q9!yxwS z?w}gLpdG$*(dYB9V@=*NKsgtk{Rc~=ol+oKUWi`f`b*@Z(L19jOn@Xm>H;0pZ4OV= z8cUaI1$w8S*Tu!!q4HuT1Fg0-GVRc@(AsE*pFL!jK6-DsNX=Gtpw<)rN6~r4WBI;e zoI)}h8cHgJ$d)9HvrGeiVQIx7YpR zzCPFZ9>@39#c@C*G*HPGqJMdq$k{Z4LxVx;<#7^F-*LRTYF1nX}SN{#6Iu!d@xR zr`d)|{k>UtV|=0Q8OyV!f0Y<5!NA1kUkB{PyB7~>7Xy`3KKS*0GW^V_8@#`@8q%zu zI~#4@e>Ra~y}lE^FsN%k*uB{w&+Q0ay?5Ue8FJG1=MamrT%t}n-n<;g&pv&B^Ewr| zxarNp$*Guk{c8MR2@OZu{(M_VCc(&-;yvH0pP}fPFv}QPASwf=e5J@8j-1(OVTXrw`3%fUfm*8w{Lsv7-j!!JymCM0vbyc*Q6nALB-wN^j zVsUGJ=HGb!CiI-?F`Vc1#~ZQt?5y?sATYy8(A~HZtqia77>Sjm>iUH0n>$G$tNV&O ze|ISkSyjbMn#DlLKpKCsMgZ=}aCZLiI0=6+?P}RR?~0zMeQvjXuYrr#M9iXlD`3L@ zeYBWCG6-DRk+}0#B3dfEKh2k4hw3RpH>UfVKrus+uh6sruDs1XYS|GC6^D)9&(!(7A(gAi>8We>8&&vX&>1;@Ipex()(;REJMTo1(T-gLrsxI+l#~>`CqH!CMr+jC=Q^A;Y9iJte&e1MJ5? zx;R^7UJFKJcmIDz3VoH+=*-)3( z{!IQ(J=nn1x$WWcxNyR-U3aY;ii`m3iv&>{XmvLH|O{&6R5$_#Un*zkefDrqqm<3z9vU?KE+mpB`uO7 zzuOwO`b!4hQVbz zzC_ZcdZ_lfz`6g>9n61pC*P+h8_&&!KK3}9g*6%%<@bixpvFm}M{}DAFtb{~{eB*FJ&=z7*qaiI*Z4N6D~-M`7PLenD#$S}R|GLr4+uWTt8hRk z`R2dDO3)9xtVgq|0YWDeYr38k^r_#NqbPR(t7Ji_SvnO?of}v?t6T*SkiN@wCJOoP zo-kbc5{5B_XCHRmiGvq4&d(W5(jZ}gB2ZpTg-ZKs>rWm};oKL0fi&R^bdn<#CtM|? zK%D$CXEZ`^@`%G52LdiQYh7RuuZ8ny-Rq=>s42r4u;qI>jP@RsHgBlKqqSV!i-(hO zws6&JNvi|Y)_AY5XlH}<^VgAMa(VDAb>p6L8yU9guuWWdi@*s*EAd*ve$_sAd#RMt+T zz?Oi*gb=a5iMWSQ@t{*TJ{9vaMA3)Ph%4R}jcgV%)n=ZB=;|yXz2O|b z>9YZyqs2tv**2&2A5|3$hE3(z{_BG`r{=??;-j&}EpDe_U@7o_UsmY+TLV2@F|_%u zIZ#MEE)^n6h5T7B?@zkz$V`b3wPb6B8`RGS zBZUt5w05MSTZDjS5ADb+W9cy66+9nNoQ?H;CF}(oBwTEXlbe{z!kDHf`&<$nac^W; z#%J#w*x@$(rYa-}@7(C-ez1!I)_sR3ubXv1+zyB2EpC-~`mf4s_OuARvE7s}_>3ny zHs2jA%8!R)Ee%Uc8DCKIo6&^DHYC}w%RZTE#6We`eWuSIL4y9RKR2yOV12smV8Eej zDATXJp{iB|M(9s^lFg90A#-~V5t^!7PAN^Nwz7%`zeY4m7>j`byH3jcY zJt5meM8xuZ7@TTT=;HVFN0HhUaDSQ$MhBA4T7+bwmysz^Xg+zENt66O0kkt+MHrm2z4)R-@N*v9JZT%W|-s62SyS*?UD=;ltj(W1w=H%hTpp) zi{CM@=-98IQCX&pbmz`Th-8?JcpGKvS-kJ4oL2+#|e~#;OOv|G`R3vV2H7h0>6%rY3{Gf0JCScrp#Sb z1;#GwU6jEkxKoQoS4YXk3Z3TG&X+gm_5-=zDKR9x|2S5K>{PtNqAM)-$ ziMVl%1dQ)|LbT070p!itSC1uv^{>8C+kZYNP7)tnuCBq0jE9(;8vKysZxj2A$O2gZ zckj5aY#Ek+E;2|xLPM5Ll^TPsop`VD7FR4?5{x7^Gi_U`$2Lm2bi|iJG?$37*5{~& zVHNpzie_Z&F(f$4ijYx$TZplyW-xO1W**@-X~wL@c6uM5R-p6wU@o%|5By+oYyCM5 zSKEcD|N3j-?DLY8q|{0%(fPP#&N&10GF6YQEmXqWy)RyjyeS3dNWBCWr$!Xt>E!kQ zr`yD)dBjU6)6i1e zpL9Hm{IHphX>UYMLdTF;Tt42FO`RMUDZ-aorK z2oC++A^P+Z4Kz6uCgf8K;m3m!-u0u^aCGsk<~h4&F!Hxed`e#oBVE)#cGPsp&a2I& z$&qn)moAg>qdH7n`bXW5f9AQxPHoe<&; zL8bKnh3ufA0-F(E3l{<3ea%T&?;(NUEuxa(@C#IYAbTnCQX@p?-%BrfnGWl+e)JSW zd;BOqDZ8FjkK!`VGU{%cVg-Hh!s~6B@Kww7!=>RU{JxQvUR4u~y-f8j4WEf9;3KnF zQ9Tc$w)Y-U74*Zki|QK+Un*goc&=5!*dOD>I>`#U^>8Hiyn6e!793D!A4!nxM6u&9 z?7Oz-p;%6u%|kCT5V?}yyNh|jmkzi+__68~+~9y1w7oBfjpSJnW2(kPQX$-ZTTDV zPjD@xe_OkdDc%$OFH__w5gdgi_Z0piqaneU>Xg}tS8mJ)QYR_+m)W9pM{YCldhie5 zk|{tga-hkXPzv_`rr3u(CE^C__AvIxG%%@Tycif(0ihO}A=%GrVfh+sNKb14?)Ow; zSCcA%mZCFPTa}!CEM4UYJC~?0o2?@`2W;(OV zp~rV9!-o12=MB|rj>~nzqaLnI>Ys8rlA$6*m~t+K zXJjwFS|TCppZTz7G!~u^m^H_d3})r$!_Dr+fTw4&iJ8weWD_S1A0Ms6@$=K;f~twQ zOXtDa;QA7*k0Cbol~O>pH}gS@5Do5ktmgb{e2m(!H9XYUO<;YB>)UU2FJv)SmRYH) zg+E1IXPqyUqKH^#XJ0`b23rfKs|qzh^0r$Y=|u!o5|rP&LxYUFjt4r!Rx5D+8qoBT zgN7ExFO7&5Wgzz8lBmUd8cv=+b1$VN9(yZT40pR#!7avC&S4wGX4{YS7G-siwq3)8 zJlBZXf6sj$`|F8Wd~70DENX%0u$Rt#(NrkRCddb~zJjuMx3KX;846Sl9n?Br1w*ax zZhiVM3!mFQb3HGS3kH)LrNVRBm~u<4&17F4u1ZL7oia(l(;GM9%5uV>F!`!j=#kC- z$|%B>sHK1(dNl8)EHr>de)hQ{))KfV?IEF}cnhRnhr0{+e_YI)|@qNEy7bv|;-cfJ;8ez*=P zvZY{aOn%lde;%66@rBIn&cNUKeD z^H$Z^2O+SnehVj?hc~i561IK%W7E@&U-C{qZ-yh;ulOIkmcw(~#Y5VBMX2ih=-b$p zmvDuh(S`d$1FRbCpC22@!Nfq`_vLj|c*%P&Pj-_F@2k&yIB1eVSAOA1rA84lgqj2& zlAz%2=?Td##8P;`ImYuZfQANZJ)cMmK6o)EV&&g#6%vzpyn>mEAu*0qlAW1|TGx1w zNN)P}iRnh=9FAb1OaBnE_W>D7F8AJ)wyT0^(b4Nyry@}Q&OW+pQQ63*?zlcIL_nj5 z4f-!GI>G&nlchTyt1vd{+qLzLCNL>Vc=1rR87P^>_V+BSFr%G;r`)(4c9vzkzO8%( z+K+V_PrNRGZC7OVTv1i{J(S5|HL{A1v%i2e)QSoa>EYAJ;mFBfS8|B{m zZMQUzf-N83W_~6cKu*bQA#f(74jktkS; zds%NeM^8P&BH_QS)EFXEu#ElMVM>M>zt)b|cHNkAjp!J2)(;=dEAI;1;tdH5Eyr8y zvq8siLA-8;gc0_AXKoc&gIdsxM#}$Cx{(2ZXVr^#` zV~TQUXT|t@5E!n^-{#dJfol;V#T4q{??Y;I%@^|smfH5z(#*Iu}0bR&kaDza)3(bE4RgG5;l_N#c=lD<^{-?6vu zVrv=5mUqqO<3b{wVv*-;v*`c_`%$)o*+h`_f~^Le6cA^+v7noqjhQ^c2})-wkz-(N z^hi@GFpDiR6&Pm2cY*^Q#WoWXW(JSqOW6u<00dNORDh7nma+dVxO0Wxz zGPu@SnZ?4>x7kM=_)I_~e(lb%PCQ0vvABf1@`Quw@$>gL*GZqpS1yuabG@z@*=skI z!AI9>>6!r&)Kq5%-Kq@6Vv4aOTTD67v2|7j=iY*9@4j*e3}`IlAdz*9hvtdG`&_KkS=? zxpyr5nd_^i-Y&wjHUFz?sx(ymPlZv*rXOSvWv`Iay6`}%MBcJ_GB$+&6PT50#x0Gr zoF~2PF=w22!J91vZP**-HGWWVNswMkr@R=Vt<4T-iV(NT4ieTlAG2Z!Y6oiI z8DaLtR_I>2Yup6o_`Ga!$5vVg*2O&&-_KMJ!4EoDM>Hbg+4e_r$*W}8dQ6lmFqMWa z5fSGk4pNcF?CtsR$SO>~_1QtaJr}fnv-m0l(|}cDCEoRXK3-!fwD~z1g#@bWwB9=+ zbm>^fR7#OCGeK!fP5?7N%)fmEluf;4a~LTFuAXc~$R)!rX0qs_PcHPA3@_UfEU>fE zob}eD2Dt7V$4q_I3_(0!o!yt35XJ4X%>VxmR+nzD_=peQx8!9Ns%(OjrzO~$n<|mh zYT0w_P$F=Je%S7@Ld9#E2?E@E65(HQpim~nqQp)rm&vtSQ0O)$>`N#G!VtSusUR8d zn$EEs2Zh68U_pfH`Bu)XXibNGjL{Ngn^0)^HaJ~e*bFgjVd5cPNw`uJcDi*> zJ!VOq+o(t&VZFTVxVct7#Pu>M^NmJ`s(Y7c!LE9?%iX{;i_Os8r zJbH@kLA9CE8qFwKa&otvYZ(Scs_jzkZ-L?q{U0wo=D=Tfe!jv^8yGwk`g`I&4d|oy z3$$(WIe7kD5NcP!k|0^i+oKbBHu%q9E-C=>pTn$A_|xI2yFj$UW=>597ST%RTY(tw z_PNa`7tNF&=rn$6#{Qb4@xxrnKxA0@oui(H!+bU_x(^%ST4-jY+T{d%N>@yipygw0 z>ub%OcQ((BTx#N)^h+pyw$4zR+5$g53CDMQOhEOSF5Zj*Pwahhe4z1M7JAUOz5RWm z9)-fm)EDfC(q1yDE9sD)`0yKfai@{PCKNylq(xc$QA9|Hu45wl9{KiLHB83ii3;X%;$d{_PWnF6>eqH*MC zSUK)~w!XnP(hEd;kI~PJEpX&5iS(x=YAJWhtqe>I>f^e$(+o;8KD`abYN><+Vj=!0oY*lLu;mX_fhvgPz)O$ZE zoIz)WrFw<$u1aQMQhv;rhyG2N=6Fv2?jyvNSv+z$lLG9r?;2#*TG6E5!jA7+4tO3N zix@Jm0=b6+`kh5>;P`y^;oP6OsI7Z`oS5wn-50KoNQl-d!A5yux=Ez7LBlU zdb@(^u_oA;@uLe^sUYars5CBD4Z|xl7K$Qa;I}uniYiHiKkVi#hJQ+c*()~w zbF}_@7oHApsE)C>6pN9AeCsP)LJn$@?|D!qv%qfqF3|+xER>2nywmSqI|%rt zh2k>Y`{J^*$xst~rNd##DL*tUM;a3IVDUc7WwncCsQdG;>6$|+u&b0^SDQ$KlMi$E z|F!SK)j#sDB^4Urn7!<`FB74_CAB}iC#o5_^L@IxyAn`$tZy43hKSr-_wO_Aa6sdm zmaFn=r6^;(C4H|*EjC7N-EMN2f;n#A)RL{d@si@mOv0rWc-(S--}O7Cp!ne*!L%X| zFORue%`lSDNliX1z^W2QRfSjgGbQ8SOHFd2*AviI32p^Cr=#y_>*~GL8SpLL(ZEK} z0~+-%J@}`S4aWOoB~FPqLCDy##v#obv=*&;RUViL%XtqEYj780iG}mlOvhFXz3SpH zxZ(zycESg$9>hVtgPc9(TMeW;#9gUwrQz>j_R(DznxXRfgh6#X1?>XFhkr9gVrz73 zXvjk%JZO+Bdoo*w@A<;&U+9tXaNPLE5spk?{wf?9LTkp>R|DVQchKNsC5;$FSB4|) z5TMmo3z0nGltSrrxU{(6gR7j1vE4_USsY_f6CAhy%BTlMY3}^d@?f~ol_fcqEw~nVxS>;y2uDa!hmQWDg6b9_;rgFXP%=yG^4k1a(9T)pysT0Q+-?CppHgX9 ztWI0ImO_Ft=BVd|tUh4>wzq5CtO=c{S1hkj7U81+k_g+nFR*5v8@(1q1W%oRAt4>9 z@Kz$nL`xzF7<2{I#CV^>ks9As;%q+Bwf&wn=&r-q7cW~TTFZe?>@)9Hr#V0DJn?;fwDQ;JabNGzv{dkx-frC0b|Z-TOtA(}7d3GnY#F=y=*0VnR* zO(yx!AoFp$w!cyfdOJT;DLNAhpZ|;DNzNfbYZN0BB_kX)3=|ixNH)REN0%)H>8sFw zXPa)laUon9Pcdha%)>(|B2hx-t@vE%{p64CbW|@gJJc;&fn5VK2X9T6qFjY6$BwU5 z=BG93e*OP_Mes)kP3E6mV1JrgO2!lT*zRZn|^>AgkkYt2V zD*lO|{dt~Li~9{n2R}cKh2-9XVy~()^sN0Ybo724=(bbN?T>E6bP0!K=P#Q)Dt|WC zE8GWlhu%kh&kaMt>P@m|yZ~l?L8-=#9N<)Jde7+Ki;aaG(Z_FiK%uhHO8JpouxM(Z zJ^Qj8r0A2tp`!;^5B58_v($rAG4~y}nnDy%ut+<~(}0ejr<=EDm%+e)E;3@jX>hYE z_$hrM6}c__l1n&Bp-r9LSb8NF+6!7bzxWgJGGFAW`-M>$)oT9rM0Oq2J#|mCb7;WE zATA%N6PtPbLn7xFeKoGzuywvkO~%%NlRPS?bKv6OJ-@V+a_~dfRu3ck;SIZts54yEW-pe@BKhI?@xb zK4zQRqFIW&p5N8@c%}#fi+wLo|E`4A4_n>i-74YVnV67y)pnG4_;^NytsZtWcDuRz zHDS2l_{E9fC?J^n5Tdjykfq^R&gs%NoEWk!H}s4^ry0)rUzv3%!uu_#)vO&oFEQJe z?4d%}wu_`oot5A)Sz?p5oB;QlrY@+2mf)lfXEaeN8-l+uJzZ9<#MIN*WDPZ1F}?WF z#6)2R(%Jc)QsQlavt}2LbqHr78}~zT4-YD`pJ|y`)h~ds#CW4nSt5GXi)Y3qr-S$( z`5{NE9CT1HwAd)CMt$1oWz%*doOyrWl=W>s7~e4^@ceKF7mvRJZx5sc(Ql8?hLQ&w zEFJ3M_*jO2_)69jbR1A)YgBjiKsr+LvOk}*Xo2RqWPWzRO>ccB{$*S-9&h%relK`V z!$-U#!2Z<*GR=A$j{l^flz5_&q+kOw_9)J|+T|m1H0>@gWzoV6z3xr8fL@?#0nfuhgccM zfB^amsLWsFVLw8_!b8p7nvnz~lsq%D>TSf8@8%&3`DFMax&7h=m3-XEXgjp)Jc2zf zUhC(T2GpHfDbxH+!Zw0|DPgh=XX#sB@Qvm}&xP$zqQi>7U}*pX>%R{-&4m05XL{Q87s5sZ&7iul23Z-C&!v4P zU|kje*)fgH`@TMS`@ikA=)5D&`*SV@O6*P~{QOZ5_v?=AX$sHAh28ZvE}s(MxTIo< zTXhN2B3S+qe4BCCA2WqV#sp+urAie|wSlMpulbRwN>o{9KPoL*0Qn*Dm3J2M;fkHo zqub22cto;8F_E=& zDCE4S3ChYi}VC|v{K;Y0axp2N)MjNI5TF=)qt*2AKX{oC*mhK6eMKajA}82 zq21(UoCp}b>O0T|sq)dmwYMuV!urDTC+%flNJnG4p>YO#S!=Rs^!2C^Kw>d6w>1d>H>jIVD&c;puKB6>4- z`*qltoGy`&P>?Nh>2d?c4k{fLrYi>q$`&o2^g7`{{m4yvU!7|5uQ8qdcMb(=YvOBjnVjXRH@?o9)(v3Of<{S^glO$U$EIR>KunQf=AVK`_UdHKFivJSuP zx_6sBuN(`@DXiqzd0?UWmsvwC2ygoOF|OAagLAmyl8Vd#7N@KmNgV4$)#jzE>|Zj0 z;6IveUcj!ig!%H{Tf^-{S0`prmeW+~F={OYz_E5O+CDYl_9psr4-$I6o6zdk+nYwV?P*W*pBvQa8L ziLa4yD4`40HkJ*w||zSrnxA`Dvf4+za>0>jAP$Y32$q;y{3sT(2SZ~ZZAFZx`FGbom@ z)GEh5n&`^tg%pqqzNzHuaUC3;o%z`QbYSE3!`cqZDkKd~u2}leu=BCKWpZc;Opo7K zok?th_+R^2Ss62N>Po|?t!E=dg}Q~bGxlL)s1R@e*;EiV(Bn<&^~aU*Ue=HP4bV$T zy&Jv90@JSmkBFn*)RGqVcbmWKZR zr`&~vuoJcohkWtww#m5z>(x-+COF8zSp%;+dE(D_7lEbi(+jqP;qdgwz`dIHHP9uK zUTM4%3qI@y@ow)cKz_12+uf@i&zJtnziir!*>$D?qo(nA_N20EJ%1Z$e%&W+BASL; zb$1pRO|oJCA17+cdGN( zBlX#~mvQas*z|E5nJ*;Tp8_k*>PjpC7HMzkix zRDg<^()G*!k05*RHPzoW0XWaPGH^C28#PA)td+45)R&%m3_opxe*)ZZb`#5S$vHGt zqAdaLACaQ1NcQ0I>rWNqR5I}IK=q}W=QY?`diwIbS|rBYR#DejY(&8-BjdqM&aSA5 zTe$^S!PCwb?w{^8pd$armrJP{-<^HqBm0yHZN2-dOnMsO{>tB3zl0P#Xc11QzSInk zs!kHECm&$hr5dGEla-)$$v5Nj(;E2gbh~lma2=|%6wz(0QBYquXz6?m1)7_G-#_7z zkG}NH?^a3!p!8-x+rK#?20iW;@lT~fWZ|2f>iG}Sdk9fTO8H*N`x%as_pP2cShUX(da-t2?_J(%S5g%4Q? z$;5^V{KBihocN^@d;eW*<=O1b2Jd|CDRe#Jgm)(zNa&jS?rVas4K%X!%E$Z#u6K%B%}}^B^6B6b z8DSx%{YPCo==8l|ur15M<0>1a+ZidK!_@ZJ_f-NU4u4LtaLz%&&Cs*fD#PPHIO*N% z+ECf_AH$9JC9o|1J9^oo7#FmszWc_}aI0_+MT*l3zL}q+?79(+pl|19FYST99lPTu zKPN(dwcDgTr5G=VihRqPt40~gUTEMi^v>_Nf?( zmVk=GzazZOW$<%=zLnMW8MZ$jzo$2vkDI@*d_bszo?RoaY&N3sj|z0{l78mo& zVeKUjUF!a0Yf%fz3VGc%Iz@2!4_n+pzAlLMOn>*E`b)g+!NV0K)H7W6IO6y5quBl>2aO#JnUP247#gW3-n5d!JSWa6X7f zxi=y1ClAr!IECFk**q6agnnHuAZGxJ&^y{|@p3qBtIbASjmMuCo4>p{xce=R@Iu2)we$ZtnNH3ySY`jDH*~fhfMjeP$9WG zgOarT1}>UegrRmHd{;0gyqGA5JSCPRjg}ZI|YM z>F7WB?pNJQ72tf7KcU}}1!qoqoP60H4@txjI?_`&@I3X)q~9+HNgoHYg`51Kb!N>z zQ!XDD#;gTwQaAIK?sL_0WGyD&Y%k*5laKF$R+7`!8*w$r#OmXNdrxof>(Pfp zI@^AhWAKIc^_8Ivv@2W9l1?auzYO;F*ZGR!mfOFIfO!fe=qW^7y&{3Y)gPCd`O_fo zou>EML)FljGV!Z-Ge3hLa1?p@)PrPy^I31rEEqT!Q+1=e8F{xKSQTR}1Nb`Tf2X4o zsZI{^T2fW;ciw?EQAfn|kNZqMg(st&Gxb!qNdmt86*lmSQiu`5A0Ck|QgCvc&hZOJ ziZE{H4M*+`A{2-YU)Tumh6&D$1OLrf;ck=Etq;v=fzlzto_s1B2Y)9yU2G*{c!>V% zI1Mt?L1HSaP9|RNTAv;!=U{Bol69j-HlFMYKYMs74lMkNB5I17F+f>$e++y0=K1qk zF8oAB6~@%C?&@@q-q~x_x9MB@^1b)pZEpcN)2|9#JoUgccc0@=RV#+MWoDLW7UO-k zaP_j1Za84)mr%i21_$MYHJ&BrLf7XnAI`eDLyY+8XtR|nxNP;6W9}S3O7Y1}n9TTq zf&Dd>hV^Dx8NC|066c2I$zPa*Ws|XSd*Jia?b+xMBp0LUL4@x+91Hu+v%%{6()?(i z1Ed>=Hn#61;YWjLv9Bix;Hz01cJW0GK92n5l*Hf#E&ev142mV-$>*Nr*O3k~Uxy@A zM9FZEN9|3NObuvhIJa%Y`yls%QQmxa7GU#D=DnSM5UJoGQ1p}va)cQR`!s)KSX=&- zAsL1JvvDKd&#S=dV&}-t=S1)@J}RiZvmTDhiNqzph`}#{d2d<MZNX-e94tO3{C&m9yFScZ^Mq*i>JoJZ~noak>v)sUAH57_IwEBbl6{H_iKgS zYs%b}&VIO|zYvJRNobTdKC1hw1Z;bE9y~ZjhV!0>7G5Y;BG2LY9o80P!8)E}OTPhI~gwV9i7+KO+otMIGiQ_GWL)ew75F8GpR8Wdk=%Ol$KBlFF@ao@>TW8>gYCofUr+Qx&C8x0Z$)FUf3UyP)mHpbr3RiNSF{jR%WiO8hIy|m~S4e{Id7JR}oWIk<_7qqJiMO;7R z=;ahb%G2%J@^6>pPsaxWVKybG5WR;me7_VF>ogwN+@`|goqE2QR*%d70zK+YXc%P? zy61*kG?bng6s}CJMTXdy%8v`n(S1n7VOYNuJ$oculs&6J$cRhUUz>)ly%m1PbV}i( z7ULn_l3w`u{B_r`Lp8jha>QLC)j-Yp2I7A|3!r~}engq>1)iZ(^v$y(0^gcCd%7zb z{@gV_^p2+tWV8b+w%fY_OE9{`ZY1MLy#>KW^(;ISNq510iUPU)3q@adq@!b%)v_T| zJ?x+GcgX%&1J-%eEDq?o?N0A<6|S?d!IjX71v8Z!`#d9 z(O*PWlagFvYB;*DU5eto84j{9CtjBA$wG?=W!;}!gP=R1#j!0h2)q4dn^Y6hfG*kT zA;V|`JaO;e(etMjJ(;6L{>)_Ii>EhuS*N3rpC(0M7>Q<)7*QqlRBOV;(~T_2em6fkGa-uhaw3%zxAHqYE%Q_DR1~Cub+XC z-aSx&Cq8ebruE+IgK5BC?gJuN`rHelh2m2mB*gl#jm6nTp;M$0i# zA$(49_-bM>9wpmLCHvK3!;K9!2OcUeF(~Ygiy^}-?RQg=CmD3zV;6gM%Yl!3du!{9 zO8jY{6w^`O2aeJ^)tfD8u%mfZEVDlxo}bT*4NGi+>$iR_9DYv&1)AI$9q%Ssa{VQ> z9I(ktRu+n)LJg=#x+UD>X+brq4@KOTr4W_zquEf@6(r6I)yMEqA@^atP{vXL#NIR3 zd+pH-o$4pLHqt85X)UxtCNmG7(sS>2?V!M=zr~6Rjm@wsec5ooSv3CPKB}|CLje(n z9!hIu7G{^2-OSQ72KUx|ugAX^!doNl&em&5xG2yj*p-5Cm{=d@+*yUUTR)D?OjN@s zXYB&vizJB9ySVI~+l;!?!3`T{tFb_S0MiR|Q162EJIhl-u8m zY##$wx#{o2otE>5&xn+P6RWAzc~(ojz|vAX-d>C%zoOn4beBS|XWFQ=K`D6CbtLOm zbYq+$jQ8xy2@pRjT%B{y+d^y-B!0{5UeY)Am?wbuNP1}n$r29es022?tek|0a*rf(?b-?54K2?*~Whm&V zNVH$BK(UbQ^-l#fn0j(mOuHiob0)7mkqJpbxf1QgCv)YXDt*vt)Tt46_E9;N20U@? z#LwWa%0g(HQ2#VF8;7@khS0YTMZgA4J5+F~0-O{D>>RWc@yW9eE^ZYHS_|sO+$%4G zL)DUed%sgLE%?Yv{b&w`1(}z3b=Ts?0nu?Gr)MZu%=dQIp9Fv88^q6(N+GhG_+?*x zEy}+b>N9)%99pz(sJ+9bIC%5Uw21`?437G`v?~?D%Q`E|*H6k&(aH3)tyVsovag7a zu#nLGz~ZEZeKA_f>*&kA34~`qf6H`y+T2fpGCp-dDr~)Q^`x71IyS$2xx_|o#UGT~ z+nv|S;G;zJw|~h^DB<^Gi`nNi_)>A0-*R6QzUusX=K}3HjGM9jpoq3&cyT*Qr}x1J z#c8Q)WGcK^VVE^5Dgusl`Mu5=ewcp3RPD?&d%T)*^rXuEQV0~_9B7-Z2Knu8dek@K zaLU@a!_lz}9>m^T*8iCf-Vx6iN1s&yD-&Ol7cm{LMvRb@H+kz#XOz9eqY};qF>p3` z6hcD$n}TNUDoot;CD*If(A})Deln~S80t^xJ#E?KL*fHRe#3IeI^TOtxjO^H^$C6F z=LcYB+riu=n?mpx-DlQX+<~9^>9!Cwh!`eZE|{=Z10zGjMOXTLAos@iBZ=q9*u%;r zeDZDtSomHX&b(RxPyElDI8LXdlSq}Lq)Zub-?$KI{3Z%H2PMilr>kKur^MTSIR_h} zOVv`UDlzZMxvebq6~NDvdZwU|02EaoyWUf+Fd8s=?qWeX6dzrS*mt`E%P3c$-*}vf zpROFguzaxywjM3GI(a1uzDX(*YMy1m>7J;j$XSKZVv&gU&E4&T_XHQ+uIb&Qw-#3h1o;m^vGlwGV%PSr2|(_5|F+B zyzLw|pjCvH%BXlbHr{rAcD*VQFIPJnC(t*7aF3GXN=+Hs9{+pw{jXR!?PtB)!oCg_ zZhaki-PQ`BW#!*s#RLtAX&(M#YgcKdN*{eS~*n%y2htQxDwFntX`24ghnVcgy1Em8|J(kajK zUK2oqL*{3zMkc;X*!uVjpDWZ8bS6lTOJHHltn7?}6R2nr|72GRe!tXud1$>HWIi-yi4y8J{X&aAhQ0*y-?dz%aV8?$C~txNr!>qg zZ#c7m&wZG^&cCPsWev(ms}GiaOv6>Rls(&QY%sz|`j!43d`+x-a(g=&?N{#`Gti2V)YtP> zGm#9}hUNux6C1#j^lrZWe-xc}IF8fGXY5|PL*BRea5 z?>)~s#yRGF&aw9@m6arlk`yWB`}6zj`Rj8%*XMpd_xpamuIss;=WaTd#ZzO_WGFz8 zDCXI-k_VSB3GAF_r(>2jD=*u>PBe`4b6+VbgxKgUTh-M z*5k>sca10O%Hcr4qqC7eveBV_`288?W_Wt({OqzL9aQ22b1$am!^j^&+1iR)jIXq4 z*y`1SnxAE)mHo2e<~RRG9xg;YGe<5|8>a#sbK@cViz2XL5*D-2?*SI^AiWG~G9=7yTFo}ifkZj=0rmf? zu*$`g!l&DWPok9-b=qn`?UYx+Tg625^qP7$pkD}OS>v~(1PW1JGwBf5FB*QoF}viV z?+A7*9Z&BBm%v2(IPo(Z3D#d-k$R+m4~!I4_MLX61I;y7b)qd3GlE#mj2x|<)bHzi@~My!y7Oa|3F7Hs4aI=|I&jUk+%_5zjF&g;5Tlm zymudxaCk*e`$u;)emDCu_ToMr&m7ETweRf0U#IVUYzS(`Ira3rj!=aLyA@~FifNek z)G=4zg}yOQjr_c2t6=Tkx3edw=y;>JO_Tbw3IodZBSj?L@pr-*g(l~AlxJ|aQ8`_O z)&){!0WP)pC0A@~=7|tgVBxyzwHgAEi;pFA2d=@S?^p}@VJ);-iIsF*C!%r7cIkq> zWw7w(k7M1oJRnz%jPkixAm6*K21U{|NE15u`}n^)NGoW`4*yySk*kJp{`8&$H`m%K zz8vq3dfT+6c~!#8$fr3xziZ*@mh|RNoMg1W-NaLI{sq#nD@Y4mr{KYvBVH5fCD>=x z;@UrV7d!9DC=x>JLAnn{{KoH~V2$55pbGKo_jVIOt#U3P4#CmJ{`^L=<1YzB52H>MPy26LAe z-wlB{O=c;ZXfiqvpOiikk_q9P!nRkZ=K_0l zvg1};+rZ~W{MLTgO5_Txn4Y4Ug48?LfYTe^C_Q+OxMvWv9Sj*7xUB ztb@Ukb518Ks}kgYke)qby9GbfA5F6Fj>nmlUqjm7r7%{sFMjh8J3P|0eDjlE?uL&F zIEING!h<#p%B$S9Q2Zf3)pRcveXZ{AD==z;g!waVMcSE={fS@`rP_uZsSHe(OZuD=gBDYM+pK$2p>2oQlfozxxX&l0b0+qKIs5k^>Xu-n>5A9DSRn73_Q3?^=ynkBtF>aeX~jkB~ApEvSq{9 zkW{Tn%YSGuHMw6>xkgOOZAngZi(wz1~~bhKg6}svN~=aA4=S$BtMp zD0h^z>GG<_b=xeui4X;@{L-K1y3Bp4KLzxv;o4G&E{dnNC*J`{ZE{d9Z01k~3I zkA4UxWBTAt`Otp^yh=_{a*s;Gs228@C$%bIugj9wy`^OMsodpkvy=yNFXp#8>E$8a zTWn|Rv;$uExc#Zas~JegQlvU3yfL(6*m!4pId;3m_qW2WQj2mk-Bam~n=tCbpY7)Wwp z)%IVY_ii~BjoD^Oc*SA*ozrQK!4xPs^(vy=qXtP$ z?27&ziCAQGSX*hL0wv$Jf$Fak9KC(6B`<;iM4{+NxgSMPMzCBnf8Ym_eFfJHU$tP6 zIgL{@y$IE2l=&&wl2O!0@b=!k26+GQ8q=52V$|lQ1nAW@gP=fK=iW&=oUI#L9N@_X zY39|-4)cwe=N@RL+|vVR$3l&l18HCxbvA8jR|&*i?X~}-{Q?*orFWKZ@LcaEi%)90 zROn7;CzC5PF>fbd?T^-a25aBblT57_z9@K^L#V+ z%Naul>F{#p1#n)=Bpy7|4&tku|5m@M3t&QKpX1bA9X9T0v0mNL28O;zg1tpr&^Vs&(!&u%zRlT=jA7N_ z$|%0Hb7SAP9YC9Pv=roI%ypkBwSm|QA5*(kDGYZ#=e=<@5LvCxb=teO<3Jq4RHb_s z^lY_^J-m+sA$RBPf}T=v&O`8^ntBZ+$b9;s-I#?eHM}m`YNhb^h)ROuA1AoZYcLTh zTMX}g%x=BfUx@tnYxI-M1*n_xWyw{Tiht4_w+J0d0Tw#9>7TMj)KPnIU`?<9RI~Y;CNAey57K_Lz<0S#A@(&~GL%V4WUsZV2Y6k3NXJ$}CrG3VHY8?=`Vc;w)=+dl3sz+QT*V4*Gx z*%aG|zg%0vP0#Ppj=~C97&>UObO@1&P{qwD)PU(es($IU&6uRfo7c0!kIF>FB8I_q zNGK_auzOYpf0Az;DbjGoB3dTC$TIzw+X?lfkJ{xR2rI!ip zB-9I;DrRmf#@eM?ORK^uz87mt*nX^Ae%I zwi)=dZcpv@jkC-qs%~!`kcT409Y4ICGSF>w!Dl@_A7A!22sbb^;qXnL-~?6*e9nKA z6;+*rQ;~aebW>vx4^5k!9xuVHTcivDF)H>mFy1d>^#$Esob=(-BviY~{_a#|EXwLU zTKSPc!yv2J^jM!fh!P!tmi?6i|8z*iO7AMr+2yn+ov#Va>CT5|UeI9uhyPGfemo?I zU5Yt)sumb(QZz5Q+TmESvg4i~MfmWf!(%5cD##E0($Ji2#_e-wU*1<~$MW(uuGnp* zNTqmQ)wat=+ZuywCGLvMF`~)n{ioCwaA7Pg&(wGCLewR$j_T*qt$-?N3 zAv*j?*s-rxvkp#pWcUTsn~|X{PHAqJCmPh7!%e{g1a+;^tjDD|wnmSC#YKbWkB|AP zJMu72IhbgWP>;@!e@9&Q>wfb z8jH;Y(_Du*@`i8ne`(YT*K5N5teecs9|%xyoTcZPMg^lgim7~S85q}JlNr{VfkDrr zI@~ntF}yS*Sll)i>N~%zb-OjAs_Y5sn>jHkn=ERq5NH6I%OB?U9FK-CjxAxE7@INh zg6J>ao9)oDDgT~)5E(w54&slsZA7llYtMb(l_77+h)sS&3V8Fr-?3$5e`&$OU6hp? zaAvU8>;6>$E?>AwPQuTiLib%91hDwXQFzwj0Uk6`ELnb9h()FvWIj$R__|6R^tf7rb(1Osxf)pzGf%Ef z_p5}*a$4hWd#a(H!0@?xECNKHFV5W>R7c9s1ED|Y1lV&rZ%2M0;_vC{-2x|a!M$2| z@6-Gy^vkyTD7ILHvmR7Y$I*?xXF0H?_6?ZIMIvWA*3fSd=N^mt_EA3s>Sxt zc7J4sT5)23md?||%@Fv*&%*6&G1~GJb`f@@W1NcT@XIV3ws+Q-ePF1Bv6g}xAGmEX zWD7~5pez&BoZ5+LZ;L_Gp`q6OeJ&^l>*pSQMSeJP85ua9CdYEBVgy=+Z-*F40w65gx_O-BJO+WJ3^1Jgx9X? z!*6diLkQ2A>torO7|winmdSMhZ7f3-{Kp#L-^v#C18M`v_K-D6NHqh6-gJ8E8JnO) z@$i4G51u36eyvmdh8@5>JgmGgzaAT3|9E`zO&a7d8jZPk6@jO*l8YTfEXMU68Q#S1 zj$>6^pA9$iTRxT$NMiFvah{Tk6Sc*dWVoL*+9MtHI@z@sz9Hy4U37`NlYz=<8N!9U zQE1C|SMixd8A{w2DizadgMhTZ>Mz4dP*^@wclLZHWZq&{G~4h!*ZqV7yK6-7em*Dg zlUM+TjfLG>KAqtC>O}F5;9P8sNVJp|2!$#0{EqZ10npp}XuD!|GHUJ?4gX?ycEiYN8eBN6Em^*?MuKC+*>H78f@fhKQ9N>STNd)!K~3oYCP( z7+ZH13r&G>Bk8i}@iHiV@Bg=xl?3OX-cm8sd^KEp~TM9^f6}&%U5sg3peetMY$%QYYO|6C=O<1@7H#aKF39g(K zoz~_I#rZ`&9g`O+C@B)F@-Vasy5&ps203GZ>ubMx{!}R(S`#)-@<;`iNhObGR>iQt z!~fN!cPLUPGTCqSP@vYty0Bb43I+;WPmO7iz-DYe(~NElGN=dWF$y-|!?@iV&Jh;) zv4HUT`r|sJzdd=YcPtFzwg|lb@T>!ZED1xCMNwdU_?PD-4*?jzzq=~`t_&W2?#>?A zR)d#1-~5^_iNne}J%GAwT|wWim>9-&B$Zyr@3A%E29p1&3TIq>sjD}OTt5yE@D7AsLaT`IIBp%M&s zoz2*_Y2*6g8Jok?C>&V)wi>mw4;cArKXpv#Xk_`0YY%@Ds?aun-%ZHdcwSQ%Ui?5j zof%rILaGGSyZ28EKdXQTYVW=Ke5%n{?X#!^dnY)y*F6dtufvn(cNU|RDR7cu@1%|H zMox`favGR!0Nd)kg!YY`{}L^FY-=$I6f7FkM&@fV>EXAzQlVfh+aE}6kZnVu3ZjUA za{<)kRYfk#BA!(*v?{$F1lm_>UUKyL;R`{@snaFa(#XXU2XXmj0t$KABq|+@%4c+-gEAz#pQTV<@8h0g%0QqIOCOM5DKQx?0<~}mSfYAU14&v zxpm2myhR^0bi&?pKx~u43-L+nwsWgv_OmzQz;# zWtTp1@4c|K;Zy~59lk64+O`U!`6sUw2o6D1Lvf^N{}Xs%PZh8w*JFuujySJqDvsnv zW|04Dgir>@+rOnM@aSUL1EX)%nAFHzLhMR}6ERXf*J?;`>vXk~dwCGfUD+cmJJJLB zn^#`#yjFnNaqG^H?IqCbFUhK2>y&_n=)=E;+u|O6&)aA^NAgn z*Nzn7kwuNoPpBkZ=OTp2>!o7L6n9GUcsH=9ZZej=9*n-!*}yX&5^+YMtM#N@HaMF4 zxP4-6fqlInc6^{!U;t~Gi^4WKbbr#Cn;Wb};W*{5A2t=C^w&oR{M!scP9W*AEWI3< zv-x=B;%gy}@AzzfP7P+9snIW&dkW6o93Bla;UIL^^)Bm2H+(l<(x)Zgj-Q6)4zW!p zqs>=7R{Jml#*WSU)o6y`$MU&RV~aMVM;D~+IYq@D=M#}mZ;F94}wg>MAb*K=eu{CI3xdInmtQvi#OF=4VzWZh*38(F{ zHtD@Afc~9(?mH&vfzsdbGoIuPZ|`i}Zz9=)fu^jrt40lQ?ntK=iPVM~Ui@)md#KQA z*ukMSSAvi06`%ZSBV)^@af#3im8f0z`~EqjCJaz})nc)d2kB}1-_uVLal)-dNvpa7 z;xzkqzqU?;^||%e!s^vP*eC9)W#5E`$AX#k$<3JY%jin;d@S?`|20(H)rd@5(U~DV z$;ff@Zrn$23V!(axAq8)0wODePqh4Mp`vanRqSmZ2Ebp7!q|Ln=cvpiuXH<-iKCZ`W*#JpEw!dVNwbQLQq!g^&e1r%O9&TZj=}!PDA>!c2 z9aQ|tktCb3!QrZUg<))4Q}Oq$=jT3eE(cQ4@pb+27Pz3p^4{c8Bx)@1Bs55u;Cx8= zF_ktNURF|t=`@}ri@fvF4_Lr=yeOSt-fK|>r{-XLJq&SnN>q!Ki37%j&dAo zmdGzLYQO?1mdag^DL}mM-ZY}S!D~{5399)N;JUv4=9otl^n9Ob@#?FETRz?23M8Ab zP+Cj*zy%t7I(c40eX$4kje1t4UvLBU++R&H>$y;Jn1%bcXb|2>yhm>7C1H(_!{{Cz z0&XU$F0~VBaBaMZQ{hP_{#kMwkQg9A%(g;HjvgXB{PXU!-iF_`N!Kqr@2%eO!yR5q z{55caJ^WRU92M+p*Tir1xPVvK*Ys;!3c+A=;(n}bL}8B6z|sdDkj&%gEv#MzTH3pJ z)XUU>kaFMDW|LgJ!CG(LvpEyLkC$cCM%1F`kzn<(<~->Btnf!TL>u$z$CDqcZg8P) z279@z56o@-^;Kdo4R_PEOfuw&@ZM58z?R=1`^nt1oNV;cilpKfKVQD;zWKC z=nv|@zDnr>Ljex^ou}$?i)Hk&pJM5t*+$eBy-b3q;oMfA-`1hjfWSp+TmTsCHe^WD zsX|I|-a)EK92|LUa8~|&A*4RCb)2|cfQL)2FBe{of;n$LhtbGxVA^w!<+Te5H{~+R zU0*?vKE%NDgOdy{$2O5(Pd&u3$&Vph%>toXaL>-A-9)hN8@wy=t_V|IH@ohfZ35pd zQl-2VsnFi;E+B7_1_u`W`G>?vu+04RP5c)!X#Y8Ke4=loZ${69n5Y>lwLhQ-awVdL zHIJh6APETnCT+xaS)wktFlkh?3A0@ya(Q-Az~jgEvyqpHcsFqD-+AtGe0@yl2_Yp4 zJO^LphkHfia-6;~X>$b}sG9hXeN!AtL|3j1eGS1QzxV$5IhFvC`qxzk7V}`v@mGtp zWd+>gl=`kClZ)u5{;@j02JY>9w&z_#HSAsVYSJjK!=mv@FYEFO*v+9<)T|Z+!RI_} zJk)b=OP}TG7uv<}m#yYeOI|(fFkN>DUL-@no-55RXKP?MlS?G3Ckit}3n-2abdZ@{ z6{37g#tv1Z$Z|$Ha^&i;oVwu-r*21NmF5=1%YT0bHz^RXs+4glJggoVFKn6l5W@D=SLV}GJX!kCz3f{r zEEFvz{59@^$4OR?*~ztF@hz9jSFQ!T{2HyP_uJshZpr|TU5OV>)G9a$ z8MrXnqt!`i#LzRE11OLN4}CuWyqMXHi?7=~-|z0g(xLYm(+oXu+cU{PH#85VZoMp2 zNeMxh=7k4C@`K>|PCJ#)jtMz9$K%8*whO)A@e5AzI9_V-1>Py zMCD>QzF!Jd7kn9pVL#R;35U`_PrkBTPct8eTWk`pv&O<#%YOo35&sNn`(1uo3+;~rtF10*quX%rJJHG> zwDvZU*mN-)6CdwO$zY`;#fQP&q?rIAMjft!3gzfT{e+*J1%58R16#jg);TNdH9mAHp5}#Twe%~ zzp}Zh6)YaiE3_VJM@{7eItgq!IArxaT{0*icAt!YD^l?cTQhEM{w<#YJdBTWo0dy( z)nWSE?u}er_8enxsVYMYzA_ofnkMvMe6#HUb2CIsoib36XoBd@Ta6AMLQz)u?kk=9 z#Yp~SBpxyQ24X_VmE9wy@bC7_Gyjde?)%eQ^F5CS5!rv~lUYb%IJQc{6j-_1^S zUZs2;V<>!+wvi8i$kR zZ*eh&f!g%ja#yBSSoz5@^lGgb=58b#zW%y1Qt| z_m|f=P=t=H>;!q^lmhUZ5@~$=oPaug&3$*T`D1z2zR!gAN)Vmd&2)pg9Cb0Ahvjz; z(z$)AT+I6*+FV^ue4K`3&ZjAirbLiPjcz-mSAuIR32}dUVxddu{xK)s40!)y`qDks zN=$cUQx{b%1nEkaF50Y4|Adw$PvX1XSLv_CB>X8)d3S=174BQ1x6# z?OH4i<&7?yaC_2l^?-7hlf*nN0utV5)7b0LnF=(k zMN#D(AN*rus&I3hjJIxug{Nl5LTt6|e@h1{;cbEbjKJ4Mm^19sYFCN@LdKkH#ZLmh zxOPU8Uf+*nKaWqb7`vdYmjHEJF%b%W_UnK5jD)ObgELG6(V%>vsh;zD9+1xSbKE*# zi@}S+W5gyKe6V}C?$Uk6FVHSCa7tckSw% zjegclDiNOd%R*kisovG0R2Z+_OW~nY@!4WMgR)5;*!_N2$?jT()^oDcd2<2S!ohWi zN3R;y!s6Te?zf;@wRMPgJQ;MKDdyj=$;8R6s&?GN`Dj7SJMLrB2A6g*>-_uJ1YYv2 z)QERa;r*g+4E<&l*iZdl{P?{CdR*;;iee4nd$!YNM$d88!=ldi7t)c^OURm4ZR0R9jDHwR52PReOBHudY zfQ+t$mw#IWOfl6h9j|xC**6X;g&V$S#NfoEu6q^I^6zOs*-ya;dA_Hze>T=7+shFt zC3rMpKabSMI2kMUuY-!KZro-M9KBO#3ZC*9CFUsW#gLtzXK5>1fCfK%tp_9hz};5wP>667s0B0E@&^~gY~C4@3si6T zrkFVRk*5*;h{28zvRk14Gdl}~IR{Ue|4wD>&BB~7qZ-D03-F14&_KE`5s%)#Rl7gB z5`Rin9Fp`c!kn|0$6p2zKs$jyk&CSeeWL~$mWv5snRAHGGqVaEnq+2#m}{}r-M+p< zuo(wJdrz3l+I+wCA#B!4qV^az8zxig@vYCKEv6&in-;wC7$IR7|4^3UII1*{_-|s>)b_zD~PCTjvr-1e`N6uI* z8_;-|+`GY1D#E%BzSZbz{5O}PLxF>yAGR5PuZ7TKuYM}!_~Kh#HJQla`e!1nrs*0ux5DB9E& zJWlXN^XG#K3UQ%Wt?qXLyj>(Bq@!Pk(}$Gh!sBZ|^w+km4Kf7cHyx{F1`-$_u|M7%&;%)` zI=h80Ud4{wGPe(1UdX1%?4!7&ACIpAIU}VT9BZ1ZlE(}jG5%r*yt-dy-{Ald zR+OC<-l$hNsa*a3Y%45C`h5Dmk^;XUp8R;EE(_dW>9&5OG+^~yMatXSG7y#g*3Ggv z4lnP{8?rB;0Q0fTrvu9^=x@(x_jG`a8I*tR58ag@^Z1E}iQDQinzyUM=3*nRnM>N* zrq;k!Ar_fvrwaH^w+LeX-2~?9{Qq63Zo+zx(8X6ZHMrcaWiDl&1@au40r7ttk3tt~-t zPVh?W^MMlNdvufUrV1Udw@35#`(~oDVNFtuVQTQ5)oC;3P>Kp(a*0gUw7vo^m zgUIyeaRn%JuZ9-9D8Pk1eKm6;1gw8b={9-kiz)Y7J_z`yz=5aPQ=s)63_gF)9ZPP& zO$V-z@g`Nnlk(c+>I^AC$M=(Rn4n(Y`J>}wmf!xP(4HT;3isiWT5Ol+OdtVlq%{1%>0 zjeNMn%^K{nr44omjjGGb_2NQVr1N}0HBiZsTTN6d;ds$ejaNps&_j>9`Sd6OlJZ&o z!wnlSy!yT5btOkM_1k2kv*|i=bRLMZ`yGjcA~I?}wpOFVz+|J13Zj0vPg&xr2GA!5 zxJaL%g5Puz?*K6o7Osq{MlijAy1VvS<&UcIWng*_A0J|W`C?^;MG`PHm#%k6CxP) z?lR>hrdWnAIBWzH*{dMMOZ66GB7#EN3r**(#rX7ZQrn*AxiEdwH#n)o? zduowO$M4!oCJh+2JYJJ&^~asnC;nY9slwHY;X|RlhyvRTq|VUeAm)v@irVN4+|Ea% zm2RpAt=8`*H?k^#L9X~m#%~+^5~W7p`2)ep^kZG3O#>vEEjzyZ)D1?B!uzW)*5EJp zjB<-V=|Gv|wd5phc$4O1&ZAl#z$Ml*TiaC*m(>O``80`8l)buHG`Z0FAX>(;Q#58&U27wyZ0m@i-do&xmy}#>p<(aVouJMV3Wfnd$VM2l1bWpAx}! zT(rc=BL!a!1anGH(jeTR>!|Zk1?rfE9%3vvz_~9A6O;0l;9lZRGh?gmX9vYLxOQEzbU;a`4!wSK%>H$YL;N|eN)?;TkH-PrDYdIV>V*oLCNveLL?li3P)qspLZ;u0rT%(`9X{pnw=RyIW6U3kaUy zB$cFCiz$4TJX0_8(ZsY@p+F@Y)`jm|P3~%g702igcXiv~wGUJ{syAVvy~04w?*i~H z{M33PjT=A5D{By0vf!cB+=qqQ8lW7w$x<-iA91m*G(xBfZ#mhOh0%v(^Pj1Snf)@ueiYR+qacS{wU=>d@nhJV+t-siWRXaVm zk~cL$p7zho!H6PQ{yM$7xV;wsELSM*rCmoOo$ZlscQ<(Xtkc1uuZZcTR&zb4%JDLF zrb$k*9{8Gvi^Kml!Fz6F)$tEcalHFN$oMcBS^s=*n^&tu;uOaShkr4~F*W4#({tcS z^tX78OLf5Xkg3Q}zYd;l53JrHn2TR;p1RWL+JMc2SN%0as3k zSgRz^pwBQ-fyJ;NFKwe0@74!eD|E3(|o;*l$enUmiuVHSDU3IXK=JOb1>p)UPCRF8NHHwLRR~bTT)@}&V-QrCK*D^`p?qG94K&ugJ#hGUl~a}roB-e_r3qoCqo!O<-K zCSXqnNgb&i+{`PfkasQw?`r6I6+dmjs+Y7|DGM1O_qR9Yr;9J_eezjCpjBCMy1GVd6;eg0wsp*S-`H36_<})?UM8 zFc^SVqS_AG#6Co2#m^i&>Ty!oFzLyrFfgT!mqn@;Zg{q{48J)Mb+&O*oeyL{@ZiHm zwY}AtO^ww(6hy_RdMc&f7M`NG2?D8ViN9+;;H-hln(LV zNY{jyDv>GRK)sJ;CaB!nUzdHX0`_&i_OjpB2MMN6GS$)M7}L zrFC(srGtWx(pa8jHAwFYxpS4V71PS)oZ4M!=*Fl1h1EF`e@F9H|FkH;E`4rA@8CLk zz?-R5gIORVFkG77SB|Ua@`y3ajbJ;wesrnX3uv?6q2@WwMLi-3z_Ge-)>OQG6n ztUu#gEeZ;Iw;W$+!6y@T;GmU&Zfnb5^>3en;C;Q82RMtsts*V3-K7cZ9>-QNolAo+ zL4W@&ysn0|i}fpmdoO^_(8;{aBoY*TTyh&+% z4x+&kS|!)|ap3-Dznf30&_{=#gZf_$u1@ry)IlOPro;a{Wnu*CDoo+ax z;OT#n%r%!QHwdUF>b{5TG99Rdqcv|RRZ#6=T{W-Q z1?%4x2wkUg@Oiaaxx0HSCW|rK=p4L>ujJ%s6Eo6rrCUg0R-_s^b{NtHv?;hC@^-VA z*i#t3uJuQNPQ~X6r@r5}B;&25UuSM@D#T5W*557YDVUx8DBI7>9|R+Bj@-YMhV;{K zC?DG@u!NCP%a+rP@l;OMt!Yh=!yBWyaw!*9bX3xmW}6|Fn}KTw?K$>U4%406OF+!+ z(1AnOJD}!@!0}P(M;LlP!+Wb|F7_-met*4>1ZQp)yz=a%pP} zp~3Ya%R^y8Ef^A!G5yz|6j`F&-`#o?1XT5N+68+P@!KPrCeP$f$TAvXPdu89uViQc zY?e>NG6qDiCTa)ec&_m_;eq3Q*9ibV8}U9fwW(6kH_D;A_AkO##M09DO}|mb#6O8gKUT z|NR(=i3USU*Sm9I#rJDtBNG8HML!f!bE1M(pIpy!RRziwm!;>W5n+$_)$eVNkq}vT z;Z)&xGIV>o6(s$w!h7Y{f=Yf9AueF~X^N&Vva>TE>^Yi+=fC@^-J@4yOJ=FX%`$|a z>yx5C_z_x{_f8Z(N`vXKPma#HFEN1-Y%F|+0KQR&N46)>klNpDXDhD?N$#`fB@~nJ z-9^QMPm3fByx&tMpjm@9;l345Br?&F$6I^SwhqVTngfhiD8N6ZeN29@EBvLGn8p6A z#-K)yy4SV-7?aLADE2fF<26!W_ijuOH6>n^E0%P)rTS-ZN`a29+3)=tx!SStL;9~h zd1UaU2=?CjO@`w_w*;=16EQAhpSto!E)8=Zd!+7}jTgIHeh-|k#P+RMeC}T-LATOt z+D`or5L9q{6!xYaJ#S8*yAvLQgqyGad{d9YrZBRR3KT-a6DiKjwM^KVGLh%-9}&CF zB11b&oWa*WzqP|F2NEKv2PF;3aIj+A$+|5y$Z%2M>AMZi`+C!Zerkz=?`$N++=mg4 z7#5QXrL#c!`iV2fiyIuD>8@e0m4*|?kH6z6%f&h6jv0$KZzwzV^Ukh&1TbcEkdP3l z2E)By_LvFxVPD~ys|opCIK^JWZl9ciB0RgQuR{jHxskHClO)_esvvvLJ`gO713E0@ z3GhSOyU*`&E{fXmwz^N{puraT&%1Ztg|i=@*WAd<%)RQ$K{X$ecB;b0?_e28{{8#Fxk&JSD zqZXZ7MD)AsDI0kt0&+)~U#Ln{!^i7;&slEI1v{OWb&_s$>|Np7xif|WzC5dSL(wIe zYChUR3f?#ejKR8tb~Wffwb{V@V>CKAn4cFpNW;4IdGn7aiBL1e#sz1)!QiQZrvJ+t zyz8uJ=kig0 zt`3!FUZx7@HG{gF>fk!!k|q=E#z<$e2C+@jM*>{mCGIbmyZtJ1RkwNlJ#habrJ4 z8vmo{yyK~S-#9K&LMoL}C=w}3ib`@RvXX2gV^@^Ljn6=a2h-uKP3If8Bdr<4JJT%}+xtupTtRX3j9J*29eUAp;hkFc=JD zJy09ig%{7+MFT&Ad&|cwc8kT>MtGOOZ1Mn~i(RAS&C`JEwA+b{s!}v{xpOtwj)Z|* z-Lw5QD0u7$?eMNdD!$;|VIV?6yxz*VJJY@gHPo~2mHdhYt@7blLFLMcV!6lebzhTJv3VnO^}cHwcR_ z*btD3pFh#Ju>=%tCI!So`tU@wVtAHP6P}US=`B#xgP-!gM1}q6#L`R?4!}mBM2|G_ z>9@h>9evtj4McS8Rbu`c&jYNVb6~?>?IRXnWxX>yjCvou4(T5*4qj0@fG`@Y%7E?hGj4+s=$0}eK&&)FG#Bm zqFtG>Wpgt=c!(S+f)w``@Eas)4zZ-+#B;;=KsMcAlm>@&xEhN zm+Zr(6QB2<$tS~Uj^dq8d@XPa?p%y$&q1f$AD^Qm+~6+1V&Xs6bbOb+S&8zY9Cv+F z@i&c z!`_Ly5#vj6&5HALUtJh_D^~`ai-w`5sMGJb?six@8FpkYv=Q8nDZHNEs|-Ke}6ZQV8A2C z6y_Kzy4c-{)DftJg1RE*y)i`imlhDhr`L|(#!Eg{xNr33+^F=`St4q*zayS9L^SQ= zbE$?!3SeU^glbw)RJ`*!3%C*rX7+U2d8Qb+ti$e5lD&V3NK5;%>s;EGI@C}Mq zO}op6ZWd#+WJt`8r@fH;4VT3{3HaZwb1g*Ken_tuc+Yi*getE^f3Hs3y;4oW!(R7fk~z)}A=@=Z=Y8WC4wH>D;(`=7)}i?R}EsNAmX zFHC`6n@`0BBr4i)lXa%&X*d;~sXO|k4~CPih2A`)1BWoNbI;jE)Cpieyck-5w?E&y z?s2CU1}<89L1!QAO^(o=T#vxN+NL4KBV{--plG-yKM`e1Pri_RK!Vayy@IEfmH2el zQ{G{?07SgJ;fP%&mZi=-ym`DIqOITNR_$p6*=BK>{~1L zg1ABUA^r<}D6$+!St;oNrf}^&<2k87rWP-qV6BJ0dN*YjLYlE_o&UgMHU*t}CSKKF zYeH{3#-#4DIviA7n3is+M895H4MJxfluB`YW=f*sNvYds8yb6HY{Wauk)Dmt9{FO` z{cZU1iYS9XYdfaMIBtD$u@yz>f2gC$S!j|X<$uj^2;xL9OC~ke;m@MMvSn&825J<1 z8!@hcc3WF7x%JYXaFu$Lxb(`_nQszrAO50NDV+mva@C^B=;mnY7M0SaQG~xD zxmXB$b3w{b*WnU-5w`nB2qb?@$9v0e&YpfGkgNFk{sx(VJljkdSdX=V-RY9H>6UJ! zT-g}#fd*K&s-kXtT!}q5sZk5R8?m{)Q|*mp1KN9qw+s(7L8h{;_IocHGF06-HGZiO zvyN$ZZr@EnPJ`LQ1pWpr@>Q9Azmey4o|Y*DyLw2}{8;!vJ07+izixQ_3jwsQkD0Xo zH;B{x-sdw;RU_Fq>BIBC6!^5JroX0B4W0e8!z0Bt5W|>xe@(s!S-La**&r8^3z8kV z*;+u5b#Q$0XA5+$?4Yfxb;H{{+j9c(iEzp>HsXLT5pMnBpugHe1zCvuL5l6giSfGl zeRqqozvqvV7PAeQ4m^-oWG;nl3#O+hveNObv9|S)O)rk|wRCyR_Th*_x}uSr7o^Mn zr*Uc%1?!cH<1%-a!O{Fr1>)DK@FC9p3&(6RPG+}-?0!ka4z&Qer_x=RDi*t{7~7BG z1jie8G&25Sko)1vs({H zUy^~T;!lBVX%&iGZ#qzavk3c*t#C}F0@(B~RxF=QL7TzyduEFiI43*r^hl)%Ue8Ls z4Wf2JE=BOK?_4FYeHl?rUmQZKajK>N{xV=??J-gn%tMW>e0@}&7x_UE zYHMXt&d$vET#^O-ESbX>P^SU-xcfXXA+UWL-l>*vn&jwKJ9(A-h{ResUOQv zH-p`aUxIEX9@xly)rQG0A8(y&AAU4Pf_w2JRPDo+V82g~XKAB{x#|u4TU~sJWoujlZ3oru7k=F_Ekv!z`5YF`Q^Ha^+*D>)-?f5mqwDwqO zAMpPSU;I7Z3`h57oR<$EzkxPB;Uz)yF~^LIrJVurbJC)0~;yz%tmB1NwS+~RcW z2DUe0QC`yfxCag3nH>|cT-A!Rj=$SwwzOlGhK`BXL^+=R6`z;tUW2O7qh<$7wZQCc zw(QE@PVh5gBkL?SfU%v9#ibYF_+R5ecdL&@&_)n!u2*Wr`MhJ1BQ=jf>+jr5mv1rd zJV5oLxs^hd;uDc8#UXg1NtC*5QI1W|FP%EFr5xDeJjb2->OqKOA}ORW8@(46nZy22 zuvh!(4Sv5av`Uq(6z!*gEZ?WaHwkUq5;3@-Ykdv)ZvFAEM*)kYy8> z*=880UCQ;SFGT@wlEqRK9mmT~%v~_2L2XfT1Y1%wkRF`l?ReGz8E3CsF&-!t`1CFt^1^UdFW7pD>_(T0H;9u$U2&y4LW>STK;;|&O z(LM6z=C(#S$aXxbbyq6B+Na}039g5QTjA3!_Yk+2KDFED)B@}|`Alq{M6`a#cJL@X z#KyCkCvLu`fiR8xrjb$?u5N4KXO+lC-IJy=nqA4*JAL^~rAQ|*Dj3kUoeR1tyJ| zCq*hcF}f?nHTPH@NU^Z`G953%6tlBYB2vu|T>PtLc$o&f-l`M#Z)}v~5!1^s0|Lm! z6o30woCJcu`Y35YgyEwZ>^!@ofZ@$8^^)W^RMRKF^pM`@58KW<>aVzBqW0a-U*a}+ z_1t_VHF<+;vgMVyEjr-#*1Eqk9d+on!k*D9RgRm-Yxo$ux?%H?Gip{YGzgyCk~>ej z2*PsD&W&&6^%v7Lhn$01U_9KkJ!?}sly8<#(h9G`y*WOI`VO>$MsCcdn<)hJ)_N3m z=21Hem>*C#nQ8`~T?ZAOH4~wgyN(dIrv*>gd0g-*EP#ocR{lltYW#P^C5qbJ3%hs~ zLo4*@VE?r%NWsJc7|ZD&$W8GR(c7D;{;ec4vbAf<16!J7}U9GNrzLoFzI zu<(<-U?Ieee17DRl#M;VJNRD_DQLRvC-vnm5i*TveW&?|a6U#(PI_|>vWg~WF7;J_ z>=56b#pPB|_YoE3oNrd$gK5dFA!hpKFx~ijL6BsrczW?m2NZEHWN&tE!zF(He}^{u>zkb~ znRaH8G3`a?{GsADR63H-9rv>p^;pMOZMOEp+bd%`KOV0@`Oa2Ld(BL+u51!F+u#=; z?IVw`ue)I|aaHEEe*myfnq512uLob-h8S`lLns;mh6^tBATw39&_n6P`HTARdAHfa zov)PwzV(P}Lq~@GRVSj{Ze6K2jG-{F^LlISnJyT#+*#uikc3H9oBuJMp@B(45+#eR z4OCTuGts>U%JELBK$bqAhXA#3-_J0VVmDV!sV#C zwoA#q=uU{Z_CAUN{4AT?YwvsDgh%_fS(Q5E`>>m1?|>hq+TW))s5Jo#k8lDve-HfT zmrGQ2>IS>k>c=r!G*l^>k1=4ZLO)N(J--V{kW>)BRWaR(p?;fAUtMrVo}d!T*ltfW zEC_Z|{aubX56dmKT8vlblgi8A>4^_#fy$-U1UB` z;a2g9C>ug0u=hUJp=rwtG}s?A*jMpY+<4Zv^heUa!zJ|`-knl*~d3{ zgLEX?e3}FWX$u2$a`mv;_9?aYq|ou7jIg_0}4@GVwPvDXy})86sg+dVal-xun@gpr75+3$LaP`Q3}yXK>zM%8vX2V)?L#vUB1{3uIeyQ*X`|q70AzHSbMz zC_C+>FB&}r`_vj9ShaRyr#O9WJhcHnHK>gTl;(gcT~XKEry8dAG;q!Ijsx#ANh#OJ zAng95^ImBqw?+Cq#?H6-!`4H=<}B1+cq6U9wBl6*A{xET{9B4(EJxe+bsGhm4|$gd zKgxxRci6XVxljw1F;Vj2TdT42HTktThs`6wGgjwNEGW4)PA; zJHGAtkG+cUrIlXHoz!AvrA|KC&e8>eEgXh1Y4_o#nB>-c6EApB(!9fcfd={1O@%BQ zeyjUl)^N5PlZd>E-D|BLi|0_@o z%ZBETv6bn@YC4~`Aa{Th^Z!{OA`x`pLTs8dUNKzKz%Y2w{eayp&B^$mB% zoo_~13dQ2bfTEuGjL{4eJ~dXH`w zmX@b0J801{-6wimnKD8JY&{ZrwG+H3yhb(AWK^gk4%a>D#zxnktF28G_@`%ica@_I zvGum|;T#(NsBil6I4lv?mv$a3;mt<}TSsd?jb^x-Kxghg(g;1@1g~BTtbr39m)+t8 zYtU_5c9{EzcpRGdE1!%l1+j*^K~bq~F#YICR9a30xFuBN*ah{uE9t0@u(Mc}5jo80G zN8zeeF&w15c0NP61{Y#EK7Y?fe5t!j+Tlza1kw{dj`WBj`KyeLwm~f1l{Ocd<3^OY zy-y&qu@8IYL^U?$jl+lQPk0p0cmDq#q}0{BWLVnqCGzs~ZrC(lG5kWh3{n;jaIVcn z!(99Q3k1tMC_uG+boNLdwC2j~cQ8xF=C0LB7b*ppT6bR=Ns7c8*JF&4{6WBVaPQq2 z@gCsYR5q66A8J+r0Tl2MuaC*Zg)W-tdhRUdg9nL#LFn zoLB<#b?;m|BUuG|)1L43cWppf&TB_|Z*Fk^{<_Rg218USQWUy-whd#4?ACnJbHLI0 z$5)Q{L@?&Q<|lG53r%w@m_5b^F;ucO@+4ayBy&D2y0BJ_yKif2{dyCLRp-vU9`oqN z6IUi@ij~trrg1%}Dya~4t}L_|p4iY&RC1-=`EpG7PqGHHTj6glqkFej4Uoh_x0HT% zfj876o3>jwqo+{ozR!|cz%nD{&~$$gD`I`4|2WWaQmt9HyE_s;L|J&AnI40=zd@o0 z?-0>s$DYq8=rzc7=m0+_DFKJWTr6s#0SaaY)>XNiaP)jBQ_u_%Sbc+)-%cmOt#!o{ z4jVmltnaXI8t)ij+#{z$K25Osnl$%nWUA`SW=t1zm|nR+L)~|;OE`?No?D{{*9;9xw)alZJuT0FK#*F^-B-31b5 zzuK)JJvi{;hx;yC7apAO{?H{?kK)@qZ`rLhVCLqqx?=4BRL=b5A8VaA# zAcJ*8Vx}w)4faXC*&H|$1IJ$c{`yve2(f;Gr;J*@?(=-nOJ@^Ft0n`0B` zl$`sV9qEr}UTUkUDw8m1pM{?8o-8yR|5A8yt`?L8&ipLvZNqQT680^W5(u{YcZusL z2`)OD36Gn0fkVA3_hGRbTua$|?A?Zb_f+>tJXt9OPTW>kH`9v0d)9sgsS;rk18wSZ z^dZlRZMRu{E&MsoOn2yw01@MXe&OhLcqx-|snnwdoiA1uUt;fus~2C7U%u4kXJG+zB<+lDRSHz+eJ!IYWC8p6jlPp{fua5RI0|x@9Xay#cQCD=TZc_ zOB>j3k0GyeHNdyLKbncot?*^4{7x!YAnsh97Dee?=s0J6;P=HA=xqP@>NGtJ_@29S zll3n_IiddP!^#>E`y1iNb7~S8?9*TC#V3G2Yt!79EGphD{O`7HbOR`O&FK-gcY|60 zL_oX06rJTHjf@{2=J6d^YKLF^T}N3q_MONYCic|P8EfCF2;80ug^Ru<_4|{tSfUY> z`e>ssH{56^iBkK3Y;-<5(=w6?5Hw%h7&yLCY@JuQjS}sLz+BoN~J^i3-Jn`rFre3J0INgz9$wQI(hy1P- z#D({EE;=HecpO&eKiug@@Ae%=cNvC&L;vaS4vqrkHfv^fT1y9EvX-XR*8;3dRjPRW ztO?$6>`}cZkqV#13LKw(DMBawe##`F7T>O)zP()A4eBF?AzF%U$T@mm*VMO&;Opb^UX zYpUd)kWgW8+h_%257aeJ^7W=p|>#WW=*a#zxvC-+NM3k}B{~l=42t#QWjZ%F% zAb9$@Y)Nh>O!@V-3bwXm2w$4i_vmK$nsjX5SHBSB76TvcDQwc?{J7k&sF@M#+hgSVF3I88;LeuNy4Kx?5j?fi1?qF zqs6Rv9ga+}?f!AA3NQ1^UunGG31dV)P2cVgnE6{4xlJb#HaTupv}YlKPG^60o>Mwd zM=qFr_5%3DMh%I%){K(2hhB%i?ni!wA4vj}B}g*1QetT9!FK5z27D&rkT-tM(TQ9E zF;}kAmUfeYLtJTFBj*D&R+;a~uOxsyWq z9`zugxcgjCaW-T(%}6yeB39|xjPdXBL&0BGzX^5?7@=el!^Go;y@A0#J)fJwQH@tP z?dLr_cRqORa#{(PZO&t?`ss#yrQ4$qy{F?5Lr>a%o(4>xmR&m&-i;nMiV8B=jMt*K z@|5z@(2M8hrxng@)QVB^>EDzI7luoBf8i)ZCcT{LWT#>r`Pp@(;2*+K1Ns@EP9i2= zIs7Cyx(zi$t=pgI5TQEWX`8Yv4RfT4hi~V_U}+WI`S_a(v{d;uH1xa;rqi z=0W&pHlGAgi?5|kelA6mOP(UWriJKh?L|NM)em}~26f#E>qjQjN1wNni0C_LS*hLL z3&;7ni*8@62g6>rBYVg+RO1?59G5ACvs{cqHbuqo$L>Pz3Xxh5=Fakxl$-jDOoC1xI-9supVk;10OQqhumORfCfYT)tp z4CbpUM@EvAv&Zp1%kVhhQU;e&q`1i(Y_~+|J zh!5q6?|x+i&Owz+6Tg!n@#HmgWg&!LkC&?JXC@(HVppa^aS;UEU^-3_B4AKve3tgF zW>m@<$RkX70rxv*_H)iLQ1y6a$L(H(sT1@_#v^Ia`JP1aE3Sc8*YDnPnISDXBas(X$aOXcf9kyH!tVZKU z*@ZhX?|!ZEyFfZFUimO(w?xIE#7)Lb4+nv)YqW6WQaNfw?au2k@PZbn_{2iKLX>xV zAG9tW4=W!xofO1Std8J{~w;jNMda<4ZAR=s1=hzp1wr zTS+zQ1D)N_aZh!J^F|-pk;L@e?-(6o6z$|aPS>JKrJ!n`B?%0+R{fMWh=OfLZd80o zCqrBR+=Qh@7x3KKYj@8u4)Y$J>Dk@cij%vYFC6($h$5D}udms4KJWx)_DMCI2{Gnrn_P8 zmY2V(P!N19>b7{pIEnU*v30t3MHn|7_cr))4sP)~b2VF*hzcpUH2DP5Q2eg}U37{D z!#j0H`FTC@?50~THS67Ynq6}stGE+GP9|KM3$KCGX3uVKN+4nRP;~etV-nO%as^s4 zI75=>UVD1|B#Jn19hV#JMGk|2$*((W;L=z2uk5OM;CIoD%k(=9@*-ur&RuSVhj&iH z#Mu%!(BUOQ($xe*zc_Oy`!Z>y* zaUF)ZE(klkU3gmYJ{}ehWIrQV3P9w_!{9`xKrfym=rjx^Z2Up`CRNGzB@SS*@920S>%g5vhnQG z7j`Kd?>8}+o^D=l#CM;|8dBEVvAs1i%twca8cPvdhV99id)%(#WPBT#zQDPu3w5Al zp>5SS90zabtSqvZXsFs5pw1pbM2XK{wVL)+OeCJWZs1Y_E?ZQtpBHPwPZ|FVeOt3Z z|9+dF7;^>gdzV5k+3>rOr;nB=?`B{Pcc$(h?RK=kF8d+mHWAbMYX?g09>8Xa_}~5t z6=1LX!XeSK0SQ)Z0#mvq+%h%MZM(Mye8Zz{f8U~ks`;Dou(EUvcwyMp{(%CjQg1?a zennta_l_+)x98#Cx3_wP^~=$gMfKS3no?LgpUi(*AQ5PF5;i8~$@rxB3derE42-F# zcbO$s;B#X&>Bor;D46i-ly_?;yt+btF;K_Br{p~^uz9JTmoOdk%(RgM?(dA;; zYH~b5^$ZE^d2i@@KPMyK6aUZ<$u8VKIjs9gItA=m;?tb(lA--dW=LGv#(wM)mrX^< zpf$qt%$2(hce>bbQe4-3 zq(iX7mBG(lbdb@0mKC{!fPp&01Le<~uy*9h$sm0aE*s}F-P37C1|cPt{sS3!i>|{m z_@)h+rNDBADGrAF9*hr>nvmq9z2az<0WPn1y9QK}P*RGEt5mBR#rsK#dTJ%mxr-Ec zajGBfo+iII##jQz>SBMcnD=7Nw&h^0`#l)!x%MwXqZYXWgBPp2I&je`dRJEVMnN65 z`q*mS1uq2zqfQqPP}ckVQtysf%rqxTWK@^o(Bf+8NqRoq+1{)@M%~EGHl50S+XirR zOUTF)#}McQ8L^i9sD*guZ$C|rQsL2nV5EI$C&mYiaByg40r9Q$=Cf}TH`X=3nMbV= zi;>UzXaoVG+-e5IS|f4Opo-@4>3;Ot;IAEc_a(XZfx4nJ<~pQLToEmI__&# z{7wf`ioo5M9yjpfp8NjOMjQRKqnX+~lZNtVpNgDtAVFR5sg#xuDh6J>ylth&9p4(u!{^S`$DpkIIKb#fLRL~gUEf8z>*#w>lQ56{SG z_TDo|;b9hf2?fv|^3~#)&U$-ue-mg27<*r9Z-7%#FD&W4-!8XjNJxUbNJc{vH> zw+d94k7K{B*3tksH4Z0a|5t_T-1H$;-&GET5C zdmQ)bhlb&8O!jZuA(i2?W9~d1HjPd3>h2@rg3j8^W#bkUlkrowh|I&0Fm_KXp(?ag zs&&|ELqO?s3JYtI)gbE7t*-mK1+VS1K6&PT0vvki7%RpUgE4Ne72}0^HgRK@=jfMRIKiTrym?R@`uvk-AK%TiwRBm`mt>Nz>!ff&`lqF zsY8LLf^9cXN>u=PfY^56cp2`{;$OV^mV|1qA=CZqW!RK$T-P|=0uuXnN$m7(0w(H* zR8hrxJmhA&`-(gb?3klQrdxY})0I|rqRI{LeY^8CFTE6Hf*UQElFM*d^eKz3eg<^; zKU}=6Plx!~svCkETo50AF7xy66!@NGxOQ(tAFltnww86#QBt!^`~tNeEd>mD^q0wa zc4pwBk4^(-%S)Kg{r^6+L#wIeVj{-=>U~)&*bk(uCNE0jGjYu_fl$p#hx}^;0*{W7 zKr`(0yWxEs>)6c^bYdh6c7;6renH0d^GzM#NnZH<5~P@peRRNk4j9n5Z0_f2QG;otB-9cNy5;guAvvAcGqV3l*9=TJ-|ykbrt z*_=m0_SL_m{#~u0&hMsLaQ-36G!OJTi|4>`vzI9@R(UWlH#a<5-vM_fJhU?AS|MDt zY}Na)8BPjmhpYM#@b?$%*&k*t_=GWvT6<;y9~uX{z1rLgoy-nRhs%2KE%UFH_+!an z&!#l1(%OyGV*8tk+cxGAN<`B?RNU*w6mW8)83F?0SXKEO;PtCG!m8E=FBM)4yJ#aypFZezGcB)#maBOO>JOu?UR4s9(J@3gluU%CuAG(m?N!%aG(u^Y06#k`S)S)sC;SeGZG$r zcwd>1IR~mfYDgJMHDJoVqh-8Z1Slxr&ew9d4!Mtgsv{P9;BBS(T9Tt5!gP|J}rz0T7)2K$^7({Xg3ke;w%q1G$1D)`gXDfg+RA7McuOKQxY5 z(CIMm&*5&Lo`$cspXxYc9|>}uY0r2=Tkuh0YD*GZA$DilRqG07;Fnt|3QwI0D0+w2 z^vsE3@O&@Ls`PanPiYMd?AcR|-Or*FJSDnOYD6ZKs#t_gk8O?=8dGq6GJSI(l>|iZ zd19>^8FvW=$a??kg`!(;=Co3yz*1c6%`Js-EaD;tr8kw}X`0vZ%KIBW`(BaL@W~(& z9pAu=ck?hQ`F--J_}a#I2Br_t^+&kC;^~-)O`o>3I1rrZRYYbg#@g zB?5Zi@D*{=EW(4S6Un@8)es`IGxdvW7x4dO*qMB-7^jc#@LL}3#>>YYA6ycrqZ~=_ z(&aV^>KCl3kT?3fS;u;yqaFnqDErPAj5Xqunj0T_J!zojc>m1H{a#?skmV`*k^*-Q zMUM6{P@ptWt2OOa3%aSkaMGx%!)<*3uHBkR#pV%l;;cdm-e_D`~3Y z7P8P8Q&WwdiSR;bLwEWNf=A>!jkV8G zVd}*{!Jo^yXzIgq(}b-DlT2C#FL)=wzp+bFm%@Tj@o^rLNduCD!pzWBb;+qH(gg#c6 z^*i2$lB*G1V(#4_?^E!lIBfv8{Ehpol%5J@bso-P%ybmjz8#QuwGriM*`KaHYQa5Y zT6a0zD0r&n*GhkSFT{8KkzmzrKt4vk>hErY(Cc5yc*COsI#05?$ZzQ3aLeseOin!@ z&C4fSs~QTFN|xJk?TEkAzYa1zsfVbZQ-8+)RO5j3h1=Jz_dql6m9C=)+JJ8P)^wOH z7mbRxKU!BK=uOqSka&y&yKd_y`y8tSxeDQjJZcFW^G*x@7EuZjoR3LqPQ$?bhwETqP9wT+ zAC5We(F@buRt?o3YH|INYz;ZG0B9dmD$fP@!tB{?M_p9wao4{}ANSyHP;PVm5g*!w zdj#d)IOvvu`R9bxpxkWutr#hEn7;^WRaJIQt+bquILTfre*aR{AcF)4}P}v$&s1RX9OoyeGV$hB=SECHk}Epo$M;XMIouWN8cY zZ|%juM5#LnC-=5LI$2LG2bLLK!wzE zPA}5{dM-nFJ^5-;pWo(@LlcPKJ@)+vh$)*jo?=;5_&!`9y`vGRnr*z zF)_L$Y7Ddvrpq#7g9d_crwgK#2Jr*#hVl=ie!^R{1XQ8&Q6`@Yp=RND6sjnNLdM* zqh8JvnOYcY%+*@;t3^)*c7stC3i@o>dBRhF6pZIv4z4^chUJ6@Y6oh3L05zza8I2C zcBA{U<*ke%){^tD^VJ$il@IuNkG}$5d`$@5b*~)Erh2xl{EG}X&3q|P#^B#-KoFqZQTnYVY)*#+A9IA3PD+hJ!z;9}Ydtej$`}LIM7C0oH ze|0^H2Gq4uX1&@9I5}c#7Ws~fpHBR`&F$8RHR=-{A6Rk$>m5=O!V#55SpRZyx}s2m zS}ApZ4tm*qz59Wo1!!{<_dag!Km+GeSM%-d7~Wk;+%cF-K>6REsYa z9wh(bwRWfBjd9l3jISt=5t$g)YFdDfw|A&GZRF;WsQLyg<2um(7~YyNRf@rQe2nr&+@xn$AeDuPDJ<6mB>>s(M3RxFI_?_=VyTY1*>#UjEz2j7@*kPu{ zeZvb)G*vGMCzb=7d3LnVlVSW6&KagF<_gCTXd8VjPDQtaY;T8N(NK=3L-3GkGgRr9 zYQAHp!gGVo1K(E&xWxAB#?({>hG;N*leuH@-N+s3^wWi?zPxVzWT*};nVc_j-H5{U zW52t<{c6Un7okm2?nSt3iv|16mn68k|7%FtMt<@hA2}K7-wL04Upm;62oU3ISNTCb zA9$beYo?Ff1+zBVXPLY8xbAMSdNeE*dvfkZ8@=oYvy~Z9k|+r*g?=AsUZA6qqwSvU zJoOk>W661Kn2g7h5~}0fQn1xb`N$bl8a|piseExiLfb#XPqiZi6!h5FFd5N@3FE^r z%3dVkLHS)zVjmF%1>Pvc}2mt=kLjp8@Zg~cIVrv@FAS{oYG5=D}`1I z0WFoFQk04rsQsClh&@AP*0TnZsB6%xw(mzLo~zn9cH>eRT>sMj(c)|+C?}OfzQ0Vt zUKjZudVB^>c`48P2)3i}vvw8dQ(ZV|@S*y@&y65ya39kSm4brTSYiTGFAiSpcyG=~ zhyH}1SY^SP24-&*YY5I=W0 zp&LfN$u8vGs6+)y)``bq_d#I`hgNNbHF|#(`*7oE6HZ?CdQ<+d6$A%c>^3))z|>ft zvBYdA&<$i?Z`tDxtE!hD;`32B(lvK}Pq_6gD*+u+rPho2(2Ga*nTK_L5X zDzyIQG(DM;f^W`ovmG_9gTKesXJ_rIF+I84_g%~&1e5e-#g+PzXZpDpe>D;L_^!oD zZREfYc9(=TQ$Nh0=|_J1RSWy1w-4%YwxNHZu$gmG324s!uA0ec!oBrBo^)O$Vf_Aw z%!g_UL0aHy-oMXuOx=8)FT1W8ZdqLCD|yj?6H8KgB-aRh5_`_^u39gK1vuYSxmJlx zL-s;jI_Qw1%-U8wi58X6IPJAy&9F@ zAJ8ayR|9_wl+(fl%dzL+ejJ? zRu@zSM1NY&yNA^ivps&fk$Cds)t8&uX%Mk~PruH-4V;pm7k~fR5C5a+y#KNM-!M#O z8difS%9cc-L0$GJTOmy;NrbW^d+)vX=E1YfRmjtt-6f@ z>@z>r8p*|QsI5hCvo#ULVpo<&0&MY7@t;p^d;xHful=8RN-MP8-1%qxVI$I~?0T-$ zj{(P<5Xq`Lb#RqU@17daaMSXEsxV;^e7PtSzA#XOYpZLss!s86Rqj+d~ya_{%e!Z3@+2O|vwzlJXT|k~UH@iI*51*~* z+2bWd;Q7(=l%1^?e&~voJX4`Tz$xn{n@>qNc20VW^!-FE?NJy!*Iy5N7(=r43@Y)_ ziA85ui8R>ZZpTSBYXNrdi*Yq!#pu>fc{Eeh3tdj~U#{(?qx)zr)4+%yRQUZ1d8wU) zW`_;7jNGO`H1~q)wjU&LOWCRQ3W6~A;En~8M|7}Hnq^zx*w2I`{4~LO3UaMFUq3k- z2)gwny4wH7;Ia8lnYkN{;BEDvll?#kwiwMtMTb_S|Cxr=L&^>C=lRrOR<8#5`U)j< zo8r;LrHEBgt_NIXSeDG6o7yP_bh5Ntz^9=7M;ns^Ow) zfo^RBO8YU&EV;LU@9)26mlAuB%yiqA+PUF3RBfl3`?e7L_;I?tkT*`o#OMC7D}|j$ z&xc)Bu7J5QXWnT?S7;xzIuMeV1atAfVm+SHand?$nR9m=p1i)2koY(l0z}Yj0CPa zgfZ0NrtpU|`_A{EaYOP}cLycBQ0v>G;9QT}*g{|2c4^0{Uoywp9+5D1IZE%vl{QSa zz5T6-mQ8)|`wF*f5Qje?D?kra0uR#8p6*mUK+5>S{Wt^lWl_V?S-WeI`Fx^&d+jASQ>`JR{x1Y-N`@llZ>Hc-ftTpk zh%V#DNN$ktipW7|BHh&+)ad}i_~JFfn@r?6^4L-~ zz61te{|)-_@;EOeln4#bddBty4i{*Qr+ z_2_5ed83k_irbG^wDLHofzR{6(>nc)xMq6yoQOmSeBxyr6?sz#13X;fKi?DKLF;D6 z`}JL*S2Z@dey;|S4Wd~iCyAiczG;!B(grNSCMKDwBuID9N_GAo2b;`i51dg>LEDHU zBe#M`Agf`x>*!z#ru7b$j^vb}zRg*WYd@-hm9;L}Yb6p&Kd63mTx^G*v_sb4KDFSk z?3t%1Y7XDpe77knv>-5!G0At0!E=4lfIj9z939z8S&(!C(+__rftSPa?$u$P+=X2D zF*h+rBNEX^tJGgXvK>a-4zK`66WBy?S?WahKnatT&^MoE^nAW8$Vib2-1267Y$m#q z`sX{{jim(_`L#SVnyGmIg9E!P0}W{pGFy1xwc|j_v3A?(Zm{Z`V4WDH;>^JBXQoU< zj9b0;QSxX58vDAtg=jlL)Mlc7<^Dc6BFgC14+i}4iC7cf20DAsBj$l^`jcfB-La1ZjpfhPu@HJb2KbqK2|wUM8Tm& z62Wji0p>??zM1IL!JTkOMCSnkdW0?yKI$amjDA3R_fk1r+cs%ja=8dYPdf!JxsXBC z`1`_z*Y()dY4J2ywF81bw^8W(I?(-bZ1Kc;817Hlo)yAFhqVbc@3!1l81r%c@~k2O z2B!Dj-W1V@t8NK}XX|T0cx~~+rHwh?yTH2ZkxK_QZU0PvYFUr>oSHeG1=XRzA#Y05 z!9M8He>|7KRs-WU9%O1=Q)BE=nY_85R-Ix@jQ;64B|?2u|=PZL3dX(7cc=zpO{1wNM77} zKcTw=f8{NOG*r1`@(teS-1H)NE3vQDjkyKCOP$!)aB$=LgBenoLWL9^EzNPuA+T?; zYLJ*i$airXxVt+Wx&-!WpCyr?=t*2(Yi%uDnF-G@`&RqKU;<2E0bZ1T`n zyH{kNMIG4g=ux?7-3D7DDMy~zx8p1JlJKY66c7~LTW^O1FxZ2>ZuK;XE6H)^uq?;Q zsQv@1o4eq5`Ipt}Gj-_cHB!j@aD&4!KcgyVx=^n4ifZrWLQwfTdB}QG24t??=3^ab zf`SFRMpvC`+!bahSI15S@)n*W5ARo_to@~5fn^OqOxCksyIq0DPo#C+tMI|2IUk&* z#tM=A+Fv7Y;2wSrjJH=?*Mu!6NlUl)v}4|dqU7Cm)tLOtYv+w~R5a2(AfadOhBo8b z96t>P!M4pU`@`Nr2&($IWnq6ir2ou!9UB@2frq*7m1B*Nl$0ZR;AJO#-n7|VJ!cGU zkf?T>av&iZ?*C>v)v^pEA62W5locdnyWX-rNF0_e08%O z6{tuyWG>dqht!Ej;Q}?uAUB#LG4|CBoOBPmY`V~b@>Nn?(Mg@ybM(5>2U;^ew{w4@ zaX$q0|1)gL+(m-gT|MpFlRD6R?=h!^8)Wbjxb3KLo`jEAP+`mD4zKQs^JqTP50*EZIp z7E=unhJP~oM4 z?h@_VTfSz*X}M;1QvL?VRdvr)RKdfv?Urd~W>A}d{BOiq3jX8xTy^1BDL%RD8b=$T z0^?I(lho}b99Lt~I_Gx>eujLe#%dK|TgT$?KGb0 z=}72unXYN8AtMVVq$#Dm3r5HJRSe26LS?nID)Z}3EY$xRe_SLFR_sOs_St2kjlN2O zlzaj14F8k-gP|SMyw5UJ=jY+=mu~ts)o{&GR!`v%Xt%Zr-~ThL|PG~kXp1-KH! zR~3iaP=9;=+wzz;bhVG7y04S*()R|*t8PSWF^&3gd6ftfA&cC5LfY|B@#;^AIzd;d8Z5(-b0lQ%yYhSkNJ-mJ#`c+D(NS)rB!x*Eji`383( zHb}ZRd9(m`1#%chDh9$gi7#i;!hDe&!Aa}0tp=<6<%Xr=bhv%1Hl3BJ1K7i*#L8}T z!A`G$YPDr5JkGS~)-EUj?r`zb7~TL~{qiMk$La9^0lCFJhhF+Ge(7vPnc_i05f`4r;oJvVqB8Q zH%d-E26ZgbIj5>XrBCgEPH`6smwfsBM?4)f`k9!%ktm?8`rs6)rUE8iZd~KpLBWB( z*C!3tJ27Re&^GQ(-FSX|M#+C-Y{vD4`sFu|>t0^4EZ?ZupbS)vdTZa#?tf7vLsoZKWyY z3>YTAjs4}63Aa_wZR0lzgx=2d_29q~5RIxx$=0tymJckNhsJAA^~}%z7QgmlVMqf% ze|jH?=jkc$o$Exsp2zB0hntWmK{lxRb_-;DQzm-cB;i?|u2Xh9e2i%8ocIndK5dWe30%@&y)4@kfK|LSy2WlJoeY0@!@L?NymP);lJK;P^THjo^~cG{>(+cg02*u zu`+c1m-qyBG@;Z}o@YT!jYtmCd?ZZ?!aa@gme;Fm@T>*1x(A(#26vMQ^Y4i`e&zn6 zm~RSR50|f`uJl6Ro=e0F-F@K5<;QiLmy90FMqZtNlkks}dF1CdBCvna(*4@h0S`Cn znbn<1Mw&NONAY1B+-@0m6SX6tzhm&*JtG9%qj@ssR$Vi?=tT(c0~!?OYSe3CGeomb zGBq(KKtFtZ|MXu6zHlp8nO}{^q5gM4D@C#B=U?1uMJdJ`pVcK*%yaSa?jj5Ij9SR< zaf-9QdLN^oI-R@IRR@z{Y({qKW$uE5sjB3##dSR800dH$$V@;pqas^ZLOwT)C1{yKtx&II5l2_rGt3m?E*A^Nw{G z|2d1{OL{5}?iSV0R~|rxvx1y=HhQc0KZ8mqeFAJ#U(-=(>_9Wo!w=RCs^I5^w%6-r zbZ~8o)pC+1BZakJIn1~ke%5`MzS33<{xKcYx7F>a$`R$ChLKpFH08MWT|f9=o4%xN z(7NHDocI6xQi#=$L_V^WCV;#L*EXBJekiX^CR%0D(CXypI(z>jSa_P2cp#x0IA5-w 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 @3bQb<$nnL=J{5R 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

    o@U=`)Z0$Z)ajU{bS24{By?5XB})u%B<0 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≷LzV3-lbv+Jat`hYx_k(!jFI9A~Ipf@J1kz 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 literal 0 HcmV?d00001 diff --git a/src/autooptlib/serialization.py b/src/autooptlib/serialization.py new file mode 100644 index 0000000..c5e5df2 --- /dev/null +++ b/src/autooptlib/serialization.py @@ -0,0 +1,227 @@ +"""Portable, versioned serialization for designed algorithms.""" + +from __future__ import annotations + +import json +import math +from pathlib import Path +from typing import Any, Mapping + +import numpy as np + +from ._version import __version__ +from .components import get_component +from .utils.design._helpers import Pathway, PathwayParam, SearchParam, SearchStep + +SCHEMA_NAME = "autooptlib.algorithm" +SCHEMA_VERSION = 1 + + +def _encode_value(value: Any) -> Any: + if value is None or isinstance(value, (str, bool, int)): + return value + if isinstance(value, (float, np.floating)): + number = float(value) + if math.isnan(number): + return {"$float": "nan"} + if math.isinf(number): + return {"$float": "inf" if number > 0 else "-inf"} + return number + if isinstance(value, np.integer): + return int(value) + if isinstance(value, np.ndarray): + return _encode_value(value.tolist()) + if isinstance(value, (list, tuple)): + return [_encode_value(item) for item in value] + if isinstance(value, Mapping): + return {str(key): _encode_value(item) for key, item in value.items()} + raise TypeError(f"Value of type {type(value).__name__} is not JSON serializable.") + + +def _decode_value(value: Any) -> Any: + if isinstance(value, list): + return [_decode_value(item) for item in value] + if isinstance(value, dict): + if set(value) == {"$float"}: + special = value["$float"] + if special == "inf": + return math.inf + if special == "-inf": + return -math.inf + if special == "nan": + return math.nan + raise ValueError(f"Unknown encoded float {special!r}.") + return {key: _decode_value(item) for key, item in value.items()} + return value + + +def _array_or_none(value: Any) -> np.ndarray | None: + if value is None: + return None + return np.asarray(_decode_value(value), dtype=float) + + +def algorithm_to_dict( + design: Any, *, metadata: Mapping[str, Any] | None = None +) -> dict[str, Any]: + """Convert a decoded ``Design`` to the stable JSON schema.""" + operator = getattr(design, "operator_pheno", None) + parameter = getattr(design, "parameter_pheno", None) + if not operator or not parameter or not operator[0] or not parameter[0]: + raise ValueError("The algorithm must be decoded before it can be exported.") + pathways = operator[0] + pathway_parameters = parameter[0] + if len(pathways) != len(pathway_parameters): + raise ValueError("Operator and parameter pathway counts do not match.") + + records = [] + for pathway, params in zip(pathways, pathway_parameters): + searches = [] + if len(pathway.search) != len(params.search): + raise ValueError("Search-step and parameter counts do not match.") + for step, step_params in zip(pathway.search, params.search): + searches.append( + { + "primary": step.primary, + "secondary": step.secondary, + "termination": _encode_value( + np.asarray(step.termination, dtype=float) + ), + "primary_parameter": _encode_value(step_params.primary), + "secondary_parameter": _encode_value(step_params.secondary), + } + ) + records.append( + { + "choose": pathway.choose, + "choose_parameter": _encode_value(params.choose), + "search": searches, + "update": pathway.update, + "update_parameter": _encode_value(params.update), + "archive": list(pathway.archive), + } + ) + + return { + "schema": SCHEMA_NAME, + "schema_version": SCHEMA_VERSION, + "autooptlib_version": __version__, + "metadata": _encode_value(dict(metadata or {})), + "pathways": records, + } + + +def algorithm_from_dict(document: Mapping[str, Any]): + """Validate and construct a ``Design`` from the stable JSON schema.""" + if document.get("schema") != SCHEMA_NAME: + raise ValueError(f"Expected schema {SCHEMA_NAME!r}.") + if document.get("schema_version") != SCHEMA_VERSION: + raise ValueError( + f"Unsupported algorithm schema version {document.get('schema_version')!r}; " + f"expected {SCHEMA_VERSION}." + ) + records = document.get("pathways") + if not isinstance(records, list) or not records: + raise ValueError("Algorithm document must contain at least one pathway.") + + pathways = [] + pathway_parameters = [] + for index, record in enumerate(records): + if not isinstance(record, Mapping): + raise TypeError(f"Pathway {index} must be an object.") + choose = record.get("choose") + update = record.get("update") + if not isinstance(choose, str) or not isinstance(update, str): + raise TypeError( + f"Pathway {index} must define string choose and update names." + ) + get_component(choose) + get_component(update) + + steps = [] + step_parameters = [] + search_records = record.get("search") + if not isinstance(search_records, list) or not search_records: + raise ValueError(f"Pathway {index} must contain at least one search step.") + for step_index, step_record in enumerate(search_records): + if not isinstance(step_record, Mapping): + raise TypeError( + f"Search step {step_index} in pathway {index} must be an object." + ) + primary = step_record.get("primary") + secondary = step_record.get("secondary") + if not isinstance(primary, str): + raise TypeError("Search steps require a string primary component name.") + if secondary is not None and not isinstance(secondary, str): + raise TypeError("Secondary component names must be strings or null.") + get_component(primary) + if secondary: + get_component(secondary) + termination = _array_or_none(step_record.get("termination")) + if termination is None or termination.size == 0: + raise ValueError("Search steps require a non-empty termination vector.") + steps.append(SearchStep(primary, termination.reshape(-1), secondary)) + step_parameters.append( + SearchParam( + _array_or_none(step_record.get("primary_parameter")), + _array_or_none(step_record.get("secondary_parameter")), + ) + ) + + archive = record.get("archive", []) + if not isinstance(archive, list) or not all( + isinstance(name, str) for name in archive + ): + raise TypeError("archive must be a list of component names.") + for name in archive: + get_component(name) + pathways.append(Pathway(choose, steps, update, archive)) + pathway_parameters.append( + PathwayParam( + _array_or_none(record.get("choose_parameter")), + step_parameters, + _array_or_none(record.get("update_parameter")), + ) + ) + + from .utils.design import Design + + design = Design() + design.construct([pathways], [pathway_parameters]) + return design + + +def save_algorithm( + design: Any, + path: str | Path, + *, + metadata: Mapping[str, Any] | None = None, +) -> Path: + """Write an algorithm as UTF-8 JSON and return the resolved path.""" + target = Path(path).resolve() + target.parent.mkdir(parents=True, exist_ok=True) + document = algorithm_to_dict(design, metadata=metadata) + with target.open("w", encoding="utf-8") as handle: + json.dump(document, handle, indent=2, ensure_ascii=False, allow_nan=False) + handle.write("\n") + return target + + +def load_algorithm(path: str | Path): + """Load and validate an algorithm JSON document.""" + source = Path(path).resolve() + with source.open("r", encoding="utf-8") as handle: + document = json.load(handle) + if not isinstance(document, Mapping): + raise TypeError("Algorithm JSON root must be an object.") + return algorithm_from_dict(document) + + +__all__ = [ + "SCHEMA_NAME", + "SCHEMA_VERSION", + "algorithm_from_dict", + "algorithm_to_dict", + "load_algorithm", + "save_algorithm", +] diff --git a/src/autooptlib/utils/__init__.py b/src/autooptlib/utils/__init__.py index 1917a8e..85dd281 100644 --- a/src/autooptlib/utils/__init__.py +++ b/src/autooptlib/utils/__init__.py @@ -5,5 +5,6 @@ except Exception: # pylint: disable=broad-except select = None # type: ignore -__all__ = [name for name in ("select",) if name in globals() and globals()[name] is not None] - +__all__ = [ + name for name in ("select",) if name in globals() and globals()[name] is not None +] diff --git a/src/autooptlib/utils/design/__init__.py b/src/autooptlib/utils/design/__init__.py index 2eda5fc..17078e4 100644 --- a/src/autooptlib/utils/design/__init__.py +++ b/src/autooptlib/utils/design/__init__.py @@ -6,6 +6,7 @@ import numpy as np +from ._approximate import Approximate from ._decode import decode as _decode from ._disturb import disturb as _disturb from ._estimate import estimate as _estimate @@ -13,7 +14,6 @@ from ._helpers import get_flex, problem_list from ._initialize import initialize as _initialize from ._repair import repair as _repair -from ._approximate import Approximate __all__ = ["Design", "Approximate"] @@ -78,7 +78,9 @@ def get_new(self, problem: Any, setting: Any, inner_g: int, aux: Any): new_design.last_runs = {idx: [None] * alg_runs for idx in range(len(problems))} # disturb returns lists; for a single algorithm pick the first entry - aux_result = aux_out[0] if isinstance(aux_out, Sequence) and aux_out else aux_out + aux_result = ( + aux_out[0] if isinstance(aux_out, Sequence) and aux_out else aux_out + ) return new_design, aux_result def get_performance(self, setting: Any, seed_instance: Iterable[int]) -> np.ndarray: @@ -86,9 +88,11 @@ def get_performance(self, setting: Any, seed_instance: Iterable[int]) -> np.ndar seeds = list(seed_instance) alg_runs = _get_alg_runs(setting) if ( - get_flex(setting, "Evaluate", get_flex(setting, "evaluate", "exact")) == "approximate" + get_flex(setting, "Evaluate", get_flex(setting, "evaluate", "exact")) + == "approximate" and self.performance_approx.size - and not self.performance.size + and np.any(self.performance_approx != 0) + and not np.any(self.performance != 0) ): data = self.performance_approx[seeds, :] else: @@ -104,27 +108,27 @@ def ave_perform_all(self) -> np.ndarray: """Average actual performance across instances and runs.""" if self.performance.size == 0: return np.array([]) - return np.mean(self.performance, axis=1) + return np.array([float(np.mean(self.performance))]) def ave_perform_approx_all(self) -> np.ndarray: """Average approximate performance across instances and runs.""" if self.performance_approx.size == 0: return np.array([]) - return np.mean(self.performance_approx, axis=1) + return np.array([float(np.mean(self.performance_approx))]) def ave_perform_per(self, indices: Iterable[int]) -> np.ndarray: """Average actual performance over selected instances.""" if self.performance.size == 0: return np.array([]) idx = np.atleast_1d(list(indices)) - return np.mean(self.performance[idx, :], axis=1) + return np.array([float(np.mean(self.performance[idx, :]))]) def ave_perform_approx_per(self, indices: Iterable[int]) -> np.ndarray: """Average approximate performance over selected instances.""" if self.performance_approx.size == 0: return np.array([]) idx = np.atleast_1d(list(indices)) - return np.mean(self.performance_approx[idx, :], axis=1) + return np.array([float(np.mean(self.performance_approx[idx, :]))]) # Bind external implementations as instance methods --------------------- disturb = _disturb diff --git a/src/autooptlib/utils/design/_approximate.py b/src/autooptlib/utils/design/_approximate.py index 7191003..83b1313 100644 --- a/src/autooptlib/utils/design/_approximate.py +++ b/src/autooptlib/utils/design/_approximate.py @@ -3,11 +3,12 @@ from __future__ import annotations import math -from typing import Any, Iterable, List, Sequence, TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Iterable, List, Sequence import numpy as np from ._embedding import embedding +from ._helpers import ensure_rng if TYPE_CHECKING: from . import Design @@ -45,14 +46,14 @@ def predict(self, x: np.ndarray) -> np.ndarray: return preds -def _mean_performance(alg: 'Design') -> float: +def _mean_performance(alg: "Design") -> float: values = alg.ave_perform_all() if values.size == 0: return np.inf return float(np.mean(values)) -def _mean_performance_approx(alg: 'Design') -> float: +def _mean_performance_approx(alg: "Design") -> float: values = alg.ave_perform_approx_all() if values.size == 0: return np.inf @@ -62,56 +63,78 @@ def _mean_performance_approx(alg: 'Design') -> float: class Approximate: """Python translation of MATLAB Approximate class.""" - def __init__(self, problem: Any, data: Any, setting: Any, ind_instance: Sequence[int]): + def __init__( + self, problem: Any, data: Any, setting: Any, ind_instance: Sequence[int] + ): from . import Design - self.data: List['Design'] = [] + self.data: List["Design"] = [] self.embedding = None - self.model: _KNNModel | None = None + self.model: Any = None self.rand_seed: np.ndarray self.exact_g: np.ndarray alg_p = int(getattr(setting, "AlgP", getattr(setting, "alg_p", 1))) alg_q = int(getattr(setting, "AlgQ", getattr(setting, "alg_q", 1))) total = (alg_q + 2) * 3 if alg_p == 1 else (alg_p + 2) * 3 - self.rand_seed = np.random.permutation(total) + self.rand_seed = ensure_rng(setting).permutation(total) - exact_gmax = float(getattr(setting, "Surro", getattr(setting, "surro", 0))) + exact_budget = int(getattr(setting, "Surro", getattr(setting, "surro", 0))) alg_n = int(getattr(setting, "AlgN", getattr(setting, "alg_n", 1))) - alg_gmax = int(math.ceil(getattr(setting, "AlgFE", getattr(setting, "alg_fe", alg_n)) / alg_n)) - step = alg_gmax / max(exact_gmax, 1.0) if exact_gmax else alg_gmax + alg_fe = int(getattr(setting, "AlgFE", getattr(setting, "alg_fe", alg_n))) + alg_gmax = max(1, int(math.ceil(alg_fe / alg_n))) + step = alg_gmax / max(exact_budget, 1) if exact_budget else alg_gmax self.exact_g = np.arange(1, alg_gmax + 1, max(1, int(round(step)))) seeds = list(ind_instance) - train_algs_exact: List['Design'] = [] - for _ in range(500): + train_algs_exact: List["Design"] = [] + # Surrogate initialization is part of AlgFE. The previous fixed pool + # of 500 exact algorithms made small experiments silently perform + # thousands of additional objective evaluations. + training_count = min(alg_fe, max(alg_n, exact_budget)) + self.initial_evaluations = training_count + for _ in range(training_count): alg = Design(problem, setting) alg.evaluate(problem, data, setting, seeds) train_algs_exact.append(alg) self.data = train_algs_exact - train_algs_embed = [Design(problem, setting) for _ in range(1000)] + embedding_count = max(30, 3 * training_count) + train_algs_embed = [Design(problem, setting) for _ in range(embedding_count)] self.embedding = self.GetEmbed(train_algs_embed, setting) self.model = self.GetModel(self.data, setting) # Methods mirroring MATLAB class --------------------------------------- - def GetEmbed(self, data: Iterable['Design'], setting: Any): + def GetEmbed(self, data: Iterable["Design"], setting: Any): return embedding(list(data), setting, self, "get") - def UseEmbed(self, data: Iterable['Design'], setting: Any) -> np.ndarray: + def UseEmbed(self, data: Iterable["Design"], setting: Any) -> np.ndarray: return embedding(list(data), setting, self, "use") - def use_embed(self, data: Iterable['Design'], setting: Any) -> np.ndarray: + def use_embed(self, data: Iterable["Design"], setting: Any) -> np.ndarray: return self.UseEmbed(data, setting) - def GetModel(self, data: Iterable['Design'], setting: Any) -> _KNNModel: - embed_algs = self.UseEmbed(list(data), setting) - labels = np.array([_mean_performance(alg) for alg in data], dtype=float) - model = _KNNModel() + def GetModel(self, data: Iterable["Design"], setting: Any) -> Any: + algorithms = list(data) + embed_algs = self.UseEmbed(algorithms, setting) + labels = np.array([_mean_performance(alg) for alg in algorithms], dtype=float) + try: + from sklearn.ensemble import RandomForestRegressor + + model = RandomForestRegressor( + n_estimators=1000, + min_samples_leaf=5, + random_state=getattr(setting, "Seed", getattr(setting, "seed", None)), + n_jobs=1, + ) + except ImportError: + # Keep approximate mode usable in the NumPy-only core install; + # ``autooptlib[surrogate]`` activates the reference RF model. + model = _KNNModel() model.fit(embed_algs, labels) return model - def UpdateModel(self, algs: Sequence['Design'], setting: Any): + def UpdateModel(self, algs: Sequence["Design"], setting: Any): n = len(algs) actual = np.array([_mean_performance(alg) for alg in algs], dtype=float) approx = np.array([_mean_performance_approx(alg) for alg in algs], dtype=float) @@ -127,6 +150,8 @@ def UpdateModel(self, algs: Sequence['Design'], setting: Any): self.model = self.GetModel(self.data, setting) return self - def UseModel(self, algs: Sequence['Design'], setting: Any) -> np.ndarray: + def UseModel(self, algs: Sequence["Design"], setting: Any) -> np.ndarray: features = self.UseEmbed(algs, setting) - return self.model.predict(features) if self.model else np.zeros(features.shape[0]) + return ( + self.model.predict(features) if self.model else np.zeros(features.shape[0]) + ) diff --git a/src/autooptlib/utils/design/_decode.py b/src/autooptlib/utils/design/_decode.py index bd7854c..015ae19 100644 --- a/src/autooptlib/utils/design/_decode.py +++ b/src/autooptlib/utils/design/_decode.py @@ -50,9 +50,7 @@ def decode(operators, paras, problem: Any, setting: Any): pathways.append( Pathway(choose="", search=[], update="", archive=list(archive)) ) - pathway_params.append( - PathwayParam(choose=None, search=[], update=None) - ) + pathway_params.append(PathwayParam(choose=None, search=[], update=None)) continue choose_idx = int(matrix[0, 0]) @@ -88,7 +86,11 @@ def decode(operators, paras, problem: Any, setting: Any): secondary_param = None termination = np.array([rate, inner_g_max], dtype=float) - if primary_idx in ind_cross and row < matrix.shape[0] and matrix[row, 1] in ind_mu: + if ( + primary_idx in ind_cross + and row < matrix.shape[0] + and matrix[row, 1] in ind_mu + ): secondary_idx = int(matrix[row, 1]) secondary_name = all_op[secondary_idx - 1] if secondary_idx - 1 < len(paras[algo_idx]): @@ -119,7 +121,11 @@ def decode(operators, paras, problem: Any, setting: Any): row += 1 search_steps.append( - SearchStep(primary=primary_name, secondary=secondary_name, termination=termination) + SearchStep( + primary=primary_name, + secondary=secondary_name, + termination=termination, + ) ) search_params.append( SearchParam(primary=primary_param, secondary=secondary_param) @@ -145,4 +151,3 @@ def decode(operators, paras, problem: Any, setting: Any): para_pheno.append(pathway_params) return op_pheno, para_pheno - diff --git a/src/autooptlib/utils/design/_disturb.py b/src/autooptlib/utils/design/_disturb.py index 881bb3f..23da8e0 100644 --- a/src/autooptlib/utils/design/_disturb.py +++ b/src/autooptlib/utils/design/_disturb.py @@ -34,23 +34,35 @@ def _copy_parameter_structure(parameter: Sequence[Any]) -> List[List[Any]]: return copied -def _gather_operator_positions(paths: List[np.ndarray]) -> Tuple[List[Tuple[str, int, int]], List[int]]: +def _gather_operator_positions( + paths: List[np.ndarray], +) -> Tuple[List[Tuple[str, int, int]], List[int]]: positions: List[Tuple[str, int, int]] = [] values: List[int] = [] + if not paths or paths[0].size == 0: + return positions, values + # Choose and update are shared by all pathways in the reference encoding; + # only search operators are pathway-specific. + positions.append(("choose", 0, 0)) + values.append(_as_int(paths[0][0, 0])) for path_idx, path in enumerate(paths): if path.size == 0: continue - positions.append(("choose", path_idx, 0)) - values.append(_as_int(path[0, 0])) for row in range(1, path.shape[0]): positions.append(("search", path_idx, row)) values.append(_as_int(path[row, 0])) - positions.append(("update", path_idx, path.shape[0] - 1)) - values.append(_as_int(path[-1, -1])) + positions.append(("update", 0, paths[0].shape[0] - 1)) + values.append(_as_int(paths[0][-1, -1])) return positions, values -def _disturb_search_single(path: np.ndarray, row_idx: int, rng: np.random.Generator, op_space: np.ndarray, alg_q: int) -> np.ndarray: +def _disturb_search_single( + path: np.ndarray, + row_idx: int, + rng: np.random.Generator, + op_space: np.ndarray, + alg_q: int, +) -> np.ndarray: pool = np.arange(op_space[1, 0], op_space[1, 1] + 1) current = _as_int(path[row_idx, 0]) pool = pool[pool != current] @@ -83,7 +95,9 @@ def _disturb_search_single(path: np.ndarray, row_idx: int, rng: np.random.Genera return path -def _disturb_search_multi(path: np.ndarray, rng: np.random.Generator, op_space: np.ndarray, alg_q: int) -> np.ndarray: +def _disturb_search_multi( + path: np.ndarray, rng: np.random.Generator, op_space: np.ndarray, alg_q: int +) -> np.ndarray: choose_idx = _as_int(path[0, 0]) update_idx = _as_int(path[-1, -1]) curr_q = int(rng.integers(1, alg_q + 1)) @@ -102,18 +116,27 @@ def _disturb_search_multi(path: np.ndarray, rng: np.random.Generator, op_space: return new_path -def disturb(algs: Any, setting: Any, inner_g: int, aux: Any) -> Tuple[List[List[np.ndarray]], List[List[List[Any]]], Any]: +def disturb( + algs: Any, setting: Any, inner_g: int, aux: Any +) -> Tuple[List[List[np.ndarray]], List[List[List[Any]]], Any]: alg_list = _ensure_alg_list(algs) rng = ensure_rng(setting) op_space = np.asarray(get_flex(setting, "op_space", required=True), dtype=int) para_space = list(get_flex(setting, "para_space", required=True)) - para_local_space = list(get_flex(setting, "para_local_space", default=[None] * len(para_space))) + para_local_space = list( + get_flex(setting, "para_local_space", default=[None] * len(para_space)) + ) alg_p = int(get_flex(setting, "alg_p", required=True)) alg_q = int(get_flex(setting, "alg_q", required=True)) + alg_n = int(get_flex(setting, "alg_n", 1)) tune_para = bool(get_flex(setting, "tune_para", False)) - ind_non_empty_para = [idx for idx, space in enumerate(para_space) if space is not None and len(space) > 0] + ind_non_empty_para = [ + idx + for idx, space in enumerate(para_space) + if space is not None and len(space) > 0 + ] aux_list: List[Any] if aux is None: @@ -132,7 +155,9 @@ def disturb(algs: Any, setting: Any, inner_g: int, aux: Any) -> Tuple[List[List[ this_op_raw = getattr(alg, "operator", None) this_para_raw = getattr(alg, "parameter", None) if this_op_raw is None or this_para_raw is None: - raise ValueError("Algorithm must provide operator and parameter fields for disturb().") + raise ValueError( + "Algorithm must provide operator and parameter fields for disturb()." + ) paths = [np.array(path, copy=True) for path in this_op_raw] this_para = _copy_parameter_structure(this_para_raw) @@ -144,15 +169,27 @@ def disturb(algs: Any, setting: Any, inner_g: int, aux: Any) -> Tuple[List[List[ aux_entry = aux_list[idx] if isinstance(aux_list[idx], dict) else {} if inner_g == 1: - num_choices = total_ops + (1 if ind_para else 0) + num_choices = total_ops + 1 if not tune_para and num_choices > 0: - probs = np.ones(num_choices, dtype=float) - probs /= probs.sum() - seed = int(rng.choice(num_choices, p=probs)) + 1 + unit = 1.0 / max(1, total_ops + len(ind_para)) + probs = np.concatenate( + [np.full(total_ops, unit), np.array([unit * len(ind_para)])] + ) + if op_space[0, 0] == op_space[0, 1] and total_ops: + probs[0] = 0.0 + if op_space[1, 0] == op_space[1, 1] and total_ops > 2: + probs[1:-1] = 0.0 + if op_space[2, 0] == op_space[2, 1] and total_ops: + probs[total_ops - 1] = 0.0 + if probs.sum() > 0: + probs /= probs.sum() + seed = int(rng.choice(num_choices, p=probs)) + 1 + else: + seed = total_ops + 1 elif tune_para and ind_para: seed = total_ops + 1 else: - seed = 1 + seed = total_ops + 1 aux_entry["seed"] = seed else: seed = int(aux_entry.get("seed", total_ops + 1)) @@ -166,16 +203,16 @@ def disturb(algs: Any, setting: Any, inner_g: int, aux: Any) -> Tuple[List[List[ pool = pool[pool != current] if pool.size > 0: new_idx = _as_int(rng.choice(pool)) - path[0, 0] = new_idx - paths[path_idx] = path + for shared_path in paths: + shared_path[0, 0] = new_idx elif category == "update": pool = np.arange(op_space[2, 0], op_space[2, 1] + 1) current = _as_int(path[-1, -1]) pool = pool[pool != current] if pool.size > 0: new_idx = _as_int(rng.choice(pool)) - path[-1, -1] = new_idx - paths[path_idx] = path + for shared_path in paths: + shared_path[-1, -1] = new_idx else: # search if alg_p == 1: path = _disturb_search_single(path, row_idx, rng, op_space, alg_q) @@ -185,27 +222,65 @@ def disturb(algs: Any, setting: Any, inner_g: int, aux: Any) -> Tuple[List[List[ else: if not ind_para: seed = total_ops + 1 + active_parameters: list[tuple[int, np.ndarray, np.ndarray]] = [] for para_idx in ind_para: entry = this_para[para_idx] values = entry[0] if values is None: continue behavior = entry[1] - space = para_local_space[para_idx] if (behavior != "GS" and para_local_space[para_idx] is not None) else para_space[para_idx] + space = ( + para_local_space[para_idx] + if (behavior != "GS" and para_local_space[para_idx] is not None) + else para_space[para_idx] + ) if space is None: continue bounds = np.asarray(space, dtype=float) if bounds.ndim == 1: bounds = bounds.reshape(-1, 2) - lower = bounds[:, 0] - upper = bounds[:, 1] - entry[0] = lower + (upper - lower) * rng.random(lower.shape) - this_para[para_idx] = entry + values = np.asarray(values, dtype=float).reshape(-1) + if bounds.shape[0] != values.size: + raise ValueError( + f"Parameter {para_idx + 1} has {values.size} values but " + f"{bounds.shape[0]} bound rows" + ) + active_parameters.append((para_idx, values, bounds)) + + if active_parameters: + current = np.concatenate( + [item[1] for item in active_parameters] + ).reshape(1, -1) + lower = np.concatenate([item[2][:, 0] for item in active_parameters]) + upper = np.concatenate([item[2][:, 1] for item in active_parameters]) + bounds = np.vstack((lower, upper)) + + # Match the original bi-level design procedure: CMA-ES keeps + # state while tuning one algorithm; population-level design + # uses polynomial mutation for independent proposals. + component_aux = dict(aux_entry) + component_aux["rng"] = rng + if alg_n == 1: + candidate, component_aux = get_component("search_cma")( + current, bounds, component_aux, "algorithm" + ) + aux_entry.update(component_aux) + else: + candidate, _ = get_component("search_mu_polynomial")( + current, bounds, component_aux, "algorithm" + ) + + candidate = np.clip( + np.asarray(candidate, dtype=float).reshape(-1), lower, upper + ) + offset = 0 + for para_idx, values, _ in active_parameters: + width = values.size + this_para[para_idx][0] = candidate[offset : offset + width].copy() + offset += width new_ops.append(paths) new_paras.append(this_para) aux_list[idx] = aux_entry return new_ops, new_paras, aux_list - - diff --git a/src/autooptlib/utils/design/_embedding.py b/src/autooptlib/utils/design/_embedding.py index c18173f..f4a2dd9 100644 --- a/src/autooptlib/utils/design/_embedding.py +++ b/src/autooptlib/utils/design/_embedding.py @@ -8,6 +8,7 @@ def _normalize(vec: np.ndarray) -> np.ndarray: + vec = np.nan_to_num(np.asarray(vec, dtype=float), nan=0.0, posinf=1e6, neginf=-1e6) vmin = np.min(vec) vmax = np.max(vec) if np.isclose(vmax, vmin): @@ -51,7 +52,9 @@ def _vectorize_single_path(alg: Any, setting: Any, rand_seed: np.ndarray) -> np. entry = None parameter[:, idx] = _extract_parameter_values(entry, max_len=2) - parameter_flat = parameter.reshape(1, -1) + # MATLAB linearizes matrices column-by-column. The embedding learned for + # the reference implementation therefore depends on Fortran ordering. + parameter_flat = parameter.reshape(1, -1, order="F") operator_norm = _normalize(operator) vector = np.concatenate([operator_norm, parameter_flat.ravel()]) shuffled = vector[rand_seed] @@ -72,16 +75,22 @@ def _vectorize_multi_path(alg: Any, setting: Any, rand_seed: np.ndarray) -> np.n parameter = np.zeros((2, alg_p + 2), dtype=float) choose_idx = int(operator[0]) if choose_idx > 0 and choose_idx - 1 < len(alg.parameter): - parameter[:, 0] = _extract_parameter_values(alg.parameter[choose_idx - 1], max_len=2) + parameter[:, 0] = _extract_parameter_values( + alg.parameter[choose_idx - 1], max_len=2 + ) for j in range(alg_p): op_idx = int(operator[j + 1]) if op_idx > 0 and op_idx - 1 < len(alg.parameter): - parameter[:, j + 1] = _extract_parameter_values(alg.parameter[op_idx - 1], max_len=2) + parameter[:, j + 1] = _extract_parameter_values( + alg.parameter[op_idx - 1], max_len=2 + ) update_idx = int(operator[-1]) if update_idx > 0 and update_idx - 1 < len(alg.parameter): - parameter[:, -1] = _extract_parameter_values(alg.parameter[update_idx - 1], max_len=2) + parameter[:, -1] = _extract_parameter_values( + alg.parameter[update_idx - 1], max_len=2 + ) - parameter_flat = parameter.reshape(1, -1) + parameter_flat = parameter.reshape(1, -1, order="F") lower = 1.0 upper = float(max(len(alg.parameter), 1)) if np.isclose(upper, lower): @@ -128,7 +137,9 @@ def embedding(algs: Sequence[Any], setting: Any, surrogate: Any, mode: str) -> A if embed_map is None: raise ValueError("Surrogate does not provide a precomputed embedding map") temp = np.vstack([VectorAlgs, np.ones((1, VectorAlgs.shape[1]))]) - wx = embed_map[:, :, 0] @ temp + with np.errstate(all="ignore"): + wx = embed_map[:, :, 0] @ temp + wx = np.nan_to_num(wx, nan=0.0, posinf=1e6, neginf=-1e6) rows = len(rand_seed) // 3 argslist = np.zeros((rows, len(alg_list))) for i in range(len(alg_list)): @@ -137,7 +148,9 @@ def embedding(algs: Sequence[Any], setting: Any, surrogate: Any, mode: str) -> A wx = np.tanh(argslist) for i in range(1, embed_map.shape[2]): wx = np.vstack([wx, np.ones((1, wx.shape[1]))]) - wx = embed_map[:, :, i] @ wx + with np.errstate(all="ignore"): + wx = embed_map[:, :, i] @ wx + wx = np.nan_to_num(wx, nan=0.0, posinf=1e6, neginf=-1e6) wx = np.tanh(wx) return wx.T raise ValueError(f"Unsupported mode: {mode}") @@ -163,17 +176,23 @@ def _mda_de(x: np.ndarray, p: float): x_aug = np.vstack([x, np.ones((1, x.shape[1]))]) d_aug = x_aug.shape[0] q = np.concatenate([np.full(d_aug - 1, 1 - p), [1.0]]) - s = x_aug @ x_aug.T + with np.errstate(all="ignore"): + s = x_aug @ x_aug.T + s = np.nan_to_num(s, nan=0.0, posinf=1e12, neginf=-1e12) q_outer = s * (q[:, None] * q[None, :]) diag_idx = np.arange(d_aug) q_outer[diag_idx, diag_idx] = q * np.diag(s) p_mat = s * q[np.newaxis, :] reg = q_outer + 1e-5 * np.eye(d_aug) - w = p_mat[:-1, :] @ np.linalg.pinv(reg) + with np.errstate(all="ignore"): + w = p_mat[:-1, :] @ np.linalg.pinv(reg) + w = np.nan_to_num(w, nan=0.0, posinf=1e6, neginf=-1e6) length = x_aug.shape[1] // 3 h = np.zeros((d_aug - 1, length)) - wx = w @ x_aug + with np.errstate(all="ignore"): + wx = w @ x_aug + wx = np.nan_to_num(wx, nan=0.0, posinf=1e6, neginf=-1e6) for i in range(length): block = wx[:, 3 * i : 3 * i + 3] h[:, i] = np.sum(block, axis=1) / 3.0 @@ -184,12 +203,19 @@ def _mda(x: np.ndarray, p: float): x_aug = np.vstack([x, np.ones((1, x.shape[1]))]) d_aug = x_aug.shape[0] q = np.concatenate([np.full(d_aug - 1, 1 - p), [1.0]]) - s = x_aug @ x_aug.T + with np.errstate(all="ignore"): + s = x_aug @ x_aug.T + s = np.nan_to_num(s, nan=0.0, posinf=1e12, neginf=-1e12) q_outer = s * (q[:, None] * q[None, :]) diag_idx = np.arange(d_aug) q_outer[diag_idx, diag_idx] = q * np.diag(s) p_mat = s * q[np.newaxis, :] reg = q_outer + 1e-5 * np.eye(d_aug) - w = p_mat[:-1, :] @ np.linalg.pinv(reg) - h = np.tanh(w @ x_aug) + with np.errstate(all="ignore"): + w = p_mat[:-1, :] @ np.linalg.pinv(reg) + w = np.nan_to_num(w, nan=0.0, posinf=1e6, neginf=-1e6) + with np.errstate(all="ignore"): + projected = w @ x_aug + projected = np.nan_to_num(projected, nan=0.0, posinf=1e6, neginf=-1e6) + h = np.tanh(projected) return w, h diff --git a/src/autooptlib/utils/design/_estimate.py b/src/autooptlib/utils/design/_estimate.py index fe5d46b..9ab3796 100644 --- a/src/autooptlib/utils/design/_estimate.py +++ b/src/autooptlib/utils/design/_estimate.py @@ -25,7 +25,9 @@ def _predict(model: Any, data: Any): raise AttributeError("Surrogate model lacks a predict method") -def estimate(self, problem: Any, setting: Any, ind_instance: Sequence[int], surrogate: Any): +def estimate( + self, problem: Any, setting: Any, ind_instance: Sequence[int], surrogate: Any +): """Estimate the designed algorithm's performance using a surrogate model.""" algs = [self] embed_algs = _call_use_embed(surrogate, algs, setting) diff --git a/src/autooptlib/utils/design/_evaluate.py b/src/autooptlib/utils/design/_evaluate.py index b8e0322..8b8899b 100644 --- a/src/autooptlib/utils/design/_evaluate.py +++ b/src/autooptlib/utils/design/_evaluate.py @@ -9,15 +9,33 @@ def _ensure_matrix(matrix: np.ndarray, rows: int, cols: int) -> np.ndarray: - if matrix.shape == (rows, cols): + current_rows, current_cols = matrix.shape if matrix.ndim == 2 else (0, 0) + target_rows = max(rows, current_rows) + target_cols = max(cols, current_cols) + if matrix.shape == (target_rows, target_cols): return matrix - new_matrix = np.zeros((rows, cols)) + new_matrix = np.zeros((target_rows, target_cols)) if matrix.size: r, c = matrix.shape - new_matrix[: min(r, rows), : min(c, cols)] = matrix[: min(r, rows), : min(c, cols)] + new_matrix[:r, :c] = matrix return new_matrix +def _auc_score( + fit_history: Sequence[float], tmax: Any, thres: Any, population_size: int +) -> float: + """Reference AUC: reciprocal fraction of FE checkpoints meeting targets.""" + history = np.asarray(fit_history, dtype=float).reshape(-1) + times = np.asarray(tmax if tmax is not None else [], dtype=float).reshape(-1) + thresholds = np.asarray(thres if thres is not None else [], dtype=float).reshape(-1) + if history.size == 0 or times.size == 0 or thresholds.size != times.size: + return np.inf + indices = np.ceil(times / max(1, population_size)).astype(int) - 1 + indices = np.clip(indices, 0, history.size - 1) + success_fraction = float(np.mean(history[indices] <= thresholds)) + return float(1.0 / (success_fraction + np.finfo(float).eps)) + + def _update_sequential(problem, data, best_solution): advance = getattr(problem, "advance_sequence", None) if callable(advance): @@ -52,7 +70,9 @@ def evaluate(self, problem: Any, data: Any, setting: Any, seed_instance: Sequenc rows_needed = max_seed + 1 if evaluate_mode == "approximate": - self.performance_approx = _ensure_matrix(self.performance_approx, rows_needed, runs) + self.performance_approx = _ensure_matrix( + self.performance_approx, rows_needed, runs + ) target = self.performance_approx else: self.performance = _ensure_matrix(self.performance, rows_needed, runs) @@ -63,7 +83,11 @@ def evaluate(self, problem: Any, data: Any, setting: Any, seed_instance: Sequenc data_obj = data_list[seed] if seed < len(data_list) else None problem_type = get_problem_type(problem_obj) or "continuous" behavior = get_flex(problem_obj, "type", [problem_type, "static"]) - mode = behavior[1] if isinstance(behavior, Sequence) and len(behavior) > 1 else "static" + mode = ( + behavior[1] + if isinstance(behavior, Sequence) and len(behavior) > 1 + else "static" + ) for run in range(runs): if mode == "static": @@ -75,12 +99,12 @@ def evaluate(self, problem: Any, data: Any, setting: Any, seed_instance: Sequenc if metric == "quality": value = float(fit_history[-1]) if fit_history else np.inf elif metric == "auc": - history_arr = np.asarray(fit_history, dtype=float) - if history_arr.size == 0: - value = np.inf - else: - normalized = history_arr - history_arr.min() - value = float(np.trapz(normalized, dx=1.0)) + value = _auc_score( + fit_history, + get_flex(setting, "Tmax", None), + get_flex(setting, "Thres", None), + int(get_flex(problem_obj, "N", get_flex(setting, "ProbN", 1))), + ) elif metric == "runtimeFE": value = evaluations elif metric == "runtimeSec": @@ -96,7 +120,12 @@ def evaluate(self, problem: Any, data: Any, setting: Any, seed_instance: Sequenc curr_prob = problem_obj curr_data = data_obj while getattr(curr_data, "continue", False): - result = run_design(pathways, params, curr_prob, curr_data, setting) + # The MATLAB sequential protocol allocates the configured + # ProbFE budget independently to every arriving stage. + stage_setting = setting + result = run_design( + pathways, params, curr_prob, curr_data, stage_setting + ) fit_history = result["fit_history"] best_solution = result["best_solution"] evaluations += result["evaluations"] @@ -104,19 +133,31 @@ def evaluate(self, problem: Any, data: Any, setting: Any, seed_instance: Sequenc if metric == "quality": cumulative += float(fit_history[-1]) if fit_history else np.inf elif metric in {"runtimeFE", "runtimeSec"}: - cumulative += result["elapsed"] if metric == "runtimeSec" else result["evaluations"] + cumulative += ( + result["elapsed"] + if metric == "runtimeSec" + else result["evaluations"] + ) elif metric == "auc": - history_arr = np.asarray(fit_history, dtype=float) - if history_arr.size == 0: - cumulative += np.inf - else: - normalized = history_arr - history_arr.min() - cumulative += float(np.trapz(normalized, dx=1.0)) + cumulative += _auc_score( + fit_history, + get_flex(setting, "Tmax", None), + get_flex(setting, "Thres", None), + int( + get_flex( + curr_prob, + "N", + get_flex(setting, "ProbN", 1), + ) + ), + ) else: cumulative += float(fit_history[-1]) if fit_history else np.inf if best_solution is None: break - curr_prob, curr_data = _update_sequential(curr_prob, curr_data, best_solution) + curr_prob, curr_data = _update_sequential( + curr_prob, curr_data, best_solution + ) if curr_prob is problem_obj and curr_data is data_obj: break if metric == "runtimeFE": @@ -134,4 +175,3 @@ def evaluate(self, problem: Any, data: Any, setting: Any, seed_instance: Sequenc self.performance = target return self - diff --git a/src/autooptlib/utils/design/_helpers.py b/src/autooptlib/utils/design/_helpers.py index bc77a00..ad2d12b 100644 --- a/src/autooptlib/utils/design/_helpers.py +++ b/src/autooptlib/utils/design/_helpers.py @@ -11,30 +11,31 @@ def _name_variants(name: str) -> list[str]: - variants = {name} - variants.add(name.lower()) - variants.add(name.upper()) + # Attribute lookup order matters when a compatibility namespace exposes + # both Python-style and MATLAB-style spellings. Keep the caller's exact + # spelling first and de-duplicate without using an unordered set. + variants = [name, name.lower(), name.upper()] snake = re.sub(r"(? Any: +def get_flex( + obj: Any, name: str, default: Any | None = None, *, required: bool = False +) -> Any: if obj is None: if required: raise AttributeError(f"Cannot read {name!r} from None") @@ -44,6 +45,17 @@ def get_flex(obj: Any, name: str, default: Any | None = None, *, required: bool return obj[candidate] if hasattr(obj, candidate): return getattr(obj, candidate) + # Acronym-heavy legacy names such as ``ProbFE`` cannot be recovered by a + # generic camel-case conversion of ``prob_fe``. Compare a punctuation-free + # form as a final compatibility step. + normalized = re.sub(r"[^a-z0-9]", "", name.lower()) + try: + attributes = obj.keys() if isinstance(obj, dict) else vars(obj).keys() + except TypeError: + attributes = () + for candidate in attributes: + if re.sub(r"[^a-z0-9]", "", str(candidate).lower()) == normalized: + return obj[candidate] if isinstance(obj, dict) else getattr(obj, candidate) if required: raise AttributeError(f"Attribute {name!r} not found on {obj!r}") return default diff --git a/src/autooptlib/utils/design/_initialize.py b/src/autooptlib/utils/design/_initialize.py index b266991..9c11d87 100644 --- a/src/autooptlib/utils/design/_initialize.py +++ b/src/autooptlib/utils/design/_initialize.py @@ -22,7 +22,9 @@ def initialize(setting: Any, n: int): alg_q = int(get_flex(setting, "alg_q", required=True)) operators = [[None for _ in range(alg_p)] for _ in range(alg_count)] - paras: list[list[list[Any]]] = [[None for _ in range(len(para_space))] for _ in range(alg_count)] + paras: list[list[list[Any]]] = [ + [None for _ in range(len(para_space))] for _ in range(alg_count) + ] for i in range(alg_count): ind_choose = int(rng.integers(op_space[0, 0], op_space[0, 1] + 1)) @@ -40,7 +42,11 @@ def initialize(setting: Any, n: int): matrix[-1, :] = (ind_start, ind_update) operators[i][j] = matrix - ind_non_empty_para = [idx + 1 for idx, space in enumerate(para_space) if space is not None and len(space) > 0] + ind_non_empty_para = [ + idx + 1 + for idx, space in enumerate(para_space) + if space is not None and len(space) > 0 + ] temp_para = [[None, None] for _ in range(len(para_space))] for idx in ind_non_empty_para: bounds = np.asarray(para_space[idx - 1], dtype=float) diff --git a/src/autooptlib/utils/design/_repair.py b/src/autooptlib/utils/design/_repair.py index facb37b..928e3aa 100644 --- a/src/autooptlib/utils/design/_repair.py +++ b/src/autooptlib/utils/design/_repair.py @@ -17,13 +17,19 @@ ) -def repair(operators: list[list[np.ndarray]], paras: list[list[list[Any]]], problem: Any, setting: Any): +def repair( + operators: list[list[np.ndarray]], + paras: list[list[list[Any]]], + problem: Any, + setting: Any, +): """Ensure the designed algorithm(s) remain reasonable.""" rng = ensure_rng(setting) all_op = list(get_flex(setting, "all_op", required=True)) - para_local_space = list(get_flex(setting, "para_local_space", default=[None] * len(all_op))) + para_local_space = list( + get_flex(setting, "para_local_space", default=[None] * len(all_op)) + ) behav_space = list(get_flex(setting, "behav_space", default=[None] * len(all_op))) - alg_p = int(get_flex(setting, "alg_p", required=True)) while len(para_local_space) < len(all_op): para_local_space.append(None) @@ -44,14 +50,22 @@ def repair(operators: list[list[np.ndarray]], paras: list[list[list[Any]]], prob for algo_idx, algo_ops in enumerate(operators): curr_ops = [np.array(path, dtype=int, copy=True) for path in algo_ops] - curr_paras = [list(entry) if entry is not None else [None, None] for entry in paras[algo_idx]] + curr_paras = [ + list(entry) if entry is not None else [None, None] + for entry in paras[algo_idx] + ] for path_idx, matrix in enumerate(curr_ops): if matrix.size == 0: continue for row in range(1, matrix.shape[0] - 1): - if ind_cross and matrix[row, 0] in ind_cross and matrix[row, 1] not in ind_mu and ind_mu: + if ( + ind_cross + and matrix[row, 0] in ind_cross + and matrix[row, 1] not in ind_mu + and ind_mu + ): ind_new = int(rng.choice(ind_mu)) matrix[row, 1] = ind_new matrix[row + 1, 0] = ind_new @@ -64,10 +78,27 @@ def repair(operators: list[list[np.ndarray]], paras: list[list[list[Any]]], prob mask = matrix[:, 0] != matrix[:, 1] matrix = matrix[mask] - ind_pso = next((idx + 1 for idx, name in enumerate(all_op) if name == "search_pso"), None) + ind_pso = next( + (idx + 1 for idx, name in enumerate(all_op) if name == "search_pso"), + None, + ) if ind_pso is not None and np.any(matrix == ind_pso): - ind_choose = next((idx + 1 for idx, name in enumerate(all_op) if name == "choose_traverse"), None) - ind_update = next((idx + 1 for idx, name in enumerate(all_op) if name == "update_always"), None) + ind_choose = next( + ( + idx + 1 + for idx, name in enumerate(all_op) + if name == "choose_traverse" + ), + None, + ) + ind_update = next( + ( + idx + 1 + for idx, name in enumerate(all_op) + if name == "update_always" + ), + None, + ) if ind_choose and ind_update: first_matrix = np.array(curr_ops[0], dtype=int, copy=True) if first_matrix.size == 0: @@ -75,13 +106,20 @@ def repair(operators: list[list[np.ndarray]], paras: list[list[list[Any]]], prob first_matrix[0, 0] = ind_choose first_matrix[-1, 1] = ind_update curr_ops[0] = first_matrix - matrix = np.array([[ind_choose, ind_pso], [ind_pso, ind_update]], dtype=int) + matrix = np.array( + [[ind_choose, ind_pso], [ind_pso, ind_update]], dtype=int + ) ind_search = matrix[1:, 0].tolist() for idx in ind_search: set_behavior(curr_paras[idx - 1], "LS") - ind_search = [idx for idx in ind_search if behav_space[idx - 1] is not None and has_global_behavior(behav_space[idx - 1])] + ind_search = [ + idx + for idx in ind_search + if behav_space[idx - 1] is not None + and has_global_behavior(behav_space[idx - 1]) + ] ind_gs: list[int] = [] for idx in ind_search: @@ -107,7 +145,9 @@ def repair(operators: list[list[np.ndarray]], paras: list[list[list[Any]]], prob retain = int(rng.choice(ind_gs)) rows_retain = np.where(matrix[:, 0] == retain)[0] if rows_retain.size > 1: - rows_to_delete = rng.choice(rows_retain, size=rows_retain.size - 1, replace=False) + rows_to_delete = rng.choice( + rows_retain, size=rows_retain.size - 1, replace=False + ) rows_to_delete = np.sort(rows_to_delete) for row in rows_to_delete[::-1]: if row > 0: @@ -130,7 +170,9 @@ def repair(operators: list[list[np.ndarray]], paras: list[list[list[Any]]], prob for idx in list(ind_gs): bounds = para_local_space[idx - 1] if bounds is not None and len(bounds) > 0: - curr_paras[idx - 1][0] = reinit_parameters(np.asarray(bounds, dtype=float), rng) + curr_paras[idx - 1][0] = reinit_parameters( + np.asarray(bounds, dtype=float), rng + ) set_behavior(curr_paras[idx - 1], "LS") else: rows_to_remove = np.where(matrix[:, 0] == idx)[0] diff --git a/src/autooptlib/utils/general/__init__.py b/src/autooptlib/utils/general/__init__.py index a0d01ae..025b040 100644 --- a/src/autooptlib/utils/general/__init__.py +++ b/src/autooptlib/utils/general/__init__.py @@ -1,5 +1,5 @@ +from . import select_stats # noqa: F401 from .improve_rate import improve_rate # noqa: F401 -from .input import input_handler # noqa: F401 +from .input import input_handler, normalize_options # noqa: F401 +from .output import output, write_experiment_manifest # noqa: F401 from .process import process # noqa: F401 -from .output import output # noqa: F401 -from . import select_stats # noqa: F401 diff --git a/src/autooptlib/utils/general/improve_rate.py b/src/autooptlib/utils/general/improve_rate.py index 4f882b2..b300009 100644 --- a/src/autooptlib/utils/general/improve_rate.py +++ b/src/autooptlib/utils/general/improve_rate.py @@ -24,7 +24,9 @@ def _fitness_from_solution(solution: Any) -> float: return base if feasible else (con_sum + 1e8) -def improve_rate(solution: Any, improve: Sequence[float] | None, inner_g: int, typ: str): +def improve_rate( + solution: Any, improve: Sequence[float] | None, inner_g: int, typ: str +): """Compute improvement vector as in MATLAB version. Returns the updated ``improve`` vector of length k+1 (default k=3), where @@ -52,7 +54,9 @@ def improve_rate(solution: Any, improve: Sequence[float] | None, inner_g: int, t items = list(solution) except TypeError: items = [solution] - fitness = np.asarray([_fitness_from_solution(it) for it in items], dtype=float) + fitness = np.asarray( + [_fitness_from_solution(it) for it in items], dtype=float + ) best = float(np.min(fitness)) if fitness.size else float("inf") elif typ == "algorithm": # expect object exposing avePerformAll or similar diff --git a/src/autooptlib/utils/general/input.py b/src/autooptlib/utils/general/input.py index e4cf0aa..5aa9b7f 100644 --- a/src/autooptlib/utils/general/input.py +++ b/src/autooptlib/utils/general/input.py @@ -2,11 +2,15 @@ from __future__ import annotations +import math +import os +import re import warnings +from copy import deepcopy +from numbers import Integral, Real from types import SimpleNamespace from typing import Any, Iterable, Sequence - _PARAM_KEYS = { "AlgP", "AlgQ", @@ -28,9 +32,100 @@ "Surro", "AlgFile", "AlgName", + "Seed", + "TunePara", + "EvalRetries", + "EvalTimeoutSec", + "EvalFailure", + "EvalPenalty", + "EvalCache", + "EvalLog", + "EvalWorkers", + "CheckpointDir", + "CheckpointEvery", + "Resume", +} + +_DATA_KEYS = {"Mode", "Problem", "InstanceTrain", "InstanceTest", "InstanceSolve"} +_PUBLIC_KEYS = _DATA_KEYS | _PARAM_KEYS | {"OutputDir"} +_KEY_LOOKUP = {re.sub(r"[^a-z0-9]", "", key.lower()): key for key in _PUBLIC_KEYS} + +_COMMON_DEFAULTS = { + "AlgP": 1, + "AlgQ": 4, + "Archive": [], + "LSRange": 0.25, + "IncRate": 0.05, + "Metric": "quality", + "Compare": "average", + "Evaluate": "exact", + "TunePara": False, + "Seed": None, + "EvalRetries": 0, + "EvalTimeoutSec": None, + "EvalFailure": "raise", + "EvalPenalty": 1e30, + "EvalCache": False, + "EvalLog": None, + "EvalWorkers": 1, + "CheckpointDir": None, + "CheckpointEvery": 1, + "Resume": False, +} + +_DESIGN_DEFAULTS = { + "ProbN": 20, + "ProbFE": 5000, + "InnerFE": 500, + "AlgN": 10, + "AlgFE": 5000, + "AlgRuns": 5, + "Tmax": None, + "Thres": None, +} + +_SOLVE_DEFAULTS = { + "ProbN": 50, + "ProbFE": 50000, + "AlgRuns": 5, + "AlgFile": "", + "AlgName": "", + "Tmax": None, + "Thres": None, } +def normalize_options(options: dict[str, Any]) -> dict[str, Any]: + """Normalize public keyword spellings and reject unknown options. + + Public keys are case-insensitive and may use underscores, so ``archive``, + ``Archive``, and ``ARCHIVE`` all resolve to ``Archive``. Rejecting unknown + keys prevents experiments from silently running with ignored settings. + """ + normalized: dict[str, Any] = {} + unknown: list[str] = [] + for key, value in options.items(): + if not isinstance(key, str): + unknown.append(repr(key)) + continue + token = re.sub(r"[^a-z0-9]", "", key.lower()) + canonical = _KEY_LOOKUP.get(token) + if canonical is None: + unknown.append(key) + continue + if canonical in normalized: + raise TypeError( + f"AutoOpt option {canonical!r} was supplied more than once through aliases." + ) + normalized[canonical] = value + if unknown: + supported = ", ".join(sorted(_PUBLIC_KEYS)) + raise TypeError( + f"Unknown AutoOpt option(s): {', '.join(unknown)}. Supported options: {supported}." + ) + return normalized + + def _to_sequence(value: Any) -> Sequence[Any]: if isinstance(value, Sequence) and not isinstance(value, (str, bytes)): return value @@ -99,6 +194,19 @@ def input_handler(arguments: Iterable[Any], setting: Any, mode: str): found, value = _find_argument(args, key) if found: setattr(set_ns, key, value) + defaults = dict(_COMMON_DEFAULTS) + defaults.update( + _DESIGN_DEFAULTS if set_ns.Mode == "design" else _SOLVE_DEFAULTS + ) + if set_ns.Mode == "design": + train_found, train = _find_argument(args, "InstanceTrain") + train_count = len(_to_list(train)) if train_found else 1 + defaults["RacingK"] = max(1, int(round(train_count * 0.2))) + prob_fe: Any = getattr(set_ns, "ProbFE", defaults["ProbFE"]) + defaults["Surro"] = max(1, int(math.floor(float(prob_fe) * 0.3 + 0.5))) + for key, value in defaults.items(): + if not hasattr(set_ns, key): + setattr(set_ns, key, deepcopy(value)) return set_ns if mode == "check": @@ -113,16 +221,114 @@ def _check_setting(setting: SimpleNamespace) -> None: if mode not in {"design", "solve"}: raise ValueError('Please set the mode to "design" or "solve".') + retries = getattr(setting, "EvalRetries", 0) + if not isinstance(retries, Integral) or isinstance(retries, bool) or retries < 0: + raise ValueError("EvalRetries must be a non-negative integer.") + timeout = getattr(setting, "EvalTimeoutSec", None) + if timeout is not None and ( + not isinstance(timeout, Real) + or isinstance(timeout, bool) + or not math.isfinite(float(timeout)) + or timeout <= 0 + ): + raise ValueError("EvalTimeoutSec must be a positive finite number or None.") + failure = str(getattr(setting, "EvalFailure", "raise")).lower() + if failure not in {"raise", "penalize"}: + raise ValueError("EvalFailure must be 'raise' or 'penalize'.") + setting.EvalFailure = failure + penalty = getattr(setting, "EvalPenalty", 1e30) + if ( + not isinstance(penalty, Real) + or isinstance(penalty, bool) + or not math.isfinite(float(penalty)) + ): + raise ValueError("EvalPenalty must be a finite numeric scalar.") + if not isinstance(getattr(setting, "EvalCache", False), bool): + raise ValueError("EvalCache must be a boolean.") + eval_log = getattr(setting, "EvalLog", None) + if eval_log is not None and not isinstance(eval_log, (str, os.PathLike)): + raise ValueError("EvalLog must be a filesystem path or None.") + eval_workers = getattr(setting, "EvalWorkers", 1) + if ( + not isinstance(eval_workers, Integral) + or isinstance(eval_workers, bool) + or int(eval_workers) <= 0 + ): + raise ValueError("EvalWorkers must be a positive integer.") + if int(eval_workers) > 1 and timeout is not None: + raise ValueError( + "EvalWorkers greater than 1 cannot currently be combined with " + "EvalTimeoutSec; use one isolation mechanism at a time." + ) + checkpoint_dir = getattr(setting, "CheckpointDir", None) + if checkpoint_dir is not None and not isinstance( + checkpoint_dir, (str, os.PathLike) + ): + raise ValueError("CheckpointDir must be a filesystem path or None.") + checkpoint_every = getattr(setting, "CheckpointEvery", 1) + if ( + not isinstance(checkpoint_every, Integral) + or isinstance(checkpoint_every, bool) + or checkpoint_every <= 0 + ): + raise ValueError("CheckpointEvery must be a positive integer.") + if not isinstance(getattr(setting, "Resume", False), bool): + raise ValueError("Resume must be a boolean.") if mode == "design": - if getattr(setting, "AlgP", 0) > getattr(setting, "AlgQ", 0): - raise ValueError("The number of pathways should not be larger than the number of operators.") + for name in ( + "AlgP", + "AlgQ", + "ProbN", + "ProbFE", + "InnerFE", + "AlgN", + "AlgFE", + "AlgRuns", + ): + value = getattr(setting, name, None) + if not isinstance(value, Integral) or isinstance(value, bool) or value <= 0: + raise ValueError(f"{name} must be a positive integer, got {value!r}.") + if getattr(setting, "AlgP", 0) > 1 and getattr(setting, "AlgQ", 0) > 1: + raise ValueError( + "Use either multiple pathways (AlgP>1) or multiple search " + "operators per pathway (AlgQ>1), not both." + ) if getattr(setting, "AlgN", 0) > getattr(setting, "AlgFE", 0): - raise ValueError("The number of algorithms should not be larger than the evaluation budget.") + raise ValueError( + "The number of algorithms should not be larger than the evaluation budget." + ) if getattr(setting, "AlgRuns", 0) > getattr(setting, "ProbFE", 0): - raise ValueError("The number of runs should not exceed problem evaluations.") + raise ValueError( + "The number of runs should not exceed problem evaluations." + ) + if getattr(setting, "ProbN", 0) > getattr(setting, "ProbFE", 0): + raise ValueError( + "ProbFE must be at least ProbN so the initial population fits the budget." + ) - evaluate = getattr(setting, "Evaluate", "exact") - compare = getattr(setting, "Compare", "average") + evaluate = str(getattr(setting, "Evaluate", "exact")).lower() + compare = str(getattr(setting, "Compare", "average")).lower() + metric_token = str(getattr(setting, "Metric", "quality")).lower() + metric_names = { + "quality": "quality", + "runtimefe": "runtimeFE", + "runtimesec": "runtimeSec", + "auc": "auc", + } + if evaluate not in {"exact", "racing", "intensification", "approximate"}: + raise ValueError( + "Evaluate must be one of: exact, racing, intensification, approximate." + ) + if compare not in {"average", "statistic"}: + raise ValueError("Compare must be 'average' or 'statistic'.") + if metric_token not in metric_names: + raise ValueError( + "Metric must be one of: quality, runtimeFE, runtimeSec, auc." + ) + metric = metric_names[metric_token] + setting.Evaluate = evaluate + setting.Compare = compare + setting.Metric = metric if evaluate == "racing" and compare != "statistic": raise ValueError( 'The "racing" evaluation method should be used with the algorithm comparing method of "statistic".' @@ -135,6 +341,17 @@ def _check_setting(setting: SimpleNamespace) -> None: raise ValueError( 'Please set "Setting.Surro" as the number of exact performance evaluations when using surrogate.' ) + if evaluate == "approximate": + surrogate_budget = getattr(setting, "Surro") + if ( + not isinstance(surrogate_budget, Integral) + or isinstance(surrogate_budget, bool) + or surrogate_budget <= 0 + or surrogate_budget > setting.AlgFE + ): + raise ValueError( + "Surro must be a positive integer no larger than AlgFE." + ) if evaluate == "approximate" and compare == "statistic": raise ValueError( 'It is not necessary to use the "statistic" algorithm comparing method when using the "approximate" evaluation method.' @@ -144,26 +361,44 @@ def _check_setting(setting: SimpleNamespace) -> None: 'Please run the design multiple times (Setting.AlgRuns>1) when using the "statistic" comparsion method.' ) if getattr(setting, "ProbN", 0) < 5 and getattr(setting, "AlgP", 0) > 1: - warnings.warn("It is better to have a large population size if involving the EDA operator", stacklevel=2) - if getattr(setting, "AlgQ", 0) > 4: warnings.warn( - "AlgQ is recommended to be larger than 4 for discrete and permutation problems due to the lack of so many search operators", + "It is better to have a large population size if involving the EDA operator", stacklevel=2, ) - if compare == "statistic": + if getattr(setting, "AlgQ", 0) > 4: warnings.warn( - "It is better to have a large number of training intrances or have a large number of algorithm runs " - "(set AlgRun to a large number), in order to make the statistical test discriminative.", + "AlgQ is recommended to be larger than 4 for discrete and permutation problems due to the lack of so many search operators", stacklevel=2, ) - elif mode == "solve": - if not getattr(setting, "AlgFile", None) and not getattr(setting, "AlgName", None): + for name in ("ProbN", "ProbFE", "AlgRuns"): + value = getattr(setting, name, None) + if not isinstance(value, Integral) or isinstance(value, bool) or value <= 0: + raise ValueError(f"{name} must be a positive integer, got {value!r}.") + if setting.ProbN > setting.ProbFE: + raise ValueError( + "ProbFE must be at least ProbN so the initial population fits the budget." + ) + if not getattr(setting, "AlgFile", None) and not getattr( + setting, "AlgName", None + ): raise ValueError( "Please specify an algorithm file in Setting.AlgFile or specify an algorithm name in Setting.AlgName." ) - metric = getattr(setting, "Metric", "quality") + metric_token = str(getattr(setting, "Metric", "quality")).lower() + metric_names = { + "quality": "quality", + "runtimefe": "runtimeFE", + "runtimesec": "runtimeSec", + "auc": "auc", + } + if metric_token not in metric_names: + raise ValueError( + "Metric must be one of: quality, runtimeFE, runtimeSec, auc." + ) + metric = metric_names[metric_token] + setting.Metric = metric if metric == "runtimeFE": if getattr(setting, "Tmax", None) in (None, []): setting.Tmax = getattr(setting, "ProbFE", None) @@ -174,7 +409,9 @@ def _check_setting(setting: SimpleNamespace) -> None: ) if metric == "runtimeSec": if getattr(setting, "Tmax", None) in (None, []): - raise ValueError('Please set "Setting.Tmax" as the maximum runtime (seconds).') + raise ValueError( + 'Please set "Setting.Tmax" as the maximum runtime (seconds).' + ) if getattr(setting, "Thres", None) in (None, []): raise ValueError( 'Please set "Setting.Thres" as the lowest acceptable performance of the design algorithms, ' diff --git a/src/autooptlib/utils/general/output.py b/src/autooptlib/utils/general/output.py index fc1d914..3bcc336 100644 --- a/src/autooptlib/utils/general/output.py +++ b/src/autooptlib/utils/general/output.py @@ -5,14 +5,81 @@ import csv import json import pickle +import platform +import sys +from datetime import datetime, timezone from pathlib import Path from typing import Any, Iterable, List, Sequence import numpy as np +from ..._version import __version__ +from ...serialization import save_algorithm from ..design import Design +def _manifest_value(value: Any) -> Any: + """Convert public options to stable, bounded JSON metadata.""" + if value is None or isinstance(value, (str, int, float, bool)): + return value + if isinstance(value, Path): + return str(value) + if isinstance(value, np.generic): + return value.item() + if isinstance(value, np.ndarray): + if value.size <= 100: + return value.tolist() + return { + "type": "ndarray", + "shape": list(value.shape), + "dtype": str(value.dtype), + } + if isinstance(value, dict): + return {str(key): _manifest_value(item) for key, item in value.items()} + if isinstance(value, (list, tuple)): + return [_manifest_value(item) for item in value] + if callable(value): + module = getattr(value, "__module__", "") + name = getattr( + value, + "__qualname__", + getattr(value, "__name__", type(value).__name__), + ) + return f"{module}:{name}" if module else name + return {"type": type(value).__name__, "repr": repr(value)[:500]} + + +def write_experiment_manifest( + directory: str | Path | None, *, mode: str, options: dict[str, Any] +) -> Path: + """Atomically write software and normalized invocation provenance.""" + target_directory = _ensure_path(directory or Path.cwd()) + target_directory.mkdir(parents=True, exist_ok=True) + document = { + "schema": "autooptlib.experiment", + "schema_version": 1, + "created_utc": datetime.now(timezone.utc).isoformat(), + "mode": mode, + "software": { + "autooptlib": __version__, + "python": platform.python_version(), + "numpy": np.__version__, + "platform": platform.platform(), + "executable": sys.executable, + }, + "options": { + key: _manifest_value(value) for key, value in sorted(options.items()) + }, + } + target = target_directory / "experiment.json" + temporary = target.with_suffix(".json.tmp") + temporary.write_text( + json.dumps(document, indent=2, sort_keys=True) + "\n", encoding="utf-8" + ) + temporary.replace(target) + return target + + def _ensure_path(path: str | Path) -> Path: return Path(path).resolve() @@ -52,17 +119,27 @@ def _generate_pseudocode(design_obj: Design, alg_index: int, stage: str) -> List desc = f" Search {step_idx}: {step.primary}" if step.secondary: desc += f" -> {step.secondary}" - term = np.asarray(step.termination).reshape(-1) if step.termination is not None else [] + term = ( + np.asarray(step.termination).reshape(-1) + if step.termination is not None + else [] + ) if term.size: desc += f" | termination={term.tolist()}" lines.append(desc) - if params and idx - 1 < len(params) and step_idx - 1 < len(params[idx - 1].search): + if ( + params + and idx - 1 < len(params) + and step_idx - 1 < len(params[idx - 1].search) + ): primary_param = params[idx - 1].search[step_idx - 1].primary secondary_param = params[idx - 1].search[step_idx - 1].secondary if primary_param is not None: lines.append(f" Primary param: {_format_array(primary_param)}") if secondary_param is not None: - lines.append(f" Secondary param: {_format_array(secondary_param)}") + lines.append( + f" Secondary param: {_format_array(secondary_param)}" + ) lines.append(f" Update: {path.update or ''}") if params and idx - 1 < len(params): update_param = params[idx - 1].update @@ -74,7 +151,9 @@ def _generate_pseudocode(design_obj: Design, alg_index: int, stage: str) -> List return lines -def _write_matrix_csv(path: Path, header: Sequence[str], rows: Sequence[Sequence[Any]]) -> None: +def _write_matrix_csv( + path: Path, header: Sequence[str], rows: Sequence[Sequence[Any]] +) -> None: with path.open("w", newline="", encoding="utf-8") as handle: writer = csv.writer(handle) writer.writerow(header) @@ -82,7 +161,14 @@ def _write_matrix_csv(path: Path, header: Sequence[str], rows: Sequence[Sequence writer.writerow(row) -def _output_design(algs: Sequence[Design], alg_trace: Sequence[Design], instance_train: Sequence[Any], instance_test: Sequence[Any], setting: Any, directory: Path) -> None: +def _output_design( + algs: Sequence[Design], + alg_trace: Sequence[Design], + instance_train: Sequence[Any], + instance_test: Sequence[Any], + setting: Any, + directory: Path, +) -> None: algs = list(algs) alg_trace = list(alg_trace) directory.mkdir(parents=True, exist_ok=True) @@ -96,11 +182,21 @@ def _output_design(algs: Sequence[Design], alg_trace: Sequence[Design], instance directory / "ConvergenceCurve.csv", ] _remove_if_exists(files_to_remove) + _remove_if_exists(directory.glob("Algorithm_*.json")) with (directory / "Algs.pkl").open("wb") as handle: pickle.dump({"algs": algs, "trace": alg_trace}, handle) - codes = [_generate_pseudocode(alg, idx + 1, "final") for idx, alg in enumerate(algs)] + for index, algorithm in enumerate(algs, start=1): + save_algorithm( + algorithm, + directory / f"Algorithm_{index}.json", + metadata={"algorithm_index": index}, + ) + + codes = [ + _generate_pseudocode(alg, idx + 1, "final") for idx, alg in enumerate(algs) + ] max_len = max(len(code) for code in codes) if codes else 0 header = [f"Algorithm {idx + 1}" for idx in range(len(codes))] rows = [] @@ -131,7 +227,10 @@ def _output_design(algs: Sequence[Design], alg_trace: Sequence[Design], instance perf_header = ["Instance Index"] + [f"Algorithm {i + 1}" for i in range(len(algs))] _write_matrix_csv(directory / "Algs_perf_final_algs.csv", perf_header, perf_rows) - trace_codes = [_generate_pseudocode(alg, idx + 1, "iteration") for idx, alg in enumerate(alg_trace)] + trace_codes = [ + _generate_pseudocode(alg, idx + 1, "iteration") + for idx, alg in enumerate(alg_trace) + ] if trace_codes: max_len = max(len(code) for code in trace_codes) header = [f"Iteration {idx + 1}" for idx in range(len(trace_codes))] @@ -144,7 +243,9 @@ def _output_design(algs: Sequence[Design], alg_trace: Sequence[Design], instance _write_matrix_csv(directory / "Algs_best_algs_iter.csv", header, rows) trace_rows = [] - trace_header = ["Instance Index"] + [f"Iteration {i + 1}" for i in range(len(alg_trace))] + trace_header = ["Instance Index"] + [ + f"Iteration {i + 1}" for i in range(len(alg_trace)) + ] for idx, instance in enumerate(instance_train): row = [instance] for alg in alg_trace: @@ -155,7 +256,9 @@ def _output_design(algs: Sequence[Design], alg_trace: Sequence[Design], instance value = np.mean(matrix[idx, :]) row.append(value) trace_rows.append(row) - _write_matrix_csv(directory / "Algs_perf_best_algs_iter.csv", trace_header, trace_rows) + _write_matrix_csv( + directory / "Algs_perf_best_algs_iter.csv", trace_header, trace_rows + ) convergence = [] for idx, alg in enumerate(alg_trace): @@ -166,10 +269,18 @@ def _output_design(algs: Sequence[Design], alg_trace: Sequence[Design], instance train_indices = list(range(train_len)) sub = matrix[train_indices, :] convergence.append((idx + 1, float(np.mean(sub)))) - _write_matrix_csv(directory / "ConvergenceCurve.csv", ["Iteration", "Performance"], convergence) - - -def _output_solve(best_solutions: Any, all_solutions: Any, instance: Sequence[Any], setting: Any, directory: Path) -> None: + _write_matrix_csv( + directory / "ConvergenceCurve.csv", ["Iteration", "Performance"], convergence + ) + + +def _output_solve( + best_solutions: Any, + all_solutions: Any, + instance: Sequence[Any], + setting: Any, + directory: Path, +) -> None: directory.mkdir(parents=True, exist_ok=True) files_to_remove = [ directory / "Solutions.pkl", @@ -188,7 +299,9 @@ def _output_solve(best_solutions: Any, all_solutions: Any, instance: Sequence[An constraint_rows = [] num_iterations = len(all_solutions[0]) if all_solutions else 0 - solution_header = ["Instance Index", "Best Solution"] + [f"Iteration {i + 1}" for i in range(num_iterations)] + solution_header = ["Instance Index", "Best Solution"] + [ + f"Iteration {i + 1}" for i in range(num_iterations) + ] for idx, inst in enumerate(instance): best_row = [inst] fit_row = [inst] @@ -217,22 +330,41 @@ def _output_solve(best_solutions: Any, all_solutions: Any, instance: Sequence[An _write_matrix_csv(directory / "Solutions.csv", solution_header, solutions_rows) _write_matrix_csv(directory / "Fitness.csv", solution_header, fitness_rows) - _write_matrix_csv(directory / "ConstraintViolation.csv", solution_header, constraint_rows) + _write_matrix_csv( + directory / "ConstraintViolation.csv", solution_header, constraint_rows + ) alg_runs = int(getattr(setting, "AlgRuns", getattr(setting, "alg_runs", 1))) - fitness_all_header = ["Instance Index", "Mean", "Std"] + [f"Run {i + 1}" for i in range(alg_runs)] + fitness_all_header = ["Instance Index", "Mean", "Std"] + [ + f"Run {i + 1}" for i in range(alg_runs) + ] fitness_all_rows = [] for idx, inst in enumerate(instance): row = [inst] - fits = [best_solutions[idx][run].fit for run in range(alg_runs)] - row.append(float(np.mean(fits))) - row.append(float(np.std(fits))) - row.extend(fits) + fits = np.asarray( + [best_solutions[idx][run].fit for run in range(alg_runs)], dtype=float + ) + finite = fits[np.isfinite(fits)] + if finite.size == fits.size: + mean = float(np.mean(finite)) + std = float(np.std(finite)) + elif finite.size == 0: + mean = float("inf") + std = 0.0 + else: + mean = float("inf") + std = float("inf") + row.extend([mean, std]) + row.extend(fits.tolist()) fitness_all_rows.append(row) - _write_matrix_csv(directory / "Fitness_all_runs.csv", fitness_all_header, fitness_all_rows) + _write_matrix_csv( + directory / "Fitness_all_runs.csv", fitness_all_header, fitness_all_rows + ) -def output(*args, setting: Any, app: Any | None = None, directory: str | Path | None = None): +def output( + *args, setting: Any, app: Any | None = None, directory: str | Path | None = None +): """Main entry replicating MATLAB Output.m behaviour.""" mode = str(getattr(setting, "Mode", getattr(setting, "mode", "design"))).lower() if directory is None: @@ -241,17 +373,25 @@ def output(*args, setting: Any, app: Any | None = None, directory: str | Path | if mode == "design": if len(args) < 4: - raise ValueError("Design mode output requires algs, alg_trace, instance_train, instance_test.") + raise ValueError( + "Design mode output requires algs, alg_trace, instance_train, instance_test." + ) algs, alg_trace, instance_train, instance_test = args[:4] - _output_design(algs, alg_trace, instance_train, instance_test, setting, directory) + _output_design( + algs, alg_trace, instance_train, instance_test, setting, directory + ) return if mode == "solve": if len(args) < 3: - raise ValueError("Solve mode output requires best_solutions, all_solutions, instance.") + raise ValueError( + "Solve mode output requires best_solutions, all_solutions, instance." + ) best_solutions, all_solutions, instance = args[:3] _output_solve(best_solutions, all_solutions, instance, setting, directory) return raise ValueError("Mode must be 'design' or 'solve' for output.") + +__all__ = ["output", "write_experiment_manifest"] diff --git a/src/autooptlib/utils/general/process.py b/src/autooptlib/utils/general/process.py index 110788f..915097c 100644 --- a/src/autooptlib/utils/general/process.py +++ b/src/autooptlib/utils/general/process.py @@ -3,19 +3,21 @@ from __future__ import annotations import math +import pickle +import warnings from pathlib import Path from types import SimpleNamespace from typing import Any, Callable, Iterable, List, Sequence, Tuple import numpy as np +from ...components import get_component +from ...problems.base import validate_constructed_problems from ..design import Approximate, Design -from ..solve import input_algorithm, run_algorithm -from ..design._helpers import problem_list from ..general.improve_rate import improve_rate -from ..space import space -from ...components import get_component from ..select import select as _select_alg +from ..solve import input_algorithm, run_algorithm +from ..space import space def _progress(app: Any, message: str, *, done: bool = False) -> None: @@ -53,7 +55,25 @@ def _normalize_setting(setting: Any) -> SimpleNamespace: return ns -def _resolve_problem_callable(descriptor: Any) -> Callable[[Sequence[Any], Sequence[Any], str], Tuple[Any, Any, Any]]: +def _configure_rng(setting: SimpleNamespace) -> np.random.Generator: + """Attach one seeded generator to all stages of an AutoOptLib run.""" + existing = getattr(setting, "rng", None) + if isinstance(existing, np.random.Generator): + return existing + seed = getattr( + setting, + "seed", + getattr(setting, "random_seed", getattr(setting, "random_state", None)), + ) + rng = np.random.default_rng(seed) + setting.rng = rng + setting.random_seed = seed + return rng + + +def _resolve_problem_callable( + descriptor: Any, +) -> Callable[[Sequence[Any], Sequence[Any], str], Tuple[Any, Any, Any]]: if callable(descriptor): return descriptor if isinstance(descriptor, str): @@ -69,7 +89,9 @@ def _resolve_problem_callable(descriptor: Any) -> Callable[[Sequence[Any], Seque raise TypeError("Unsupported problem descriptor format") -def _build_problem_struct(problem_descriptor: Any, instances: Sequence[Any], setting: SimpleNamespace): +def _build_problem_struct( + problem_descriptor: Any, instances: Sequence[Any], setting: SimpleNamespace +): problems = [] for _ in instances: problems.append( @@ -80,7 +102,9 @@ def _build_problem_struct(problem_descriptor: Any, instances: Sequence[Any], set Gmax=int( math.ceil( getattr(setting, "ProbFE", getattr(setting, "prob_fe", 5000)) - / max(1, getattr(setting, "ProbN", getattr(setting, "prob_n", 20))) + / max( + 1, getattr(setting, "ProbN", getattr(setting, "prob_n", 20)) + ) ) ), ) @@ -92,7 +116,9 @@ def _ensure_algorithm_list(obj: Iterable[Design]) -> List[Design]: return list(obj) -def _select(algs: Sequence[Design], problem: Any, data: Any, setting: Any, seeds: Sequence[int]) -> List[Design]: +def _select( + algs: Sequence[Design], problem: Any, data: Any, setting: Any, seeds: Sequence[int] +) -> List[Design]: return _select_alg(algs, problem, data, setting, seeds) @@ -104,16 +130,111 @@ def _mean_performance(algs: Sequence[Design]) -> np.ndarray: return np.asarray(values, dtype=float) -def _update_cma_parameters(algs: Sequence[Design], problems: Sequence[Any], aux_list: List[Any]) -> List[Any]: +def _update_cma_parameters( + algs: Sequence[Design], problems: Sequence[Any], aux_list: List[Any] +) -> List[Any]: for idx, aux in enumerate(aux_list): if isinstance(aux, dict) and "cma_Disturb" in aux: get_component("para_cma")(algs[idx], problems, aux, "algorithm") return aux_list -def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], instance_test: Sequence[Any], setting: Any, app: Any) -> Tuple[List[Design], List[Design]]: +def _write_design_checkpoint(path: Path, payload: dict[str, Any]) -> None: + """Atomically persist design-mode search state.""" + path.parent.mkdir(parents=True, exist_ok=True) + temporary = path.with_suffix(path.suffix + ".tmp") + with temporary.open("wb") as handle: + pickle.dump(payload, handle, protocol=pickle.HIGHEST_PROTOCOL) + temporary.replace(path) + + +def _load_design_checkpoint( + path: Path, + *, + alg_n: int, + alg_fe: int, + eval_mode: str, + instance_train: Sequence[Any], + instance_test: Sequence[Any], +) -> dict[str, Any]: + warnings.warn( + "Loading an AutoOptLib checkpoint uses pickle and can execute arbitrary " + "code. Resume only checkpoints produced by a trusted run.", + UserWarning, + stacklevel=2, + ) + with path.open("rb") as handle: + payload = pickle.load(handle) + if ( + not isinstance(payload, dict) + or payload.get("schema") != "autooptlib.design-checkpoint" + ): + raise ValueError(f"Invalid AutoOptLib design checkpoint: {path}") + if payload.get("schema_version") != 1: + raise ValueError("Unsupported AutoOptLib design checkpoint schema version.") + expected = { + "alg_n": alg_n, + "alg_fe": alg_fe, + "eval_mode": eval_mode, + "instance_train": list(instance_train), + "instance_test": list(instance_test), + } + for name, value in expected.items(): + if payload.get(name) != value: + raise ValueError( + f"Design checkpoint {name} does not match the current run." + ) + return payload + + +def _design_checkpoint_payload( + *, + algs: Sequence[Design], + alg_trace: Sequence[Design], + surrogate: Any, + evaluated_count: int, + generation: int, + seed_train: Sequence[int], + seed_test: Sequence[int], + rng: np.random.Generator, + inner_state: dict[str, Any] | None, + alg_n: int, + alg_fe: int, + eval_mode: str, + instance_train: Sequence[Any], + instance_test: Sequence[Any], + complete: bool, +) -> dict[str, Any]: + return { + "schema": "autooptlib.design-checkpoint", + "schema_version": 1, + "alg_n": alg_n, + "alg_fe": alg_fe, + "eval_mode": eval_mode, + "instance_train": list(instance_train), + "instance_test": list(instance_test), + "algs": list(algs), + "alg_trace": list(alg_trace), + "surrogate": surrogate, + "evaluated_count": evaluated_count, + "generation": generation, + "seed_train": list(seed_train), + "seed_test": list(seed_test), + "rng_state": rng.bit_generator.state, + "inner_state": inner_state, + "complete": complete, + } + + +def _process_design( + problem_descriptor: Any, + instance_train: Sequence[Any], + instance_test: Sequence[Any], + setting: Any, + app: Any, +) -> Tuple[List[Design], List[Design]]: setting_ns = _normalize_setting(setting) - rng = np.random.default_rng(getattr(setting_ns, "random_seed", None)) + rng = _configure_rng(setting_ns) instance_train = list(instance_train) instance_test = list(instance_test) @@ -122,29 +243,69 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst problems = _build_problem_struct(problem_descriptor, instances, setting_ns) construct_fn = _resolve_problem_callable(problem_descriptor) problems, data, _ = construct_fn(problems, instances, "construct") + validate_constructed_problems(problems, data) setting_ns = space(problems, setting_ns) alg_n = int(getattr(setting_ns, "AlgN", getattr(setting_ns, "alg_n", 1))) alg_fe = int(getattr(setting_ns, "AlgFE", getattr(setting_ns, "alg_fe", alg_n))) - alg_runs = int(getattr(setting_ns, "AlgRuns", getattr(setting_ns, "alg_runs", 1))) - alg_gmax = int(math.ceil(alg_fe / max(1, alg_n))) seed_train = rng.permutation(len(instance_train)).tolist() seed_test = (rng.permutation(len(instance_test)) + len(instance_train)).tolist() - eval_mode = str(getattr(setting_ns, "Evaluate", getattr(setting_ns, "evaluate", "exact"))).lower() + eval_mode = str( + getattr(setting_ns, "Evaluate", getattr(setting_ns, "evaluate", "exact")) + ).lower() + + checkpoint_dir = getattr(setting_ns, "CheckpointDir", None) + checkpoint_path = ( + Path(checkpoint_dir) / "design.pkl" if checkpoint_dir is not None else None + ) + checkpoint_every = int(getattr(setting_ns, "CheckpointEvery", 1)) + resume = bool(getattr(setting_ns, "Resume", False)) + resume_state = None + if resume and checkpoint_path is not None and checkpoint_path.exists(): + resume_state = _load_design_checkpoint( + checkpoint_path, + alg_n=alg_n, + alg_fe=alg_fe, + eval_mode=eval_mode, + instance_train=instance_train, + instance_test=instance_test, + ) _progress(app, "Initializing...") algs: List[Design] = [] surrogate = None - if eval_mode in {"exact", "intensification"}: + # AlgFE follows Process.m: it counts algorithms proposed after the + # initial incumbent population, whose evaluation is initialization cost. + evaluated_count = 0 + alg_trace: List[Design] = [] + G = 1 + pending_inner_state: dict[str, Any] | None = None + + if resume_state is not None: + algs = list(resume_state["algs"]) + alg_trace = list(resume_state["alg_trace"]) + surrogate = resume_state["surrogate"] + evaluated_count = int(resume_state["evaluated_count"]) + G = int(resume_state["generation"]) + seed_train = list(resume_state["seed_train"]) + seed_test = list(resume_state["seed_test"]) + rng.bit_generator.state = resume_state["rng_state"] + pending_inner_state = resume_state.get("inner_state") + if resume_state.get("complete", False): + _progress(app, "Complete", done=True) + return algs[:alg_n], alg_trace + elif eval_mode in {"exact", "intensification"}: for _ in range(alg_n): alg = Design(problems, setting_ns) alg.evaluate(problems, data, setting_ns, seed_train) algs.append(alg) elif eval_mode == "racing": - racing_k = int(getattr(setting_ns, "RacingK", getattr(setting_ns, "racingk", 1))) + racing_k = int( + getattr(setting_ns, "RacingK", getattr(setting_ns, "racingk", 1)) + ) subset = seed_train[: racing_k or 1] for _ in range(alg_n): alg = Design(problems, setting_ns) @@ -155,24 +316,67 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst pool = surrogate.data indices = rng.choice(len(pool), size=min(alg_n, len(pool)), replace=False) algs = [pool[i] for i in indices] + evaluated_count = 0 else: - raise NotImplementedError(f"Evaluation mode '{eval_mode}' is not implemented in Python translation yet.") - - alg_trace: List[Design] = [] - G = 1 + raise NotImplementedError( + f"Evaluation mode '{eval_mode}' is not implemented in Python translation yet." + ) - while G <= alg_gmax: - _progress(app, f"Designing... {100 * G / alg_gmax:.1f}%") - improve = None - inner_g = 1 - aux_list: List[Any] = [None] * len(algs) - inner_gmax = int(math.ceil(alg_fe / max(alg_n, 1) / 10)) if alg_n == 1 else 1 + if checkpoint_path is not None and resume_state is None: + _write_design_checkpoint( + checkpoint_path, + _design_checkpoint_payload( + algs=algs, + alg_trace=alg_trace, + surrogate=surrogate, + evaluated_count=evaluated_count, + generation=G, + seed_train=seed_train, + seed_test=seed_test, + rng=rng, + inner_state=None, + alg_n=alg_n, + alg_fe=alg_fe, + eval_mode=eval_mode, + instance_train=instance_train, + instance_test=instance_test, + complete=False, + ), + ) - while (improve is None or improve[0] >= getattr(setting_ns, "IncRate", getattr(setting_ns, "inc_rate", 0.05))) and inner_g <= inner_gmax: + while evaluated_count < alg_fe: + _progress(app, f"Designing... {100 * evaluated_count / alg_fe:.1f}%") + if pending_inner_state is not None: + improve = pending_inner_state["improve"] + inner_g = int(pending_inner_state["inner_g"]) + aux_list = list(pending_inner_state["aux_list"]) + inner_gmax = int(pending_inner_state["inner_gmax"]) + pending_inner_state = None + else: + improve = None + inner_g = 1 + aux_list = [None] * len(algs) + inner_gmax = int(math.ceil(alg_fe / 10)) if alg_n == 1 else 1 + + while ( + ( + improve is None + or improve[0] + >= getattr(setting_ns, "IncRate", getattr(setting_ns, "inc_rate", 0.05)) + ) + and inner_g <= inner_gmax + and evaluated_count < alg_fe + ): + proposal_count = min(len(algs), alg_fe - evaluated_count) new_algs: List[Design] = [] - for idx, alg in enumerate(algs): - new_alg, aux_list[idx] = alg.get_new(problems, setting_ns, inner_g, aux_list[idx]) + for idx, alg in enumerate(algs[:proposal_count]): + new_alg, aux_list[idx] = alg.get_new( + problems, setting_ns, inner_g, aux_list[idx] + ) new_algs.append(new_alg) + proposed_count = len(new_algs) + if proposed_count == 0: + break if eval_mode == "exact": for new_alg in new_algs: @@ -182,12 +386,16 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst for new_alg in new_algs: new_alg.estimate(problems, setting_ns, seed_train, surrogate) algs = _select(algs + new_algs, problems, data, setting_ns, seed_train) - if surrogate is not None and G in set(int(x) for x in np.asarray(surrogate.exact_g).reshape(-1)): + if surrogate is not None and G in set( + int(x) for x in np.asarray(surrogate.exact_g).reshape(-1) + ): for new_alg in new_algs: new_alg.evaluate(problems, data, setting_ns, seed_train) surrogate.UpdateModel(new_algs, setting_ns) elif eval_mode == "racing": - racing_k = int(getattr(setting_ns, "RacingK", getattr(setting_ns, "racingk", 1))) + racing_k = int( + getattr(setting_ns, "RacingK", getattr(setting_ns, "racingk", 1)) + ) subset = seed_train[: racing_k or 1] for new_alg in new_algs: new_alg.evaluate(problems, data, setting_ns, subset) @@ -198,14 +406,18 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst remaining = remaining[1:] seed_train = rng.permutation(len(instance_train)).tolist() if len(algs) > alg_n: - indices = rng.choice(len(algs), size=len(algs) - alg_n, replace=False) + indices = rng.choice( + len(algs), size=len(algs) - alg_n, replace=False + ) algs = [alg for idx, alg in enumerate(algs) if idx not in indices] elif eval_mode == "intensification": while new_algs and seed_train: subset = [seed_train[0]] for alg in new_algs: alg.evaluate(problems, data, setting_ns, subset) - new_algs = _select(algs + new_algs, problems, data, setting_ns, subset) + new_algs = _select( + algs + new_algs, problems, data, setting_ns, subset + ) seed_train = seed_train[1:] seed_train = rng.permutation(len(instance_train)).tolist() for alg in new_algs: @@ -213,12 +425,17 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst if not np.any(alg.performance[seed, :]): alg.evaluate(problems, data, setting_ns, [seed]) if new_algs: - replace_idx = rng.choice(len(algs), size=min(len(new_algs), len(algs)), replace=False) + replace_idx = rng.choice( + len(algs), size=min(len(new_algs), len(algs)), replace=False + ) for dest, src in zip(replace_idx, new_algs): algs[dest] = src else: - raise NotImplementedError(f"Evaluation mode '{eval_mode}' is not implemented.") + raise NotImplementedError( + f"Evaluation mode '{eval_mode}' is not implemented." + ) + evaluated_count += proposed_count aux_list = _update_cma_parameters(algs, problems, aux_list) perf_values = _mean_performance(algs) @@ -226,20 +443,66 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst improve = improve_rate(wrapper, improve, inner_g, "algorithm") inner_g += 1 G += 1 - if G > alg_gmax: - break best_idx = int(np.argmin(perf_values)) if len(perf_values) else 0 alg_trace.append(algs[best_idx]) - if G > alg_gmax: - break + if checkpoint_path is not None and ( + evaluated_count % checkpoint_every == 0 or evaluated_count >= alg_fe + ): + _write_design_checkpoint( + checkpoint_path, + _design_checkpoint_payload( + algs=algs, + alg_trace=alg_trace, + surrogate=surrogate, + evaluated_count=evaluated_count, + generation=G, + seed_train=seed_train, + seed_test=seed_test, + rng=rng, + inner_state={ + "improve": improve, + "inner_g": inner_g, + "aux_list": aux_list, + "inner_gmax": inner_gmax, + }, + alg_n=alg_n, + alg_fe=alg_fe, + eval_mode=eval_mode, + instance_train=instance_train, + instance_test=instance_test, + complete=False, + ), + ) _progress(app, "Testing...") setting_ns.Evaluate = "exact" + setting_ns.evaluate = "exact" for alg in algs: alg.evaluate(problems, data, setting_ns, seed_test) algs = _select(algs, problems, data, setting_ns, seed_test) + if checkpoint_path is not None: + _write_design_checkpoint( + checkpoint_path, + _design_checkpoint_payload( + algs=algs, + alg_trace=alg_trace, + surrogate=surrogate, + evaluated_count=evaluated_count, + generation=G, + seed_train=seed_train, + seed_test=seed_test, + rng=rng, + inner_state=None, + alg_n=alg_n, + alg_fe=alg_fe, + eval_mode=eval_mode, + instance_train=instance_train, + instance_test=instance_test, + complete=True, + ), + ) _progress(app, "Complete", done=True) return algs[:alg_n], alg_trace @@ -247,13 +510,20 @@ def _process_design(problem_descriptor: Any, instance_train: Sequence[Any], inst def process(problem_descriptor: Any, *args, setting: Any, app: Any | None = None): """Main entry replicating MATLAB Process.m behaviour.""" setting_ns = _normalize_setting(setting) - mode = str(getattr(setting_ns, "Mode", getattr(setting_ns, "mode", "design"))).lower() + _configure_rng(setting_ns) + mode = str( + getattr(setting_ns, "Mode", getattr(setting_ns, "mode", "design")) + ).lower() if mode == "design": if len(args) < 2: - raise ValueError("Design mode requires instance_train and instance_test arguments") + raise ValueError( + "Design mode requires instance_train and instance_test arguments" + ) instance_train, instance_test = args[:2] - return _process_design(problem_descriptor, instance_train, instance_test, setting_ns, app) + return _process_design( + problem_descriptor, instance_train, instance_test, setting_ns, app + ) if mode == "solve": if len(args) < 1: @@ -262,9 +532,12 @@ def process(problem_descriptor: Any, *args, setting: Any, app: Any | None = None problems = _build_problem_struct(problem_descriptor, instance_solve, setting_ns) construct_fn = _resolve_problem_callable(problem_descriptor) problems, data, _ = construct_fn(problems, instance_solve, "construct") + validate_constructed_problems(problems, data) alg, setting_ns = input_algorithm(setting_ns) _progress(app, "Solving...") - best_solutions, all_solutions = run_algorithm(alg, problems, data, app, setting_ns) + best_solutions, all_solutions = run_algorithm( + alg, problems, data, app, setting_ns + ) _progress(app, "Complete", done=True) return best_solutions, all_solutions diff --git a/src/autooptlib/utils/general/select_stats.py b/src/autooptlib/utils/general/select_stats.py index 0542771..ca5aa0d 100644 --- a/src/autooptlib/utils/general/select_stats.py +++ b/src/autooptlib/utils/general/select_stats.py @@ -30,7 +30,9 @@ def friedman_nemenyi(matrix: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: raise ValueError("Input to friedman_nemenyi must be 2-D") n, k = matrix.shape if n < 2 or k < 2: - raise ValueError("Friedman test requires at least two algorithms and two instances") + raise ValueError( + "Friedman test requires at least two algorithms and two instances" + ) ranks = np.apply_along_axis(_rankdata, 1, matrix) avg_ranks = ranks.mean(axis=0) diff --git a/src/autooptlib/utils/select.py b/src/autooptlib/utils/select.py index b5dac36..090dfe6 100644 --- a/src/autooptlib/utils/select.py +++ b/src/autooptlib/utils/select.py @@ -1,4 +1,5 @@ """Selection utilities mirroring MATLAB Select.m.""" + from __future__ import annotations from typing import Any, Iterable, List, Sequence @@ -6,7 +7,7 @@ import numpy as np from .design import Design -from .design._helpers import get_flex +from .design._helpers import ensure_rng, get_flex from .general.select_stats import friedman_nemenyi @@ -16,7 +17,13 @@ def _ensure_design_list(algs: Iterable[Design]) -> List[Design]: return list(algs) -def _require_performance(algs: List[Design], problem: Any, data: Any, setting: Any, seed_instance: Sequence[int]) -> None: +def _require_performance( + algs: List[Design], + problem: Any, + data: Any, + setting: Any, + seed_instance: Sequence[int], +) -> None: evaluate_mode = get_flex(setting, "evaluate", "exact") if evaluate_mode != "racing": return @@ -36,7 +43,9 @@ def _require_performance(algs: List[Design], problem: Any, data: Any, setting: A alg.evaluate(problem, data, setting, [seed]) -def _collect_performance(algs: List[Design], setting: Any, seed_instance: Sequence[int]) -> np.ndarray: +def _collect_performance( + algs: List[Design], setting: Any, seed_instance: Sequence[int] +) -> np.ndarray: runs = int(get_flex(setting, "alg_runs", 1)) matrix = np.zeros((len(seed_instance) * runs, len(algs))) for idx, alg in enumerate(algs): @@ -65,7 +74,34 @@ def _statistic_wins(matrix: np.ndarray, alpha: float) -> np.ndarray: return wins -def select(algs: Iterable[Design], problem: Any, data: Any, setting: Any, seed_instance: Sequence[int]) -> List[Design]: +def _new_algorithm_wins(matrix: np.ndarray, old_count: int, alpha: float) -> np.ndarray: + """Count significant wins by new algorithms against incumbents only.""" + result = np.zeros(matrix.shape[1], dtype=int) + try: + avg_ranks, p_matrix = friedman_nemenyi(matrix) + except ValueError: + averages = np.mean(matrix, axis=0) + for i in range(old_count, matrix.shape[1]): + result[i] = int(np.any(averages[i] < averages[:old_count])) + return result + for i in range(old_count, matrix.shape[1]): + for j in range(old_count): + if ( + not np.isnan(p_matrix[i, j]) + and p_matrix[i, j] < alpha + and avg_ranks[i] < avg_ranks[j] + ): + result[i] += 1 + return result + + +def select( + algs: Iterable[Design], + problem: Any, + data: Any, + setting: Any, + seed_instance: Sequence[int], +) -> List[Design]: alg_list = _ensure_design_list(algs) if not alg_list: return [] @@ -73,8 +109,8 @@ def select(algs: Iterable[Design], problem: Any, data: Any, setting: Any, seed_i _require_performance(alg_list, problem, data, setting, seed_instance) all_perf = _collect_performance(alg_list, setting, seed_instance) - compare = get_flex(setting, "compare", "average") - evaluate_mode = get_flex(setting, "evaluate", "exact") + compare = str(get_flex(setting, "compare", "average")).lower() + evaluate_mode = str(get_flex(setting, "evaluate", "exact")).lower() alg_n = int(get_flex(setting, "alg_n", len(alg_list))) alpha = float(get_flex(setting, "alpha", 0.05)) @@ -87,19 +123,37 @@ def select(algs: Iterable[Design], problem: Any, data: Any, setting: Any, seed_i if evaluate_mode == "intensification": old_avgs = averages[:alg_n] threshold = float(np.max(old_avgs)) if old_avgs.size else np.inf - return [alg for alg, avg in zip(alg_list[alg_n:], averages[alg_n:]) if avg < threshold] + return [ + alg + for alg, avg in zip(alg_list[alg_n:], averages[alg_n:]) + if avg < threshold + ] raise NotImplementedError(f"Unsupported evaluate mode: {evaluate_mode}") if compare == "statistic": wins = _statistic_wins(all_perf, alpha) order = np.argsort(-wins) - if evaluate_mode in {"exact", "approximate", "racing"}: + if evaluate_mode in {"exact", "approximate"}: top = order[: min(alg_n, len(order))] return [alg_list[i] for i in top] + if evaluate_mode == "racing": + survivors = np.flatnonzero(wins > 0).tolist() + if len(survivors) < min(alg_n, len(alg_list)): + candidates = np.flatnonzero(wins == 0) + needed = min(alg_n, len(alg_list)) - len(survivors) + if needed: + sampled = ensure_rng(setting).choice( + candidates, size=needed, replace=False + ) + survivors.extend(np.asarray(sampled, dtype=int).tolist()) + return [alg_list[i] for i in survivors] if evaluate_mode == "intensification": - return [alg_list[i] for i in order if i >= alg_n and wins[i] > 0] + incumbent_wins = _new_algorithm_wins(all_perf, alg_n, alpha) + return [ + alg_list[i] + for i in range(alg_n, len(alg_list)) + if incumbent_wins[i] > 0 + ] raise NotImplementedError(f"Unsupported evaluate mode: {evaluate_mode}") raise NotImplementedError(f"Unsupported compare mode: {compare}") - - diff --git a/src/autooptlib/utils/solve/__init__.py b/src/autooptlib/utils/solve/__init__.py index 6a30864..66e225b 100644 --- a/src/autooptlib/utils/solve/__init__.py +++ b/src/autooptlib/utils/solve/__init__.py @@ -1,17 +1,32 @@ from __future__ import annotations +import hashlib +import json +import multiprocessing +import pickle +import threading +import time +import warnings +from concurrent.futures import ThreadPoolExecutor +from contextlib import nullcontext +from copy import copy from dataclasses import dataclass from pathlib import Path -from typing import Any, Iterable, List, Optional, Sequence, Tuple, TYPE_CHECKING -import pickle +from typing import TYPE_CHECKING, Any, Iterable, List, Optional, Sequence, Tuple import numpy as np -import time -from ..design._helpers import ensure_rng, get_flex, get_problem_type -from ..design._helpers import Pathway, PathwayParam, SearchStep, SearchParam -from ..general.improve_rate import improve_rate from ...components import get_component +from ..design._helpers import ( + Pathway, + PathwayParam, + SearchParam, + SearchStep, + ensure_rng, + get_flex, + get_problem_type, +) +from ..general.improve_rate import improve_rate if TYPE_CHECKING: from ..design import Design @@ -23,6 +38,7 @@ class Solution: obj: float con: float fit: float + acc: Any = None class SolutionSet(Sequence[Solution]): @@ -51,6 +67,15 @@ def fits(self) -> np.ndarray: return np.asarray([s.fit for s in self._items]).reshape(-1, 1) +class ObjectiveEvaluationError(RuntimeError): + """Raised when a user objective fails or returns an unsupported value.""" + + +def _evaluation_cache_key(dec: np.ndarray) -> tuple[str, tuple[int, ...], bytes]: + contiguous = np.ascontiguousarray(dec) + return contiguous.dtype.str, contiguous.shape, contiguous.tobytes() + + def repair_sol(dec: np.ndarray, problem: Any) -> np.ndarray: ptype = get_problem_type(problem) bound = getattr(problem, "bound", None) @@ -79,9 +104,13 @@ def repair_sol(dec: np.ndarray, problem: Any) -> np.ndarray: if not duplicates: continue for idx in duplicates: - choices = [v for v in range(int(lower[idx]), int(upper[idx]) + 1) if v not in repaired[i]] + choices = [ + v + for v in range(int(lower[idx]), int(upper[idx]) + 1) + if v not in repaired[i] + ] if choices: - repaired[i, idx] = int(np.random.choice(choices)) + repaired[i, idx] = int(ensure_rng(problem).choice(choices)) return repaired return repaired if ptype == "permutation": @@ -94,13 +123,13 @@ def repair_sol(dec: np.ndarray, problem: Any) -> np.ndarray: domain = list(range(1, d + 1)) for row in rows: missing = [v for v in domain if v not in row] - counts = {} - duplicates = [] + counts: dict[int, int] = {} + duplicate_indices: list[int] = [] for j, val in enumerate(row): counts[val] = counts.get(val, 0) + 1 if counts[val] > 1: - duplicates.append(j) - for j in duplicates: + duplicate_indices.append(j) + for j in duplicate_indices: if missing: row[j] = missing.pop(0) if repaired.ndim == 1: @@ -110,17 +139,69 @@ def repair_sol(dec: np.ndarray, problem: Any) -> np.ndarray: def _call_evaluator(problem: Any, data: Any, dec: np.ndarray): - # Preferred: problem.evaluate(data, dec) - eval_fn = getattr(problem, 'evaluate', None) + preview = np.asarray(dec).reshape(-1)[:8].tolist() + cache = getattr(problem, "_autoopt_eval_cache", None) + cache_key = None + if isinstance(cache, dict): + cache_key = _evaluation_cache_key(dec) + lock = getattr(problem, "_autoopt_eval_lock", None) + with lock if lock is not None else nullcontext(): + result = cache.get(cache_key) + cache_hit = cache_key in cache + if cache_hit: + _log_evaluation(problem, dec, attempt=0, status="cache_hit", elapsed=0.0) + return result + + retries = int(getattr(problem, "_autoopt_eval_retries", 0)) + last_error: ObjectiveEvaluationError | None = None + for attempt in range(1, retries + 2): + started = time.perf_counter() + try: + result = _evaluate_once(problem, data, dec, preview) + except ObjectiveEvaluationError as exc: + last_error = exc + _log_evaluation( + problem, + dec, + attempt=attempt, + status="failure", + elapsed=time.perf_counter() - started, + error=str(exc), + ) + continue + _log_evaluation( + problem, + dec, + attempt=attempt, + status="success", + elapsed=time.perf_counter() - started, + ) + if isinstance(cache, dict) and cache_key is not None: + lock = getattr(problem, "_autoopt_eval_lock", None) + with lock if lock is not None else nullcontext(): + cache[cache_key] = result + return result + + failure = getattr(problem, "_autoopt_eval_failure", "raise") + if failure == "penalize": + return float(getattr(problem, "_autoopt_eval_penalty", 1e30)), 0.0, None + assert last_error is not None + raise last_error + + +def _invoke_evaluator(problem: Any, data: Any, dec: np.ndarray): + """Invoke the user callable without policy handling or normalization.""" + eval_fn = getattr(problem, "evaluate", None) if callable(eval_fn): - out = eval_fn(data, dec) - else: - # Fallback: Problem.name referencing a callable in current scope - name = getattr(problem, 'name', None) - if callable(name): - out = name(data, dec) - else: - raise NotImplementedError('Problem must provide an evaluate(data, dec) callable') + return eval_fn(data, dec) + name = getattr(problem, "name", None) + if callable(name): + return name(data, dec) + raise NotImplementedError("Problem must provide an evaluate(data, dec) callable") + + +def _normalize_evaluator_output(out: Any, preview: list[Any]): + """Normalize one evaluator result to objective, violation, and auxiliary.""" # Normalize outputs: obj, con, acc(optional) if isinstance(out, tuple): if len(out) == 3: @@ -128,28 +209,410 @@ def _call_evaluator(problem: Any, data: Any, dec: np.ndarray): elif len(out) == 2: obj, con = out acc = None - else: + elif len(out) == 1: obj, con, acc = out[0], 0.0, None + else: + raise ObjectiveEvaluationError( + "Objective result tuples must contain one to three values " + "(objective, optional constraint, optional auxiliary output)." + ) else: obj, con, acc = out, 0.0, None - return float(np.asarray(obj).reshape(1)[0]), float(np.sum(np.maximum(0.0, np.asarray(con)))), acc + try: + objective = np.asarray(obj, dtype=float) + except (TypeError, ValueError) as exc: + raise ObjectiveEvaluationError( + f"Objective did not return a numeric scalar for decision {preview}." + ) from exc + if objective.size != 1: + raise ObjectiveEvaluationError( + "AutoOptLib currently supports one scalar objective; " + f"received shape {objective.shape} for decision {preview}." + ) + objective_value = float(objective.reshape(-1)[0]) + if not np.isfinite(objective_value): + raise ObjectiveEvaluationError( + f"Objective returned a non-finite value for decision {preview}." + ) + + if con is None: + constraint_value = 0.0 + else: + try: + constraints = np.asarray(con, dtype=float) + except (TypeError, ValueError) as exc: + raise ObjectiveEvaluationError( + f"Constraint did not return numeric values for decision {preview}." + ) from exc + if not np.all(np.isfinite(constraints)): + raise ObjectiveEvaluationError( + f"Constraint returned a non-finite value for decision {preview}." + ) + constraint_value = float(np.sum(np.maximum(0.0, constraints))) + return objective_value, constraint_value, acc + + +def _evaluate_payload( + problem: Any, data: Any, dec: np.ndarray, preview: list[Any] +) -> tuple[float, float, Any]: + """Evaluate certain or sampled-uncertain problem semantics.""" + behavior = get_flex(problem, "type", []) + uncertainty = ( + str(behavior[2]).lower() + if isinstance(behavior, Sequence) and len(behavior) > 2 + else "certain" + ) + if uncertainty != "uncertain": + return _normalize_evaluator_output( + _invoke_evaluator(problem, data, dec), preview + ) + + sample_n = int(get_flex(problem, "sampleN", get_flex(problem, "sample_n", 0))) + if sample_n <= 0: + raise ObjectiveEvaluationError( + "Uncertain problems must define a positive sampleN." + ) + samples = [ + _normalize_evaluator_output(_invoke_evaluator(problem, data, dec), preview) + for _ in range(sample_n) + ] + objectives = np.asarray([sample[0] for sample in samples], dtype=float) + constraints = np.asarray([sample[1] for sample in samples], dtype=float) + problem_setting = str(get_flex(problem, "setting", "")).lower() + if "uncertain_average" in problem_setting: + objective = float(np.mean(objectives)) + constraint = float(np.mean(constraints)) + elif "uncertain_worst" in problem_setting: + objective = float(np.max(objectives)) + constraint = float(np.max(constraints)) + else: + raise ObjectiveEvaluationError( + "Uncertain problems must select 'uncertain_average' or " + "'uncertain_worst' in problem.setting." + ) + return objective, constraint, samples[-1][2] + + +def _timeout_worker(connection: Any, problem: Any, data: Any, dec: np.ndarray) -> None: + """Evaluate and send a pickle-safe result from an isolated process.""" + try: + preview = np.asarray(dec).reshape(-1)[:8].tolist() + result = _evaluate_payload(problem, data, dec, preview) + # Auxiliary values are not consumed by the execution engine and may be + # unpickleable simulator handles. Do not transfer them across processes. + connection.send((True, (result[0], result[1], None))) + except BaseException as exc: # child must report user failures to parent + connection.send((False, f"{type(exc).__name__}: {exc}")) + finally: + connection.close() + + +def _evaluate_once( + problem: Any, data: Any, dec: np.ndarray, preview: list[Any] +) -> tuple[float, float, Any]: + timeout = getattr(problem, "_autoopt_eval_timeout", None) + if timeout is None: + try: + return _evaluate_payload(problem, data, dec, preview) + except ObjectiveEvaluationError: + raise + except Exception as exc: + raise ObjectiveEvaluationError( + f"Objective evaluation failed for decision {preview}: {exc}" + ) from exc + + methods = multiprocessing.get_all_start_methods() + method = "fork" if "fork" in methods else "spawn" + context: Any = multiprocessing.get_context(method) + parent, child = context.Pipe(duplex=False) + process = context.Process( + target=_timeout_worker, + args=(child, problem, data, np.asarray(dec)), + daemon=True, + ) + try: + process.start() + except Exception as exc: + parent.close() + child.close() + raise ObjectiveEvaluationError( + "Could not start the isolated objective worker. Use module-level, " + "pickleable problem definitions on spawn-based platforms." + ) from exc + child.close() + try: + if not parent.poll(float(timeout)): + process.terminate() + process.join(timeout=1.0) + if process.is_alive() and hasattr(process, "kill"): + process.kill() + process.join(timeout=1.0) + raise ObjectiveEvaluationError( + f"Objective evaluation timed out after {float(timeout):g}s " + f"for decision {preview}." + ) + ok, payload = parent.recv() + process.join(timeout=1.0) + if not ok: + raise ObjectiveEvaluationError( + f"Objective evaluation failed for decision {preview}: {payload}" + ) + return payload + finally: + parent.close() + if process.is_alive(): + process.terminate() + process.join(timeout=1.0) + + +def _log_evaluation( + problem: Any, + dec: np.ndarray, + *, + attempt: int, + status: str, + elapsed: float, + error: str | None = None, +) -> None: + path = getattr(problem, "_autoopt_eval_log", None) + if path is None: + return + array = np.ascontiguousarray(dec) + event = { + "time_utc": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), + "problem": str(getattr(problem, "name", "problem")), + "decision_sha256": hashlib.sha256(array.tobytes()).hexdigest(), + "decision_preview": array.reshape(-1)[:8].tolist(), + "attempt": attempt, + "status": status, + "elapsed_seconds": elapsed, + } + if error is not None: + event["error"] = error + log_path = Path(path) + log_path.parent.mkdir(parents=True, exist_ok=True) + lock = getattr(problem, "_autoopt_eval_lock", None) + with lock if lock is not None else nullcontext(): + with log_path.open("a", encoding="utf-8") as handle: + handle.write(json.dumps(event, sort_keys=True) + "\n") + + +def _configure_evaluation_runtime(problem: Any, setting: Any) -> None: + """Attach validated, run-scoped evaluation controls to a problem record.""" + problem._autoopt_eval_retries = int(get_flex(setting, "EvalRetries", 0)) + problem._autoopt_eval_timeout = get_flex(setting, "EvalTimeoutSec", None) + problem._autoopt_eval_failure = str( + get_flex(setting, "EvalFailure", "raise") + ).lower() + problem._autoopt_eval_penalty = float(get_flex(setting, "EvalPenalty", 1e30)) + problem._autoopt_eval_log = get_flex(setting, "EvalLog", None) + problem._autoopt_eval_workers = int(get_flex(setting, "EvalWorkers", 1)) + problem._autoopt_eval_lock = threading.RLock() + if bool(get_flex(setting, "EvalCache", False)): + if not isinstance(getattr(problem, "_autoopt_eval_cache", None), dict): + problem._autoopt_eval_cache = {} + elif hasattr(problem, "_autoopt_eval_cache"): + delattr(problem, "_autoopt_eval_cache") + + +def _checkpoint_payload( + *, + solutions: SolutionSet, + aux_cache: list[list[Any]], + archives: list[Any], + history: list[Optional[Solution]], + fit_history: list[float], + evaluations: int, + elapsed_seconds: float, + generation: int, + rng: np.random.Generator, + population_size: int, + evaluation_budget: int, + complete: bool, +) -> dict[str, Any]: + return { + "schema": "autooptlib.checkpoint", + "schema_version": 1, + "population_size": population_size, + "evaluation_budget": evaluation_budget, + "solutions": list(solutions), + "aux_cache": aux_cache, + "archives": archives, + "history": history, + "fit_history": fit_history, + "evaluations": evaluations, + "elapsed_seconds": elapsed_seconds, + "generation": generation, + "rng_state": rng.bit_generator.state, + "complete": complete, + } + + +def _write_checkpoint(path: Path, payload: dict[str, Any]) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + temporary = path.with_suffix(path.suffix + ".tmp") + with temporary.open("wb") as handle: + pickle.dump(payload, handle, protocol=pickle.HIGHEST_PROTOCOL) + temporary.replace(path) + + +def _load_checkpoint( + path: Path, *, population_size: int, evaluation_budget: int +) -> dict[str, Any]: + warnings.warn( + "Loading an AutoOptLib checkpoint uses pickle and can execute arbitrary " + "code. Resume only checkpoints produced by a trusted run.", + UserWarning, + stacklevel=2, + ) + with path.open("rb") as handle: + payload = pickle.load(handle) + if ( + not isinstance(payload, dict) + or payload.get("schema") != "autooptlib.checkpoint" + ): + raise ValueError(f"Invalid AutoOptLib checkpoint: {path}") + if payload.get("schema_version") != 1: + raise ValueError("Unsupported AutoOptLib checkpoint schema version.") + if payload.get("population_size") != population_size: + raise ValueError("Checkpoint population size does not match ProbN.") + if payload.get("evaluation_budget") != evaluation_budget: + raise ValueError("Checkpoint evaluation budget does not match ProbFE.") + return payload + + +def _sequence_checkpoint_payload( + *, + solutions: Sequence[Solution], + cumulative: float, + remaining_budget: int, + population_size: int, + evaluation_budget: int, + rng: np.random.Generator, + complete: bool, +) -> dict[str, Any]: + return { + "schema": "autooptlib.sequence-checkpoint", + "schema_version": 1, + "population_size": population_size, + "evaluation_budget": evaluation_budget, + "solutions": list(solutions), + "cumulative": cumulative, + "remaining_budget": remaining_budget, + "rng_state": rng.bit_generator.state, + "complete": complete, + } + + +def _load_sequence_checkpoint( + path: Path, *, population_size: int, evaluation_budget: int +) -> dict[str, Any]: + warnings.warn( + "Loading an AutoOptLib checkpoint uses pickle and can execute arbitrary " + "code. Resume only checkpoints produced by a trusted run.", + UserWarning, + stacklevel=2, + ) + with path.open("rb") as handle: + payload = pickle.load(handle) + if ( + not isinstance(payload, dict) + or payload.get("schema") != "autooptlib.sequence-checkpoint" + ): + raise ValueError(f"Invalid AutoOptLib sequential checkpoint: {path}") + if payload.get("schema_version") != 1: + raise ValueError("Unsupported AutoOptLib sequential checkpoint schema version.") + if payload.get("population_size") != population_size: + raise ValueError("Sequential checkpoint population size does not match ProbN.") + if payload.get("evaluation_budget") != evaluation_budget: + raise ValueError( + "Sequential checkpoint evaluation budget does not match ProbFE." + ) + return payload def make_solutions(decs: np.ndarray, problem: Any, data: Any) -> SolutionSet: - items: List[Solution] = [] + repaired: List[np.ndarray] = [] for i in range(decs.shape[0]): d = np.array(decs[i], dtype=float) d = repair_sol(d, problem) - obj, con, _ = _call_evaluator(problem, data, d) + repair_fn = getattr(problem, "repair", None) + if callable(repair_fn): + try: + d = np.asarray(repair_fn(data, d)) + except TypeError: + d = np.asarray(repair_fn(d)) + else: + name = getattr(problem, "name", None) + # Legacy MATLAB-style problem callables expose repair/evaluate + # through ``name``. Modern Python definitions expose ``evaluate`` + # separately and their construct callable must not be invoked as a + # repair hook. + if callable(name) and not callable(getattr(problem, "evaluate", None)): + try: + repaired_output = name(data, d, "repair") + except TypeError: + repaired_output = d + if isinstance(repaired_output, tuple): + repaired_output = repaired_output[0] + d = np.asarray(repaired_output) + repaired.append(d) + + cache = getattr(problem, "_autoopt_eval_cache", None) + unique_repaired = repaired + original_keys: List[tuple[str, tuple[int, ...], bytes]] | None = None + if isinstance(cache, dict): + original_keys = [_evaluation_cache_key(decision) for decision in repaired] + unique_by_key: dict[tuple[str, tuple[int, ...], bytes], np.ndarray] = {} + for key, decision in zip(original_keys, repaired): + unique_by_key.setdefault(key, decision) + unique_repaired = list(unique_by_key.values()) + + workers = int(getattr(problem, "_autoopt_eval_workers", 1)) + if workers == 1 or len(unique_repaired) <= 1: + unique_results = [_call_evaluator(problem, data, d) for d in unique_repaired] + else: + with ThreadPoolExecutor( + max_workers=min(workers, len(unique_repaired)) + ) as executor: + unique_results = list( + executor.map( + lambda d: _call_evaluator(problem, data, d), unique_repaired + ) + ) + + if original_keys is None: + results = unique_results + else: + unique_results_by_key = { + _evaluation_cache_key(decision): result + for decision, result in zip(unique_repaired, unique_results) + } + seen: set[tuple[str, tuple[int, ...], bytes]] = set() + results = [] + for key, decision in zip(original_keys, repaired): + if key in seen: + # The first in-flight duplicate has completed and populated the + # cache, so this records a normal cache-hit event without a + # second objective call. + results.append(_call_evaluator(problem, data, decision)) + else: + seen.add(key) + results.append(unique_results_by_key[key]) + + items: List[Solution] = [] + for d, (obj, con, acc) in zip(repaired, results): feasible = con <= 0.0 fit = obj if feasible else (con + 1e8) - items.append(Solution(dec=d, obj=obj, con=con, fit=fit)) + items.append(Solution(dec=d, obj=obj, con=con, fit=fit, acc=acc)) return SolutionSet(items) -def _init_population(rng: np.random.Generator, problem: Any, data: Any, setting: Any) -> SolutionSet: +def _init_population( + rng: np.random.Generator, problem: Any, data: Any, setting: Any +) -> SolutionSet: ptype = get_problem_type(problem) or "continuous" - pop_n = int(get_flex(problem, "N", get_flex(setting, "prob_n", 10))) + pop_n = int(get_flex(problem, "N", get_flex(setting, "ProbN", 10))) if ptype == "continuous": bound = np.asarray(get_flex(problem, "bound"), dtype=float) lower = bound[0] @@ -160,7 +623,10 @@ def _init_population(rng: np.random.Generator, problem: Any, data: Any, setting: lower = bound[0] upper = bound[1] decs = np.vstack( - [rng.integers(lower[j], upper[j] + 1, size=pop_n) for j in range(lower.shape[-1])] + [ + rng.integers(lower[j], upper[j] + 1, size=pop_n) + for j in range(lower.shape[-1]) + ] ).T elif ptype == "permutation": bound = np.asarray(get_flex(problem, "bound"), dtype=int) @@ -169,7 +635,9 @@ def _init_population(rng: np.random.Generator, problem: Any, data: Any, setting: else: d = int(get_flex(problem, "dimension", 0) or get_flex(problem, "D", 0)) if d == 0: - raise ValueError("Permutation problem requires explicit dimension or bound") + raise ValueError( + "Permutation problem requires explicit dimension or bound" + ) domain = np.arange(1, d + 1) decs = np.vstack([rng.permutation(domain) for _ in range(pop_n)]) else: @@ -180,85 +648,297 @@ def _init_population(rng: np.random.Generator, problem: Any, data: Any, setting: def _split_indices(indices: Sequence[int], alg_p: int, total: int) -> List[List[int]]: array = np.asarray(indices, dtype=int).flatten() if array.size == 0: - indices = list(range(total)) + normalized_indices = list(range(total)) else: - indices = array.tolist() + normalized_indices = [int(value) for value in array.tolist()] if alg_p <= 1: - return [indices] + return [normalized_indices] splits: List[List[int]] = [] - chunk = max(1, len(indices) // alg_p) + chunk = max(1, len(normalized_indices) // alg_p) start = 0 for i in range(alg_p): if i == alg_p - 1: - splits.append(indices[start:]) + splits.append(normalized_indices[start:]) else: - splits.append(indices[start:start + chunk]) + splits.append(normalized_indices[start : start + chunk]) start += chunk if not splits[-1]: splits[-1] = list(range(total)) return splits +def _update_archives( + solutions: SolutionSet, + archive_names: Sequence[str], + archives: List[Any], + problem: Any, +) -> List[Any]: + for index, name in enumerate(archive_names): + archive_fn = get_component(name) + if name in {"archive_best", "archive_statistic"}: + archives[index], _ = archive_fn(solutions, archives[index], "execute") + else: + archives[index], _ = archive_fn( + solutions, archives[index], problem, "execute" + ) + return archives + + +def _execute_single_path( + path: Any, + params: Any, + solutions: SolutionSet, + aux_state: Any, + problem: Any, + data: Any, + setting: Any, + generation: int, + remaining_evaluations: int, + archive_names: Sequence[str], + archives: List[Any], +) -> Tuple[SolutionSet, Any, int, int, List[Any], List[Solution]]: + """Execute a serial pathway with an update after every search call. + + This mirrors the reference MATLAB execution loop: each inner search + chooses from the current population, creates offspring, updates the + population immediately, and lets the next search step see that update. + """ + if not isinstance(aux_state, dict): + aux_state = {} + aux_state.setdefault("rng", ensure_rng(setting)) + current = solutions + evaluations = 0 + iterations = 0 + update_fn = get_component(path.update) + update_param = getattr(params, "update", None) + iteration_bests: List[Solution] = [] + + for step_index, step in enumerate(path.search): + improve = None + inner_generation = 1 + limit = int(step.termination[1]) if step.termination.size > 1 else 1 + threshold = float(step.termination[0]) if step.termination.size else -np.inf + primary_param = params.search[step_index].primary if params.search else None + secondary_param = params.search[step_index].secondary if params.search else None + while ( + (improve is None or improve[0] >= threshold) + and inner_generation <= limit + and evaluations < remaining_evaluations + ): + component_generation = generation + iterations + choose_fn = get_component(path.choose) + choose_param = getattr(params, "choose", None) + selected, choose_aux = choose_fn( + current, + problem, + choose_param, + aux_state, + component_generation, + inner_generation, + data, + "execute", + ) + if isinstance(choose_aux, dict): + aux_state = choose_aux + aux_state.setdefault("rng", ensure_rng(setting)) + selected_indices = np.asarray(selected, dtype=int).reshape(-1) + parent = SolutionSet([current[int(index)] for index in selected_indices]) + + primary_fn = get_component(step.primary) + new_dec, aux_state = primary_fn( + parent, + problem, + primary_param, + aux_state, + component_generation, + inner_generation, + data, + "execute", + ) + if step.secondary: + new_dec = repair_sol(np.asarray(new_dec), problem) + secondary_fn = get_component(step.secondary) + new_dec, aux_state = secondary_fn( + new_dec, + problem, + secondary_param, + aux_state, + component_generation, + inner_generation, + data, + "execute", + ) + + decisions = np.asarray(new_dec) + if decisions.ndim == 1: + decisions = decisions.reshape(1, -1) + remaining = remaining_evaluations - evaluations + if decisions.shape[0] > remaining: + decisions = decisions[:remaining] + new = make_solutions(decisions, problem, data) + if step.primary == "search_cma": + aux_state = get_component("para_cma")( + new, problem, aux_state, "solution" + ) + elif step.primary == "search_pso": + aux_state = get_component("para_pso")(new, problem, aux_state) + + if len(new) < len(current): + updated = sorted( + list(current) + list(new), key=lambda solution: solution.fit + )[: len(current)] + else: + updated, update_aux = update_fn( + list(current) + list(new), + problem, + update_param, + aux_state, + component_generation, + inner_generation, + data, + "execute", + ) + if isinstance(update_aux, dict): + aux_state = update_aux + aux_state.setdefault("rng", ensure_rng(setting)) + current = SolutionSet(updated) + evaluations += len(new) + iterations += 1 + improve = improve_rate(current, improve, inner_generation, "solution") + archives = _update_archives(current, archive_names, archives, problem) + if len(current): + iteration_bests.append(min(list(current), key=lambda sol: sol.fit)) + inner_generation += 1 + + return current, aux_state, evaluations, iterations, archives, iteration_bests + + def _execute_path( path: Any, params: Any, subset: SolutionSet, - aux_states: List[Any], + aux_state: Any, problem: Any, data: Any, setting: Any, generation: int, -) -> Tuple[List[Any], List[Any], int]: - if not aux_states or len(aux_states) != len(path.search): - aux_states = [None] * len(path.search) + remaining_evaluations: int, +) -> Tuple[List[Any], Any, int]: + if not isinstance(aux_state, dict): + aux_state = {} + aux_state.setdefault("rng", ensure_rng(setting)) current_parent = subset evals = 0 for step_idx, step in enumerate(path.search): + if evals >= remaining_evaluations: + break improve = None inner_g = 1 limit = int(step.termination[1]) if step.termination.size > 1 else 1 threshold = float(step.termination[0]) if step.termination.size > 0 else -np.inf primary_param = params.search[step_idx].primary if params.search else None secondary_param = params.search[step_idx].secondary if params.search else None - aux_state = aux_states[step_idx] or {} while (improve is None or improve[0] >= threshold) and inner_g <= limit: + remaining = remaining_evaluations - evals + if remaining <= 0: + break primary_fn = get_component(step.primary) new_dec, aux_state = primary_fn( - current_parent, problem, primary_param, aux_state, generation, inner_g, data, "execute" + current_parent, + problem, + primary_param, + aux_state, + generation, + inner_g, + data, + "execute", ) if step.secondary: new_dec = repair_sol(np.asarray(new_dec), problem) secondary_fn = get_component(step.secondary) new_dec, aux_state = secondary_fn( - new_dec, problem, secondary_param, aux_state, generation, inner_g, data, "execute" + new_dec, + problem, + secondary_param, + aux_state, + generation, + inner_g, + data, + "execute", ) - new = make_solutions(np.asarray(new_dec), problem, data) + new_dec = np.asarray(new_dec) + if new_dec.ndim == 1: + new_dec = new_dec.reshape(1, -1) + if new_dec.shape[0] > remaining: + new_dec = new_dec[:remaining] + new = make_solutions(new_dec, problem, data) if step.primary == "search_cma": - aux_state = get_component("para_cma")(new, problem, aux_state, "solution") + aux_state = get_component("para_cma")( + new, problem, aux_state, "solution" + ) elif step.primary == "search_pso": aux_state = get_component("para_pso")(new, problem, aux_state) current_parent = new evals += len(new) improve = improve_rate(new, improve, inner_g, "solution") - aux_states[step_idx] = aux_state inner_g += 1 - return list(current_parent), aux_states, evals + return list(current_parent), aux_state, evals -def run_design(pathways: List[Any], params: List[Any], problem: Any, data: Any, setting: Any) -> dict: +def run_design( + pathways: List[Any], params: List[Any], problem: Any, data: Any, setting: Any +) -> dict: rng = ensure_rng(setting) - solutions = _init_population(rng, problem, data, setting) - aux_cache: List[List[Any]] = [[None] * len(path.search) for path in pathways] - archive_names = list(get_flex(setting, "archive", [])) - archives: List[Any] = [] - for name in archive_names: - if name == "archive_statistic": - archives.append(np.empty((0, 2))) - else: - archives.append([]) + _configure_evaluation_runtime(problem, setting) + try: + problem.rng = rng + except (AttributeError, TypeError): + pass + population_size = int(get_flex(problem, "N", get_flex(setting, "ProbN", 10))) + evaluation_budget = int( + get_flex( + setting, + "ProbFE", + population_size * int(get_flex(problem, "Gmax", 10)), + ) + ) + if evaluation_budget < population_size: + raise ValueError( + f"ProbFE ({evaluation_budget}) must be at least the initial population size " + f"({population_size})." + ) + + checkpoint_value = get_flex(setting, "_checkpoint_path", None) + checkpoint_path = Path(checkpoint_value) if checkpoint_value else None + resume = bool(get_flex(setting, "Resume", False)) + checkpoint_every = int(get_flex(setting, "CheckpointEvery", 1)) + + embedded_archives = getattr(pathways[0], "archive", []) if pathways else [] + archive_names = list(embedded_archives or get_flex(setting, "archive", [])) + resume_state = None + if resume and checkpoint_path is not None and checkpoint_path.exists(): + resume_state = _load_checkpoint( + checkpoint_path, + population_size=population_size, + evaluation_budget=evaluation_budget, + ) + solutions = SolutionSet(resume_state["solutions"]) + aux_cache = resume_state["aux_cache"] + archives = resume_state["archives"] + rng.bit_generator.state = resume_state["rng_state"] + else: + solutions = _init_population(rng, problem, data, setting) + # MATLAB keeps one Aux structure per pathway and shares it among the + # choose, search, parameter-update and population-update components. + aux_cache = [{} for _ in pathways] + archives = [] + for name in archive_names: + if name == "archive_statistic": + archives.append(np.empty((0, 2))) + else: + archives.append([]) metric = get_flex(setting, "metric", "quality") - prob_n = float(get_flex(setting, "prob_n", 1.0)) tmax = get_flex(setting, "tmax", np.inf) if tmax is None: tmax = np.inf @@ -273,7 +953,8 @@ def run_design(pathways: List[Any], params: List[Any], problem: Any, data: Any, Tmax = np.inf threshold = -np.inf elif metric == "runtimeFE": - Tmax = int(np.ceil(tmax / max(prob_n, 1))) + requested_limit = evaluation_budget if not np.isfinite(tmax) else int(tmax) + Tmax = min(evaluation_budget, requested_limit) threshold = thres elif metric == "runtimeSec": Tmax = float(tmax) @@ -284,72 +965,218 @@ def run_design(pathways: List[Any], params: List[Any], problem: Any, data: Any, history: List[Optional[Solution]] = [] fit_history: List[float] = [] - evaluations = 0 + # Initial-population objective calls are part of the public ProbFE budget. + evaluations = len(solutions) elapsed_seconds = 0.0 generation = 1 - while True: + if resume_state is not None: + history = resume_state["history"] + fit_history = resume_state["fit_history"] + evaluations = int(resume_state["evaluations"]) + elapsed_seconds = float(resume_state["elapsed_seconds"]) + generation = int(resume_state["generation"]) + if resume_state.get("complete", False): + candidates = [item for item in history if item is not None] + best = min(candidates, key=lambda item: item.fit) if candidates else None + return { + "solutions": solutions, + "history": history, + "fit_history": fit_history, + "evaluations": evaluations, + "elapsed": elapsed_seconds, + "archives": archives, + "best_solution": best, + } + + if not history: if len(solutions): - best_solution = min(list(solutions), key=lambda s: s.fit) - history.append(best_solution) - fit_history.append(float(best_solution.fit)) + initial_best = min(list(solutions), key=lambda s: s.fit) + history.append(initial_best) + fit_history.append(float(initial_best.fit)) else: history.append(None) fit_history.append(np.inf) + while True: if generation > gmax: break + if evaluations >= evaluation_budget: + break if metric == "quality" and fit_history[-1] <= threshold: break - if metric == "runtimeFE" and evaluations >= Tmax: + if metric == "runtimeFE" and ( + evaluations >= Tmax or fit_history[-1] <= threshold + ): break if metric == "runtimeSec" and elapsed_seconds >= Tmax: break iteration_start = time.perf_counter() - choose_fn = get_component(pathways[0].choose) - choose_param = getattr(params[0], "choose", None) - selected, _ = choose_fn(solutions, problem, choose_param, None, generation, 1, data, "execute") - selected = np.asarray(selected, dtype=int).reshape(-1) - index_groups = _split_indices(selected, len(pathways), len(solutions)) - - new_items: List[Any] = [] - for p_idx, path in enumerate(pathways): - subset_idx = index_groups[p_idx] if p_idx < len(index_groups) else index_groups[-1] - subset = SolutionSet([solutions[i] for i in subset_idx]) if subset_idx else solutions - produced, aux_state, evals = _execute_path( - path, params[p_idx], subset, aux_cache[p_idx], problem, data, setting, generation + iterations_used = 1 + if len(pathways) == 1: + remaining = evaluation_budget - evaluations + if metric == "runtimeFE": + remaining = min(remaining, int(Tmax) - evaluations) + ( + solutions, + aux_cache[0], + evals, + iterations_used, + archives, + iteration_bests, + ) = _execute_single_path( + pathways[0], + params[0], + solutions, + aux_cache[0], + problem, + data, + setting, + generation, + remaining, + archive_names, + archives, ) - aux_cache[p_idx] = aux_state - new_items.extend(produced) evaluations += evals + for current_best in iteration_bests: + previous = history[-1] + best_so_far = ( + current_best + if previous is None or current_best.fit < previous.fit + else previous + ) + history.append(best_so_far) + fit_history.append(float(best_so_far.fit)) + if evals == 0: + break + else: + choose_fn = get_component(pathways[0].choose) + choose_param = getattr(params[0], "choose", None) + selected, _ = choose_fn( + solutions, + problem, + choose_param, + {"rng": rng}, + generation, + 1, + data, + "execute", + ) + selected = np.asarray(selected, dtype=int).reshape(-1) + index_groups = _split_indices(selected, len(pathways), len(solutions)) + + new_items: List[Any] = [] + for p_idx, path in enumerate(pathways): + remaining = evaluation_budget - evaluations + if metric == "runtimeFE": + remaining = min(remaining, int(Tmax) - evaluations) + if remaining <= 0: + break + subset_idx = ( + index_groups[p_idx] + if p_idx < len(index_groups) + else index_groups[-1] + ) + subset = ( + SolutionSet([solutions[i] for i in subset_idx]) + if subset_idx + else solutions + ) + produced, aux_state, evals = _execute_path( + path, + params[p_idx], + subset, + aux_cache[p_idx], + problem, + data, + setting, + generation, + remaining, + ) + aux_cache[p_idx] = aux_state + new_items.extend(produced) + evaluations += evals - update_fn = get_component(pathways[0].update) - update_param = getattr(params[0], "update", None) - updated, _ = update_fn(list(solutions) + new_items, problem, update_param, None, generation, 1, data, "execute") - solutions = SolutionSet(updated) - - for j, name in enumerate(archive_names): - archive_fn = get_component(name) - if name == "archive_best": - archives[j], _ = archive_fn(solutions, archives[j], "execute") - elif name == "archive_statistic": - archives[j], _ = archive_fn(solutions, archives[j], "execute") + if not new_items: + break + + if len(new_items) < len(solutions): + updated = sorted( + list(solutions) + new_items, key=lambda solution: solution.fit + )[: len(solutions)] else: - archives[j], _ = archive_fn(solutions, archives[j], problem, "execute") + update_fn = get_component(pathways[0].update) + update_param = getattr(params[0], "update", None) + updated, _ = update_fn( + list(solutions) + new_items, + problem, + update_param, + {"rng": rng}, + generation, + 1, + data, + "execute", + ) + solutions = SolutionSet(updated) + archives = _update_archives(solutions, archive_names, archives, problem) + current_best = min(list(solutions), key=lambda sol: sol.fit) + previous = history[-1] + best_so_far = ( + current_best + if previous is None or current_best.fit < previous.fit + else previous + ) + history.append(best_so_far) + fit_history.append(float(best_so_far.fit)) if metric == "runtimeFE": pass elif metric == "runtimeSec": elapsed_seconds += time.perf_counter() - iteration_start - generation += 1 + generation += max(1, iterations_used) + if checkpoint_path is not None and generation % checkpoint_every == 0: + _write_checkpoint( + checkpoint_path, + _checkpoint_payload( + solutions=solutions, + aux_cache=aux_cache, + archives=archives, + history=history, + fit_history=fit_history, + evaluations=evaluations, + elapsed_seconds=elapsed_seconds, + generation=generation, + rng=rng, + population_size=population_size, + evaluation_budget=evaluation_budget, + complete=False, + ), + ) - if history and history[-1] is None: - final_solution = None - else: - final_solution = history[-1] + candidates = [item for item in history if item is not None] + final_solution = min(candidates, key=lambda item: item.fit) if candidates else None + + if checkpoint_path is not None: + _write_checkpoint( + checkpoint_path, + _checkpoint_payload( + solutions=solutions, + aux_cache=aux_cache, + archives=archives, + history=history, + fit_history=fit_history, + evaluations=evaluations, + elapsed_seconds=elapsed_seconds, + generation=generation, + rng=rng, + population_size=population_size, + evaluation_budget=evaluation_budget, + complete=True, + ), + ) return { "solutions": solutions, @@ -366,8 +1193,11 @@ def run_design(pathways: List[Any], params: List[Any], problem: Any, data: Any, # Utility helpers # --------------------------------------------------------------------------- + def _placeholder_solution() -> Solution: - return Solution(dec=np.zeros((1, 0)), obj=float("inf"), con=float("inf"), fit=float("inf")) + return Solution( + dec=np.zeros((1, 0)), obj=float("inf"), con=float("inf"), fit=float("inf") + ) def _ensure_solution_instance(obj: Any) -> Solution: @@ -389,6 +1219,7 @@ def _ensure_solution_instance(obj: Any) -> Solution: # Solve-mode helpers (InputAlg / RunAlg translation) # --------------------------------------------------------------------------- + def _normalize_setting(setting: Any) -> Any: if isinstance(setting, dict): return type("Setting", (), setting)() @@ -399,15 +1230,19 @@ def _normalize_setting(setting: Any) -> Any: def _to_array(value: Any) -> Optional[np.ndarray]: - if value is None or value == []: + if value is None or (isinstance(value, (list, tuple)) and len(value) == 0): return None arr = np.asarray(value, dtype=float) return arr.reshape(-1) if arr.ndim > 0 else arr -def _make_search_step(primary: str, secondary: Optional[str], termination: Sequence[float]) -> SearchStep: +def _make_search_step( + primary: str, secondary: Optional[str], termination: Sequence[float] +) -> SearchStep: term = np.asarray(termination, dtype=float).reshape(-1) - return SearchStep(primary=primary, secondary=secondary if secondary else None, termination=term) + return SearchStep( + primary=primary, secondary=secondary if secondary else None, termination=term + ) def _make_search_param(primary: Any, secondary: Any) -> SearchParam: @@ -416,12 +1251,18 @@ def _make_search_param(primary: Any, secondary: Any) -> SearchParam: def _build_default_algorithm(name: str, setting: Any) -> "Design": name = name.strip().lower() - tmpl = { + tmpl: dict[str, list[Any]] = { "continuous genetic algorithm": [ ( "choose_tournament", [ - ("cross_sim_binary", "search_mu_polynomial", (-np.inf, 1), [20.0], [0.2, 20.0]), + ( + "cross_sim_binary", + "search_mu_polynomial", + (-np.inf, 1), + [20.0], + [0.2, 20.0], + ), ], "update_round_robin", [], @@ -511,7 +1352,13 @@ def _build_default_algorithm(name: str, setting: Any) -> "Design": ( "choose_tournament", [ - ("cross_point_uniform", "search_reset_rand", (-np.inf, 1), [0.2], [0.2]), + ( + "cross_point_uniform", + "search_reset_rand", + (-np.inf, 1), + [0.2], + [0.2], + ), ], "update_round_robin", [], @@ -606,7 +1453,9 @@ def _build_default_algorithm(name: str, setting: Any) -> "Design": } if name not in tmpl: - raise NotImplementedError(f"Preset algorithm {name!r} is not available in the Python translation.") + raise NotImplementedError( + f"Preset algorithm {name!r} is not available in the Python translation." + ) pathways_cfg = tmpl[name] pathways: List[Pathway] = [] @@ -625,7 +1474,9 @@ def _build_default_algorithm(name: str, setting: Any) -> "Design": search_steps.append(_make_search_step(primary, secondary, termination)) search_params.append(_make_search_param(primary_param, secondary_param)) - pathways.append(Pathway(choose=choose, search=search_steps, update=update, archive=archive)) + pathways.append( + Pathway(choose=choose, search=search_steps, update=update, archive=archive) + ) params.append( PathwayParam( choose=None, @@ -648,13 +1499,25 @@ def input_algorithm(setting: Any) -> Tuple["Design", Any]: path = Path(alg_file) if not path.exists(): raise FileNotFoundError(f"Algorithm file {alg_file} not found.") - with path.open("rb") as handle: - data = pickle.load(handle) - if isinstance(data, dict) and "algs" in data: - alg = data["algs"][0] + if path.suffix.lower() == ".json": + from ...serialization import load_algorithm + + alg = load_algorithm(path) else: - alg = data[0] if isinstance(data, (list, tuple)) else data + warnings.warn( + "Loading pickle algorithm files can execute arbitrary code. Only load trusted " + "files; use AutoOptLib JSON algorithm files for portable exchange.", + UserWarning, + stacklevel=2, + ) + with path.open("rb") as handle: + data = pickle.load(handle) + if isinstance(data, dict) and "algs" in data: + alg = data["algs"][0] + else: + alg = data[0] if isinstance(data, (list, tuple)) else data from ..design import Design + if not isinstance(alg, Design): raise TypeError("Loaded algorithm is not a Design instance.") setting.AlgP = len(getattr(alg, "operator_pheno", []) or []) @@ -675,12 +1538,43 @@ def _extract_mode(problem: Any) -> str: return "static" -def run_algorithm(alg: 'Design', problems: Sequence[Any], data: Sequence[Any], app: Any, setting: Any): +def _setting_with_budget(setting: Any, budget: int) -> Any: + """Return a shallow setting copy with synchronized ProbFE aliases.""" + cloned = copy(setting) + if isinstance(cloned, dict): + cloned["ProbFE"] = int(budget) + cloned["prob_fe"] = int(budget) + else: + setattr(cloned, "ProbFE", int(budget)) + setattr(cloned, "prob_fe", int(budget)) + return cloned + + +def _advance_sequential_problem( + current_problem: Any, current_data: Any, best: Solution +) -> tuple[Any, Any] | None: + next_fn = getattr(current_problem, "advance_sequence", None) + if callable(next_fn): + return next_fn(best, current_data) + name = getattr(current_problem, "name", None) + if callable(name): + next_problem, next_data, _ = name( + current_problem, current_data, best, "sequence" + ) + return next_problem, next_data + return None + + +def run_algorithm( + alg: "Design", problems: Sequence[Any], data: Sequence[Any], app: Any, setting: Any +): + if not alg.operator_pheno or not alg.parameter_pheno: + raise ValueError("The algorithm must be decoded before solve execution.") pathways = alg.operator_pheno[0] params = alg.parameter_pheno[0] alg_runs = int(get_flex(setting, "AlgRuns", 1)) best_solutions: List[List[Solution]] = [] - all_solutions: List[List[List[Solution]]] = [] + all_solutions: List[List[Solution]] = [] for idx, problem in enumerate(problems): data_obj = data[idx] if idx < len(data) else None @@ -690,9 +1584,24 @@ def run_algorithm(alg: 'Design', problems: Sequence[Any], data: Sequence[Any], a fitness_sequence: List[float] = [] for run in range(alg_runs): + run_setting = setting + checkpoint_dir = get_flex(setting, "CheckpointDir", None) + if checkpoint_dir is not None: + run_setting = copy(setting) + if mode == "static": + run_setting._checkpoint_path = str( + Path(checkpoint_dir) / f"instance_{idx + 1}_run_{run + 1}.pkl" + ) + elif mode == "sequential": + run_setting._sequence_checkpoint_path = str( + Path(checkpoint_dir) + / f"instance_{idx + 1}_run_{run + 1}_sequence.pkl" + ) if mode == "static": - result = run_design(pathways, params, problem, data_obj, setting) - history = [sol for sol in result["history"] if isinstance(sol, Solution)] + result = run_design(pathways, params, problem, data_obj, run_setting) + history = [ + sol for sol in result["history"] if isinstance(sol, Solution) + ] best = result["best_solution"] if best is None and history: best = history[-1] @@ -703,29 +1612,121 @@ def run_algorithm(alg: 'Design', problems: Sequence[Any], data: Sequence[Any], a current_data = data_obj sequence_solutions: List[Solution] = [] cumulative = 0.0 + total_budget = int(get_flex(setting, "ProbFE", 0)) + remaining_budget = total_budget + population_size = int( + get_flex(current_problem, "N", get_flex(setting, "ProbN", 1)) + ) + sequence_path_value = get_flex( + run_setting, "_sequence_checkpoint_path", None + ) + sequence_path = ( + Path(sequence_path_value) if sequence_path_value else None + ) + sequence_state = None + sequence_rng = ensure_rng(run_setting) + if ( + bool(get_flex(run_setting, "Resume", False)) + and sequence_path is not None + and sequence_path.exists() + ): + sequence_state = _load_sequence_checkpoint( + sequence_path, + population_size=population_size, + evaluation_budget=total_budget, + ) + sequence_solutions = list(sequence_state["solutions"]) + cumulative = float(sequence_state["cumulative"]) + remaining_budget = int(sequence_state["remaining_budget"]) + sequence_rng.bit_generator.state = sequence_state["rng_state"] + + if sequence_state is not None and sequence_state.get("complete", False): + run_histories.append(sequence_solutions) + run_best.append( + sequence_solutions[-1] + if sequence_solutions + else _placeholder_solution() + ) + fitness_sequence.append(cumulative) + continue + + for completed_solution in sequence_solutions: + advanced = _advance_sequential_problem( + current_problem, current_data, completed_solution + ) + if advanced is None: + break + current_problem, current_data = advanced + while getattr(current_data, "continue", False): - result = run_design(pathways, params, current_problem, current_data, setting) + # Each sequential instance receives the full configured + # budget, matching the original sequence protocol. + stage_setting = run_setting + if checkpoint_dir is not None: + stage_number = len(sequence_solutions) + 1 + stage_path = ( + Path(checkpoint_dir) + / f"instance_{idx + 1}_run_{run + 1}_stage_{stage_number}.pkl" + ) + if isinstance(stage_setting, dict): + stage_setting["_checkpoint_path"] = str(stage_path) + else: + stage_setting._checkpoint_path = str(stage_path) + result = run_design( + pathways, params, current_problem, current_data, stage_setting + ) best = result["best_solution"] if best is None and result["history"]: - history = [sol for sol in result["history"] if isinstance(sol, Solution)] + history = [ + sol + for sol in result["history"] + if isinstance(sol, Solution) + ] best = history[-1] if history else None if best is None: break sequence_solutions.append(best) cumulative += float(best.fit) - next_fn = getattr(current_problem, "advance_sequence", None) - if callable(next_fn): - current_problem, current_data = next_fn(best, current_data) - else: - name = getattr(current_problem, "name", None) - if callable(name): - current_problem, current_data, _ = name(current_problem, current_data, best, "sequence") - else: - break + if sequence_path is not None: + _write_checkpoint( + sequence_path, + _sequence_checkpoint_payload( + solutions=sequence_solutions, + cumulative=cumulative, + remaining_budget=remaining_budget, + population_size=population_size, + evaluation_budget=total_budget, + rng=sequence_rng, + complete=False, + ), + ) + advanced = _advance_sequential_problem( + current_problem, current_data, best + ) + if advanced is None: + break + current_problem, current_data = advanced if current_problem is problem and current_data is data_obj: break + if sequence_path is not None: + _write_checkpoint( + sequence_path, + _sequence_checkpoint_payload( + solutions=sequence_solutions, + cumulative=cumulative, + remaining_budget=remaining_budget, + population_size=population_size, + evaluation_budget=total_budget, + rng=sequence_rng, + complete=True, + ), + ) run_histories.append(sequence_solutions) - run_best.append(sequence_solutions[-1] if sequence_solutions else _placeholder_solution()) + run_best.append( + sequence_solutions[-1] + if sequence_solutions + else _placeholder_solution() + ) fitness_sequence.append(cumulative) else: raise NotImplementedError(f"Unsupported problem mode: {mode}") @@ -754,6 +1755,3 @@ def run_algorithm(alg: 'Design', problems: Sequence[Any], data: Sequence[Any], a "input_algorithm", "run_algorithm", ] - - - diff --git a/src/autooptlib/utils/space.py b/src/autooptlib/utils/space.py index 5a9f8b2..014cde8 100644 --- a/src/autooptlib/utils/space.py +++ b/src/autooptlib/utils/space.py @@ -5,7 +5,7 @@ import numpy as np -from ..components import get_component +from ..components import compatible_custom_components, get_component from .design._helpers import get_problem_type @@ -15,7 +15,11 @@ def _to_namespace(setting: Any) -> SimpleNamespace: if isinstance(setting, dict): return SimpleNamespace(**setting) # Fallback: copy attributes - data = {k: getattr(setting, k) for k in dir(setting) if not k.startswith("__") and not callable(getattr(setting, k))} + data = { + k: getattr(setting, k) + for k in dir(setting) + if not k.startswith("__") and not callable(getattr(setting, k)) + } return SimpleNamespace(**data) @@ -43,7 +47,9 @@ def _to_behavior_matrix(behavior: Any) -> list[list[Any]] | None: return matrix -def _compute_local_bounds(behavior: list[list[Any]] | None, bounds: np.ndarray | None, ls_range: float) -> np.ndarray | None: +def _compute_local_bounds( + behavior: list[list[Any]] | None, bounds: np.ndarray | None, ls_range: float +) -> np.ndarray | None: """Compute the parameter subspace used for local search, mirroring MATLAB Space.m.""" if behavior is None or bounds is None or bounds.size == 0: return None @@ -54,7 +60,9 @@ def _compute_local_bounds(behavior: list[list[Any]] | None, bounds: np.ndarray | if first_col in (None, "", 0): return None - has_global = len(behavior) > 1 and behavior[1] and behavior[1][0] not in (None, "", 0) + has_global = ( + len(behavior) > 1 and behavior[1] and behavior[1][0] not in (None, "", 0) + ) if not has_global: return bounds.copy() @@ -72,7 +80,9 @@ def _compute_local_bounds(behavior: list[list[Any]] | None, bounds: np.ndarray | local_bounds[idx, 0] = lower local_bounds[idx, 1] = lower + span[idx] * ls_range elif trend == "large": - local_bounds[idx, 0] = upper - span[idx] * ls_range + # Keep the reference search region used by the published MATLAB + # experiments (Space.m), including its upper-bound scaling rule. + local_bounds[idx, 0] = upper - upper * ls_range local_bounds[idx, 1] = upper else: local_bounds[idx, 0] = lower @@ -89,26 +99,44 @@ def space(problem: Any, setting: Any) -> SimpleNamespace: ptype = get_problem_type(problem) if ptype == "continuous": - choose = ["choose_traverse", "choose_tournament", "choose_roulette_wheel", "choose_nich"] + choose = [ + "choose_traverse", + "choose_tournament", + "choose_roulette_wheel", + "choose_nich", + ] search = [ "search_de_current", "search_de_current_best", "search_de_random", - "search_cma", - "search_pso", + "cross_arithmetic", + "cross_sim_binary", "cross_point_one", "cross_point_two", - "cross_point_uniform", "cross_point_n", + "cross_point_uniform", "search_mu_gaussian", "search_mu_cauchy", "search_mu_polynomial", "search_mu_uniform", + "search_eda", + "search_cma", "reinit_continuous", ] - update = ["update_greedy", "update_round_robin", "update_pairwise", "update_always", "update_simulated_annealing"] + update = [ + "update_greedy", + "update_round_robin", + "update_pairwise", + "update_always", + "update_simulated_annealing", + ] elif ptype == "discrete": - choose = ["choose_traverse", "choose_tournament", "choose_roulette_wheel", "choose_nich"] + choose = [ + "choose_traverse", + "choose_tournament", + "choose_roulette_wheel", + "choose_nich", + ] search = [ "cross_point_one", "cross_point_two", @@ -116,12 +144,22 @@ def space(problem: Any, setting: Any) -> SimpleNamespace: "cross_point_n", "search_reset_one", "search_reset_rand", - "search_reset_creep", "reinit_discrete", ] - update = ["update_greedy", "update_round_robin", "update_pairwise", "update_always", "update_simulated_annealing"] + update = [ + "update_greedy", + "update_round_robin", + "update_pairwise", + "update_always", + "update_simulated_annealing", + ] elif ptype == "permutation": - choose = ["choose_traverse", "choose_tournament", "choose_roulette_wheel", "choose_nich"] + choose = [ + "choose_traverse", + "choose_tournament", + "choose_roulette_wheel", + "choose_nich", + ] search = [ "cross_order_two", "cross_order_n", @@ -131,9 +169,33 @@ def space(problem: Any, setting: Any) -> SimpleNamespace: "search_insert", "reinit_permutation", ] - update = ["update_greedy", "update_round_robin", "update_pairwise", "update_always", "update_simulated_annealing"] + update = [ + "update_greedy", + "update_round_robin", + "update_pairwise", + "update_always", + "update_simulated_annealing", + ] else: - raise NotImplementedError("space() currently supports continuous, discrete, and permutation problems") + raise NotImplementedError( + "space() currently supports continuous, discrete, and permutation problems" + ) + + choose.extend( + name + for name in compatible_custom_components("choose", ptype) + if name not in choose + ) + search.extend( + name + for name in compatible_custom_components("search", ptype) + if name not in search + ) + update.extend( + name + for name in compatible_custom_components("update", ptype) + if name not in update + ) all_op = choose + search + update op_space = np.array( @@ -194,8 +256,10 @@ def space(problem: Any, setting: Any) -> SimpleNamespace: set_obj.ParaLocalSpace = para_local_space # Provide defaults for downstream code - set_obj.TunePara = getattr(set_obj, "TunePara", False) - set_obj.alg_p = getattr(set_obj, "alg_p", 1) - set_obj.alg_q = getattr(set_obj, "alg_q", 3) - set_obj.alg_n = getattr(set_obj, "alg_n", 1) + set_obj.TunePara = getattr( + set_obj, "TunePara", getattr(set_obj, "tune_para", False) + ) + set_obj.alg_p = getattr(set_obj, "alg_p", getattr(set_obj, "AlgP", 1)) + set_obj.alg_q = getattr(set_obj, "alg_q", getattr(set_obj, "AlgQ", 3)) + set_obj.alg_n = getattr(set_obj, "alg_n", getattr(set_obj, "AlgN", 1)) return set_obj diff --git a/src/solve_f1.py b/src/solve_f1.py deleted file mode 100644 index 687da8b..0000000 --- a/src/solve_f1.py +++ /dev/null @@ -1,28 +0,0 @@ -from types import SimpleNamespace -from autooptlib.utils.general.process import process -from autooptlib.problems.cec2013 import cec2013_f1 - -setting = SimpleNamespace( - Mode="design", - AlgN=6, # 同时维护的候选算法数,适当增大保持多样性 - AlgFE=1000, # 设计阶段的总评估次数(原来 50 太低) - AlgRuns=3, # 每个候选算法重复运行 2 次,结果更稳定 - ProbN=40, # 问题侧的种群规模 - ProbFE=5000, # 每次 run_design 的函数评估额度 - Metric="quality", - Evaluate="racing", # racing 会先用少量实例筛选,省掉大量全量评估 - Compare="statistic", - RacingK=1, # 每次先用 1 个实例(可视需要调大) - IncRate=0.03, - archive=["archive_best"], -) - -final_algs, alg_trace = process( - cec2013_f1, - [30, 30, 30], # 训练实例(可以保留 3 个 30 维) - [30], # 测试实例 - setting=setting, -) - -print(f"设计完成的算法数: {len(final_algs)}") -print("测试集性能:\n", final_algs[0].performance) diff --git a/src/temp_test.py b/src/temp_test.py deleted file mode 100644 index 22bd90b..0000000 --- a/src/temp_test.py +++ /dev/null @@ -1,274 +0,0 @@ -from __future__ import annotations - -import itertools -from dataclasses import dataclass -from typing import Dict, Iterable, List, Sequence, Tuple - -import numpy as np - -from autooptlib.components import __all__ as COMPONENT_NAMES, get_component - - -@dataclass -class SimpleSolution: - dec: np.ndarray - obj: float - con: float - fit: float - - -class SimpleSolutionSet(Sequence[SimpleSolution]): - def __init__(self, items: Iterable[SimpleSolution]): - self._items: List[SimpleSolution] = list(items) - - def __len__(self) -> int: - return len(self._items) - - def __getitem__(self, idx): - return self._items[idx] - - def decs(self) -> np.ndarray: - if not self._items: - return np.zeros((0, 0)) - return np.vstack([sol.dec for sol in self._items]) - - def objs(self) -> np.ndarray: - return np.asarray([sol.obj for sol in self._items]).reshape(-1, 1) - - def cons(self) -> np.ndarray: - return np.asarray([sol.con for sol in self._items]).reshape(-1, 1) - - def fits(self) -> np.ndarray: - return np.asarray([sol.fit for sol in self._items]).reshape(-1, 1) - - -class AuxState(dict): - def __getattr__(self, item): - try: - return self[item] - except KeyError as exc: - raise AttributeError(item) from exc - - def __setattr__(self, key, value) -> None: - self[key] = value - - -@dataclass -class DummyProblem: - kind: str - dim: int = 4 - pop_size: int = 6 - - def __post_init__(self) -> None: - if self.kind == "continuous": - lower = np.full(self.dim, -5.0) - upper = np.full(self.dim, 5.0) - elif self.kind == "discrete": - lower = np.zeros(self.dim, dtype=int) - upper = np.full(self.dim, 9, dtype=int) - elif self.kind == "permutation": - lower = np.ones(self.dim, dtype=int) - upper = np.full(self.dim, self.dim, dtype=int) - else: - raise ValueError(f"Unsupported problem kind: {self.kind}") - self.bound = np.vstack((lower, upper)) - self.N = self.pop_size - self.Gmax = 10 - self.type = [self.kind, "static", "certain"] - - def evaluate(self, data, dec): # noqa: ANN001 - arr = np.asarray(dec, dtype=float) - obj = float(np.sum(arr ** 2)) - return obj, 0.0, None - - -def make_population(problem: DummyProblem, rng: np.random.Generator) -> SolutionSet: - if problem.kind == "continuous": - lower, upper = problem.bound - decs = lower + (upper - lower) * rng.random((problem.N, problem.dim)) - elif problem.kind == "discrete": - lower, upper = problem.bound.astype(int) - decs = np.vstack( - [rng.integers(lower[i], upper[i] + 1, size=problem.N) for i in range(problem.dim)] - ).T - elif problem.kind == "permutation": - domain = np.arange(1, problem.dim + 1) - decs = np.vstack([rng.permutation(domain) for _ in range(problem.N)]) - else: - raise ValueError(f"Unknown problem type: {problem.kind}") - - items: List[SimpleSolution] = [] - for row in decs: - dec = np.asarray(row, dtype=float if problem.kind == "continuous" else int) - obj = float(np.sum(np.asarray(row, dtype=float) ** 2)) - items.append(SimpleSolution(dec=dec, obj=obj, con=0.0, fit=obj)) - return SimpleSolutionSet(items) - - -def solution_set_from_decs(decs: np.ndarray, problem: DummyProblem) -> SolutionSet: - rng = np.random.default_rng(9876) - items: List[SimpleSolution] = [] - for row in np.asarray(decs): - dec = np.asarray(row, dtype=float if problem.kind == "continuous" else int) - obj = float(np.sum(np.asarray(row, dtype=float) ** 2)) - items.append(SimpleSolution(dec=dec, obj=obj, con=0.0, fit=obj + rng.random() * 1e-6)) - return SimpleSolutionSet(items) - - -def unpack(result): - if isinstance(result, tuple) and len(result) >= 1: - return result[0] - return result - - -def sample_parameter(spec): - if spec is None: - return None - arr = np.asarray(spec, dtype=float) - if arr.ndim == 0: - return float(arr) - if arr.ndim == 1: - if arr.size == 0: - return None - if arr.size == 2: - return float(arr.mean()) - return arr - if arr.ndim == 2 and arr.shape[1] == 2: - return arr.mean(axis=1) - return arr - - -def make_aux(seed_counter: Iterable[int]) -> AuxState: - seed = next(seed_counter) - return AuxState(rng=np.random.default_rng(10_000 + seed)) - - -def validate_components() -> None: - seed_counter = itertools.count() - rng = np.random.default_rng(12345) - - problem_cont = DummyProblem("continuous") - problem_disc = DummyProblem("discrete") - problem_perm = DummyProblem("permutation") - - pop_cont = make_population(problem_cont, rng) - pop_disc = make_population(problem_disc, rng) - pop_perm = make_population(problem_perm, rng) - - doubled_pop = list(pop_cont) + list(pop_cont) - - discrete_components = { - "cross_point_one", - "cross_point_two", - "cross_point_n", - "cross_point_uniform", - "reinit_discrete", - "search_reset_one", - "search_reset_rand", - "search_reset_creep", - } - permutation_components = { - "cross_order_two", - "cross_order_n", - "reinit_permutation", - "search_swap", - "search_swap_multi", - "search_scramble", - "search_insert", - } - - errors: List[Tuple[str, Exception]] = [] - - def get_context(name: str) -> Tuple[SimpleSolutionSet, DummyProblem]: - if name in permutation_components: - return pop_perm, problem_perm - if name in discrete_components: - return pop_disc, problem_disc - return pop_cont, problem_cont - - # Ensure search_cma and search_pso states are captured for para components - extra_states: Dict[str, Tuple[np.ndarray, dict]] = {} - - for name in sorted(COMPONENT_NAMES): - func = get_component(name) - try: - if name.startswith("para_"): - continue # handled later - - population, problem = get_context(name) - - param_spec = func(problem, "parameter") if name not in {"archive_tabu"} else func("parameter") - param_spec = unpack(param_spec) - param_value = sample_parameter(param_spec) - - behavior = func("behavior") - unpack(behavior) # ensure callable exists - - if name.startswith("archive_"): - if name == "archive_best": - func(population, [], "execute") - elif name == "archive_diversity": - func(population, [], problem, "execute") - elif name == "archive_statistic": - func(population, [], "execute") - elif name == "archive_tabu": - func(population, "execute") - elif name.startswith("choose_"): - aux = make_aux(seed_counter) - func(population, problem, param_value, aux, 0, "execute") - elif name.startswith("cross_"): - aux = make_aux(seed_counter) - func(population, problem, param_value, aux, "execute") - elif name.startswith("search_"): - aux = make_aux(seed_counter) - offspring, aux_out = func(population, problem, param_value, aux, "execute") - if name in {"search_cma", "search_pso"}: - extra_states[name] = (np.asarray(offspring), aux_out if isinstance(aux_out, dict) else {}) - elif name.startswith("reinit_"): - aux = make_aux(seed_counter) - func(population, problem, param_value, aux, "execute") - elif name.startswith("update_"): - aux = make_aux(seed_counter) - g_val = 1 - func(doubled_pop, problem_cont, param_value, aux, g_val, "execute") - else: - raise ValueError(f"Unhandled component category for {name}") - except Exception as exc: # pylint: disable=broad-except - errors.append((name, exc)) - - # Validate para components separately - try: - search_cma_func = get_component("search_cma") - if "search_cma" not in extra_states: - aux = make_aux(seed_counter) - offspring, aux_out = search_cma_func(pop_cont, problem_cont, None, aux, "execute") - extra_states["search_cma"] = (np.asarray(offspring), aux_out if isinstance(aux_out, dict) else {}) - decs, aux_cma = extra_states["search_cma"] - sol_set = solution_set_from_decs(decs, problem_cont) - get_component("para_cma")(sol_set, problem_cont, aux_cma, "solution") - except Exception as exc: # pylint: disable=broad-except - errors.append(("para_cma", exc)) - - try: - search_pso_func = get_component("search_pso") - if "search_pso" not in extra_states: - aux = make_aux(seed_counter) - offspring, aux_out = search_pso_func(pop_cont, problem_cont, None, aux, "execute") - extra_states["search_pso"] = (np.asarray(offspring), aux_out if isinstance(aux_out, dict) else {}) - decs, aux_pso = extra_states["search_pso"] - sol_set = solution_set_from_decs(decs, problem_cont) - get_component("para_pso")(sol_set, problem_cont, aux_pso) - except Exception as exc: # pylint: disable=broad-except - errors.append(("para_pso", exc)) - - if errors: - print("Component validation FAILED:") - for name, err in errors: - print(f" - {name}: {err}") - raise SystemExit(1) - - print(f"All {len(COMPONENT_NAMES)} components executed successfully.") - - -if __name__ == "__main__": - validate_components() diff --git a/src/test_run.py b/src/test_run.py deleted file mode 100644 index 2b67056..0000000 --- a/src/test_run.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from types import SimpleNamespace - -import numpy as np - -from autooptlib.utils.design import Design -from autooptlib.utils.design._helpers import Pathway, PathwayParam, SearchStep, SearchParam -from autooptlib.utils.general.process import process -from autooptlib.problems.cec2013 import cec2013_f1 - - -def demo_design_operator() -> None: - class DummyProblem: - def __init__(self) -> None: - self.bound = np.array([[-5.0, -5.0], [5.0, 5.0]]) - self.N = 6 - self.Gmax = 5 - self.type = ["continuous", "static", "certain"] - - def evaluate(self, data, dec): - obj = float(np.sum(dec**2)) - return obj, 0.0, None - - class DummySetting: - def __init__(self) -> None: - self.metric = "quality" - self.alg_runs = 1 - self.archive = ["archive_best"] - self.prob_n = 1 - self.tmax = np.inf - self.thres = -np.inf - - problem = DummyProblem() - setting = DummySetting() - - step = SearchStep( - primary="search_de_random", - secondary="search_mu_uniform", - termination=np.array([0.0, 3]), - ) - params = SearchParam(primary=np.array([0.5, 0.8]), secondary=np.array([0.1])) - pathway = Pathway( - choose="choose_traverse", - search=[step], - update="update_greedy", - archive=["archive_best"], - ) - path_params = PathwayParam(choose=None, search=[params], update=None) - - design = Design() - design.operator_pheno = [[pathway]] - design.parameter_pheno = [[path_params]] - design.performance = np.zeros((1, setting.alg_runs)) - design.performance_approx = np.zeros((1, setting.alg_runs)) - - design.evaluate(problem, None, setting, [0]) - print("Design demo performance:", design.performance) - - -def demo_cec2013_solve() -> None: - setting = SimpleNamespace( - Mode="solve", - AlgName="Continuous Random Search", - AlgRuns=1, - ProbN=30, - ProbFE=5000, - Metric="quality", - Tmax=None, - Thres=None, - ) - best_solutions, _ = process(cec2013_f1, [50], setting=setting) - best_fit = best_solutions[0][0].fit - print("CEC2013 f1 best fitness (one run):", best_fit) - - -if __name__ == "__main__": - demo_design_operator() - demo_cec2013_solve() diff --git a/tests/conftest.py b/tests/conftest.py index 6c63c0d..99f1af1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,4 @@ import sys from pathlib import Path -sys.path.insert(0, str(Path(__file__).resolve().parents[1] / 'src')) + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src")) diff --git a/tests/system/test_workflow.py b/tests/system/test_workflow.py index aa296f4..cc24907 100644 --- a/tests/system/test_workflow.py +++ b/tests/system/test_workflow.py @@ -3,12 +3,15 @@ from __future__ import annotations import os +from contextlib import contextmanager from pathlib import Path +from types import SimpleNamespace import numpy as np import pytest -from autooptlib import autoopt +from autooptlib import autoopt, save_algorithm +from autooptlib.utils.solve import input_algorithm @pytest.fixture() @@ -22,6 +25,17 @@ def chdir_tmp(tmp_path): os.chdir(prev) +@contextmanager +def working_directory(path: Path): + previous = Path.cwd() + path.mkdir(parents=True, exist_ok=True) + os.chdir(path) + try: + yield + finally: + os.chdir(previous) + + def test_autoopt_design_creates_outputs(chdir_tmp): final_algs, alg_trace = autoopt( Mode="design", @@ -52,6 +66,7 @@ def test_autoopt_design_creates_outputs(chdir_tmp): "Algs_best_algs_iter.csv", "Algs_perf_final_algs.csv", "ConvergenceCurve.csv", + "experiment.json", ] for name in expected: assert Path(name).exists(), f"Missing expected design output {name}" @@ -80,6 +95,186 @@ def test_autoopt_solve_generates_solution_logs(chdir_tmp): "Solutions.pkl", "Solutions.csv", "Fitness_all_runs.csv", + "experiment.json", ] for name in expected: assert Path(name).exists(), f"Missing expected solve output {name}" + + +def test_seed_reproduces_end_to_end_solve(tmp_path): + kwargs = dict( + Mode="solve", + Problem="cec2013_f1", + InstanceSolve=[10], + AlgName="Continuous Random Search", + AlgRuns=2, + ProbN=12, + ProbFE=360, + Metric="quality", + Seed=8675309, + ) + + results = [] + for name in ("first", "second"): + with working_directory(tmp_path / name): + best, histories = autoopt(**kwargs) + results.append( + ( + np.array([solution.fit for solution in best[0]]), + np.array([solution.dec for solution in best[0]]), + np.array([solution.fit for solution in histories[0]]), + ) + ) + + for left, right in zip(results[0], results[1]): + np.testing.assert_array_equal(left, right) + + +@pytest.mark.parametrize( + ("evaluation_mode", "extra"), + [ + ("intensification", {}), + ("approximate", {"Surro": 1}), + ], +) +def test_less_common_design_modes_complete_with_exact_final_test( + tmp_path, evaluation_mode, extra +): + output_dir = tmp_path / evaluation_mode + algorithms, trace = autoopt( + Mode="design", + Problem="cec2013_f1", + InstanceTrain=[2], + InstanceTest=[2], + AlgN=2, + AlgFE=4, + AlgRuns=1, + ProbN=5, + ProbFE=10, + Evaluate=evaluation_mode, + Compare="average", + Seed=44, + OutputDir=output_dir, + **extra, + ) + assert len(algorithms) == 2 + assert trace + assert np.all(np.isfinite(algorithms[0].performance)) + assert (output_dir / "Algorithm_1.json").is_file() + + +def test_exported_json_algorithm_can_be_solved_without_pickle(tmp_path): + preset, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + algorithm_file = save_algorithm(preset, tmp_path / "portable.json") + best, history = autoopt( + Mode="solve", + Problem="cec2013_f1", + InstanceSolve=[2], + AlgFile=algorithm_file, + AlgRuns=1, + ProbN=5, + ProbFE=15, + Seed=7, + OutputDir=tmp_path / "solve", + ) + assert np.isfinite(best[0][0].fit) + assert history[0] + + +@pytest.mark.parametrize("problem", ["cec2013_f6", "cec2013_f13", "cec2013_f21"]) +def test_published_cec_algorithm_profiles_execute(tmp_path, problem): + algorithm_file = ( + Path(__file__).resolve().parents[2] + / "examples" + / "reproducibility" + / "algorithms" + / f"{problem}_alg_star.json" + ) + best, history = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[10], + AlgFile=algorithm_file, + AlgRuns=1, + ProbN=10, + ProbFE=100, + Seed=19, + OutputDir=tmp_path / problem, + ) + assert np.isfinite(best[0][0].fit) + assert history[0] + + +def test_sequential_problem_allocates_budget_per_stage(tmp_path): + calls = {"count": 0} + + def sequential_problem(records, instances, mode): + if mode != "construct": + raise ValueError(mode) + data_entries = [] + for record, dimension in zip(records, instances): + dimension = int(dimension) + record.type = ["continuous", "sequential", "certain"] + record.bound = np.vstack( + (np.full(dimension, -1.0), np.full(dimension, 1.0)) + ) + + def evaluate(data, decision): + calls["count"] += 1 + return float(np.sum(np.asarray(decision) ** 2) + data.stage), 0.0, None + + def advance(best, data, problem=record): + next_stage = data.stage + 1 + return problem, SimpleNamespace( + stage=next_stage, continue_=next_stage < 3 + ) + + record.evaluate = evaluate + record.advance_sequence = advance + data_entries.append(SimpleNamespace(stage=0, continue_=True)) + # The runtime uses the attribute name "continue"; assign it without + # using a reserved word in constructor syntax. + for data in data_entries: + setattr(data, "continue", data.continue_) + original_advances = [record.advance_sequence for record in records] + for record, original in zip(records, original_advances): + + def wrapped(best, data, original=original): + problem, next_data = original(best, data) + setattr(next_data, "continue", next_data.continue_) + return problem, next_data + + record.advance_sequence = wrapped + return list(records), data_entries, None + + common = dict( + Mode="solve", + Problem=sequential_problem, + InstanceSolve=[3], + AlgName="Continuous Random Search", + AlgRuns=1, + ProbN=5, + ProbFE=30, + Metric="runtimeFE", + Tmax=30, + Thres=1e99, + Seed=2, + CheckpointDir=tmp_path / "checkpoints", + ) + best, histories = autoopt(**common, OutputDir=tmp_path / "sequential") + assert len(histories[0]) == 3 + assert len(best[0]) == 1 + assert calls["count"] == 15 + + calls_after_first = calls["count"] + with pytest.warns(UserWarning, match="trusted run"): + resumed_best, resumed_histories = autoopt( + **common, + Resume=True, + OutputDir=tmp_path / "sequential-resumed", + ) + assert calls["count"] == calls_after_first + assert resumed_best[0][0].fit == best[0][0].fit + assert [solution.fit for solution in resumed_histories[0]] == [ + solution.fit for solution in histories[0] + ] diff --git a/tests/unit/test_applications.py b/tests/unit/test_applications.py new file mode 100644 index 0000000..9622851 --- /dev/null +++ b/tests/unit/test_applications.py @@ -0,0 +1,186 @@ +"""Tests for the public application reference models.""" + +from __future__ import annotations + +from dataclasses import replace +from pathlib import Path +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib import ( + autoopt, + generate_ris_instance, + generate_stacking_instance, + load_algorithm, + load_ris_matlab, + make_material_stacking_problem, + make_ris_beamforming_problem, +) +from autooptlib.applications import ( + StackingWeights, + reciprocal_sum_rate, + stacking_constraints, + stacking_objective, +) + + +def test_ris_generator_and_objective_are_deterministic(): + left = generate_ris_instance(6, seed=14, n_antennas=2, n_users=2) + right = generate_ris_instance(6, seed=14, n_antennas=2, n_users=2) + np.testing.assert_array_equal(left.bs_to_ris, right.bs_to_ris) + phases = np.arange(6) % (2**left.phase_bits) + assert reciprocal_sum_rate(phases, left) == pytest.approx( + reciprocal_sum_rate(phases, right) + ) + assert np.isfinite(reciprocal_sum_rate(phases, left)) + + +def test_ris_validation_and_factory_errors(): + with pytest.raises(ValueError, match="positive"): + generate_ris_instance(0, seed=1) + valid = generate_ris_instance(4, seed=2, n_antennas=2, n_users=2) + with pytest.raises(ValueError, match="Incompatible"): + replace(valid, direct_channels=np.ones((2, 3))).validate() + with pytest.raises(ValueError, match="phase_bits"): + replace(valid, phase_bits=0).validate() + with pytest.raises(ValueError, match="user_weights"): + replace(valid, user_weights=np.ones(3)).validate() + with pytest.raises(ValueError, match="Expected"): + reciprocal_sum_rate(np.zeros(3), valid) + with pytest.raises(ValueError, match="must be in"): + reciprocal_sum_rate(np.full(4, 99), valid) + with pytest.raises(ValueError, match="At least one"): + make_ris_beamforming_problem({}) + + problem = make_ris_beamforming_problem({"known": valid}) + with pytest.raises(KeyError, match="Unknown RIS"): + problem([SimpleNamespace()], ["missing"], "construct") + + +def test_ris_problem_runs_through_solve(tmp_path): + instance = generate_ris_instance(5, seed=3, n_antennas=2, n_users=2) + problem = make_ris_beamforming_problem({"small": instance}) + best, histories = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=["small"], + AlgName="Discrete Random Search", + ProbN=4, + ProbFE=8, + Seed=4, + OutputDir=tmp_path, + ) + assert np.isfinite(best[0][0].fit) + assert histories[0] + + +def test_stacking_model_objective_constraints_and_validation(): + instance = generate_stacking_instance( + 6, seed=7, n_levels=3, n_positions=4, rack_width=20 + ) + decision = np.concatenate((np.arange(6) % 3, np.arange(6) % 4, np.arange(6) % 2)) + assert np.isfinite(stacking_objective(decision, instance)) + assert stacking_constraints(decision, instance).shape == (6,) + with pytest.raises(ValueError, match="Expected"): + stacking_objective(decision[:-1], instance) + invalid = decision.copy() + invalid[0] = 99 + with pytest.raises(ValueError, match="outside"): + stacking_constraints(invalid, instance) + with pytest.raises(ValueError, match="positive"): + generate_stacking_instance(0, seed=1) + with pytest.raises(ValueError, match="non-negative"): + StackingWeights(heavy_low=-1).validate() + with pytest.raises(ValueError, match="At least one"): + make_material_stacking_problem({}) + + +def test_stacking_problem_runs_through_solve(tmp_path): + instance = generate_stacking_instance( + 5, + seed=8, + n_levels=3, + n_positions=4, + rack_width=20, + max_level_weight=100, + ) + problem = make_material_stacking_problem({"small": instance}) + records, data, _ = problem([SimpleNamespace(N=4, Gmax=2)], ["small"], "construct") + assert records[0].bound.shape == (2, 15) + assert data[0] is instance + + best, histories = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=["small"], + AlgName="Discrete Random Search", + ProbN=4, + ProbFE=8, + Seed=9, + OutputDir=tmp_path, + ) + assert np.isfinite(best[0][0].fit) + assert histories[0] + + +@pytest.mark.parametrize( + ("filename", "choose", "primary", "secondary", "parameter"), + [ + ( + "material_stacking_alg_star.json", + "choose_roulette_wheel", + "cross_point_one", + "search_reset_rand", + 0.1342, + ), + ( + "ris_beamforming_alg_star.json", + "choose_nich", + "cross_point_uniform", + "search_reset_one", + 0.1229, + ), + ], +) +def test_paper_application_algorithm_json_is_valid( + filename, choose, primary, secondary, parameter +): + path = ( + Path(__file__).resolve().parents[2] + / "examples" + / "applications" + / "algorithms" + / filename + ) + algorithm = load_algorithm(path) + pathway = algorithm.operator_pheno[0][0] + params = algorithm.parameter_pheno[0][0].search[0] + assert pathway.choose == choose + assert pathway.search[0].primary == primary + assert pathway.search[0].secondary == secondary + values = [params.primary, params.secondary] + assert any( + value is not None and value[0] == pytest.approx(parameter) for value in values + ) + + +def test_optional_matlab_ris_loader(tmp_path): + scipy_io = pytest.importorskip("scipy.io") + record = { + "G": np.ones((3, 2), dtype=complex), + "Hd": np.ones((2, 2), dtype=complex), + "Hr": np.ones((2, 3), dtype=complex), + "b": 2, + "PT": 1.5, + "omega": np.array([1.0, 2.0]), + } + source = tmp_path / "Beanforming.mat" + scipy_io.savemat(source, {"Data": np.asarray([record], dtype=object)}) + instances = load_ris_matlab(source) + assert list(instances) == [1] + assert instances[1].n_elements == 3 + np.testing.assert_array_equal(instances[1].user_weights, [1.0, 2.0]) + with pytest.raises(FileNotFoundError): + load_ris_matlab(tmp_path / "missing.mat") diff --git a/tests/unit/test_cli.py b/tests/unit/test_cli.py index c3b0ee0..5e77696 100644 --- a/tests/unit/test_cli.py +++ b/tests/unit/test_cli.py @@ -56,4 +56,3 @@ def test_autoopt_solve_smoke(tmp_workdir): assert len(best_solutions) == 1 assert Path("Solutions.pkl").exists() assert Path("Fitness_all_runs.csv").exists() - diff --git a/tests/unit/test_component_contracts.py b/tests/unit/test_component_contracts.py new file mode 100644 index 0000000..3739fa4 --- /dev/null +++ b/tests/unit/test_component_contracts.py @@ -0,0 +1,147 @@ +"""Contracts for component helpers, archives, and metadata modes.""" + +from __future__ import annotations + +from dataclasses import dataclass +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib.components import _utils +from autooptlib.components.archive_best import _extract_fits, archive_best +from autooptlib.components.archive_diversity import archive_diversity +from autooptlib.components.archive_statistic import archive_statistic +from autooptlib.components.archive_tabu import archive_tabu +from autooptlib.utils.space import ( + _compute_local_bounds, + _to_behavior_matrix, + _to_namespace, + space, +) + + +@dataclass +class Item: + dec: np.ndarray + obj: float = 0.0 + con: object = None + fit: object = None + + +@pytest.mark.parametrize( + "component", + [archive_best, archive_diversity, archive_statistic, archive_tabu], +) +def test_archive_metadata_and_unknown_modes(component): + assert component("parameter") == (None, None) + assert component("behavior") == (["", ""], None) + with pytest.raises(ValueError, match="Unsupported mode"): + component("unknown") + + +def test_tabu_archive_returns_latest_collection(): + solutions = [Item(np.array([0.0]))] + assert archive_tabu(solutions, "execute") == (solutions, None) + + +def test_best_archive_fitness_fallbacks_and_errors(): + class WithFits: + fits = np.array([2.0, 1.0]) + + np.testing.assert_array_equal(_extract_fits(WithFits()), [2.0, 1.0]) + items = [ + Item(np.array([0]), obj=3.0, con=None), + Item(np.array([1]), obj=1.0, con=[0.0]), + Item(np.array([2]), obj=0.0, con=[2.0]), + ] + np.testing.assert_array_equal(_extract_fits(items), [3.0, 1.0, 100000002.0]) + archive, _ = archive_best(items, [items[0]], "execute") + assert archive[-1] is items[1] + with pytest.raises(ValueError, match="expose fits"): + _extract_fits(1) + with pytest.raises(ValueError, match="lacks fit"): + _extract_fits([SimpleNamespace()]) + + +def test_diversity_archive_empty_and_discrete_distance(): + assert archive_diversity([], [], SimpleNamespace(), "execute") == ([], None) + solutions = [ + Item(np.array([1, 2])), + Item(np.array([1, 3])), + Item(np.array([3, 2])), + ] + problem = SimpleNamespace(type=["permutation"], N=2, rng=np.random.default_rng(4)) + archive, _ = archive_diversity(solutions, [], problem, "execute") + assert len(archive) == 2 + + +def test_statistic_archive_accepts_property_and_appends(): + solution = SimpleNamespace(fits=np.array([1.0, 3.0])) + first, _ = archive_statistic(solution, None, "execute") + second, _ = archive_statistic(solution, first, "execute") + assert first.shape == (1, 2) + assert second.shape == (2, 2) + + +def test_component_utility_contracts(): + assert _utils.flex_get(None, "x", 2) == 2 + assert _utils.flex_get({"some_value": 3}, "some_value") == 3 + assert _utils.flex_get(SimpleNamespace(value=lambda: 4), "value") == 4 + generator = np.random.default_rng(1) + assert _utils.ensure_rng(generator) is generator + assert _utils.ensure_rng({"rng": generator}) is generator + assert _utils.ensure_rng(SimpleNamespace(rng=generator)) is generator + assert isinstance(_utils.ensure_rng(None), np.random.Generator) + np.testing.assert_array_equal(_utils.to_numpy([1, 2]), [1, 2]) + + assert _utils.extract_fits([SimpleNamespace(fitness=1.0)])[0] == 1.0 + assert _utils.extract_fits([SimpleNamespace(fits=2.0)])[0] == 2.0 + with pytest.raises(ValueError, match="must expose"): + _utils.extract_fits([SimpleNamespace()]) + with pytest.raises(ValueError, match="scalar-like"): + _utils.extract_fits([SimpleNamespace(fit=[1, 2])]) + with pytest.raises(ValueError, match="fitness information"): + _utils.extract_fits(object()) + assert _utils.solution_as_list([1]) == [1] + assert _utils.solution_as_list((1, 2)) == [1, 2] + with pytest.raises(TypeError, match="indexable"): + _utils.solution_as_list(object()) + + distances = _utils.pairwise_distances(np.array([[0.0], [2.0]])) + np.testing.assert_array_equal(distances, [[0.0, 2.0], [2.0, 0.0]]) + assert sorted(_utils.randperm(3, generator).tolist()) == [0, 1, 2] + np.testing.assert_array_equal(_utils.reshape_pairs([1, 2]), [[1, 2]]) + with pytest.raises(ValueError, match="even length"): + _utils.reshape_pairs([1]) + assert _utils.as_int("2") == 2 + assert _utils.as_int("x", 3) == 3 + assert _utils.ensure_column([1, 2]).shape == (2, 1) + assert _utils.ensure_column([[1, 2]]).shape == (1, 2) + + +def test_space_conversion_and_local_bounds_helpers(): + assert _to_namespace({"x": 1}).x == 1 + + class Setting: + x = 2 + + assert _to_namespace(Setting()).x == 2 + assert _to_behavior_matrix(None) is None + assert _to_behavior_matrix(1) is None + assert _to_behavior_matrix((("LS", "small"), ("GS",))) == [ + ["LS", "small"], + ["GS"], + ] + converted = _to_behavior_matrix(np.array([["LS", "large"], ["GS", ""]])) + assert converted[0] == ["LS", "large"] + assert _to_behavior_matrix([None, "GS"]) == [[], ["GS"]] + assert _compute_local_bounds(None, None, 0.5) is None + assert _compute_local_bounds([], np.array([[0, 1]]), 0.5) is None + assert _compute_local_bounds([[None]], np.array([[0, 1]]), 0.5) is None + bounds = np.array([[0.0, 10.0], [0.0, 10.0], [0.0, 10.0]]) + local = _compute_local_bounds([["LS", "small", "large"], ["GS"]], bounds, 0.25) + np.testing.assert_array_equal(local, [[0, 2.5], [7.5, 10], [0, 10]]) + np.testing.assert_array_equal(_compute_local_bounds([["LS"]], bounds, 0.5), bounds) + with pytest.raises(NotImplementedError, match="continuous, discrete"): + space(SimpleNamespace(type=["graph"]), SimpleNamespace()) diff --git a/tests/unit/test_components.py b/tests/unit/test_components.py index a9b2bb9..11990b5 100644 --- a/tests/unit/test_components.py +++ b/tests/unit/test_components.py @@ -4,12 +4,19 @@ from dataclasses import dataclass from types import SimpleNamespace +from typing import Any import numpy as np from autooptlib.components.archive_best import archive_best from autooptlib.components.archive_diversity import archive_diversity from autooptlib.components.archive_statistic import archive_statistic +from autooptlib.components.choose_brainstorm import choose_brainstorm +from autooptlib.components.choose_ica import choose_ica +from autooptlib.components.choose_nich import choose_nich +from autooptlib.components.choose_roulette_wheel import choose_roulette_wheel +from autooptlib.components.choose_tournament import choose_tournament +from autooptlib.components.choose_traverse import choose_traverse from autooptlib.components.cross_arithmetic import cross_arithmetic from autooptlib.components.cross_order_n import cross_order_n from autooptlib.components.cross_order_two import cross_order_two @@ -18,12 +25,6 @@ from autooptlib.components.cross_point_two import cross_point_two from autooptlib.components.cross_point_uniform import cross_point_uniform from autooptlib.components.cross_sim_binary import cross_sim_binary -from autooptlib.components.choose_brainstorm import choose_brainstorm -from autooptlib.components.choose_ica import choose_ica -from autooptlib.components.choose_nich import choose_nich -from autooptlib.components.choose_roulette_wheel import choose_roulette_wheel -from autooptlib.components.choose_tournament import choose_tournament -from autooptlib.components.choose_traverse import choose_traverse from autooptlib.components.para_cma import para_cma from autooptlib.components.para_cmaes import para_cmaes from autooptlib.components.para_pso import para_pso @@ -35,14 +36,13 @@ from autooptlib.components.search_de_random import search_de_random from autooptlib.components.search_eda import search_eda from autooptlib.components.search_ica import search_ica -from autooptlib.components.search_mu_gaussian import search_mu_gaussian +from autooptlib.components.search_insert import search_insert from autooptlib.components.search_mu_polynomial import search_mu_polynomial from autooptlib.components.search_mu_uniform import search_mu_uniform from autooptlib.components.search_pso import search_pso from autooptlib.components.search_reset_creep import search_reset_creep from autooptlib.components.search_reset_rand import search_reset_rand from autooptlib.components.search_scramble import search_scramble -from autooptlib.components.search_insert import search_insert from autooptlib.components.search_swap import search_swap from autooptlib.components.search_swap_multi import search_swap_multi from autooptlib.components.update_greedy import update_greedy @@ -88,7 +88,9 @@ def fits(self): def test_choose_traverse_indexes_all(): problem = SimpleNamespace(N=5) - idx, meta = choose_traverse(DummyPopulation(np.zeros((5, 1)), np.arange(5)), problem, None, None, "execute") + idx, meta = choose_traverse( + DummyPopulation(np.zeros((5, 1)), np.arange(5)), problem, None, None, "execute" + ) assert np.all(idx == np.arange(5)) assert meta is None @@ -96,14 +98,22 @@ def test_choose_traverse_indexes_all(): def test_choose_tournament_returns_indices(): problem = SimpleNamespace(N=3) rng_aux = {"rng": np.random.default_rng(0)} - idx, _ = choose_tournament(DummyPopulation(np.zeros((4, 1)), [4, 1, 3, 2]), problem, None, rng_aux, "execute") + idx, _ = choose_tournament( + DummyPopulation(np.zeros((4, 1)), [4, 1, 3, 2]), + problem, + None, + rng_aux, + "execute", + ) assert idx.shape == (problem.N,) def test_choose_roulette_wheel_biases_low_fitness(): problem = SimpleNamespace(N=2) rng_aux = {"rng": np.random.default_rng(1)} - idx, _ = choose_roulette_wheel(DummyPopulation(np.zeros((3, 1)), [3, 1, 5]), problem, None, rng_aux, "execute") + idx, _ = choose_roulette_wheel( + DummyPopulation(np.zeros((3, 1)), [3, 1, 5]), problem, None, rng_aux, "execute" + ) assert idx.shape == (problem.N,) assert np.all(idx < 3) @@ -116,10 +126,14 @@ def test_choose_ica_records_imperialist_count(): def test_choose_brainstorm_runs_kmeans(): - solution = DummyPopulation(np.array([[0.0, 0.0], [5.0, 5.0], [4.0, 4.5], [-1.0, -1.2]]), [1, 2, 3, 4]) + solution = DummyPopulation( + np.array([[0.0, 0.0], [5.0, 5.0], [4.0, 4.5], [-1.0, -1.2]]), [1, 2, 3, 4] + ) problem = SimpleNamespace(type=["continuous", "static"]) rng_aux = {"rng": np.random.default_rng(2)} - idx, _ = choose_brainstorm(solution, problem, np.array([2, 0.5]), rng_aux, "execute") + idx, _ = choose_brainstorm( + solution, problem, np.array([2, 0.5]), rng_aux, "execute" + ) assert idx.shape[0] == len(solution.fits()) @@ -169,13 +183,17 @@ def test_cross_order_variants_return_permutations(): def test_search_de_current_shape_matches(): parent = np.array([[0.0, 0.0], [1.0, 1.0], [-1.0, -1.0]]) - offspring, _ = search_de_current(parent, None, np.array([[0.5, 0.8], [0.5, 0.8]]), None, "execute") + offspring, _ = search_de_current( + parent, None, np.array([[0.5, 0.8], [0.5, 0.8]]), None, "execute" + ) assert offspring.shape == parent.shape def test_search_de_random_returns_population(): parent = np.array([[0.0, 0.0], [1.0, -1.0], [0.5, 0.5]]) - offspring, _ = search_de_random(parent, None, np.array([[0.6, 0.7]]), None, "execute") + offspring, _ = search_de_random( + parent, None, np.array([[0.6, 0.7]]), None, "execute" + ) assert offspring.shape == parent.shape @@ -189,7 +207,9 @@ def test_search_mu_uniform_within_bounds(): def test_search_reset_rand_respects_integer_bounds(): parent = np.array([[0, 0], [1, 1]]) problem = SimpleNamespace(bound=np.array([[0, 0], [5, 5]])) - offspring, _ = search_reset_rand(parent, problem, np.array([0.5]), {"rng": np.random.default_rng(0)}, "execute") + offspring, _ = search_reset_rand( + parent, problem, np.array([0.5]), {"rng": np.random.default_rng(0)}, "execute" + ) assert offspring.shape == parent.shape assert np.issubdtype(offspring.dtype, np.integer) @@ -204,7 +224,9 @@ def test_search_ica_respects_auxiliary_imperialist_count(): parent = np.array([[0.0, 0.0], [5.0, 5.0], [10.0, 10.0]]) problem = SimpleNamespace(bound=np.array([[0.0, 0.0], [10.0, 10.0]])) aux = {"imperialist_count": 2} - offspring, aux_out = search_ica(parent, problem, np.array([0.7, 0.1]), aux, "execute") + offspring, aux_out = search_ica( + parent, problem, np.array([0.7, 0.1]), aux, "execute" + ) assert offspring.shape == parent.shape assert aux_out["imperialist_count"] == 2 @@ -212,7 +234,9 @@ def test_search_ica_respects_auxiliary_imperialist_count(): def test_search_mu_polynomial_respects_bounds(): parent = np.array([[0.1, 0.9], [0.4, 0.6]]) problem = SimpleNamespace(bound=np.array([[0.0, 0.0], [1.0, 1.0]])) - offspring, _ = search_mu_polynomial(parent, problem, np.array([0.3, 20.0]), None, "execute") + offspring, _ = search_mu_polynomial( + parent, problem, np.array([0.3, 20.0]), None, "execute" + ) assert offspring.shape == parent.shape assert np.all(offspring >= 0.0) and np.all(offspring <= 1.0) @@ -220,7 +244,9 @@ def test_search_mu_polynomial_respects_bounds(): def test_search_reset_creep_returns_integers(): parent = np.array([[1, 2, 3], [3, 2, 1]]) problem = SimpleNamespace(bound=np.array([[0, 0, 0], [5, 5, 5]])) - offspring, _ = search_reset_creep(parent, problem, np.array([0.5]), {"rng": np.random.default_rng(9)}, "execute") + offspring, _ = search_reset_creep( + parent, problem, np.array([0.5]), {"rng": np.random.default_rng(9)}, "execute" + ) assert offspring.shape == parent.shape assert np.issubdtype(offspring.dtype, np.integer) @@ -228,7 +254,9 @@ def test_search_reset_creep_returns_integers(): def test_search_swap_variants_return_permutations(): parent = np.array([[1, 2, 3, 4], [4, 3, 2, 1]]) for fn in (search_swap, search_swap_multi, search_scramble, search_insert): - offspring, _ = fn(parent, None, None, {"rng": np.random.default_rng(10)}, "execute") + offspring, _ = fn( + parent, None, None, {"rng": np.random.default_rng(10)}, "execute" + ) assert offspring.shape == parent.shape for row in offspring: assert sorted(row.tolist()) == [1, 2, 3, 4] @@ -273,7 +301,9 @@ def __init__(self, dec): def test_reinit_continuous_returns_within_bounds(): solution = [DummySolution([0.0, 0.0], 0.0)] problem = SimpleNamespace(bound=np.array([[0.0, 0.0], [1.0, 1.0]])) - offspring, _ = reinit_continuous(solution, problem, None, {"rng": np.random.default_rng(4)}, "execute") + offspring, _ = reinit_continuous( + solution, problem, None, {"rng": np.random.default_rng(4)}, "execute" + ) assert offspring.shape == (len(solution), 2) assert np.all(offspring >= 0.0) and np.all(offspring <= 1.0) @@ -281,7 +311,9 @@ def test_reinit_continuous_returns_within_bounds(): def test_reinit_discrete_generates_integers(): solution = np.array([[0, 0], [1, 1]], dtype=int) problem = SimpleNamespace(bound=np.array([[0, 0], [3, 3]])) - offspring, _ = reinit_discrete(solution, problem, None, {'rng': np.random.default_rng(5)}, 'execute') + offspring, _ = reinit_discrete( + solution, problem, None, {"rng": np.random.default_rng(5)}, "execute" + ) assert offspring.shape == solution.shape assert np.issubdtype(offspring.dtype, np.integer) @@ -289,7 +321,9 @@ def test_reinit_discrete_generates_integers(): def test_reinit_permutation_generates_permutations(): solution = np.array([[1, 2, 3], [3, 2, 1]], dtype=int) problem = SimpleNamespace(bound=np.array([[1, 2, 3], [1, 2, 3]])) - offspring, _ = reinit_permutation(solution, problem, None, {'rng': np.random.default_rng(6)}, 'execute') + offspring, _ = reinit_permutation( + solution, problem, None, {"rng": np.random.default_rng(6)}, "execute" + ) assert offspring.shape == solution.shape for row in offspring: assert sorted(row.tolist()) == [1, 2, 3] @@ -319,7 +353,9 @@ def test_update_pairwise_compares_old_new_pairs(): def test_update_round_robin_keeps_high_scores(): sols = [DummySolution([0], fit) for fit in [1, 2, 3, 4]] problem = SimpleNamespace(N=2) - updated, _ = update_round_robin(sols, problem, None, {"rng": np.random.default_rng(7)}, "execute") + updated, _ = update_round_robin( + sols, problem, None, {"rng": np.random.default_rng(7)}, "execute" + ) assert len(updated) == 2 @@ -328,7 +364,9 @@ def test_update_simulated_annealing_uses_acceptance(): new = [DummySolution([0], fit) for fit in [4, 8, 6.5]] combined = old + new problem = SimpleNamespace(N=3) - updated, _ = update_simulated_annealing(combined, problem, np.array([0.5]), {}, 1, 'execute') + updated, _ = update_simulated_annealing( + combined, problem, np.array([0.5]), {}, 1, "execute" + ) assert len(updated) == problem.N @@ -340,7 +378,9 @@ def test_archive_best_appends_minimum(): def test_archive_diversity_returns_spread(): sols = DummyPopulation(np.array([[0, 0], [1, 1], [2, 2]]), [1, 2, 3]) - archive, _ = archive_diversity(sols, [], SimpleNamespace(type=["continuous"]), "execute") + archive, _ = archive_diversity( + sols, [], SimpleNamespace(type=["continuous"]), "execute" + ) assert len(archive) > 0 @@ -408,16 +448,7 @@ def __init__(self, dec, fit): sol = SolutionSet([Particle([0.0, 0.0], 3.0), Particle([1.0, 1.0], 1.0)]) problem = SimpleNamespace() - aux = {'Pbest': SolutionSet([Particle([2.0, 2.0], 2.0), Particle([2.5, 2.5], 1.5)])} + aux = {"Pbest": SolutionSet([Particle([2.0, 2.0], 2.0), Particle([2.5, 2.5], 1.5)])} new_aux = para_pso(sol, problem, aux) - assert 'Pbest' in new_aux and len(new_aux['Pbest']) == len(sol) - assert 'Gbest' in new_aux - - - - - - - - - + assert "Pbest" in new_aux and len(new_aux["Pbest"]) == len(sol) + assert "Gbest" in new_aux diff --git a/tests/unit/test_evaluation_modes.py b/tests/unit/test_evaluation_modes.py new file mode 100644 index 0000000..c953299 --- /dev/null +++ b/tests/unit/test_evaluation_modes.py @@ -0,0 +1,183 @@ +"""Focused tests for exact, approximate, and sequential design evaluation.""" + +from __future__ import annotations + +import importlib +import sys +from types import ModuleType, SimpleNamespace + +import numpy as np +import pytest + +from autooptlib.utils.design import Design +from autooptlib.utils.solve import Solution + +evaluation_module = importlib.import_module("autooptlib.utils.design._evaluate") + + +def _design(): + design = Design() + design.construct([[object()]], [[object()]]) + return design + + +def _problem(behavior="static"): + return SimpleNamespace( + type=["continuous", behavior, "certain"], + N=2, + bound=np.array([[-1.0], [1.0]]), + ) + + +def _setting(metric="quality", evaluate="exact"): + return SimpleNamespace( + Metric=metric, + Evaluate=evaluate, + AlgRuns=1, + ProbN=2, + ProbFE=6, + Tmax=[2, 4, 6] if metric == "auc" else None, + Thres=[5, 3, 1] if metric == "auc" else None, + ) + + +def test_matrix_resize_preserves_existing_values(): + matrix = np.array([[3.0]]) + assert evaluation_module._ensure_matrix(matrix, 1, 1) is matrix + resized = evaluation_module._ensure_matrix(matrix, 2, 2) + assert resized.shape == (2, 2) + assert resized[0, 0] == 3.0 + assert evaluation_module._ensure_matrix(resized, 1, 1) is resized + + +def test_design_performance_aggregates_one_value_per_algorithm(): + design = Design() + design.performance = np.array([[1.0, 3.0], [5.0, 7.0]]) + design.performance_approx = np.array([[2.0, 4.0], [6.0, 8.0]]) + np.testing.assert_array_equal(design.ave_perform_all(), [4.0]) + np.testing.assert_array_equal(design.ave_perform_approx_all(), [5.0]) + np.testing.assert_array_equal(design.ave_perform_per([1]), [6.0]) + np.testing.assert_array_equal(design.ave_perform_approx_per([0]), [3.0]) + + +def test_sequential_update_supports_method_module_and_fallback(monkeypatch): + marker = object() + direct = SimpleNamespace(advance_sequence=lambda best, data: (marker, data + 1)) + assert evaluation_module._update_sequential(direct, 1, object()) == (marker, 2) + + module = ModuleType("autooptlib_test_sequence") + module.advance = lambda problem, data, best, mode: (marker, mode) + monkeypatch.setitem(sys.modules, module.__name__, module) + plugin = SimpleNamespace(name="autooptlib_test_sequence.advance") + assert evaluation_module._update_sequential(plugin, None, None) == ( + marker, + "sequence", + ) + broken = SimpleNamespace(name="missing.module") + assert evaluation_module._update_sequential(broken, 1, None) == (broken, 1) + plain = SimpleNamespace(name=None) + assert evaluation_module._update_sequential(plain, 2, None) == (plain, 2) + + +@pytest.mark.parametrize( + ("metric", "expected"), + [ + ("quality", 2.0), + ("auc", 1.5), + ("runtimeFE", 6.0), + ("runtimeSec", 0.25), + ("custom", 2.0), + ], +) +def test_static_evaluation_metrics(monkeypatch, metric, expected): + monkeypatch.setattr( + evaluation_module, + "run_design", + lambda *args: { + "fit_history": [5.0, 3.0, 2.0], + "evaluations": 6, + "elapsed": 0.25, + }, + ) + design = _design() + design.evaluate([_problem()], [None], _setting(metric), [0]) + assert design.performance[0, 0] == pytest.approx(expected) + + +def test_static_approximate_and_empty_auc(monkeypatch): + monkeypatch.setattr( + evaluation_module, + "run_design", + lambda *args: {"fit_history": [], "evaluations": 0, "elapsed": 0.0}, + ) + design = _design() + design.evaluate(_problem(), None, _setting("auc", "approximate"), [1]) + assert design.performance_approx.shape == (2, 1) + assert np.isinf(design.performance_approx[1, 0]) + + +def _sequential_problem(next_stage=True): + problem = _problem("sequential") + + def advance(best, data): + next_data = SimpleNamespace(stage=data.stage + 1) + setattr(next_data, "continue", next_stage and next_data.stage < 1) + return problem, next_data + + problem.advance_sequence = advance + return problem + + +@pytest.mark.parametrize( + ("metric", "expected"), + [ + ("quality", 2.0), + ("auc", 1.5), + ("runtimeFE", 2.0), + ("runtimeSec", 0.5), + ("custom", 2.0), + ], +) +def test_sequential_evaluation_metrics(monkeypatch, metric, expected): + best = Solution(np.array([0.0]), 2.0, 0.0, 2.0) + monkeypatch.setattr( + evaluation_module, + "run_design", + lambda *args: { + "fit_history": [5.0, 3.0, 2.0], + "evaluations": 2, + "elapsed": 0.5, + "best_solution": best, + }, + ) + data = SimpleNamespace(stage=0) + setattr(data, "continue", True) + design = _design() + design.evaluate([_sequential_problem()], [data], _setting(metric), [0]) + assert design.performance[0, 0] == pytest.approx(expected) + + +def test_sequential_empty_history_and_missing_best_stop(monkeypatch): + monkeypatch.setattr( + evaluation_module, + "run_design", + lambda *args: { + "fit_history": [], + "evaluations": 2, + "elapsed": 0.0, + "best_solution": None, + }, + ) + data = SimpleNamespace() + setattr(data, "continue", True) + design = _design() + design.evaluate([_sequential_problem()], [data], _setting("auc"), [0]) + assert np.isinf(design.performance[0, 0]) + + +def test_evaluation_no_phenotype_and_unknown_behavior(): + empty = Design() + assert empty.evaluate([], [], _setting(), []) is empty + design = _design() + with pytest.raises(NotImplementedError, match="Unsupported problem type behavior"): + design.evaluate([_problem("dynamic")], [None], _setting(), [0]) diff --git a/tests/unit/test_helper_contracts.py b/tests/unit/test_helper_contracts.py new file mode 100644 index 0000000..4f33784 --- /dev/null +++ b/tests/unit/test_helper_contracts.py @@ -0,0 +1,117 @@ +"""Direct contracts for shared design helpers.""" + +from __future__ import annotations + +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib.utils.design._helpers import ( + as_list, + ceil_divide, + copy_if_array, + create_zero_matrix, + deep_copy_operator_matrix, + ensure_aux_list, + ensure_para_slot, + ensure_rng, + get_behavior, + get_flex, + get_problem_type, + has_global_behavior, + has_local_behavior, + inclusive_range, + problem_list, + reinit_parameters, + sample_without, + set_behavior, + to_numpy, +) + + +def test_flexible_lookup_handles_dicts_acronyms_defaults_and_required(): + assert get_flex({"value": 3}, "value") == 3 + assert get_flex(SimpleNamespace(ProbFE=9), "prob_fe") == 9 + assert get_flex(None, "x", 4) == 4 + with pytest.raises(AttributeError, match="None"): + get_flex(None, "x", required=True) + with pytest.raises(AttributeError, match="not found"): + get_flex(SimpleNamespace(), "x", required=True) + + class Slotted: + __slots__ = () + + assert get_flex(Slotted(), "x", 5) == 5 + + +def test_rng_and_array_helpers_cover_supported_inputs(): + generator = np.random.default_rng(1) + assert ensure_rng(SimpleNamespace(rng=generator)) is generator + assert isinstance(ensure_rng(SimpleNamespace(rng=2)), np.random.Generator) + assert ensure_rng(SimpleNamespace(random_state=generator)) is generator + assert isinstance(ensure_rng(SimpleNamespace(random_state=2)), np.random.Generator) + assert isinstance(ensure_rng(SimpleNamespace()), np.random.Generator) + assert to_numpy(None) is None + assert to_numpy([1, 2], dtype=float).dtype == float + + +def test_parameter_and_collection_helpers_cover_edge_cases(): + with pytest.raises(ValueError, match="cannot be None"): + ensure_para_slot(None, 1) + params = [] + assert ensure_para_slot(params, 2) == [None, None] + params = [None] + assert ensure_para_slot(params, 1) == [None, None] + params = [(1, 2)] + assert ensure_para_slot(params, 1) == [1, 2] + + assert problem_list(None) == [] + assert problem_list((1, 2)) == [1, 2] + assert problem_list("x") == ["x"] + assert get_problem_type(None) is None + assert get_problem_type(SimpleNamespace(type="discrete")) == "discrete" + assert get_problem_type(SimpleNamespace()) is None + assert as_list(None) == [] + original = [1] + assert as_list(original) is original + assert as_list((1, 2)) == [1, 2] + assert as_list(1) == [1] + + +def test_behavior_sampling_and_matrix_helpers(): + assert has_global_behavior([[None], ["GS"]]) + assert not has_global_behavior(None) + assert has_local_behavior([["LS"]]) + assert not has_local_behavior([]) + rng = np.random.default_rng(2) + assert sample_without([1, 2], 1, rng) == 2 + with pytest.raises(ValueError, match="No alternative"): + sample_without([1], 1, rng) + assert inclusive_range(3, 2) == [] + assert inclusive_range(2, 3) == [2, 3] + + matrix = np.array([[1, 2]]) + copied = deep_copy_operator_matrix(matrix) + assert np.array_equal(copied, matrix) and copied is not matrix + assert create_zero_matrix(2).shape == (2, 2) + entry = [] + set_behavior(entry, "GS") + assert get_behavior(entry) == "GS" + assert get_behavior([]) is None + + +def test_numeric_and_copy_helpers(): + rng = np.random.default_rng(3) + values = reinit_parameters(np.array([[0.0, 1.0], [2.0, 3.0]]), rng) + assert np.all(values >= [0, 2]) and np.all(values <= [1, 3]) + assert ceil_divide(5, 0) == 0 + assert ceil_divide(5, 2) == 3 + array = np.array([1]) + assert copy_if_array(array) is not array + assert copy_if_array((1, 2)) == [1, 2] + marker = object() + assert copy_if_array(marker) is marker + assert ensure_aux_list(None, 2) == [None, None] + assert ensure_aux_list([1], 2) == [1, None] + assert ensure_aux_list([1, 2], 1) == [1, 2] diff --git a/tests/unit/test_input_validation.py b/tests/unit/test_input_validation.py new file mode 100644 index 0000000..4f31d4b --- /dev/null +++ b/tests/unit/test_input_validation.py @@ -0,0 +1,214 @@ +"""Tests for public option parsing and validation failures.""" + +from __future__ import annotations + +from types import SimpleNamespace + +import pytest + +from autooptlib.utils.general.input import ( + _check_setting, + _ensure_namespace, + _find_argument, + _to_list, + _to_sequence, + input_handler, + normalize_options, +) + + +def _design_setting(**overrides): + values = dict( + Mode="design", + AlgP=1, + AlgQ=3, + ProbN=5, + ProbFE=20, + InnerFE=1, + AlgN=2, + AlgFE=4, + AlgRuns=2, + Metric="quality", + Compare="average", + Evaluate="exact", + ) + values.update(overrides) + return SimpleNamespace(**values) + + +def _solve_setting(**overrides): + values = dict( + Mode="solve", + ProbN=5, + ProbFE=20, + AlgRuns=1, + AlgName="Continuous Random Search", + Metric="quality", + ) + values.update(overrides) + return SimpleNamespace(**values) + + +def test_option_helpers_cover_aliases_and_container_forms(): + with pytest.raises(TypeError, match="supplied more than once"): + normalize_options({"ProbFE": 10, "prob_fe": 20}) + with pytest.raises(TypeError, match="Unknown AutoOpt option"): + normalize_options({1: 2}) + assert _to_sequence("x") == ("x",) + assert _to_sequence([1, 2]) == [1, 2] + assert _to_list((1, 2)) == [1, 2] + assert _to_list(1) == [1] + assert _ensure_namespace({"x": 1}).x == 1 + + class Setting: + x = 2 + + assert _ensure_namespace(Setting()).x == 2 + assert _find_argument([], "x") == (False, None) + assert _find_argument(["y", 1], "x") == (False, None) + with pytest.raises(ValueError, match="Missing value"): + _find_argument(["x"], "x") + + +def test_input_handler_data_and_defaults(): + with pytest.raises(ValueError, match="targeted problem"): + input_handler([], SimpleNamespace(Mode="solve"), "data") + with pytest.raises(ValueError, match="instance indexes"): + input_handler(["Problem", "p"], SimpleNamespace(Mode="design"), "data") + with pytest.raises(ValueError, match="instance indexes"): + input_handler(["Problem", "p"], SimpleNamespace(Mode="solve"), "data") + with pytest.raises(ValueError, match="mode"): + input_handler(["Problem", "p"], SimpleNamespace(Mode="other"), "data") + + assert input_handler( + ["Problem", "p", "InstanceSolve", (1, 2)], + SimpleNamespace(Mode="solve"), + "data", + ) == ("p", [1, 2]) + setting = input_handler(["ProbN", 7], SimpleNamespace(Mode="solve"), "parameter") + assert setting.ProbN == 7 + assert setting.ProbFE == 50000 + assert setting.ProbN == 7 + assert setting.AlgRuns == 5 + + design_defaults = input_handler( + ["InstanceTrain", [1, 2, 3, 4, 5]], + SimpleNamespace(Mode="design"), + "parameter", + ) + assert design_defaults.AlgQ == 4 + assert design_defaults.InnerFE == 500 + assert design_defaults.AlgN == 10 + assert design_defaults.AlgFE == 5000 + assert design_defaults.AlgRuns == 5 + assert design_defaults.RacingK == 1 + assert design_defaults.Surro == 1500 + with pytest.raises(ValueError, match="Unsupported mode"): + input_handler([], setting, "other") + + +@pytest.mark.parametrize( + ("overrides", "message"), + [ + ({"ProbN": 0}, "positive integer"), + ({"AlgP": 4, "AlgQ": 3}, "pathways"), + ({"AlgN": 5, "AlgFE": 4}, "algorithms"), + ({"AlgRuns": 21}, "runs should not exceed"), + ({"ProbN": 21}, "ProbFE must be at least"), + ({"Evaluate": "unknown"}, "Evaluate must be"), + ({"Compare": "unknown"}, "Compare must be"), + ({"Metric": "unknown"}, "Metric must be"), + ({"Evaluate": "racing"}, "should be used with"), + ( + {"Evaluate": "racing", "Compare": "statistic", "RacingK": None}, + "Setting.K", + ), + ({"Evaluate": "approximate"}, "Setting.Surro"), + ({"Evaluate": "approximate", "Surro": 5}, "Surro must be"), + ( + {"Evaluate": "approximate", "Surro": 2, "Compare": "statistic"}, + "not necessary", + ), + ({"Compare": "statistic", "AlgRuns": 1}, "run the design multiple"), + ], +) +def test_design_validation_rejects_invalid_combinations(overrides, message): + with pytest.raises(ValueError, match=message): + _check_setting(_design_setting(**overrides)) + + +def test_design_validation_normalizes_values_and_warns_on_weak_settings(): + setting = _design_setting(Evaluate="EXACT", Compare="AVERAGE") + _check_setting(setting) + assert setting.Evaluate == "exact" + assert setting.Compare == "average" + with pytest.warns(UserWarning, match="large population"): + _check_setting(_design_setting(ProbN=4, AlgP=2, AlgQ=1)) + with pytest.warns(UserWarning, match="recommended"): + _check_setting(_design_setting(AlgQ=5)) + + +@pytest.mark.parametrize( + ("overrides", "message"), + [ + ({"ProbFE": 0}, "positive integer"), + ({"ProbN": 21}, "ProbFE must be at least"), + ({"AlgName": None}, "specify an algorithm"), + ({"Metric": "unknown"}, "Metric must be"), + ({"Metric": "runtimeFE", "Thres": None}, "Setting.Thres"), + ({"Metric": "runtimeSec", "Tmax": None, "Thres": 0}, "Setting.Tmax"), + ({"Metric": "runtimeSec", "Tmax": 1, "Thres": None}, "Setting.Thres"), + ({"Metric": "auc", "Tmax": [1], "Thres": [0]}, "multiple time points"), + ( + {"Metric": "auc", "Tmax": [1, 2], "Thres": [0]}, + "number of thresholds", + ), + ], +) +def test_solve_validation_rejects_invalid_combinations(overrides, message): + with pytest.raises(ValueError, match=message): + _check_setting(_solve_setting(**overrides)) + + +def test_solve_runtimefe_defaults_tmax_and_accepts_valid_auc(): + runtime = _solve_setting(Metric="runtimeFE", Tmax=None, Thres=0) + _check_setting(runtime) + assert runtime.Tmax == runtime.ProbFE + _check_setting(_solve_setting(Metric="auc", Tmax=[5, 10], Thres=[2, 1])) + + +def test_check_handler_and_invalid_mode(): + setting = _solve_setting() + assert input_handler([], setting, "check") is setting + with pytest.raises(ValueError, match="mode"): + _check_setting(SimpleNamespace(Mode="other")) + + +@pytest.mark.parametrize( + ("overrides", "message"), + [ + ({"EvalRetries": -1}, "non-negative"), + ({"EvalTimeoutSec": 0}, "positive finite"), + ({"EvalFailure": "ignore"}, "raise.*penalize"), + ({"EvalPenalty": float("inf")}, "finite numeric"), + ({"EvalCache": 1}, "boolean"), + ({"EvalLog": 4}, "filesystem path"), + ({"EvalWorkers": 0}, "positive integer"), + ( + {"EvalWorkers": 2, "EvalTimeoutSec": 1}, + "cannot currently be combined", + ), + ({"CheckpointDir": 4}, "filesystem path"), + ({"CheckpointEvery": 0}, "positive integer"), + ({"Resume": 1}, "boolean"), + ], +) +def test_evaluation_policy_validation(overrides, message): + with pytest.raises(ValueError, match=message): + _check_setting(_solve_setting(**overrides)) + + +def test_checkpointing_is_accepted_in_design_mode(): + setting = _design_setting(CheckpointDir="checkpoints") + _check_setting(setting) + assert setting.CheckpointDir == "checkpoints" diff --git a/tests/unit/test_matlab_parity.py b/tests/unit/test_matlab_parity.py new file mode 100644 index 0000000..c87f76a --- /dev/null +++ b/tests/unit/test_matlab_parity.py @@ -0,0 +1,181 @@ +"""Golden contracts for intentional MATLAB/Python semantic parity.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib import ObjectiveEvaluationError +from autooptlib.utils.design._disturb import disturb +from autooptlib.utils.design._evaluate import _auc_score +from autooptlib.utils.design._helpers import ( + Pathway, + PathwayParam, + SearchParam, + SearchStep, +) +from autooptlib.utils.select import select +from autooptlib.utils.solve import make_solutions, run_design + + +def _encoded_algorithm(): + return SimpleNamespace( + operator=[ + np.array([[1, 3], [3, 5]]), + np.array([[1, 4], [4, 5]]), + ], + parameter=[[None, None] for _ in range(6)], + ) + + +def _disturb_setting(): + return SimpleNamespace( + op_space=np.array([[1, 2], [3, 4], [5, 6]]), + para_space=[None] * 6, + para_local_space=[None] * 6, + alg_p=2, + alg_q=1, + alg_n=2, + tune_para=False, + rng=np.random.default_rng(8), + ) + + +def test_choose_and_update_disturbance_are_shared_across_pathways(): + choose_ops, _, _ = disturb( + [_encoded_algorithm()], _disturb_setting(), 2, [{"seed": 1}] + ) + assert [path[0, 0] for path in choose_ops[0]] == [2, 2] + + # The encoded positions are choose, two searches, update. + update_ops, _, _ = disturb( + [_encoded_algorithm()], _disturb_setting(), 2, [{"seed": 4}] + ) + assert [path[-1, -1] for path in update_ops[0]] == [6, 6] + + +class _Performance: + def __init__(self, values): + self.values = np.asarray(values, dtype=float) + self.performance = np.ones((1, len(self.values))) + + def get_performance(self, setting, seeds): + return self.values + + +def test_racing_keeps_all_significant_survivors(monkeypatch): + select_module = importlib.import_module("autooptlib.utils.select") + monkeypatch.setattr( + select_module, "_statistic_wins", lambda matrix, alpha: np.array([2, 1, 0]) + ) + algorithms = [_Performance([1, 1]), _Performance([2, 2]), _Performance([3, 3])] + setting = SimpleNamespace( + Compare="statistic", + Evaluate="racing", + AlgN=1, + AlgRuns=2, + Seed=4, + ) + assert select(algorithms, None, None, setting, [0]) == algorithms[:2] + + +def test_auc_uses_fe_checkpoints_and_reciprocal_success_fraction(): + assert _auc_score([5.0, 3.0, 2.0], [2, 4, 6], [5, 3, 1], 2) == pytest.approx(1.5) + assert np.isinf(_auc_score([], [2, 4], [2, 1], 2)) + + +def test_problem_repair_uncertainty_and_accessory_data_are_retained(): + repaired_problem = SimpleNamespace( + type=["continuous", "static", "certain"], + bound=np.array([[-10.0], [10.0]]), + repair=lambda data, decision: np.zeros_like(decision), + evaluate=lambda data, decision: (4.0, 0.0, {"source": "simulator"}), + ) + repaired = make_solutions(np.array([[7.0]]), repaired_problem, None)[0] + np.testing.assert_array_equal(repaired.dec, [0.0]) + assert repaired.acc == {"source": "simulator"} + + samples = iter([1.0, 3.0, 5.0]) + uncertain = SimpleNamespace( + type=["continuous", "static", "uncertain"], + bound=np.array([[-1.0], [1.0]]), + sampleN=3, + setting="uncertain_average", + evaluate=lambda data, decision: (next(samples), 0.0, None), + ) + assert make_solutions(np.array([[0.0]]), uncertain, None)[0].obj == 3.0 + + worst_samples = iter([1.0, 3.0, 5.0]) + uncertain.setting = "uncertain_worst" + uncertain.evaluate = lambda data, decision: (next(worst_samples), 0.0, None) + assert make_solutions(np.array([[0.0]]), uncertain, None)[0].obj == 5.0 + + uncertain.sampleN = 0 + with pytest.raises(ObjectiveEvaluationError, match="positive sampleN"): + make_solutions(np.array([[0.0]]), uncertain, None) + uncertain.sampleN = 1 + uncertain.setting = "" + uncertain.evaluate = lambda data, decision: (1.0, 0.0, None) + with pytest.raises(ObjectiveEvaluationError, match="uncertain_average"): + make_solutions(np.array([[0.0]]), uncertain, None) + + +def test_execution_tracks_historical_best_and_uses_embedded_archive(monkeypatch): + solve_module = importlib.import_module("autooptlib.utils.solve") + seen = [] + + def choose_all(population, problem, parameter, aux, *args): + aux["choose"] = True + return np.arange(len(population)), aux + + def make_worse(parent, problem, parameter, aux, *args): + assert aux["choose"] + aux["search"] = True + return parent.decs() + 1.0, aux + + def replace_with_new(combined, problem, parameter, aux, *args): + assert aux["search"] + seen.append(aux) + return combined[-problem.N :], None + + components = { + "choose_parity": choose_all, + "search_parity": make_worse, + "update_parity": replace_with_new, + } + original = solve_module.get_component + + def lookup(name): + return components[name] if name in components else original(name) + + monkeypatch.setattr(solve_module, "get_component", lookup) + + path = Pathway( + "choose_parity", + [SearchStep("search_parity", np.array([-np.inf, 1.0]))], + "update_parity", + ["archive_best"], + ) + params = PathwayParam(None, [SearchParam(None, None)], None) + problem = SimpleNamespace( + type=["continuous", "static", "certain"], + bound=np.array([[0.0], [10.0]]), + N=2, + Gmax=1, + evaluate=lambda data, decision: (float(decision[0]), 0.0, None), + ) + result = run_design( + [path], + [params], + problem, + None, + SimpleNamespace(ProbN=2, ProbFE=4, Seed=2), + ) + assert seen and seen[0]["choose"] and seen[0]["search"] + assert result["fit_history"] == sorted(result["fit_history"], reverse=True) + assert result["best_solution"].fit == min(result["fit_history"]) + assert len(result["archives"]) == 1 + assert result["archives"][0] diff --git a/tests/unit/test_problem_contract.py b/tests/unit/test_problem_contract.py new file mode 100644 index 0000000..e8639e8 --- /dev/null +++ b/tests/unit/test_problem_contract.py @@ -0,0 +1,121 @@ +"""Behavioral tests for the public custom-problem contract.""" + +from __future__ import annotations + +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib import ProblemDefinition, make_problem +from autooptlib.problems.base import validate_constructed_problems + + +def test_problem_factory_supports_data_constraints_and_direct_modes(): + definition = make_problem( + lambda decision, data: float(np.sum(decision) + data["offset"]), + bounds=lambda instance: [[-instance, -instance], [instance, instance]], + constraint=lambda decision, data: [decision[0] - data["limit"]], + data_factory=lambda instance: {"offset": instance, "limit": 0.5}, + name="bounded_sum", + ) + assert isinstance(definition, ProblemDefinition) + records = [SimpleNamespace(N=2, Gmax=3)] + problems, data, auxiliary = definition(records, [2], "construct") + validate_constructed_problems(problems, data) + assert auxiliary is None + assert definition.__name__ == "bounded_sum" + assert problems[0].dimension == 2 + + repaired, _, _ = definition(None, [1.0, -1.0], "repair") + np.testing.assert_array_equal(repaired, [1.0, -1.0]) + value, violation, _ = definition(data[0], [1.0, 2.0], "evaluate") + assert value == 5.0 + assert violation == [0.5] + values, violations, _ = definition(data[0], [[0.0, 0.0], [1.0, 1.0]], "evaluate") + np.testing.assert_array_equal(values, [2.0, 4.0]) + np.testing.assert_array_equal(violations, [[-0.5], [0.5]]) + + +@pytest.mark.parametrize( + ("kwargs", "error", "message"), + [ + ({"objective": 1, "bounds": (-1, 1)}, TypeError, "objective"), + ( + {"objective": lambda d, x: 0, "bounds": (-1, 1), "problem_type": "graph"}, + ValueError, + "problem_type", + ), + ( + {"objective": lambda d, x: 0, "bounds": (-1, 1), "constraint": 1}, + TypeError, + "constraint", + ), + ( + {"objective": lambda d, x: 0, "bounds": (-1, 1), "data_factory": 1}, + TypeError, + "data_factory", + ), + ], +) +def test_problem_factory_rejects_invalid_arguments(kwargs, error, message): + with pytest.raises(error, match=message): + make_problem(**kwargs) + + +def test_problem_factory_rejects_missing_or_unexpandable_bounds(): + continuous = make_problem(lambda decision, data: 0.0) + with pytest.raises(ValueError, match="require explicit bounds"): + continuous([SimpleNamespace()], [2], "construct") + + scalar_bounds = make_problem(lambda decision, data: 0.0, bounds=(-1, 1)) + with pytest.raises(ValueError, match="integer instance dimension"): + scalar_bounds([SimpleNamespace()], [object()], "construct") + + +def test_problem_factory_validates_construct_count_and_mode(): + definition = make_problem(lambda decision, data: 0.0, bounds=(-1, 1)) + with pytest.raises(ValueError, match="number of problem records"): + definition([], [2], "construct") + with pytest.raises(ValueError, match="Unsupported problem mode"): + definition([], [], "unknown") + + +def test_permutation_problem_infers_domain_from_instance(): + definition = make_problem( + lambda decision, data: float(np.sum(decision)), problem_type="permutation" + ) + problems, data, _ = definition([SimpleNamespace(N=2, Gmax=1)], [4], "construct") + np.testing.assert_array_equal(problems[0].bound[0], [1, 2, 3, 4]) + assert data == [4] + + +def _valid_problem(**overrides): + values = dict( + type=["continuous", "static", "certain"], + bound=np.array([[-1.0], [1.0]]), + evaluate=lambda data, decision: (0.0, 0.0, None), + N=2, + Gmax=3, + ) + values.update(overrides) + return SimpleNamespace(**values) + + +@pytest.mark.parametrize( + ("problems", "data", "error", "message"), + [ + ([], [], ValueError, "no problem"), + ([_valid_problem()], [], ValueError, "data entries"), + ([_valid_problem(type="continuous")], [None], TypeError, "non-empty sequence"), + ([_valid_problem(type=["graph"])], [None], ValueError, "unsupported type"), + ([_valid_problem(bound=[-1, 1])], [None], ValueError, "shape"), + ([_valid_problem(bound=[[-np.inf], [1]])], [None], ValueError, "finite"), + ([_valid_problem(evaluate=None)], [None], TypeError, "must expose evaluate"), + ([_valid_problem(N=0)], [None], ValueError, "attribute N"), + ([_valid_problem(Gmax=0)], [None], ValueError, "attribute Gmax"), + ], +) +def test_constructed_problem_validation_errors(problems, data, error, message): + with pytest.raises(error, match=message): + validate_constructed_problems(problems, data) diff --git a/tests/unit/test_public_api.py b/tests/unit/test_public_api.py new file mode 100644 index 0000000..a16d347 --- /dev/null +++ b/tests/unit/test_public_api.py @@ -0,0 +1,163 @@ +"""Tests for the public package API and bundled resources.""" + +from __future__ import annotations + +from importlib import resources +from types import SimpleNamespace + +import numpy as np +import pytest + +import autooptlib +import autooptlib.problems as problems +from autooptlib import get_component, register_component + + +def test_public_version_matches_release(): + assert autooptlib.__version__ == "1.2.0" + + +def test_cec_archive_is_a_package_resource(): + archive = resources.files("autooptlib.problems.data").joinpath("cec2013.npz") + assert archive.is_file() + + +@pytest.mark.parametrize("name", problems.__all__) +def test_all_cec2013_problems_construct_and_evaluate(name): + problem_fn = getattr(problems, name) + problem_list, data, _ = problem_fn([SimpleNamespace()], [10], "construct") + values, constraints, _ = problem_fn(data[0], np.zeros((2, 10)), "evaluate") + assert problem_list[0].bound.shape == (2, 10) + assert np.asarray(values).shape == (2,) + assert np.all(np.isfinite(values)) + assert np.all(np.asarray(constraints) == 0) + + +def test_cec2013_reference_optima_match_published_biases(): + with np.load( + resources.files("autooptlib.problems.data").joinpath("cec2013.npz") + ) as archive: + composition_optimum = archive["shift_data"][0, :10] + + expected = list(range(-1400, -99, 100)) + list(range(100, 1401, 100)) + for index, bias in enumerate(expected, start=1): + problem_fn = getattr(problems, f"cec2013_f{index}") + _, data, _ = problem_fn([SimpleNamespace()], [10], "construct") + optimum = data[0].o if index <= 20 else composition_optimum + values, _, _ = problem_fn( + data[0], np.asarray(optimum).reshape(1, -1), "evaluate" + ) + assert float(np.asarray(values)[0]) == pytest.approx(bias, abs=2e-4) + + +@pytest.mark.parametrize( + ("point", "expected"), + [ + ( + 0.0, + [ + 17398.270025643684, + 2396412610.9019618, + 7.2542451564562992e20, + 75132346.84986454, + 40434.08125354802, + 961.2132235027589, + 62885586.662445866, + -678.0156101069512, + -579.7523754268578, + 2958.0111652935962, + -68.85490363852517, + 24.409324082253647, + 158.00167500061042, + 4523.575143387677, + 3075.1654636826634, + 217.50478678005405, + 509.5833597461297, + 645.0303148911825, + 113720.48150316134, + 605.0, + 1689.8570200417998, + 5442.9812724881785, + 4297.650206927683, + 1579.9075365188896, + 1415.6995850587002, + 9036.72162529505, + 2330.500864913557, + 3009.2459654501627, + ], + ), + ( + 1.0, + [ + 17297.327650567775, + 2369973380.5645466, + 6.674683402465664e20, + 64674277.3745981, + 39204.023022324676, + 862.838458684628, + 67319103.6960722, + -678.1139448621506, + -580.5125515533873, + 2929.4272910000964, + -53.09494281653241, + 25.88382972532719, + 158.27365776223303, + 4235.953246789083, + 3042.7039280101953, + 209.32994533227844, + 590.765721405681, + 625.822891727017, + 123842.75727931673, + 605.0, + 1692.318552845361, + 5261.297868191961, + 4287.962546015057, + 1581.1037754768658, + 1420.204178402104, + 9132.718679394688, + 2322.6991067044996, + 3030.563592994674, + ], + ), + ], +) +def test_cec2013_matches_official_c_reference_at_fixed_points(point, expected): + """Values generated with the CEC 2013 authors' 27-Jan-2013 C reference.""" + actual = [] + decisions = np.full((1, 10), point) + for index in range(1, 29): + problem_fn = getattr(problems, f"cec2013_f{index}") + _, data, _ = problem_fn([SimpleNamespace()], [10], "construct") + values, _, _ = problem_fn(data[0], decisions, "evaluate") + actual.append(float(np.asarray(values)[0])) + np.testing.assert_allclose(actual, expected, rtol=1e-9, atol=1e-7) + + +def test_custom_component_registration_without_internal_edits(): + def search_test_extension(*args): + mode = args[-1] + if mode == "execute": + parent = args[0] + decisions = ( + parent.decs() if callable(getattr(parent, "decs", None)) else parent + ) + return decisions, args[3] if len(args) > 3 else None + if mode in {"parameter", "behavior"}: + return None, None + raise ValueError(mode) + + register_component( + "search_test_extension", + search_test_extension, + category="search", + problem_types=["continuous"], + ) + assert get_component("search_test_extension") is search_test_extension + with pytest.raises(ValueError, match="already registered"): + register_component("search_test_extension", search_test_extension) + + from autooptlib.utils.space import space + + problem = SimpleNamespace(type=["continuous", "static", "certain"]) + design_space = space([problem], SimpleNamespace()) + assert "search_test_extension" in design_space.AllOp diff --git a/tests/unit/test_reliability.py b/tests/unit/test_reliability.py new file mode 100644 index 0000000..4cabd7e --- /dev/null +++ b/tests/unit/test_reliability.py @@ -0,0 +1,764 @@ +"""Reliability tests for public configuration, budgets, and serialization.""" + +from __future__ import annotations + +import importlib +import json +import multiprocessing +import threading +import time +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib import ( + ObjectiveEvaluationError, + autoopt, + load_algorithm, + make_problem, + save_algorithm, +) +from autooptlib.serialization import algorithm_to_dict +from autooptlib.utils.solve import ( + _configure_evaluation_runtime, + input_algorithm, + make_solutions, + run_design, +) + + +def test_unknown_public_option_is_rejected(): + with pytest.raises(TypeError, match="Unknown AutoOpt option.*ProbFee"): + autoopt(Mode="solve", ProbFee=10) + + +def test_public_options_accept_snake_case_and_output_directory(tmp_path): + problem = make_problem( + lambda decision, dimension: float(np.sum(decision**2)), + bounds=(-5.0, 5.0), + ) + algorithms, _ = autoopt( + mode="design", + problem=problem, + instance_train=[3], + instance_test=[3], + alg_n=2, + alg_fe=4, + prob_n=5, + prob_fe=10, + archive=["archive_best"], + tune_para=True, + seed=8, + output_dir=tmp_path, + ) + assert algorithms[0].operator_pheno[0][0].archive == ["archive_best"] + assert (tmp_path / "Algorithm_1.json").is_file() + + +def test_problem_factory_and_design_budgets_count_every_objective_call(tmp_path): + calls = {"count": 0} + + def objective(decision, dimension): + calls["count"] += 1 + return float(np.sum(decision**2)) + + problem = make_problem(objective, bounds=(-5.0, 5.0), name="counted_sphere") + algorithms, _ = autoopt( + Mode="design", + Problem=problem, + InstanceTrain=[3], + InstanceTest=[4], + AlgN=2, + AlgFE=4, + ProbN=5, + ProbFE=10, + AlgRuns=1, + Seed=9, + OutputDir=tmp_path, + ) + # Initialization evaluates AlgN incumbents; AlgFE then counts four new + # proposals. Two selected algorithms are finally run on held-out data. + assert calls["count"] == (2 + 4 + 2) * 10 + assert len(algorithms) == 2 + + +@pytest.mark.parametrize( + ("algorithm_name", "problem_type", "bounds"), + [ + ("Discrete Iterative Local Search", "discrete", (0, 5)), + ("Permutation Variable Neighborhood Search", "permutation", None), + ], +) +def test_multistep_algorithms_never_exceed_probfe(algorithm_name, problem_type, bounds): + calls = {"count": 0} + + def objective(decision, instance): + calls["count"] += 1 + return float(np.sum(np.asarray(decision, dtype=float) ** 2)) + + definition = make_problem(objective, bounds=bounds, problem_type=problem_type) + records = [SimpleNamespace(N=10, Gmax=10)] + problems, data, _ = definition(records, [5], "construct") + setting = SimpleNamespace( + AlgName=algorithm_name, + AlgRuns=1, + ProbN=10, + ProbFE=100, + Metric="quality", + rng=np.random.default_rng(1), + ) + algorithm, setting = input_algorithm(setting) + result = run_design( + algorithm.operator_pheno[0], + algorithm.parameter_pheno[0], + problems[0], + data[0], + setting, + ) + assert result["evaluations"] == 100 + assert calls["count"] == 100 + + +@pytest.mark.parametrize( + ("algorithm_name", "problem_type"), + [ + ("Continuous Genetic Algorithm", "continuous"), + ("Evolutionary Programming", "continuous"), + ("Fast Evolutionary Programming", "continuous"), + ("CMA-ES", "continuous"), + ("Estimation of Distribution", "continuous"), + ("Particle Swarm Optimization", "continuous"), + ("Differential Evolution", "continuous"), + ("Continuous Random Search", "continuous"), + ("ICA", "continuous"), + ("Discrete Genetic Algorithm", "discrete"), + ("Discrete Iterative Local Search", "discrete"), + ("Discrete Simulated Annealing", "discrete"), + ("Discrete Random Search", "discrete"), + ("Permutation Genetic Algorithm", "permutation"), + ("Permutation Iterative Local Search", "permutation"), + ("Permutation Simulated Annealing", "permutation"), + ("Permutation Variable Neighborhood Search", "permutation"), + ("Permutation Random Search", "permutation"), + ], +) +def test_every_preset_handles_a_partial_final_population(algorithm_name, problem_type): + calls = {"count": 0} + + def objective(decision, instance): + calls["count"] += 1 + return float(np.sum(np.asarray(decision, dtype=float) ** 2)) + + if problem_type == "permutation": + bounds = None + elif problem_type == "discrete": + bounds = (0, 5) + else: + bounds = (-5.0, 5.0) + definition = make_problem(objective, bounds=bounds, problem_type=problem_type) + problems, data, _ = definition([SimpleNamespace(N=7, Gmax=10)], [6], "construct") + setting = SimpleNamespace( + AlgName=algorithm_name, + ProbN=7, + ProbFE=23, + Metric="quality", + rng=np.random.default_rng(3), + ) + algorithm, setting = input_algorithm(setting) + result = run_design( + algorithm.operator_pheno[0], + algorithm.parameter_pheno[0], + problems[0], + data[0], + setting, + ) + assert result["evaluations"] == 23 + assert calls["count"] == 23 + + +def test_json_algorithm_round_trip_and_schema_validation(tmp_path): + setting = SimpleNamespace(AlgName="Continuous Random Search") + algorithm, _ = input_algorithm(setting) + target = save_algorithm( + algorithm, tmp_path / "algorithm.json", metadata={"purpose": "test"} + ) + document = json.loads(target.read_text(encoding="utf-8")) + assert document["schema"] == "autooptlib.algorithm" + assert document["schema_version"] == 1 + assert document["metadata"] == {"purpose": "test"} + + restored = load_algorithm(target) + assert restored.operator_pheno[0][0].search[0].primary == "reinit_continuous" + assert restored.parameter_pheno[0][0].search[0].primary is None + + document["schema_version"] = 999 + target.write_text(json.dumps(document), encoding="utf-8") + with pytest.raises(ValueError, match="Unsupported algorithm schema version"): + load_algorithm(target) + + +def test_invalid_constructed_problem_fails_before_optimization(tmp_path): + invalid = make_problem(lambda decision, data: 0.0, bounds=[[1.0], [-1.0]]) + with pytest.raises(ValueError, match="lower bounds greater"): + autoopt( + Mode="solve", + Problem=invalid, + InstanceSolve=[1], + AlgName="Continuous Random Search", + ProbN=5, + ProbFE=10, + OutputDir=tmp_path, + ) + + +@pytest.mark.parametrize( + ("value", "message"), + [ + (np.nan, "non-finite"), + ([1.0, 2.0], "one scalar objective"), + ("not-a-number", "numeric scalar"), + ((), "one scalar objective"), + ], +) +def test_invalid_objective_results_fail_with_context(value, message): + definition = make_problem(lambda decision, instance: value, bounds=(-1.0, 1.0)) + records = [SimpleNamespace(N=2, Gmax=1)] + problems, data, _ = definition(records, [2], "construct") + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + with pytest.raises(ObjectiveEvaluationError, match=message): + run_design( + algorithm.operator_pheno[0], + algorithm.parameter_pheno[0], + problems[0], + data[0], + SimpleNamespace(ProbN=2, ProbFE=2), + ) + + +def test_objective_exception_is_wrapped_with_decision_context(): + def broken_objective(decision, instance): + raise TimeoutError("simulator timed out") + + definition = make_problem(broken_objective, bounds=(-1.0, 1.0)) + problems, data, _ = definition([SimpleNamespace(N=2, Gmax=1)], [2], "construct") + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + with pytest.raises( + ObjectiveEvaluationError, + match="Objective evaluation failed.*simulator timed out", + ): + run_design( + algorithm.operator_pheno[0], + algorithm.parameter_pheno[0], + problems[0], + data[0], + SimpleNamespace(ProbN=2, ProbFE=2), + ) + + +def test_failed_objective_is_retried_then_succeeds(tmp_path): + calls = {"count": 0} + + def flaky(decision, instance): + calls["count"] += 1 + if calls["count"] <= 2: + raise ConnectionError("temporary simulator failure") + return float(np.sum(decision**2)) + + problem = make_problem(flaky, bounds=(-1.0, 1.0)) + best, _ = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[1], + AlgName="Continuous Random Search", + ProbN=2, + ProbFE=2, + AlgRuns=1, + EvalRetries=2, + OutputDir=tmp_path, + ) + assert calls["count"] == 4 + assert np.isfinite(best[0][0].fit) + + +def test_penalty_log_and_cache_are_opt_in(tmp_path): + calls = {"count": 0} + + def broken(decision, instance): + calls["count"] += 1 + raise RuntimeError("unavailable") + + log_path = tmp_path / "events.jsonl" + problem = make_problem(broken, bounds=(0.0, 0.0)) + best, _ = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[1], + AlgName="Continuous Random Search", + ProbN=2, + ProbFE=2, + AlgRuns=1, + EvalRetries=1, + EvalFailure="penalize", + EvalPenalty=1234.0, + EvalLog=log_path, + OutputDir=tmp_path / "penalty", + ) + assert best[0][0].fit == 1234.0 + assert calls["count"] == 4 + events = [json.loads(line) for line in log_path.read_text().splitlines()] + assert [event["status"] for event in events] == ["failure"] * 4 + assert all(len(event["decision_sha256"]) == 64 for event in events) + + cached_calls = {"count": 0} + + def constant(decision, instance): + cached_calls["count"] += 1 + return 1.0 + + cached = make_problem(constant, bounds=(0.0, 0.0)) + autoopt( + Mode="solve", + Problem=cached, + InstanceSolve=[1], + AlgName="Continuous Random Search", + ProbN=3, + ProbFE=6, + EvalCache=True, + OutputDir=tmp_path / "cache", + ) + assert cached_calls["count"] == 1 + + +def test_candidate_evaluations_can_run_in_parallel(tmp_path): + rendezvous = threading.Barrier(2) + thread_ids = set() + lock = threading.Lock() + + def synchronized_objective(decision, instance): + with lock: + thread_ids.add(threading.get_ident()) + rendezvous.wait(timeout=2) + return float(np.sum(decision**2)) + + problem = make_problem(synchronized_objective, bounds=(-1.0, 1.0)) + best, _ = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[1], + AlgName="Continuous Random Search", + ProbN=2, + ProbFE=2, + EvalWorkers=2, + OutputDir=tmp_path, + ) + assert len(thread_ids) == 2 + assert np.isfinite(best[0][0].fit) + + +def test_parallel_evaluation_preserves_order_cache_logs_and_retries(tmp_path): + calls = {} + call_lock = threading.Lock() + + def objective(data, decision): + value = int(np.asarray(decision).reshape(-1)[0]) + with call_lock: + calls[value] = calls.get(value, 0) + 1 + attempt = calls[value] + time.sleep(0.005 * (5 - value)) + if value == 2 and attempt == 1: + raise ConnectionError("transient") + if value == 4: + raise RuntimeError("permanent") + return float(value) + + problem = SimpleNamespace( + type=["continuous", "static", "certain"], + bound=np.array([[0.0], [4.0]]), + evaluate=objective, + name="parallel_policy_test", + ) + log_path = tmp_path / "parallel.jsonl" + _configure_evaluation_runtime( + problem, + SimpleNamespace( + EvalWorkers=4, + EvalRetries=1, + EvalFailure="penalize", + EvalPenalty=99.0, + EvalCache=True, + EvalLog=log_path, + ), + ) + solutions = make_solutions( + np.array([[3.0], [1.0], [2.0], [1.0], [4.0]]), problem, None + ) + + assert [solution.obj for solution in solutions] == [3.0, 1.0, 2.0, 1.0, 99.0] + assert calls == {1: 1, 2: 2, 3: 1, 4: 2} + events = [json.loads(line) for line in log_path.read_text().splitlines()] + assert len(events) == 7 + assert sum(event["status"] == "cache_hit" for event in events) == 1 + assert sum(event["status"] == "failure" for event in events) == 3 + assert sum(event["status"] == "success" for event in events) == 3 + + +def test_parallel_seeded_runs_are_deterministic(tmp_path): + problem = make_problem( + lambda decision, dimension: float(np.sum(decision**2)), + bounds=(-5.0, 5.0), + ) + common = dict( + Mode="solve", + Problem=problem, + InstanceSolve=[4], + AlgName="Continuous Random Search", + ProbN=8, + ProbFE=32, + Seed=2026, + EvalWorkers=4, + ) + first_best, first_history = autoopt(**common, OutputDir=tmp_path / "parallel-first") + second_best, second_history = autoopt( + **common, OutputDir=tmp_path / "parallel-second" + ) + np.testing.assert_array_equal(first_best[0][0].dec, second_best[0][0].dec) + assert [solution.fit for solution in first_history[0]] == [ + solution.fit for solution in second_history[0] + ] + + +@pytest.mark.skipif( + "fork" not in multiprocessing.get_all_start_methods(), + reason="closure-based timeout test requires the fork start method", +) +def test_objective_timeout_can_be_penalized(tmp_path): + def slow(decision, instance): + time.sleep(0.2) + return 1.0 + + problem = make_problem(slow, bounds=(-1.0, 1.0)) + best, _ = autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[1], + AlgName="Continuous Random Search", + ProbN=1, + ProbFE=1, + EvalTimeoutSec=0.02, + EvalFailure="penalize", + EvalPenalty=999.0, + OutputDir=tmp_path, + ) + assert best[0][0].fit == 999.0 + + +def test_experiment_manifest_records_environment_and_options(tmp_path): + problem = make_problem(lambda decision, instance: 0.0, bounds=(0.0, 0.0)) + autoopt( + Mode="solve", + Problem=problem, + InstanceSolve=[2], + AlgName="Continuous Random Search", + ProbN=1, + ProbFE=1, + Seed=42, + OutputDir=tmp_path, + ) + manifest = json.loads((tmp_path / "experiment.json").read_text()) + assert manifest["schema"] == "autooptlib.experiment" + assert manifest["software"]["autooptlib"] == "1.2.0" + assert manifest["options"]["Seed"] == 42 + assert manifest["options"]["Problem"].endswith(":make_problem..definition") + + +def test_completed_solve_can_resume_from_atomic_checkpoint_without_evaluation(tmp_path): + calls = {"count": 0} + + def objective(decision, instance): + calls["count"] += 1 + return float(np.sum(decision**2)) + + problem = make_problem(objective, bounds=(-1.0, 1.0)) + common = dict( + Mode="solve", + Problem=problem, + InstanceSolve=[2], + AlgName="Continuous Random Search", + ProbN=3, + ProbFE=6, + Seed=10, + CheckpointDir=tmp_path / "checkpoints", + ) + first, _ = autoopt(**common, OutputDir=tmp_path / "first") + calls_after_first = calls["count"] + checkpoint = tmp_path / "checkpoints" / "instance_1_run_1.pkl" + assert checkpoint.is_file() + assert not checkpoint.with_suffix(".pkl.tmp").exists() + + with pytest.warns(UserWarning, match="trusted run"): + second, _ = autoopt(**common, Resume=True, OutputDir=tmp_path / "second") + assert calls["count"] == calls_after_first + assert second[0][0].fit == first[0][0].fit + + +def test_completed_design_can_resume_without_objective_evaluation(tmp_path): + calls = {"count": 0} + + def objective(decision, instance): + calls["count"] += 1 + return float(np.sum(decision**2)) + + problem = make_problem(objective, bounds=(-1.0, 1.0)) + common = dict( + Mode="design", + Problem=problem, + InstanceTrain=[2], + InstanceTest=[2], + ProbN=2, + ProbFE=4, + AlgN=1, + AlgFE=2, + AlgRuns=1, + Seed=12, + CheckpointDir=tmp_path / "checkpoints", + ) + first, _ = autoopt(**common, OutputDir=tmp_path / "first") + calls_after_first = calls["count"] + checkpoint = tmp_path / "checkpoints" / "design.pkl" + assert checkpoint.is_file() + assert not checkpoint.with_suffix(".pkl.tmp").exists() + + with pytest.warns(UserWarning, match="trusted run"): + second, _ = autoopt(**common, Resume=True, OutputDir=tmp_path / "second") + assert calls["count"] == calls_after_first + assert second[0].ave_perform_all().tolist() == first[0].ave_perform_all().tolist() + + +def test_interrupted_static_solve_resumes_identically(monkeypatch, tmp_path): + solve_module = importlib.import_module("autooptlib.utils.solve") + interrupted_calls = {"count": 0} + + def interrupted_objective(decision, instance): + interrupted_calls["count"] += 1 + return float(np.sum(decision**2)) + + problem = make_problem(interrupted_objective, bounds=(-1.0, 1.0)) + checkpoint_dir = tmp_path / "static-checkpoints" + common = dict( + Mode="solve", + Problem=problem, + InstanceSolve=[3], + AlgName="Continuous Random Search", + ProbN=3, + ProbFE=9, + AlgRuns=1, + Seed=41, + CheckpointDir=checkpoint_dir, + CheckpointEvery=1, + ) + original_writer = solve_module._write_checkpoint + crashed = {"value": False} + + def crash_after_checkpoint(path, payload): + original_writer(path, payload) + if ( + not crashed["value"] + and payload.get("schema") == "autooptlib.checkpoint" + and not payload.get("complete") + and payload.get("evaluations", 0) > 3 + ): + crashed["value"] = True + raise RuntimeError("injected static interruption") + + monkeypatch.setattr(solve_module, "_write_checkpoint", crash_after_checkpoint) + with pytest.raises(RuntimeError, match="injected static interruption"): + autoopt(**common, OutputDir=tmp_path / "static-interrupted") + assert crashed["value"] + assert (checkpoint_dir / "instance_1_run_1.pkl").is_file() + + monkeypatch.setattr(solve_module, "_write_checkpoint", original_writer) + with pytest.warns(UserWarning, match="trusted run"): + resumed_best, resumed_history = autoopt( + **common, + Resume=True, + OutputDir=tmp_path / "static-resumed", + ) + + baseline_calls = {"count": 0} + + def baseline_objective(decision, instance): + baseline_calls["count"] += 1 + return float(np.sum(decision**2)) + + baseline_problem = make_problem(baseline_objective, bounds=(-1.0, 1.0)) + baseline_best, baseline_history = autoopt( + **{**common, "Problem": baseline_problem, "CheckpointDir": None}, + OutputDir=tmp_path / "static-baseline", + ) + assert interrupted_calls["count"] == baseline_calls["count"] == 9 + np.testing.assert_array_equal(resumed_best[0][0].dec, baseline_best[0][0].dec) + assert [solution.fit for solution in resumed_history[0]] == [ + solution.fit for solution in baseline_history[0] + ] + + +def test_interrupted_design_resumes_identically(monkeypatch, tmp_path): + process_module = importlib.import_module("autooptlib.utils.general.process") + interrupted_calls = {"count": 0} + + def interrupted_objective(decision, instance): + interrupted_calls["count"] += 1 + return float(np.sum(decision**2)) + + problem = make_problem(interrupted_objective, bounds=(-1.0, 1.0)) + checkpoint_dir = tmp_path / "design-checkpoints" + common = dict( + Mode="design", + Problem=problem, + InstanceTrain=[3], + InstanceTest=[3], + ProbN=3, + ProbFE=6, + AlgN=1, + AlgFE=3, + AlgRuns=1, + Seed=52, + CheckpointDir=checkpoint_dir, + CheckpointEvery=1, + ) + original_writer = process_module._write_design_checkpoint + crashed = {"value": False} + + def crash_after_checkpoint(path, payload): + original_writer(path, payload) + if ( + not crashed["value"] + and not payload.get("complete") + and payload.get("evaluated_count", 0) > 1 + ): + crashed["value"] = True + raise RuntimeError("injected design interruption") + + monkeypatch.setattr( + process_module, "_write_design_checkpoint", crash_after_checkpoint + ) + with pytest.raises(RuntimeError, match="injected design interruption"): + autoopt(**common, OutputDir=tmp_path / "design-interrupted") + assert crashed["value"] + assert (checkpoint_dir / "design.pkl").is_file() + + monkeypatch.setattr(process_module, "_write_design_checkpoint", original_writer) + with pytest.warns(UserWarning, match="trusted run"): + resumed, resumed_trace = autoopt( + **common, + Resume=True, + OutputDir=tmp_path / "design-resumed", + ) + + baseline_calls = {"count": 0} + + def baseline_objective(decision, instance): + baseline_calls["count"] += 1 + return float(np.sum(decision**2)) + + baseline_problem = make_problem(baseline_objective, bounds=(-1.0, 1.0)) + baseline, baseline_trace = autoopt( + **{**common, "Problem": baseline_problem, "CheckpointDir": None}, + OutputDir=tmp_path / "design-baseline", + ) + assert interrupted_calls["count"] == baseline_calls["count"] + assert algorithm_to_dict(resumed[0]) == algorithm_to_dict(baseline[0]) + assert [algorithm_to_dict(algorithm) for algorithm in resumed_trace] == [ + algorithm_to_dict(algorithm) for algorithm in baseline_trace + ] + + +def test_interrupted_sequential_solve_resumes_identically(monkeypatch, tmp_path): + solve_module = importlib.import_module("autooptlib.utils.solve") + + def sequential_definition(counter): + def definition(records, instances, mode): + if mode != "construct": + raise ValueError(mode) + data_entries = [] + for record, dimension in zip(records, instances): + dimension = int(dimension) + record.type = ["continuous", "sequential", "certain"] + record.bound = np.vstack( + (np.full(dimension, -1.0), np.full(dimension, 1.0)) + ) + + def evaluate(data, decision): + counter["count"] += 1 + return float(np.sum(np.asarray(decision) ** 2) + data.stage) + + def advance(best, data, problem=record): + next_stage = data.stage + 1 + next_data = SimpleNamespace(stage=next_stage) + setattr(next_data, "continue", next_stage < 3) + return problem, next_data + + record.evaluate = evaluate + record.advance_sequence = advance + first_data = SimpleNamespace(stage=0) + setattr(first_data, "continue", True) + data_entries.append(first_data) + return list(records), data_entries, None + + return definition + + interrupted_calls = {"count": 0} + checkpoint_dir = tmp_path / "sequential-checkpoints" + common = dict( + Mode="solve", + Problem=sequential_definition(interrupted_calls), + InstanceSolve=[3], + AlgName="Continuous Random Search", + ProbN=3, + ProbFE=18, + AlgRuns=1, + Metric="runtimeFE", + Tmax=18, + Thres=1e99, + Seed=63, + CheckpointDir=checkpoint_dir, + ) + original_writer = solve_module._write_checkpoint + crashed = {"value": False} + + def crash_after_checkpoint(path, payload): + original_writer(path, payload) + if ( + not crashed["value"] + and payload.get("schema") == "autooptlib.sequence-checkpoint" + and not payload.get("complete") + and len(payload.get("solutions", [])) == 1 + ): + crashed["value"] = True + raise RuntimeError("injected sequential interruption") + + monkeypatch.setattr(solve_module, "_write_checkpoint", crash_after_checkpoint) + with pytest.raises(RuntimeError, match="injected sequential interruption"): + autoopt(**common, OutputDir=tmp_path / "sequential-interrupted") + assert crashed["value"] + + monkeypatch.setattr(solve_module, "_write_checkpoint", original_writer) + with pytest.warns(UserWarning, match="trusted run"): + resumed_best, resumed_history = autoopt( + **common, + Resume=True, + OutputDir=tmp_path / "sequential-resumed", + ) + + baseline_calls = {"count": 0} + baseline_problem = sequential_definition(baseline_calls) + baseline_best, baseline_history = autoopt( + **{**common, "Problem": baseline_problem, "CheckpointDir": None}, + OutputDir=tmp_path / "sequential-baseline", + ) + assert interrupted_calls["count"] == baseline_calls["count"] == 9 + np.testing.assert_array_equal(resumed_best[0][0].dec, baseline_best[0][0].dec) + assert [solution.fit for solution in resumed_history[0]] == [ + solution.fit for solution in baseline_history[0] + ] diff --git a/tests/unit/test_selection_and_improvement.py b/tests/unit/test_selection_and_improvement.py new file mode 100644 index 0000000..ef3d672 --- /dev/null +++ b/tests/unit/test_selection_and_improvement.py @@ -0,0 +1,157 @@ +"""Behavioral tests for improvement tracking and algorithm selection.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib.utils.design import Design +from autooptlib.utils.general.improve_rate import improve_rate +from autooptlib.utils.select import ( + _ensure_design_list, + _require_performance, + _statistic_wins, + select, +) + +select_module = importlib.import_module("autooptlib.utils.select") + + +def test_improvement_rate_supports_solution_interfaces_and_constraints(): + callable_fits = SimpleNamespace(fits=lambda: np.array([3.0, 1.0])) + assert improve_rate(callable_fits, None, 1, "solution")[-1] == 1.0 + property_fits = SimpleNamespace(fits=np.array([4.0, 2.0])) + assert improve_rate(property_fits, None, 1, "solution")[-1] == 2.0 + + feasible = SimpleNamespace(objs=lambda: [3.0], cons=lambda: [-1.0]) + infeasible = SimpleNamespace(obj=1.0, cons=[2.0]) + result = improve_rate([feasible, infeasible], None, 1, "solution") + assert result[-1] == 3.0 + single = improve_rate(SimpleNamespace(obj=4.0), None, 1, "solution") + assert single[-1] == 4.0 + + +def test_improvement_rate_window_algorithm_and_errors(): + algorithm = SimpleNamespace(avePerformAll=lambda: [3.0, 1.0]) + result = improve_rate(algorithm, [1.0, 4.0], 3, "algorithm") + assert len(result) == 4 + assert np.isfinite(result[0]) + empty = improve_rate(SimpleNamespace(), None, 1, "algorithm") + assert np.isinf(empty[-1]) + zeros = improve_rate( + SimpleNamespace(avePerformAll=lambda: [0.0]), + [1.0, 0.0, 0.0, 0.0], + 3, + "algorithm", + ) + assert zeros[0] == 0.0 + with pytest.raises(ValueError, match="typ must be"): + improve_rate([], None, 1, "other") + + +class FakeDesign: + def __init__(self, values, performance=None): + self.values = np.asarray(values, dtype=float) + self.performance = performance + self.calls = [] + + def get_performance(self, setting, seeds): + return self.values + + def evaluate(self, problem, data, setting, seeds): + self.calls.append(list(seeds)) + + +def _setting(compare="average", evaluate="exact", alg_n=1): + return SimpleNamespace( + Compare=compare, Evaluate=evaluate, AlgN=alg_n, AlgRuns=2, alpha=0.05 + ) + + +def test_racing_requires_missing_or_zero_performance(): + none = FakeDesign([1, 1], None) + scalar = FakeDesign([1, 1], np.array(0.0)) + short = FakeDesign([1, 1], np.zeros((1, 2))) + ready = FakeDesign([1, 1], np.ones((2, 2))) + _require_performance( + [none, scalar, short, ready], None, None, _setting(evaluate="racing"), [1] + ) + assert none.calls == [] + assert scalar.calls == [[1]] + assert short.calls == [[1]] + assert ready.calls == [] + _require_performance([ready], None, None, _setting(), [0]) + assert ready.calls == [] + + +def test_statistic_wins_fallback_and_significant_ranks(monkeypatch): + monkeypatch.setattr( + select_module, + "friedman_nemenyi", + lambda matrix: (_ for _ in ()).throw(ValueError("too few")), + ) + np.testing.assert_array_equal( + _statistic_wins(np.array([[1, 3], [2, 4]]), 0.05), [1, 0] + ) + + monkeypatch.setattr( + select_module, + "friedman_nemenyi", + lambda matrix: ( + np.array([1.0, 2.0]), + np.array([[np.nan, 0.01], [0.01, np.nan]]), + ), + ) + np.testing.assert_array_equal(_statistic_wins(np.ones((2, 2)), 0.05), [1, 0]) + + +def test_selection_modes_and_failures(monkeypatch): + better = FakeDesign([1.0, 1.0], np.ones((1, 2))) + worse = FakeDesign([3.0, 3.0], np.ones((1, 2))) + assert _ensure_design_list(iter([better, worse])) == [better, worse] + assert select([], None, None, _setting(), [0]) == [] + assert select([worse, better], None, None, _setting(), [0]) == [better] + assert select( + [worse, better], None, None, _setting(evaluate="approximate"), [0] + ) == [better] + assert ( + select([better, worse], None, None, _setting(evaluate="intensification"), [0]) + == [] + ) + with pytest.raises(NotImplementedError, match="evaluate mode"): + select([better], None, None, _setting(evaluate="other"), [0]) + + monkeypatch.setattr( + select_module, "_statistic_wins", lambda matrix, alpha: np.array([0, 1]) + ) + monkeypatch.setattr( + select_module, + "_new_algorithm_wins", + lambda matrix, old, alpha: np.array([0, 1]), + ) + assert select([better, worse], None, None, _setting("statistic", "exact"), [0]) == [ + worse + ] + assert select( + [better, worse], None, None, _setting("statistic", "intensification"), [0] + ) == [worse] + with pytest.raises(NotImplementedError, match="evaluate mode"): + select([better], None, None, _setting("statistic", "other"), [0]) + with pytest.raises(NotImplementedError, match="compare mode"): + select([better], None, None, _setting("other"), [0]) + + +def test_design_empty_averages_and_approximate_performance(): + design = Design() + assert design.ave_perform_all().size == 0 + assert design.ave_perform_approx_all().size == 0 + assert design.ave_perform_per([0]).size == 0 + assert design.ave_perform_approx_per([0]).size == 0 + design.performance_approx = np.array([[1.0, 3.0]]) + setting = SimpleNamespace(Evaluate="approximate", AlgRuns=2) + np.testing.assert_array_equal(design.get_performance(setting, [0]), [[1.0], [3.0]]) + np.testing.assert_array_equal(design.ave_perform_approx_all(), [2.0]) + np.testing.assert_array_equal(design.ave_perform_approx_per([0]), [2.0]) diff --git a/tests/unit/test_serialization_contracts.py b/tests/unit/test_serialization_contracts.py new file mode 100644 index 0000000..22f14ed --- /dev/null +++ b/tests/unit/test_serialization_contracts.py @@ -0,0 +1,122 @@ +"""Validation and compatibility tests for the portable algorithm schema.""" + +from __future__ import annotations + +import json +from copy import deepcopy +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib.serialization import ( + _decode_value, + _encode_value, + algorithm_from_dict, + algorithm_to_dict, + load_algorithm, +) +from autooptlib.utils.design import Design +from autooptlib.utils.solve import input_algorithm + + +def _document(): + algorithm, _ = input_algorithm( + SimpleNamespace(AlgName="Continuous Genetic Algorithm") + ) + return algorithm_to_dict( + algorithm, + metadata={"special": [np.nan, np.inf, -np.inf], "count": np.int64(2)}, + ) + + +def test_special_json_values_round_trip_and_reject_unknown_types(): + encoded = _encode_value([np.nan, np.inf, -np.inf, np.int64(2)]) + decoded = _decode_value(encoded) + assert np.isnan(decoded[0]) + assert decoded[1:] == [np.inf, -np.inf, 2] + assert _decode_value({"nested": {"$float": "inf"}}) == {"nested": np.inf} + with pytest.raises(ValueError, match="Unknown encoded float"): + _decode_value({"$float": "other"}) + with pytest.raises(TypeError, match="not JSON serializable"): + _encode_value(object()) + + +def test_export_requires_decoded_matching_pathways(): + with pytest.raises(ValueError, match="decoded"): + algorithm_to_dict(Design()) + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + algorithm.parameter_pheno[0].append(algorithm.parameter_pheno[0][0]) + with pytest.raises(ValueError, match="pathway counts"): + algorithm_to_dict(algorithm) + + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + algorithm.parameter_pheno[0][0].search.clear() + with pytest.raises(ValueError, match="Search-step"): + algorithm_to_dict(algorithm) + + +@pytest.mark.parametrize( + ("mutate", "error", "message"), + [ + (lambda d: d.update(schema="wrong"), ValueError, "Expected schema"), + (lambda d: d.update(pathways=[]), ValueError, "at least one pathway"), + (lambda d: d.update(pathways=[1]), TypeError, "must be an object"), + ( + lambda d: d["pathways"][0].update(choose=None), + TypeError, + "string choose", + ), + ( + lambda d: d["pathways"][0].update(search=[]), + ValueError, + "at least one search", + ), + ( + lambda d: d["pathways"][0].update(search=[1]), + TypeError, + "must be an object", + ), + ( + lambda d: d["pathways"][0]["search"][0].update(primary=None), + TypeError, + "string primary", + ), + ( + lambda d: d["pathways"][0]["search"][0].update(secondary=1), + TypeError, + "Secondary component", + ), + ( + lambda d: d["pathways"][0]["search"][0].update(termination=None), + ValueError, + "termination vector", + ), + ( + lambda d: d["pathways"][0].update(archive="archive_best"), + TypeError, + "archive must be", + ), + ], +) +def test_schema_validation_rejects_malformed_documents(mutate, error, message): + document = deepcopy(_document()) + mutate(document) + with pytest.raises(error, match=message): + algorithm_from_dict(document) + + +def test_schema_load_rejects_non_object_root(tmp_path): + path = tmp_path / "list.json" + path.write_text(json.dumps([]), encoding="utf-8") + with pytest.raises(TypeError, match="root must be an object"): + load_algorithm(path) + + +def test_schema_reconstructs_secondary_components_and_parameters(): + restored = algorithm_from_dict(_document()) + step = restored.operator_pheno[0][0].search[0] + params = restored.parameter_pheno[0][0].search[0] + assert step.secondary == "search_mu_polynomial" + assert params.primary is not None + assert params.secondary is not None diff --git a/tests/unit/test_solve_contracts.py b/tests/unit/test_solve_contracts.py new file mode 100644 index 0000000..9c72c85 --- /dev/null +++ b/tests/unit/test_solve_contracts.py @@ -0,0 +1,317 @@ +"""Focused contracts for solution repair, evaluation, and solve helpers.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace + +import numpy as np +import pytest + +from autooptlib import ObjectiveEvaluationError +from autooptlib.utils.design._helpers import ( + Pathway, + PathwayParam, + SearchParam, + SearchStep, +) +from autooptlib.utils.solve import ( + Solution, + SolutionSet, + _call_evaluator, + _ensure_solution_instance, + _extract_mode, + _init_population, + _normalize_setting, + _setting_with_budget, + _split_indices, + _to_array, + input_algorithm, + make_solutions, + repair_sol, + run_algorithm, + run_design, +) + +solve_module = importlib.import_module("autooptlib.utils.solve") + + +def _problem(problem_type="continuous", bound=None, **overrides): + if bound is None: + bound = np.array([[-1.0, -1.0], [1.0, 1.0]]) + values = dict( + type=[problem_type, "static", "certain"], + bound=np.asarray(bound), + N=2, + Gmax=2, + evaluate=lambda data, decision: (float(np.sum(decision**2)), 0.0, None), + ) + values.update(overrides) + return SimpleNamespace(**values) + + +def test_solution_set_aggregations_and_empty_decisions(): + empty = SolutionSet([]) + assert empty.decs().shape == (0, 0) + solutions = SolutionSet( + [ + Solution(np.array([1.0]), 2.0, 0.0, 2.0), + Solution(np.array([2.0]), 4.0, 1.0, 100000001.0), + ] + ) + np.testing.assert_array_equal(solutions.decs(), [[1.0], [2.0]]) + np.testing.assert_array_equal(solutions.objs(), [[2.0], [4.0]]) + np.testing.assert_array_equal(solutions.cons(), [[0.0], [1.0]]) + np.testing.assert_array_equal(solutions.fits(), [[2.0], [100000001.0]]) + + +def test_repair_supports_all_spaces_and_distinct_discrete_values(): + raw = np.array([2.0]) + assert repair_sol(raw, SimpleNamespace(type=["continuous"])) is raw + np.testing.assert_array_equal( + repair_sol(np.array([-2.0, 2.0]), _problem()), [-1.0, 1.0] + ) + discrete = _problem( + "discrete", + [[0, 0, 0], [2, 2, 2]], + setting="dec_diff", + rng=np.random.default_rng(2), + ) + repaired = repair_sol(np.array([[1.2, 1.2, 2.8]]), discrete) + assert len(set(repaired[0])) == 3 + np.testing.assert_array_equal( + repair_sol(np.array([[0.2, 3.0]]), _problem("discrete", [[0, 0], [2, 2]])), + [[0, 2]], + ) + permutation = _problem("permutation", [[1, 2, 3], [1, 2, 3]]) + np.testing.assert_array_equal( + repair_sol(np.array([1, 1, 3]), permutation), [1, 2, 3] + ) + repaired_rows = repair_sol(np.array([[1, 1, 2], [3, 3, 1]]), permutation) + assert all(sorted(row.tolist()) == [1, 2, 3] for row in repaired_rows) + unknown = SimpleNamespace(type=["graph"], bound=[[0], [1]]) + np.testing.assert_array_equal(repair_sol(np.array([2]), unknown), [2]) + + +def test_evaluator_normalizes_result_shapes_and_callable_name(): + decision = np.array([1.0]) + assert _call_evaluator( + SimpleNamespace(evaluate=lambda d, x: (2.0,)), None, decision + )[:2] == (2.0, 0.0) + assert _call_evaluator( + SimpleNamespace(evaluate=lambda d, x: (2.0, [-1, 3])), None, decision + )[:2] == (2.0, 3.0) + assert _call_evaluator(SimpleNamespace(evaluate=lambda d, x: 2.0), None, decision)[ + :2 + ] == (2.0, 0.0) + assert _call_evaluator(SimpleNamespace(name=lambda d, x: 3.0), None, decision)[ + :2 + ] == (3.0, 0.0) + with pytest.raises(ObjectiveEvaluationError, match="must provide"): + _call_evaluator(SimpleNamespace(), None, decision) + with pytest.raises(ObjectiveEvaluationError, match="Constraint did not return"): + _call_evaluator( + SimpleNamespace(evaluate=lambda d, x: (1.0, "bad")), None, decision + ) + with pytest.raises(ObjectiveEvaluationError, match="non-finite"): + _call_evaluator( + SimpleNamespace(evaluate=lambda d, x: (1.0, [np.nan])), None, decision + ) + + +def test_make_solutions_applies_constraint_penalty(): + problem = _problem(evaluate=lambda data, decision: (1.0, [2.0], None)) + solution = make_solutions(np.array([[0.0, 0.0]]), problem, None)[0] + assert solution.fit == 100000002.0 + + +def test_population_initialization_errors_and_index_splitting(): + rng = np.random.default_rng(3) + malformed = _problem("permutation", np.empty((1, 0)), dimension=0, D=0) + with pytest.raises(ValueError, match="requires explicit dimension"): + _init_population(rng, malformed, None, SimpleNamespace(ProbN=2)) + with pytest.raises(NotImplementedError, match="Unsupported problem type"): + _init_population( + rng, + _problem("graph"), + None, + SimpleNamespace(ProbN=2), + ) + assert _split_indices([], 1, 3) == [[0, 1, 2]] + assert _split_indices([0, 1], 3, 2) == [[0], [1], [0, 1]] + + +def test_run_design_rejects_budget_smaller_than_initial_population(): + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + with pytest.raises(ValueError, match="initial population size"): + run_design( + algorithm.operator_pheno[0], + algorithm.parameter_pheno[0], + _problem(N=3), + None, + SimpleNamespace(ProbN=3, ProbFE=2), + ) + + +def test_serial_path_updates_population_after_each_search_step(monkeypatch): + updates = [] + + def choose_all(population, *args): + return np.arange(len(population)), None + + def add_one(parent, *args): + return parent.decs() + 1.0, args[2] + + def add_ten(parent, *args): + return parent.decs() + 10.0, args[2] + + def update_to_new(combined, problem, *args): + updates.append(1) + return combined[-problem.N :], None + + components = { + "choose_test": choose_all, + "search_add_one": add_one, + "search_add_ten": add_ten, + "update_test": update_to_new, + } + original_get_component = solve_module.get_component + + def lookup_component(name): + if name in components: + return components[name] + return original_get_component(name) + + monkeypatch.setattr(solve_module, "get_component", lookup_component) + path = Pathway( + "choose_test", + [ + SearchStep("search_add_one", np.array([-np.inf, 1.0])), + SearchStep("search_add_ten", np.array([-np.inf, 1.0])), + ], + "update_test", + [], + ) + parameters = PathwayParam( + None, + [SearchParam(None, None), SearchParam(None, None)], + None, + ) + result = run_design( + [path], + [parameters], + _problem(bound=[[-100.0, -100.0], [100.0, 100.0]], Gmax=2), + None, + SimpleNamespace(ProbN=2, ProbFE=6, Seed=3), + ) + assert len(updates) == 2 + assert result["evaluations"] == 6 + + +def test_parallel_path_helper_repairs_secondary_and_truncates(monkeypatch): + def primary(parent, *args): + return parent.decs() + 2.0, args[2] + + def secondary(parent, *args): + return np.asarray(parent) + 1.0, args[2] + + components = {"primary_test": primary, "secondary_test": secondary} + original_get_component = solve_module.get_component + + def lookup_component(name): + if name in components: + return components[name] + return original_get_component(name) + + monkeypatch.setattr(solve_module, "get_component", lookup_component) + path = Pathway( + "choose_traverse", + [ + SearchStep( + "primary_test", + np.array([-np.inf, 1.0]), + "secondary_test", + ) + ], + "update_greedy", + [], + ) + parameters = PathwayParam(None, [SearchParam(None, None)], None) + parent = SolutionSet( + [ + Solution(np.array([0.0, 0.0]), 0.0, 0.0, 0.0), + Solution(np.array([1.0, 1.0]), 2.0, 0.0, 2.0), + ] + ) + produced, aux, evaluations = solve_module._execute_path( + path, + parameters, + parent, + [], + _problem(bound=[[-10.0, -10.0], [10.0, 10.0]]), + None, + SimpleNamespace(Seed=4), + 1, + 1, + ) + assert evaluations == 1 + assert len(produced) == 1 + assert len(aux) == 1 + + +def test_solve_helper_normalization_and_algorithm_errors(tmp_path): + normalized = _normalize_setting({"AlgName": "Continuous Random Search"}) + assert normalized.AlgName == "Continuous Random Search" + setting = SimpleNamespace(ProbFE=3) + _normalize_setting(setting) + assert setting.probfe == 3 + assert _to_array(None) is None + assert _to_array([]) is None + assert np.asarray(_to_array(2.0)).shape == () + np.testing.assert_array_equal(_to_array([[1, 2]]), [1, 2]) + + solution = Solution(np.array([1]), 1, 0, 1) + assert _ensure_solution_instance(solution) is solution + assert np.isinf(_ensure_solution_instance(None).fit) + converted = _ensure_solution_instance(SimpleNamespace(dec=[1], fit=2)) + assert converted.fit == 2 + assert np.isinf(_ensure_solution_instance(object()).fit) + assert _extract_mode(SimpleNamespace(type="continuous")) == "static" + assert _setting_with_budget({}, 7) == {"ProbFE": 7, "prob_fe": 7} + + with pytest.raises(FileNotFoundError): + input_algorithm(SimpleNamespace(AlgFile=tmp_path / "missing.json")) + with pytest.raises(ValueError, match="specify AlgFile"): + input_algorithm(SimpleNamespace(AlgName="")) + with pytest.raises(NotImplementedError, match="not available"): + input_algorithm(SimpleNamespace(AlgName="Unknown Optimizer")) + + +def test_run_algorithm_static_fallback_progress_and_unknown_mode(monkeypatch): + algorithm, _ = input_algorithm(SimpleNamespace(AlgName="Continuous Random Search")) + solution = Solution(np.array([0.0]), 1.0, 0.0, 1.0) + monkeypatch.setattr( + solve_module, + "run_design", + lambda *args: {"history": [solution], "best_solution": None}, + ) + app = SimpleNamespace(TextArea=SimpleNamespace(Value="")) + best, histories = run_algorithm( + algorithm, + [_problem()], + [], + app, + SimpleNamespace(AlgRuns=1), + ) + assert best[0][0] is solution + assert histories[0] == [solution] + assert app.TextArea.Value == "Solving... 100.0%" + + with pytest.raises(NotImplementedError, match="Unsupported problem mode"): + run_algorithm( + algorithm, + [_problem(type=["continuous", "dynamic"])], + [None], + None, + SimpleNamespace(AlgRuns=1), + ) diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 9e44f5c..20e80ec 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -61,8 +61,15 @@ def test_design_initialize_and_evaluate_small_problem(): def test_space_supports_discrete_and_permutation(): - discrete = SimpleNamespace(type=["discrete", "static"], bound=np.array([[0, 0], [3, 3]]), N=3, Gmax=5) - permutation = SimpleNamespace(type=["permutation", "static"], bound=np.array([[1, 2, 3], [1, 2, 3]]), N=3, Gmax=5) + discrete = SimpleNamespace( + type=["discrete", "static"], bound=np.array([[0, 0], [3, 3]]), N=3, Gmax=5 + ) + permutation = SimpleNamespace( + type=["permutation", "static"], + bound=np.array([[1, 2, 3], [1, 2, 3]]), + N=3, + Gmax=5, + ) base_kwargs = dict( Mode="design", archive=["archive_best"], @@ -79,8 +86,22 @@ def test_space_supports_discrete_and_permutation(): ) discrete_setting = space([discrete], SimpleNamespace(**base_kwargs)) permutation_setting = space([permutation], SimpleNamespace(**base_kwargs)) - assert 'reinit_discrete' in discrete_setting.AllOp - assert 'reinit_permutation' in permutation_setting.AllOp + assert "reinit_discrete" in discrete_setting.AllOp + assert "reinit_permutation" in permutation_setting.AllOp + + +def test_continuous_space_contains_paper_search_components(): + result = space([DummyProblem()], SimpleNamespace()) + for component in ("cross_arithmetic", "cross_sim_binary", "search_eda"): + assert component in result.AllOp + + +def test_space_preserves_matlab_style_algorithm_settings(): + setting = SimpleNamespace(AlgP=2, AlgQ=4, AlgN=3) + result = space([DummyProblem()], setting) + assert result.alg_p == 2 + assert result.alg_q == 4 + assert result.alg_n == 3 def test_design_get_new_preserves_dimensions(): @@ -105,3 +126,40 @@ def test_design_get_new_preserves_dimensions(): assert new_design.performance.shape == design.performance.shape assert aux is None or isinstance(aux, dict) + +def test_parameter_tuning_uses_stateful_cma_for_one_algorithm(): + problem = DummyProblem() + setting = SimpleNamespace( + Mode="design", + archive=["archive_best"], + AlgP=1, + AlgQ=2, + IncRate=0.05, + ProbN=4, + ProbFE=40, + AlgN=1, + AlgFE=20, + AlgRuns=1, + Evaluate="exact", + Compare="average", + TunePara=True, + rng=np.random.default_rng(7), + ) + setting = space([problem], setting) + design = Design([problem], setting) + new_design, aux = design.get_new([problem], setting, inner_g=1, aux=None) + + assert new_design.performance.shape == design.performance.shape + assert isinstance(aux, dict) + assert aux["seed"] > sum(path.shape[0] + 1 for path in design.operator) + active = [ + int(value) + for path in design.operator + for value in np.concatenate(([path[0, 0]], path[1:, 0], [path[-1, -1]])) + ] + has_tunable_parameter = any( + 0 < index <= len(design.parameter) + and design.parameter[index - 1][0] is not None + for index in active + ) + assert ("cma_Disturb" in aux) == has_tunable_parameter From 2d441ab6f7c2dc07d3cd73cf97ac8cac3b9db849 Mon Sep 17 00:00:00 2001 From: Qi Zhao Date: Sun, 19 Jul 2026 20:36:38 +0800 Subject: [PATCH 2/4] Fix cross-platform CI checks --- .github/workflows/tests.yml | 2 ++ src/autooptlib/applications/stacking.py | 8 ++++---- tests/unit/test_reliability.py | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1cc528e..6569a43 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,6 +2,8 @@ name: tests on: push: + branches: + - main pull_request: permissions: diff --git a/src/autooptlib/applications/stacking.py b/src/autooptlib/applications/stacking.py index b5c0de3..6fe71bd 100644 --- a/src/autooptlib/applications/stacking.py +++ b/src/autooptlib/applications/stacking.py @@ -124,7 +124,7 @@ def stacking_objective( levels, positions, orientations = _decode(decision, instance) heights = np.where(orientations == 0, instance.heights, instance.widths) - level_heights = np.zeros(instance.n_levels, dtype=float) + level_heights: np.ndarray = np.zeros(instance.n_levels, dtype=float) for level in range(instance.n_levels): members = levels == level if np.any(members): @@ -162,8 +162,8 @@ def stacking_constraints( instance.validate() levels, _, orientations = _decode(decision, instance) widths = np.where(orientations == 0, instance.widths, instance.heights) - width_excess = np.zeros(instance.n_levels, dtype=float) - weight_excess = np.zeros(instance.n_levels, dtype=float) + width_excess: np.ndarray = np.zeros(instance.n_levels, dtype=float) + weight_excess: np.ndarray = np.zeros(instance.n_levels, dtype=float) for level in range(instance.n_levels): members = levels == level width_excess[level] = float(np.sum(widths[members]) - instance.rack_width) @@ -221,7 +221,7 @@ def get_data(instance_id: Hashable) -> MaterialStackingInstance: def bounds(instance_id: Hashable) -> np.ndarray: instance = get_data(instance_id) - lower = np.zeros(instance.dimension, dtype=int) + lower: np.ndarray = np.zeros(instance.dimension, dtype=int) upper = np.concatenate( ( np.full(instance.n_items, instance.n_levels - 1, dtype=int), diff --git a/tests/unit/test_reliability.py b/tests/unit/test_reliability.py index 4cabd7e..ec832ad 100644 --- a/tests/unit/test_reliability.py +++ b/tests/unit/test_reliability.py @@ -271,9 +271,9 @@ def flaky(decision, instance): Problem=problem, InstanceSolve=[1], AlgName="Continuous Random Search", + AlgRuns=1, ProbN=2, ProbFE=2, - AlgRuns=1, EvalRetries=2, OutputDir=tmp_path, ) @@ -347,6 +347,7 @@ def synchronized_objective(decision, instance): Problem=problem, InstanceSolve=[1], AlgName="Continuous Random Search", + AlgRuns=1, ProbN=2, ProbFE=2, EvalWorkers=2, From 36b815eff71663c089691c2c9799dfc16713cca7 Mon Sep 17 00:00:00 2001 From: Qi Zhao Date: Sun, 19 Jul 2026 20:39:09 +0800 Subject: [PATCH 3/4] Update GitHub Actions runtimes --- .github/workflows/release.yml | 4 ++-- .github/workflows/tests.yml | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 905ead2..aa183bf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,8 +13,8 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" - run: python -m pip install --upgrade pip build twine diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6569a43..01a2f44 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -32,8 +32,8 @@ jobs: - os: windows-latest python: "3.11" steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} cache: pip @@ -44,8 +44,8 @@ jobs: coverage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" cache: pip @@ -60,8 +60,8 @@ jobs: package: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" cache: pip @@ -101,8 +101,8 @@ jobs: docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" cache: pip @@ -113,8 +113,8 @@ jobs: typecheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" cache: pip @@ -125,8 +125,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" cache: pip @@ -138,8 +138,8 @@ jobs: performance: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: "3.11" cache: pip From 99794a04334c8668bf1ac430f2038047e85a662f Mon Sep 17 00:00:00 2001 From: Qi Zhao Date: Sun, 19 Jul 2026 20:44:24 +0800 Subject: [PATCH 4/4] Finalize 1.2.0 release metadata --- CHANGELOG.md | 2 +- CITATION.cff | 2 +- README.md | 6 ++---- docs/getting-started.md | 5 ++--- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c40ca81..26ac7fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to AutoOptLib are documented here. -## 1.2.0 - 2026-07-18 +## 1.2.0 - 2026-07-19 ### Added diff --git a/CITATION.cff b/CITATION.cff index 21623c8..3450b26 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -3,7 +3,7 @@ message: "If you use AutoOptLib, please cite this software and the accompanying title: "AutoOptLib" type: software version: 1.2.0 -date-released: 2026-07-18 +date-released: 2026-07-19 license: Apache-2.0 repository-code: "https://github.com/auto4opt/AutoOptLib" url: "https://github.com/auto4opt/AutoOptLib" diff --git a/README.md b/README.md index ac4b007..85ca078 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,10 @@ historical releases. AutoOptLib requires Python 3.9 or newer. -Until 1.2.0 is published on PyPI, install it from a clone: +Install the latest release from PyPI: ```bash -git clone https://github.com/auto4opt/AutoOptLib.git -cd AutoOptLib -python -m pip install . +python -m pip install autooptlib ``` For development: diff --git a/docs/getting-started.md b/docs/getting-started.md index c08f360..7c1a88c 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -2,11 +2,10 @@ ## Installation -AutoOptLib requires Python 3.9 or later. Until version 1.2.0 is available on -PyPI, install it from a checkout: +AutoOptLib requires Python 3.9 or later. Install the latest release from PyPI: ```bash -python -m pip install . +python -m pip install autooptlib ``` For development and documentation builds: