Skip to content

Commit 8534239

Browse files
fix(envs): use uniform random range for complex/binomial params
- I think having a fix hyperparam per difficulty is leading to less dynamic envs.
1 parent 622cdfd commit 8534239

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

libraries/mathy_python/mathy/envs/binomial_distribute.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
from typing import Any, List, Optional, Type
22

3-
from .. import time_step
3+
from numpy.random import randint, uniform
44

5-
from ..core.rule import BaseRule
5+
from .. import time_step
66
from ..core.expressions import MathExpression
7-
from ..util import get_terms, has_like_terms, is_preferred_term_form
7+
from ..core.rule import BaseRule
88
from ..env import MathyEnv, MathyEnvProblem
9-
from ..problems import gen_binomial_times_binomial, gen_binomial_times_monomial, rand_bool
9+
from ..problems import (
10+
gen_binomial_times_binomial,
11+
gen_binomial_times_monomial,
12+
rand_bool,
13+
)
1014
from ..rules import (
11-
ConstantsSimplifyRule,
1215
CommutativeSwapRule,
16+
ConstantsSimplifyRule,
1317
DistributiveMultiplyRule,
1418
VariableMultiplyRule,
1519
)
1620
from ..state import MathyEnvState, MathyObservation
1721
from ..types import MathyEnvDifficulty, MathyEnvProblemArgs
22+
from ..util import get_terms, has_like_terms, is_preferred_term_form
1823

1924

2025
class BinomialDistribute(MathyEnv):
@@ -59,23 +64,23 @@ def problem_fn(self, params: MathyEnvProblemArgs) -> MathyEnvProblem:
5964
text, complexity = gen_binomial_times_binomial(
6065
min_vars=2,
6166
max_vars=3,
62-
powers_probability=0.1,
63-
like_variables_probability=0.5,
67+
powers_probability=uniform(0.1, 0.4),
68+
like_variables_probability=uniform(0.3, 0.7),
6469
)
6570
elif params.difficulty == MathyEnvDifficulty.normal:
6671
text, complexity = gen_binomial_times_binomial(
6772
min_vars=2,
6873
max_vars=2,
69-
powers_probability=0.4,
70-
like_variables_probability=0.2,
74+
powers_probability=uniform(0.2, 0.6),
75+
like_variables_probability=uniform(0.2, 0.5),
7176
)
7277
elif params.difficulty == MathyEnvDifficulty.hard:
7378
text, complexity = gen_binomial_times_binomial(
7479
min_vars=2,
7580
max_vars=3,
7681
simple_variables=False,
77-
powers_probability=0.8,
78-
like_variables_probability=0.8,
82+
powers_probability=uniform(0.4, 0.8),
83+
like_variables_probability=uniform(0.1, 0.3),
7984
)
8085
complexity += 2
8186
else:

libraries/mathy_python/mathy/envs/complex_simplify.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ def problem_fn(self, params: MathyEnvProblemArgs) -> MathyEnvProblem:
4444
op="*",
4545
optional_var=True,
4646
inner_terms_scaling=scaling,
47-
powers_probability=0.4,
48-
noise_probability=0.2,
47+
powers_probability=uniform(0.2, 0.5),
48+
noise_probability=uniform(0.2, 0.5),
4949
)
5050
elif params.difficulty == MathyEnvDifficulty.normal:
5151
num_terms = randint(3, 6)
@@ -55,16 +55,16 @@ def problem_fn(self, params: MathyEnvProblemArgs) -> MathyEnvProblem:
5555
op="*",
5656
optional_var=True,
5757
inner_terms_scaling=scaling,
58-
powers_probability=0.6,
58+
powers_probability=uniform(0.4, 0.7),
5959
)
6060
elif params.difficulty == MathyEnvDifficulty.hard:
6161
num_terms = randint(4, 8)
6262
scaling = uniform(0.2, 0.6)
6363
text, complexity = gen_simplify_multiple_terms(
6464
num_terms,
6565
op="*",
66-
shuffle_probability=0.5,
67-
powers_probability=0.8,
66+
shuffle_probability=uniform(0.3, 0.8),
67+
powers_probability=uniform(0.4, 0.9),
6868
inner_terms_scaling=scaling,
6969
)
7070
else:

0 commit comments

Comments
 (0)