1"""
2Звание:
3Fast & Voluptuous - Бързи и пищни
4
5Обрисовка:
6Пищен 2D симулатор на автономни дрифт автомобили,
7където NEAT алгоритъм "бързо", или поне в някакъв момент от времето,
8успява успешно да премине произволна писта.
9За колите ще се симулира инерция, сцепление, дрифт и най - често -> провал,
10ако излязат от трасето.
11Целта на проекта е да се създаде "еволюционен модел", при който популация
12от коли на поколенчески принцип се доближава до уменията на Никола Цолов.
13
14Надарености:
15-> Потребителят може да избира или създава персонализирана писта,
16на която да се обучава модела.
17-> Потребителят може да стартира процеса на "еволюция".
18-> Потребителят може да променя параметрите на средата -
19например хлъзгавост.
20-> Програмата самостоятелно изчислява движението на колите
21в реално време.
22-> Програмата предоставя възможност за дрифтене.
23-> Програмата демонстрира реалистично движение на автомобилите.
24-> Програмата генерира виртуални сензори за всеки автомобил, които
25сканират и анализират околната среда, на база на което се правят изборите.
26-> Програмата оценява представянето на всеки автомобил и избира
27първите Х най - добри за изходна точка на следващото поколение.
28-> Потребителят има възможност да запази конфигурацията на най - добрия
29пилот и да го зареди наготово на нова писта.
30-> Програмата визуализира в реално време топологията на
31невронната мрежа на водещия автомобил.
32-> Програмата визуализира пистата, колите и движението.
33-> Потребителят не може да управлява ръчно.
34-> Колите в програмата нямат колизии помежду си
35-> Програмистът се постарава да намери или направи пищна визуализация
36на колите.
37
38Възлови точки:
391. Основата на програмата
40Създаване на класове за автомобила и пистата.
41Векторна математика за пресмятане на скоростта, ускорението,
42завиване и триене. Реализиране на добър collission detection за
43отчитане на сблъсък между колата и очертанията на пистата.
44
452. Сензорната система
46Имплементация на сензорите към колите, които анализират имат начало
47автомобил и са У на брой - в различни посоки. На тяхна база се
48намира разстояние до елементите
49
503. AI модул
51Свързване на neat-python с автомобилите. Дефиниране на
52входа - от сензорите и скоростта, и изхода - управлението.
53Имплементиране на основната функционалност по "награждаване"
54на колите или "убиване" при сблъсък.
55
564. UI
57Интеграция с Pygame за визуализиране на симулацията.
58Информаионно табло, което показва текущото поколение.
59Визуализиране на невронната мрежа в реално време.
60
61(не задължително номер пет в последователността)
625. Unit тестове
63Писане на тестове, които да гарантират правилното изпълнение на елементите.
64
656. Сериализиране на информацията
66Функционалност по запазване на най - добрият шофьор в текущия момент.
67
68
69Времеоценка в човекочасове:
70Общо: 68 часа
71Проучване на технологиите (за първи път ще ги ползвам) - 12 часа
72Физически аспект на движението, векторите, колиизите - 15 часа
73Алгоритъма за сензорите - 10 часа
74Конфигурация и трениране на NEAT алгоритъма 15 часа
75UI - 10 часа
76Unit тестове - 6 часа
77
78
79Потребление на технологии:
80Pygame - графичен интерфейс, визуализация на елементите,
81управление на събитията
82
83neat-python - управление на генетичния алгоритъм, създаване на
84поколенията и мутациите на невронната мрежа
85
86NumPy - математическата част (векторни сметки, матрици, тригонометрия)
87
88Pickle - serialising & deserialising на обекти
89
90Unittest - тестовете
91"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Милан Георгиев
11.05.2026 08:12Мислих да дам на събеседника си да нарисува една писта и да пуснем програмата с тази писта.
|
Виктор Бечев
10.05.2026 20:05Много ми харесва, че симулаторът е "пищен". :grin:
Като цяло доста ме грабва, има достатъчно обем, помисли само как ще демонстрираш лайв.
|