Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου Κρασανάκης Εμμανουήλ Επιβλέπων: Συμεωνίδης Ανδρέας Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφοριών και Υπολογισμών
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
9
2. Ανάπτυξη θεωρίας
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
11
Λογική 2ου (Επιπέδου SOL)
Χαρακτηριστικά:• Μοντελοποιεί ανθρώπινο λόγο
(στη χείριστη περίπτωση ως συλλογή κατηγορημάτων)
• Turing-complete για κατάλληλες συναρτήσεις (θεωρώντας την εκχώρηση ως επιβεβαίωση-assertion)
Μπορεί δηλαδή να χρησιμοποιηθεί για συνδυασμό ανθρώπινου λόγου και κώδικα
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
13
ΠολυπλοκότηταΠοσοτικοποίηση πληροφορίας SOL έκφρασης
ΠολυπλοκότηταΠλήθος μη ισοτικών συμβόλων (με επανάληψη) που απαιτούνται για την αναπαράσταση μιας έκφρασης.
:Παράδειγμα
• ( ’ )το σύμβολο κατ εξαίρεση δεν υπολογίζεται
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
14
Ισοτιμία• Διπλή συνεπαγωγή για λογική σύγκριση
(π.χ. )
• Σύγκριση εκφράσεων από προγραμματιστική άποψη:
Ισοτιμία σημαίνει ότι για ισότιμες δεσμευμένες μεταβλητές (δηλ. που υπόκεινται σε ) έχουμε ισότιμες ελεύθερες μεταβλητές.
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
16
Ισότιμες μεταβλητές• Όχι ακριβής ορισμός
(π.χ. μπορεί να εξαρτάται από το αν η επιστροφή μεταβλητής αντιστοιχίζεται σε ή αν απλά οι ελεύθερες μεταβλητές επιστρέφονται)
• Απαραίτητες ιδιότητες ισοτιμίας μεταβλητών:
( oι ελεύθερες, οι δεσμευμένες και όλες οι μεταβλητές)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
17
ΛογικάΜοντέλαΜοντέλα: Σύνολα εκφράσεων• Παράθεση:
Υπομοντέλα: τμήματα αυτοτελούς λογικής(αλγόριθμος μεγίστων συνδεδεμένων υπογράφων στο γράφο μεταβλητών)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
19
ΑλγεβροποίησηΣύνδεση ισοτιμίας με διπλή συνεπαγωγή:
ΟρθόAν τότε ώστε
ΑντίστροφοΑν τότε ώστε
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
20
ΜετασχηματισμοίΟμογενοποίησηΑφαιρεί εμφώλευση από εκφράσεις SOL μοντέλου(π.χ. γίνεται )
Ανεξαρτητοποίηση (independent)Μετονομάζει μεταβλητές ώστε να είναι μοναδικές για κάθε μοντέλο(π.χ. μεταβλητή σε μοντέλο γίνεται ενώ σε μοντέλο γίνεται )
Ισότιμη αφαίρεση δίνει τα στοιχεία του εκτός από αυτά που είναι ισότιμα με κάποιο στοιχείο του
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
21
Εκτέλεση υποθέσεων• Γενίκευση ορθής αλγεβροποίησης • Δημιουργία λογικών συσχετισμών• Συνδέει τις πράξεις
Εκτέλεση υποθέσεωνΓια τυχαία μοντέλα ώστε
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
22
3. Παρουσίαση αλγορίθμου
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
23
Ορισμός
σχόλια και κώδικας
Περιγραφή
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
24
ΟρισμόςΕπιλογή ακολουθίας ώστε η ακολουθία
με ( περιέχει μόνο ισότητες και ποσοδείκτες)
να έχει
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
25
ΒελτιστοποίησηΠοσότητα προς βελτιστοποίηση:
όπου το τετριμμένο μοντέλο
Αυτό σημαίνει:
όπου • εκφράσεις του υλοποιημένου κώδικα • εκχωρήσεις • ποσοδείκτες ( έξοδοι, είσοδοι)
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
26
ΒελτιστοποίησηΕφαρμογή άπληστης μεθόδου στη μέση περίπτωση:
για σταθερά (εξαρτάται αλλά δεν ισούται με ),
• αν και δεν περιέχουν κοινές εκφράσεις, τότε ολικό ελάχιστο σε πεπερασμένο αριθμό βημάτων
• αν εφαρμοστεί ομογενοποίηση στα και το ολικό ελάχιστο έχει τη μικρότερη δυνατή τιμή
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
27
Υλοποίηση ΙσοτιμίαςΠαραδοχές για ισότιμες εκφράσεις:• Ίδιο πλήθος μεταβλητών• Ίδιο νόημα
– Σχόλια: μεγάλη λεξικογραφική ομοιότητα– Κώδικας: ταυτόσημη έκφραση αν αντικατασταθούν οι μεταβλητές με την
τρέχουσα διάταξή τους
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου
29
4. Δημιουργία βάσης δεδομένων
Αυτόματη Συγγραφή Κώδικα με χρήση Λογικής Δευτέρου Επιπέδου