SlideShare a Scribd company logo
1 of 28
Download to read offline
В поисках математики




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




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

More Related Content

What's hot

элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данныхЕлена Ключева
 
Программирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереПрограммирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереAndrey Dolinin
 
Основы программирования на ruby
Основы программирования на rubyОсновы программирования на ruby
Основы программирования на rubyEvgeny Smirnov
 
10 a n_r
10 a n_r10 a n_r
10 a n_r4book
 
Типы данных
Типы данныхТипы данных
Типы данныхMonsterXX
 
Matlab и Mathcad. Сравнительная характеристика.
Matlab и Mathcad. Сравнительная характеристика.Matlab и Mathcad. Сравнительная характеристика.
Matlab и Mathcad. Сравнительная характеристика.Dmitry Bulgakov
 
М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...
М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...
М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...Project KRIT
 
Kriticheskie tochki funkcii_tochki_jekstremumov
Kriticheskie tochki funkcii_tochki_jekstremumovKriticheskie tochki funkcii_tochki_jekstremumov
Kriticheskie tochki funkcii_tochki_jekstremumovIvanchik5
 
Управляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияУправляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияEvgeny Smirnov
 
Практикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаПрактикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаЕкатерина Луговова
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеLidia Pivovarova
 
функциональный метод решения иррациональных уравнений
функциональный метод решения иррациональных уравненийфункциональный метод решения иррациональных уравнений
функциональный метод решения иррациональных уравненийludmilka88888
 
программирование на Maple. Лекция 1
программирование на Maple. Лекция 1программирование на Maple. Лекция 1
программирование на Maple. Лекция 1Andrei V, Zhuravlev
 
программирование на Maple. Лекция 2
программирование на Maple. Лекция 2программирование на Maple. Лекция 2
программирование на Maple. Лекция 2Andrei V, Zhuravlev
 

What's hot (20)

элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
 
Программирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереПрограммирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютере
 
Основы программирования на ruby
Основы программирования на rubyОсновы программирования на ruby
Основы программирования на ruby
 
10 a n_r
10 a n_r10 a n_r
10 a n_r
 
777
777777
777
 
Типы данных
Типы данныхТипы данных
Типы данных
 
Fs knowledge base
Fs knowledge baseFs knowledge base
Fs knowledge base
 
лекция 8
лекция 8лекция 8
лекция 8
 
Matlab и Mathcad. Сравнительная характеристика.
Matlab и Mathcad. Сравнительная характеристика.Matlab и Mathcad. Сравнительная характеристика.
Matlab и Mathcad. Сравнительная характеристика.
 
М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...
М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...
М.Г.Гоман (1986) – Дифференциальный метод продолжения решений систем конечных...
 
Kriticheskie tochki funkcii_tochki_jekstremumov
Kriticheskie tochki funkcii_tochki_jekstremumovKriticheskie tochki funkcii_tochki_jekstremumov
Kriticheskie tochki funkcii_tochki_jekstremumov
 
Управляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияУправляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условия
 
Практикум по выполнению блока с информатика
Практикум по выполнению блока с информатикаПрактикум по выполнению блока с информатика
Практикум по выполнению блока с информатика
 
лекция 9
лекция 9лекция 9
лекция 9
 
11
1111
11
 
урок метод интервалов
урок метод интерваловурок метод интервалов
урок метод интервалов
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
 
функциональный метод решения иррациональных уравнений
функциональный метод решения иррациональных уравненийфункциональный метод решения иррациональных уравнений
функциональный метод решения иррациональных уравнений
 
программирование на Maple. Лекция 1
программирование на Maple. Лекция 1программирование на Maple. Лекция 1
программирование на Maple. Лекция 1
 
программирование на Maple. Лекция 2
программирование на Maple. Лекция 2программирование на Maple. Лекция 2
программирование на Maple. Лекция 2
 

Viewers also liked

Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...yaevents
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Googleyaevents
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...yaevents
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...yaevents
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...yaevents
 
Поисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, ЯндексПоисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, Яндексyaevents
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebookyaevents
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...yaevents
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндексyaevents
 

Viewers also liked (9)

Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
 
Поисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, ЯндексПоисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, Яндекс
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
 

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

практика 12
практика 12практика 12
практика 12student_kai
 
аксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определителиаксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определителиAnna1978
 
регрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cadрегрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cadkhishigbayar ider
 
практика 1
практика 1практика 1
практика 1student_kai
 
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
Обработка приватных данных на публичных вычислительных сетях
Обработка приватных данных на публичных вычислительных сетяхОбработка приватных данных на публичных вычислительных сетях
Обработка приватных данных на публичных вычислительных сетяхDmitry Protopopov
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
 
03
0303
03JIuc
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Прикладная эконометрика. Лекция 3.
Прикладная эконометрика. Лекция 3.Прикладная эконометрика. Лекция 3.
Прикладная эконометрика. Лекция 3.Vladimir Tcherniak
 
семенищев
семенищевсеменищев
семенищевIvan
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activityArvids Godjuks
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовMikhail Kurnosov
 
KNRTU course 1 optimisation methods
KNRTU course 1 optimisation methodsKNRTU course 1 optimisation methods
KNRTU course 1 optimisation methodsmetamath
 
ДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdfДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdfCahyaPerwira
 
435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачи435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачиivanov15548
 

Similar to В поисках математики. Михаил Денисенко, Нигма (20)

практика 12
практика 12практика 12
практика 12
 
аксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определителиаксиоматический подход в математике матрицы и определители
аксиоматический подход в математике матрицы и определители
 
Java. Методы
Java. Методы Java. Методы
Java. Методы
 
регрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cadрегрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cad
 
практика 1
практика 1практика 1
практика 1
 
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
 
Обработка приватных данных на публичных вычислительных сетях
Обработка приватных данных на публичных вычислительных сетяхОбработка приватных данных на публичных вычислительных сетях
Обработка приватных данных на публичных вычислительных сетях
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
03
0303
03
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Прикладная эконометрика. Лекция 3.
Прикладная эконометрика. Лекция 3.Прикладная эконометрика. Лекция 3.
Прикладная эконометрика. Лекция 3.
 
2020 03-31-lection
2020 03-31-lection2020 03-31-lection
2020 03-31-lection
 
семенищев
семенищевсеменищев
семенищев
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activity
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
KNRTU course 1 optimisation methods
KNRTU course 1 optimisation methodsKNRTU course 1 optimisation methods
KNRTU course 1 optimisation methods
 
ДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdfДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdf
 
435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачи435.элементы теории множеств и математической логики теория и задачи
435.элементы теории множеств и математической логики теория и задачи
 
Введение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данныхВведение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данных
 
пр 15.docx
пр 15.docxпр 15.docx
пр 15.docx
 

More from yaevents

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...yaevents
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндексyaevents
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...yaevents
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексyaevents
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...yaevents
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...yaevents
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндексyaevents
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндексyaevents
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmannyaevents
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...yaevents
 
Julia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareJulia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareyaevents
 
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...yaevents
 
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval EvaluationEvangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval Evaluationyaevents
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluationyaevents
 
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"yaevents
 
"Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results""Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results"yaevents
 
Salvatore_Orlando
Salvatore_OrlandoSalvatore_Orlando
Salvatore_Orlandoyaevents
 
Fast dynamic analysis, Kostya Serebryany
Fast dynamic analysis, Kostya SerebryanyFast dynamic analysis, Kostya Serebryany
Fast dynamic analysis, Kostya Serebryanyyaevents
 
Adapting Rankers Online, Maarten de Rijke
Adapting Rankers Online, Maarten de RijkeAdapting Rankers Online, Maarten de Rijke
Adapting Rankers Online, Maarten de Rijkeyaevents
 

More from yaevents (20)

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндекс
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Julia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareJulia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-aware
 
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
 
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval EvaluationEvangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluation
 
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
 
"Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results""Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results"
 
Salvatore_Orlando
Salvatore_OrlandoSalvatore_Orlando
Salvatore_Orlando
 
Fast dynamic analysis, Kostya Serebryany
Fast dynamic analysis, Kostya SerebryanyFast dynamic analysis, Kostya Serebryany
Fast dynamic analysis, Kostya Serebryany
 
Adapting Rankers Online, Maarten de Rijke
Adapting Rankers Online, Maarten de RijkeAdapting Rankers Online, Maarten de Rijke
Adapting Rankers Online, Maarten de Rijke
 

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

  • 1. В поисках математики Денисенко Михаил, Нигма.РФ YaC, Москва, 19 сентября 2011 года 1
  • 2. Статистика использования 50 000 запросов в день источники запросов: - сайт нигма.рф - приложение по математике для сайта vkontakte.ru (~625 000 пользователей) 2
  • 4. Пользовательская аудитория школьники студенты младших курсов Возможности системы: математические рассчеты, исследование функций, упрощение выражений, преобразование метрических величин, конвертация валют, ... – всего около 30 различных типов задач 4
  • 5. Краткая архитектура системы Пользовательский запрос Front-end. Проверка на математичность Система символьных вычислений. Обработка символьного представления, генерация Back-end. ответа и шагов решения. - Замена констант, единиц измерения. - Текстовая запись числовых выражений. - Нормализция запроса. - Генерация вариантов разбора. - Преобразование в синтаксис системы символьных Отрисовка формул в формате TeX вычислений 5
  • 6. Проверка на математичность Отбраковка запросов, похожих на математику. Например, телефонные Химический тест на номера, названия математичность моделей различной техники Выделение констант, метрических величин, математических конструкций 6
  • 7. Цепочка преобразований запроса Исходный запрос Обработка единиц измерения Front-end Замена буквенного ввода на символьно-числовой Замена всех оставшихся объектов на математические эквиваленты Обработка нормализатором: преобразование к строгому синтаксису системы символьных вычислений, разрешение неоднозначности, разбиение на варианты Back-end Выделение формулы и управляющих фраз Угадывание задачи по типу выражения Запрос в систему символьных вычислений Дополнительные ответы и шаги решения Удаление дублирующихся ответов, TeX 7
  • 11. Введение в символьные вычисления «Недостойно одаренному человеку тратить, подобно рабу, часы на вычисления, которые безусловно можно было бы доверить любому лицу, если бы при этом применить машину.» Готфрид Вильгельм фон Лейбниц 11
  • 12. Символьные вычисления и численные расчеты Символьные вычисления – преобразования и работа с математическими равенствами и формулами, как с последовательностью символов Численные методы оперируют приближенными численными значениями, стоящими за математическими выражениями, т.е. числами (целыми и с плавающей запятой) 12
  • 13. Компьютерная алгебра уцкауц Символьные вычисления или компьютерная алгебра – научная дисциплина, ставящая целью разработку алгоритмов и программного обеспечения для решения задач, записанных с помощью математических выражений и формул (аналитическая запись), на компьютере. Недостатки систем символьных вычислений: - отсутствие компилятора в машинный код; - неудобная стыковка с другими языками программирования; - неудобная обработка ряда типов, в том числе классов ООП 13
  • 14. MACSYMA уцкауц MACSYMA (Project MAC’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