-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updated Model with Tax System #219
Open
sofibrezden
wants to merge
2
commits into
projectmesa:main
Choose a base branch
from
sofibrezden:updated
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,67 @@ | ||
# Boltzmann Wealth Model (Tutorial) | ||
# Модель Розподілу Багатства за Болцманом💰 | ||
|
||
## Summary | ||
Цей проєкт моделює розподіл багатства серед агентів у суспільстві за допомогою моделі, натхненної розподілом Болцмана. Агенти взаємодіють, передаючи гроші сусідам, сплачуючи податки та отримуючи допомогу, коли вони бідніють. Програма відстежує нерівність у розподілі багатства за допомогою коефіцієнта Джині та візуалізує динаміку системи. | ||
|
||
A simple model of agents exchanging wealth. All agents start with the same amount of money. Every step, each agent with one unit of money or more gives one unit of wealth to another random agent. This is the model described in the [Intro Tutorial](https://mesa.readthedocs.io/en/latest/tutorials/intro_tutorial.html), with the completed code. | ||
## Особливості💡 | ||
|
||
If you want to go over the step-by-step tutorial, please go and run the [Jupyter Notebook](https://github.com/projectmesa/mesa/blob/main/docs/tutorials/intro_tutorial.ipynb). The code here runs the finalized code in the last cells directly. | ||
- **Агентне моделювання (ABM)**: Модель складається з агентів із індивідуальним багатством та поведінкою, зокрема переміщенням на сітці, обміном грошима та сплатою податків. | ||
- **Оподаткування та перерозподіл**: Агенти сплачують податки залежно від свого багатства, а зібрані податки перерозподіляються серед агентів, які втратили всі свої кошти. | ||
- **Коефіцієнт Джині**: Вираховується для відстеження нерівності в розподілі багатства з часом. | ||
- **Візуалізація**: Поведінка системи візуалізується через графічне зображення положення агентів і їх багатства, а також графік коефіцієнта Джині. | ||
|
||
As the model runs, the distribution of wealth among agents goes from being perfectly uniform (all agents have the same starting wealth), to highly skewed -- a small number have high wealth, more have none at all. | ||
## Як це працює🧠 | ||
|
||
## How to Run | ||
1. **Агенти**: Кожен агент починає з початковим багатством, що дорівнює 1. Вони випадково переміщуються на 2D-сітці та взаємодіють із сусідами, передаючи частину свого багатства. | ||
2. **Оподаткування**: Агенти сплачують податки за фіксованою ставкою. Зібрані податки зберігаються у податковому фонді, який використовується для підтримки агентів, що втратили всі свої кошти. | ||
3. **Перерозподіл**: Коли багатство агента знижується до 0, він отримує допомогу з податкового фонду, якщо там є ресурси. | ||
4. **Обмін багатством**: Агенти, які знаходяться в одній комірці сітки, можуть випадково обмінюватися багатством, що призводить до змін у його розподілі. | ||
5. **Вимірювання нерівності**: На кожному кроці обчислюється коефіцієнт Джині для вимірювання рівня нерівності в розподілі багатства. | ||
|
||
To follow the tutorial example, launch the Jupyter Notebook and run the code in ``Introduction to Mesa Tutorial Code.ipynb`` which you can find in the main mesa repo [here](https://github.com/projectmesa/mesa/blob/main/docs/tutorials/intro_tutorial.ipynb) | ||
## Візуалізація 📊 | ||
|
||
Make sure to install the requirements first: | ||
- **Простір агентів**: Показує агентів на сітці, де розмір і колір агента відображають його багатство. Агенти з багатством відображаються синім кольором, а ті, хто не має багатства, — червоним. | ||
- **Графік коефіцієнта Джині**: Показує еволюцію коефіцієнта Джині з часом, що демонструє рівень нерівності в популяції. | ||
|
||
``` | ||
## Як запустити🚀 | ||
|
||
1. Встановіть залежності: | ||
```bash | ||
pip install -r requirements.txt | ||
``` | ||
``` | ||
|
||
2. Запустіть візуалізацію: | ||
```bash | ||
solara run app.py | ||
``` | ||
|
||
3. Відкрийте надане посилання у вашому браузері, щоб побачити симуляцію. Ви побачите простір агентів та графік коефіцієнта Джині. | ||
|
||
To launch the interactive server, as described in the [last section of the tutorial](https://mesa.readthedocs.io/en/latest/tutorials/intro_tutorial.html#adding-visualization), run: | ||
## Параметри📉 | ||
|
||
``` | ||
$ solara run app.py | ||
``` | ||
Наступні параметри можуть бути змінені: | ||
|
||
If your browser doesn't open automatically, point it to [http://127.0.0.1:8765/](http://127.0.0.1:8765/). When the visualization loads, click on the Play button. | ||
- **N**: Кількість агентів у моделі (від 10 до 100). | ||
- **Ставка податку**: Податкова ставка, яка застосовується до багатства агентів (від 0.0 до 1.0). | ||
- **Розміри сітки**: Ширина і висота сітки, по якій переміщуються агенти (за замовчуванням: 10x10). | ||
|
||
Ці параметри можна налаштувати у веб-інтерфейсі за допомогою повзунків, наданих Solara. | ||
|
||
## Files | ||
## Збір даних🧮 | ||
|
||
* ``model.py``: Final version of the model. | ||
* ``app.py``: Code for the interactive visualization. | ||
Модель використовує `DataCollector` з бібліотеки Mesa для відстеження: | ||
|
||
## Further Reading | ||
- **Багатства** кожного агента на кожному кроці. | ||
- **Коефіцієнта Джині** для всієї моделі, щоб спостерігати зміни в нерівності з часом. | ||
|
||
The full tutorial describing how the model is built can be found at: | ||
https://mesa.readthedocs.io/en/latest/tutorials/intro_tutorial.html | ||
## Структура коду📑 | ||
|
||
This model is drawn from econophysics and presents a statistical mechanics approach to wealth distribution. Some examples of further reading on the topic can be found at: | ||
- **BoltzmannWealthModel**: Основний клас моделі, де налаштовується сітка, агенти та податкова система. | ||
- **MoneyAgent**: Агенти, які можуть переміщуватися, сплачувати податки, передавати гроші сусідам і отримувати допомогу. | ||
- **compute_gini**: Функція для обчислення коефіцієнта Джині на основі розподілу багатства агентів. | ||
- **Візуалізація**: Використовуються Solara та Matplotlib для візуалізації агентів та нерівності в розподілі багатства. | ||
|
||
[Milakovic, M. A Statistical Equilibrium Model of Wealth Distribution. February, 2001.](https://editorialexpress.com/cgi-bin/conference/download.cgi?db_name=SCE2001&paper_id=214) | ||
## Майбутні покращення🤙 | ||
|
||
[Dragulescu, A and Yakovenko, V. Statistical Mechanics of Money, Income, and Wealth: A Short Survey. November, 2002](http://arxiv.org/pdf/cond-mat/0211175v1.pdf) | ||
- **Індивідуальні стратегії переміщення**: Додати складніші схеми переміщення або поведінку агентів. | ||
- **Динамічні податкові ставки**: Реалізувати зміни податкових ставок залежно від багатства агентів або інших економічних чинників. | ||
- **Економічні політики**: Випробувати вплив різних економічних політик на розподіл багатства. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
mesa~=2.0 | ||
mesa==3.0.0b0 | ||
solara | ||
git+https://github.com/projectmesa/mesa-examples |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sofiabrezden @sofibrezden isn't it supposed to read the tax rate from the model?