Λογισμικό οπτικοποίησης βημάτων γεωμετρικής επίλυσης γραμμικών προβλημάτων

Σχετικά έγγραφα
Ένα ολοκληρωμένο σύστημα για την διδασκαλία του αναθεωρημένου αλγορίθμου simplex A complete training system for teaching revised simplex algorithm

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

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

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

Η γραφική μέθοδος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

Η γραφική μέθοδος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού

Γραμμικός Προγραμματισμός Μέθοδος Simplex

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

ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC

Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 28/3/2012. Lecture07 1

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Γενικές Οδηγίες για τις νέες Εκτυπωτικές Φόρμες

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

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

4.1 Πράξεις με Πολυωνυμικές Εκφράσεις... 66

3.7 Παραδείγματα Μεθόδου Simplex

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΜΑΘΗΜΑΤΙΚΗ ΔΙΑΤΥΠΩΣΗ, Διαλ. 2. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 8/4/2017

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 3/4/2012. Lecture08 1

Ο παρακάτω πίνακας τιμών θα βοηθήσει να γίνει πιο κατανοητή η λειτουργία των εντολών της συγκεκριμένης άσκησης. Α/Α Εντολές Μνήμη (Μεταβλητή α) Οθόνη

Ανάπτυξη λογισμικού για τη διενέργεια υπολογιστικών μελετών

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

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

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

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

Visual Flowchart Γενικά

Δημιουργία μιας εφαρμογής Java με το NetBeans

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

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΤΥΠΟΥ SIMPLEX. 2.1 Βασικές έννοιες - Ορισμοί

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

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο:

Οπτικοποίηση: ένας αποτελεσματικός τρόπος για την βελτίωση της κατανόησης του αλγορίθμου simplex

Επιμορφωτικό Σεμινάριο Διδακτικής των Μαθηματικών με ΤΠΕ

Τμήμα Εφαρμοσμένης Πληροφορικής

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ LOGO

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

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

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

Επιχειρησιακή Έρευνα Θεωρητική Θεμελίωση της Μεθόδου Simplex

z = c 1 x 1 + c 2 x c n x n

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0

Ελέγξτε την ταινία σας

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Ο Οδηγός γρήγορης εκκίνησης

Δημιουργία τομής σε εξάρτημα

ΕΠΙΛΥΣΗ ΕΚΦΥΛΙΣΜΕΝΩΝ ΚΑΙ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ. 4.1 Επίλυση Εκφυλισμένων Γραμμικών Προβλημάτων

Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυϊκότητα. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 1/12/2016

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

ΑΕΠΠ Ερωτήσεις θεωρίας

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

Οδηγός γρήγορης εκκίνησης

Συστήματα Παραγωγής ΠΑΡΑΔΕΙΓΜΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Cabri II Plus. Λογισμικό δυναμικής γεωμετρίας

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΠΕΡΙΟΧΗ ΚΙΝΗΣΗΣ ΤΟΥ ΣΩΜΑΤΟΣ

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

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER

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

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Χαριτωμένη Καβουρτζικλή (ΑΕΜ: 2738)

Εργαστηριακή εισήγηση. «ΜΑΘΗΣΙΣ: Μία Ευφυής Διαδικτυακή Τάξη Άλγεβρας»

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

Ένα διαδικτυακό εργαλείο δημιουργίας παρουσιάσεων

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

Εκπαιδευτικό πολυμεσικό σύστημα διδασκαλίας των μαθηματικών (Εφαρμογή στη δευτεροβάθμια εκπαίδευση)

Geogebra. Μακρή Βαρβάρα. Λογισµικό Geogebra

Σύντοµος Οδηγός Βοήθειας για τη Χρήση των Μαθηµάτων e-learning για το ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ

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

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

Microsoft PowerPoint 2010 Πανεπιστήμιο Κύπρου

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Ενδεικτικό Φύλλο Εργασίας 1. Επίπεδα και Ευθείες Ονοματεπώνυμο:... Τάξη Τμήμα:... Ημερομηνία:...

Οδηγός Σύγχρονης Τηλεκπαίδευσης για καθηγητές

Εκτύπωση Γενικού Ημερολογίου

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

1. Τα τμήματα της επιφάνειας εργασίας των Windows

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Επιμορφωτικό Σεμινάριο Διδακτικής των Μαθηματικών με ΤΠΕ

Transcript:

