Ψηφοφορία

Αποτελούν οι εντολές εκχώρησης είσοδο για έναν αλγόριθμο;

Ναι
Όχι

Αποστολέας Θέμα: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)  (Αναγνώστηκε 18556 φορές)

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Το παρόν θέμα ανοίγει με σκοπό να συζητηθεί το ασαφές σημείο των αλγοριθμικών κριτηρίων. Ο στόχος είναι να γίνει μια από κοινού πρόταση για τη διόρθωση του διδακτικού πακέτου.

Σπύρος Δουκάκης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #1 στις: 09 Φεβ 2010, 11:49:38 πμ »
Θεωρώ ότι πρέπει να γραφεί η πρόταση που έχει γίνει και επί αυτής να γίνει η συζήτηση...
Τη γράφω στο επόμενο μνμ.

ΣΔ

Σπύρος Δουκάκης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #2 στις: 09 Φεβ 2010, 11:49:58 πμ »
Τα αλγοριθμικά κριτήρια θέλουν αναδιατύπωση. Κάποια σχόλια αναφέρονται παρακάτω:

Ο όρος «κριτήρια» είναι αρκετά αυστηρός γιατί σημαίνει ότι αν κάποιο τμήμα κώδικα δεν έχει είσοδο τότε δεν αποτελεί αλγόριθμο. Πχ σε ένα  τμήμα κώδικα που υπολογίζει το άθροισμα 1^3 + 2^3 +3^3 +…100^3 δεν υπάρχει είσοδος αλλά είναι υπερβολικό να λέμε ότι δεν είναι αλγόριθμος.
Επίσης υπάρχουν προγράμματα που δεν έχουν έξοδο αλλά απλώς ξεκινούν άλλα προγράμματα (startup scripts).
Ο Knuth δίνει τον όρο «features» δηλαδή χαρακτηριστικά (για την είσοδο και την έξοδο) και όχι κριτήρια. Αυτό σημαίνει ότι αν κάποιο κομμάτι κώδικα δεν τα πληρεί τότε  δε σημαίνει ότι δεν είναι αλγόριθμος.

Επίσης αυτό που περιγράφει το βιβλίο ως κριτήριο της αποτελεσματικότητας δεν είναι σαφές. Στο βιβλίο του Knuth εννοείται κάτι άλλο από αυτό που φαίνεται στο σχολικό βιβλίο.
Στην αποτελεσματικότητα δεν έχει γίνει σωστή μεταφορά του όρου «effectiveness» από τα αγγλικά. Μεταφράστηκε σαν «αποτελεσματικότητα» αλλά το νόημα είναι κάτι σαν «πραγματοποιησιμότητα». Δηλαδή χρησιμοποιείται η ερμηνεία «πραγματοποιώ» της λέξης effect.

Effectiveness σημαίνει να είναι οι λειτουργίες απλές έτσι ώστε να μπορούν να εκτελεστούν ακριβώς και σε πεπερασμένο χρονικό διάστημα από κάποιον με μολύβι και χαρτί. Παραδείγματα παραβίασης του effectiveness (από το βιβλίο του Knuth) είναι το να έχεις μια συνθήκη της μορφής
Αν η ε έχει λύση
όπου η «ε» είναι μια εξίσωση που ζητούμε μόνο ακέραια λύση (διοφαντική) για την οποία δεν ξέρουμε αν υπάρχει λύση.

Άλλο παράδειγμα είναι στη διαίρεση. Αν έχουμε να διαιρέσουμε ακέραιους τότε δεν υπάρχει παραβίαση του effectiveness αφού οι ακέραιοι αναπαρίστανται ακριβώς με χαρτί και μολύβι και υπάρχει αλγόριθμος για τη διαίρεσή τους (Ευκλείδια διαίρεση). Αν όμως έχουμε αυθαίρετους πραγματικούς αριθμούς που αναπαρίστανται από άπειρα δεκαδικά ψηφία τότε παραβιάζεται το effectiveness αφού δεν μπορείς να αναπαραστήσεις ακριβώς τους εμπλεκόμενους αριθμούς με μολύβι και χαρτί.

