mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-10 11:28:51 -06:00
MIPLearn v0.3
This commit is contained in:
58
tests/problems/test_binpack.py
Normal file
58
tests/problems/test_binpack.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# MIPLearn: Extensible Framework for Learning-Enhanced Mixed-Integer Optimization
|
||||
# Copyright (C) 2020-2022, UChicago Argonne, LLC. All rights reserved.
|
||||
# Released under the modified BSD license. See COPYING.md for more details.
|
||||
|
||||
import numpy as np
|
||||
from scipy.stats import uniform, randint
|
||||
|
||||
from miplearn.problems.binpack import build_binpack_model, BinPackData, BinPackGenerator
|
||||
|
||||
|
||||
def test_binpack_generator() -> None:
|
||||
np.random.seed(42)
|
||||
gen = BinPackGenerator(
|
||||
n=randint(low=10, high=11),
|
||||
sizes=uniform(loc=0, scale=10),
|
||||
capacity=uniform(loc=100, scale=0),
|
||||
sizes_jitter=uniform(loc=0.9, scale=0.2),
|
||||
capacity_jitter=uniform(loc=0.9, scale=0.2),
|
||||
fix_items=True,
|
||||
)
|
||||
data = gen.generate(2)
|
||||
assert data[0].sizes.tolist() == [
|
||||
3.39,
|
||||
10.4,
|
||||
7.81,
|
||||
5.64,
|
||||
1.46,
|
||||
1.46,
|
||||
0.56,
|
||||
8.7,
|
||||
5.93,
|
||||
6.79,
|
||||
]
|
||||
assert data[0].capacity == 102.24
|
||||
assert data[1].sizes.tolist() == [
|
||||
3.48,
|
||||
9.11,
|
||||
7.12,
|
||||
5.93,
|
||||
1.65,
|
||||
1.47,
|
||||
0.58,
|
||||
8.82,
|
||||
5.47,
|
||||
7.23,
|
||||
]
|
||||
assert data[1].capacity == 93.41
|
||||
|
||||
|
||||
def test_binpack() -> None:
|
||||
model = build_binpack_model(
|
||||
BinPackData(
|
||||
sizes=np.array([4, 8, 1, 4, 2, 1]),
|
||||
capacity=10,
|
||||
)
|
||||
)
|
||||
model.optimize()
|
||||
assert model.inner.objVal == 2.0
|
||||
Reference in New Issue
Block a user