Группа учёных из Института искусственного интеллекта Пола Аллена и Вашингтонского университета объявила о создании системы искусственного интеллекта под названием GeoS, которая в состоянии сдать американский SAT-тест по геометрии на уровне среднего ученика 11 класса. Причём речь идёт не о том, что задания необходимо каким-то специальным образом подготовить и ввести в компьютер в виде какой-то схемы: GeoS использует компьютерное зрение для анализа чертежей и систему обработки обычного текста для «понимания» сути задачи. Пример того, как ИИ справляется с решением задачи о вписанном в окружность треугольнике (и 4 другие задачи) можно посмотреть здесь.

Процент задач, с которыми справляется система и считает решение надёжным, составляет 96%. При этом, решая официальный SAT-тест, GeoS демонстрирует точность, равную 49%. Другими словами, получается, что из максимально возможного числа баллов, которое равно 800, система способна получить примерно 500. Пока что GeoOS успешно справляется только с задачами по планиметрии, усовершенствовать её до стереометрических задач планируется в ближайшие три года. Строгое изложение принципов работы системы приведено в статье (pdf).

Если попробовать проследить процесс решения геометрической задачи, то можно обнаружить, что в процессе анализа чертежа и сопровождающего текста, GeoS строит набор утверждений, «понимая», к примеру, под формулировкой задания «AB is 5» примерно следующее: IsLine(AB) или length(AB)=5. При этом система способна восполнять неявные указания на отношения элементов чертежа в тексте, определяя, что некоторые прямые пересекаются в заданной точке, если это необходимо для решения. Пример чертежа задачи и полученного набора утверждений выглядит следующим образом:

image

В итоге собственно подсистема решения получает в качестве входных данных примерно следующий «код»:

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)


  1. greg_fat
    22.09.2015 22:26

    BD = 8 помню ещё школу :)


    1. Undiabler
      23.09.2015 00:50
      +10

      Правильный ответ обведен в кружочке.


  1. Panda_sama
    23.09.2015 08:35
    +8

    слабовато что-то для 11-то класса


    1. Vindicar
      23.09.2015 09:55
      +3

      Может задания идут в порядке нарастающей сложности, и это одно из первых? Тут без опыта не угадать.


      1. Loki3000
        23.09.2015 10:04
        +2

        Или это итоговый тест, по материалам нескольких последних лет…


  1. yatagarasu
    23.09.2015 11:01
    +3

    Ждём систему, которая будет понимать технические задания и писать по ним код )


  1. BelBES
    23.09.2015 11:18

    Хм, судя по скриншоту, система переводит условие задачи в листинг на Prolog, который выводит корректный ответ? Т.е. получается, что их ИИ система — это набор необходимых на все случаи жизни предикатов + система для распознавания и семантического анализа текста?


  1. Necrozyablo
    23.09.2015 11:49
    +1

    Забавно, но пример откровенно слабоват решается за десяток секунд в уме. Вот был бы пример аля сканави под звездочкой, тогда бы было интереснее.


    1. Sychuan
      23.09.2015 13:59
      +6

      Т.е. для вас не удивительно, что программа смогла просто посмотреть на эту задачу и решить ее? Конечно, это не теорема Ферма, ну так суть была не в создании решателя геометрических задач и доказателя теорем (которые существуют уже лет 50), а в программе, которая может решать задачи, сформулированные для людей.


      1. Necrozyablo
        23.09.2015 14:29
        +1

        Ну просто программы для решения уравнений же есть. Ну или боты для игр. Я вот писал бота для 3д игры при том что анализ шёл по графике, а не по памяти приложения. И мне как то не особо удивительно видеть такое распознавание. Куда больший интерес для меня представляет решение творчески поставленных задач.


  1. Infthi
    23.09.2015 16:25

    Если пошариться по сайту, можно найти форму, куда можно залить картинку и текст задачи, и скормить решалке.
    Картинки она парсит плохо. просит помочь распознать буквы вручную, решалка сама по себе отдаёт internal server error.
    Надо будет поиграться через пару дней


  1. FoxCanFly
    23.09.2015 21:25
    +1

    Скоро матан-капча будет защищать от школьников намного лучше, чем от роботов