Heuristics
Heuristics that allows to find new potential auxiliary points in a problem.
- class HeuristicName(*values)
Bases:
str
,Enum
- LINE_INTERSECTIONS = 'line_intersections'
- CENTERS = 'centers'
- ANGLE_VERTICES = 'angle_vertices'
- MIDPOINT = 'midpoint'
- EQDISTANCE = 'eqdistance'
- FOOT = 'foot'
- REFLECT_ON_CENTER = 'reflect_on_center'
- THREE_CIRCUMCIRCLES_FOR_EQANGLE_GOAL = 'three_circumcircles_for_eqangle_goal'
- class Heuristic
Bases:
ABC
- abstractmethod new_clauses(setup, max_new_points, rng)
Find new clauses to add to the problem by applying the heuristic.
- Return type:
list
[JGEXClause
]
- class HeuristicSetup(**data)
Bases:
BaseModel
Problem given to a heuristic to deduce new JGEX clauses.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
points:
tuple
[NewType
(PredicateArgument
,str
),...
]
-
free_points:
tuple
[NewType
(PredicateArgument
,str
),...
]
-
lines:
tuple
[LineHeuristic
,...
]
-
circles:
tuple
[CircleHeuristic
,...
]
-
angles:
tuple
[AngleHeuristic
,...
]
-
goals:
tuple
[PredicateConstruction
,...
]