SÔntomec plhroforðec gia to glpsol (glpk)

Σχετικά έγγραφα
Γραμμικός Προγραμματισμός και Βελτιστοποίηση (Εργαστήριο 2)

Μοντελοποίηση προβληµάτων

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ LINDO ΚΑΙ ΤΗΝ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Γραµµικός Προγραµµατισµός (ΓΠ)

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Συστήματα Επιχειρηματικής Ευφυίας. CPLEX και OPL: ένα λογισμικό επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

Συστήματα Αναμονής (Queuing Systems)

Εισαγωγή στο Γραμμικό Προγραμματισμό

ΠΑΡΑΔΕΙΓΜΑΤΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΕΡΕΥΝΑΣ ΜΕ ΤΗ ΧΡΗΣΗ Η/Υ (3 ο Φυλλάδιο)

Ένα πρόβλημα κατάρτισης προγράμματος εργασίας.

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

ΠΑΡΑΔΕΙΓΜΑΤΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΕΡΕΥΝΑΣ ΜΕ ΤΗ ΧΡΗΣΗ Η/Υ (2 ο Φυλλάδιο)

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 2 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics )

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Η μέθοδος Simplex. Χρήστος Γκόγκος. Χειμερινό Εξάμηνο ΤΕΙ Ηπείρου

Εισαγωγή στη Βιοπληροφορική

12/3/2012. Εργαστήριο Αλγόριθμοι Γραμμικής Βελτιστοποίησης. Lab03 1. Διανυσματοποίηση Βρόχων. Αρχικοποίηση μητρών (preallocating)

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Γ.Π.).) (LINEAR PROGRAMMING)

ΤΜΗΜΑΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΠΑΤΡΩΝ ΑΚ. ΕΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΡΟΒΛΗΜΑΤΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΣΩ LINDO

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

Υλοποίηση Αναθεωρημένου Αλγορίθμου Simplex

Εργαστήριο Σημασιολογικού Ιστού

Προβλήματα Μεταφορών (Transportation)

Διαχείριση Εφοδιαστικής Αλυσίδας

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης

Εισαγωγή στην Python. Διάλεξη 0

Εφαρμογές Επιχειρησιακής Έρευνας. Δρ. Γεώργιος Κ.Δ. Σαχαρίδης

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βελτιστοποίηση κατανομής πόρων συντήρησης οδοστρωμάτων Πανεπιστήμιο Πατρών - Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

SPSS Statistical Package for the Social Sciences

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Επιχειρησιακή Έρευνα I

ΠΙΝΑΚΑΣ 3-1 Προσομοιωση και Βελτιστοποιηση Συστηματος (Haimes, 1977) ΠΡΑΓΜΑΤΙΚΗ ΑΠΟΚΡΙΣΗ ΦΥΣΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΗ ΑΠΟΚΡΙΣΗ ΣΥΣΤΗΜΑΤΟΣ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ ΑΠΟ EXCEL ΣΤΟ GRETL

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Πόρος Προϊόν 1 Προϊόν 2 Διαθέσιμη ποσότητα πόρου Απαιτούμενη ποσότητα πόρου ανά μονάδα προϊόντος. Γάλα (λίτρα)

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Συνδυαστική Βελτιστοποίηση

ΠΩΣ ΝΑ ΟΡΙΣΕΤΕ ΚΑΙ ΝΑ ΕΠΙΛΥΣΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΟΝ SOLVER ΤΟΥ EXCEL

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Συνδυαστική Βελτιστοποίηση

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Asset & Liability Management Διάλεξη 3

1. Εισαγωγή στο Sage.

Λογισµικό (Software SW) Γλώσσες

Δομημένος Προγραμματισμός

Πόρος Προϊόν 1 Προϊόν 2 Διαθέσιμη ποσότητα πόρου Απαιτούμενη ποσότητα πόρου ανά μονάδα προϊόντος. Γάλα (λίτρα)

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Γραμμικός Προγραμματισμός

Ανάπτυξη και Σχεδίαση Λογισμικού

Εργαστήριο Σημασιολογικού Ιστού

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

make Προγραμματισμός II 1

Δρ. Σταύρος Καραθανάσης

Εισαγωγή στον Προγραμματισμό

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Μεταφραστής (Compiler)

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

Κεφάλαιο 1. Εισαγωγή. 1.1 Επιχειρησιακή Ερευνα

Πολυκριτηριακός Γραμμικός Προγραμματισμός. Συστήματα Αποφάσεων Εργαστήριο Συστημάτων Αποφάσεων και Διοίκησης

