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




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




YaC, Москва, 19 сентября 2011 года               1
Статистика
      использования



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

источники запросов:
   - сайт нигма.рф
   - приложение по
   математике
   для сайта vkontakte.ru
   (~625 000 пользователей)




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




                    3
                    3
Пользовательская
                                 аудитория




   школьники

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


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


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


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



Front-end.
Проверка на математичность
                                 Система символьных
                                 вычислений.
                                 Обработка символьного
                                 представления, генерация
Back-end.                        ответа и шагов решения.
- Замена констант, единиц
измерения.
- Текстовая запись числовых
выражений.
- Нормализция запроса.
- Генерация вариантов
разбора.
- Преобразование в синтаксис
системы символьных             Отрисовка формул в формате TeX
вычислений                                                      5
Проверка на
                                         математичность




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


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




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


                  Исходный запрос
                     Обработка единиц измерения
Front-end
            Замена буквенного ввода на символьно-числовой
                  Замена всех оставшихся объектов на
                     математические эквиваленты

             Обработка нормализатором: преобразование к
               строгому синтаксису системы символьных
              вычислений, разрешение неоднозначности,
                       разбиение на варианты
Back-end
               Выделение формулы и управляющих фраз

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

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




Различные варианты
разбора запросов вида
   1+2/3+4/5+6




                        8
                        8
Пример
валюты




     9
     9
Пример
текстовая запись




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




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




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

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



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



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


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



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

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




                                                 14
Maxima 1



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

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

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



                                                         15
                                                         15
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
Maxima 3
                        Жй
Проверка ложных решений.


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



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




                                                         17
Maxima 4


Полиномизация
Попробуем решить уравнение

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



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


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


                                                         18
Maxima 5


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

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



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




                                                                 19
Maxima 6



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




                                                  20
                                                  20
Maxima 7



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



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




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


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




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




                                                22
                                                22
Пример


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




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

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

(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
Доказательство 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
Перспективы развития



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




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




Денисенко Михаил                    mpdenisenko@gmail.com   28

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

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