Цей проєкт моделює розподіл багатства серед агентів у суспільстві за допомогою моделі, натхненної розподілом Болцмана. Агенти взаємодіють, передаючи гроші сусідам, сплачуючи податки та отримуючи допомогу, коли вони бідніють. Програма відстежує нерівність у розподілі багатства за допомогою коефіцієнта Джині та візуалізує динаміку системи.
- Агентне моделювання (ABM): Модель складається з агентів із індивідуальним багатством та поведінкою, зокрема переміщенням на сітці, обміном грошима та сплатою податків.
- Оподаткування та перерозподіл: Агенти сплачують податки залежно від свого багатства, а зібрані податки перерозподіляються серед агентів, які втратили всі свої кошти.
- Коефіцієнт Джині: Вираховується для відстеження нерівності в розподілі багатства з часом.
- Візуалізація: Поведінка системи візуалізується через графічне зображення положення агентів і їх багатства, а також графік коефіцієнта Джині.
- Агенти: Кожен агент починає з початковим багатством, що дорівнює 1. Вони випадково переміщуються на 2D-сітці та взаємодіють із сусідами, передаючи частину свого багатства.
- Оподаткування: Агенти сплачують податки за фіксованою ставкою. Зібрані податки зберігаються у податковому фонді, який використовується для підтримки агентів, що втратили всі свої кошти.
- Перерозподіл: Коли багатство агента знижується до 0, він отримує допомогу з податкового фонду, якщо там є ресурси.
- Обмін багатством: Агенти, які знаходяться в одній комірці сітки, можуть випадково обмінюватися багатством, що призводить до змін у його розподілі.
- Вимірювання нерівності: На кожному кроці обчислюється коефіцієнт Джині для вимірювання рівня нерівності в розподілі багатства.
- Простір агентів: Показує агентів на сітці, де розмір і колір агента відображають його багатство. Агенти з багатством відображаються синім кольором, а ті, хто не має багатства, — червоним.
- Графік коефіцієнта Джині: Показує еволюцію коефіцієнта Джині з часом, що демонструє рівень нерівності в популяції.
-
Встановіть залежності:
pip install -r requirements.txt
-
Запустіть візуалізацію:
solara run app.py
-
Відкрийте надане посилання у вашому браузері, щоб побачити симуляцію. Ви побачите простір агентів та графік коефіцієнта Джині.
Наступні параметри можуть бути змінені:
- N: Кількість агентів у моделі (від 10 до 100).
- Ставка податку: Податкова ставка, яка застосовується до багатства агентів (від 0.0 до 1.0).
- Розміри сітки: Ширина і висота сітки, по якій переміщуються агенти (за замовчуванням: 10x10).
Ці параметри можна налаштувати у веб-інтерфейсі за допомогою повзунків, наданих Solara.
Модель використовує DataCollector з бібліотеки Mesa для відстеження:
- Багатства кожного агента на кожному кроці.
- Коефіцієнта Джині для всієї моделі, щоб спостерігати зміни в нерівності з часом.
- BoltzmannWealthModel: Основний клас моделі, де налаштовується сітка, агенти та податкова система.
- MoneyAgent: Агенти, які можуть переміщуватися, сплачувати податки, передавати гроші сусідам і отримувати допомогу.
- compute_gini: Функція для обчислення коефіцієнта Джині на основі розподілу багатства агентів.
- Візуалізація: Використовуються Solara та Matplotlib для візуалізації агентів та нерівності в розподілі багатства.
- Індивідуальні стратегії переміщення: Додати складніші схеми переміщення або поведінку агентів.
- Динамічні податкові ставки: Реалізувати зміни податкових ставок залежно від багатства агентів або інших економічних чинників.
- Економічні політики: Випробувати вплив різних економічних політик на розподіл багатства.