Μερικές ιδέες

...το ηλεκτρονικό περιοδικό της ελληνικής κοινότητας ubuntu-gr

Συντονιστές: Geochr, adem1

Re: Μερικές ιδέες

Δημοσίευσηαπό Dimitris » 22 Δεκ 2009, 23:28

Και ιδού μια πρώτη εκδοχή του άρθρου:

Spoiler: show
Tις προάλλες μιλούσα με ένα φίλο προγραμματιστή και διαρρήκτη (όχι εγώ δεν είμαι διαρρήκτης) και μου εξηγούσε πως από τα πιο δύσκολα προβλήματα στον προγραμματισμό είναι αυτά που εμφανίζονται στην καθημερινή απασχόληση ενός διαρρήκτη. Τι θέλω να πω; Ένας διαρρήκτης θα είχε προφανώς ένα σακίδιο στον ώμο του και θα ήθελε να το γεμίσει με ό,τι πολύτιμο βρεί. Αλλά τον περιορίζει το βάρος που μπορεί να σηκώσει ώστε να είναι ικανός να την κάνει γρήγορα. Ταυτόχρονα όμως μερικά βαριά αντικείμενα είναι και πολύτιμα ενώ μερικά ελαφριά δεν αξίζουν και πολύ. Πως θα αποφασίσει τι πρέπει να βάλει στο σάκο του και τί όχι; Και δεν έχει φυσικά όλη τη νύχτα μπροστά του, όσο πιο πολύ αργεί τόσο αυξάνεται ο κίνδυνος να τον εντοπίσουν. Αν ήξερε δυναμικό προγραμματισμό η λύση του προβλήματος θα ήταν παιχνιδάκι :D

Ας υποθέσουμε ότι μπορεί να σηκώσει 15 κιλά και έχει τα εξής 5 αντικείμενα για να επιλέξει:
σύγχρονο ηλεκτρονικό υπολογιστή αξίας 1.000 ευρώ, 1 κιλό
επίχρυση ταμπακέρα αξίας 2.000 ευρώ, 1 κιλό
φθηνό κινέζικο βάζο αξίας 2.000 ευρώ, 2 κιλά
πλάκες χρυσού αξίας 4.000 ευρώ, 12 κιλά
πίνακας ζωγραφικής αξίας 10.000 ευρώ, 4 κιλά

Εσείς ποια αντικείμενα θα παίρνατε; Σιγουρα τις πλάκες χρυσού και τον πίνακα ζωγραφικής αλλά δυστυχώς υπερβαίνουν το όριο των 15 κιλών. Mε μία δεύτερη σκέψη βλέπουμε ότι συμφέρει να πάρουμε τον πίνακα ζωγραφικής, την ταμπακέρα και το κινέζικο βάζο συνολικής αξίας 14.000 ευρώ και 8 κιλά μόλις. Αλλά πως είμαστε σίγουροι ότι ελέγξαμε όλους τους πιθανούς συνδυασμούς; Ας δούμε πως σκέφτεται ο διαρρήκτης μας.

Φυσικά όλους αυτούς τους υπολογισμούς τους έκανε στο netbook που κουβαλάει πάντα μαζί του και έχει προγραμματίσει τέτοιες εφαρμογές για τις δύσκολες στιγμές.

ΥΓ. Δεν έχω καμία σχέση με διαρρήκτες ή κλοπιμαία αντικείμενα :D


Πώς σας φαίνεται;
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Μερικές ιδέες

Δημοσίευσηαπό kalakouentin » 23 Δεκ 2009, 15:53

Γραμμικός προγραμματισμός μου φαίνεται. :)
Θα δώσουμε και την απάντηση σε AMPL ή GAMS? Γιατί κανένα από τα 2 δεν είναι και Open Source.
(sorry δε μπορούσα να συγκρατηθώ)

Νομίζω ότι καλύτερο (και πιο συναφές) προγραμματιστικά είναι να έχουμε κάποιο πιο computer oriented problem. Σε φάση να μειώσουν το big_O requirement σε μνήμη ή χρόνο κάποιου προγράμματος. (of the top of my head, Δίνουμε πχ. έναν κακογραμμένο Knuth-Morris-Pratt algorithm ή έναν Boyer-Moore και τους ζητάμε να τον διορθώσουν).
Εγώ απλά συνεισφέρω τη γνώμη μου, δεν έχω χρόνο να υλοποιήσω κάτι τέτοιο, απλά αυτό το πρόβλημα που προτάθηκε, δε μου γέμισε και πολύ σοβαρά το μάτι υπολογιστικά.... Ένα μάθημα Operational Research να έχει κάνει ο άλλος και ας μην ξέρει πώς να ανοίξει υπολογιστή, και το βγάζει.

(Μην πω τώρα ότι αν είναι καήλης, μπορεί να το ρίξει στο χαρτί και να το λύσει ψάχνοντας για τους Lagrange multipliers - με πολύ ελεύθερο χρόνο)
Εικόνα
Γνώσεις ⇛ Linux: Συμπαθητικές ┃ Προγραμματισμός: Συμπαθητικότερες ┃ Αγγλικά: Αστέρι
Λειτουργικό ⇛ Ubuntu 10.04 32bit σε HP nw9440 ┃ Ubuntu 10.04 32bit σε Toshiba Satellite U400┃ SLED 11 64bit σε Dell OptiPlex 780
kalakouentin
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 545
Εγγραφή: 05 Ιούλ 2008, 05:50
Εκτύπωση

Re: Μερικές ιδέες

Δημοσίευσηαπό Dimitris » 23 Δεκ 2009, 16:20

Καλά ντε μη βαράς :lol: είπα να ξεκινήσω με κάτι απλό. Αν σας φαίνεται πολύ εύκολο μπορώ να βάλω και πιο δύσκολα. :twisted:

ΥΓ. Το συγκεκριμένο πρόβλημα λύνεται με 20 αντε 30 γραμμές python :D

Πιο συγκεκριμένα το πρόβλημα αυτό είναι γνωστό ως knapsack problem και οι γενικεύσεις του περιλαμβάνουν αρκετά δύσκολα προβλήματα "πακεταρίσματος" και η λύση τους βασίζεται στην αρχή Bellman.

http://en.wikipedia.org/wiki/Knapsack_problem
http://en.wikipedia.org/wiki/Bellman_equation
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Μερικές ιδέες

Δημοσίευσηαπό sudobash » 23 Δεκ 2009, 16:49

Εξαιρετική ιδέα να μπει ενότητα με προγραμματιστικούς γρίφους!! :)

Μια πρόταση: το πρόβλημα των n-queens (γενίκευση του eight queens puzzle). Να δοθεί ένας έτοιμος κώδικας με αλγόριθμο όχι τόσο καλό που να λύνει για μικρό αριθμό τετραγώνων και να προσπαθήσει κάποιος να αυξήσει τον αριθμό αυτό.
Ubuntu 9.10 32bit | 2 x Intel Core 2 Duo T5500 @ 1.66GHz | 2GB DDR2 RAM | Intel 950 Graphics
Richard Stallman wrote the compiler God used. The Big Bang was the Universe's first segfault.
Άβαταρ μέλους
sudobash
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 876
Εγγραφή: 13 Μάιος 2008, 20:11
Τοποθεσία: Κρήτη
Εκτύπωση

Προηγούμενη

Επιστροφή στο Περιοδικό Ubuntistas

cron