Πρόταση: Να αναθεωρηθούν τα κριτήρια σύμφωνα με τον Knuth ή να αφαιρεθεί η είσοδος, έξοδος και αποτελεσματικότητα και να παραμείνει η περατότητα και η καθοριστικότητα που είναι «καλώς ορισμένες».

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #3 στις: 09 Φεβ 2010, 01:13:16 μμ »
Εννοείται ότι το παραπάνω κείμενο με εκφράζει απόλυτα και θα ήθελα να προσθέσω κάτι στο σκετικό με το οποίο διατυπώθηκε η πρόταση: Οι συγγραφική ομάδα προσπάθησε να μεταφέρει τα αλγοριθμικά κριτήρια από τον Knuth. Η προσωπική μου άποψη είναι ότι δεν κατάλαβε καλά το νόημα και τη μετέφερε με λάθος τρόπο.
 
Κατά συνέπεια θεωρώ ότι η πιο σωστή κίνηση που μπορούμε να κάνουμε είναι να διαβάσουμε προσεκτικά τον Knuth και να καταλάβουμε τι θέλει να πει. Η πρότασή μας πρέπει να είναι αυτό που εννοεί ο Knuth διότι αυτή ήταν η πρόθεση της συγγραφικής ομάδας.

Διαφορετικά θα πρέπει να δοθούν έγκυρες πηγές από την βιβλιογραφία.

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2812
  • Πύργος Ηλείας
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #4 στις: 09 Φεβ 2010, 02:35:58 μμ »
Δόξα σοι ο Θεός (ο Knuth εννοώ  ;):angel:

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #5 στις: 09 Φεβ 2010, 04:59:19 μμ »
Νομίζω το πρόβλημα το έχουμε στην είσοδο και την αποτελεσματικότητα.

Είσοδος : Είναι οι τιμές που δίνονται στον αλγόριθμος από το εξωτερικό του περιβάλλον. Δεν αποτελεί κριτήριο αλλά "χαρακτηριστικό". Ένας αλγόριθμος μπορεί να μην έχει είσοδο. Σε αυτή την περίπτωση τα αποτελέσματά του είναι τα ίδια για όλες τις φορές που θα εκτελεστεί.

