SlideShare una empresa de Scribd logo
1 de 30
Τυπο-κατευθυνόμενος Nευρωνικός Καρτεσιανός Γενετικός
Προγραμματισμός σε Πεδιακές Γλώσσες για Σύνθεση
Συναρτήσεων κατά την Εκτέλεση
Ορέστης Φαρμάκης 8262
Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης
Συνεπιβλέπων διδάκτωρ: Εμμανουήλ Κρασανάκης
Διπλωματική εργασία – 12/2022
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
Πρόβλημα
Συχνή χρήση βιβλιοθηκών
Περίπλοκη χρήση προγραμματιστικών διεπαφών
ppr(graph, "A")
ppr(graph_signal, ["A", "B"])
ppr(signal2graph(graph_signal), str2list("B"))
• Τεκμηρίωση, κατανόηση ⇒
• Επιτάχυνση;
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 2
…
Υπόθεση
1. Βιβλιοθήκη = πεδιακή γλώσσα
2. Τύποι δεδομένων = περιορισμοί
π.χ. «η συνάρτηση μου επιστρέφει έναν πραγματικό αριθμό»
3. Τρόποι χρήσης διεπαφών = κανόνες μετασχηματισμού
π.χ. «η συνάρτηση numpy.sum δέχεται μια λίστα πραγματικών και επιστρέφει έναν πραγματικό αριθμό»
⇒ Πρόταση: διατύπωση περιορισμών επιθυμητών αποτελεσμάτων
π.χ. «θέλω να καλέσω διεπαφές της βιβλιοθήκης numpy ώστε να μετατρέψω τη λίστα [1, 4, 3.5] σε πραγματικό αριθμό»
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 3
Παράδειγμα
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 4
διεπαφές
πεδιακή γλώσσα
ορισμός & παραγωγή αντικειμένου
Βιβλιογραφία
Αυτόματη παραγωγή ζητούμενων τύπων δεδομένων
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 5
• Σύνθεση προγραμμάτων
• Γενετικός προγραμματισμός
• Καρτεσιανός γενετικός
προγραμματισμός
π.χ. «append character c to string s» → s.append(c)
π.χ. «append character c to string s» → [1, 0, 1] → s.append(c)
π.χ. «append character c to string s» → → s.append(c)
Καρτεσιανός Γενετικός Προγραμματισμός
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 6
Βιβλιογραφία
Αυτόματη παραγωγή ζητούμενων τύπων δεδομένων
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 7
• Σύνθεση προγραμμάτων
• Γενετικός προγραμματισμός
• Καρτεσιανός γενετικός
προγραμματισμός
π.χ. «append character c to string s» → s.append(c)
π.χ. «append character c to string s» → [1, 0, 1] → s.append(c)
π.χ. «append character c to string s» → → s.append(c)
Eυριστική συνάρτηση καταλληλότητας ⇒
Αδυναμία περίπλοκων συνδυασμών διεπαφών για εξαγωγή συγκεκριμένων τύπων δεδομένων
οι διεπαφές θα εκτελεστούν μόνο μία φορά (στο τέλος)
Συνεισφορά
Νευρωνική αντί ευρεστική συνάρτηση καταλληλότητας
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 9
Pymeleon
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 10
DSL
User Input Result
Pymeleon
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 11
DSL
defines
extends
Viewer
Genetic
Viewer
PymLiz Object
User Input Result
Synthesis
member
Pymeleon
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 12
DSL
Create
synthetic data
defines
extends
Train
Viewer
Genetic
Viewer
PymLiz Object
User Input Result
Trained Neural
Network
Synthesis
member
member
Μετασχηματισμός
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 13
LHS Expression
RHS Expression
“combine(a, b)”, {“a”: str, “b”: str}
“a + b”, {“a”: “used_as_input”}
Μετασχηματισμός
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 14
Parse
Rule
LHS Expression
RHS Expression Parse
“combine(a, b)”, {“a”: str, “b”: str}
“a + b”, {“a”: “used_as_input”}
a b
str str
+
a b
str str
combine
Μετασχηματισμός
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 15
Parse
Rule
LHS Expression
RHS Expression Parse
“a”, “b”, {“a”: str, “b”: str}
“a + b”, {“a”: “used_as_input”}
a b
str str
+
a b
str str
Πεδιακή γλώσσα
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 16
DSL
Parse
Rule 1
LHS Expression
RHS Expression Parse
Rule 2
…
…
Predicate 1
(name, func) …
“a”, “b”, {“a”: str, “b”: str}
“a + b”, {“a”: “used_as_input”}
Συνθετικά δεδομένα
• Προσομοίωση της εξελικτικής διαδικασίας
• Τυχαίες εφαρμογές κανόνων της πεδιακής γλώσσας
⇒ γνωστό επιθυμητό αποτέλεσμα και ενδιάμεσα βήματα
• 4-πλέτες εκπαίδευσης
(Gbefore , Gafter , Gnegative , Gfinal)
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 19
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 20
str int
float
Δημιουργία συνθετικών δεδομένων
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 21
str int
float
x
str int
float
random Rule
Δημιουργία συνθετικών δεδομένων
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 22
x
str int
x
float
str int
float
x
str int
float
x
str int
x
float
f
random Rule random Rule random Rule
Δημιουργία συνθετικών δεδομένων
x
str int
x
float
f
g
random Rule
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 23
x
str int
x
float
str int
float
x
str int
float
x
str int
x
float
f
random Rule random Rule random Rule
Δημιουργία συνθετικών δεδομένων
𝐺𝑏𝑒𝑓𝑜𝑟𝑒
x
str int
x
float
f
g
random Rule
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 24
x
str int
x
float
str int
float
x
str int
float
x
str int
x
float
f
random Rule random Rule random Rule
Δημιουργία συνθετικών δεδομένων
𝐺𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟
x
str int
x
float
f
g
random Rule
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 25
x
str int
x
float
str int
float
x
str int
float
x
str int
x
float
f
random Rule random Rule random Rule
Δημιουργία συνθετικών δεδομένων
𝐺𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟
x
str int
x
float
f
𝐺𝑓𝑖𝑛𝑎𝑙
g
random Rule
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 26
x
str int
x
float
str int
float
x
str int
float
x
str int
x
float
f
random Rule random Rule random Rule
Δημιουργία συνθετικών δεδομένων
x
str int
x
float
f
𝐺𝑓𝑖𝑛𝑎𝑙
g
random Rule
𝐺𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟
𝐺𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒
x
str int
+
float
Νευρωνικό δίκτυο
Διανυσματική αναπαράσταση γράφων
μέσω αναζήτησης κατά βάθος (DFS) και συνένωσης με αναπαράσταση του 𝐺𝑓𝑖𝑛𝑎𝑙
𝐺𝑏𝑒𝑓𝑜𝑟𝑒 , 𝐺𝑓𝑖𝑛𝑎𝑙 → 𝑉𝑏𝑒𝑓𝑜𝑟𝑒
𝐺𝑎𝑓𝑡𝑒𝑟 , 𝐺𝑓𝑖𝑛𝑎𝑙 → 𝑉𝑎𝑓𝑡𝑒𝑟
𝐺𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒 , 𝐺𝑓𝑖𝑛𝑎𝑙 → 𝑉𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒
Σφάλμα
Μεγαλύτερη καταλληλότητα (= έξοδος νευρωνικού 𝑛𝑛) σε γράφους που:
α) εφαρμόζουν το σωστό μετασχηματισμό και
β) είναι πιο κοντά στον τελικό γράφο σε σχέση με το προηγούμενο βήμα
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 27
Νευρωνικό δίκτυο
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 28
Αξιολόγηση
20 σενάρια πραγματικής χρήσης × 100 επαναλήψεις
Σημαντική βελτίωση ακρίβειας απλού καρτεσιανού
γενετικού προγραμματισμού, ειδικά σε περίπλοκα
σενάρια
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 30
Καρτ. Γεν. Προγρ. Pymeleon
Mean Accuracy 0.68 0.99
Mean Inference time 0.019s 1.87s
Περιπτωσιολογική μελέτη
Συγκεκριμένο πραγματικό σενάριο
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 31
Συναρτησιακός Προγραμματισμός Pymeleon
Μετρικές Βιβλιοθήκη Χρήση Σύνολο Βιβλιοθήκη Χρήση Σύνολο
LLOC 9 24 33 12 6 18
CC 1.33 10.00 11.33 1.33 1.00 2.33
Προσπάθεια 0.00 36.00 36.00 2.37 6.96 9.33
Χρόνος 0.00 2.00 2.00 0.13 0.38 0.51
Συμπεράσματα
• Νέα μέθοδος αυτόματης χρήσης απλών προγραμματιστικών διεπαφών
• Τυπο-κατευθυνόμενη σύνθεση
• Βελτίωση απλού Καρτεσιανού Γενετικού Προγραμματισμού με
νευρωνικές συναρτήσεις καταλληλότητας
• Pymeleon χρήσιμο σε πραγματικά σενάρια
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 32
Μελλοντική Εργασία
• Πιθανή χρήση GNN
• Grokking
• Αποθετήριο πεδιακών γλωσσών
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 33
Ευχαριστώ για την προσοχή σας
Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 34
Ερωτήσεις;

