pg.hyper¶
Hyper objects: representing template-based object space.
In PyGlove, an object space is represented by a hyper object, which is an
symbolic object that is placeheld by hyper primitives
(pg.hyper.HyperPrimitive). Through hyper objects, object templates
(pg.hyper.ObjectTemplate) can be obtained to generate objects
based on program genomes (pg.DNA).
Hyper values map 1:1 to genotypes as the following:
Hyper class |
Genotype class |
|---|---|
![digraph hypers {
node [shape="box"];
edge [arrowtail="empty" arrowhead="none" dir="back" style="dashed"];
hyper [label="HyperValue" href="hyper_value.html"];
template [label="ObjectTemplate" href="object_template.html"];
primitive [label="HyperPrimitive" href="hyper_primitive.html"];
choices [label="Choices" href="choices.html"];
oneof [label="OneOf" href="oneof_class.html"];
manyof [label="ManyOf" href="manyof_class.html"];
float [label="Float" href="float.html"];
custom [label="CustomHyper" href="custom_hyper.html"];
evolve [label="Evolvable" href="evolvable.html"];
hyper -> template;
hyper -> primitive;
primitive -> choices;
choices -> oneof;
choices -> manyof;
primitive -> float;
primitive -> custom;
custom -> evolve;
}](../../../_images/graphviz-20bda78a42d62af48fba0f07717d537ec673d8ce.png)