探索空間API#

Layer 4: Extend Framework

SearchSpace APIは、候補表現と空間固有サービスの公開ファサードです。空間の実装モジュールではなくsaealib.spaceの名前を使います。

空間、サービス、アダプター#

探索空間#

GenomeBatch表現を提供する探索空間です。

saealib.space.SearchSpace

Protocol for an optimization search space.

saealib.space.ServiceRegistry

Registry of services offered by a SearchSpace.

saealib.space.ValidationResult

The result of validating a GenomeBatch against a SearchSpace.

saealib.core.contracts.RepresentationSpec

A concrete representation: a registered kind name plus its parameters.

saealib.space.VectorSpace

A search space for continuous numeric vectors defined by variable bounds.

saealib.space.ObjectSpace

A search space for arbitrary Python objects.

saealib.space.SequenceSpace

A search space for finite-alphabet sequences with a length range.

saealib.space.PermutationSpace

A search space whose genomes are permutations of range(length).

SearchSpaceのサービス#

サンプリング・検証などの探索空間のサービスは、空間が提供する能力です。

saealib.space.GenomeCodec

Service for encoding genomes into persistable primitives and decoding back.

saealib.space.SamplingService

Service for drawing new genomes from a SearchSpace.

saealib.space.ValidationService

Service for checking if genomes are well-formed for a space.

アダプター#

EvaluationAdapterは評価境界に置かれ、GenomeBatchをEvaluationPayloadに変換するアダプターです。FeatureEncoderはsaealib.space.FeatureEncoderとして公開されるアダプターのサブタイプで、GenomeBatchをFeatureBatchに変換し、サロゲートが学習できる特徴量を決めます。SamplingServiceなどの空間能力とは種類が異なります。現在の実装ではSurrogateManager契約がServiceRequirement("FeatureEncoder")を宣言し、VectorSpaceが既定のエンコーダーをサービスとして登録するため、数値ベクトル空間では追加設定なしに解決されます。ObjectSpace、PermutationSpace、SequenceSpaceでは、利用者がFeatureEncoderを提供しない限り解決に失敗します。サロゲートに渡す入力は利用者が決めます。

saealib.space.FeatureEncoder

Service that maps opaque genomes to surrogate feature rows.