Αλγοριθμικά κριτήρια (Ασάφεια διδακτικού πακέτου)

Ξεκίνησε από gpapargi, 09 Φεβ 2010, 11:35:14 ΠΜ

« προηγούμενο - επόμενο »

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

Ναι
Όχι

gthal

Παράθεση από: ntzios kostas στις 09 Φεβ 2010, 09:42:44 ΜΜ
Πολύ σωστά αυτά που γράφονται, απλά για τα κριτήρια ενός αλγόριθμου να μην έχουμε στο μυαλό μας μόνο αυτόν που γίνεται πρόγραμμα και εκτελείται από υπολογιστή αλλά οποιονδήποτε αλγόριθμο που εκτελείται από οποιονδήποτε.
Συμφωνώ, αυτό ίσως μας ξεμπλοκάρει σε κάποια σημεία.

Παράθεση από: sdoukakis στις 10 Φεβ 2010, 12:45:22 ΠΜ
Προτείνω, λοιπόν, πρώτα από όλα η λέξη κριτήρια να αντικατασταθεί με τη λέξη χαρακτηριστικά.
Συμφωνώ

Παράθεση από: sstergou στις 09 Φεβ 2010, 04:59:19 ΜΜ
Είσοδος : Είναι οι τιμές που δίνονται στον αλγόριθμος από το εξωτερικό του περιβάλλον. Δεν αποτελεί κριτήριο αλλά "χαρακτηριστικό". Ένας αλγόριθμος μπορεί να μην έχει είσοδο. Σε αυτή την περίπτωση τα αποτελέσματά του είναι τα ίδια για όλες τις φορές που θα εκτελεστεί.
Συμφωνώ, και να μην τον πούμε ορισμό.

Παράθεση από: gpapargi στις 11 Φεβ 2010, 02:39:47 ΜΜ
Πχ ένας mail server δουλεύει συνεχώς χωρίς να τερματίζει.  Ειναι πρώτης τάξεως πρόγραμμα. Γιατί να μην είναι αλγόριθμος;
Γιώργο με πρόλαβες. Έψαχνα κι εγώ ένα καλό παράδειγμα. Αυτή η περατότητα (αν και σημαντική και την δέχομαι σε κάποιες περιπτώσεις) δε μου κολλάει καλά και αυτό το "υπολογιστική διαδικασία" μου έχει κάτσει στο λαιμό από όταν το πρωτοδιάβασα. Δεν μπορεί ένας αλγόριθμος εσκεμμένα να μην τερματίζει; Και τότε θα λέγεται "υπολογιστική διαδικασία" ; Κάτι δε μου πάει καλά.

Παράθεση από: gpapargi στις 11 Φεβ 2010, 02:51:49 ΜΜ
Μια άλλη λέξη που μου ήρθε για το effectiveness είναι η «εφικτότητα».
Μου αρέσει !  :)

Παράθεση από: gpapargi στις 11 Φεβ 2010, 02:51:49 ΜΜ
Το ουσιαστικό ερώτημα που θέλω να θέσω για να είμαστε σίγουροι ότι εννοούμε το ίδιο πράγμα είναι το εξής:  Η εντολή «Λύσε τη δευτεροβάθμια» ή «ταξινόμησε τον πίνακα» ικανοποιεί το effectiveness  ή όχι;
Ναι.

Παράθεση από: gpapargi στις 11 Φεβ 2010, 02:51:49 ΜΜ
Για να παραβιάζεται το effectiveness θα πρέπει να μην μπορεί να εκτελεστεί η εντολή με το χέρι. Πρέπει να υπάρχει κάτι το ανέφικτο. Αφού η δευτεροβάθμια λύνεται με το χέρι και ο πίνακας ταξινομείται με το χέρι με  χαρτί και μολύβι τότε η εντολή είναι effective.
Εδώ διαφωνώ μερικώς: δεν έχει να κάνει με χέρι, χαρτί και μολύβι.
Για να παραβιάζεται το effectiveness θα πρέπει η εντολή να μην είναι εκτελέσιμη (να είναι ανέφικτη) από αυτόν που τη δέχεται, ακόμα κι αν την καθορίσω πλήρως (καθοριστικότητα). πχ η εντολή "βγες από το δωμάτιο" είναι ανέφικτη για το PC μου (τυχαίνει να μην μπορεί να κουνηθεί), ενώ είναι εφικτή για ένα ρομπότ (αν έχει καθοριστεί το πώς εκτελείται), για έναν άνθρωπο, ακόμα και για το σκύλο μου :)
Η λύση της δευτεροβάθμιας είναι εφικτή για τον υπολογιστή μου, γιατί αν καθορίσω πλήρως τις ενέργειες, μπορεί να την κάνει.
Φιλικά,
Γιώργος Θαλασσινός

