Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους Άσκηση 1

Σχετικά έγγραφα
Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Λογικός Προγραμματισμός Ασκήσεις

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

Λογικός Προγραμματισμός Ασκήσεις

turnin Lab4.pro

Λογικός Προγραμματισμός Ασκήσεις

ΕΚΦΩΝΗΣΕΙΣ. β. Να γράψετε αναλυτικά τα μειονεκτήματα της χρήσης των πινάκων. γ. Να γράψετε ονομαστικά τις τυπικές επεξεργασίες των πινάκων.

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Συσχετιστικές Μνήμες Δίκτυο Hopfield. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Τεχνολογία Πολυμέσων. Ενότητα # 7: Θεωρία πληροφορίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΦΡΟΝΤΙΣΤΗΡΙΟ Μ.Ε. «ΠΕΡΙ ΓΝΩΣΕΩΣ»

ΠΟΛΥ ΜΕΓΑΛΗ : ΜΕΓΑΛΗ : ΜΕΣΑΙΑ: ΜΙΚΡΗ

Εφαρμοσμένα Μαθηματικά ΙΙ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

Εφαρμοσμένα Μαθηματικά ΙΙ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

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

2.0 ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΧΩΡΟΙ ΚΑΙ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΔΡΟΜΙΑ 2017 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Παρασκευή 27 Ιανουαρίου 2017 ΛΕΥΚΩΣΙΑ Τάξη: Α Γυμνασίου

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

Αρχές Προγραμματισμού

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

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

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

Προγραμματισμός ΙI (Θ)

