Всё началось с разговора с подругой.
Я рассказывала ей об идее проекта с натальной картой, но не в том виде, в котором астрология обычно подаётся в интернете: без мистических фраз, туманных предсказаний и сухих таблиц с непонятными символами. Мне хотелось сделать что-то технически правильное и понятное обычному человеку. Я программист, и к астрологии отношусь без фанатизма, как к системе, в которой есть логика, если хорошенько разобраться.
Подруга выслушала и сказала: "А было бы здорово, если бы был какой-нибудь калькулятор времени рождения..."
Я задумалась и поняла, что сама тоже не знаю своего точного времени рождения. Мама помнит приблизительно, а в свидетельстве и на бирке ничего нет. Начала спрашивать знакомых и оказалось, что это очень распространённая история.
Так появилась идея написать алгоритм ректификации. Задача показалась мне интересной именно с технической стороны: можно ли по датам событий жизни достаточно точно вычислить время рождения? Я решила попробовать.
Что такое ректификация и почему это сложно?
Ректификация - это метод определения времени рождения по событиям жизни человека. Идея в том, что при правильном времени рождения астрологические методы должны объяснять, почему именно в тот или иной год в жизни произошло то или иное событие.
Звучит просто, а на практике нет.
Время рождения определяет положение асцендента и всех двенадцати домов. Асцендент движется примерно на 1 градус каждые 4 минуты. За сутки он проходит полный круг зодиака. Значит, чтобы найти правильное время, нужно перебрать 360 вариантов и для каждого проверить, насколько хорошо он объясняет события жизни человека.
Профессиональные астрологи делают это вручную несколько часов. Мне нужно было автоматизировать.
Как работает алгоритм
Я не стала изобретать что-то новое, а взяла классические астрологические техники и реализовала их в коде.
- Перебор кандидатов. Алгоритм проходит все 1440 минут суток с шагом 4 минуты - это 360 кандидатов. Для каждого считается натальная карта с системой домов Placidus. Затем выбираются топ-5 кандидатов и прорабатываются с шагом 1 минута в диапазоне ±8 минут. Итого около 440 полных расчётов карты на один запрос.
- Что проверяется для каждого события. Пользователь указывает даты важных событий жизни: брак, переезд, смена работы, рождение ребёнка, болезнь и так далее. Для каждого события алгоритм проверяет сразу несколько астрологических техник:
- Транзиты к куспидам домов. Если человек переехал в 2010 году, при правильном времени рождения планеты должны были активировать 4-й дом (дом жилья, семьи). Алгоритм проверяет, насколько близко транзитные планеты были к куспиду нужного дома в год события.
- Solar Arc дирекции. Это один из главных методов ректификации у профессионалов. Каждый год жизни дирекционные планеты смещаются примерно на 1 градус. Алгоритм считает, куда сместились все планеты к моменту события, и проверяет, попали ли они на натальные углы (асцендент, MC, IC, десцендент).
- Прогрессированная Луна. Луна в прогрессиях двигается быстро, примерно 1 градус в месяц. Соединение или оппозиция прогрессированной Луны с натальными углами хорошо маркирует важные события.
- Профекции. Каждый год жизни активирует один из 12 домов по порядку. В год события алгоритм проверяет, совпадает ли активированный дом с тематикой события.
- Транзиты к натальной Луне и углам. Дополнительный канал подтверждения.
- Скоринг. Каждое попадание даёт очки. Точные соединения дают больше, чем широкие орбы. Медленные планеты (Плутон, Нептун, Уран) засчитываются с коэффициентом выше, т.к. они дают более редкие и значимые активации. Критические события (смерть близкого, операция, рождение ребёнка) весят больше, чем менее значимые. Итоговый скор суммируется по всем событиям и победитель становится предложенным временем рождения.
Проверка на знаменитостях
Прежде чем запускать сервис, я тестировала алгоритм на открытых данных - известных людях, чьё время рождения документально подтверждено.
Один из моих последних тестов - Лукас Джордж (Lucas George), данные о котором есть в астрологических базах. Алгоритм перебирал все 1440 минут суток без каких-либо ограничений диапазона, опираясь только на даты событий жизни.
Результат: разница между предложенным временем и реальным составила 19 минут.
Это значит, что асцендент в предложенном варианте отличался от реального примерно на 5 градусов. Для большинства астрологических интерпретаций это остаётся в пределах допустимой погрешности.
Это не единственный тест, но он показывает, что метод работает. При условии точных дат событий и разнообразия их тематики алгоритм даёт значимо лучший результат, чем случайный выбор.
Честные ограничения
Конечно же не буду врать, что алгоритм работает идеально всегда. Вот что влияет на точность:
- Количество и разнообразие событий. Одно-два события - это слишком мало. Если все события одного типа (например, несколько переездов), алгоритм видит только одну тематику. Оптимально - 7-10 событий из разных сфер жизни: отношения, карьера, здоровье, жильё, потери, успехи.
- Точность дат. Год даёт погрешность около ±6 градусов Solar Arc. Если добавить месяц, то погрешность падает до ±0.5 градуса. Поэтому я прошу указывать не только год, но и месяц события там, где это возможно.
- Уникальность событий. Редкие и значимые события (операция, эмиграция, смерть близкого) дают более чёткий сигнал, чем частые (смена работы, краткосрочные отношения).
Почему я прошу сохранять анкеты
После расчёта алгоритм предлагает наиболее вероятное время, если пользователь согласен, он может сохранить свою анкету - это абсолютно анонимно, без имени и контактов.
Зачем это нужно? Алгоритм можно и нужно улучшать. Когда пользователь знает своё реальное время рождения и видит насколько близко попал алгоритм - это ценные данные. Когда накопится достаточно таких пар "анкета + реальное время", можно будет откалибровать веса методов, орбы и коэффициенты.
Пока что мне нужно больше разнообразных карт и историй жизни. Особенно интересны случаи когда событий много и они из разных сфер, потому что именно такие карты дают алгоритму максимум информации для работы.
Попробовать
Ректификация доступна бесплатно на astrovey.ru, а также там есть расчет натальной карты, дыхательные практики и мотивирующее послание каждый день! Я очень старалась сделать сайт действительно полезным.
Если знаете своё точное время рождение, то обязательно попробуйте и напишите в комментариях, насколько алгоритм попал. Это поможет сделать алгоритм более точным. Большое спасибо всем, кто заполнит анкету!