Using ampl to calculate the best possible soylent recipe from a database of possible ingredients
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Wurzelkoch d505ff812a Mehr Zutaten 1 year ago
Preisliste_raw.csv Initial commit 2 years ago
README.md Andere penalty Gewichtung 1 year ago
Rezept-ampl.csv läuft mit Alnatura 1 year ago
Rezept-b3yond.csv Dateinamen geändert 2 years ago
Rezept-pool.ods OR skaliert 1 year ago
Rezept.dat Altes Rezept als Vergleichswert (ref) 1 year ago
Rezept.mod reconstructing units 1 year ago
Soll.csv läuft mit Alnatura 1 year ago
Soll.ods Initial commit 2 years ago
ampl-folien.pdf ampl Anleitung 1 year ago
config.dat reconstructing units 1 year ago
data_brands.csv Initial commit 2 years ago
data_raw.csv Initial commit 2 years ago
grenzen-orig.dat reconstructing units 1 year ago
grenzen-slightly-randomized.dat Mehr Zutaten 1 year ago
grenzen-working.dat OR skaliert 1 year ago
grenzen.dat Interessantes Rezept 1 year ago
main.ampl reconstructing units 1 year ago
preise.csv aufräumen 1 year ago
preise.dat reconstructing units 1 year ago
ref.dat Altes Rezept als Vergleichswert (ref) 1 year ago
title.csv Initial commit 2 years ago
werte.csv OR skaliert 1 year ago
werte.dat OR skaliert 1 year ago
zutaten.csv läuft mit Alnatura 1 year ago
zutaten.dat Mehr Zutaten 1 year ago

README.md

SoylentCalculator

run

  1. Besorge dir ampl von: https://ampl.com/try-ampl/download-a-free-demo/#linux
  2. Starte in der Konsole ampl.linux64/ampl
  3. Eingabe include main.ampl;
  4. Es werden die Einkaufsmengen in g bzw. Stück (bei Vitaminpillen), die Gesamtmasse in g und der Kaufpreis in Euro jeweiln für eine Tagesration angezeigt. Andere berechnete Werte können mit display variable; angezeigt werden.

neue Zutaten eintragen

  1. Es wird immer die Datei Rezept-pool.ods geändert.
  • neue Zutaten müssen manuell mit exakt gleichem Namen in die Tabellen "data_raw" und "preise", sowie in die Datei "zutaten.dat" eingetragen werden.
  • Nährwerte manuell in "data_raw" eintragen, sie werden automatisch in "Nährwerte bereinigt" übertragen.
  • evtl. muss die Anzahl von übertragenen Zeilen in letzterer Tabelle angepasst werden.
  1. Die Tabelle "Nährwerte bereinigt" als "werte.csv" abspeichern, mit Leerzeichen als Spaltentrenner. Ebenso die Tabelle "Preise" als "preise.csv".
  2. Entferne in den genannten csv-Dateien die erste Zeile und ändere die Dateiendung in .dat
  3. Führe "sed -i -r -e s/<[0-9.]*/0/g werte.dat" aus
  4. Jetzt müsste das Programm wie oben laufen.

Neue Constraints, zu berücksichtigende Nährwerte

Passiert über Änderungen in verschiedenen Dateien, u.a. Rezept.mod. Nicht ganz trivial, werde ich vielleicht später weiter ausführen.

rumspielen

  • Andere Zutaten berücksichtigen: Kommentiere Zeilen in zutaten.dat aus.
  • Andere Nährwerte: Zeilen in grenzen-working.dat auskommentieren und sicherstellen, dass in grenzen.dat die entsprechende Zeile aktiv ist. Die Datei grenzen-orig.dat sollte nicht verändert werden.
  • Wenn die Datei grenzen-orig.dat aktiv ist und in zutaten.dat nur die Zeilen mit *OR aktiv sind, erhält das Programm genau die Eingabedaten des ursprünglichen Rezepts.
  • Für diverse Strafkosten: in config.dat rumspielen. Dort die Kommentare beachten.