Перейти к содержимому

Симулятор селектора

Слева — P(L) по каждому из 9 микронавыков. Это вероятность того, что ученик владеет соответствующим микронавыком (P(mastered)).

В центре — задача, которую селектор сейчас рекомендует первой. Это top-1 из всех 20 задач, отсортированных по близости расчётной P(solve)P(\text{solve}) к целевой 0.7 (зона ближайшего развития).

Справа — top-3 кандидата с обоснованием: P(solve)P(\text{solve}) задачи (геометрическое среднее по всем её микронавыкам — см. Задачи с несколькими навыками) и отклонение от ZPD-цели 0.7.

Кнопки Решил / Ошибся применяют BKT-обновление к P(L) всех микронавыков выбранной задачи (формула из Шаг за шагом по Байесу) и пересчитывают рекомендации.

Ученик:
Освоенность навыков, P(L)
T1 — на сколько (+/−)0.20
T1 — во сколько раз (×/÷)0.20
T1 — смешанное0.20
T2 — на сколько (+/−) + контекст0.20
T2 — во сколько раз (×/÷) + контекст0.20
T2 — смешанное + контекст0.20
T3 — на сколько (+/−) + 3+ величин0.20
T3 — во сколько раз (×/÷) + 3+ величин0.20
T3 — смешанное + 3+ величин0.20
Текущее задание (top-1)
MD-19 · L3 · P(solve) = 0.34
Второе число в 2 раза больше первого. Третье больше первого на 6. Четвёртое меньше второго на 3.
Эталонное определение
Пусть I число = x
II = 2x
III = x + 6
IV = 2x − 3
Top-3 кандидата
MD-19 · L3P=0.34 · score=0.02
Второе число в 2 раза больше первого.
отклонение от ZPD 0.7: 0.36
MD-20 · L3P=0.34 · score=0.02
Бьянка на 5 лет старше Александры.
отклонение от ZPD 0.7: 0.36
MD-01 · L1P=0.34 · score=0.02
Одно число больше другого на 5.
отклонение от ZPD 0.7: 0.36
  1. Новичок → 5 правильных подряд. Видно, как селектор постепенно поднимает уровень — от T1 к T2 — по мере того, как P(L) базовых навыков растёт.
  2. Силён в +/−, слаб в ×/÷. Геометрическое среднее «тащит вниз» общую P(solve)P(\text{solve}), и селектор избегает задач, где мультипликативный навык один из основных. Топ заполнится задачами T1.add/T2.add — это ожидаемо.
  3. Уверенный T1 → ошибка на T2.add. Видно, как одно ошибочное событие сдвигает рекомендации в ту же ZPD-точку: селектор продолжает работать там, где у ученика «провисло».

BktSimulator (страница Шаг за шагом) учит математике одного микронавыка: один P(L), одна шкала, кнопки «✓/✗» обновляют только её. Это объяснение внутренностей алгоритма.

MatrixSelectorSim — это уже система целиком: 9 P(L) одновременно, 20 задач, ранжирование по ZPD, штраф за повтор недавних задач, геометрическое среднее по микронавыкам. То же самое, что делает web/lib/bkt.ts в API-роуте /api/recommend — только в браузере и без сервера.

  • Per-step ingest. Если бы лист сканировался шагово, ошибка на «вычесть из обеих сторон» обновляла бы только этот микронавык, а не всё «созвездие» задачи. Здесь — только агрегированный исход (решил или нет).
  • Параметры BKT — общие (P(L₀)=0.2, P(T)=0.1, P(S)=0.1, P(G)=0.2). Реальный движок может варьировать их по микронавыку.
  • Усталость. Селектор не знает, что текущая задача — пятая подряд на одном и том же навыке.

Это всё лежит за пределами хакатона, но всё это видно в коде (web/lib/bkt.ts) и обсуждается в разделе Внутри кода.

Companion: MATx. Симулятор выше выбирает defining-микронавык — какую задачу на составление уравнения дать ученику. Решать получившееся уравнение — это уже другой домен (вычисления), и под него есть отдельный инструмент Tom Kabel’я. На странице Мост в MATx — точная карта переходов «после освоения нашей T2.add ученик готов к Tom-овской vorrandid.lihtsad-vorrandid».