diff --git a/code/python/models/commands-schema.yaml b/code/python/models/commands-schema.yaml index 7e36eab..3ef6114 100644 --- a/code/python/models/commands-schema.yaml +++ b/code/python/models/commands-schema.yaml @@ -150,6 +150,51 @@ components: type: string default: [] # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Algorithm: Random Walk + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CommandRandomWalk: + description: |- + Instructions for execution of random walks to determine local extrema in a fitness landscape + type: object + required: + - name + - algorithm + - landscape + - optimise + properties: + name: + $ref: '#/components/schemas/EnumAlgorithmNames' + algorithm: + $ref: '#/components/schemas/EnumWalkMode' + landscape: + $ref: '#/components/schemas/DataTypeLandscapeGeometry' + optimise: + $ref: '#/components/schemas/EnumOptimiseMode' + annealing: + type: boolean + default: false + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Algorithm: Genetic Algorithm + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CommandGenetic: + description: |- + Instructions for execution of the Genetic algorithm + type: object + required: + - name + - population + properties: + name: + $ref: '#/components/schemas/EnumAlgorithmNames' + population: + type: array + items: + type: array + items: + type: string + minItems: 2 + # maxItems: 2 # FIXME: does not work! + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Algorithm: Euklidean algorithm # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandEuklid: @@ -190,6 +235,44 @@ components: default: 2 minimum: 2 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Data-type Landscape Geometry, Landscape Values + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + DataTypeLandscapeGeometry: + description: |- + Structure for the geometry of a fitness landscape + type: object + required: + - neighbourhoods + - values + properties: + neighbourhoods: + $ref: '#/components/schemas/DataTypeLandscapeNeighbourhoods' + values: + $ref: '#/components/schemas/DataTypeLandscapeValues' + DataTypeLandscapeNeighbourhoods: + description: |- + Options for the definition of discrete neighbourhoods of a fitness landscape + type: object + required: + - metric + properties: + radius: + type: number + minimum: 1 + default: 1 + metric: + $ref: '#/components/schemas/EnumLandscapeMetric' + DataTypeLandscapeValues: + description: |- + A (potentially multi-dimensional) array of values for the fitness landscape. + oneOf: + - type: array + items: + type: number + - type: array + items: + $ref: '#/components/schemas/DataTypeLandscapeValues' + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Enum Algorithm Names # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EnumAlgorithmNames: @@ -201,6 +284,8 @@ components: - TSP - HIRSCHBERG - RUCKSACK + - RANDOM-WALK + - GENETIC - EUKLID - POLLARD-RHO # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -223,3 +308,29 @@ components: enum: - GREEDY - BRANCH-AND-BOUND + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Enum Type of walk mode for fitness walk algorithm + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + EnumWalkMode: + description: |- + Enumeration of walk mode for fitness walk algorithm + - `ADAPTIVE` - points uniformly randomly chosen from nbhd. + - `GRADIENT` - points uniformly randomly chosen amongst points in nbhd with steepest gradient. + - `METROPOLIS` - points uniformly randomly chosen from nbhd. or by entropy. + type: string + enum: + - ADAPTIVE + - GRADIENT + - METROPOLIS + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Enum for metric for neighbourhoods in fitness landscape + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + EnumLandscapeMetric: + description: |- + Enumeration of mode for Rucksack problem + - `MAXIMUM` - `Q` is a neighbour of `P` <==> `max_i d(P_i, Q_i) <= r` + - `MANHATTAN` - `Q` is a neighbour of `P` <==> `sum_i d(P_i, Q_i) <= r` + type: string + enum: + - MAXIMUM + - MANHATTAN diff --git a/code/python/models/config-schema.yaml b/code/python/models/config-schema.yaml index 6383931..5e1d465 100644 --- a/code/python/models/config-schema.yaml +++ b/code/python/models/config-schema.yaml @@ -54,6 +54,8 @@ components: - tarjan - hirschberg - rucksack + - random-walk + - genetic - euklid - pollard-rho properties: @@ -129,6 +131,22 @@ components: items: $ref: '#/components/schemas/EnumRucksackShow' default: [] + random-walk: + type: object + required: + - verbose + properties: + verbose: + type: boolean + default: false + genetic: + type: object + required: + - verbose + properties: + verbose: + type: boolean + default: false euklid: type: object required: