Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 6.64 KB

File metadata and controls

67 lines (45 loc) · 6.64 KB

Модель Розподілу Багатства за Болцманом💰

Цей проєкт моделює розподіл багатства серед агентів у суспільстві за допомогою моделі, натхненної розподілом Болцмана. Агенти взаємодіють, передаючи гроші сусідам, сплачуючи податки та отримуючи допомогу, коли вони бідніють. Програма відстежує нерівність у розподілі багатства за допомогою коефіцієнта Джині та візуалізує динаміку системи.

Особливості💡

  • Агентне моделювання (ABM): Модель складається з агентів із індивідуальним багатством та поведінкою, зокрема переміщенням на сітці, обміном грошима та сплатою податків.
  • Оподаткування та перерозподіл: Агенти сплачують податки залежно від свого багатства, а зібрані податки перерозподіляються серед агентів, які втратили всі свої кошти.
  • Коефіцієнт Джині: Вираховується для відстеження нерівності в розподілі багатства з часом.
  • Візуалізація: Поведінка системи візуалізується через графічне зображення положення агентів і їх багатства, а також графік коефіцієнта Джині.

Як це працює🧠

  1. Агенти: Кожен агент починає з початковим багатством, що дорівнює 1. Вони випадково переміщуються на 2D-сітці та взаємодіють із сусідами, передаючи частину свого багатства.
  2. Оподаткування: Агенти сплачують податки за фіксованою ставкою. Зібрані податки зберігаються у податковому фонді, який використовується для підтримки агентів, що втратили всі свої кошти.
  3. Перерозподіл: Коли багатство агента знижується до 0, він отримує допомогу з податкового фонду, якщо там є ресурси.
  4. Обмін багатством: Агенти, які знаходяться в одній комірці сітки, можуть випадково обмінюватися багатством, що призводить до змін у його розподілі.
  5. Вимірювання нерівності: На кожному кроці обчислюється коефіцієнт Джині для вимірювання рівня нерівності в розподілі багатства.

Візуалізація 📊

  • Простір агентів: Показує агентів на сітці, де розмір і колір агента відображають його багатство. Агенти з багатством відображаються синім кольором, а ті, хто не має багатства, — червоним.
  • Графік коефіцієнта Джині: Показує еволюцію коефіцієнта Джині з часом, що демонструє рівень нерівності в популяції.

Як запустити🚀

  1. Встановіть залежності:

    pip install -r requirements.txt
  2. Запустіть візуалізацію:

    solara run app.py
  3. Відкрийте надане посилання у вашому браузері, щоб побачити симуляцію. Ви побачите простір агентів та графік коефіцієнта Джині.

Параметри📉

Наступні параметри можуть бути змінені:

  • N: Кількість агентів у моделі (від 10 до 100).
  • Ставка податку: Податкова ставка, яка застосовується до багатства агентів (від 0.0 до 1.0).
  • Розміри сітки: Ширина і висота сітки, по якій переміщуються агенти (за замовчуванням: 10x10).

Ці параметри можна налаштувати у веб-інтерфейсі за допомогою повзунків, наданих Solara.

Збір даних🧮

Модель використовує DataCollector з бібліотеки Mesa для відстеження:

  • Багатства кожного агента на кожному кроці.
  • Коефіцієнта Джині для всієї моделі, щоб спостерігати зміни в нерівності з часом.

Структура коду📑

  • BoltzmannWealthModel: Основний клас моделі, де налаштовується сітка, агенти та податкова система.
  • MoneyAgent: Агенти, які можуть переміщуватися, сплачувати податки, передавати гроші сусідам і отримувати допомогу.
  • compute_gini: Функція для обчислення коефіцієнта Джині на основі розподілу багатства агентів.
  • Візуалізація: Використовуються Solara та Matplotlib для візуалізації агентів та нерівності в розподілі багатства.

Майбутні покращення🤙

  • Індивідуальні стратегії переміщення: Додати складніші схеми переміщення або поведінку агентів.
  • Динамічні податкові ставки: Реалізувати зміни податкових ставок залежно від багатства агентів або інших економічних чинників.
  • Економічні політики: Випробувати вплив різних економічних політик на розподіл багатства.