gthal

Α, κι ένα σημείο που ξέχασα:
εγώ, από τα πανάρχαια φοιτητικά μου χρόνια, θυμάμαι κι ένα άλλο χαρακτηριστικό των αλγορίθμων που δεν αναφέρεται ούτε στο βιβλίο, ούτε από κανέναν ως τώρα, τόσο που φοβάμαι ότι ίσως το θυμάμαι εκ του μη όντως.
(θα έψαχνα τα βιβλία μου αλλά αυτό είναι "ανέφικτο" μετά από την τελευταία μου μετακόμιση  :( )

Το χαρακτηριστικό της Γενικότητας. Ότι δηλ. δεν έχει νόημα να γράψω αλγόριθμο που λύνει την εξίσωση 2χ+6=0
αλλά να γράψω έναν αλγόριθμο που θα λύνει κάθε εξίσωση αυτής της μορφής.
Δεν υπήρχε κάτι τέτοιο ?  (ή μόνος μου το έφτιαξα?  ;D)
Φιλικά,
Γιώργος Θαλασσινός

sstergou

 Δεν ξέρω αν υπάρχει αλλά κάλλιστα μπορεί να προστεθεί σαν χαρακτηριστικό των "καλών" αλγορίθμων. Λέξεις που ταιριάζουν είναι generalness και abstraction. Πιστεύω συνδέεται και με την είσοδο.

Δεν θα πρότεινα να το πάμε τόσο μακρυά, δηλαδή να ορίσουμε και νέα κριτήρια. Ας διορθώσουμε αυτά που υπάρχουν.

Μάλλον συμφωνούμε ως προς τα "χαρακτηριστικά" αλλά και την αποτελεσματικότητα, την είσοδο και την περατότητα.

Η μόνη διαφωνία είναι για το αν η εκχώρηση αποτελεί είσοδο. Προτείνω να ψηφίσουμε.

tom

Παράθεση από: sstergou στις 11 Φεβ 2010, 07:03:55 ΜΜ
Δεν ξέρω αν υπάρχει αλλά κάλλιστα μπορεί να προστεθεί σαν χαρακτηριστικό των "καλών" αλγορίθμων. Λέξεις που ταιριάζουν είναι generalness και abstraction.
Μάλλον συμφωνούμε ως προς τα "χαρακτηριστικά" αλλά και την αποτελεσματικότητα, την είσοδο και την περατότητα.
Η μόνη διαφωνία είναι για το αν η εκχώρηση αποτελεί είσοδο. Προτείνω να ψηφίσουμε.
Στάθη πιο δόκιμος είναι ο όρος "generality" και όχι "abstraction" που σημαίνει την παρουσίαση μιας έννοιας με κρυμμένες λεπτομέρειες. Βέβαια εδώ υπάρχει ένας κίνδυνος. Το generality (ή Γενικότητα που λέει ο gthal) συνδέεται και με την έννοια της ασάφειας-αοριστίας-γενικολογίας που είναι άσχημα χαρακτηριστικά για έναν αλγόριθμο. Γι ΄αυτό θα έλεγα ή να αποφύγουμε να το συμπεριλάβουμε ως χαρακτηριστικό ή να το διορθώσουμε.

Παράθεση από: gpapargi στις 11 Φεβ 2010, 02:39:47 ΜΜ
Η παράγραφος αυτή θίγει ένα ζήτημα που το είχαμε εντοπίσει και τότε αλλά δε σταθήκαμε πολύ. Ο Knuth είχε στο νου του μαθηματικές εφαρμογές. Τότε το είχαμε εντοπίσει αυτό το θέμα με αφορμή το κριτήριο της περατότητας. Πχ ένας mail server δουλεύει συνεχώς χωρίς να τερματίζει.  Ειναι πρώτης τάξεως πρόγραμμα. Γιατί να μην είναι αλγόριθμος;
Ένας mail server που δουλεύει συνεχώς είναι ένα process (deamon), ενός λογισμικού (π.χ. Postfix, Mailtraq...), που βασίζεται σε ένα πρόγραμμα (γραμμένο σε C, C++), που υλοποιεί έναν/περισσότερους αλγορίθμους. Για μένα ένας αλγόριθμος θα πρέπει να χαρακτηρίζεται από περατότητα υποχρεωτικά.

Παράθεση από: pgrontas στις 11 Φεβ 2010, 02:32:00 ΜΜ
Εγώ προσωπικά διαφωνώ. Θεωρώ είσοδο οποιαδήποτε δεδομένα πάνω στα οποία ενεργούν οι εντολές, είτε αυτά έρχονται από μέσα είτε από έξω από τον αλγόριθμο.
Δεν επιμένω όμως. Βρίσκω διδακτική αξία και στις δύο προσεγγίσεις.

Μήπως έχει δίκιο βρε παιδιά; Δεν είμαι σίγουρος...

Παράθεση από: sdoukakis στις 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 αλλά δεν βρήκα... Μήπως να του τηλεφωνήσουμε;;
Μήπως ο Knuth εννοεί zero-input την περίπτωση όπου ο αλγόριθμος επεξεργάζεται δεδομένα από εκχώρηση ή κάποια συνάρτηση random(), ενώ more input όταν υπάρχει και αλληλεπίδραση με χρήστη; Σε αυτή την περίπτωση όλοι δίκιο έχουμε . Ακόμα και το παράδειγμα του pgrontas είναι κατηγορίας zero-input  :)

