Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
4c0600d
Adding assignment directory and Readme
rishi222k Sep 21, 2023
b810004
Appending first ques & solution to assignment 1
rishi222k Sep 21, 2023
80a46fb
Updating Question 2 and 3
rishi222k Sep 22, 2023
a816946
create files
Sep 22, 2023
a76ecbe
Appending Coding Question 5
rishi222k Sep 22, 2023
b28fa7d
002749496_Zhijun_Yu_Assignment1
Zhijun-Yu-Bluecat Sep 22, 2023
89c4e66
finished assignment 1
Sep 23, 2023
e742cfc
Updating Question 5 and 6
rishi222k Sep 23, 2023
69ccfce
YuktabaGohil_002786959:Solved Question2 and Question 3
Sep 23, 2023
1e4cab1
002786959_Yuktaba_Gohil:Completed Ques 4,6,7
Sep 23, 2023
9a73e3b
002786959_Yuktaba_Gohil:Completed Ques 8
Sep 23, 2023
e9f5eaf
002786959_Yuktaba_Gohil:Done naming the file properly
Sep 23, 2023
0c5ae95
Updating Ques 6
rishi222k Sep 23, 2023
f9a1718
002786959_Yuktaba_Gohil:Completed Ques 9
Sep 24, 2023
c7af535
002799697_Yanyan_Chen: submit assignment 1
Sep 24, 2023
65305a2
Updating Question 7 and Question 8
rishi222k Sep 24, 2023
cd392f9
Add files via upload
SlipRiders Sep 24, 2023
94ea34a
Initial Commit
rkarwankar Sep 24, 2023
83b80a7
002786959:Completed Question 5
Sep 24, 2023
0d7d611
002786959:Completed Question 1 and finishing up the assignment 1
Sep 24, 2023
73332dc
My commit
Aubrey6 Sep 24, 2023
4892904
002786959:Almost done editing and naming the files
Sep 24, 2023
15384c5
002786959:Almost done editing and naming the files
Sep 24, 2023
98793d3
Zhenhao Chen_002682716
theFirstGrade Sep 24, 2023
6de50bd
Add Completed Assignment 1 and Readme.md file
ZihaoLiuNU Sep 24, 2023
b5c6fa2
Completed Q1,Q2,Q3
rkarwankar Sep 24, 2023
5895ac2
Completed Q1 Q2 Q3
rkarwankar Sep 24, 2023
bf3a832
uploading q1 q2 q3
rkarwankar Sep 24, 2023
20a1bc8
Code block updated
rkarwankar Sep 24, 2023
3a85e1e
Updating Questions 3,4,7,8
rishi222k Sep 24, 2023
80f1503
uploading Q4 Q5
rkarwankar Sep 24, 2023
7e67289
Weiyu_Wang_002746483
bjpish Sep 24, 2023
3443c66
the final version of assignment one
Sep 24, 2023
3112bf4
Updating Question 5 and Question 6
rishi222k Sep 24, 2023
46dd58e
modify the format
Sep 24, 2023
7c7b381
Niharika_Karri_002727629
Niharika-Santhoshini-Karri Sep 24, 2023
51006fe
Create Assignment_1.ipynb
bjpish Sep 24, 2023
beabd53
Niharika_Karri_002727629
Niharika-Santhoshini-Karri Sep 24, 2023
119c8ee
Update Assignment_1.ipynb
bjpish Sep 24, 2023
9233563
Niharika_Karri_002727629_assignment1
Niharika-Santhoshini-Karri Sep 24, 2023
204c0cd
uploading Q6 Q7 Q8
rkarwankar Sep 25, 2023
589bc1a
formatting and readme file update
rkarwankar Sep 25, 2023
532421e
002748800_Jhalak_Surve
jhalak1509 Sep 25, 2023
509349d
Readme file update
rkarwankar Sep 25, 2023
cffb5e8
assignment1, readme, picture
douhaoma Sep 25, 2023
7954e2f
Assignment Completed
rkarwankar Sep 25, 2023
c6ad33e
VinayKumar_Gudooru_002747385
VinayKumarGudooru Sep 25, 2023
0948e40
002722344_Rishi_Raghu: Assignment_1
rishi222k Sep 25, 2023
aee6134
002722344_Rishi_Raghu: Final Commit Readme
rishi222k Sep 25, 2023
a924fa6
002747385_VinayKumar_Gudooru
VinayKumarGudooru Sep 25, 2023
24e68bf
ChristRodrigues_002727863
christ-northeastern Sep 25, 2023
36adc4e
yuxuan_zhang_002778556_Assignment1
lucaszhang98 Sep 25, 2023
614463f
Yuxuan_Zhang_002778556_addAssignment1
lucaszhang98 Sep 25, 2023
9d89a13
Assignment 1 Commit SinchanaKumara
SinchanaKumara Sep 25, 2023
c834e57
Assignment1 submission commit - 002795461_Namitha
Njc27 Sep 25, 2023
9716566
Assignment_1_002741426_Hamzah_Mukadam
sorablank Sep 25, 2023
593e754
adding readme file
Njc27 Sep 25, 2023
71122c5
My Commit
PinkPantagram Sep 25, 2023
8acde30
Create Assignment_1_Q9.ipynb
PinkPantagram Sep 25, 2023
fd83d5e
002795957_Lokesh_Jeswani
Jeswani-Lokesh Sep 25, 2023
ffc03db
Assignment-1
Teng242849 Sep 25, 2023
d931169
Add files via upload
yihengye1 Sep 25, 2023
3e96293
Delete Submissions/Yiheng.ipynb
yihengye1 Sep 25, 2023
c7e7145
Create 002771818_Yiheng_Ye
yihengye1 Sep 25, 2023
644d8b0
Delete Submissions/002771818_Yiheng_Ye
yihengye1 Sep 25, 2023
b93eb19
002771818_Yiheng_Ye
yihengye1 Sep 25, 2023
3c6f972
Merge branch 'Students' of https://github.com/yihengye1/INFO_6205_Pro…
yihengye1 Sep 25, 2023
d97edfc
final commit
Hegde-Abhishek Sep 25, 2023
9c89eb4
002744522_abhishek_hegde
Hegde-Abhishek Sep 25, 2023
6de0f05
Create Assignment1_FEICAO.ipynb
875216663 Sep 25, 2023
43f3ef0
Create ReadMe.md
875216663 Sep 25, 2023
c7baf78
Merge pull request #17 from Zhijun-Yu-Bluecat/Students
pranavk1511 Sep 25, 2023
6620f5f
Merge pull request #18 from Fxhj0501/Students
pranavk1511 Sep 25, 2023
e16272e
Merge pull request #22 from nycy2/Students
pranavk1511 Sep 25, 2023
3b2b750
Merge pull request #24 from SlipRiders/Students
pranavk1511 Sep 25, 2023
49ba60e
Merge pull request #26 from Aubrey6/Students
pranavk1511 Sep 25, 2023
2ff6dc1
readme updated
Jeswani-Lokesh Sep 25, 2023
688d676
Merge pull request #27 from Yuktagohil/Students
pranavk1511 Sep 25, 2023
476852b
Merge pull request #28 from Riya-Rajesh-Patil/Students
pranavk1511 Sep 25, 2023
1badca1
Merge pull request #29 from theFirstGrade/Students
pranavk1511 Sep 25, 2023
3fa42fa
Merge pull request #30 from ZihaoLiuNU/Students
pranavk1511 Sep 25, 2023
4d8c75e
Merge pull request #32 from bjpish/Students
pranavk1511 Sep 25, 2023
b41cf54
Merge pull request #33 from Niharika-Santhoshini-Karri/Students
pranavk1511 Sep 25, 2023
80e128f
Merge pull request #34 from jhalak1509/Students
pranavk1511 Sep 25, 2023
7a54354
Merge pull request #35 from douhaoma/Students
pranavk1511 Sep 25, 2023
7e55237
Merge pull request #36 from VinayKumarGudooru/Students
pranavk1511 Sep 25, 2023
6626ea1
Merge pull request #37 from rkarwankar/Students
pranavk1511 Sep 25, 2023
616af8c
Merge pull request #38 from rishi222k/Students
pranavk1511 Sep 25, 2023
44493b9
Merge pull request #39 from christ-northeastern/Students
pranavk1511 Sep 25, 2023
bdf7342
Merge pull request #40 from lucaszhang98/Students
pranavk1511 Sep 25, 2023
c76adef
Merge pull request #41 from SinchanaKumara/Students
pranavk1511 Sep 25, 2023
6c42fec
Merge pull request #42 from Njc27/Students
pranavk1511 Sep 25, 2023
07a9489
Merge pull request #43 from sorablank/Students
pranavk1511 Sep 25, 2023
c6e9833
Merge pull request #44 from PinkPantagram/Students
pranavk1511 Sep 25, 2023
377ff5a
Merge pull request #45 from Jeswani-Lokesh/Students
pranavk1511 Sep 25, 2023
0d0805b
Merge pull request #46 from Teng242849/Students
pranavk1511 Sep 25, 2023
a9d1c9e
Merge pull request #47 from yihengye1/Students
pranavk1511 Sep 25, 2023
4ccb619
Merge pull request #48 from Hegde-Abhishek/Students
pranavk1511 Sep 25, 2023
c13d82c
adding Asignment -1
Sep 26, 2023
4402789
002839203_Anuraag_Bathula Assignment 1 submission
local-man Sep 26, 2023
c6bae93
002839203_Anuraag_Bathula Assignment 1 submission - minor edits
local-man Sep 26, 2023
a30c788
Deleting accidental extra zip file in 002839203_Anuraag_Bathula's Ass…
local-man Sep 26, 2023
6708e2a
Merge pull request #49 from swapnilsalsankar/Students
pranavk1511 Sep 26, 2023
cd18eac
Merge pull request #50 from local-man/Students
pranavk1511 Sep 26, 2023
4ef0573
Picture
875216663 Oct 5, 2023
8caeca1
Create 截屏2023-10-05 下午6.10.19_副本.png
875216663 Oct 5, 2023
e067458
Create 截屏2023-10-05 下午6.33.05.png
875216663 Oct 5, 2023
5af4119
Create 截屏2023-10-05 下午6.47.05.png
875216663 Oct 5, 2023
c371f80
Create 截屏2023-10-05 下午7.12.31.png
875216663 Oct 5, 2023
b952d24
Create 截屏2023-10-05 下午7.25.48.png
875216663 Oct 5, 2023
65a78df
Create 截屏2023-10-05 下午7.25.58.png
875216663 Oct 5, 2023
2727255
Create 截屏2023-10-05 下午7.41.23.png
875216663 Oct 5, 2023
07c4160
Update
875216663 Oct 6, 2023
22e703c
Update FEICAO
875216663 Oct 6, 2023
fd567e1
Merge branch 'Students' of https://github.com/875216663/INFO_6205_Pro…
875216663 Oct 6, 2023
99214f1
Update ReadMe.md
875216663 Oct 6, 2023
e81452c
1
875216663 Oct 22, 2023
9cc9a2b
1
875216663 Oct 22, 2023
b59b430
Create 截屏2023-10-21 下午11.47.20.png
875216663 Oct 22, 2023
efe2020
1
875216663 Oct 22, 2023
1a86a6e
1
875216663 Oct 22, 2023
39e03e0
Create Assignment4_FEICAO.ipynb
875216663 Nov 20, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
569 changes: 569 additions & 0 deletions Submissions/002683914_Xiaoyang_Chen/Assignment1.ipynb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
When I utilize ChatGPT, it typically delivers insightful answers. However, there are moments when it stumbles over fundamental concepts, and at times, it can misconstrue descriptions leading to inaccurate conclusions. Expecting it to provide flawless answers on the first attempt might be unrealistic; often, multiple corrections are needed to fine-tune the response. I've also observed that while ChatGPT's coding abilities are commendable for simpler tasks, it tends to falter with intricate algorithms, especially when not provided with a template or reference. Therefore, it's crucial to critically assess ChatGPT's feedback and maintain an independent line of reasoning. Through this exercise, my understanding of algorithmic analysis and data structures has deepened. Moreover, I've pondered over various scenarios of stable matching and discerned how the algorithm adapts across different contexts.
448 changes: 448 additions & 0 deletions Submissions/002688252_Zijian_Feng/Assignment1.ipynb

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions Submissions/002688252_Zijian_Feng/Zijian_Feng_002688252.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# The Summary of Assignment One