Λογισμικό οπτικοποίησης βημάτων γεωμετρικής επίλυσης γραμμικών προβλημάτων Παπαδόπουλος Ιάκωβος, Σαμαράς Νικόλαος Τμ. Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Εγνατία 156, 54006 Θεσσαλονίκη E-Mails: jakepriestson@gmail.com, samaras@uom.gr Περίληψη Η οπτικοποίηση είναι ένα χρήσιμο εργαλείο σε πολλές γνωστικές περιοχές της επιστήμης των υπολογιστών. Στην εργασία αυτή περιγράφεται η χρήση της οπτικοποίησης ως μέσο για την διδασκαλία των βημάτων γεωμετρικής επίλυσης γραμμικών προβλημάτων. Πρόκειται για ένα λογισμικό το οποίο κάνει χρήση τεχνικών προσομοίωσης κίνησης (animation) για την αριθμητική και γεωμετρική αναπαράσταση των διαδοχικών βημάτων γεωμετρικής επίλυσης ενός γραμμικού προβλήματος. Το προτεινόμενο λογισμικό εισάγει ένα πρωτότυπο τρόπο παρουσίασης της γεωμετρικής επίλυσης γραμμικών προβλημάτων με σκοπό να χρησιμοποιηθεί ως βοήθημα στην βελτίωση της κατανόησης του αλγορίθμου simplex. Δίνονται δυνατότητες εισαγωγής και μεταγλώττισης γραμμικών προβλημάτων δύο ή τριών μεταβλητών με απεριόριστο πλήθος περιορισμών (τουλάχιστον ένας). Υπάρχει επίσης και μεγάλος βαθμός αλληλεπίδρασης κατά την διαδικασία επίλυσης ενός γραμμικού προβλήματος. Γίνεται χρήση 2d και 3d γραφικών για την αναπαράσταση των σχημάτων της γεωμετρίας ενός γραμμικού προβλήματος. Λέξεις κλειδιά: Εκπαιδευτικό Λογισμικό, Γραμμικός Προγραμματισμός, Αλγόριθμος Simplex, Γεωμετρική Επίλυση Γραμμικών Προβλημάτων, Οπτικοποίηση Αλγορίθμων. 1. Εισαγωγή Τα τελευταία χρόνια όλο και περισσότερες εκπαιδευτικές εφαρμογές βασιζόμενες στο διαδίκτυο και στην χρήση της αντικειμενοστραφούς γλώσσας προγραμματισμού Java προσπαθούν να διευκολύνουν τη διδασκαλία αλγορίθμων [Boroni (1998)]. Η διδασκαλία αλγορίθμων γραμμικού προγραμματισμού, όπως ο αναθεωρημένος πρωτεύων αλγόριθμος simplex (revised simplex algorithm), σε συνδυασμό με την οπτικοποιημένη παρουσίαση τους καθιστούν την διαδικασία κατανόησης τους πιο εύκολη και αποτελεσματική σε σχέση πάντα με τους παραδοσιακούς τρόπους διδασκαλίας. Σε μια εκπαιδευτική διαδικασία δεν είναι ανάγκη να μελετήσουμε μόνο τα αποτελέσματα της και την παιδαγωγική προσέγγιση, αλλά και τα εργαλεία που χρησιμοποιούνται για την επικοινωνία στο περιβάλλον μάθησης. Με την ραγδαία τεχνολογική πρόοδο παρουσιάζονται όλο και περισσότερες δυνατότητες για την

312 EUREKA 2007 βελτίωση των τρόπων οπτικοποίησης. Το ζητούμενο στην περίπτωση αυτή είναι η παραγόμενη οπτικοποίηση να διαθέτει και παιδαγωγικά στοιχεία [Rössling (2002)]. Η προσθήκη της ασύγχρονης εκπαιδευτικής διαδικασίας ως συμπληρωματικό εργαλείο για την καλύτερη κατανόηση της διδασκόμενης ύλης, μπορεί να χρησιμοποιηθεί για την διδασκαλία των αλγορίθμων. Η εργασία των Kehoe et al. [Kehoe (1999)] καταλήγει στο συμπέρασμα ότι, η παιδαγωγική αξία της λειτουργίας ενός αλγορίθμου με χρήση τεχνικών κίνησης είναι περισσότερο εμφανής κατά την διάρκεια των εργασιών στο σπίτι, παρά σε κλειστές εξετάσεις. Σημαντικό στοιχείο είναι ότι η δυναμική κίνηση στην παρουσίαση των αλγορίθμων δεν ωφελεί τον εκπαιδευόμενο αν δεν συνοδεύεται από τις επεξηγήσεις του εκπαιδευτή. Οι Petre και Green [Petre (1993)] έδειξαν ότι η γραφική απεικόνιση από μόνη της δεν είναι επεξηγηματική, αλλά πρέπει να διδαχτεί. Η χρήση των πολυμέσων διαδραματίζει δύο βασικούς ρόλους: (i) κρατά αμείωτο το ενδιαφέρον των εκπαιδευομένων και (ii) βοηθά τους τελευταίους στην κατανόηση της σύνδεσης μεταξύ της περιγραφής του αλγορίθμου και της βασικής ιδέας της λειτουργίας του. Πολλές εφαρμογές έχουν αναπτυχθεί που χρησιμοποιούν τεχνικές κίνησης ως βάση για την παρουσίαση της λειτουργίας δομών δεδομένων και αλγορίθμων [Pierson (1998)]. Συστήματα διδασκαλίας με χρήση αλληλεπίδρασης που έχουν εφαρμοστεί, έδειξαν την θετική επίδραση τους στους εκπαιδευόμενους βοηθώντας την εκπαιδευτική διαδικασία [Barnett (1998)]. Εκτός από την οπτικοποίηση της λειτουργίας ενός αλγορίθμου είναι απαραίτητο στην διαδικασία κατανόησης του, να δίνονται και ορισμένα συμπληρωματικά και επεξηγηματικά στοιχεία [Brown (1998)]. 2. Σύντομη περιγραφή της γεωμετρίας γραμμικών προβλημάτων Η κατανόηση του αλγορίθμου simplex είναι άμεσα συνδεδεμένη με την γεωμετρία ενός γραμμικού προβλήματος και συγκεκριμένα με την γεωμετρία του χώρου των μεταβλητών του. Γνωρίζουμε ότι η αριθμητική επίλυση μέσω του αναθεωρημένου αλγορίθμου simplex βασίζεται στην γεωμετρία αυτή. Θεωρώντας λοιπόν αυτό το γεγονός ως δεδομένο πιστεύουμε ότι ένα πολύ σημαντικό στοιχείο που θα δώσει προβάδισμα στην κατανόηση του αλγορίθμου θα είναι αρχικά να δώσουμε την δυνατότητα κατανόησης της γεωμετρίας προβλημάτων γραμμικού προγραμματισμού. Αρχικά θεωρούμε το πρόβλημα γραμμικού προγραμματισμού σε μορφή μητρών T minz = c x stax.. b, x 0 (Γ.Π.1) mxn n m όπου A R, c, x R, b R, T σημαίνει αναστροφή και ένα διάνυσμα διαστάσεων mx1, τα στοιχεία του οποίου προσδιορίζουν το είδος της κάθε ανισότητας (, ).

