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

10,582 views

Published on

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

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

Тема доклада
В поисках математики.

Тезисы
Nigma-Математика – это сервис, с помощью которого пользователи могут решать различные математические задачи (упрощать выражения, решать уравнения, системы уравнений и т. д.), вводя их прямо в строку поиска в виде обычного текста. Система распознает более тысячи физических, математических констант и единиц измерения, что позволяет пользователям производить операции с различными величинами (в том числе решать уравнения) и получать ответ в указанных единицах измерения. Помимо уравнений система решает все задачи, характерные для калькуляторов поисковых систем и конвертеров валют. В докладе будет описана общая схема функционирования сервиса, базовые и новые алгоритмы системы символьных вычислений (алгоритмы решения уравнений и неравенств, алгоритм учета области допустимых значений, алгоритм исследования функций и т.п.). Также будет рассказано об ускорении работы сервиса, распределении нагрузки на систему, распознавании математичности запроса, преобразовании валют и метрических величинах.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
10,582
On SlideShare
0
From Embeds
0
Number of Embeds
9,420
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. В поисках математики Денисенко Михаил, Нигма.РФYaC, Москва, 19 сентября 2011 года 1
  2. 2. Статистика использования50 000 запросов в деньисточники запросов: - сайт нигма.рф - приложение по математике для сайта vkontakte.ru (~625 000 пользователей) 2
  3. 3. Статистика использования 3 3
  4. 4. Пользовательская аудитория школьники студенты младших курсовВозможности системы: математические рассчеты, исследование функций, упрощение выражений, преобразование метрических величин, конвертация валют, ... –всего около 30 различных типовзадач 4
  5. 5. Краткая архитектура системыПользовательский запросFront-end.Проверка на математичность Система символьных вычислений. Обработка символьного представления, генерацияBack-end. ответа и шагов решения.- Замена констант, единицизмерения.- Текстовая запись числовыхвыражений.- Нормализция запроса.- Генерация вариантовразбора.- Преобразование в синтаксиссистемы символьных Отрисовка формул в формате TeXвычислений 5
  6. 6. Проверка на математичность Отбраковка запросов,похожих на математику.Например, телефонные Химический тест на номера, названия математичность моделей различной техники Выделение констант, метрических величин, математических конструкций 6
  7. 7. Цепочка преобразований запроса Исходный запрос Обработка единиц измеренияFront-end Замена буквенного ввода на символьно-числовой Замена всех оставшихся объектов на математические эквиваленты Обработка нормализатором: преобразование к строгому синтаксису системы символьных вычислений, разрешение неоднозначности, разбиение на вариантыBack-end Выделение формулы и управляющих фраз Угадывание задачи по типу выражения Запрос в систему символьных вычислений Дополнительные ответы и шаги решения Удаление дублирующихся ответов, TeX 7
  8. 8. ПримерРазличные вариантыразбора запросов вида 1+2/3+4/5+6 8 8
  9. 9. Примервалюты 9 9
  10. 10. Примертекстовая запись 1010
  11. 11. Введение в символьные вычисления«Недостойно одаренному человеку тратить, подобно рабу, часы навычисления, которые безусловно можно было бы доверить любому лицу, еслибы при этом применить машину.» Готфрид Вильгельм фон Лейбниц 11
  12. 12. Символьные вычисления и численные расчетыСимвольные вычисления –преобразования и работа сматематическими равенствами иформулами, как споследовательностью символовЧисленные методы оперируютприближенными численнымизначениями, стоящими заматематическими выражениями,т.е. числами (целыми и сплавающей запятой) 12
  13. 13. Компьютерная алгебра уцкауцСимвольные вычисления иликомпьютерная алгебра – научнаядисциплина, ставящая цельюразработку алгоритмов и программногообеспечения для решения задач,записанных с помощью математическихвыражений и формул (аналитическаязапись), на компьютере.Недостатки систем символьныхвычислений:- отсутствие компилятора в машинный код;- неудобная стыковка с другими языкамипрограммирования;- неудобная обработка ряда типов, в томчисле классов ООП 13
  14. 14. MACSYMA уцкауцMACSYMA(Project MAC’s SYmbolic Manipulator),разрабатывалась в MIT с 1968 по 1982 годы.Project MAC (Project on Mathematics andComputation) финансировался Министерствомэнергетики США (DOE) и другимигосударственными организациями. 14
  15. 15. Maxima 1Maxima произошла от системы MACSYMA.Первоначальный вариант – DOE MACSYMA, 1982 год.Maxima — система символьных вычислений: - дифференцирование; - интегрирование; - разложение в ряд, преобразование Лапласа; - обыкновенные дифференциальные уравнения; - СЛАУ; - многочлены, множества, списки, векторы, матрицы,... 15 15
  16. 16. Maxima 2Проблемы в решателе уравнений.1. Потеря решений. (input) solve(sin(x)=0,x); (output) [x=0]2. Не учитывается область определения и значенияфункций. (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)] 16
  17. 17. Maxima 3 ЖйПроверка ложных решений.Для уравненияНужно проверить, является ли решением следующее число: 17
  18. 18. Maxima 4ПолиномизацияПопробуем решить уравнениеСделаем заменуВ результате получаем систему:Путем проверки, отбраковываются ложные решения.Получается ответВ Maxima есть алгоритмы для решения полиномиальных систем. 18
  19. 19. Maxima 5 Приведение к полиномиальному виду различных уравнений Рассмотрим уравнение: Делаем подстановку и эквивалентное преобразование :В результате получаем уравнение, которое содержит все корни исходного: 19
  20. 20. Maxima 6«Почти» полиномизация тригонометрических уравнений: 20 20
  21. 21. Maxima 7 Общая схема решения многих типов уравнений: Уравнение Полином Решение + проверка корнейПроблема в системе упрощения:различная аналитическая запись одних и тех решений, 21 21необходимо удаление дубликатов корней.
  22. 22. ПримерУчет области допустимых значений уравнения 22 22
  23. 23. Пример Периодические решенияДругие примеры и описание возможностей сервисаможно посмотреть по ссылкеhttp://info.nigma.ru/index.php/nigma-matematika.html 23 23
  24. 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(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 24
  25. 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)(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 25 25
  26. 26. Выводы- Разработан универсальный сервис для проведенияточных математических вычислений в поисковой системе.- Позволяет решать множество математических проблемс шагами решения, поддерживает работу с метрическимивеличинами, конвертирует валюты, распознает ипытается угадать различные варианты запросов. 26
  27. 27. Перспективы развития- точность определения математичности запроса;- расширение типов задач;- шаги решения для всех видов математическихзапросов;- улучшение алгоритмов решения уравнений,разработка новых обобщенных алгоритмов;- возможность легкого и удобного вводаматематических конструкций произвольной сложности;- оптимизация производительности ядра системысимвольных вычислений. 27 27
  28. 28. Спасибо за вниманиеДенисенко Михаил mpdenisenko@gmail.com 28

×