Επίλυση προβλημάτων (τεχνητή νοημοσύνη): Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
JohnMad (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
JohnMad (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
Γραμμή 13:
Υπάρχει ένας γενικός αλγόριθμος αναζήτησης που εκτελεί αυτήν τη διερεύνηση και οι πραγματικοί αλγόριθμοι που χρησιμοποιούνται είναι παραλλαγές του που διαφέρουν στα βήματα 7 και 8. Στον αλγόριθμο αυτό Μέτωπο Αναζήτησης (Μ.Α.) είναι το σύνολο των καταστάσεων που έχουμε επισκεφθεί αλλά δεν έχουμε επεκτείνει και Κλειστό Σύνολο (Κ.Σ.) το σύνολο των καταστάσεων που και έχουμε επισκεφθεί και έχουμε επεκτείνει. Το Κ.Σ. είναι απαραίτητο μόνο αν υπάρχει κίνδυνος παγίδευσης του αλγορίθμου σε ατέρμονα βρόχο λόγω απείρου μήκους κλαδιών στο δένδρο.
 
1: Μ.Α = NULL; Κ.Σ. = NULL;
2: Εισαγωγή της ρίζας στο Μ.Α.
3: Όσο (Κ=Κεφαλή(Μ.Α.)) != NULL
4: { Αν Κ περιέχεται στο Κ.Σ. τότε goto 3
5: Αν Κ είναι τελική κατάσταση τότε {return Κ(μη εξαντλητική αναζήτηση) ή
insertToSolutions(Κ)(εξαντλητική αναζήτηση);goto 3}
6: Επέκταση του Κ, Εισαγωγή των παιδιών του στο Μ.Α., Εισαγωγή του Κ στο Κ.Σ.
7: Αφαίρεση κάποιων καταστάσεων από το Μ.Α. με κάποιο κριτήριο ("κλάδεμα" του δένδρου,
γίνεται για εξοικονόμηση χρόνου όταν θεωρείται απίθανο το υποδένδρο που ξεκινά από
κάποια κατάσταση να οδηγεί σε λύση)
8: Αναδιοργάνωση του Μ.Α. με κάποιο κριτήριο
9: }
Γραμμή 65:
 
=== Εξελικτικός υπολογισμός ===
{{Κύριο|Γενετικοί αλγόριθμοι}}
 
Σε προβλήματα βελτιστοποίησης μπορεί εναλλακτικά να χρησιμοποιηθεί κάποιος τύπους [[εξελικτικός υπολογισμός|εξελικτικού υπολογισμού]] όπως οι [[εξελικτικοί αλγόριθμοι]]. Ο εξελικτικός υπολογισμός είναι μία κατηγορία εργαλείων της [[υπολογιστική νοημοσύνη|υπολογιστικής νοημοσύνης]] ο οποίος βασίζεται στην ιδέα της σταδιακής ανάπτυξης, με μια επαναληπτική διαδικασία, πιθανών λύσεων για ένα πρόβλημα μέσω πολλαπλών παράλληλων αναζητήσεων στο χώρο των λύσεων. Η διαφορά από άλλες μεθόδους βελτιστοποίησης είναι ότι οι υποψήφιες λύσεις αλληλεπιδρούν και αλληλεπηρεάζονται ώσπου να τερματίσει η διαδικασία. Όταν αυτή η αλληλεπίδραση συμβαίνει με βάση τις αρχές της [[βιολογία|βιολογικής]] [[εξέλιξη των ειδών|εξέλιξης των ειδών]] τότε μιλάμε για εξελικτικούς αλγορίθμους. Στον τομέα της βέλτιστης επίλυσης προβλημάτων συνήθως χρησιμοποιούνται οι [[γενετικοί αλγόριθμοι]], μία υποκατηγορία εξελικτικών αλγορίθμων η οποία μοιάζει με την αναρρίχηση λόφων αλλά δεν παγιδεύεται εύκολα σε τοπικά βέλτιστες λύσεις.