def minimize_setcover_discrete(): """ Discrete optimization example of minimizing setcover problem. :return: no return value """ problem = SetCover() dim = problem.dim # the dim is prepared by the class objective = Objective(problem.fx, dim) # form up the objective function budget = 100 * dim.get_size() # number of calls to the objective function # if autoset is False, you should define train_size, positive_size, negative_size on your own parameter = Parameter(budget=budget, autoset=False) parameter.set_train_size(6) parameter.set_positive_size(1) parameter.set_negative_size(5) ExpOpt.min(objective, parameter, repeat=10, best_n=5, plot=True, plot_file="img/setcover_discrete_figure.png")
repeat = 15 result = [] for i in range(repeat): # setup optimization problem dim_size = 100 # dimensions dim_regs = [[-1, 1]] * dim_size # dimension range dim_tys = [True] * dim_size # dimension type : real dim = Dimension(dim_size, dim_regs, dim_tys) # form up the dimension object objective = Objective(ackley, dim) # form up the objective function budget = 20 * dim_size # number of calls to the objective function # by setting autoset=false, the algorithm parameters will not be set by default parameter = Parameter(algorithm="racos", budget=budget, autoset=False) # so you are allowed to setup algorithm parameters of racos parameter.set_train_size(21) parameter.set_positive_size(1) parameter.set_negative_size(20) # perform the optimization solution = Opt.min(objective, parameter) # store the optimization result print('solved solution is:') solution.print_solution() result.append(solution.get_value()) # plt.plot(objective.get_history_bestsofar()) # plt.savefig("figure.png") result_analysis(result, 5) t2 = time.clock()