BashScript: Alle Probleme optimieren
Wenn man mehrerer Probleminstanzen hat und diese gerne optimieren möchte, dann kann das schon viel Aufwand sein immer wieder per Konsole manuell auszuführen. Im Nachfolgenden findet sich ein kleines Bashscript welches Zimpl Dateien aus ein Verzeichnis liest, umwandelt und anschließend in Cplex optimiert. Dabei werden die Ergebnisse in en Logfile geschrieben und der Optimale Wert aller Instanzen in einer Datei “result” gesammelt. Natürlich werden alle anderen Datei im Verzeichnis ignoriert.
#!/bin/bash # http://www.opensource.org/licenses/bsd-license.php # M. Schneider, 2009, compserve24.de if [ -n "$1" ] then directory=$1 # If directory name given as a script argument... else directory=$PWD # Otherwise use current working directory. fi for file in $directory * # Filename globbing. do if [ ${file##*.} == "zpl" ]; then # only zpl file we need BASENAME=${file##*/} filename=${BASENAME%.*} # Strip ".zpl" suffix off filename zimpl $file echo -e "set logfile $filename.log \nread $filename.lp \noptimize \ndisplay solution variables - \nquit" > command cplex < command > "$filename.solve" VALUE=$(cat "$filename.solve" | grep "Integer optimal solution"| cut -c 43- ) echo "$filename: $VALUE" >> result else echo $file "ignored" #do nothing fi done exit 0
Über Markus Schneider
Markus Schneider ist Experte für Shop- und ERP-Systeme. Er betreut mehrere eCommerce Kunden welche Magento oder Oxid eSales einsetzten. Dabei integriert er nicht nur CMS Systeme wie Joomla, TYPO3 oder WordPress in ihren Shop, sondern beschäftigt sich auch mit dem Einsatz von Warenwirtschaft und deren Prozesse, dabei greift er auf gesammelte Erfahrung von unterschiedlichen System von OpenERP, über Sage bis hin zu SAP zurück.