Παράθεση από: sstergou στις 09 Φεβ 2010, 04:59:19 ΜΜ

Αποτελεσματικότητα : Συμφωνώ με την "πραγματοποιησιμότητα". Μία εντολή είναι αποτελεσματική αν υπάρχει μία τυποποιημένη διαδικασία εκτέλεσής της. Ένας άνθρωπος θα πρέπει να είναι ικανός να την εκτελέσει σε πεπερασμένο χρόνο χρησιμοποιώντας χαρτί και μολύβι. Αποτελεί κριτήριο και ορίζεται σε επίπεδο εντολής.
Νομίζω το "εφικτότητα" είναι καλό.
...
Φυσικά έξοδος θα πρέπει να υπάρχει είτε με τη μορφή εμφάνισης τιμής είτε με ενεργοποίηση άλλου αλγορίθμου πάλι με το πέρασμα τιμής (π.χ. διεύθυνση επιστροφής).

Για το καθοριστικότητα δε με χαλάει ο ορισμός του βιβλίου.

Τέλος συμφωνώ με το "χαρακτηριστικά" και όχι κριτήρια.


Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

sstergou


Παράθεση από: tom στις 11 Φεβ 2010, 08:10:12 ΜΜ
Ένας mail server που δουλεύει συνεχώς είναι ένα process (deamon), ενός λογισμικού (π.χ. Postfix, Mailtraq...), που βασίζεται σε ένα πρόγραμμα (γραμμένο σε C, C++), που υλοποιεί έναν/περισσότερους αλγορίθμους. Για μένα ένας αλγόριθμος θα πρέπει να χαρακτηρίζεται από περατότητα υποχρεωτικά.

Συμφωνώ, ο knuth μάλιστα διαχωρίζει τον αλγόριθμο από μια διαδικασία που συνεχώς επικοινωνεί με το περιβάλλον της (reactive process την ονομάζει). Νομίζω ότι στο νου του είχε συγκεκριμένα πράγματα και μάλλον αυτά δεν συμπεριλαμβάνουν γενικά όλες τις εκτελέσιμες διαδικασίες.

Παράθεση από: tom στις 11 Φεβ 2010, 08:10:12 ΜΜ
Στάθη πιο δόκιμος είναι ο όρος "generality" και όχι "abstraction"...
μάλλον σωστό είναι αυτό που λες.

sstergou

Παράθεση από: tom στις 11 Φεβ 2010, 08:10:12 ΜΜ
Μήπως ο Knuth εννοεί zero-input την περίπτωση όπου ο αλγόριθμος επεξεργάζεται δεδομένα από εκχώρηση ή κάποια συνάρτηση random(), ενώ more input όταν υπάρχει και αλληλεπίδραση με χρήστη

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