1 st Panhellenic Students Scientific Conference in Informatics 313 Έστω c T x μια αντικειμενική συνάρτηση και d ένα διάνυσμα. Το d ονομάζεται ανηφορικό (ascent) αν ισχύει c T x < c T (x+td) με t>0 και κατηφορικό αν ισχύει c T x > c T (x+td) με t>0. Ένα διάνυσμα d ονομάζεται βελτιώνον (improving) όταν έχουμε γραμμικό πρόβλημα μεγιστοποίησης (max) και το διάνυσμα d είναι ανηφορικό ενώ όταν έχουμε γραμμικό πρόβλημα ελαχιστοποίησης (min) και το διάνυσμα d είναι κατηφορικό. Εύκολα μπορεί κανείς να διαπιστώσει ότι σε ένα γραμμικό πρόβλημα με αντικειμενική συνάρτηση c T x μια κατεύθυνση d είναι ανηφορική ή κατηφορική όταν c T d>0 ή c T d<0 αντίστοιχα. Το σύνολο των σημείων στα οποία η αντικειμενική συνάρτηση ικανοποιεί την ισότητα c T n x = z, όπου cx, R και z μια σταθερά, ονομάζεται ισοσταθμική (contour) καμπύλη και είναι ένα επίπεδο κάθετο στο διάνυσμα c. Σημειώνεται ότι στο χώρο R 2 οι ισοσταθμικές είναι ευθείες γραμμές, στο χώρο R 3 είναι επίπεδα ενώ στο χώρο R n είναι υπερεπίπεδα, βέβαια εμείς θα ασχοληθούμε μόνο με τον δυσδιάστατο και τριδιάστατο χώρο όσον αφορά το πλήθος των μεταβλητών του προβλήματος. Ένα από τα σημαντικότερα βήματα κατά την διαδικασία της γεωμετρικής επίλυσης είναι η σχεδίαση της εφικτής περιοχής ενός γραμμικού προβλήματος (πολύγωνο στο χώρο R 2 και πολύεδρο στο χώρο R 3 ). Η σχεδίαση όμως του κυρτού πολυγωνικού ή πολυεδρικού σχήματος προϋποθέτει πρώτα την σχεδίαση όλων των περιορισμών του γραμμικού προβλήματος (ευθείες στο χώρο R 2 και επίπεδα στο χώρο R 3 ) και του προσδιορισμού του καλού τους ημιεπιπέδου το οποίο καθορίζεται τόσο από τους συντελεστές a ij (διάνυσμα [a i1 a i2 a in ], όπου i=1,2 m) του κάθε περιορισμού όσο και από το είδος της ανισότητας του. Το ημιεπίπεδο τα σημεία του οποίου ικανοποιούν μια ανισότητα (ανισοτικό περιορισμό) ονομάζεται καλό ημιεπίπεδο. Παρακάτω για λόγους απλότητας θα αναφερθούμε στον χώρο των δύο διαστάσεων. Η εφικτή περιοχή (feasible region) ενός γραμμικού προβλήματος είναι το σχήμα που προκύπτει από την τομή πεπερασμένου πλήθους ημιεπιπέδων. Το σχήμα είναι ένα κυρτό πολύγωνο το οποίο μπορεί να είναι περατωμένο (βλέπε Εικόνα 1α) ή μη περατωμένο (βλέπε Εικόνα 1β). (α) Εικόνα 1. Κλειστό (α) και ανοικτό (β) πολύγωνο εφικτής περιοχής. Η ισοσταθμική ευθεία της αντικειμενικής συνάρτησης c T x = z μετακινείται παράλληλα με το εαυτό της έχοντας κοινά σημεία με την εφικτή περιοχή και η (β)