Αποτελεσματικότητα : Συμφωνώ με την "πραγματοποιησιμότητα". Μία εντολή είναι αποτελεσματική αν υπάρχει μία τυποποιημένη διαδικασία εκτέλεσής της. Ένας άνθρωπος θα πρέπει να είναι ικανός να την εκτελέσει σε πεπερασμένο χρόνο χρησιμοποιώντας χαρτί και μολύβι. Αποτελεί κριτήριο και ορίζεται σε επίπεδο εντολής.
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1427
  • There are always possibilities...
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #6 στις: 09 Φεβ 2010, 05:18:41 μμ »
Για την πραγματοποιησιμότητα συμφωνώ.
Για την είσοδο μια συζήτηση είχε γίνει εδώ (https://alkisg.mysch.gr/steki/index.php?topic=1569.0) με ένα εύστοχο σχόλιο από τον Γιώργο τον Νικολακάκη προς το τέλος.
Προσωπικά νομίζω ότι δεν έχει σχέση με τα αποτελέσματα. Πχ. αν έχεις μια συνάρτηση που πάντα επιστρέφει την τιμή 1 δεν μπορούμε να πούμε πως το 1 είναι η είσοδος;
Ή αν έχεις έναν αλγόριθμο που ξεκινάει ένα script δεν μπορούμε να πούμε πως ο προσδιορισμός του script είναι η είσοδος (έστω και αν είναι hardcoded).
Θεωρώ ότι η είσοδος πρέπει να αποτελεί κριτήριο (έστω και ενσωματωμένη) και μπορεί να συνδυαστεί με το σχήμα που έχουν οι μαθητές στο μυαλό τους Δεδομένα->Επεξεργασία->Πληροφορία.

Το ίδιο ισχύει και για την έξοδο. Νομίζω ότι δεν πρέπει να την περιορίσουμε σε μια τιμή, αλλά ευρύτερα σε κάποιο γεγονός. Το ότι μετά από έναν αλγόριθμο ξεκινάει κάποιο script είναι μια αλλαγή στον 'εξω από τον αλγόριθμο' κόσμο, άρα έξοδος.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #7 στις: 09 Φεβ 2010, 08:09:49 μμ »
Τη θυμάμαι την κουβέντα.

Ως είσοδο εννοώ και τους τυχαίους αριθμούς και γενικά οποιαδήποτε τιμή επιλέγεται κατά την διάρκεια της εκτέλεσης από ένα σύνολο τιμών. Η τιμή αυτή όμως δεν θα πρέπει να είναι γνωστή πριν την εκτέλεση.

Αν ο αλγόριθμος ξεκινάει ένα script και αυτό είναι hardcoded τότε όσες φορές και αν εκτελεστεί θα ξεκινήσει αυτό το συγκεκριμένο script (δηλαδή θα έχει το ίδιο αποτέλεσμα).

Αν όμως έχει είσοδο τότε η τιμή του script θα πρέπει να επιλεγεί-δοθεί την στιγμή της εκτέλεσης από κάποιον άλλο αλγόριθμο ή με κάποιον άλλο τρόπο.

Για την έξοδο συμφωνώ, δεν είναι απαραίτητα τιμή.
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 608
    • Ανάπτυξη Εφαρμογών
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #8 στις: 09 Φεβ 2010, 09:42:44 μμ »
Πολύ σωστά αυτά που γράφονται, απλά για τα κριτήρια ενός αλγόριθμου να μην έχουμε στο μυαλό μας μόνο αυτόν που γίνεται πρόγραμμα και εκτελείται από υπολογιστή αλλά οποιονδήποτε αλγόριθμο που εκτελείται από οποιονδήποτε. Τότε ίσως βγάλουμε πιο εύκολα άκρη. Τι θέλω να πω, όταν δίνουμε για παράδειγμα τα βήματα για την παρασκευή  μιας μακαρονάδας (παράδειγμα που έχει για αλγόριθμο το σχολικό του Γυμνασίου), είναι ή δεν είναι αλγόριθμος; Τηρεί όλα τα κριτήρια;  Μάλλον αυτό που σημείωσε ο Σπύρος είναι απόλυτα σωστό:

Παράθεση
Ο όρος «κριτήρια» είναι αρκετά αυστηρός γιατί σημαίνει ότι αν κάποιο τμήμα κώδικα δεν έχει είσοδο τότε δεν αποτελεί αλγόριθμο. Πχ σε ένα  τμήμα κώδικα που υπολογίζει το άθροισμα 1^3 + 2^3 +3^3 +…100^3 δεν υπάρχει είσοδος αλλά είναι υπερβολικό να λέμε ότι δεν είναι αλγόριθμος.
Επίσης υπάρχουν προγράμματα που δεν έχουν έξοδο αλλά απλώς ξεκινούν άλλα προγράμματα (startup scripts).
Ο Knuth δίνει τον όρο «features» δηλαδή χαρακτηριστικά (για την είσοδο και την έξοδο) και όχι κριτήρια. Αυτό σημαίνει ότι αν κάποιο κομμάτι κώδικα δεν τα πληροί τότε  δε σημαίνει ότι δεν είναι αλγόριθμος.
Το μάθημα Ανάπτυξη Εφαρμογών δεν έχει σαν στόχο την εκμάθηση κάποιου συγκεκριμένου προγραμματιστικού περιβάλλοντος ούτε την καλλιέργεια προγραμματιστικών δεξιοτήτων από τη μεριά των μαθητών. Δεν αποσκοπεί στη λεπτομερειακή εξέταση της δομής, του ρεπερτορίου και των συντακτικων κανόνων κάποιας γλώσσας...

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #9 στις: 09 Φεβ 2010, 11:17:39 μμ »
Επειδή πιστεύω ότι στη βράση κολλάει το σίδερο, ας μην το πάμε μακρυά με αυτές τις ασάφειες. Καλό είναι οι προτάσεις να σταλούν το συντομότερο δυνατό και μιας και που τα περισσότερα είναι θέματα που έχουν συζητηθεί αρκετά, ας καταλήξουμε με κάποιο τρόπο σε αυτές.

Στο συγκεκριμένο θέμα, όπως το βλέπω, πάμε για αναθεώρηση των κριτηρίων, με καλύτερη μετάφραση ή και προσαρμογή του πρωτότυπου κειμένου, μιας και που το "καμία ή περισσότερες τιμές πρέπει να δίνονται ως είσοδος" μου φαίνεται κάπως τραγικό.

 
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

Σπύρος Δουκάκης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #10 στις: 10 Φεβ 2010, 12:45:22 πμ »
Προτείνω, λοιπόν, πρώτα από όλα η λέξη κριτήρια να αντικατασταθεί με τη λέξη χαρακτηριστικά.

Κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος

να γίνει

Χαρακτηριστικά που πρέπει να έχει ένας αλγόριθμος.

Για την είσοδο.

Έχουμε κοιτάξει ορισμό του Knuth που λέει An algorithm has zero or more inputs, i.e., quantities which are given to it initially before the algorithm begins. Προσπάθησα να εντοπίσω ένα ΔΙΚΟ του παράδειγμα με zero input αλλά δεν βρήκα... Μήπως να του τηλεφωνήσουμε;;

Πάντως στο άρθρο The Interactive Nature of Computing: Refuting the Strong Church–Turing Thesis των Dina Goldin and Peter Wegner (2008) λέει

In his definition of algorithms, Knuth was consistent with the mathematical function based foundations of the theory of computation. He explicitly specified that algorithms are closed; no new input is accepted once the computation has begun: ‘‘An algorithm has zero or more inputs, i.e., quantities which are given to it initially before the algorithm begins.’’ Knuth distinguished algorithms from arbitrary computation that may involve I/O.

το οποίο νομίζω ότι μας απαντάει και σε άλλο ανοικτό θέμα...

Με τον ορισμό του Στάθη συμφωνούμε;

Είσοδος : Είναι οι τιμές που δίνονται στον αλγόριθμος από το εξωτερικό του περιβάλλον. Δεν αποτελεί κριτήριο αλλά "χαρακτηριστικό". Ένας αλγόριθμος μπορεί να μην έχει είσοδο. Σε αυτή την περίπτωση τα αποτελέσματά του είναι τα ίδια για όλες τις φορές που θα εκτελεστεί.

ΣΔ

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #11 στις: 11 Φεβ 2010, 02:26:51 μμ »
Με τον ορισμό του Στάθη συμφωνούμε;

Εγώ συμφωνώ αρκεί να μη λέμε τη λέξη ορισμός. Είναι βαριά λέξη και κρίνεται πιο αυστηρά. Δεν υπάρχει λόγος να το αποκαλέσουμε ορισμό και να εισάγουμε περιττή αυστηρότητα. Και για μένα για να είναι κάτι είσοδος πρέπει να είναι αρχικά έξω από τον αλγόριθμο και στη συνέχει να μπει μέσα. Η εντολή χ<-2 δεν είναι είσοδος.

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1427
  • There are always possibilities...
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #12 στις: 11 Φεβ 2010, 02:32:00 μμ »
Εγώ συμφωνώ αρκεί να μη λέμε τη λέξη ορισμός. Είναι βαριά λέξη και κρίνεται πιο αυστηρά. Δεν υπάρχει λόγος να το αποκαλέσουμε ορισμό και να εισάγουμε περιττή αυστηρότητα. Και για μένα για να είναι κάτι είσοδος πρέπει να είναι αρχικά έξω από τον αλγόριθμο και στη συνέχει να μπει μέσα. Η εντολή χ<-2 δεν είναι είσοδος.
Εγώ προσωπικά διαφωνώ. Θεωρώ είσοδο οποιαδήποτε δεδομένα πάνω στα οποία ενεργούν οι εντολές, είτε αυτά έρχονται από μέσα είτε από έξω από τον αλγόριθμο.
Δεν επιμένω όμως. Βρίσκω διδακτική αξία και στις δύο προσεγγίσεις.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #13 στις: 11 Φεβ 2010, 02:39:47 μμ »
Πάντως στο άρθρο The Interactive Nature of Computing: Refuting the Strong Church–Turing Thesis των Dina Goldin and Peter Wegner (2008) λέει

In his definition of algorithms, Knuth was consistent with the mathematical function based foundations of the theory of computation. He explicitly specified that algorithms are closed; no new input is accepted once the computation has begun: ‘‘An algorithm has zero or more inputs, i.e., quantities which are given to it initially before the algorithm begins.’’ Knuth distinguished algorithms from arbitrary computation that may involve I/O.


Η παράγραφος αυτή θίγει ένα ζήτημα που το είχαμε εντοπίσει και τότε αλλά δε σταθήκαμε πολύ. Ο Knuth είχε στο νου του μαθηματικές εφαρμογές. Τότε το είχαμε εντοπίσει αυτό το θέμα με αφορμή το κριτήριο της περατότητας. Πχ ένας mail server δουλεύει συνεχώς χωρίς να τερματίζει.  Ειναι πρώτης τάξεως πρόγραμμα. Γιατί να μην είναι αλγόριθμος;

Από ότι είδα η διαφορά αλγορίθμου και προγράμματος είναι το κριτήριο της περατότητας. Αν έχεις στο νου σου κάτι σαν συνάρτηση που δέχεται εισόδους μια και καλή και παράγει εξόδους μια και καλή (χωρίς άλλη είσοδο ενδιάμεσα) τότε είναι λογικό η περατότητα να πρέπει να ικανοποιείται.

Ίσως να πρέπει να μιλήσουμε απλώς για χαρακτηριστικά και να αποφύγουμε την πιο σκληρή λέξη  κριτήρια. Τότε απλώς θα βλέπουμε αν ο αλγόριθμος έχει ή όχι κάποιο χαρακτηριστικό. 

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)
« Απάντηση #14 στις: 11 Φεβ 2010, 02:51:49 μμ »
Μια άλλη λέξη που μου ήρθε για το effectiveness είναι η «εφικτότητα». Δεν ξέρω αν υπάρχει κοινή ρίζα στο εφικτό και το effect. Είδα κάτι τέτοιο στο λεξικό αλλά καλό είναι να πει τη γνώμη του κάποιος φιλόλογος/γλωσσολόγος.