tom

Παράθεση από: sstergou στις 11 Φεβ 2010, 08:30:38 ΜΜ
Η random σίγουρα είναι είσοδος. Με αυτήν επιλέγεται μία τιμή από ένα σύνολο κατά την διάρκεια της εκτέλεσης. Με την εκχώρηση δεν συμβαίνει κάτι τέτοιο. Η είσοδος κατά την γνώμη μου δεν πρέπει να είναι γνωστή στον αλγόριθμο πριν την εκτέλεσή του.
Έστω το παρακάτω τμήμα αλγορίθμου:

...
3. α<-10
...
8. β<-α+20
...
15. Εμφάνισε β

Αν σκεφτείς το τρίπτυχο είσοδος->επεξεργασία-> έξοδος,  πριν ο αλγόριθμος (θεωρώ πως η "καρδιά του" είναι το κομμάτι της επεξεργασίας) μπει στη φάση επεξεργασίας (εντολή 8 ) δε γνωρίζει τι έχει το α (πρωτογενές δεδομένο). Μόνο ο compiler το γνωρίζει. Άντε και το Λ.Σ. ;-)

Δε ξέρω δεν είμαι απόλυτος. Ας δούμε τι θα πουν και άλλοι συνάδελφοι.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

sstergou

Παράθεση από: tom στις 11 Φεβ 2010, 08:55:53 ΜΜ
Έστω το παρακάτω τμήμα αλγορίθμου:

...
3. α<-10
...
8. β<-α+20
...
15. Εμφάνισε β


Υπάρχουν τα εξής προβλήματα
1) Ποιες εκχωρήσεις είναι είσοδος και ποιες όχι και με ποια κριτήρια; Η α<- α + 1 είναι;
2) Σε μια μεταβλητή μπορεί να αποδοθεί αρχικά τιμή και με άλλο τρόπο : π.χ. Για ι από 1 μέχρι... είναι και αυτό είσοδος;

Στο παράδειγμά σου υπάρχουν δύο ενδεχόμενα
1) Στις εντολές που λείπουν να υπάρχουν κάποιες που αλλάζουν τα α, β . Αυτές είναι είσοδος ή μόνο η αρχικές; Η μήπως δεξιά της εκχώρησης μπορεί να υπάρχει μόνο μία τιμή; Και αν ναι , μπορεί να υπάρχει κλήση συνάρτησης;
2) Δεν υπάρχουν εντολές που αλλάζουν τα α, β. Σε αυτή την περίπτωση μπορείς να σβήσεις όλες τις εντολές που έγραψες και να αφήσεις ένα Εμφάνισε 30 στο τέλος.

Αισθάνομαι ότι πάλι κάνω κύκλους...
https://alkisg.mysch.gr/steki/index.php?topic=1569.0
Πιστεύω ότι η συζήτηση στο παραπάνω θέμα είναι κατατοπιστική

tom

Παράθεση από: sstergou στις 11 Φεβ 2010, 09:05:38 ΜΜ
Υπάρχουν τα εξής προβλήματα
1) Ποιες εκχωρήσεις είναι είσοδος και ποιες όχι και με ποια κριτήρια; Η α<- α + 1 είναι;
2) Σε μια μεταβλητή μπορεί να αποδοθεί αρχικά τιμή και με άλλο τρόπο : π.χ. Για ι από 1 μέχρι... είναι και αυτό είσοδος;

Στο παράδειγμά σου υπάρχουν δύο ενδεχόμενα
1) Στις εντολές που λείπουν να υπάρχουν κάποιες που αλλάζουν τα α, β . Αυτές είναι είσοδος ή μόνο η αρχικές; Η μήπως δεξιά της εκχώρησης μπορεί να υπάρχει μόνο μία τιμή; Και αν ναι , μπορεί να υπάρχει κλήση συνάρτησης;
2) Δεν υπάρχουν εντολές που αλλάζουν τα α, β. Σε αυτή την περίπτωση μπορείς να σβήσεις όλες τις εντολές που έγραψες και να αφήσεις ένα Εμφάνισε 30 στο τέλος.

