File size: 1,254 Bytes
877add7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""Curriculum helpers."""

from __future__ import annotations

from app.common.enums import Difficulty, SubEnvironment


def pick_difficulty(episode_index: int) -> Difficulty:
    if episode_index < 20:
        return Difficulty.EASY
    if episode_index < 40:
        return Difficulty.MEDIUM
    return Difficulty.HARD


def pick_sub_environment(episode_index: int, difficulty: Difficulty) -> SubEnvironment:
    # Curriculum starts in DDI/risk-heavy cases then introduces bandits/dosing.
    if difficulty == Difficulty.EASY:
        return SubEnvironment.DDI if episode_index % 2 == 0 else SubEnvironment.REGIMEN_RISK
    if difficulty == Difficulty.MEDIUM:
        if episode_index % 4 == 0:
            return SubEnvironment.BANDIT_MINING
        if episode_index % 4 == 1:
            return SubEnvironment.ALTERNATIVE_SUGGESTION
        return SubEnvironment.REGIMEN_RISK
    if episode_index % 5 == 0:
        return SubEnvironment.PRECISION_DOSING
    if episode_index % 5 == 1:
        return SubEnvironment.LONGITUDINAL_DEPRESCRIBING
    if episode_index % 5 == 2:
        return SubEnvironment.WEB_SEARCH_MISSING_DATA
    if episode_index % 5 == 3:
        return SubEnvironment.NEW_DRUG_DECOMPOSITION
    return SubEnvironment.REGIMEN_RISK