{"id":22040134,"url":"https://github.com/wilrop/moqups","last_synced_at":"2025-08-23T15:42:48.433Z","repository":{"id":82276112,"uuid":"406656722","full_name":"wilrop/moqups","owner":"wilrop","description":"An algorithm to calculate all pure strategy Nash equilibria in multi-objective games with quasiconvex utility functions","archived":false,"fork":false,"pushed_at":"2022-05-24T12:39:03.000Z","size":39,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T22:12:38.298Z","etag":null,"topics":["algorithmic-game-theory","game-theory","multi-objective"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wilrop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-09-15T07:28:28.000Z","updated_at":"2025-03-20T20:20:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"22f80e14-ac07-43b6-ae60-c03d4956ff38","html_url":"https://github.com/wilrop/moqups","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wilrop/moqups","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilrop%2Fmoqups","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilrop%2Fmoqups/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilrop%2Fmoqups/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilrop%2Fmoqups/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wilrop","download_url":"https://codeload.github.com/wilrop/moqups/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilrop%2Fmoqups/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271755043,"owners_count":24815331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithmic-game-theory","game-theory","multi-objective"],"created_at":"2024-11-30T11:13:29.936Z","updated_at":"2025-08-23T15:42:48.421Z","avatar_url":"https://github.com/wilrop.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pure Strategy Nash Equilibria in Multi-Objective Games\nThis repository contains the MOQUPS algorithm which computes all pure strategy Nash equilibria (PSNE) in Multi-Objective Normal-Form Games (MONFGs). We present the algorithm below and give an example of its output on the following MONFG with two objectives (x, y):\n\n|  | A | B | C |\n|---|:---:|:---:|:---:|\n| **A** | (4, 1); (4, 0) | (1, 2); (3, 1) | (2, 1); (2, 2) |\n| **B** | (3, 1); (3, 1) | (3, 2); (2, 2) | (1, 2); (1, 3) |\n| **C** | (1, 2); (2, 2) | (2, 1); (1, 3) | (1, 3); (0, 4) |\n\nWe use the following utility functions:\n 1) Player 1: u(x, y) = x² + y²\n 2) Player 2: u(x, y) = x² + xy + y²\n\n\n## MOQUPS\nMOQUPS, Multi-Objective and Quasiconvex Utilities for Pure Strategies, is able to compute all PSNE in an MONFG when given only quasiconvex utility functions. Due to the theorems shown in the paper, the PSNE retrieved using this algorithm must necessarily represent all PSNE in the MONFG under ESR, SER and any blended setting.\n\nThe algorithm is found in [moqups.py](moqups.py) and can be called using several parameters. For an overview of all parameters, execute the following command ``python moqups.py --help``.\n\nIn the example MONFG, it successfully finds the PSNE of (A, A) and (C, C). The first PSNE leads to a utility of 17 for player 1 and 16 for player 2. The second PSNE leads to a utility of 10 for player 1 and 16 for player 2.\n\nNote that this algorithm can easily be adapted to output a sample PSNE by, for example, returning the first PSNE that is found.\n\n## Cite\nPlease use the following citation if you use this algorithm in your work.\n```\n@misc{ropke2021nash,\n      title={On Nash Equilibria in Normal-Form Games With Vectorial Payoffs}, \n      author={Willem Röpke and Diederik M. Roijers and Ann Nowé and Roxana Rădulescu},\n      year={2021},\n      eprint={2112.06500},\n      archivePrefix={arXiv},\n      primaryClass={cs.GT}\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilrop%2Fmoqups","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilrop%2Fmoqups","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilrop%2Fmoqups/lists"}