314 EUREKA 2007 αντικειμενική τιμή της βελτιώνεται. Αν η ισοσταθμική αντικειμενική ευθεία μετακινείται απεριόριστα έχοντας κοινά σημεία με την εφικτή περιοχή τότε το γραμμικό πρόβλημα είναι απεριόριστο (unbounded). Η τομή της βέλτιστης αντικειμενικής ισοσταθμικής με την εφικτή περιοχή ονομάζεται βέλτιστο σύνολο. Το βέλτιστο σύνολο περιλαμβάνει μια τουλάχιστον κορυφή του πολυγώνου της εφικτής περιοχής. Η βέλτιστη λύση περιλαμβάνει την βέλτιστη αντικειμενική τιμή και τις βέλτιστες τιμές των μεταβλητών απόφασης. Παρακάτω παραθέτουμε τα διαδοχικά βήματα γεωμετρικής επίλυσης γραμμικών προβλημάτων: Γραφική αναπαράσταση όλων των περιορισμών Προσδιορισμός καλών ημιεπιπέδων Προσδιορισμός της εφικτής περιοχής. Γραφική αναπαράσταση ισοσταθμικής αντικειμενικής συνάρτησης. Προσδιορισμός της βέλτιστης κορυφής και υπολογισμός της βέλτιστης λύσης. 3. Βασικά στοιχεία σχεδιασμού της εφαρμογής Το ολοκληρωμένο σύστημα διδασκαλίας του αλγορίθμου γεωμετρικής επίλυσης ενός γραμμικού προβλήματος έχει αναπτυχθεί χρησιμοποιώντας της βασικές δυνατότητες της αντικειμενοστραφούς γλώσσας προγραμματισμού Java 2 Standard Edition. Το λογισμικό αποτελείται από μια εφαρμογή τύπου standalone application βασισμένη σε αρχείο τύπου jar archive εντός του οποίου περιέχονται όλα τα δομικά πακέτα κλάσεων της εφαρμογής. Για την εκτέλεση της εφαρμογής είναι απαραίτητη η εγκατάσταση του λογισμικού πακέτου της Sun Microsystems, Java Runtime Environment (προτείνεται από την έκδοση 1.5 και πάνω). Το λογισμικό αυτό εγκαθιστά τον Java Virtual Machine έτσι ώστε να εκτελούνται εφαρμογές Java από τον διερμηνέα (interpreter). Η ανάλυση της οθόνης προτείνεται τουλάχιστον στα 1024 επί 768 καθώς είναι η εξ ορισμού ανάλυση που απαιτείται για την σωστή λειτουργία της εφαρμογής. Επίσης κρίνονται απαραίτητες και η βιβλιοθήκες jxl.jar και encoder.jar για την λειτουργία της εφαρμογής και οι οποίες περιέχονται μαζί με το λογισμικό. Η εφαρμογή αυτή δίνει την δυνατότητα στον εκπαιδευόμενο να αποφύγει την εκτέλεση πολύωρων και δύσκολων μαθηματικών πράξεων για να φτάσει στην γεωμετρική επίλυση ενός γραμμικού προβλήματος. Πρέπει να επισημανθεί ότι το λογισμικό αυτό δεν προσφέρεται για ουδεμία επαγγελματική χρήση παρά μόνο για καθαρά εκπαιδευτικούς σκοπούς. Στον τελικό σχεδιασμό της εφαρμογής δόθηκε ιδιαίτερη βαρύτητα στη μη επιβάρυνση του χρήστη με επιπλέον εκμάθηση της λειτουργίας της. Η αρχιτεκτονική του λογισμικού αποτελείται από τρία βασικά δομικά πακέτα κλάσεων τα οποία είναι:

