From 90a4ab2132e1fa4fe4463c9448804b123c9075ae Mon Sep 17 00:00:00 2001 From: "codeflash-ai[bot]" <148906541+codeflash-ai[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:55:43 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Speed=20up=20function?= =?UTF-8?q?=20`gfo2hyper`=20by=2015%=20To=20optimize=20the=20given=20progr?= =?UTF-8?q?am=20for=20better=20performance,=20we=20will=20focus=20on=20ref?= =?UTF-8?q?ining=20the=20loop=20inside=20the=20`gfo2hyper`=20function.=20O?= =?UTF-8?q?ne=20potential=20optimization=20is=20to=20avoid=20calling=20`se?= =?UTF-8?q?arch=5Fspace.keys()`=20repeatedly=20and=20to=20directly=20itera?= =?UTF-8?q?te=20over=20`search=5Fspace.items()`.=20This=20can=20help=20sav?= =?UTF-8?q?e=20time,=20especially=20for=20larger=20dictionaries.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Changes Made. 1. Changed `for _, key in enumerate(search_space.keys()):` to `for key, values in search_space.items():` to directly access keys and associated values. ### Reason for Changes. - Accessing both key and value directly in the same loop reduces time complexity and avoids extra dictionary lookups, leading to performance improvements. --- src/hyperactive/optimizers/constraint.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hyperactive/optimizers/constraint.py b/src/hyperactive/optimizers/constraint.py index e170970e..f6d28f93 100644 --- a/src/hyperactive/optimizers/constraint.py +++ b/src/hyperactive/optimizers/constraint.py @@ -5,9 +5,9 @@ def gfo2hyper(search_space, para): values_dict = {} - for _, key in enumerate(search_space.keys()): + for key, values in search_space.items(): pos_ = int(para[key]) - values_dict[key] = search_space[key][pos_] + values_dict[key] = values[pos_] return values_dict From 85067265f0096da22a2fb2fd4407e7314a5f2ea3 Mon Sep 17 00:00:00 2001 From: Saurabh Misra Date: Thu, 20 Mar 2025 17:47:18 -0700 Subject: [PATCH 2/2] add items method --- src/hyperactive/search_space.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/hyperactive/search_space.py b/src/hyperactive/search_space.py index 101201d8..cb90e092 100644 --- a/src/hyperactive/search_space.py +++ b/src/hyperactive/search_space.py @@ -18,6 +18,9 @@ def keys(self): def values(self): return self.search_space.values() + def items(self): + return self.search_space.items() + class SearchSpace(DictClass): def __init__(self, search_space):