182 lines
5.0 KiB
YAML
182 lines
5.0 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
version: 0.1.0
|
|
title: Schemata for command instructions
|
|
servers:
|
|
- url: "."
|
|
paths: {}
|
|
components:
|
|
schemas:
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Commands
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Commands:
|
|
description: |-
|
|
List of commands to test algorithms/datastructures.
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Command"
|
|
default: []
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Command
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Command:
|
|
description: |-
|
|
Instructions for command to call
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
$ref: '#/components/schemas/EnumAlgorithmNames'
|
|
additionalProperties: true
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Algorithm: Tarjan
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
CommandTarjan:
|
|
description: |-
|
|
Instructions for execution of Tarjan-Algorithm
|
|
type: object
|
|
required:
|
|
- name
|
|
- nodes
|
|
- edges
|
|
properties:
|
|
name:
|
|
$ref: '#/components/schemas/EnumAlgorithmNames'
|
|
nodes:
|
|
type: array
|
|
items:
|
|
anyOf:
|
|
- type: integer
|
|
- type: number
|
|
- type: string
|
|
edges:
|
|
type: array
|
|
items:
|
|
type: array
|
|
minItems: 2
|
|
maxItems: 2
|
|
items:
|
|
anyOf:
|
|
- type: integer
|
|
- type: number
|
|
- type: string
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Algorithm: TSP
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
CommandTsp:
|
|
description: |-
|
|
Instructions for execution of TSP-Algorithm
|
|
type: object
|
|
required:
|
|
- name
|
|
- optimise
|
|
- dist
|
|
properties:
|
|
name:
|
|
$ref: '#/components/schemas/EnumAlgorithmNames'
|
|
dist:
|
|
type: array
|
|
items:
|
|
type: array
|
|
items:
|
|
type: number
|
|
optimise:
|
|
$ref: '#/components/schemas/EnumOptimiseMode'
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Algorithm: Hirschberg
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
CommandHirschberg:
|
|
description: |-
|
|
Instructions for execution of Hirschberg-Algorithm
|
|
type: object
|
|
required:
|
|
- name
|
|
- word1
|
|
- word2
|
|
properties:
|
|
name:
|
|
$ref: '#/components/schemas/EnumAlgorithmNames'
|
|
word1:
|
|
description: Word that gets placed vertically in algorithm.
|
|
type: string
|
|
word2:
|
|
description: Word that gets placed horizontally in algorithm
|
|
type: string
|
|
once:
|
|
type: boolean
|
|
default: false
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Algorithm: Rucksack Branch & Bound
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
CommandRucksack:
|
|
description: |-
|
|
Instructions for execution of Branch & Bound-Algorithm for the Rucksack-Problem
|
|
type: object
|
|
required:
|
|
- algorithm
|
|
- allow-fractional
|
|
- capacity
|
|
- weights
|
|
- values
|
|
properties:
|
|
algorithm:
|
|
$ref: '#/components/schemas/EnumRucksackAlgorithm'
|
|
allow-fractional:
|
|
type: boolean
|
|
default: false
|
|
capacity:
|
|
description: Maximum weight/volumed allowed in rucksack.
|
|
type: number
|
|
minimum: 0
|
|
weights:
|
|
description: Weights or volumes of each item.
|
|
type: array
|
|
items:
|
|
type: number
|
|
exclusiveMinimum: 0
|
|
values:
|
|
description: Value extracted from each item (e.g. monetary).
|
|
type: array
|
|
items:
|
|
type: number
|
|
items:
|
|
description: Optional names of the items (if empty, defaults to 1-based indexes).
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: []
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Enum Algorithm Names
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
EnumAlgorithmNames:
|
|
description: |-
|
|
Enumeration of possible algorithm options.
|
|
type: string
|
|
enum:
|
|
- TARJAN
|
|
- TSP
|
|
- HIRSCHBERG
|
|
- RUCKSACK
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Enum Optimise Mode
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
EnumOptimiseMode:
|
|
description: |-
|
|
Enumeration of optimisation modi.
|
|
type: string
|
|
enum:
|
|
- MIN
|
|
- MAX
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# Enum Rucksack mode for algorithm
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
EnumRucksackAlgorithm:
|
|
description: |-
|
|
Enumeration of mode for Rucksack problem
|
|
type: string
|
|
enum:
|
|
- GREEDY
|
|
- BRANCH-AND-BOUND
|