Έλεγχος μοντέλων: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μΧωρίς σύνοψη επεξεργασίας
Γραμμή 33:
}}</ref>. Ο Clarke, ο Emerson, και ο Σηφάκης μοιράστηκαν το [[Βραβείο Τούρινγκ]] το 2007 για το έργο τους στον έλεγχο μοντέλων.<ref>[http://www.acm.org/press-room/news-releases/turing-award-07/ Press Release: ACM Turing Award Honors Founders of Automatic Verification Technology]</ref><ref>[http://usacm.acm.org/usacm/weblog/index.php?p=572 ''USACM'': 2007 Turing Award Winners Announced]</ref>
 
Ο έλεγχος μοντέλων συνληθωςσυνήθως εφαρμόζεται σε σχεδιάσεις υλικού. Όσον αφορά το λογισμικό, λόγω της [[Υπολογισιμότητα|μη-επιλυσιμότητας]], η προσέγγιση αυτή δε μπορεί να είναι αμιγώς αλγοριθμική, στην πράξη μπορεί να αποτύχει ή να μη μπορεί να επαληθεύσει ή να διαψεύσει μια δεδομένη ιδιότητα.
 
Η δομή συνήθως δίνεται σαν περιγραφή σε πηγαίο κώδικα μιας βιομηχανικής [[γλώσσα περιγραφής υλικού|γλώσσας περιγραφής υλικού]] ή μιας ειδικής γλώσσας. Ένα τέτοιο πρόγραμμα αντιστοιχεί σε μια [[πεπερασμένη μηχανή καταστάσεων]] (finite state machine, FSM), δηλ. έναν [[κατευθυνόμενος γράφος|κατευθυνόμενο γράφο]] που αποτελείται από [[Θεωρία_γράφων|κόμβους (σημεία) και ακμές]]. Σε κάθε κόμβο αντιστοιχεί ένα σύνολο ατομικών προτάσεων που δηλώνουν ποιόποιο στοιχείο της μνήμης είναι κάθε φορά. Οι κόμβοι απεικονίζουν καταστάσεις ενός συστήματος, οι ακμές απεικονίζουν πιθανές μεταβάσεις που μπορεί να αλλάζουν την κατάσταση, ενώ οι ατομικές προτάσεις απεικονίζουν τις βασικές ιδιότητες που ισχύουν σε ένα σημίοσημείο της εκτέλεσης.
 
Τυπικά, το πρόβλημα μπορεί να τεθεί ως εξής: δεδομένης μιας ιδιότητας, που εκφράζεται σε χρονική λογική σαν ''p'', και μιας δομής ''M'' με αρχική κατάσταση ''s'', πρέπει να αποφασιστεί αν <math>M,s \models p</math>. Αν η M είναι πεπερασμένη, όπως στο υλικό, ο έλεγχος μοντέλων ανάγεται σε μια αναζήτηση σε γράφο.