コード例 #1
0
ファイル: discrete_opt.py プロジェクト: xynmxy/ZOOpt
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")
コード例 #2
0
    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()