Αποστολέας Θέμα: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η  (Αναγνώστηκε 6793 φορές)

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 887
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #15 στις: 17 Νοέ 2015, 08:55:55 πμ »
Το n που χρησιμοποιει συμβολίζει το πλήθος στοιχείων στη μία διάσταση του πίνακα. Στο παράδειγμα σου με τα 1600 δεδομένα το n είναι 40. Εννοεί λοιπόν ότι είναι τετραγωνικός ως προς αυτό.
Ναι, το n στην προκειμένη τον βολεύει γιατί ο πίνακας είναι τετραγωνικός.
Αν ο πίνακας ήταν ΝΧΜ τι θα χρησιμοποιούσε σαν μέγεθος εισόδου ? ? ?
Φιλικά,
Γιώργος Θαλασσινός

apoldem

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #16 στις: 17 Νοέ 2015, 05:27:47 μμ »
Παράθεση
Ναι, το n στην προκειμένη τον βολεύει γιατί ο πίνακας είναι τετραγωνικός.
Αν ο πίνακας ήταν ΝΧΜ τι θα χρησιμοποιούσε σαν μέγεθος εισόδου ? ? ?

Το μέγεθος της εισόδου μπορεί να περιγράφεται από δύο ή περισσότερες παραμέτρους. Αν ακολουθήσουμε το σκεπτικό του παραδείγματος 2 και το εφαρμόσουμε σε πίνακα ΝΧΜ, τότε το μέγεθος της εισόδου είναι οι αριθμοί Ν και Μ και η πολυπλοκότητα προκύπτει ΝΧΜ.

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 887
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #17 στις: 17 Νοέ 2015, 05:46:10 μμ »
Μα πώς θα ήταν η πολυπλοκότητα ΝΧΜ, αφού δεν υπάρχει τέτοιος συμβολισμός? Μπορούμε να πούμε ότι είναι Ο(ΝΧΜ) ? ? ?
Φιλικά,
Γιώργος Θαλασσινός

apoldem

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #18 στις: 17 Νοέ 2015, 07:11:31 μμ »
Και βέβαια μπορούμε. Το μέγεθος της εισόδου μπορεί να περιγραφεί από περισσότερες μεταβλητές, ανεξάρτητες μεταξύ τους. Για παράδειγμα στα δίκτυα (ή γράφοι) είναι πολύ συνηθισμένο να μετράμε το μέγεθος τους με το πλήθος των κόμβων (n) και το πλήθος των συνδέσεων (m). Π.χ. ο διάσημος αλγόριθμος Dijkstra για τις συντομότερες διαδρομές έχει (χοντρικά) πολυπλοκότητα Ο(n+m).

Πιο γήινο παραδείγματα: Έχουμε δύο πίνακες ακεραίων Α[N] και Β[M]. Θέλουμε να βρούμε όλα τα ζευγάρια στοιχείων, που το ένα στοιχείο να ανήκει στον Α και το άλλο στον Β, και το άθροισμά τους να είναι 100.
Θα πρέπει να τσεκάρουμε όλα τα ζευγάρια στοιχείων μεταξύ Α και Β. Πολυπλοκότητα Ο(N*M).

Άλλο παράδειγμα: Έχουμε πάλι τους πίνακες Α[Ν] και Β[Μ]. Θέλουμε να βρούμε αν υπάρχει περίπτωση επιλέγοντας ένα οποιοδήποτε στοιχείο του Α και δύο οποιαδήποτε στοιχεία του Β να βρούμε άθροισμα 100. Εδώ τώρα επειδή διαλέγουμε 2 στοιχεία από το Β η πολυπλοκότητα θα βγει Ο(Ν*Μ2).

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1316
  • There are always possibilities...
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #19 στις: 17 Νοέ 2015, 08:16:24 μμ »
Ναι, το n στην προκειμένη τον βολεύει γιατί ο πίνακας είναι τετραγωνικός.
Αν ο πίνακας ήταν ΝΧΜ τι θα χρησιμοποιούσε σαν μέγεθος εισόδου ? ? ?