Το ουσιαστικό ερώτημα που θέλω να θέσω για να είμαστε σίγουροι ότι εννοούμε το ίδιο πράγμα είναι το εξής:  Η εντολή «Λύσε τη δευτεροβάθμια» ή «ταξινόμησε τον πίνακα» ικανοποιεί το effectiveness  ή όχι;

Για μένα Ναι. Για να παραβιάζεται το effectiveness θα πρέπει να μην μπορεί να εκτελεστεί η εντολή με το χέρι. Πρέπει να υπάρχει κάτι το ανέφικτο. Αφού η δευτεροβάθμια λύνεται με το χέρι και ο πίνακας ταξινομείται με το χέρι με  χαρτί και μολύβι τότε η εντολή είναι effective.
Το ότι δεν μπορεί να εκτελεστεί από τον υπολογιστή οφείλεται στο ότι αυτός που εκτελεί τον αλγόριθμο δεν ξέρει τι να κάνει σε αυτή την περίπτωση. Άρα λέω καθοριστικότητα. Η εντολή είναι άγνωστο σύμβολο. Κάθε άγνωστο σύμβολο θα έλεγα ότι παραβιάζει την καθοριστικότητα. Αν αντικατασταθεί με υποπρόγραμμα θα εκτελεστεί κανονικά. Ενώ κατά τη δική μου κατανόηση, κάτι που παραβιάζει το effectiveness δεν μπορεί να εκτελεστεί ούτε αν αντικατασταθεί με υποπρόγραμμα. Υπάρχει κάτι το ανέφικτο.

Δηλαδή δίνω έμφαση στο αν μπορεί να εκτελεστεί με χαρτί και μολύβι δηλαδή με το χέρι.