Προς το περιεχόμενο

prolog?


pyro

Προτεινόμενες αναρτήσεις

Δημοσ.

Μπορεί να χρησιμοποιηθεί για πολλά πράγματα. Ό,τι κάνεις και με τις άλλες γλώσσες προγραμματισμού μπορείς να το κάνεις και με PROLOG (σχεδόν), αλλά κυρίως χρησιμοποιείται στον τομέα της τεχνητής νοημοσύνης. Πριν από μερικά χρόνια μία μεγάλη Ιαπωνέζικη εταιρία δήλωσε ότι θα βγάλει νέα τεχνολογία ρομπότ με πολύ πιο προσεγμένη τεχνητή νοημοσύνη χρησιμοποιώντας εξ' ολοκλήρου PROLOG και από τότε πήρε τα πάνω της.

 

Αυτό που κάνει η PROLOG είναι «λογικός» προγραμματισμός (η ίδια η γλώσσα ανήκει στην κατηγορία των declarative γλωσσών, σε αντίθεση με τις imperative - Java, C+++ και functional - Haskel) με την έννοια ότι καθορίζεις κάποιους κανόνες και σχέσεις μέσα στον πηγαίο κώδικα της PROLOG και το πρόγραμμα προσπαθεί να βρει τη(ις) λογική(ές) σχέση(εις). Αντί δηλαδή να δίνει ο προγραμματιστής τη λύση, απλώς περιγράφει μερικούς κανόνες και γεγονότα και το πρόγραμμα προσπαθεί να συμπεράνει μόνο του την απάντηση από τα δεδομένα που του έχουνε δοθεί. Για παράδειγμα (η σύνταξη μπορεί να μην είναι σωστή αλλά έχουνε περάσει χρόνια από τότε που έκανα PROLOG) το παρακάτω γεγονός (πρόσεξε πάντα την τελεία στο τέλος):

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">Iron Maiden is metal.[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Αν ρωτήσεις:

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">?- Iron Maiden is metal.[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Θα πάρεις την απάντηση:

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">Yes[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">και αν ρωτήσεις κάτι άλλο τότε:

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">?- Metallica is metal.

No[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Μπορείς επίσης να δημιουργήσεις κανόνες με τον εξής τρόπο:

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">male(Hercules).

male(Zeus).

female(Hera).

parent(Hercules, Zeus).[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">και να βρεις τις σχέσεις μεταξύ των ατόμων αν ορίσεις το γονέα.

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">son(A, B) :- parent(B, A),

male(A).[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Δηλαδή το άτομο (οι παράμετροι μέσα στις παρενθέσεις ονομάζοντε «άτομα») Α είναι γιός του Β αν το άτομο Β είναι γονέας του Α και το Α είναι αρσενικό.

 

Αν ρωτήσεις τώρα

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">?- son(Hercules, Hera).[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">τότε θα λάβεις την απάντηση

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">No[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Μπορεί αυτό να σου φαίνεται απλό αλλά πίστεψέ με η PROLOG μπορεί να γίνει πολύπλοκη.

 

Υπάρχουνε και άλλες δομές και λογικές συνουχίες που μπορείς να ορίσεις αλλά σε γενικές γραμμές (σε πολύ γενικές) αυτό είναι όλο. Για περισσότερες πληροφορίες κάνε μία αναζήτηση στο Διαδίκτυο και θα βρεις πάμπολλες πληροφορίες.

Δημοσ.

Πάλι καλά Γηρυόνη, που για χάρη της Prolog έδωσες αυτό το παράδειγμα. ʼκου η πατέρες δεν είναι metal.

 

<img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" />

Δημοσ.

aa, kala to murhstika, paw gia bachelors se programming kai master se artificial inteligence, opote apo kei 0a to psarepsa, thanks guys <img border="0" title="" alt="[big Grin]" src="images/icons/grin.gif" />

btw, otan exeis ena ai programma, auto me thn parodo tou xronou ananewnei tn idio tou ton phgaio kwdiko?

dhl to idio to programma na grafei ton eauto tou?

(periergo akougete...!)

Δημοσ.

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Originally posted by bandito:

<strong>Πάλι καλά Γηρυόνη, που για χάρη της Prolog έδωσες αυτό το παράδειγμα. ?κου η πατέρες δεν είναι metal.

 

<img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> </strong></font><hr /></blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Χεχεχεχε, το φαντάστηκα ότι κάποιος θα το πιάσει αυτό το παράδειγμα. Ήτανε κάποτε φίλε μπαντίτο, όχι πια. Δυστυχώς μετά το Black (άντε μετά το Load για να μη σας στενοχωρήσω) άρχισαν να χάνουνε το μεταλλικό τους ήχο.

 

Πύρο, εξαρτάται από το τι θα προγραμματίσεις εσύ ο ίδιος. Αν γράψεις ένα πρόγραμμα που θα μαθαίνει από το περιβάλλον και θα ανανεώνει τον εαυτό του μπορεί να γίνει αυτό που λες, αλλιώς εξ' ορισμού δε γίνεται.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...