Successfully reported this slideshow.                            Upcoming SlideShare
×

# К автоматизированной проверке решений некоторого класса задач

287 views

Published on

Слайды для внутреннего семинара ИПУ РАН

• Full Name
Comment goes here.

Are you sure you want to Yes No • Be the first to comment

• Be the first to like this

### К автоматизированной проверке решений некоторого класса задач

1. 1. К автоматизированной проверке решений некоторого класса задач Наталия Смирнова
2. 2. Структура доклада • Постановка задачи • Алгоритм Andes Physics Tutor • Алгоритм ИОС «Волга» • Выводы. Дальнейшая работа 2
3. 3. Структура доклада Постановка задачи 3
4. 4. Предположения и ограничения Используются только Используются только обозначения системы! обозначения системы! Только формулы, Только формулы, которые могут быть которые могут быть проверены без проверены без обращения к другим обращения к другим формулам! формулам! LaTeX-подобный LaTeX-подобный синтаксис синтаксис 4
5. 5. Этапы проверки шага решения Верификация шага Расчет прогресса в решении Сообщение о статусе шага ? Вопрос к студенту 5 Обновление инф. В БД (для подсказок и оценки за задачу)
6. 6. Верификация шага: примерный алгоритм Пусть студент ввел шаг: z=1+y В шаг подставляются известные системе значения переменных: 5=1+4 Полученное выражение упрощается и сравнивается с 0: if simplify(5 – (1 + 4)) == 0: //студент ввел правильный шаг решения …
7. 7. Верификация шага: библиотеки Для упрощения выражений можно использовать библиотеку SymPy: 7
8. 8. Измерение прогресса в решении Измерение прогресса в решении – нетривиальная проблема. «Наивный» способ не годится: даже для самой простой задачи требуется внести слишком много формул Ре и решений. ш шаг решения студента ен Эт ие ап 1 Эт 1 а … п2 Эт а пm 8 Image courtesy of Keattikorn at FreeDigitalPhotos.net
9. 9. Измерение прогресса в решении: пример Задача: вычислить расстояние между векторами a иb Возможные решения генерируются на основе формул: 9 Пусть студент ввел формулу:
10. 10. Измерение прогресса в решении: пример Очевидно, что формула на основе формул (1) и (3) Т.е. прогресс студента = 2/6 = 33% 10 получена
11. 11. Структура доклада Алгоритм выявления зависимостей между формулами в Andes Physics Tutor 11
12. 12. Измерение прогресса в решении в Andes Physics Tutor Одна из систем: 12
13. 13. Измерение прогресса в решении в Andes Physics Tutor: недостатки Непонятно, как обрабатывать формулы с векторами и матрицами типа Не защищен от имитации правильно введенных шагов решения: для него это одно и то же Имитации: 13 Правильный шаг:
14. 14. Структура доклада Предлагаемый алгоритм выявления зависимостей между формулами 14
15. 15. Измерение прогресса в решении в ИОС «Волга»: данные об известных решениях учебной задачи 15
16. 16. Измерение прогресса в решении в ИОС «Волга»: генерация решений Искомый объект: p(a,b), данные величины: a1, a2, b1, b2, векторы: c, a, b p(a,b) c |c| (c,c) c1 16 b a a1 a2 b1 b2 c2 Часть решения 1 [0, 1, 2] [‘p(a,b)’, ’|c|’, ’(c,c)’] Часть решения 2 [3, 5, 6] [‘с’, ’a’, ’b’]
17. 17. Измерение прогресса в решении в ИОС «Волга»: генерация выражений по решению Пусть обучаемый ввел формулу p(a,b) = sqrt{c_1^2+c_2^2} Часть решения 1 [0, 1, 2] [‘p(a,b)’, ’|c|’, ’(c,c)’] Извлекаем: Nl = {p(a,b)}, Nr = {c_1, c_2} 1. Ищем часть решения, у которой в списке целевых величин есть p(a,b) и запоминаем индекс p(a,b) 2. ФОРМИРУЕМ выражение, перебирая отношения вычислимости в решении НАЧИНАЯ с указанного индекса ТЕКУЩЕЕ СОСТОЯНИЕ Si : выражение (строка), Ni – обозначения в правой части выражения, U – использованные отношения вычислимости УСЛОВИЕ ОСТАНОВКИ: 17 ИЛИ достигнут конец решения
18. 18. Измерение прогресса в решении в ИОС «Волга»: проверка шага решения обучаемого Пусть обучаемый ввел формулу p(a,b) = sqrt{c_1^2+c_2^2} Часть решения 1 [0, 1, 2] [‘p(a,b)’, ’|c|’, ’(c,c)’] Извлекаем: Nl = {p(a,b)}, Nr = {c_1, c_2} 1. Индекс p(a,b) = 0 2. S0 = {expression: ‘p(a,b)=|c|’, Ni : [‘|c|’], U: } 3. S1 = {expression: ‘p(a,b)=sqrt{(c,c)}’, Ni : [‘(c,c)’], U: [0,1]} 4. S2 = {expression: ‘p(a,b)=sqrt{c_1^2+c_2^2}’, Ni : [‘c_1, c_2’], U: [0,1,2]} Достигнут конец решения и В expression заменяются все обозначения, кроме тех, которые не присутствуют в Nr. Формула, введенная обучаемым, эквивалентна expression 18 Обучаемый ввел правильный шаг. Прогресс вычисляется на основе U
19. 19. Измерение прогресса в решении в ИОС «Волга»: генерация выражений: дополнительная эвристика Пусть обучаемый ввел формулу p(a,b) = sqrt{(a_1-b_1)^2+(a_2-b_2)^2} Получим: S2 = {expression: ‘p(a,b)=sqrt{c_1^2+c_2^2}’, Ni : [‘c_1, c_2’], U: [0,1,2]} Если достигнут конец выражения, но не вып. 1.Проверяем, не являются ли обозначения из Ni координатами какого-либо вектора x (в базе знаний имеются сведения типа vectors = [x,y,z], отношения вычислимости с формулами типа ‘x=[x_1;x_2]’) Если являются, то 2. генерируем выражения для x уже описанным способом 3. сопоставляем(унифицируем) определение вектора (выражение типа ‘x=[x_1;x_2’] со сгенерированными выражениями типа ‘x=[f(…),g(…)]’) 4. Si переходит в Si+1 путем замены в expression обозначений из Ni на найденные подстановки из шага 2, U = U + номера отношений из шага 2 19
20. 20. Измерение прогресса в решении в ИОС «Волга»: проверка шага решения обучаемого Пусть обучаемый ввел формулу p(a,b) = sqrt{(a_1-b_1)^2+(a_2-b_2)^2} Получим: S2 = {expression: ‘p(a,b)=sqrt{c_1^2+c_2^2}’, Ni : [‘c_1, c_2’], U: [0,1,2]} 1.Узнаем, что c_1, c_2 являются координатами вектора c. 2. Генерируем выражения для c, получаем ‘c=([a_1;a_2])-([b_1;b_2])’, U=[3,5,6] 3. унифицируем ‘c=([a_1;a_2])-([b_1;b_2])’ и ‘с=[c_1;c_2]’. Получаем: {‘c_1’: ‘a_1 – b_1’, ‘c_2’: ‘a_2 – b_2’} 4. Получаем: S3 = {expression: ‘p(a,b)=sqrt{(a_1 – b_1)^2+(a_2 – b_2)^2}’, Ni : [‘a_1, a_2’, ‘b_1’, ‘b_2’], U: [0,1,2, 3, 5, 6]} 20
21. 21. Измерение прогресса в решении в ИОС «Волга»: выявление имитаций Пусть обучаемый ввел формулу: Система сгенерирует эквивалентное выражение (точно такое же). Не имитация. 21
22. 22. Измерение прогресса в решении в ИОС «Волга»: выявление имитаций Пусть обучаемый ввел формулу: Система сгенерирует выражение Выражения не эквивалентны. Подозрительный шаг. 22
23. 23. Измерение прогресса в решении в ИОС «Волга»: выявление имитаций Пусть обучаемый ввел формулу: Система сгенерирует выражение Выражения эквивалентны. Имитация, которая не выявляется. 23
24. 24. Измерение прогресса: остальные случаи • Среди преподавателей нет согласия о том, чем должен заниматься студент: выводом формул или арифметикой • Всегда найдутся неординарные студенты Надо учиться обрабатывать разные «не идеальные» случаи: (1-3)^2+(2-4)^2=8 -4=1-5 24 x_a*x_b+y_a*y_b =3*7+4*8 c_1*c_2=4
25. 25. Выводы 25
26. 26. Выводы •Необходимо рассмотреть и другие крайние случаи видов вводимых студентами формул •… другие задачи, не только по линейной алгебре •Не стоит забывать об ограничениях и оставлять студенту возможность для «жалобы» на систему 26
27. 27. Использованные источники и полезные ссылки Слайд 7 http://sympy.org/ru/index.html Слайд 12 Shapiro J.A. An Algebra SubSystem for Diagnosing Students’ Input in a Physics Tutoring System. http://www.physics.rutgers.edu/~shapiro/tutor/submission3.pdf Слайд 15-23 https://github.com/indra-uolles/solution_tracer 27
28. 28. Спасибо за внимание! Наталия Смирнова, н.с. лаб. 17 ИПУ РАН smirnovanatalia2008@gmail.com 28