SlideShare a Scribd company logo

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

ISSEL
ISSEL

The uncertainty of how software libraries will be used in practice often leads their creators to identifying prospective use cases and covering many of these with multi purpose programming interfaces. However, the more flexible the interfaces, the harder they are to learn to efficiently use. To keep interfaces simple while enabling complex usage scenarios, in this thesis we propose a novel technique, in which software engi neers using the libraries declare only available data and desired forms (e.g., data types) that would result by appropriately applying available interfaces. Then, we automate the process of transforming data to desired forms with a type-driven synthesis approach within domain-specific languages (DSL) describing library interfaces. To this end, we look at Cartesian Genetic Programming (CGP) to synthesize data transformations by combining interfaces. Unfortunately, existing CGP fitness functions that recommend which interfaces to apply at each transformation step are unable to properly capture how well synthesized solutions approximate the desired ones and, consequently, fail to synthesize complex transformations. To address this shortcoming, we introduce a scheme that neurally learns fitness functions and train this on each DSL by artificially generating synthesis examples. Our approach is implemented as a Python package, named Pymeleon, which can be used to simplify usage of real-world libraries. Experi ments on 20 benchmark synthesis tasks of various complexities across 4 programming interfaces show that the proposed neural fitness function outperforms CGP, especially in synthesizing complex transformations, and, in most cases, succeeds in producing the desired results. We also conduct a case study, in which we show that, compared to implementing complex interface wrappers that simplify end-code but are hard to use, minimal additional effort in declaring library DSLs drastically reduces software engineering effort in reusing interfaces.

1 of 30
Download to read offline
Τυπο-κατευθυνόμενος 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

Recommended

Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationISSEL
 
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...
Θεματική Μοντελοποίηση και Σύστημα Συστάσεων Απαιτήσεων Λογισμικού με χρήση Μ...ISSEL
 
Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419ISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Manos Tsardoulias
 
Automated Task Assignment using Topic Modelling Techniques on Project Managem...
Automated Task Assignment using Topic Modelling Techniques on Project Managem...Automated Task Assignment using Topic Modelling Techniques on Project Managem...
Automated Task Assignment using Topic Modelling Techniques on Project Managem...ISSEL
 
Αυτοματοποίηση Ανάθεσης Εργασιών Λογισμικοπύ με εφαρμογή τεχνικών Θεματικής Μ...
Αυτοματοποίηση Ανάθεσης Εργασιών Λογισμικοπύ με εφαρμογή τεχνικών Θεματικής Μ...Αυτοματοποίηση Ανάθεσης Εργασιών Λογισμικοπύ με εφαρμογή τεχνικών Θεματικής Μ...
Αυτοματοποίηση Ανάθεσης Εργασιών Λογισμικοπύ με εφαρμογή τεχνικών Θεματικής Μ...ISSEL
 
Kagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
 

More Related Content

More from 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
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...ISSEL
 

More from ISSEL (20)

Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.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...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
 

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 Ερωτήσεις;