void runExperiment22(int N, int M, int L, int L_user) { int count = 200; while (count--) { NetworkData data; data.init(N,M,L,L_user); vector<int> p(0); ProblemSolver ps(data); cout << ps.findOptimalUniformPrice().first << " "; pair<int, vector<int> > r1 = ps.findLocallyOptimalNonuiformPricing(0,0); pair<int, vector<int> > r2 = ps.findLocallyOptimalNonuiformPricing(1,0); cout << r1.first << " "; cout << ps._getRevenueForNonuniformPricing(r2.second) << endl; } }
void runEvaluation(int N, int M, int L, int L_user) { int n_cases = 1; while (true) { cout << "case: " << n_cases++ << endl; NetworkData data; data.init(N,M,L,L_user); ProblemSolver ps(data); int nonuni_r = ps.findLocallyOptimalNonuiformPricing(1,1).first; } // while (true) { // NetworkData data; // data.init(N,M,L,L_user); // ProblemSolver ps(data); // int uni_r = ps.findOptimalUniformPrice().first; // int nonuni_r = ps.findLocallyOptimalNonuiformPricing(1, 0).first; // int opt_r = ps.findOptimalPricingByDFS().first; // cout << uni_r << " " << nonuni_r << " " << opt_r << endl; // } }
void runExperiment2(int N, int M, int L, int L_user) { int count = 1000; while (count--) { NetworkData data; data.init(N,M,L,L_user); vector<int> p(0); for (int i = 0; i < L; ++i) { p.push_back(rand()%(MAX_VALUATION+1)); } ProblemSolver ps(data); cout << ps._getRevenueForNonuniformPricing(p); ApproximateAlgorithm aa = ApproximateAlgorithm(data, p); cout << " " << aa.computeRevenue() << endl; // int random_max = 0; // for (int i = 0; i < 20; ++i) { // int r = aa._computeRevenueWithRandomSelection(); // random_max = r > random_max ? r : random_max; // cout << " " << random_max; // } // cout << endl; } }