В поисках математики. Михаил Денисенко, Нигма

28
В поисках математики Денисенко Михаил, Нигма.РФ 1 YaC, Москва, 19 сентября 2011 года

Upload: yaevents

Post on 11-Nov-2014

10.474 views

Category:

Technology


4 download

DESCRIPTION

Михаил Денисенко, НигмаЗакончил факультет вычислительной математики и кибернетики МГУ. Завершает работу над диссертацией, посвященной математическим аспектам информационной безопасности. Занимался исследованиями в области обработки видеопоследовательностей и компьютерной безопасности в компании Intel. С 2009 года является старшим разработчиком математического сервиса в компании Nigma.ru. С 2011 года — системный архитектор поисковой системы ITim.vn.Тема докладаВ поисках математики.ТезисыNigma-Математика – это сервис, с помощью которого пользователи могут решать различные математические задачи (упрощать выражения, решать уравнения, системы уравнений и т. д.), вводя их прямо в строку поиска в виде обычного текста. Система распознает более тысячи физических, математических констант и единиц измерения, что позволяет пользователям производить операции с различными величинами (в том числе решать уравнения) и получать ответ в указанных единицах измерения. Помимо уравнений система решает все задачи, характерные для калькуляторов поисковых систем и конвертеров валют. В докладе будет описана общая схема функционирования сервиса, базовые и новые алгоритмы системы символьных вычислений (алгоритмы решения уравнений и неравенств, алгоритм учета области допустимых значений, алгоритм исследования функций и т.п.). Также будет рассказано об ускорении работы сервиса, распределении нагрузки на систему, распознавании математичности запроса, преобразовании валют и метрических величинах.

TRANSCRIPT

Page 1: В поисках математики. Михаил Денисенко, Нигма

В поисках математики

Денисенко Михаил, Нигма.РФ

1YaC, Москва, 19 сентября 2011 года

Page 2: В поисках математики. Михаил Денисенко, Нигма

Статистика использования

50 000 запросов в день

источники запросов: - сайт нигма.рф- приложение по

2

- приложение по математике

для сайта vkontakte.ru (~625 000 пользователей)

Page 3: В поисках математики. Михаил Денисенко, Нигма

Статистика использования

33

Page 4: В поисках математики. Михаил Денисенко, Нигма

Пользовательская

аудитория

школьники

студенты младших курсов

Возможности системы:

4

Возможности системы:математические рассчеты,исследование функций,упрощение выражений,преобразование метрических величин,конвертация валют, ... –

всего около 30 различных типов задач

Page 5: В поисках математики. Михаил Денисенко, Нигма

Пользовательский запрос

Front-end.Проверка на математичность

Система символьныхвычислений.Обработка символьного

Краткая архитектура системы

5

Back-end.- Замена констант, единиц измерения.- Текстовая запись числовых выражений.- Нормализция запроса.- Генерация вариантов разбора.- Преобразование в синтаксис системы символьныхвычислений

Обработка символьного представления, генерация ответа и шагов решения.

Отрисовка формул в формате TeX

Page 6: В поисках математики. Михаил Денисенко, Нигма

Проверка на математичность

Отбраковка запросов, похожих на математику. Например, телефонные

номера, названия моделей различной

Химический тест на математичность

моделей различной техники

Выделение констант, метрических величин,

математических конструкций

6

Page 7: В поисках математики. Михаил Денисенко, Нигма

Исходный запрос

Front-endОбработка единиц измерения

Замена буквенного ввода на символьно-числовой

Замена всех оставшихся объектов на математические эквиваленты

Обработка нормализатором: преобразование к

Цепочка преобразований запроса

Back-end

Обработка нормализатором: преобразование к строгому синтаксису системы символьных

вычислений, разрешение неоднозначности, разбиение на варианты

Выделение формулы и управляющих фраз

Угадывание задачи по типу выражения

Запрос в систему символьных вычислений

Дополнительные ответы и шаги решенияУдаление дублирующихся ответов, TeX

7

Page 8: В поисках математики. Михаил Денисенко, Нигма

Различные варианты разбора запросов вида

Пример

8

1+2/3+4/5+6

8

Page 9: В поисках математики. Михаил Денисенко, Нигма

Пример

валюты

99

Page 10: В поисках математики. Михаил Денисенко, Нигма

Пример

текстовая запись

1010

Page 11: В поисках математики. Михаил Денисенко, Нигма

Введение в символьные вычисления

11

«Недостойно одаренному человеку тратить, подобно рабу, часы на вычисления, которые безусловно можно было бы доверить любому лицу, если бы при этом применить машину.»

Готфрид Вильгельм фон Лейбниц

Page 12: В поисках математики. Михаил Денисенко, Нигма

Символьные вычисления и численные расчеты

Символьные вычисления –преобразования и работа с математическими равенствами и формулами, как с

12

формулами, как с последовательностью символов

Численные методы оперируют приближенными численными значениями, стоящими за математическими выражениями, т.е. числами (целыми и с плавающей запятой)

Page 13: В поисках математики. Михаил Денисенко, Нигма

уцкауц

Компьютерная алгебра

