コード例 #1
0
ファイル: cvt_archive_test.py プロジェクト: wx-b/pyribs
def test_custom_centroids(use_kd_tree):
    centroids = np.array([[-0.25, -0.25], [0.25, 0.25]])
    archive = CVTArchive(centroids.shape[0], [(-1, 1), (-1, 1)],
                         custom_centroids=centroids,
                         use_kd_tree=use_kd_tree)
    archive.initialize(solution_dim=3)
    assert archive.samples is None
    assert (archive.centroids == centroids).all()
コード例 #2
0
ファイル: visualize_test.py プロジェクト: wx-b/pyribs
def _cvt_archive():
    """Deterministically created CVTArchive."""
    archive = CVTArchive(100, [(-1, 1), (-1, 1)],
                         samples=1000,
                         use_kd_tree=True,
                         seed=42)
    archive.initialize(solution_dim=2)
    _add_uniform_sphere(archive, (-1, 1), (-1, 1))
    return archive
コード例 #3
0
ファイル: visualize_test.py プロジェクト: wx-b/pyribs
def _long_cvt_archive():
    """Same as above, but the behavior space is longer in one direction."""
    archive = CVTArchive(100, [(-2, 2), (-1, 1)],
                         samples=1000,
                         use_kd_tree=True,
                         seed=42)
    archive.initialize(solution_dim=2)
    _add_uniform_sphere(archive, (-2, 2), (-1, 1))
    return archive
コード例 #4
0
ファイル: cvt_archive_benchmark.py プロジェクト: wx-b/pyribs
    def setup():
        archive = CVTArchive(1000, [(-1, 1), (-1, 1)],
                             samples=20_000,
                             use_kd_tree=use_kd_tree)
        archive.initialize(solutions.shape[1])

        # Let numba compile.
        archive.add(solutions[0], objective_values[0], behavior_values[0])

        return (archive,), {}
コード例 #5
0
ファイル: cvt_archive_benchmark.py プロジェクト: wx-b/pyribs
def benchmark_get_10k_random_elites(use_kd_tree, benchmark, benchmark_data_10k):
    n, solutions, objective_values, behavior_values = benchmark_data_10k
    archive = CVTArchive(1000, [(-1, 1), (-1, 1)],
                         samples=20_000,
                         use_kd_tree=use_kd_tree)
    archive.initialize(solutions.shape[1])
    for i in range(n):
        archive.add(solutions[i], objective_values[i], behavior_values[i])

    @benchmark
    def get_elites():
        for i in range(n):
            sol, obj, beh = archive.get_random_elite()
コード例 #6
0
ファイル: cvt_archive_benchmark.py プロジェクト: wx-b/pyribs
def benchmark_as_pandas_2000_items(benchmark):
    bins = 2000
    archive = CVTArchive(bins, [(-1, 1), (-1, 1)],
                         use_kd_tree=True,
                         samples=50_000)
    archive.initialize(10)

    for x, y in archive.centroids:
        sol = np.random.random(10)
        sol[0] = x
        sol[1] = y
        archive.add(sol, 1.0, np.array([x, y]))

    # Archive should be full.
    assert len(archive.as_pandas()) == bins

    benchmark(archive.as_pandas)
コード例 #7
0
ファイル: cvt_archive_benchmark.py プロジェクト: wx-b/pyribs
 def init():
     archive = CVTArchive(1000, [(-1, 1), (-1, 1)],
                          samples=20_000,
                          use_kd_tree=use_kd_tree)
     archive.initialize(solution_dim=2)
コード例 #8
0
 def setup(bins, use_kd_tree):
     nonlocal archive
     archive = CVTArchive(bins, [(-1, 1), (-1, 1)],
                          custom_centroids=ref_archives[bins].centroids,
                          use_kd_tree=use_kd_tree)
     archive.initialize(solutions.shape[1])