Μια παρατήρηση που ίσως διευκολύνει, ίσως και αναψει φωτιες.
Το n δεν είναι η είσοδος του αλγορίθμου.
Τα στοιχεία του πίνακα είναι η είσοδος.

Το n απλά ειναι κατι που πρέπει να έχει οριστεί πριν τρέξει ο αλγόριθμος.

Δηλ. δεν σημαίνει ότι οτιδήποτε υπάρχει στα δεδομένα θα επηρεάσει την πολυπλοκότητα.
A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #20 στις: 18 Νοέ 2015, 09:47:12 πμ »
Μια παρατήρηση που ίσως διευκολύνει, ίσως και αναψει φωτιες.
Το n δεν είναι η είσοδος του αλγορίθμου.
Τα στοιχεία του πίνακα είναι η είσοδος.

Το n απλά ειναι κατι που πρέπει να έχει οριστεί πριν τρέξει ο αλγόριθμος.

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

Δεν καταλαβαίνω τι εννοείς. Η πολυπλοκότητα περιγράφει πώς αντιδρά ο αλγόριθμος (χωρικά|χρονικά) σε αλλαγές στο μέγεθος του input. Τι φωτιά ανάβει το ότι δεν έχει σχέση με τα δεδομένα per se;

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2449
  • I 'm not young enough to know everything
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #21 στις: 07 Δεκ 2015, 01:15:21 μμ »
Κατά η δική μου κατανόηση, η πολυπλοκότητα είναι μια συνάρτηση και θα πρέπει να ξεκαθαρίσεις ποια είναι ανεξάρτητη μεταβλητή σου. Δηλαδή να αποφασίσεις η πολυπλοκότητα συνάρτηση ποιου πράγματος είναι.
Τυπικά (δηλαδή με βάση τον ορισμό των μηχανώνΤuring) η πολυπλοκότητα είναι με βάση το χαρακτήρων που δίνεις να είσοδο. Γι αυτό θα δεις ότι ο έλεγχος για το αν ένας αριθμός είναι πρώτος, υπολογίζεται όχι με βάση τον αριθμό που ελέγχουμε αν είναι πρώτος, αλλά με βάση το πλήθος των ψηφίων του αριθμού. Πχ το επίτευγμα το αλγορίθμου AKS είναι ότι έλυσε το πρόβλημα σε πολυωνυμικό χρόνο από εκθετικός που ήταν πριν. Αν μετράγαμε με βάση τον αριθμό που ελέγχουμε (και όχι το πλήθος των ψηφίων του) θα ήταν εξαρχής πολυωνυμική η λύση.
Στην πράξη όμως το να πας τυπικά με το πλήθος των χαρακτήρων εισόδου είναι άβολο και πάμε με κάτι πιο βολικό/πρακτικό. Ότι μεταβλητή όμως και να χρησιμοποιήσουμε, μπορούμε να πάμε και σε άλλη μέσω σύνθεσης συναρτήσεων.
Πχ στον αλγόριθμο του τετραδίου με τον νΧν δισδιάστατο πίνακα, αν έχω μεταβλητή το ν τότε ναι πάω για τετραγωνική πολυπλοκότητα  (του ν). Αν έχω το πλήθος των στοιχείων (ν^2=π) τότε έχω γραμμική συνάρτηση του π (πλήθος). Συμφωνώ ότι είναι άκομψο το να διαλέξεις σα μεταβλητή το ν και όχι το πλήθος των στοιχείων. Γι αυτό ανέφερα και το παράδειγμα με τους πρώτους πιο πριν, για να δείξω το ρόλο της μεταβλητής που επιλέγω. Τελικά πιστεύω ότι είναι μαθηματικό παιχνίδι επιλογής της ανεξάρτητης μεταβλητής και κατασκευής συνάρτησης πάνω σε αυτή. Καλό είναι να διαλέγουμε μεταβλητή που να ταιριάζει με τη διαίσθησή μας.

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1316
  • There are always possibilities...
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #22 στις: 07 Δεκ 2015, 04:29:37 μμ »
Γιώργο συμφωνώ μαζί σου. Όμως ο αλγόριθμος έχει και μία σημασιολογία η οποία μας οδηγεί στο να επιλέξουμε την ανεξάρτητη μεταβλητή, όπως λες.
Δεν είναι λοιπόν όλες οι επιλογές ισοδύναμες.

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

