Skip to content

Commit c611084

Browse files
committed
address comments
1 parent ae8c178 commit c611084

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

.github/workflows/test_hiopbbpy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
2727
- name: Run Tests
2828
run: |
29-
python src/Drivers/hiopbbpy/BODriver.py 20
29+
python src/Drivers/hiopbbpy/BODriver.py 10
3030
continue-on-error: false
3131

3232

src/Drivers/hiopbbpy/BODriver.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@
4444
mean_obj = {}
4545
max_obj = {}
4646
min_obj = {}
47+
y_opt = {}
4748

48-
retval = 1
49-
sys.exit(retval)
49+
retval = 0
5050
for prob_type in prob_type_l:
5151
print()
5252
if prob_type == "LpNorm":
@@ -58,12 +58,14 @@
5858
mean_obj[prob_type] = {}
5959
max_obj[prob_type] = {}
6060
min_obj[prob_type] = {}
61+
y_opt[prob_type] = {}
6162

6263
for acq_type in acq_type_l:
6364
if acq_type not in mean_obj[prob_type]:
6465
mean_obj[prob_type][acq_type] = 0
6566
max_obj[prob_type][acq_type] = -np.inf
6667
min_obj[prob_type][acq_type] = np.inf
68+
y_opt[prob_type][acq_type] = np.zeros(num_repeat)
6769

6870
print("Problem name: ", problem.name)
6971
print("Acquisition type: ", acq_type)
@@ -83,22 +85,28 @@
8385
bo.optimize(problem)
8486

8587
# Retrieve optimal objec
86-
y_opt = bo.getOptimalObjective()
88+
y_opt[prob_type][acq_type][n_repeat] = bo.getOptimalObjective()
8789

88-
mean_obj[prob_type][acq_type] += y_opt
89-
max_obj[prob_type][acq_type] = max(max_obj[prob_type][acq_type], y_opt)
90-
min_obj[prob_type][acq_type] = min(min_obj[prob_type][acq_type], y_opt)
90+
mean_obj[prob_type][acq_type] += y_opt[prob_type][acq_type][n_repeat]
91+
max_obj[prob_type][acq_type] = max(max_obj[prob_type][acq_type], y_opt[prob_type][acq_type][n_repeat])
92+
min_obj[prob_type][acq_type] = min(min_obj[prob_type][acq_type], y_opt[prob_type][acq_type][n_repeat])
9193

9294
print("Summary:")
9395
for prob_type in prob_type_l:
9496
for acq_type in acq_type_l:
97+
allowed_error = max(1e-6, 0.01*(saved_max_obj[prob_type][acq_type]-saved_min_obj[prob_type][acq_type]))
98+
9599
mean_obj[prob_type][acq_type] /= num_repeat
96100
print("(Min,Mean,Max) Opt.Obj for", prob_type, "-", acq_type, ":\t(", min_obj[prob_type][acq_type], ",",mean_obj[prob_type][acq_type], ",", max_obj[prob_type][acq_type], ")")
97-
98-
#r_error = np.abs((mean_obj[prob_type][acq_type] - saved_mean_obj[prob_type][acq_type])/(1+saved_mean_obj[prob_type][acq_type]))
99-
#print("Relative Error from Mean: ", r_error)
100-
101-
if max_obj[prob_type][acq_type] > saved_max_obj[prob_type][acq_type] or min_obj[prob_type][acq_type] < saved_min_obj[prob_type][acq_type]:
101+
102+
lb = saved_min_obj[prob_type][acq_type] - allowed_error
103+
ub = saved_max_obj[prob_type][acq_type] + allowed_error
104+
105+
is_failed = (y_opt[prob_type][acq_type] < lb) | (y_opt[prob_type][acq_type] > ub)
106+
num_fail = np.sum(is_failed)
107+
108+
if num_fail > 1:
109+
print(num_fail, "test(s) fail(s):", y_opt[prob_type][acq_type][is_failed])
102110
print("Recorded (min, mean, max): (", saved_min_obj[prob_type][acq_type], ",", saved_mean_obj[prob_type][acq_type], ",", saved_max_obj[prob_type][acq_type], ")")
103111
retval = 1
104112

0 commit comments

Comments
 (0)