Más contenido relacionado

Más de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 

Más de ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 

Type-driven Neural Cartesian Genetic Programming in Domain-Specific Languages for Function Synthesis at Runtime.pptx

  • 1. Τυπο-κατευθυνόμενος Nευρωνικός Καρτεσιανός Γενετικός Προγραμματισμός σε Πεδιακές Γλώσσες για Σύνθεση Συναρτήσεων κατά την Εκτέλεση Ορέστης Φαρμάκης 8262 Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης Συνεπιβλέπων διδάκτωρ: Εμμανουήλ Κρασανάκης Διπλωματική εργασία – 12/2022 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
  • 2. Πρόβλημα Συχνή χρήση βιβλιοθηκών Περίπλοκη χρήση προγραμματιστικών διεπαφών ppr(graph, "A") ppr(graph_signal, ["A", "B"]) ppr(signal2graph(graph_signal), str2list("B")) • Τεκμηρίωση, κατανόηση ⇒ • Επιτάχυνση; Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 2 …
  • 3. Υπόθεση 1. Βιβλιοθήκη = πεδιακή γλώσσα 2. Τύποι δεδομένων = περιορισμοί π.χ. «η συνάρτηση μου επιστρέφει έναν πραγματικό αριθμό» 3. Τρόποι χρήσης διεπαφών = κανόνες μετασχηματισμού π.χ. «η συνάρτηση numpy.sum δέχεται μια λίστα πραγματικών και επιστρέφει έναν πραγματικό αριθμό» ⇒ Πρόταση: διατύπωση περιορισμών επιθυμητών αποτελεσμάτων π.χ. «θέλω να καλέσω διεπαφές της βιβλιοθήκης numpy ώστε να μετατρέψω τη λίστα [1, 4, 3.5] σε πραγματικό αριθμό» Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 3
  • 4. Παράδειγμα Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 4 διεπαφές πεδιακή γλώσσα ορισμός & παραγωγή αντικειμένου
  • 5. Βιβλιογραφία Αυτόματη παραγωγή ζητούμενων τύπων δεδομένων Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 5 • Σύνθεση προγραμμάτων • Γενετικός προγραμματισμός • Καρτεσιανός γενετικός προγραμματισμός π.χ. «append character c to string s» → s.append(c) π.χ. «append character c to string s» → [1, 0, 1] → s.append(c) π.χ. «append character c to string s» → → s.append(c)
  • 6. Καρτεσιανός Γενετικός Προγραμματισμός Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 6
  • 7. Βιβλιογραφία Αυτόματη παραγωγή ζητούμενων τύπων δεδομένων Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 7 • Σύνθεση προγραμμάτων • Γενετικός προγραμματισμός • Καρτεσιανός γενετικός προγραμματισμός π.χ. «append character c to string s» → s.append(c) π.χ. «append character c to string s» → [1, 0, 1] → s.append(c) π.χ. «append character c to string s» → → s.append(c) Eυριστική συνάρτηση καταλληλότητας ⇒ Αδυναμία περίπλοκων συνδυασμών διεπαφών για εξαγωγή συγκεκριμένων τύπων δεδομένων οι διεπαφές θα εκτελεστούν μόνο μία φορά (στο τέλος)
  • 8. Συνεισφορά Νευρωνική αντί ευρεστική συνάρτηση καταλληλότητας Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 9
  • 9. Pymeleon Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 10 DSL User Input Result
  • 10. Pymeleon Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 11 DSL defines extends Viewer Genetic Viewer PymLiz Object User Input Result Synthesis member
  • 11. Pymeleon Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 12 DSL Create synthetic data defines extends Train Viewer Genetic Viewer PymLiz Object User Input Result Trained Neural Network Synthesis member member
  • 12. Μετασχηματισμός Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 13 LHS Expression RHS Expression “combine(a, b)”, {“a”: str, “b”: str} “a + b”, {“a”: “used_as_input”}
  • 13. Μετασχηματισμός Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 14 Parse Rule LHS Expression RHS Expression Parse “combine(a, b)”, {“a”: str, “b”: str} “a + b”, {“a”: “used_as_input”} a b str str + a b str str combine
  • 14. Μετασχηματισμός Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 15 Parse Rule LHS Expression RHS Expression Parse “a”, “b”, {“a”: str, “b”: str} “a + b”, {“a”: “used_as_input”} a b str str + a b str str
  • 15. Πεδιακή γλώσσα Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 16 DSL Parse Rule 1 LHS Expression RHS Expression Parse Rule 2 … … Predicate 1 (name, func) … “a”, “b”, {“a”: str, “b”: str} “a + b”, {“a”: “used_as_input”}
  • 16. Συνθετικά δεδομένα • Προσομοίωση της εξελικτικής διαδικασίας • Τυχαίες εφαρμογές κανόνων της πεδιακής γλώσσας ⇒ γνωστό επιθυμητό αποτέλεσμα και ενδιάμεσα βήματα • 4-πλέτες εκπαίδευσης (Gbefore , Gafter , Gnegative , Gfinal) Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 19
  • 17. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 20 str int float Δημιουργία συνθετικών δεδομένων
  • 18. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 21 str int float x str int float random Rule Δημιουργία συνθετικών δεδομένων
  • 19. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 22 x str int x float str int float x str int float x str int x float f random Rule random Rule random Rule Δημιουργία συνθετικών δεδομένων x str int x float f g random Rule
  • 20. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 23 x str int x float str int float x str int float x str int x float f random Rule random Rule random Rule Δημιουργία συνθετικών δεδομένων 𝐺𝑏𝑒𝑓𝑜𝑟𝑒 x str int x float f g random Rule
  • 21. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 24 x str int x float str int float x str int float x str int x float f random Rule random Rule random Rule Δημιουργία συνθετικών δεδομένων 𝐺𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟 x str int x float f g random Rule
  • 22. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 25 x str int x float str int float x str int float x str int x float f random Rule random Rule random Rule Δημιουργία συνθετικών δεδομένων 𝐺𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟 x str int x float f 𝐺𝑓𝑖𝑛𝑎𝑙 g random Rule
  • 23. Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 26 x str int x float str int float x str int float x str int x float f random Rule random Rule random Rule Δημιουργία συνθετικών δεδομένων x str int x float f 𝐺𝑓𝑖𝑛𝑎𝑙 g random Rule 𝐺𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟 𝐺𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒 x str int + float
  • 24. Νευρωνικό δίκτυο Διανυσματική αναπαράσταση γράφων μέσω αναζήτησης κατά βάθος (DFS) και συνένωσης με αναπαράσταση του 𝐺𝑓𝑖𝑛𝑎𝑙 𝐺𝑏𝑒𝑓𝑜𝑟𝑒 , 𝐺𝑓𝑖𝑛𝑎𝑙 → 𝑉𝑏𝑒𝑓𝑜𝑟𝑒 𝐺𝑎𝑓𝑡𝑒𝑟 , 𝐺𝑓𝑖𝑛𝑎𝑙 → 𝑉𝑎𝑓𝑡𝑒𝑟 𝐺𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒 , 𝐺𝑓𝑖𝑛𝑎𝑙 → 𝑉𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒 Σφάλμα Μεγαλύτερη καταλληλότητα (= έξοδος νευρωνικού 𝑛𝑛) σε γράφους που: α) εφαρμόζουν το σωστό μετασχηματισμό και β) είναι πιο κοντά στον τελικό γράφο σε σχέση με το προηγούμενο βήμα Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 27
  • 25. Νευρωνικό δίκτυο Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 28
  • 26. Αξιολόγηση 20 σενάρια πραγματικής χρήσης × 100 επαναλήψεις Σημαντική βελτίωση ακρίβειας απλού καρτεσιανού γενετικού προγραμματισμού, ειδικά σε περίπλοκα σενάρια Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 30 Καρτ. Γεν. Προγρ. Pymeleon Mean Accuracy 0.68 0.99 Mean Inference time 0.019s 1.87s
  • 27. Περιπτωσιολογική μελέτη Συγκεκριμένο πραγματικό σενάριο Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 31 Συναρτησιακός Προγραμματισμός Pymeleon Μετρικές Βιβλιοθήκη Χρήση Σύνολο Βιβλιοθήκη Χρήση Σύνολο LLOC 9 24 33 12 6 18 CC 1.33 10.00 11.33 1.33 1.00 2.33 Προσπάθεια 0.00 36.00 36.00 2.37 6.96 9.33 Χρόνος 0.00 2.00 2.00 0.13 0.38 0.51
  • 28. Συμπεράσματα • Νέα μέθοδος αυτόματης χρήσης απλών προγραμματιστικών διεπαφών • Τυπο-κατευθυνόμενη σύνθεση • Βελτίωση απλού Καρτεσιανού Γενετικού Προγραμματισμού με νευρωνικές συναρτήσεις καταλληλότητας • Pymeleon χρήσιμο σε πραγματικά σενάρια Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 32
  • 29. Μελλοντική Εργασία • Πιθανή χρήση GNN • Grokking • Αποθετήριο πεδιακών γλωσσών Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 33
  • 30. Ευχαριστώ για την προσοχή σας Δεκέμβριος 2022 Σύνθεση Συναρτήσεων κατά την Εκτέλεση 34 Ερωτήσεις;