Символьные вычисления или компьютерная алгебра – научная дисциплина, ставящая целью разработку алгоритмов и программного обеспечения для решения задач, записанных с помощью математических выражений и формул (аналитическая

13

выражений и формул (аналитическая запись), на компьютере.

Недостатки систем символьных вычислений:- отсутствие компилятора в машинный код; - неудобная стыковка с другими языками программирования;- неудобная обработка ряда типов, в том числе классов ООП

Page 14: В поисках математики. Михаил Денисенко, Нигма

уцкауц

MACSYMA

MACSYMA (Project MAC’s SYmbolic Manipulator),разрабатывалась в MIT с 1968 по 1982 годы.

Project MAC (Project on Mathematics and

14

Project MAC (Project on Mathematics and Computation) финансировался Министерством энергетики США (DOE) и другими государственными организациями.

Page 15: В поисках математики. Михаил Денисенко, Нигма

Maxima 1

Maxima произошла от системы MACSYMA.

Первоначальный вариант – DOE MACSYMA, 1982 год.

Maxima — система символьных вычислений:- дифференцирование;

15

- дифференцирование;- интегрирование;- разложение в ряд, преобразование Лапласа;- обыкновенные дифференциальные уравнения;- СЛАУ;- многочлены, множества, списки, векторы, матрицы,...

15

Page 16: В поисках математики. Михаил Денисенко, Нигма

Maxima 2

Проблемы в решателе уравнений.

1. Потеря решений.(input) solve(sin(x)=0,x);(output) [x=0]

2. Не учитывается область определения и значения функций.

16

функций.(input) solve(x*log(x)=0,x);(output) [x=0, x=1]

3. Набор алгоритмов решения недостаточно полон.(input) solve(x+sqrt(x)=2,x);(output) [x=2-sqrt(x)]

Page 17: В поисках математики. Михаил Денисенко, Нигма

ЖйMaxima 3

Проверка ложных решений.

Для уравнения

17

Нужно проверить, является ли решением следующее число:

Page 18: В поисках математики. Михаил Денисенко, Нигма

Maxima 4

Полиномизация

Попробуем решить уравнение

Сделаем замену

В результате получаем систему:

18

Путем проверки, отбраковываются ложные решения. Получается ответ

В Maxima есть алгоритмы для решения полиномиальных систем.

Page 19: В поисках математики. Михаил Денисенко, Нигма

Maxima 5

Приведение к полиномиальному виду различных уравнений

Рассмотрим уравнение:

Делаем подстановку и эквивалентное преобразование :

19

В результате получаем уравнение, которое содержит все корни исходного:

Page 20: В поисках математики. Михаил Денисенко, Нигма

«Почти» полиномизация тригонометрических уравнений:

Maxima 6

2020

Page 21: В поисках математики. Михаил Денисенко, Нигма

Maxima 7

Общая схема решения многих типов уравнений:

Уравнение Полином

2121

Решение +проверка корней

Проблема в системе упрощения:различная аналитическая запись одних и тех решений,необходимо удаление дубликатов корней.

Page 22: В поисках математики. Михаил Денисенко, Нигма

Учет области допустимых значений уравнения

Пример

2222

Page 23: В поисках математики. Михаил Денисенко, Нигма

Пример

Периодические решения

2323

Другие примеры и описание возможностей сервиса можно посмотреть по ссылкеhttp://info.nigma.ru/index.php/nigma-matematika.html

Page 24: В поисках математики. Михаил Денисенко, Нигма

(input) b+a=c;(output) b + a = c

(input) expand(%*(b+a));(output) b2 +2 ab + a2 = bc + ac

(input) -a*c-b^2-a*b+%;(output) −ac + ab + a2= bc − b2− ab

Интересные доказательства

24

(output) −ac + ab + a2= bc − b2− ab

(input) map(factor,%);(output) −a (c − b − a)= b (c − b − a)

(input) %/(c-b-a);(output) −a = b

(input) a+%;(output) 0= b + a

24

Page 25: В поисках математики. Михаил Денисенко, Нигма

Доказательство log(-1)=0

(input) expand((y-1)^2)=(y-1)^2;(output) y^2− 2*y +1=(y − 1)^2

(input) map(log,%);(output) log(y^2− 2*y +1)=2*log(y − 1)

2525

(input) subst(x,log(y-1),%);(output) log(y^2- 2*y+1)=2*x

(input) subst(0,y,%);(output) 0=2*x,

где x – это log(y-1) при y=0

Page 26: В поисках математики. Михаил Денисенко, Нигма

Выводы

- Разработан универсальный сервис для проведения точных математических вычислений в поисковой системе.- Позволяет решать множество математических проблем с шагами решения, поддерживает работу с метрическими величинами, конвертирует валюты, распознает и пытается угадать различные варианты запросов.

26

Page 27: В поисках математики. Михаил Денисенко, Нигма

Перспективы развития

- точность определения математичности запроса;- расширение типов задач;- шаги решения для всех видов математических запросов;- улучшение алгоритмов решения уравнений, разработка новых обобщенных алгоритмов;

27

разработка новых обобщенных алгоритмов;- возможность легкого и удобного ввода математических конструкций произвольной сложности;- оптимизация производительности ядра системы символьных вычислений.

27

Page 28: В поисках математики. Михаил Денисенко, Нигма

Спасибо за внимание

[email protected]Денисенко Михаил 28