/mccpy

Монте Карло изчисления с Python

Primary LanguageOpenEdge ABL

Монте Карло изчисления с Python

Cъобщения

  • 1 ноември 2017 е неучебен ден и няма да имаме занятие
  • в директория exams е качено примерно контролно
  • домашно 1 https://classroom.github.com/g/J9VRU-NQ
  • пършото контролно ще се провед на 8.11.2017 г. от 18:00 в стая 107.

Въведение

В това репозитори ще се публикуват програмите, които ще използваме по време на лекциите и упражненията. Всяка седмица ще има отделена директория. Голяма част от курса и качените програми са от курса на проф. Краут Statistical Mechanics: Algorithms and Computations. От книгата със същото име ще ползваме първа и седма глава. Тя може лесно да се намери в интернет. Ще ползваме пакетите на Python за научни изследвания numpy, scipy и pymc3. Повече за тях може да намерите на SciPy.org.

За да си набавите нужните пакети и Python 3, може да ползвате Anaconda.

За IDE може да ползвате PyCharm, Eclipse+PyDev или каквото ви е удобно.

Оценяване

Ще има:

  • 5 домашни по 10 точки.
  • 3 контролни по 50 точки.
  • 1 курсов проект по 100 точки.

Общо 300 точки. Ако съберете повече от 220 точки получавате 6. При повече от 190: 5, повече от 150: 4, повече от 120: 3.

Програма по седмици

  1. Въведение в изчислителното програмиране с Python
  2. Монте Карло(МК) методи: директна извадка (Direct sampling), Марковска верига Монте Карло (Markov chain Monte Carlo)(MCMC)
  3. Случайни числа. Вероятностни разпределения, Централна гранична теорема
  4. Оценка на грешката на МК методи, корелация в MCMC
  5. Симулация на твърди дискове(статистическа механика)
  6. Ентропични взаимодействия, статистическа сума
  7. Случайни числа върху и в сфера. Разпределение на Максуел. Интегриране в голяма размерност
  8. Интегриране на по-сложни разпределения. Намаляване на вариацията, приоритетни извадки (importance sampling)
  9. Оптимизация с МК- симулирано охлаждане
  10. Други вероятностни оптимизационни алгоритми
  11. Приложения в Бейсови оценки с пакета pymc3
  12. Примери с pymc3
  13. +курсови работи

Курсова работа

Курсовата работа трябва да бъде написана в групи от 3-ма до 5-ма.

Някои от курсовите работи от миналата година може да намерите на:

https://docs.google.com/spreadsheets/d/1Ox9uW7PB7qVWlSIHqTzQqGzcvHSIAWJLvtWfNrWBsUI/edit?usp=sharing

Примерни теми за курсова работа

Приемливо е всяко приложение на Монте Карло метод в проблем, който ви интересува. Курсовата работа трябва да съдържа

  1. Описание на задачата.
  2. Монте Карло решение
  3. Оценка на грешката и поведение на алгоритъма
  • каква е теоретическата грешка какво е поведението при увеличаване на входните параметри?
  • каква е практическата наблюдавана грешка и приемлива ли е?
  • какво е времето за изпълнение спрямо различни входни данни?
  • сравнение на алгоритъма с друг подход.

Курсовия проект ще се счита за успешен дори ако Монте Карло алгоритъма не е по-добър от детерминистичния, с който го сравнявате.

Ако все пак се затруднявате да си изберете тема, ето няколко насоки:

  • Прилагане на Монте Карло алгоритъм към комбинаторна или друга оптимизационна задача. Например TSP, но не точно този, защото него ще разгледаме в час.
  • Оценяване на финасови инструменти с МК сумулация MKF
  • Интегриране на сложен интеграл, например такъв, който представлява осветеността на обект.
  • Симулация на флуид или какъв да е друг процес от природата, в който има случайно поведение.
  • Анализ на данни, в които обучението се извършва с МК алгоритъм, например