1 st Panhellenic Students Scientific Conference in Informatics 315 Πακέτο μεταγλωττιστή (parser) Πακέτο άλγεβρας (algebra) Πακέτο γραφικών (graphics) Κάθε πακέτο περιέχει κλάσεις οι οποίες αναλαμβάνουν λειτουργίες σχετικές με αυτό, έτσι λοιπόν ο μεταγλωττιστής περιέχει κλάσεις για τη μεταγλώττιση ενός γραμμικού προβλήματος από την περιγραφική μορφή (κείμενο) στην μαθηματική μορφή (μήτρες), το πακέτο της άλγεβρας αναλαμβάνει να επιλύσει αλγεβρικά το γραμμικό πρόβλημα και το πακέτο γραφικών να οπτικοποιήσει την πληροφορία που προκύπτει από την αλγεβρική επίλυση. Θα πρέπει να αναφέρουμε ότι το λογισμικό διαθέτει τέσσερεις βασικές λειτουργίες προς διάθεση του χρήστη: Εισαγωγή και μεταγλώττιση γραμμικού προβλήματος διαστάσεων δύο ή τριών μεταβλητών και απεριόριστου πλήθους περιορισμών κατ επιλογή του χρήστη. Αριθμητική και γεωμετρική επίλυση γραμμικού προβλήματος. Γραφική οπτικοποίηση βημάτων γεωμετρικής επίλυσης με δυνατότητα αμφίδρομης πλοήγησης μεταξύ αυτών (animation). Δυνατότητα εγγραφής της προσομοίωσης των βημάτων κατά την οπτικοποίηση σε αρχείο GIF (Graphics Interchange Format) Επίσης το λογισμικό περιλαμβάνει και συναρτήσεις για την δημιουργία τυχαίων γραμμικών προβλημάτων και βέλτιστων τυχαίων γραμμικών προβλημάτων καθώς και συναρτήσεις υπολογισμού του δυικού γραμμικού προβλήματος αλλά και κλιμάκωσης γραμμικών προβλημάτων με την τεχνική της εξισορρόπησης. 4. Περιγραφή της εφαρμογής 4.1 Διεπαφή συστατικών Η διεπαφή του λογισμικού αποτελείται αρχικά από την γραμμή επιλογών, η οποία βρίσκεται στο βόρειο τμήμα της διεπαφής και η οποία περιέχει όλες τις λειτουργίες της εφαρμογής (βλέπε Εικόνα 2). Αμέσως από κάτω βρίσκονται δύο εργαλειοθήκες συντομεύσεων των βασικότερων λειτουργιών της γραμμής επιλογών.

316 EUREKA 2007 Εικόνα 2. Διεπαφή λογισμικού γεωμετρικής επίλυσης γρ. προβλημάτων. Στο μενού επιλογών File (βλέπε Εικόνα 3) υπάρχουν λειτουργίες όπως δημιουργία νέου εγγράφου (New) για την σύνταξη νέου γραμμικού προβλήματος, άνοιγμα (Open ) υπάρχοντος εγγράφου καθώς και λειτουργίες αποθήκευσης εγγράφων (Save, Save As ). Σημαντικές λειτουργίες είναι οι επιλογές εισαγωγής (Import ) και εξαγωγής (Export ) γραμμικού προβλήματος από και σε αρχείο excel αντίστοιχα. Εικόνα 3. Μενού επιλογών File. Στο μενού επιλογών Build (βλέπε Εικόνα 4) υπάρχουν λειτουργίες όπως η μεταγλώττιση (Parse) εγγράφου το οποίο φέρει στον κειμενογράφου του το γραμμικό πρόβλημα σε περιγραφική μορφή. Υπάρχουν οι επιλογές Random και Optimal για την δημιουργία τυχαίων και βέλτιστων γραμμικών προβλημάτων βάση παραμέτρων ως προς την διάσταση του προβλήματος και των ορίων των συντελεστών. Επίσης υπάρχουν δύο λειτουργίες για την κλιμάκωση ενός γραμμικού