Το ν απλά πρέπει να είναι γνωστό πριν ξεκινήσει ο αλγόριθμος, γι'αυτό υπάρχει στα δεδομένα.

itt (έστω και με καθυστέρηση): Οι φωτιές αναφέρονταν στο να μην ξεκινήσει η συζήτηση περι των ασαφειων της εντολής δεδομένα.
A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2449
  • I 'm not young enough to know everything
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #23 στις: 07 Δεκ 2015, 04:49:06 μμ »
Έχω μια μικρή επιφύλαξη στο αν πρέπει να στηριχτούμε στη σημασιολογία ή αν έχουμε το δικαίωμα να το δούμε τελείως  ψυχρά μαθηματικά το θέμα χωρίς φυσική σημασία: το ότι στον έλεγχο πρώτου η ανεξάρτητη μεταβλητή μας είναι το πλήθος των ψηφίων του αριθμού που ελέγχουμε και όχι ο αριθμός. Αν πηγαίναμε σημασιολογικά θα έπρεπε να είναι ο αριθμός. Η διαίσθηση αυτό λέει.

Δηλαδή στο παράδειγμα του βιβλίου, αν το δούμε διαισθητικά/σημασιολογικά η λογική επιλογή είναι το ν^2 σαν ανεξάρτητη μεταβλητή. Αν το δούμε σαν παιχνίδι επιλογής μεταβλητής μπορείς (έστω και αν είναι άκομψο) να έχεις ανεξάρτητη μεταβλητή το ν. Το παράδειγμα των πρώτων είναι που ανακατεύει το πράγμα.

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1316
  • There are always possibilities...
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #24 στις: 07 Δεκ 2015, 10:41:01 μμ »
Μάλλον δεν το εξέφρασα καλά.
Και στις δύο περιπτώσεις (πρώτοι και παράδειγμα) μας απασχολεί το μέγεθος της εισόδου. Στους πρώτους είναι τo μέγεθος της αναπαράστασης του αριθμού σε bits, ενώ στο παράδειγμα το πλήθος των αριθμών. Από  τη μία προσθέτοντας ένα bit διπλασιάζεται η δουλειά, από την άλλη προσθέτοντας έναν αριθμό η δουλειά απλά αυξάνεται κατά ένα.
Απλά στο παράδειγμα πρέπει να ανακαλύψουμε ποια είναι η είσοδος από τον αλγόριθμο και όχι να πάρουμε στα τυφλά ότι λέει η εντολή δεδομένα (η οποία δεν έχει πάντα σχέση με την είσοδο για την πολυπλοκότητα). Αυτό εννοώ με το σημασιολογία.
A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2213
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #25 στις: 08 Δεκ 2015, 12:08:12 πμ »
Ένα αρκετά πολύπλοκο κεφάλαιο που προστέθηκε στην ύλη ελαφρά τη καρδιά και χωρίς διευκρινίσεις με την μισή χρονιά πίσω μας πλέον
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2449
  • I 'm not young enough to know everything
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #26 στις: 08 Δεκ 2015, 05:20:51 μμ »
Κατάλαβα τι λες Παναγιώτη και συμφωνώ για το Δεδομένα //ν//. Πχ στους αραιούς δίνει το ν και ο πίνακας έχει μέγεθος 3ν.
Νομίζω όπως ότι η συζήτηση μοιραία θα περιστραφεί και γύρω από την είσοδο. Πχ δες ένα παράδειγμα:
Να γραφτεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό και θα εκτυπώνει τους ακέραιους από το 1 μέχρι αυτόν.
Διάβασε ν
Για ι από 1 μέχρι ν
  Γράψε ι
Τέλος_επανάληψης