Αισθάνομαι ότι πάλι κάνω κύκλους...
https://alkisg.mysch.gr/steki/index.php?topic=1569.0
Πιστεύω ότι η συζήτηση στο παραπάνω θέμα είναι κατατοπιστική

Μιλάω για την πρώτη φορά που εκχωρείται τιμή σε μια μεταβλητή. Γι αυτό αν δεις το μήνυμα μου είπα ότι το "3. α<-10" δημιουργεί πρωτογενές δεδομένο (πρώτη γέννηση) ως είσοδο.
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

evry

  Φοβάμαι ότι το κριτήριο της εισόδου μπάζει λίγο, δηλαδή και είσοδο να μην έχει μια υπολογιστική διαδικασία δε σημαίνει ότι δεν είναι αλγόριθμος. Για παράδειγμα ο υπολογισμός του e. Το ίδιο πράγμα υπολογίζει αλλά είναι αλγόριθμος. Ποια είσοδο έχει?
  Επίσης αυτό με τις εκχωρήσεις, δεν ξέρω αν μπορούμε να θεωρήσουμε όλες τις εκχωρήσεις σαν είσοδο ακόμα και αν πρόκειται για πρωτογενείς τιμές όπως πολύ εύστοχα είπε ο Tom. Εδώ όμως θέλει πολύ προσοχή γιατί υπάρχουν εκχωρήσεις σε πρωτογενείς τιμές που δεν αποτελούν είσοδο. Αυτό το κριτήριο δεν ξέρω αν θα έπρεπε να υπάρχει καν, για αυτό και δεν ξέρω αν θα έπρεπε να διατυπώσουμε κάποια γνώμη πάνω σε αυτό.

Για παράδειγμα ο παρακάτω αλγόριθμος υπολογίζει τον μέσο όρο των βαθμών 100 μαθητών και πόσοι από αυτούς έχουν βαθμό πάνω από τον μέσο όρο

Δεδομένα // Βαθμός //