1 st Panhellenic Students Scientific Conference in Informatics 317 προβλήματος Scale και τον υπολογισμό του δυικού του Dual. Τέλος η λειτουργία Solve πραγματοποιεί την γεωμετρική επίλυση του γραμμικού προβλήματος που έχουμε εισάγει από πριν είτε με εισαγωγή είτε με μεταγλώττιση. Εικόνα 4. Μενού επιλογών Build. Στην Εικόνα 5 έχουμε μια εργαλειοθήκη συντομεύσεων. Ξεκινώντας από αριστερά έχουμε την δημιουργία νέου εγγράφου για μεταγλώττιση, άνοιγμα υπάρχοντος εγγράφου, αποθήκευση ενεργού εγγράφου, αποθήκευση όλων των ανοικτών εγγράφων, μεταγλώττιση ενεργού εγγράφου, γεωμετρική επίλυση μεταγλωττισμένου γραμμικού προβλήματος, μεγέθυνση, σμίκρυνση, ανανέωση περιοχής απόδοσης γραφικών και σύλληψη τρέχοντος καρέ γραφικών σε αρχείο εικόνας (png). Εικόνα 5. Εργαλειοθήκη συντομεύσεων εφαρμογής. Η εργαλειοθήκη της Εικόνας 6 περιέχει ελεγκτήρια για τον έλεγχο της πλοήγησης των διαδοχικών καρέ γραφικών κατά την οπτικοποιήση των βημάτων της γεωμετρικής επίλυσης ενός γραμμικού προβλήματος. Ξεκινώντας από αριστερά έχουμε την επιλογή προηγούμενο καρέ (backward), εκτέλεση (play), εγγραφή (record), επόμενο καρέ (forward), παύση (pause), διακοπή (stop), επανάληψη (repeat) και χρονική καθυστέρηση εναλλαγής καρέ γραφικών (delay). Εικόνα 6. Εργαλειοθήκη ελεγκτηρίων πλοήγησης προσομοίωσης (animation). Στο κεντρικό υποδοχέα της διεπαφής (Εικόνα 2) περιέχονται τρία βασικά μέρη συστατικών. Ξεκινώντας από πάνω αριστερά έχουμε τον υποδοχέα πολλαπλών παραθύρων (mdi desktop), εντός του οποίου θα εμφανίζονται όλα τα ανοιχτά έγγραφα της εφαρμογής τα οποία με την σειρά τους περιέχουν έναν κειμενογράφο για την σύνταξη των γραμμικών προβλημάτων. Ακριβώς από κάτω υπάρχει ένα ελεγκτήριο το οποίο έχει τρεις καρτέλες (tabs, output, problem, solution) εντός των οποίων περιέχονται κειμενογράφοι για την εμφάνιση των αποτελεσμάτων μεταγλώττισης και επίλυσης ενός γραμμικού προβλήματος. Στο πάνω δεξιό τμήμα της διεπαφής υπάρχει το συστατικό απόδοσης των γραφικών (Viewport), εντός του οποίου σχεδιάζεται η γεωμετρία του γραμμικού προβλήματος και οπτικοποιούνται τα βήματα της γεωμετρικής επίλυσης του. Τέλος στο νότιο τμήμα της εφαρμογής υπάρχει η γραμμή κατάστασης στην οποία εμφανίζονται μηνύματα για τις

318 EUREKA 2007 λειτουργίες του λογισμικού καθώς και την κατάσταση της προσωρινής μνήμης της (ύπαρξη μεταγλωττισμένου γραμμικού προβλήματος, clipboard) και της κατάστασης του animation (ready, running, pause, finished). Να αναφέρουμε ότι ο χρήστης έχει την δυνατότητα να αλληλεπιδράσει με την περιοχή απόδοσης γραφικών μέσω των λειτουργιών dragging του ποντικιού. Ο χρήστης μπορεί να περιστρέψει (rotation) την κάμερα προβολής πατώντας αριστερό κλικ (πάνω στην επιφάνεια των γραφικών) παρατεταμένα μετακινώντας το ποντίκι προς οποιαδήποτε κατεύθυνση. Επίσης έχει δυνατότητες εστίασης (zoom in, zoom out) μόνο που πρέπει να πατήσει δεξί κλικ και να μετακινήσει το ποντίκι προς τα επάνω για μεγέθυνση και προς τα κάτω για σμίκρυνση των γραφικών. Τέλος στο μενού Viewport υπάρχουν δύο επιλογές Orthographic (ορθογραφική) και Perspective (Προοπτική) για την δυσδιάστατη ή τρισδιάστατη προβολή των γραφικών αντίστοιχα. 4.2 Σύνταξη γραμμικού προβλήματος Η σύνταξη ενός γραμμικού προβλήματος θα πρέπει να υπακούει σε κάποιους συντακτικούς κανόνες. Οι κανόνες αυτοί αναφέρονται παρακάτω: Σύνταξη λεκτικού προσδιοριστικού βελτιστοποίησης min ή max Σύνταξη δεσμευμένης λέξης z= Σύνταξη αντικειμενικής συνάρτησης της μορφής x1 + 3x2 Σύνταξη της δεσμευμένης λέξης s.t. ή st ή subject to Σύνταξη ανισοτικών περιορισμών της μορφής x1 + x2 <= 5 ή >= 5 Όλοι οι περιορισμοί εκτός του τελευταίου διαχωρίζονται με κόμμα (,) Παρακάτω παραθέτουμε ένα αντιπροσωπευτικό παράδειγμα σύνταξης ενός γραμμικού προβλήματος στην περιγραφική του μορφή. max z = x1 + 3x2 st x1 + x2 <= 5, 2x1 - x2 >= -2, x1 - x2 <= 1, 2x1 + x2 >= 4 Κατά την μεταγλώττιση του γραμμικού προβλήματος ελέγχονται τυχόν λανθασμένες συντακτικές μορφές και σε επίπεδο γενικής συντακτικής δομής, σε επίπεδο προσδιοριστικών βελτιστοποίησης καθώς και σε επίπεδο μορφής συναρτήσεων και ανισοτικών περιορισμών. Το εύρος των δεικτών των μεταβλητών είναι περιορισμένο στο διάστημα [1, 999] παρόλο που η εφαρμογή πραγματοποιεί γεωμετρική επίλυση στον χώρο των δύο ή τριών διαστάσεων δίνεται η δυνατότητα για μεταγλώττιση και γενικής διαστάσεως γραμμικών προβλημάτων. Επίσης πραγματοποιείται και έλεγχος για τυχόν επαναλαμβανόμενες μεταβλητές όπως και για λανθασμένες αριθμητικές εκφράσεις. Το είδος των περιορισμών που είναι επιτρεπτοί είναι μόνο <= και >=. Να σημειωθεί ότι το όριο του πλήθους των περιορισμών ενός γραμμικού προβλήματος

