online_attacks/experiments/hyper_search_stochastic_toy.py [46:83]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def run_experiment(params: OnlineParams, train_loader: Dataset, knapsack: bool):
    offline_algorithm, online_algorithm = create_online_algorithm(params)
    num_perms = len(train_loader)
    comp_ratio_list, online_knapsack_list = [], []
    for i, dataset in enumerate(train_loader):
        offline_dataset, online_dataset = dataset[0], dataset[1]
        indices = compute_indices(online_dataset, [online_algorithm, offline_algorithm])
        comp_ratio_list.append(
            compute_competitive_ratio(
                indices[online_algorithm.name], indices[offline_algorithm.name]
            )
        )

        if knapsack:
            offline_value = sum([x[0] for x in indices[offline_algorithm.name]])
            online_knapsack_list.append(
                compute_knapsack_online_value(indices[online_algorithm.name])
            )

    # Indicator Competitive Ratio
    comp_ratio = np.sum(comp_ratio_list) / (params.K * num_perms)
    print(
        "Competitive Ratio for %s with K = %d is %f "
        % (online_algorithm.name, params.K, comp_ratio)
    )

    # Knapsack Competitive Ratio
    if knapsack:
        comp_ratio = np.sum(online_knapsack_list) / (offline_value * num_perms)
        print(
            "Knapsack Competitive Ratio for %s with K = %d is %f "
            % (online_algorithm.name, params.K, comp_ratio)
        )

    return comp_ratio


def main():
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



online_attacks/experiments/stochastic_toy.py [27:66]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def run_experiment(params: OnlineParams, train_loader: Dataset, knapsack: bool):
    offline_algorithm, online_algorithm = create_online_algorithm(params)
    num_perms = len(train_loader)
    comp_ratio_list, online_knapsack_list = [], []
    for i, dataset in enumerate(train_loader):
        offline_dataset, online_dataset = dataset[0], dataset[1]
        indices = compute_indices(online_dataset, [online_algorithm, offline_algorithm])
        comp_ratio_list.append(
            compute_competitive_ratio(
                indices[online_algorithm.name], indices[offline_algorithm.name]
            )
        )
        # if i % 10 == 0:
        # print("K is %d while num in S is %d" %(params.K, len(online_algorithm.S)))

        if knapsack:
            offline_value = sum([x[0] for x in indices[offline_algorithm.name]])
            online_knapsack_list.append(
                compute_knapsack_online_value(indices[online_algorithm.name])
            )

    # Indicator Competitive Ratio
    comp_ratio = np.sum(comp_ratio_list) / (params.K * num_perms)
    print(
        "Competitive Ratio for %s with K = %d is %f "
        % (online_algorithm.name, params.K, comp_ratio)
    )

    # Knapsack Competitive Ratio
    if knapsack:
        comp_ratio = np.sum(online_knapsack_list) / (offline_value * num_perms)
        print(
            "Knapsack Competitive Ratio for %s with K = %d is %f "
            % (online_algorithm.name, params.K, comp_ratio)
        )

    return comp_ratio


def main():
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



