# NetworkZ
NetworkZ is a library of graph algorithms in Python. It is an extension of the [NetworkX](https://github.com/networkx/networkx). It contains (by import) everything that is in NetworkX, plus some additional algorithms that were submitted into NetworkX but not merged yet. Currently, NetworkZ contains the following additional algorithms:
* [Rank-maximal matching](networkz/algorithms/bipartite/rank_maximal_matching.py): by Oriya Alperin, Liel Vaknin and Amiel Lejzor.
* [Social-aware coalition formation](networkz/algorithms/approximation/coalition_formation.py) - by Victor Kushnir.
## Installation
```
pip install networkz
```
This installs the latest version of networkx, and the new algorithms added in networkz.
## Usage
### Rank Maximal Matching Algorithm
A rank-maximal matching is a matching that maximizes the number of agents who are matched to their 1st priority; subject to that, it maximizes the number of agents matched to their 2nd priority; and so on.
```
import networkz as nx
G = nx.Graph()
G.add_nodes_from(["agent1", "agent2"], bipartite=0)
G.add_nodes_from(["product1", "product2"], bipartite=1)
G.add_weighted_edges_from([("agent1", "product1", 1), ("agent1", "product2", 1), ("agent2", "product2", 2)])
matching = nx.rank_maximal_matching(G, rank="weight")
print(matching)
```
See [demo website](https://rmm.csariel.xyz/) for more information.
### Social-aware coalition formation
(TODO)
## Contribution
Any additions or bug-fixes to `networkx` should first be submitted there, according to the [NetworkX Contributor Guide](https://github.com/networkx/networkx/blob/main/CONTRIBUTING.rst).
If the pull-request is not handled, you are welcome to submit it here too.
Raw data
{
"_id": null,
"home_page": "https://github.com/ariel-research/networkz",
"name": "networkz",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "optimization,graphs",
"author": "Ariel University",
"author_email": "networkz@csariel.xyz",
"download_url": "https://files.pythonhosted.org/packages/3f/2b/2f7891a9d4f17c5b6e5b77d668d074cdb34d638f35bbbdbdaff922f51ec2/networkz-1.0.6.tar.gz",
"platform": null,
"description": "# NetworkZ\n\nNetworkZ is a library of graph algorithms in Python. It is an extension of the [NetworkX](https://github.com/networkx/networkx). It contains (by import) everything that is in NetworkX, plus some additional algorithms that were submitted into NetworkX but not merged yet. Currently, NetworkZ contains the following additional algorithms:\n\n* [Rank-maximal matching](networkz/algorithms/bipartite/rank_maximal_matching.py): by Oriya Alperin, Liel Vaknin and Amiel Lejzor.\n* [Social-aware coalition formation](networkz/algorithms/approximation/coalition_formation.py) - by Victor Kushnir.\n\n## Installation\n\n```\npip install networkz\n```\n\nThis installs the latest version of networkx, and the new algorithms added in networkz.\n\n\n## Usage\n\n### Rank Maximal Matching Algorithm\nA rank-maximal matching is a matching that maximizes the number of agents who are matched to their 1st priority; subject to that, it maximizes the number of agents matched to their 2nd priority; and so on.\n\n```\nimport networkz as nx\nG = nx.Graph()\nG.add_nodes_from([\"agent1\", \"agent2\"], bipartite=0)\nG.add_nodes_from([\"product1\", \"product2\"], bipartite=1)\nG.add_weighted_edges_from([(\"agent1\", \"product1\", 1), (\"agent1\", \"product2\", 1), (\"agent2\", \"product2\", 2)])\nmatching = nx.rank_maximal_matching(G, rank=\"weight\")\nprint(matching)\n```\n\nSee [demo website](https://rmm.csariel.xyz/) for more information.\n\n### Social-aware coalition formation\n\n(TODO)\n\n\n## Contribution\n\nAny additions or bug-fixes to `networkx` should first be submitted there, according to the [NetworkX Contributor Guide](https://github.com/networkx/networkx/blob/main/CONTRIBUTING.rst).\n\nIf the pull-request is not handled, you are welcome to submit it here too.\n\n\n\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "NetworkX plus plus",
"version": "1.0.6",
"project_urls": {
"Bug Reports": "https://github.com/ariel-research/networkz/issues",
"Homepage": "https://github.com/ariel-research/networkz",
"Source Code": "https://github.com/ariel-research/networkz"
},
"split_keywords": [
"optimization",
"graphs"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "05103b952be9ce8795211f40aefacdf9fb8e32025b1fc0e4921dd9e086ce6a81",
"md5": "e1cbf5390b8960912b5038f6db738802",
"sha256": "5513fc5e3deeaafa780fdce7031c8ad6599ff35673ab7ffbda9c05d05778e598"
},
"downloads": -1,
"filename": "networkz-1.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e1cbf5390b8960912b5038f6db738802",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 15312,
"upload_time": "2023-10-29T09:48:37",
"upload_time_iso_8601": "2023-10-29T09:48:37.842984Z",
"url": "https://files.pythonhosted.org/packages/05/10/3b952be9ce8795211f40aefacdf9fb8e32025b1fc0e4921dd9e086ce6a81/networkz-1.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f2b2f7891a9d4f17c5b6e5b77d668d074cdb34d638f35bbbdbdaff922f51ec2",
"md5": "f0d5d96df07af933cc45f2300b341d8c",
"sha256": "c87139c8a41e7c98fb06ffdabfbee16c9187c0177a8378f3cbb62d724a3f290c"
},
"downloads": -1,
"filename": "networkz-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "f0d5d96df07af933cc45f2300b341d8c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 13438,
"upload_time": "2023-10-29T09:48:40",
"upload_time_iso_8601": "2023-10-29T09:48:40.226394Z",
"url": "https://files.pythonhosted.org/packages/3f/2b/2f7891a9d4f17c5b6e5b77d668d074cdb34d638f35bbbdbdaff922f51ec2/networkz-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-29 09:48:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ariel-research",
"github_project": "networkz",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "networkz"
}