Exemplo n.º 1
0
def select(name):
    if name.startswith("linear{"):
        args = parse_args(name)
        n = args["n"] 
        variance = args["var"] 
        real_means = linear_means(n)
        bandit = linear_bandit(n, variance)
        return (real_means, bandit)
    elif name.startswith( "polynomial{"):
        args = parse_args(name)
        n = args["n"]
        variance = args["var"]
        real_means = polynomial_means(n)
        bandit = polynomial_bandit(n, variance)
        return (real_means, bandit)
    elif name.startswith("linear-linvar{"):
        args = parse_args(name)
        n = args["n"]
        max_variance = args["max_var"]
        min_variance = args["min_var"]
        real_means = linear_means(n)
        bandit = gj_linvar.linear_bandit(n, max_variance, min_variance)
        return (real_means, bandit)
    elif name.startswith( "polynomial-linvar{"):
        args = parse_args(name)
        n = args["n"]
        max_variance = args["max_var"]
        min_variance = args["min_var"]
        real_means = polynomial_means()
        bandit = gj_linvar.polynomial_bandit(n, max_variance, min_variance)
        return (real_means, bandit)
    elif name.startswith( "captions{"):
        args = parse_args(name)
        n = args["n"]
        real_means = captions_means(n)
        bandit =captions_bandit(n)
        return (real_means, bandit)
    elif name.startswith( "poisson_olivier{"):
        args = parse_args(name)
        n = args["n"]
        real_means = poisson_oli_means(n)
        bandit = poisson_oli_bandit(n)
        return (real_means, bandit)
    elif name.startswith( "poisson-exp{"):
        real_means = poisson_exp_means()
        bandit = poisson_exp_bandit()
        return (real_means, bandit)
    elif name.startswith( "scaled_gaussian{"):
        args = parse_args(name)
        n = args["n"]
        real_means = scaled_gaussian_means()[:n]
        bandit = scaled_gaussian_bandit(n)
        return (real_means, bandit)
    else:
       choices = \
            ["linear{n,var}", "polynomial{n,var}", \
             "captions{n}", "poisson-olivier{n}", "scaled_gaussian{n}"]
       raise ValueError("Invalid environment \"" + name + "\", " + \
            "choose from " + \
            "[" + ", ".join(choices) + "]") 
def select_bandit(arm_n, variance, bandit, R_0):
    if bandit == "linear":
        bandits = linear_bandit(arm_n, variance)
    elif bandit == "sparse":
        bandits = sparse_bandit(arm_n, variance)
    elif bandit == "capition":
        bandits = captions_bandit()
    elif bandit == "influenza":
        bandits = preventive_bandit(variance, R_0)
    else:
        bandits = polynomial_bandit(arm_n, variance)
    return bandits
Exemplo n.º 3
0
from algorithms.uniform import Uniform
from environments.gaussian_jun import linear_bandit, linear_means

n = 200
steps = 150000
m = 10
arms_n = 1000
variance = 0.25
# lin_bandits = [linear_bandit(arms_n, variance) for i in range(steps)]
linearmeans = linear_means(arms_n)
J_t_result = np.zeros((2,steps))

for i in range(n):
    #lin_bandits = linear_bandit(arms_n, variance, steps)
    lin_bandits = linear_bandit(arms_n, variance)
    J_t_n = np.zeros((2,steps))
    algo = Uniform(lin_bandits, m)
    for t in range(steps):
        J_t = algo.step(t)
        top_m = [linearmeans[int(i)] for i in J_t]
        J_t_n[0][t] = np.min(top_m)
        J_t_n[1][t] = np.sum(top_m)

    J_t_result = J_t_result+J_t_n
result = J_t_result/n

plt.figure(1)
plt.title('Linear m = 10', fontweight='bold')
plt.xlabel('t')
plt.ylabel('min')