1 st Panhellenic Students Scientific Conference in Informatics 319 είναι απεριόριστο αρκεί βέβαια να υπάρχει τουλάχιστον ένας. Παρακάτω παραθέτουμε συνοπτικά τα πιο συχνά συντακτικά λάθη κατά την διαδικασία της μεταγλώττισης: (i). Έλλειψη προσδιοριστικού βελτιστοποίησης (min ή max), (ii). Έλλειψη δεσμευμένων λέξεων z=, st, (iii). Λανθασμένη αριθμητική έκφραση συντελεστή, (iv). Λανθασμένη μορφή σύνταξης ανισοτικού περιορισμού (2x1 + 3x2 < 5), (v). Επανάληψη μεταβλητής στην ίδια συνάρτηση (x1 x2 + 3x2), (vi). Απουσία κόμματος μεταξύ ανισοτικών περιορισμών, (vii). Λανθασμένη μορφή δείκτη μεταβλητής (x02), (viii). Απουσία αντικειμενικής συνάρτησης και (ix). Απουσία περιορισμών (τουλάχιστον ένας). 4.3 Βηματική εκτέλεση εφαρμογής μέσω παραδείγματος Για την καλύτερη παρουσίαση της εφαρμογής δίνεται η επίλυση του γραμμικού προβλήματος το οποίο παραθέσαμε στην προηγούμενη ενότητα. Αρχικά από το μενού File επιλέγουμε την δημιουργία νέου εγγράφου (New), στο παράθυρο που ανοίγει μπορούμε να πληκτρολογήσουμε την περιγραφική μορφή του γραμμικού προβλήματος (βλέπε Eικόνα 7). Στην συνέχεια από το μενού Build μπορούμε να επιλέξουμε την επιλογή Parse για να προχωρήσουμε στη μεταγλώττιση του γραμμικού προβλήματος. Αν η μεταγλώττιση είναι επιτυχής τότε στο κάτω μέρος της εφαρμογής και στις καρτέλες Output και Problem θα εμφανιστούν οι μήτρες του γραμμικού προβλήματος (βλέπε Eικόνα 8), διαφορετικά θα εμφανιστεί μήνυμα συντακτικού σφάλματος. Μετά από μια επιτυχή μεταγλώττιση ενεργοποιείται στην γραμμή κατάστασης η ετικέτα Clipboard κάτι που θα σημαίνει ότι υπάρχει πλέον ένα γραμμικό πρόβλημα στην προσωρινή μνήμη της εφαρμογής. Εφόσον λοιπόν υπάρχει κάποιο γραμμικό πρόβλημα στην μνήμη της εφαρμογής μπορούμε να επιλέξουμε από το μενού Build την επίλυση του μέσω της επιλογής Solve. Εικόνα 1. Σύνταξη γραμμικού προβλήματος.

320 EUREKA 2007 Εικόνα 2. Επιτυχής μεταγλώττιση γραμμικού προβλήματος. Με την επιλογή της επίλυσης του γραμμικού προβλήματος θα εμφανιστούν αμέσως στις καρτέλες Output και Solution η λύση του υπό την μορφή μητρών όπου το adarap προσδιορίζει την εφικτότητα του προβλήματος (0, -1, 1 με βέλτιστο, αδύνατο, απεριόριστο αντίστοιχα), το zoptimal είναι η βέλτιστη αντικειμενική τιμή, το xoptimal είναι η βέλτιστη λύση, η μήτρα feasibles είναι τα εφικτά σημεία του προβλήματος, η μήτρα infeasibles τα μη έφικτα, η μήτρα ponrays περιέχει τα εφικτά σημεία στην περίπτωση της ανοικτής εφικτής περιοχής, η μήτρα vertices περιέχει τα σημεία του πολυγώνου ή πολυέδρου της εφικτής περιοχής του προβλήματος και τέλος η μήτρα rays η οποία περιέχει το εύρος τιμών των μεταβλητών του προβλήματος (βλέπε Eικόνα 9). Εικόνα 3. Μήτρες γεωμετρικής επίλυσης γραμμικού προβλήματος. Τέλος έχει πλέον την δυνατότητα με την βοήθεια των πλήκτρων της εργαλειοθήκης animation (βλέπε Eικόνα 6) να επιλέξει την εκτέλεση του animation (προσομοίωση των βημάτων γεωμετρικής επίλυσης) μέσω του πλήκτρου play καθώς επίσης μπορεί και να πλοηγηθεί (step by step) μεταξύ των βημάτων της γεωμετρικής επίλυσης μέσω των πλήκτρων backward και forward (στην Εικόνες 10 εμφανίζεται το τελικό στάδιο της οπτικοποίησης της γεωμετρικής επίλυσης).

