Minor changes

pull/1/head
Alinson S. Xavier 6 years ago
parent 5f2e81322c
commit b48dfad3aa

@ -7,3 +7,5 @@ from .component import Component
from .instance import Instance
from .solvers import LearningSolver
from .benchmark import BenchmarkRunner
from .warmstart import WarmStartComponent
from .branching import BranchPriorityComponent

@ -14,22 +14,22 @@ from scipy.stats.distributions import rv_frozen
class MaxWeightStableSetChallengeA:
"""
- Fixed random graph (200 vertices, 5% density)
- Uniformly random weights in the [100., 125.] interval
- 500 training instances
- 100 test instances
- Random weights ~ U(100., 150.)
- 300 training instances
- 50 test instances
"""
def __init__(self):
self.generator = MaxWeightStableSetGenerator(w=uniform(loc=100., scale=25.),
self.generator = MaxWeightStableSetGenerator(w=uniform(loc=100., scale=50.),
n=randint(low=200, high=201),
density=uniform(loc=0.05, scale=0.0),
fix_graph=True)
def get_training_instances(self):
return self.generator.generate(500)
return self.generator.generate(300)
def get_test_instances(self):
return self.generator.generate(100)
return self.generator.generate(50)
class MaxWeightStableSetGenerator:

@ -51,7 +51,7 @@ branch_and_bound(mip,
node_limit = 1000,
branch_rule = full_strong_branching_track,
node_rule = best_bound,
print_interval = 1)
print_interval = 100)
priority = [(pseudocost_count_up[v] == 0 || pseudocost_count_down[v] == 0) ? 0 :
(pseudocost_sum_up[v] / pseudocost_count_up[v]) *

@ -48,7 +48,7 @@ class LearningSolver:
if mode is not None:
assert mode in ["exact", "heuristic"]
for component in self.components:
for component in self.components.values():
component.mode = mode
def _create_solver(self):

@ -50,7 +50,7 @@ class WarmStartPredictor(ABC):
class LogisticWarmStartPredictor(WarmStartPredictor):
def __init__(self,
min_samples=100,
thr_fix=[0.99, 0.99],
thr_fix=[0.95, 0.95],
thr_balance=[0.95, 0.95],
thr_score=[0.95, 0.95]):
super().__init__()
@ -151,8 +151,12 @@ class WarmStartComponent(Component):
if self.mode == "heuristic":
if ws[i,0] == 1:
var[index].fix(0)
if solver.is_persistent:
solver.internal_solver.update_var(var[index])
elif ws[i,1] == 1:
var[index].fix(1)
if solver.is_persistent:
solver.internal_solver.update_var(var[index])
else:
if ws[i,0] == 1:
var[index].value = 0

Loading…
Cancel
Save