from geco.mips.miplib.base import Loader
from improvelp import improvelp
import gzip
import pickle
from utility import instancetypes, generator_switcher, instancesizes

# instancetype = instancetypes[2]

instance_type = instancetypes[1]
instance_size = instancesizes[0]
dataset = instance_type + instance_size

directory_opt = './result/generated_instances/' + instance_type + '/' + instance_size + '/'
pathlib.Path(directory_opt).mkdir(parents=True, exist_ok=True)

generator = generator_switcher(dataset)
generator.seed(100)
opt_mode = 'rootsol-valid100-199'

objs = []
times = []
i = 0
while i > -1 and i < 200:

    instance = next(generator)
    MIP_model = instance.as_pyscipopt()
    MIP_model.setProbName(instance_type + '-' + str(i))
    instance_name = MIP_model.getProbName()
    print(instance_name)

    # MIP_model.setHeuristics(pyscipopt.SCIP_PARAMSETTING.OFF)
seed = 100
env.seed(seed)  # environment (SCIP)

mode = modes[4]
incumbent_mode = 'rootsol'
instancetype_model = instancetypes[11]
instancetype = instancetypes[11]
symmetric = True
time_limit = 60
saved_directory = './result/saved_models/'

directory = './result/generated_instances/' + instancetype + '/' + mode + '/'
directory_lb_test = directory + 'lb-from-' + incumbent_mode + '-60s/'
pathlib.Path(directory_lb_test).mkdir(parents=True, exist_ok=True)

generator = generator_switcher(instancetype)
generator.seed(100)
i = 0

# test set for lb: generator_seed=100, valid instance 100-199
while i < 200:
    instance = next(generator)
    MIP_model = instance.as_pyscipopt()
    MIP_model.setProbName(instancetype + '-' + str(i))
    instance_name = MIP_model.getProbName()
    print(instance_name)

    MIP_model.setHeuristics(pyscipopt.SCIP_PARAMSETTING.OFF)
    # MIP_model.setSeparating(pyscipopt.SCIP_PARAMSETTING.OFF)
    MIP_model.setParam('presolving/maxrounds', 0)
    MIP_model.setParam('presolving/maxrestarts', 0)