- Student Name:Zijian Feng
- NUID:002688252
- Professor: Nik Bear Brown

## The reflection of using ChatGPT

When I use ChatGPT, it tends to be pretty reliable. But there are times when it makes some low-level mistakes. For example, it says that 0.8^n is an exponential level of time complexity, and therefore a very rapid growth. In reality this time complexity is O(1) level. We need to pay attention to the details of his answers and not give up thinking when using ChatGPT.

## What I learned in this assignment

After doing this assignment, I have a better understanding of stable matching and time complexity. And I have also thought about the various situations of stable matching and know how the stable matching algorithm changes in different situations.
1 change: 1 addition & 0 deletions Submissions/002700370_Sun_Teng/Assignment-1.readme
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This is a readme.
299 changes: 299 additions & 0 deletions Submissions/002700370_Sun_Teng/assignment1Q9.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,299 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"id": "e108b783-044d-4c70-bd63-1eda236f2498",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Matching Result:\n",
"Nets matched with Nuggets\n",
"Hawks matched with Clippers\n",
"76ers matched with Jazz\n",
"Celtics matched with Suns\n",
"Raptors matched with Mavericks\n",
"Knicks matched with Warriors\n",
"Heat matched with Blazers\n",
"Bucks matched with Lakers\n"
]
}
],
"source": [
"west_teams = [\"Lakers\", \"Clippers\", \"Suns\", \"Warriors\", \"Jazz\", \"Nuggets\", \"Blazers\", \"Mavericks\"]\n",
"east_teams = [\"Bucks\", \"Nets\", \"76ers\", \"Celtics\", \"Heat\", \"Hawks\", \"Knicks\", \"Raptors\"]\n",
"\n",
"west_preferences = {\n",
" \"Lakers\": [\"Bucks\", \"Nets\", \"76ers\", \"Celtics\", \"Heat\", \"Hawks\", \"Knicks\", \"Raptors\"],\n",
" \"Clippers\": [\"Celtics\", \"Nets\", \"Raptors\", \"Heat\", \"Knicks\", \"Bucks\", \"Hawks\", \"76ers\"],\n",
" \"Suns\": [\"Nets\", \"Bucks\", \"Knicks\" , \"Heat\", \"Celtics\", \"Hawks\",\"Raptors\", \"76ers\"],\n",
" \"Warriors\": [\"76ers\", \"Hawks\", \"Bucks\", \"Celtics\", \"Heat\", \"Knicks\", \"Raptors\", \"Nets\"],\n",
" \"Jazz\": [\"Celtics\", \"Heat\", \"Nets\", \"Hawks\", \"76ers\", \"Knicks\", \"Raptors\", \"Bucks\"],\n",
" \"Nuggets\": [\"Heat\",\"Bucks\", \"Nets\", \"76ers\", \"Knicks\", \"Hawks\", \"Raptors\", \"Celtics\"],\n",
" \"Blazers\": [\"Hawks\",\"Bucks\", \"Nets\", \"Raptors\", \"76ers\", \"Celtics\", \"Heat\", \"Knicks\"],\n",
" \"Mavericks\": [\"Nets\", \"76ers\", \"Knicks\", \"Celtics\", \"Hawks\", \"Heat\", \"Bucks\", \"Raptors\"]\n",
"}\n",
"\n",
"east_preferences = {\n",
" \"Bucks\": [\"Lakers\", \"Nuggets\", \"Clippers\", \"Warriors\", \"Mavericks\", \"Jazz\", \"Suns\", \"Blazers\"],\n",
" \"Nets\": [\"Lakers\", \"Clippers\", \"Suns\", \"Warriors\", \"Jazz\", \"Nuggets\", \"Blazers\", \"Mavericks\"],\n",
" \"76ers\": [\"Nuggets\", \"Clippers\", \"Blazers\", \"Lakers\", \"Jazz\", \"Suns\", \"Warriors\", \"Mavericks\"],\n",
" \"Celtics\": [\"Lakers\", \"Clippers\", \"Mavericks\", \"Suns\", \"Warriors\", \"Nuggets\", \"Blazers\", \"Jazz\"],\n",
" \"Heat\": [\"Nuggets\", \"Lakers\", \"Suns\", \"Clippers\", \"Warriors\", \"Jazz\", \"Mavericks\", \"Blazers\"],\n",
" \"Hawks\": [\"Warriors\", \"Mavericks\", \"Lakers\", \"Clippers\", \"Nuggets\", \"Suns\", \"Jazz\", \"Blazers\"],\n",
" \"Knicks\": [\"Suns\", \"Lakers\", \"Warriors\",\"Clippers\", \"Mavericks\", \"Jazz\", \"Nuggets\", \"Blazers\"],\n",
" \"Raptors\": [\"Clippers\", \"Warriors\", \"Suns\", \"Nuggets\", \"Blazers\", \"Jazz\", \"Mavericks\", \"Lakers\"]\n",
"}\n",
"import random\n",
"\n",
"def gale_shapley(proposers, acceptors):\n",
" # Initialize empty matching\n",
" matching = {}\n",
" \n",
" # Create dictionaries to store preferences\n",
" proposer_preferences = {team: random.sample(acceptors, len(acceptors)) for team in proposers}\n",
" acceptor_preferences = {team: random.sample(proposers, len(proposers)) for team in acceptors}\n",
" \n",
" # Initialize proposers without partners\n",
" free_proposers = list(proposers)\n",
" \n",
" while free_proposers:\n",
" proposer = free_proposers.pop(0)\n",
" proposer_prefs = proposer_preferences[proposer]\n",
" \n",
" for acceptor in proposer_prefs:\n",
" current_partner = matching.get(acceptor)\n",
" \n",
" if current_partner is None:\n",
" # Acceptor is free, match them with proposer\n",
" matching[acceptor] = proposer\n",
" break\n",
" else:\n",
" # Check if acceptor prefers proposer over current partner\n",
" acceptor_prefs = acceptor_preferences[acceptor]\n",
" if acceptor_prefs.index(proposer) < acceptor_prefs.index(current_partner):\n",
" # Acceptor prefers proposer, unmatch them and match proposer\n",
" matching[acceptor] = proposer\n",
" free_proposers.append(current_partner)\n",
" break\n",
" \n",
" return matching\n",
"\n",
"if __name__ == \"__main__\":\n",
" western_teams = [\"Lakers\", \"Clippers\", \"Suns\", \"Warriors\", \"Jazz\", \"Nuggets\", \"Blazers\", \"Mavericks\"]\n",
" eastern_teams = [\"Bucks\", \"Nets\", \"76ers\", \"Celtics\", \"Heat\", \"Hawks\", \"Knicks\", \"Raptors\"]\n",
" \n",
" matching = gale_shapley(western_teams, eastern_teams)\n",
" \n",
" print(\"Matching Result:\")\n",
" for acceptor, proposer in matching.items():\n",
" print(f\"{acceptor} matched with {proposer}\")\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9b477a8b-afb2-450c-b23d-bd9252eaf6f7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Percentage of stable playoff matches after 1000 iterations: 37.4%\n"
]
}
],
"source": [
"import random\n",
"\n",
"def gale_shapley(proposers, acceptors, proposer_preferences, acceptor_preferences):\n",
" # Initialize empty matching\n",
" matching = {}\n",
" \n",
" # Initialize proposers without partners\n",
" free_proposers = list(proposers)\n",
" \n",
" while free_proposers:\n",
" proposer = free_proposers.pop(0)\n",
" proposer_prefs = proposer_preferences[proposer]\n",
" \n",
" for acceptor in proposer_prefs:\n",
" current_partner = matching.get(acceptor)\n",
" \n",
" if current_partner is None:\n",
" # Acceptor is free, match them with proposer\n",
" matching[acceptor] = proposer\n",
" break\n",
" else:\n",
" # Check if acceptor prefers proposer over current partner\n",
" acceptor_prefs = acceptor_preferences[acceptor]\n",
" if acceptor_prefs.index(proposer) < acceptor_prefs.index(current_partner):\n",
" # Acceptor prefers proposer, unmatch them and match proposer\n",
" matching[acceptor] = proposer\n",
" free_proposers.append(current_partner)\n",
" break\n",
" \n",
" return matching\n",
"\n",
"def is_stable_match(matching, proposer_preferences, acceptor_preferences):\n",
" # Check if the current matching is stable\n",
" for acceptor, proposer in matching.items():\n",
" acceptor_prefs = acceptor_preferences[acceptor]\n",
" current_partner_index = acceptor_prefs.index(proposer)\n",
" for other_proposer in acceptor_prefs[:current_partner_index]:\n",
" if proposer_preferences[other_proposer].index(acceptor) < proposer_preferences[proposer].index(acceptor):\n",
" return False\n",
" return True\n",
"\n",
"def calculate_stability_percentage(proposers, acceptors, num_iterations):\n",
" stable_matches = 0\n",
" \n",
" for _ in range(num_iterations):\n",
" # Create random preference lists for proposers and acceptors\n",
" proposer_preferences = {team: random.sample(acceptors, len(acceptors)) for team in proposers}\n",
" acceptor_preferences = {team: random.sample(proposers, len(proposers)) for team in acceptors}\n",
" \n",
" # Perform Gale-Shapley matching\n",
" matching = gale_shapley(proposers, acceptors, proposer_preferences, acceptor_preferences)\n",
" \n",
" # Check if the matching is stable\n",
" if is_stable_match(matching, proposer_preferences, acceptor_preferences):\n",
" stable_matches += 1\n",
" \n",
" stability_percentage = (stable_matches / num_iterations) * 100\n",
" return stability_percentage\n",
"\n",
"if __name__ == \"__main__\":\n",
" west_teams = [\"Lakers\", \"Clippers\", \"Suns\", \"Warriors\", \"Jazz\", \"Nuggets\", \"Blazers\", \"Mavericks\"]\n",
" east_teams = [\"Bucks\", \"Nets\", \"76ers\", \"Celtics\", \"Heat\", \"Hawks\", \"Knicks\", \"Raptors\"]\n",
" \n",
" num_iterations = 1000\n",
" \n",
" stability_percentage = calculate_stability_percentage(\n",
" west_teams, east_teams, num_iterations\n",
" )\n",
" \n",
" print(f\"Percentage of stable playoff matches after {num_iterations} iterations: {stability_percentage}%\")\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "557a0b14-9805-4a48-85ea-ae910d750a97",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of Teams: 8, Execution Time: 0.000000 seconds\n",
"Number of Teams: 16, Execution Time: 0.000000 seconds\n",
"Number of Teams: 32, Execution Time: 0.000000 seconds\n",
"Number of Teams: 64, Execution Time: 0.008048 seconds\n",
"Number of Teams: 128, Execution Time: 0.016365 seconds\n"
]
}
],
"source": [
"import random\n",
"import time\n",
"\n",
"def gale_shapley(proposers, acceptors, proposer_preferences, acceptor_preferences):\n",
" # Initialize empty matching\n",
" matching = {}\n",
" \n",
" # Initialize proposers without partners\n",
" free_proposers = list(proposers)\n",
" \n",
" while free_proposers:\n",
" proposer = free_proposers.pop(0)\n",
" proposer_prefs = proposer_preferences[proposer]\n",
" \n",
" for acceptor in proposer_prefs:\n",
" current_partner = matching.get(acceptor)\n",
" \n",
" if current_partner is None:\n",
" # Acceptor is free, match them with proposer\n",
" matching[acceptor] = proposer\n",
" break\n",
" else:\n",
" # Check if acceptor prefers proposer over current partner\n",
" acceptor_prefs = acceptor_preferences[acceptor]\n",
" if acceptor_prefs.index(proposer) < acceptor_prefs.index(current_partner):\n",
" # Acceptor prefers proposer, unmatch them and match proposer\n",
" matching[acceptor] = proposer\n",
" free_proposers.append(current_partner)\n",
" break\n",
" \n",
" return matching\n",
"\n",
"def generate_teams_and_preferences(num_teams):\n",
" teams = [f\"Team {i}\" for i in range(1, num_teams + 1)]\n",
" preferences = {}\n",
" \n",
" for team in teams:\n",
" other_teams = list(teams)\n",
" other_teams.remove(team)\n",
" random.shuffle(other_teams)\n",
" preferences[team] = other_teams\n",
" \n",
" return teams, preferences\n",
"\n",
"if __name__ == \"__main__\":\n",
" # Initial number of teams\n",
" num_teams = 8\n",
" \n",
" # Number of iterations\n",
" num_iterations = 10\n",
" \n",
" # Measure execution time for different sizes of teams\n",
" for i in range(5):\n",
" teams, preferences = generate_teams_and_preferences(num_teams)\n",
" \n",
" start_time = time.time()\n",
" for _ in range(num_iterations):\n",
" matching = gale_shapley(teams, teams, preferences, preferences)\n",
" end_time = time.time()\n",
" \n",
" execution_time = end_time - start_time\n",
" print(f\"Number of Teams: {num_teams}, Execution Time: {execution_time:.6f} seconds\")\n",
" \n",
" # Double the number of teams for the next iteration\n",
" num_teams *= 2\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a6784e53-6b92-42ee-a47a-aba4aaf8fce5",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading