Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leo848/jufo2024-backend
Backend für das Jugend forscht-Projekt 2024.
https://github.com/leo848/jufo2024-backend
Last synced: 18 days ago
JSON representation
Backend für das Jugend forscht-Projekt 2024.
- Host: GitHub
- URL: https://github.com/leo848/jufo2024-backend
- Owner: leo848
- License: gpl-3.0
- Created: 2023-12-07T05:46:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-31T11:51:53.000Z (7 months ago)
- Last Synced: 2024-05-31T13:06:27.635Z (7 months ago)
- Language: Rust
- Size: 262 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jufo2024-backend
Dieses Repository enthält den Code für den Backend-Webserver des Jugend forscht-Projekts "sorting the colors: Dimensionsbezogene Generalisierung vergleichsbasierter Sortierung". Der Server ist in [Rust](https://www.rust-lang.org) geschrieben.
## Installation
Um den effizientesten Algorithmus auf der Basis von [ILP](https://de.wikipedia.org/wiki/Ganzzahlige_lineare_Optimierung) auszuführen, wird die [coin-cbc](https://github.com/KardinalAI/coin_cbc/)-Bibliothek vorausgesetzt. Diese kann auf Debian-basierten Systemen wie folgt installiert werden:
```
sudo apt install coinor-libcbc-dev
```Im Anschluss wird dann dieses Projekt heruntergeladen und ausgeführt:
```
git clone https://github.com/leo848/jufo2024-backend
cd jufo2024-backend
cargo run --release
```Auf dem Port 3141 wird ein Webserver gestartet, der einkommende Requests über das Websocket-Protokoll beantwortet. Eine dazugehörige Frontend-Anwendung, [jufo2024-frontend](https://github.com/leo848/jufo2024-frontend), nutzt diesen Server zur Sortierung verschiedener Arten von Objekten.
Für die Nutzung von Word2Vec muss zudem eine binäre Modelldatei heruntergeladen und im neu zu erstellenden Verzeichnis `jufo2024-backend/nlp` als `model.bin` gespeichert werden, ansonten wird bei jeder NLP-Anfrage nur `Unsupported` zurückgegeben. Beispielhafte solche Dateien finden sich unter [vectors.nlpl.eu](https://vectors.nlpl.eu/repository). Die Datei wird dabei vollständig in den Arbeitsspeicher gelesen.
## Funktionen
- Zahlen sortieren
- Algorithmen
- Bubble Sort
- Selection Sort
- Insertion Sort
- Bei jedem Zwischenschritt wird das Ergebnis mitgeteilt
- Zusätzliche Ausgabe der Aktionen des Algorithmus
- Pfad erstellen
- Aus beliebiger Liste von Vektoren oder einer Adjazenzmatrix einen Hamilton-Pfad erstellen
- Algorithmen:
- Zufällig
- Reihenfolge
- Brute Force
- Nächster Nachbar
- Optimal Nearest Neighbor
- Greedy
- Pfad verbessern
- Einen bestehenden Pfad verbessern
- Algorithmen:
- Rotieren
- Inner Rotate
- Swap
- 2-opt
- 3-opt
- Simulated Annealing