Λογικός Προγραμματισμός Ασκήσεις

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Άλγεβρα των Πινάκων (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Κατακερματισμός (Hashing)

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Ακαδημαϊκό Έτος: ΣΗΜΕΙΩΣΕΙΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΕΡΥΕΝΑΣ ΓΙΑ ΤΟΥΣ ΦΟΙΤΗΤΕΣ ΤΟΥ Ε.Α.Π.

Εγκλεισμός Αποκλεισμός

Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο. Γραφήµατα. (Graphs)

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

9. Συστολικές Συστοιχίες Επεξεργαστών

επιµέλεια Θοδωρής Πιερράτος

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2017 Β ΦΑΣΗ ÅÐÉËÏÃÇ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

Διάλεξη 7. Θεωρία παιγνίων VA 28, 29

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

Ασκήσεις3 Διαγωνισιμότητα Βασικά σημεία Διαγωνίσιμοι πίνακες: o Ορισμός και παραδείγματα.

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

Δομημένος Προγραμματισμός (ΤΛ1006)

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

σας φύλλο τον αριθμό της ερώτησης ακολουθούμενη από το γράμμα Σ (Σωστή) ή το γράμμα Λ (Λάθος).

Ανάκτηση Πληροφορίας

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

Εξομοίωση Τηλεπικοινωνιακού Συστήματος Βασικής Ζώνης

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

f x και τέσσερα ζευγάρια σημείων

ΕΡΩΤΗΜΑΤΑ σε ΑΝΑΖΗΤΗΣΗ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Άλγεβρα των Πινάκων (2) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Παραδείγματα (2) Διανυσματικοί Χώροι

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Πρόβλημα Αποθήκευση Προγραμμάτων

Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών

EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας 3η σειρά ασκήσεων Διακριτά και Συνεχή Κανάλια. Παράδοση: Έως 22/6/2015

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ

International Olympiad in Informatics Ο μικρός αδελφός της Μαρίας έχει αφήσει τα παιγνίδια του σκορπισμένα στο πάτωμα του καθιστικού του.

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ

Εφαρμοσμένα Μαθηματικά ΙΙ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανύσματα στους Rn, Cn, διανύσματα στο χώρο (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Ασκήσεις Prolog. Άσκηση 1. Άσκηση 2

Στοχαστικές Στρατηγικές. διαδρομής (1)

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Ηλεκτρονικοί Υπολογιστές

2. dim(p ) = n rank(a = )

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

Transcript:

Page 1 of 5 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2015-16 Άσκηση 1 Τα νευρωνικά δίκτυα Hopfield λειτουργούν ως αυτο-συσχετιστικές μνήμες, υπό την έννοια ότι σε ένα τέτοιο δίκτυο με N αλληλοτροφοδοτούμενους κόμβους-νευρώνες, οι οποίοι μπορεί να βρίσκονται σε μία από δύο καταστάσεις ο καθένας, τις ή, μπορούμε να αποθηκεύσουμε ένα πλήθος από N-διάστατα διανύσματα με δυαδικές τιμές ( ή στα στοιχεία τους. Στη συνέχεια, όταν το δίκτυο τροφοδοτηθεί με ένα N-διάστατο διάνυσμα, μετά από κάποιες μεταπτώσεις μεταξύ διαδοχικών καταστάσεων, θα ισορροπήσει σε μία κατάσταση που αντιστοιχεί σε κάποιο από τα αποθηκευμένα διανύσματα και, μάλιστα, σε εκείνο που είναι πλησιέστερο στο διάνυσμα που δόθηκε στο δίκτυο. Μία βασική διαδικασία σε ένα δίκτυο Hopfield είναι η εκπαίδευσή του, δηλαδή η αποθήκευση σε αυτό κάποιου αριθμού N-διάστατων διανυσμάτων. Η αποθήκευση συνίσταται στον προσδιορισμό του δισδιάστατου N N πίνακα των βαρών του δικτύου. Κάθε βάρος του πίνακα αντιστοιχεί σε μία σύνδεση μεταξύ δύο κόμβων του δικτύου και ποσοτικοποιεί την ισχύ της σύνδεσης αυτής. Αν θέλουμε να αποθηκεύσουμε σε ένα δίκτυο Hopfield M σε πλήθος N-διάστατα διανύσματα, τότε ο πίνακας W των βαρών του υπολογίζεται από τη σχέση M T W = (Y i Y i M I N i=i όπου Y i είναι ένα από τα 1 N διανύσματα-γραμμές προς αποθήκευση, Y i T είναι το N 1 διάνυσμα-στήλη, που είναι το ανάστροφο του Y i, και I N είναι ο δισδιάστατος N N ταυτοτικός πίνακας, που έχει, δηλαδή, όλα τα στοιχεία του ίσα με 0, εκτός από αυτά της κύριας διαγωνίου του, που είναι ίσα με 1. Για παράδειγμα, έστω ότι θέλουμε να αποθηκεύσουμε σε ένα δίκτυο Hopfield τεσσάρων νευρώνων (N = 4 τα τρία (M = 3 διανύσματα (,,,, (,,, και (,,,. Τότε: 1 0 0 0 0 1 0 0 W = ( ( + ( ( + ( ( 3 ( 0 0 1 0 0 0 0 1 Δηλαδή: 3 0 0 0 0 3 0 0 W = ( + ( + ( ( 0 0 3 0 0 0 0 3

Page 2 of 5 Και τελικά: 0 1 3 1 0 1 1 W = ( 1 0 3 1 0 Ορίστε ένα κατηγόρημα hopfield/2, το οποίο, όταν καλείται με πρώτο όρισμα μία λίστα διανυσμάτων προς αποθήκευση σε ένα δίκτυο Hopfield, όπου κάθε διάνυσμα είναι και αυτό μία λίστα από τα στοιχεία του, να επιστρέφει στο δεύτερο όρισμα τον πίνακα των βαρών του δικτύου, σαν μία λίστα από τις γραμμές του, όπου κάθε μία είναι μία λίστα των στοιχείων της. Κάποια παραδείγματα εκτέλεσης είναι τα εξής:?- hopfield([[,,-1], [-1,-1,-1]],W. W = [[0,2,0],[2,0,0],[0,0,0]]?- hopfield([[,-1,-1,], [-1,-1,,-1], [,,,]],W. W = [[0,1,-1,3],[1,0,1,1],[-1,1,0,-1],[3,1,-1,0]]?- hopfield([[,,,,-1,,,,], [-1,,-1,-1,,-1,-1,,-1], [,-1,,,,,-1,-1,]],W. W = [[0,-1,3,3,-1,3,1,-1,3],[-1,0,-1,-1,-1,-1,1,3,-1], [3,-1,0,3,-1,3,1,-1,3],[3,-1,3,0,-1,3,1,-1,3], [-1,-1,-1,-1,0,-1,-3,-1,-1],[3,-1,3,3,-1,0,1,-1,3], [1,1,1,1,-3,1,0,1,1],[-1,3,-1,-1,-1,-1,1,0,-1], [3,-1,3,3,-1,3,1,-1,0]] Παραδοτέο για την άσκηση είναι ένα πηγαίο αρχείο Prolog με όνομα hopfield.pl. Άσκηση 2 Φανταστείτε ότι σε ένα δωμάτιο έχετε έναν αριθμό τηλεοράσεων, όπου κάθε μία είναι δυνατόν να συντονιστεί σε ένα από N διαθέσιμα κανάλια, έστω τα 1, 2,, N. Υποθέστε ότι αρχικά οι τηλεοράσεις είναι συντονισμένες σε αυθαίρετα κανάλια και ότι θέλετε να τις συντονίσετε όλες στο ίδιο κανάλι. Έχετε στη διάθεσή σας ένα τηλεχειριστήριο του οποίου η μοναδική λειτουργία είναι να μπορείτε να συντονίσετε οποιαδήποτε τηλεόραση στο επόμενο κανάλι από αυτό που είναι συντονισμένη (το επόμενο κανάλι από το N είναι το 1, αλλά δεν μπορείτε να κάνετε αυτήν την ενέργεια δύο συνεχόμενες φορές στην ίδια τηλεόραση, αν δεν μεσολαβήσει η αλλαγή καναλιού τουλάχιστον κάποιας άλλης. Επίσης, δεν είναι δυνατόν σε μία τηλεόραση να γίνουν N ή περισσότερες αλλαγές καναλιού, δηλαδή, δεν μπορεί να επιστρέψει στο αρχικό κανάλι της. Ορίστε ένα κατηγόρημα remote/4, το οποίο, όταν καλείται με πρώτο όρισμα μία λίστα που περιέχει τα κανάλια στα οποία είναι συντονισμένες αρχικά οι τηλεοράσεις μας και με δεύτερο όρισμα το πλήθος των διαθέσιμων

Page 3 of 5 καναλιών, να επιστρέφει στο τρίτο όρισμα μία λίστα με τους αύξοντες αριθμούς των τηλεοράσεων στις οποίες όταν εφαρμοσθεί διαδοχικά η λειτουργία του τηλεχειριστηρίου, να έχουμε σαν αποτέλεσμα όλες οι τηλεοράσεις τελικά να είναι συντονισμένες στο ίδιο κανάλι, ο αριθμός του οποίου να επιστρέφεται στο τέταρτο όρισμα του κατηγορήματος που θα γράψετε. Μας είναι αδιάφορο ποιο θα είναι το τελικό κανάλι συντονισμού, αλλά μας ενδιαφέρει να κάνουμε τον ελάχιστο αριθμό αλλαγών σε κανάλια. Αν υπάρχουν περισσότερες από μία λύση, με τον ίδιο ελάχιστο αριθμό αλλαγών σε κανάλια, το κατηγόρημα που θα γράψετε αρκεί να επιστρέφει μόνο μία από αυτές. Κάποια παραδείγματα εκτέλεσης θα μπορούσαν να ήταν τα εξής:?- remote([3,1,3,3],5,l,c. L = [2,1,2,3,2,4] C = 4?- remote([2,2],3,l,c. L = [] C = 2?- remote([2,5,1,6,4,2,6],8,l,c. L = [3,1,3,6,1,3,6,1,3,5,6,1,2,3,5,6] C = 6?- remote([1,2,3,4,3,2,1,2,3,4,3,2,1,2,3,4,3,2,1,2,3,4], 5,L,C. L = [4,10,16,22,4,10,16,22,1,4,7,10,13,16,19,22,1,2,4,6,7,8, 10,12,13,14,16,18,19,20,22] C = 3?- remote([4,2],9,l,c.?- remote([1,93,185],1000,l,c, length(l,n. L = [...........] C = 276 N = 549?- remote([100,170,170,170],1000,l,c, length(l,n. L = [...........] C = 205 N = 210 Παραδοτέο για την άσκηση είναι ένα πηγαίο αρχείο Prolog με όνομα remote.pl. Άσκηση 3 1 Θεωρήστε ότι σε ένα χώρο διασκέδασης υπάρχουν συγκεκριμένα ηλεκτρονικά παιγνίδια, στα οποία μπορείτε να παίξετε με κάποια δεδομένη σειρά. Αρχίζετε από το πρώτο, συνεχίζετε στο δεύτερο, και ούτω καθεξής, μέχρι το τελευταίο. Κάθε παιγνίδι 1 Η άσκηση αυτή αποτελεί διασκευή, κυρίως ως προς τον τρόπο εισόδου των δεδομένων, του πρώτου από τα προβλήματα που δόθηκαν προς επίλυση στον διαγωνισμό προγραμματισμού σε Prolog που διεξήχθη στα πλαίσια του συνεδρίου ICLP/CP 2015 (http://picat-lang.org/lp_cp_pc/.

Page 4 of 5 μπορείτε να το παίξετε περισσότερες από μία φορά, όλες όμως θα είναι συνεχόμενες. Για να παίξετε μία φορά ένα παγνίδι, πρέπει να πληρώσετε μία μάρκα. Οι διαθέσιμες μάρκες σας βρίσκονται σε ένα κουτί, που έχει χωρητικότητα T μάρκες, το οποίο αρχικά είναι γεμάτο. Αφού ολοκληρώσετε όλες τις φορές παιξίματος ενός παιγνιδιού, και πριν ξεκινήσετε το επόμενο, σας δίνονται δώρο K μάρκες, ή λιγότερες, και πάντως, όχι περισσότερες από όσες μπορούν να χωρέσουν στο κουτί σας. Κάθε φορά που παίζετε το παιγνίδι i, η ευχαρίστησή σας είναι P i. Η ευχαρίστηση ενός παιγνιδιού μπορεί να είναι και αρνητική, που σημαίνει ότι το παιγνίδι δεν σας άρεσε, ή μηδενική, που σημαίνει ότι το παιγνίδι σας είναι αδιάφορο. Το ερώτημα είναι, δεδομένων των T, K και P i, πόσες φορές πρέπει να παίξετε το κάθε παιγνίδι, ώστε στο τέλος να έχετε τη μέγιστη συνολική ευχαρίστηση. Κάθε παιγνίδι πρέπει να το παίξετε τουλάχιστον μία φορά, ώστε να μπορείτε να διαπιστώσετε πόσο σας αρέσει. Επιλύστε το παραπάνω πρόβλημα, ορίζοντας ένα κατηγόρημα games/5, το οποίο, όταν καλείται σαν games(ps,t,k,gs,p, με Ps μία λίστα από τις ευχαριστήσεις των παιγνιδιών (μήκους όσο το πλήθος των παιγνιδιών, T τη χωρητικότητα του κουτιού με τις μάρκες και K το μέγιστο πλήθος κέρδους μαρκών μετά από κάθε παιγνίδι, να επιστρέφει στο Gs τη λίστα από τις φορές που πρέπει να παιχθεί το κάθε παιγνίδι, ώστε να έχετε τη μέγιστη ευχαρίστηση, και στο P αυτή τη μέγιστη ευχαρίστηση. Αν υπάρχουν περισσότερες από μία βέλτιστη λύση με την ίδια μέγιστη ευχαρίστηση, το κατηγόρημα να τις επιστρέφει όλες μέσω οπισθοδρόμησης. Κάποιες ενδεικτικές εκτελέσεις είναι οι εξής:?- games([4,1,2,3],5,2,gs,p. Gs = [5,1,1,4] P = 35 --> ;?- games([4,-1,-2,3],5,2,gs,p. Gs = [5,1,1,4] P = 29 --> ;?- games([4,1,-2,3,4],3,2,gs,p. Gs = [3,2,1,2,3] P = 30 --> ;?- games([3,-2,4,-5,2,0,4,-1,3,4],5,2,gs,p. Gs = [3,1,5,1,1,1,5,1,1,4] P = 62 --> ; Gs = [3,1,5,1,1,1,4,1,1,5] P = 62 --> ;?- games([2,-3,4,1,-2,2,1],8,3,gs,p. Gs = [5,1,8,1,1,7,3] P = 55 --> ;?- games([1,2,3,4,5,0,-1,-2,-3,-4,-5],5,4,gs,p. Gs = [4,4,4,4,5,4,1,1,1,1,1]

Page 5 of 5 Gs = [4,4,4,4,5,3,1,1,1,1,1] Gs = [4,4,4,4,5,2,1,1,1,1,1] Gs = [4,4,4,4,5,1,1,1,1,1,1]?- games([2,4,1,-3,3,-4,2,3,5,4,5],6,2,gs,p. Gs = [2,6,1,1,3,1,1,1,6,1,3] Gs = [2,6,1,1,3,1,1,1,5,1,4] Gs = [2,6,1,1,3,1,1,1,4,1,5] Gs = [2,6,1,1,3,1,1,1,3,1,6] Gs = [2,6,1,1,2,1,1,2,6,1,3] Gs = [2,6,1,1,2,1,1,2,5,1,4] Gs = [2,6,1,1,2,1,1,2,4,1,5] Gs = [2,6,1,1,2,1,1,2,3,1,6]?- games([0],3,1,gs,p. Gs = [3] Gs = [2] Gs = [1]?- games([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1],1,1,Gs,P. Gs = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1] P = -35?- findall(gs,games([1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3, 1,2,3],5,1,Gs,_,L,length(L,N............ N = 210 Παραδοτέο για την άσκηση είναι ένα πηγαίο αρχείο Prolog με όνομα games.pl.