1 st Panhellenic Students Scientific Conference in Informatics 321 Να επισημάνουμε ότι πατώντας το πλήκτρο record (εργαλειοθήκη Eικόνα 6) ξεκινά η καταγραφή των καρέ γραφικών της περιοχής απόδοσης γραφικών σε ένα αρχείο gif (graphics interchange format) στο φάκελο capture, αμέσως μετά την ενεργοποίηση της καταγραφής εμφανίζεται η ετικέτα Recording στην περιοχή απόδοσης γραφικών. Ενώ για την ολοκλήρωση της καταγραφής θα πρέπει να σταματήσουμε την εγγραφή επιλέγοντας πάλι το πλήκτρο record. Επίσης υπάρχει και το πλήκτρο repeat για την ατέρμων επανάληψη των βημάτων γεωμετρικής επίλυσης. 5. Συμπεράσματα Εικόνα 4. Σχεδίαση ισοσταθμικών αντικειμενικών ευθειών. Στην εργασία παρουσιάστηκε μια εφαρμογή για την διδασκαλία των βημάτων της γεωμετρικής επίλυσης γραμμικών προβλημάτων διάστασης 2 ή 3 μεταβλητών και m περιορισμών. Το λογισμικό αυτό μπορεί επίσης να χρησιμοποιηθεί και ως βοηθητικό εργαλείο κατά την διδασκαλία αλγορίθμων τύπου simplex. Ιδιαίτερη σημασία και προσοχή δόθηκε κατά την φάση της σχεδίασης και ανάπτυξης ώστε να αναπτυχθεί ένα εύχρηστο και προσαρμοστικό εργαλείο για κάθε χρήστη χωρίς να απαιτούνται επιπρόσθετες και εξειδικευμένες γνώσεις ηλεκτρονικών υπολογιστών. Έχουν προβλεφθεί χαρακτηριστικά όπως παραμετροποίηση γραμμικών προβλημάτων αλλά και δυνατότητες αλληλεπίδρασης ώστε να δοθεί μεγαλύτερη ευελιξία στο χρήστη. Συνολικά η εφαρμογή αποτελείται από 81 κλάσεις ενώ το πλήθος γραμμών κώδικα

322 EUREKA 2007 ανέρχονται περίπου στις 12.000 γραμμές κώδικα (LOC). Το λογισμικού σχεδιάστηκε και αναπτύχθηκε εξ ολοκλήρου από τον φοιτητή του τμήματος Εφαρμοσμένης Πληροφορικής του Πανεπιστημίου Μακεδονίας, Παπαδόπουλο Ιάκωβο στα πλαίσια της διπλωματικής του εργασίας [Παπαδόπουλος Ι. (2007)]. Αναφορές Barnett, L., Casp, J., Green, D., and Kent, J. (1998) Design and implementation of an interactive tutorial framework. In Proceedings 29 th SIGCSE Technical Symposium, 87-91. Boroni, C., Goosey, F., Grinder, M., and Ross, R. (1998) A Paradigm Shift! The Internet, the Web, broswers, Jave and the future of computer scince education. In Proceedings 29 th SIGCSE Technical Symposium, 145-152. Brown, M., H., and Hershberger., J. (1998) Fundamental Techniques for Algorithm Animation Displays. In John T. Stasko, John Dominique, Marc H. Brown, and Blaine A. Price, (Eds.) Software Visualization: Programming as a Multimedia Experience. MIT Press, 137-143. Kehoe, C., Stasko, J., and Taylor, A. (1999) Rethinking the evaluation of algorithm animations as learning aids: An observational study. Technical Report GIT-GVU-99-10 Georgia Institute of Technology. Petre, M., and Green, T.R. (1993) Learning to read graphics: Some evidence that seeing an information display is an acquired skill. Journal of Visual Languages and Computing vol. 4, 55-70. Pierson, W., and Rodger, S. (1998) Web-based animation of data structures using Java. In Proceedings 30 th SIGCSE Technical Symprosium, 267-271. Rössling, G., and Naps, T.L. (2002) A testbed for pedagogical requirements in algorithm visualizations. In Proceedings 7 th annual Conference on Innovation and technology in computer science education, 96-100. Παπαδόπουλος, Ι. (2007) Λογισμικό γεωμετρικής επίλυσης γραμμικών προβλημάτων. Πτυχιακή Εργασία, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, Μάρτιος 2007.