Skip to content

Commit

Permalink
Genetic algo refactored, new features added to GUI.
Browse files Browse the repository at this point in the history
  • Loading branch information
Smoren committed Jan 16, 2025
1 parent 1c8d12c commit 4373cf6
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "molecular-ts",
"version": "1.14.0",
"version": "1.15.0",
"private": true,
"scripts": {
"dev": "vite",
Expand All @@ -25,7 +25,7 @@
"bootstrap": "^5.3.3",
"bootstrap-icons": "^1.10.3",
"browser-process": "^0.0.1",
"genetic-search-multiprocess": "^2.2.1",
"genetic-search-multiprocess": "^3.0.0",
"itertools-ts": "^1.29.0",
"mdb-vue-ui-kit": "^4.1.1",
"node-fetch": "^3.3.2",
Expand Down
16 changes: 10 additions & 6 deletions src/lib/genetic/factories.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import type {
GeneticSearchInterface,
GeneticSearchReferenceConfig,
GeneticSearchStrategyConfig,
ComposedGeneticSearchConfig,
} from "genetic-search";
import {
ComposedGeneticSearch,
GeneticSearch,
SimpleMetricsCache,
WeightedAgeAverageMetricsCache,
ReferenceLossFitnessStrategy,
} from "genetic-search";
import type {
GeneticSearchInterface,
GeneticSearchReferenceConfig,
GeneticSearchStrategyConfig,
ComposedGeneticSearchConfig,
DescendingSortingStrategy,
} from "genetic-search";
import type {
ClusterGradeMaximizeConfigFactoryConfig,
Expand Down Expand Up @@ -79,6 +80,7 @@ export function createReferenceSearch(config: ReferenceSearchConfigFactoryConfig
populate: new RandomPopulateStrategy([populateRandomTypesConfig]),
metrics: new ReferenceMultiprocessingMetricsStrategy(config.metricsStrategyConfig),
fitness: new ReferenceLossFitnessStrategy(referenceConfig),
sorting: new DescendingSortingStrategy(),
mutation: new DynamicProbabilityMutationStrategy(config.mutationStrategyConfig.dynamicProbabilities, [mutationRandomTypesConfig]),
crossover: new ComposedCrossoverStrategy([crossoverRandomTypesConfig]),
cache: new SimpleMetricsCache(),
Expand Down Expand Up @@ -151,6 +153,7 @@ export function createReferenceRandomSearch(config: ReferenceRandomSearchConfigF
),
metrics: new ReferenceMultiprocessingMetricsStrategy(config.metricsStrategyConfig),
fitness: new ReferenceLossFitnessStrategy(referenceConfig),
sorting: new DescendingSortingStrategy(),
mutation: new SourceMutationStrategy(config.mutationStrategyConfig.dynamicProbabilities, [mutationRandomTypesConfig], config.sourceTypesConfig),
crossover: new ComposedCrossoverStrategy([crossoverRandomTypesConfig]),
cache: new SimpleMetricsCache(),
Expand All @@ -177,6 +180,7 @@ export function createClusterGradeMaximize(config: ClusterGradeMaximizeConfigFac
populate: new RandomPopulateStrategy(populateRandomTypesConfigCollection),
metrics: new ClusterizationMultiprocessingMetricsStrategy(config.runnerStrategyConfig, config.weightsConfig),
fitness: new ClusterizationFitnessStrategy(config.weightsConfig),
sorting: new DescendingSortingStrategy(),
mutation: createComposedMutationStrategy(config.mutationStrategyConfig, mutationRandomTypesConfigCollection),
crossover: new ClassicCrossoverStrategy(),
cache: config.useConstCache ? new SimpleMetricsCache() : new WeightedAgeAverageMetricsCache(config.genomeAgeWeight),
Expand Down
2 changes: 2 additions & 0 deletions src/web/store/genetic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
GeneticSearch,
Scheduler,
WeightedAgeAverageMetricsCache,
DescendingSortingStrategy,
} from "genetic-search";
import { useConfigStore } from "@/web/store/config";
import {
Expand Down Expand Up @@ -248,6 +249,7 @@ export const useGeneticStore = defineStore("genetic", () => {
populate: new RandomPopulateStrategy(createPopulateRandomTypesConfigCollection()),
metrics: new ClusterizationMetricsStrategy(createMetricsStrategyConfig(), weightsConfigRaw),
fitness: new ClusterizationFitnessStrategy(weightsConfigRaw),
sorting: new DescendingSortingStrategy(),
mutation: createComposedMutationStrategy(createMutationStrategyConfig(), createMutationRandomTypesConfigCollection()),
crossover: new ClassicCrossoverStrategy(),
cache: new WeightedAgeAverageMetricsCache(0.5),
Expand Down

0 comments on commit 4373cf6

Please sign in to comment.