Ποια είναι η είσοδος και ποια είναι η ανεξάρτητη μεταβλητή συναρτήσει της οποίας θα υπολογίσουμε την πολυπλοκότητα;
Είναι το πλήθος των ψηφίων του αριθμού ή ο αριθμός; Αν είναι το πρώτο, η πολυπλοκότητα είναι συνάρτηση του πλήθους των ψηφίων και  είναι εκθετική. Αν είναι το δεύτερο η πολυπλοκότητα είναι συνάρτηση του αριθμού ν και είναι γραμμική.
Η συζήτηση για την ανεξάρτητη μεταβλητή συναρτήσει της οποίας βγάζουμε την πολυπλοκότητα μοιραία επαναφέρει και το "στοιχειωμένο" ζήτημα της εισόδου.  Εγώ είμαι υπέρ της πρώτης απάντησης.
« Τελευταία τροποποίηση: 08 Δεκ 2015, 05:35:38 μμ από gpapargi »

ether

  • Επισκέπτης
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #27 στις: 08 Δεκ 2015, 06:21:46 μμ »
Δε νομίζω να υπάρχει κάποιος που να θεωρεί ότι ο παρακάτω αλγόριθμος έχει γραμμική πολυπλοκότητα. Αφού μετράμε την πολυπλοκότητα συναρτήσει του μεγέθους της εισόδου, και εδώ η είσοδος είναι ο αριθμός ν, και το μέγεθος του ν είναι το πλήθος των ψηφίων του, ως προς το πλήθος των ψηφίων του ν ο συγκεκριμένος αλγόριθμος έχει εκθετική πολυπλοκότητα. Δε νομίζω να διαφωνεί κάποιος, αφού είναι γνωστό το θέμα τέτοιων αλγορίθμων (όπως ο brute force για τον έλεγχο πρώτου, ο αλγόριθμος δυναμικού προγραμματισμού για το knapsack), που τους χαρακτηρίζουν ψευδοπολυωνυμικούς γιατί είναι πολυωνυμικοί ως προς την αριθμητική τιμή της εισόδου, άρα είναι εκθετικοί ως προς το μέγεθος της εισόδου.

Διάβασε ν
Για ι από 1 μέχρι ν
  Γράψε ι
Τέλος_επανάληψης
« Τελευταία τροποποίηση: 08 Δεκ 2015, 06:33:21 μμ από ether »

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1316
  • There are always possibilities...
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #28 στις: 08 Δεκ 2015, 07:59:33 μμ »
Η συζήτηση για την ανεξάρτητη μεταβλητή συναρτήσει της οποίας βγάζουμε την πολυπλοκότητα μοιραία επαναφέρει και το "στοιχειωμένο" ζήτημα της εισόδου. 
Συμφωνούμε 100%
A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Επίδοση και Πολυπλοκότητα - Ερώτηση 2η
« Απάντηση #29 στις: 09 Δεκ 2015, 11:38:10 πμ »
Δε νομίζω να υπάρχει κάποιος που να θεωρεί ότι ο παρακάτω αλγόριθμος έχει γραμμική πολυπλοκότητα. Αφού μετράμε την πολυπλοκότητα συναρτήσει του μεγέθους της εισόδου, και εδώ η είσοδος είναι ο αριθμός ν, και το μέγεθος του ν είναι το πλήθος των ψηφίων του, ως προς το πλήθος των ψηφίων του ν ο συγκεκριμένος αλγόριθμος έχει εκθετική πολυπλοκότητα. Δε νομίζω να διαφωνεί κάποιος, αφού είναι γνωστό το θέμα τέτοιων αλγορίθμων (όπως ο brute force για τον έλεγχο πρώτου, ο αλγόριθμος δυναμικού προγραμματισμού για το knapsack), που τους χαρακτηρίζουν ψευδοπολυωνυμικούς γιατί είναι πολυωνυμικοί ως προς την αριθμητική τιμή της εισόδου, άρα είναι εκθετικοί ως προς το μέγεθος της εισόδου.

Διάβασε ν
Για ι από 1 μέχρι ν
  Γράψε ι
Τέλος_επανάληψης

Οπότε λοιπόν εαν κάποιος κάνει την εύλογη ερώτηση με τον αλγόριθμο που έγραψες, τι του απαντάμε; Υπάρχει για μας η ψευδο-πολυωνυμική πολυπλοκότητα; Εγώ ειλικρινά δεν καταλαβαίνω γιατί αυτό το κεφαλαίο μπήκε στην ύλη.