
Είμαι προσπαθεί να χρησιμοποιήσει Q-μαθαίνω πώς να μαθαίνω minesweeping συμπεριφοράς σε διακριτική έκδοση των έξυπνων σάρωθρα Mat Buckland του, το αρχικό διαθέσιμο εδώ <http://www.ai-junkie.com/ann/evolved/nnt1.html> , για μια ανάθεση. Η αποστολή μας περιορίζει σε 50 επαναλήψεις του 2000 κινείται σε ένα πλέγμα που είναι αποτελεσματικά 40x40, με τα μεταλλεία επαναφορά και ο παράγοντας που γέννησε σε μια τυχαία θέση σε κάθε επανάληψη.


Έχω προσπαθήσει επιδόσεις μάθησης q με κυρώσεις για τη μετακίνηση, τα οφέλη για σαρωτικές ορυχεία και τις κυρώσεις για τη μη σύγκρουση με νάρκη. Ο παράγοντας σκούπα φαίνεται σε θέση να μάθετε πώς να σαρώσει τα ορυχεία αποτελεσματικά εντός των 50 επαναλήψεων, γιατί μαθαίνει ότι πρόκειται να συγκεκριμένων κυττάρων είναι καλό, αλλά μετά από το ορυχείο έχει φύγει δεν είναι πλέον ανταμείβεται, αλλά τιμωρούνται για να πάει κανείς σε αυτό το κελί με το κίνημα κόστος


Ήθελα να επιχειρήσει την παροχή ανταμοιβών μόνο όταν όλες οι νάρκες εκκαθαρίστηκαν, σε μια προσπάθεια να κάνουν το περιβάλλον στατική όσο θα υπάρχει μόνο μια κατάσταση που δεν όλες τις νάρκες που συλλέγονται, ή όλα τα ορυχεία που συλλέγονται, αλλά είμαι αγωνίζεται για την εφαρμογή της λόγω του παράγοντα που έχει μόνο το 2000 κινήσεις ανά επανάληψη και να είναι σε θέση να κάνουν πίσω, ποτέ δεν καταφέρνει να σαρώσει όλα τα ορυχεία σε επανάληψη εντός της προθεσμίας, με ή χωρίς ανταμοιβές για τη συλλογή ναρκών.


Μια άλλη ιδέα που είχα ήταν να έχουμε ένα αποτελεσματικό νέα μήτρα Q για κάθε ορυχείο, έτσι ώστε όταν ένα ορυχείο συλλέγεται, τις μεταβάσεις σκούπα σε αυτό το πλέγμα και λειτουργεί από ότι όταν η τρέχουσα ορυχείο αποκλείεται από την εξέταση.


Υπάρχουν καλύτερες προσεγγίσεις που μπορώ να πάρω με αυτό, ή ίσως πιο πρακτικό τσιμπήματα στο δικό μου προσέγγιση που μπορώ να δοκιμάσω εκεί;

 
Q-learning για να μάθουν τη συμπεριφορά minesweeping
====================================================



Δεδομένου ότι η σκούπα μπορεί να δει πάντα το πλησιέστερο μου, αυτό θα πρέπει να είναι αρκετά εύκολο. Από την ερώτησή σας υποθέτω μόνο σας πρόβλημα είναι να βρει μια καλή λειτουργία ανταμοιβή και την εκπροσώπηση για την κατάσταση σας πράκτορα.


Καθορισμός ενός κράτους
=======================


Απόλυτη θέσεις είναι σπάνια χρήσιμες σε ένα τυχαίο περιβάλλον, ειδικά αν το περιβάλλον είναι άπειρη, όπως το παράδειγμά σας (από το bot να οδηγήσετε πάνω από τα σύνορα και respawn στην άλλη πλευρά). Αυτό σημαίνει ότι το μέγεθος του περιβάλλοντος δεν είναι απαραίτητη για τον παράγοντα για να λειτουργήσει (θα το χρειάζονται πραγματικά για να προσομοιώσει το άπειρο χώρο, εν τούτοις).


Μια συνάρτηση ανταμοιβής υπολογίζει την αξία της επιστροφής με βάση την τρέχουσα κατάσταση του παράγοντα σε σύγκριση με προηγούμενη κατάσταση. Αλλά πώς ορίζουμε μια κατάσταση; Ας δούμε τι πραγματικά χρειάζεται για να λειτουργήσει ο παράγοντας όπως θα θέλαμε να.


1. Η θέση του παράγοντα.
2. Η θέση του πλησιέστερου ορυχείου.


Αυτό είναι ό, τι χρειαζόμαστε. Τώρα είπα erlier ότι απόλυτες θέσεις είναι κακό. Αυτό οφείλεται στο γεγονός ότι καθιστά τον πίνακα Q (μπορείτε να το καλέσετε Q μήτρα) στατική και πολύ εύθραυστη για να τυχαιότητα. Ας προσπαθήσουμε να εξαλειφθεί πλήρως abosulte θέσεις από τη λειτουργία ανταμοιβή και αντικαταστήστε τα με σχετικές θέσεις. Ευτυχώς, αυτό είναι πολύ απλό στην περίπτωσή σας: αντί να χρησιμοποιήσετε τις απόλυτες θέσεις, χρησιμοποιούμε τη σχετική θέση μεταξύ του πλησιέστερου δικό μου και τον παράγοντα.


Τώρα δεν ασχολούνται με συντεταγμένες πια, αλλά φορείς. Αφήνει τον υπολογισμό του φορέα μεταξύ μας σημεία: `v = pos_mine - pos_agent`. Ο φορέας αυτός μας δίνει δύο πολύ σημαντικά κομμάτια των πληροφοριών:


1. η κατεύθυνση προς την οποία η nearst δική μου είναι, και
2. η απόσταση από το πλησιέστερο ορυχείο.


Και όλα αυτά είναι που πρέπει να κάνουμε πράκτορα μας λειτουργία. Ως εκ τούτου, ένας παράγων κατάσταση μπορεί να οριστεί ως



```
State: Direction x Distance

```

εκ των οποίων απόσταση είναι ένα πλωτό αξία σημείο και την κατεύθυνση είτε ένα πλωτήρα που περιγράφει τη γωνία ή μία κανονικοποιημένη φορέα.


Καθορισμός μιας συνάρτησης ανταμοιβής
=====================================


Δεδομένου πρόσφατα ορίζεται το κράτος μας, το μόνο που μας νοιάζει σε συνάρτηση με την ανταμοιβή μας είναι η απόσταση. Δεδομένου ότι το μόνο που θέλουμε είναι να μετακινήσετε το μέσο προς τα ορυχεία, η απόσταση είναι όλα αυτά τα θέματα. Εδώ είναι μερικές εικασίες πως η λειτουργία ανταμοιβή θα μπορούσε να λειτουργήσει:


1. Εάν ο παράγοντας σαρώνει ένα ορυχείο (απόσταση == 0), επιστρέφει μια τεράστια ανταμοιβή (ex. 100).
2. Εάν ο παράγοντας μετακινείται προς ένα ορυχείο (απόσταση συρρικνώνεται), επιστρέφει ένα ουδέτερο (ή μικρά) ανταμοιβή (ex. 0).
3. Εάν ο παράγοντας απομακρύνεται από ένα ορυχείο (απόσταση αυξάνεται), retuan αρνητική ανταμοιβή (ex. -1).


Θεωρητικά, από τη στιγμή που penaltize κινείται μακριά από το δικό μου, δεν χρειάζεται καν τον κανόνα 1 εδώ.


συμπέρασμα
==========


Το μόνο που απομένει είναι να προσδιορίσει ένα καλό ρυθμό μάθησης και εκπτώσεις, έτσι ώστε πράκτορα σας έχει καλή απόδοση μετά από 50 επαναλήψεις. Όμως, δεδομένης της απλότητας του περιβάλλοντος, αυτό δεν θα πρέπει καν έχει τόσο μεγάλη σημασία. Πείραμα.

 