Процент задач, с которыми справляется система и считает решение надёжным, составляет 96%. При этом, решая официальный SAT-тест, GeoS демонстрирует точность, равную 49%. Другими словами, получается, что из максимально возможного числа баллов, которое равно 800, система способна получить примерно 500. Пока что GeoOS успешно справляется только с задачами по планиметрии, усовершенствовать её до стереометрических задач планируется в ближайшие три года. Строгое изложение принципов работы системы приведено в статье (pdf).
Если попробовать проследить процесс решения геометрической задачи, то можно обнаружить, что в процессе анализа чертежа и сопровождающего текста, GeoS строит набор утверждений, «понимая», к примеру, под формулировкой задания «AB is 5» примерно следующее: IsLine(AB) или length(AB)=5. При этом система способна восполнять неявные указания на отношения элементов чертежа в тексте, определяя, что некоторые прямые пересекаются в заданной точке, если это необходимо для решения. Пример чертежа задачи и полученного набора утверждений выглядит следующим образом:
В итоге собственно подсистема решения получает в качестве входных данных примерно следующий «код»:
IsDiameterLineOf(Line($point_0:point,$point_3:point),Circle($point_1:point,$radius_1_0:number)) IsCenterOf($point_1:point,Circle($point_1:point,$radius_1_0:number)) Equals(LengthOf(Line($point_0:point,$point_2:point)),LengthOf(Line($point_0:point,$point_1:point))) PointLiesOnCircle($point_2:point,Circle($point_1:point,$radius_1_0:number)) PointLiesOnCircle($point_3:point,Circle($point_1:point,$radius_1_0:number)) PointLiesOnLine($point_1:point,Line($point_0:point,$point_3:point)) Is(MeasureOf(Angle($point_1:point,$point_2:point,$point_0:point)),$What:number) IsInscribedIn(Triangle($point_3:point,$point_2:point,$point_0:point),Circle($point_1:point,$radius_1_0:number)) PointLiesOnCir
Все материалы, которые использовались при подготовке GeoS, видео, статьи и программное обеспечение с исходниками доступны всем желающим.
Комментарии (12)
yatagarasu
23.09.2015 11:01+3Ждём систему, которая будет понимать технические задания и писать по ним код )
BelBES
23.09.2015 11:18Хм, судя по скриншоту, система переводит условие задачи в листинг на Prolog, который выводит корректный ответ? Т.е. получается, что их ИИ система — это набор необходимых на все случаи жизни предикатов + система для распознавания и семантического анализа текста?
Necrozyablo
23.09.2015 11:49+1Забавно, но пример откровенно слабоват решается за десяток секунд в уме. Вот был бы пример аля сканави под звездочкой, тогда бы было интереснее.
Sychuan
23.09.2015 13:59+6Т.е. для вас не удивительно, что программа смогла просто посмотреть на эту задачу и решить ее? Конечно, это не теорема Ферма, ну так суть была не в создании решателя геометрических задач и доказателя теорем (которые существуют уже лет 50), а в программе, которая может решать задачи, сформулированные для людей.
Necrozyablo
23.09.2015 14:29+1Ну просто программы для решения уравнений же есть. Ну или боты для игр. Я вот писал бота для 3д игры при том что анализ шёл по графике, а не по памяти приложения. И мне как то не особо удивительно видеть такое распознавание. Куда больший интерес для меня представляет решение творчески поставленных задач.
FoxCanFly
23.09.2015 21:25+1Скоро матан-капча будет защищать от школьников намного лучше, чем от роботов
greg_fat
BD = 8 помню ещё школу :)
Undiabler
Правильный ответ обведен в кружочке.