41 int main (
int argc,
char *argv[]) {
46 Utils::Config::SetConfigFile(std::string(argv[1]));
49 std::cout << Utils::DateTime::Now() <<
": Starting simulation." << std::endl << std::endl;
52 std::shared_ptr<PrivacyServiceProvider> privacyServiceProvider = std::make_shared<PrivacyServiceProvider>();
53 std::shared_ptr<ServiceProvider> serviceProvider = std::make_shared<ServiceProvider>(privacyServiceProvider->GetPaillierPublicKey(), privacyServiceProvider->GetDgkPublicKey());
54 serviceProvider->SetPrivacyServiceProvider(privacyServiceProvider);
55 privacyServiceProvider->SetServiceProvider(serviceProvider);
57 std::cout << Utils::DateTime::Now() <<
": Finished initializing servers." << std::endl << std::endl;
60 Client client(serviceProvider, privacyServiceProvider, privacyServiceProvider->GetPaillierPublicKey());
62 std::cout << Utils::DateTime::Now() <<
": Finished encrypting client data." << std::endl << std::endl;
64 serviceProvider->GenerateDummyDatabase(client.GetNormalizedScaledRatings());
66 std::cout << Utils::DateTime::Now() <<
": Finished computing [V_c] for every user." << std::endl << std::endl;
68 serviceProvider->ComputeSimilarityValues(client.GetNormalizedScaledRatings());
70 std::cout << Utils::DateTime::Now() <<
": Finished computing the similarity values and Gamma." << std::endl << std::endl;
72 serviceProvider->ComputeUserRecommendations(client.GetSparseRatings());
74 std::cout << Utils::DateTime::Now() <<
": Finished pre-computing recommendations for all users." << std::endl << std::endl;
79 std::cout << std::endl << Utils::DateTime::Now() <<
": Finished simulation." << std::endl << std::endl;
81 catch (
const std::runtime_error &exception) {
82 std::cout << exception.what() << std::endl;
84 catch (
const std::exception &exception) {
85 std::cout << exception.what() << std::endl;
89 std::cout <<
"Unexpected exception occured." << std::endl;
void ComputeRecommendations()
Interact with the server(s) to extract the recommendations for every user.
int main(int argc, char *argv[])
Private Recommendations main header.