Διάλεξη 6: Δείκτες και Πίνακες

Ακέραιος Γραµµικός Προγραµµατισµός

Γραμμικός Προγραμματισμός και Βελτιστοποίηση (Εργαστήριο 3)

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

HY150a Φροντιστήριο 3 24/11/2017

Ακέραιος Γραµµικός Προγραµµατισµός

Εισαγωγή στο Γραμμικό Προγραμματισμό

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΕΓΚΑΤΑΣΤΑΣΗ ΣΤΟΙΒΑΣ LAMP (Linux-Apache-MySQL-php) ΣΤO UBUNTU. ΑΑ, Ιαν. 2013

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στο GNU Octave/MATLAB

Σχεδιασμός επέκτασης του συστήματος ηλεκτροπαραγωγής με τη χρήση Πολυκριτηριακού Γραμμικού Προγραμματισμού

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

S, (5, -3, 34, -23, 7) ( *, _

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική

Simulation Users Manual

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Επικοινωνία:

Transcript:

SÔntomec plhroforðec gia to glpsol (glpk) gpol@di.uoa.gr Genikˆ gia to GLPK kai to glpsol Το GLPK (GNU Linear Programming Kit) είναι μια βιβλιοθήκη συναρτήσεων για τη γλώσσα C/C++ η οποία χρησιμοποιείται για την επίλυση προβλημάτων γραμμικού προγραμματισμού (LP) καθώς επίσης και ακέραιου προγραμματισμού (IP). Στο πακέτο GLPK συμπεριλαμβάνεται ένας ανεξάρτητος επιλυτής (stand-alone solver) τέτοιου είδους προβλημάτων, ο glpsol, ο οποίος επιλύει προβλήματα που του δίδονται σαν είσοδος στη γλώσσα μοντελοποίησης GMPL (GNU MathProg Language). Το βασικό πλεονέκτημα του glpsol είναι ότι επιταχύνει τη διαδικασία μοντελοποίησης (και επίλυσης) προβλημάτων βελτιστοποίησης. Το πρόβλημα (μοντέλο) που επιθυμούμε να επιλύσουμε περιγράφεται σε ένα αρχείου απλού κειμένου (plain text) στην γλώσσα GMPL και δίδεται ως είσοδος στο glpsol μαζί με κάποιες άλλες παραμέτρους που θα δούμε συνοπτικά στη συνέχεια. Το glpsol επιλύει το πρόβλημα και παράγει αναλυτική περιγραφή της λύσης καθώς επίσης και της πορείας επίλυσης. Καλείται από τη γραμμή εντολών με μια σειρά παραμέτρων (switches) οι βασικότερες από τις οποίες είναι οι ακόλουθες: -m (--model) filename Ανάγνωση μοντέλου και (προαιρετικά) δεδομένων από το filename -d (--data) filename Ανάγνωση (τμήματος) δεδομένων από το filename -o (--output) filename Εγγραφή λύσης στο αρχείο filename σε μορφή plain text -h (--help) Εμφάνιση οδηγιών χρήσης του glpsol Κατά σύμβαση (αν και φυσικά δεν είναι υποχρεωτικό) χρησιμοποιούμε την επέκταση.mod για τα αρχεία που περιέχουν την περιγραφή μοντέλου, την επέκταση.dat για τα αρχεία που περιέχουν τα δεδομένα και την επέκταση.sol για τα αρχεία στα οποία θέλουμε να γραφεί η λύση. Για παράδειγμα, η εντολή glpsol -m mymodel.mod -o mymodel.sol υποδεικνύει στο glpsol να διαβάσει την περιγραφή του προβλήματος από το αρχείο mymodel.mod και να γράψει τη λύση στο αρχείο mymodel.sol, ενώ η εντολή glpsol --model mymodel.mod --data mymodel.dat -o mymodel.sol υποδεικνύει στο glpsol να διαβάσει την περιγραφή του προβλήματος από το αρχείο mymodel.mod και τα δεδομένα από το αρχείο mymodel.dat και να γράψει τη λύση στο αρχείο mymodel.sol. OdhgÐec egkatˆstashc Το GLPK είναι ανοικτό λογισμικό (free - as in speech - software) και διατίθεται ελεύθερα από τη διεύθυνση http://www.gnu.org/software/glpk. Για πλατφόρμα MS Windows XP/Vista διατίθεται στη διεύθυνση http://gnuwin32.sourceforge.net/packages/glpk.htm, όπου υπάρχουν και οι οδηγίες εγκατάστασης. Ε- ίναι εργαλείο που χρησιμοποιείται από τη γραμμή εντολών κατά συνέπεια εκτελείται από το command prompt. Για πλατφόρμα Linux υπάρχει διαθέσιμο σε κάθε διανομή μέσω του εργαλείου εγκατάστασης λογισμικού της κάθε διανομής π.χ. για Debian συστήματα (Ubuntu, Mint κτλ.) μπορεί να γίνει πολύ απλά η εγκατάσταση δίδοντας sudo apt-get install glpk. Parˆdeigma 1 Ας θεωρήσουμε το πρόβλημα της σελίδας 17 των σημειώσεων. Η μοντελοποίηση του προβλήματος σαν πρόβλημα γραμμικού προγραμματισμού είναι η εξής: maximize z = 8x 1 + 6x 2 subject to 5x 1 + 3x 2 30 2x 1 + 3x 2 24 x 1 + 3x 2 18 x 1, x 2 0 1

Η περιγραφή του προβλήματος σε GMPL είναι η ακόλουθη: cat ex01.mod file: ex01.mod variables var typei_contracts >= 0; number of contracts of type I var typeii_contracts >= 0; number of contracts of type II objective function maximize profit: 8*typeI_contracts + 6*typeII_contracts; constraints s.t. mechanics: 5*typeI_contracts + 3*typeII_contracts <= 30; s.t. technicians: 2*typeI_contracts + 3*typeII_contracts <= 24; s.t. comp_hours: typei_contracts + 3*typeII_contracts <= 18; end; Βασικά σημεία: Οτι αρχίζει με είναι σχόλιο και εκτείνεται μέχρι το τέλος της γραμμής (EOL). Ορίζουμε μια μεταβλητή μαζί με το σύνολο τιμών της με τη δήλωση var όνομα μεταβλητής >= 0; και ένα σύνολο k μεταβλητών μαζί με το σύνολο τιμών τους με τη δήλωση var όνομα μεταβλητής {1..k} >= 0; όπου στην δεύτερη δήλωση οι μεταβλητές στη συνέχεια είναι διαθέσιμες με τα ονόματα όνομα μεταβλητής[1], όνομα μεταβλητής[2],..., όνομα μεταβλητής[k]. Η αντικειμενική συνάρτηση γράφεται στη μορφή maximize όνομα: συνάρτηση; όπου η συνάρτηση δίδεται στην απλή μορφή με τους γνωστούς μαθηματικούς τελεστές (ενώ φυσικά μπορούμε να έχουμε και minimize αντί για maximize). Οι περιορισμοί γράφονται ως εξής: s.t. όνομα: περιορισμός ; όπου το όνομα είναι αναγνωριστικό για τον περιορισμό και ο περιορισμός δίδεται σε απλή μορφή χρησιμοποιώντας τους γνωστούς μαθηματικούς τελεστές. Η περιγραφή του μοντέλου τελειώνει με end;. Στη συνέχεια εκτελούμε το glpsol και η έξοδος είναι η ακόλουθη: 2

glpsol -m ex01.mod -o ex01.sol GLPSOL: GLPK LP/MIP Solver 4.38 Reading model section from ex01.mod... 21 lines were read Generating profit... Generating mechanics... Generating technicians... Generating comp_hours... Model has been successfully generated glp_simplex: original LP has 4 rows, 2 columns, 8 non-zeros glp_simplex: presolved LP has 3 rows, 2 columns, 6 non-zeros Scaling... A: min aij = 1.000e+00 max aij = 5.000e+00 ratio = 5.000e+00 Problem data seem to be well scaled Crashing... Size of triangular part = 3 * 0: obj = 0.000000000e+00 infeas = 0.000e+00 (0) * 2: obj = 5.400000000e+01 infeas = 0.000e+00 (0) OPTIMAL SOLUTION FOUND Time used: 0.0 secs Memory used: 0.1 Mb (114493 bytes) Writing basic solution to ex01.sol... Τα περιέχομενα του αρχείου ex01.sol (που μας ενδιαφέρουν) στο οποίο αποθηκεύτηκε η λύση έχει ως εξής: cat ex01.sol Problem: ex01 Rows: 4 Columns: 2 Non-zeros: 8 Status: OPTIMAL Objective: profit = 54 (MAXimum) No. Row name St Activity Lower bound Upper bound Marginal 1 profit B 54 2 mechanics NU 30 30 1.5 3 technicians B 21 24 4 comp_hours NU 18 18 0.5 No. Column name St Activity Lower bound Upper bound Marginal 1 typei_contracts B 3 0 2 typeii_contracts B 5 0 Η βέλτιστη τιμή της αντικειμενικής συνάρτησης είναι 54 όταν οι μεταβλητές πάρουν τις τιμές 3 και 5. 3

Parˆdeigma 2 Εστω ότι έχουμε σε γενική μορφή στη διάθεσή μας το ακόλουθο γραμμικό πρόγραμμα: N maximize z = c j x j subject to j=1 N a ij x j b i j=1 x j 0, i = 1,..., M j = 1,..., N Χρησιμοποιώντας την γλώσσα GMPL μπορούμε να περιγράψουμε το πρόβλημα αυτό χωρίς να γνωρίζουμε τους πραγματικούς συντελεστές και τις παραμέτρους ως εξής: cat ex02.mod parameters param N; param M; param c{1..n}; param a{1..m,1..n}; param b{1..m}; variables var x{1..n} >= 0; objective function maximize z: sum {j in 1..N} c[j]*x[j]; constraints s.t. constr {i in 1..M}: sum {j in 1..N} a[i,j]*x[j] <= b[i]; end; Βασικά σημεία: Δηλώνουμε μια παράμετρο ως και ένα πίνακα συντελεστών ως όπου N το μέγεθος του πίνακα. Γράφουμε ένα σύνολο περιορισμών param όνομα παραμέτρου; param όνομα πίνακα{1..ν}; s.t. όνομα περ i in 1..M: sum j in 1..N a[i,j]*x[j] <= b[i]; όπου η έκφραση i in 1..M μετά το όνομα όνομα περ δηλώνει το δείκτη του περιορισμού. 4

Εχοντας αποθηκεύσει το μοντέλο στο αρχείο ex02.mod μπορούμε να περιγράψουμε τώρα ένα συγκεκριμένο στιγμιότυπο ως εξής: cat ex02.dat values for parameters param N := 4; param M := 3; param : c := 1 5 2 6 3 2 4 4; param a : 1 2 3 4 := 1 3 2 1 5 2 2 1 2 4 3-3 3-4 -5; param : b := 1 80 2 45 3-80; end; Το σημείο που πρέπει να προσέξουμε είναι ότι στην περιγραφή δίδουμε τιμή στις παραμέτρους και στους συντελεστές της γενικής μορφής. Οταν πρόκειται όμως για πίνακα συντελεστών (π.χ. c, b και a) πρέπει υποχρεωτικά να γράφουμε και τους δείκτες (indices) των πινάκων. Στη συνέχεια εκτελούμε το glpsol και η έξοδος είναι η ακόλουθη: 5

glpsol -m ex02.mod -d ex02.dat -o ex02.sol GLPSOL: GLPK LP/MIP Solver 4.38 Reading model section from ex02.mod... 22 lines were read Reading data section from ex02.dat... 27 lines were read Generating z... Generating constr... Model has been successfully generated glp_simplex: original LP has 4 rows, 4 columns, 16 non-zeros glp_simplex: presolved LP has 3 rows, 4 columns, 12 non-zeros Scaling... A: min aij = 1.000e+00 max aij = 5.000e+00 ratio = 5.000e+00 Problem data seem to be well scaled Crashing... Size of triangular part = 3 0: obj = 0.000000000e+00 infeas = 8.000e+01 (0) * 2: obj = 4.500000000e+01 infeas = 0.000e+00 (0) * 3: obj = 7.500000000e+01 infeas = 0.000e+00 (0) OPTIMAL SOLUTION FOUND Time used: 0.0 secs Memory used: 0.1 Mb (130565 bytes) Writing basic solution to ex02.sol... Τα περιέχομενα του αρχείου ex02.sol (που μας ενδιαφέρουν) στο οποίο αποθηκεύτηκε η λύση έχει ως εξής: cat ex02.sol Problem: ex02 Rows: 4 Columns: 4 Non-zeros: 16 Status: OPTIMAL Objective: z = 75 (MAXimum) No. Row name St Activity Lower bound Upper bound Marginal 1 z B 75 2 constr[1] B 42.5 80 3 constr[2] NU 45 45 7 4 constr[3] NU -80-80 3 No. Column name St Activity Lower bound Upper bound Marginal 1 x[1] B 10 0 2 x[2] NL 0 0-10 3 x[3] B 12.5 0 4 x[4] NL 0 0-9 Η βέλτιστη τιμή της αντικειμενικής συνάρτησης είναι 75 όταν οι μεταβλητές πάρουν τις τιμές 10,0,12.5 και 0. 6