saealib.Archive#
- class saealib.Archive(attrs, init_capacity=100, key_attr='x', atol=<object object>, rtol=<object object>, duplicate_policy='keep_first', genomes=None, dense_numeric_view=None, dense_view=None, services=None, space=None, fingerprint_service=None, equivalence_service=None, distance_service=None, **kwargs)[ソース]#
ベースクラス:
ArchiveMixin,PopulationConcrete archive combining
ArchiveMixinwithPopulation.Its constructor is inherited from
ArchiveMixin.- パラメータ:
attrs (list[PopulationAttribute])
init_capacity (int)
key_attr (str)
atol (float | object)
rtol (float | object)
duplicate_policy (str)
genomes (GenomeBatch | None)
dense_numeric_view (DenseNumericView | None)
dense_view (DenseNumericView | None)
services (Any | None)
space (Any | None)
fingerprint_service (FingerprintService | None)
equivalence_service (EquivalenceService | None)
distance_service (DistanceService | None)
Methods
Initialize archive storage and duplicate-resolution services. |
|
Add a solution according to the configured duplicate policy. |
|
Append one candidate. |
|
Return row indices that order a named column. |
|
Clear rows and invalidate identity/neighbor caches. |
|
Delete candidates selected by |
|
Create an empty archive while retaining resolved identity services. |
|
Extend the archive with another candidate collection. |
|
Return a new population containing rows selected by |
|
Get the array of a specific attribute. |
|
Return a read-only view of the active rows in a named column. |
|
Return a cached value without changing population state. |
|
Get k-nearest neighbors of the given solution from the archive. |
|
Mark population structure as changed and invalidate cached results. |
|
Invalidate the kNN cache on every value-only mutation, too. |
|
Reorder rows according to a complete row permutation. |
|
Store a value in the population cache without changing its version. |
|
Keep the first |
|
Update array in place and bump the value version. |
|
Atomically update multiple columns for the given rows. |
Method Details
- Archive.__init__(attrs, init_capacity=100, key_attr='x', atol=<object object>, rtol=<object object>, duplicate_policy='keep_first', genomes=None, dense_numeric_view=None, dense_view=None, services=None, space=None, fingerprint_service=None, equivalence_service=None, distance_service=None, **kwargs)#
Initialize archive storage and duplicate-resolution services.
- パラメータ:
attrs (list of PopulationAttribute) -- Column definitions for archive rows. With
duplicate_policy="append", the schema must contain scalarint64columns namedidandrequest_id.init_capacity (int, optional) -- Initial row-storage capacity passed to
Population.key_attr (str, optional) -- Schema column used by compatibility duplicate detection. In a service-backed archive,
"x"may also provide the dense genome used to resolve an incoming candidate.atol (float, optional) -- Explicit absolute-tolerance override. When omitted, the archive uses the equivalence service's tolerance when applicable, or zero for exact matching.
rtol (float, optional) -- Explicit relative-tolerance override, with the same resolution rules as
atol.duplicate_policy ({"keep_first", "replace", "append"}, optional) -- Action for a duplicate candidate.
"keep_first"leaves the existing row unchanged,"replace"updates the existing row, and"append"retains every observation while requiring the observation schema described forattrs.genomes (GenomeBatch or None, optional) -- Initial opaque genome batch passed to
Population.dense_numeric_view (DenseNumericView or None, optional) -- Service used when archive operations need dense coordinates for a non-dense genome representation.
dense_view (DenseNumericView or None, optional) -- Compatibility alias for
dense_numeric_view.services (object or None, optional) -- Service provider or registry used when
spaceis not supplied. Explicit service arguments take precedence over services resolved from this provider.space (object or None, optional) -- Search-space or service provider. When supplied, it takes precedence over
servicesand itsservicesregistry is queried for omitted service arguments.fingerprint_service (FingerprintService or None, optional) -- Explicit service for exact identity lookup of opaque genomes.
equivalence_service (EquivalenceService or None, optional) -- Explicit service for tolerance-based identity lookup of opaque genomes.
distance_service (DistanceService or None, optional) -- Explicit service for nearest-neighbor queries on opaque genomes.
**kwargs (Any) -- Additional constructor keywords accepted for population compatibility.
- 例外:
ValueError -- If
duplicate_policyis unknown or a compatibilitykey_attris absent from the schema.ValidationError -- If an append archive has an invalid observation schema, or if service-backed duplicate detection lacks its required identity service.
- Archive.add(element=None, **kwargs)#
Add a solution according to the configured duplicate policy.
- パラメータ:
element (Individual | dict | None) -- Data for the additional individual
**kwargs -- Set attribute values individually and add them. Alternatively, overwrite based on the element's value and add it.
self (Any)
- 戻り値:
idx -- Index of the retained or newly added row.
- 戻り値の型:
int
メモ
"keep_first"returns the existing row for a duplicate,"replace"updates or replaces that row, and"append"retains every observation subject to its ID and request-ID constraints.サンプル
>>> arcv.add(ind) >>> arcv.add({"x": x_val}) >>> arcv.add(x=x_val, f=0.1) >>> arcv.add(ind, f=0.1)
- Archive.append(element=None, **kwargs)#
Append one candidate.
- パラメータ:
element (Individual-like object, dict, or None) -- Candidate values read from an individual or mapping. Values passed through
kwargstake precedence over values fromelement.**kwargs (Any) -- Column values to assign.
genomeorgenomessupplies the single genome required by a non-dense genome representation.
- 例外:
ValidationError -- If an explicit candidate ID other than the unassigned
-1sentinel is supplied, or if a custom genome representation does not receive exactly one genome.- 戻り値の型:
None
メモ
The population grows its storage as needed. Appending invalidates cached values and structure-dependent views.
- Archive.argsort(name, reverse=False)#
Return row indices that order a named column.
- パラメータ:
name (str) -- Name of a column in the population schema.
reverse (bool, optional) -- If true, return the indices in descending rather than ascending column order.
- 戻り値:
Indices for the active rows in sorted order. The population is not mutated.
- 戻り値の型:
ndarray of int
- 例外:
KeyError -- If
nameis not present in the population schema.
- Archive.clear()#
Clear rows and invalidate identity/neighbor caches.
- 戻り値の型:
None
- Archive.delete(index)#
Delete candidates selected by
indexin place.- パラメータ:
index (int, slice, list of int, or ndarray) -- Row index or indices to remove from the active archive.
メモ
Surviving rows retain their relative order. The operation invalidates the archive's identity and nearest-neighbor caches.
- Archive.empty_like(capacity=None)#
Create an empty archive while retaining resolved identity services.
- パラメータ:
capacity (int or None, optional) -- Storage capacity for the new archive. If omitted, the current capacity is reused.
self (Any)
- 戻り値:
An empty archive of the same concrete type and schema with independent row storage and the same identity services.
- 戻り値の型:
- Archive.extend(other)#
Extend the archive with another candidate collection.
- パラメータ:
other (Population or dict) -- Source population or column-data mapping accepted by
Population.extend().- 戻り値の型:
None
メモ
The operation invalidates the archive's identity and nearest-neighbor caches after copying the source rows.
- Archive.extract(indices)#
Return a new population containing rows selected by
indices.- パラメータ:
indices (ndarray, list of int, or slice) -- Indices into the active rows. Rows appear in the requested order; a slice follows normal Python slicing semantics.
- 戻り値:
A new population of the same concrete type, schema, and genome representation. Row and genome data have independent storage, and the source population is unchanged.
- 戻り値の型:
- Archive.get(key, default=None)#
Get the array of a specific attribute.
- パラメータ:
key (str) -- The attribute name to get the array for.
default (any, optional) -- Returned when the key is absent. Defaults to
None.
- 戻り値:
The attribute array if
keyexists, otherwisedefault.- 戻り値の型:
np.ndarray or default
- Archive.get_array(key)#
Return a read-only view of the active rows in a named column.
- パラメータ:
key (str) -- Column name. For
"x", the value is obtained through the configuredDenseNumericViewunless this is a legacy scalar-x population.- 戻り値:
A non-writeable view covering the active rows of the column. The returned array for stored columns shares backing storage rather than being an owned copy;
"x"uses the service-provided view.- 戻り値の型:
np.ndarray
- 例外:
KeyError -- If
keyis not a stored non-genome column.AttributeError -- If
keyis"x"and the requiredDenseNumericViewis unavailable or reports that it cannot provide a view.
メモ
The population is not modified by this method. Mutating the returned view raises
ValueError; useupdate_array()orupdate_rows()so value versions and caches remain synchronized.
- Archive.get_cache(key)#
Return a cached value without changing population state.
- パラメータ:
key (Hashable) -- Cache key to look up.
- 戻り値:
The cached value, or
Nonewhen no value is stored forkey. A cachedNoneis therefore indistinguishable from a missing key through this method.- 戻り値の型:
Any or None
- 例外:
TypeError -- If
keyis not hashable.
メモ
Cached values are removed when the population is modified through
mod_value()ormod_structure().
- Archive.get_knn(x, k)#
Get k-nearest neighbors of the given solution from the archive.
- パラメータ:
x (np.ndarray) -- The solution to find neighbors for.
k (int) -- The number of neighbors to retrieve.
- 戻り値:
Indices and distances of the k-nearest neighbors.
- 戻り値の型:
tuple[np.ndarray, np.ndarray]
- Archive.mod_structure()#
Mark population structure as changed and invalidate cached results.
- 戻り値の型:
None
- Archive.mod_value()#
Invalidate the kNN cache on every value-only mutation, too.
- 戻り値の型:
None
- Archive.reorder(order)#
Reorder rows according to a complete row permutation.
- パラメータ:
order (ndarray of int) -- Permutation containing one row index for every active candidate.
- 例外:
ValueError -- If
orderdoes not contain one entry per active row.- 戻り値の型:
None
メモ
Reordering is in place and invalidates caches whose values are row-indexed.
- Archive.set_cache(key, value)#
Store a value in the population cache without changing its version.
- パラメータ:
key (Hashable) -- Cache key. An existing value for the key is replaced.
value (Any) -- Value to retain until the population is modified.
- 例外:
TypeError -- If
keyis not hashable.- 戻り値の型:
None
メモ
The cache is cleared by
mod_value()andmod_structure(). Storing a value replaces only the entry forkey; it does not clear other cached entries or bump the population's value or structure version.
- Archive.truncate(new_size)#
Keep the first
new_sizerows in place.- パラメータ:
new_size (int) -- Number of rows to retain.
- 例外:
ValueError -- If
new_sizeis negative.- 戻り値の型:
None
メモ
Truncation invalidates the archive's identity and nearest-neighbor caches.
- Archive.update_array(key, value)#
Update array in place and bump the value version.
- パラメータ:
key (str)
value (Any)
- 戻り値の型:
None
- Archive.update_rows(indices, values, genome=None)#
Atomically update multiple columns for the given rows.
Validates every index and value before mutating any backing storage, so a validation failure never leaves a partial update applied. Bumps the value version exactly once for a non-empty update; an update with empty
indicesor an emptyvaluesmapping is a no-op and does NOT bump the version.- パラメータ:
indices (np.ndarray | list[int]) -- Row indices to update. Must be 1-D, integer dtype, within
[0, len(self)), and free of duplicates.values (dict[str, np.ndarray]) -- Mapping of column name to the new values for those rows. Each value array must match shape
(len(indices), *schema[key].shape)and dtypeschema[key].dtypeexactly.genome (GenomeBatch | ndarray | None)
- 例外:
ValidationError -- If
indicesis invalid (wrong dtype/ndim, out of range, or contains duplicates), if a key invaluesis unknown (or is"id"), or if a value array's shape/dtype does not match the schema exactly.- 戻り値の型:
None