Ν <-- 100                    ! Σταθερά
Σ<--0                          ! Αθροιστής
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν
       Σ <-- Σ + Βαθμός[ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΟ <-- Σ / Ν
πλήθος<--0                          ! μετρητής
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν
       ΑΝ Βαθμός[ι] > ΜΟ ΤΟΤΕ
           πλήθος <- πλήθος + 1
       ΤΕΛΟΣ_ΑΝ       
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Αποτέλεσματα // ΜΟ, πληθος //

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

Επίσης η περατότητα είναι πολύ σημαντικό κριτήριο. Το παράδειγμα που έδωσε ο Γιώργος με τον server που δεν τερματίζει έχει την εξής ιδιαιτερότητα. Δεν πρόκειται για αλγόριθμο ο οποίος έχει έναν συγκεκριμένο σκοπό. Απλά περιμένει σε μια κατάσταση stand by και εκτελεί αλγορίθμους οι οποίοι όμως τερματίζουν. Αν μπορούσαμε να έχουμε τον server κλειστό και κάθε φορά που θα είχαμε μια αίτηση να "ξύπναγε" και να την εξυπηρετούσε τότε θα ήταν όλα μια χαρά.
   Η ιδέα είναι "να τερματίζει ο αλγόριθμος που έχει γίνει για έναν συγκεκριμένο σκοπό, και πρέπει να βγάλει αποτέλεσμα". Όταν ο server περιμένει δεν έχει ούτε δεδομένα ούτε αποτελέσματα. Δεν πρόκειται δηλαδή για αλγόριθμο από τον οποίο περιμένουμε από στιγμή σε στιγμή κάποιο αποτέλεσμα, ώστε να ελέγξουμε αν πληροί και τα υπόλοιπα κριτήρια.
  Είναι σαν να περιμένει ένα πρόγραμμα μια εντολή Διάβασε και ο χρήστης να μην την δίνει. Παραβιάζεται η περατότητα?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sstergou

Σκεφτείτε και τα διαγράμματα ροής. Εκεί η εκχώρηση έχει διαφορετικό σύμβολο από την Διάβασε.
Οπότε ρωτάω εγώ : Αν κάποιες από τις εκχωρήσεις είναι εντολές εισόδου τότε θα πρέπει να τις βάζουμε και σε πλάγιο παραλληλόγραμμο;

Πιστεύω ότι αν δεχτούμε την εκχώρηση ως είσοδο, δημιουργούμε περισσότερα προβλήματα από όσα λύνουμε...

gpapargi

Για μένα η εκχώρηση δεν μπορεί να είναι είσοδος. Ένας κώδικας μπορεί να έχει πολλές εντολές εκχώρησης. Πως θα ξεχωρίσουμε ποιες είναι είσοδος και ποιες όχι;
Εννοείται ότι κοιτώντας απλώς ένα κώδικα θα πρέπει να μπορούμε να καταλάβουμε αν μια εντολή είναι ή όχι είσοδος. Η γνώμη είναι ότι αν δεχτούμε ως εισόδους τις εκχωρήσεις θα μπλέξουμε με ασάφειες πάλι. Τα οράγματα μπορούν να είναι απλά και σαφή: Αν είναι κάτι έξω και στη συνέχεια μπάινει μέσα τότε είναι είσοδος. Δηλαδή εντολή Διάβασε.

gpapargi

Να πω επίσης κάτι σημαντικό. ΔΕΝ θέλουμε να ξεμακρύνουμε από το βιβλίο. Δεν μπορούμε να βάλουμε άλλα κριτήρια μέσα στα υπάρχοντα επειδή μας φαίνεται λογικό.
Αν αρχίσουμε και λέμε "και αυτό θα ήταν ωραίο", "και το άλλο θα ήταν ωραίο" στο τέλος θα πάμε σε καινούργιο βιβλίο πράγμα π[ου δεν θα γίνει ποτέ.
Θέλουμε απλώς αλλαγές στα ήδη υπάρχοντα πράγματα ώστε να αποσαφηνιστούν οι ασάφειες. Μόνο έτσι έχουμε ελπίδα να κάνουμε σύντομα κάποια αλλαγή. Όχι σε φιλοσοφικές συζητήσεις σχετικά με τι άλλο θα ήταν ωραία. Πάρα πολλά θα ήταν ωραία, αλλά απομακρυνόμαστε από το βιβλίο. Το ζήτημα είναι να δουν τις ασάφειες οι συγγραφείς και να αποφανθούν τελεσίδικα.

gpapargi

Για το θέμα του mail server... αν είναι πολλοί αλγόριθμοι μέσα, τότε μπορούμε να θεωρήσουμε οποιδήποτε daemon τρέχει στο background και κάνει κάτι πολύ απλό. Ας φανταστούμε ένα daemon ο οποίος ακούει σε μια πόρτα και κάποιο άλλο process του στέλνει ένα αριθμό για να τον ελέγξει αν είναι πρώτος.
Θέλω να πω ... ας μην τα χαλάσουμε εκεί. Το θέμα είναι το κριτήριο της περατότητας το θέλουμε σφικτό ή όχι;
Από τη μια μπορούμε να τα πούμε όλα "χαρακτηριστικά" αποφεύγοντας αυστηρότητες και από την άλλη πάμε για κατά γράμμα ερμηνεία του Knuth. Με βάση αυτό όμως, τι θα πούμε για το daemon που ακούει μια TCP port και κάνει έλεγχο πρώτου παράγοντα ως προς την περατότητα;

tom

Παράθεση από: gpapargi στις 12 Φεβ 2010, 02:53:33 ΜΜ
Με βάση αυτό όμως, τι θα πούμε για το daemon που ακούει μια TCP port και κάνει έλεγχο πρώτου παράγοντα ως προς την περατότητα;

Μα ο αλγόριθμος που υλοποιεί τον deamon δεν θα έχει κάποιον handler που θα χειρίζεται τη συνθήκη τερματισμού;
Όταν λάβει σήμα τερματισμού από το Λ.Σ. θα τερματίσει. Άρα πάλι μιλάμε για αυστηρή περατότητα, άσχετα αν αυτό γίνεται μια φορά το χρόνο η ποτέ. Θέλω να πω, θεωρητικά ο deamon μπορεί να μην τερματίσει ποτέ, αλλά ο αλγόριθμος που τον υλοποιεί το προβλέπει.

παραθέτω σημειώσεις από το μάθημα "Network Technology & Programming" που είχα παρακολουθήσει στο πλαίσιο του μεταπτυχιακού μου παλιότερα.  :'( (Συγκινήθηκα)

http://www.csd.uoc.gr/~hy435/sockets.ppt
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι