From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
le 07-24-2014 01:02 PM
oui, en effet, TeamJP34 en avait parlé dès le début ...
mais le "franc" n'était pas tombé. (désolé)
@TeamJP34 :
et présente nous un jeu d'échec plus corriace que le précédent
J'y travaille depuis un bon moment ... ce sera une version beta_5.
petite parlotte: (parfois j'aime bien )
Mes fonctions d'évaluation ont fortement évolué. (donc le comportement du moteur aussi)
La mobilité des pièces a changé ... le temps ou la Dame noire faisait le travail quasi toute seule est terminé.
Les autres pièces entre en jeu plus facilement.
(Le temps de "réflexion" est un peu plus long ... ça peut aller jusqu'à 1 min.)
J'ai trouvé et fixé plusieurs bugs également
notamment dans l'élagage alpha-beta en cas de Mat en 1 coup
également dans la fonction qui vérifie si il y a échec, echec et mat, ou pat.
Et 2 ou 3 autres petis bugs ...
J'ai passé également beaucoup de temps pour la compréhension "fine" de ChessCore.
Exemple ... pour comprendre "pourquoi" le moteur a choisi de jouer un coup précis (apparemment absurde)
alors que pour y parvenir il a analysé 18.000 situations dans un système récurssif ... je vous assure qu'il faut s'accrocher.
J'ai toujours trouvé le "pourquoi" ... il avait toujours raison.
En principe je dois toujours me limiter à une profondeur de 4 (le temps de réflexion explose avec 6 ou 😎
Dommage ... car j'ai eu plusieurs fois le cas ou une analyse à 6 (au lieu de 4) me donnait un meilleur résultat.
Il faut bien comprendre cette histoire de profondeur ...
Avec une profondeur de 4, pour le moteur, la partie se joue en 4 coups (2 échanges)
Après 4 coups, on évalue la situation "au points" ... et le gagnant est celui qui a le plus de points.
Ce qui veut dire ... que le moteur est totalement aveugle concernant le 5eme coup (il n'exise pas)
Cette profondeur crée ce que l'on appelle un "effet d'horizon".
Le moteur va repousser les problèmes au-delà de son horizon ... la politique de l'autruche.
Cet "horizon" crée des effets tout à fait pervers ... et inévitables.
Plus la profondeur d'analyse est grande ... plus ces effets "pervers" au-delà de l'horizon s'amenuisent.
Mais avec 4 ... c'est trop peu ... ils ont encore beaucoup d'importance.
Je réfléchis sur la possibilité de rendre cette profondeur d'analyse "dynamique".
En effet ... quand il y a peu de pièces sur l'échiquier (fin de partie)
je pourrais m'autoriser une profondeur de 6 ... (voir 8 dans les cas extrême)
Par exemple .... avec 8 (4 échanges) un pion qui se trouve au milieu de l'échiquier "voit" parfaitement qu'il peut aller "à Dame".
Cette version Beta_5 sera présentée "en l'état"
Pourquoi ?
Ce code est perfectible à l'infini ... c'est un projet sans fin.
Il subsiste pas mal d'imperfections. (difficile de les résoudre avec LV ... je n'ai pas assez de temps pour "évaluer" tous ce qu'il faudrait évaluer".)
Il existe beaucoup d'améliorations possibles à l'algorithme MinMax (pas assez de temps non plus pour me les permettre)
Actuellement, mon principal soucis est de rendre la fonction d'évaluation dynamiquement évolutive en fonction de la situation de jeu.
Certaines analyses / décisions qui sont bonnes en début et milieu de partie ... deviennent néfastes en fin de partie.
Je dois donc modifier mon évaluation en cours de partie. Le plus difficile est de déterminer "les seuils" de changement ...
Sans oublier ... que c'est du code en plus ... donc du temps. (ce projet est une course contre le temps)
Mais ... cette version Beta_5 n'est pas mal quand même ... j'ai de plus en plus de mal à prendre l'avantage.
Aussi ... j'ai une fonction "undo" ... (très très utile pour moi, pour la mise au point)
mais elle permet aussi de "tricher" comme on veut ..
Quand ... ?
Je ne sais pas ... c'est toujours délicat de présenter un code éternellement imparfait.
Je vais faire mon max pour "lacher" une version beta_5 ... d'ici ...disons 10/15 jours maximum (promis)
voilou ... j'avais prévenu ... une grosse parlotte
le 07-24-2014 01:04 PM
@TiTou
merci pour le lien.
http://thinkinging.com/2009/02/14/i-couldnt-live-w
mais ces vidéos me sont inaccessibles.
Un anglais made in USA totalement incompréhensible pour moi. (dommage)
le 07-24-2014 04:20 PM
voilà une petite présentation très succinte, n'hésitez pas à être critique.
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 07-24-2014 04:41 PM
le 07-24-2014 04:45 PM
@Kaleck wrote:
Yop, je n'utilise pas beaucoup les variants, juste dans les boucles de gestions de messages (comme dans l’exemple de labview). Dans ce cas la c'est très utile, pour utiliser qu'une seule file d'attente.
entièrement d'accord, je l'utilise pas mal aussi.
@Kaleck wrote:
(J'imagine que "Queue" = file d'attente? désolé j'utilise la version française...)
oui. queue = file d'attente
@Kaleck wrote:
Titou, ta vidéo n'est pas disponible (trop tôt pour la lire?).
oui... encore 77minutes... je suis bavard et comme j'habite en montagne le débit montant n'est pas au top...
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
07-24-2014 06:44 PM - modifié 07-24-2014 06:49 PM
@TiTou :
super tes vidéos, bravo. (et merci)
et le gros "plus" ... elles sont en "français" ... les vidéos explicatives en français sont rares
Toutes les vidéos que j'ai pu rencontrer sur le Net à propos de Labview,
sont des vidéos la plupart du temps proposée par NI ... dans un anglais très "US" ... je n'en comprends pas un mot.
@Kaleck :
Ouadji, tu veux faire une intelligence artificielle?
non, je ne "veux pas faire" ... je fais.
L'algorithme MinMax avec élagage alpha-beta ( wiki et ici ) est un algorithme d'intelligence artificielle.
Mon VI ChessCore est un pur algo MinMax / alpha-beta.
si ça intéresse une petite approche intéressante
le 07-25-2014 02:10 AM
ouadji a écrit :
@TiTou :
super tes vidéos, bravo. (et merci)
et le gros "plus" ... elles sont en "français" ... les vidéos explicatives en français sont rares
Toutes les vidéos que j'ai pu rencontrer sur le Net à propos de Labview,
sont des vidéos la plupart du temps proposée par NI ... dans un anglais très "US" ... je n'en comprends pas un mot.
Quelle tristesse de lire des chose comme ça...
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 07-25-2014 03:36 AM
le 08-25-2014 07:29 PM
enfin ... .... j'ai trouvé un cas ou les variants sont utiles.
(ce, à mon sens ... car je sais que d'autres les trouvent utile plus facilement que moi)
mais "ici" ... y'a pas photo, c'est génial.
depuis un sous-vi, on peut définir la valeur de n'importe quel controle ou indicateur ...sans références, sans variables locales ...
uniquement en passant au sous-vi la reference du vi comportant les cibles.
(J'aime beaucoup l'utilisation d'une boucle avec les différents types dans un tableau de variants.)
le 08-26-2014 02:17 AM