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.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Variant (utilité)

Résolu !
Accéder à la solution

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 Smiley heureux )

 

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  Smiley heureux

 

 

 

0 Compliments
Message 21 sur 42
2 924 Visites

@TiTou

 

merci pour le lien.

 

http://thinkinging.com/2009/02/14/i-couldnt-live-without-array-of-vdata-to-vcluster-video/

 

mais ces vidéos me sont inaccessibles.

 

Un anglais made in USA totalement incompréhensible pour moi. (dommage)

0 Compliments
Message 22 sur 42
2 923 Visites

voilà une petite présentation très succinte, n'hésitez pas à être critique.

 

http://youtu.be/0veWMaPS-mY


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 23 sur 42
2 913 Visites
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.
(J'imagine que "Queue" = file d'attente? désolé j'utilise la version française...)
Titou, ta vidéo n'est pas disponible (trop tôt pour la lire?).

Ouadji, tu veux faire une intelligence artificielle? 😄
Message 24 sur 42
2 911 Visites

@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

Antoine Chalons

0 Compliments
Message 25 sur 42
2 909 Visites

@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.  Smiley clignant de l'œil

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

 

 

0 Compliments
Message 26 sur 42
2 899 Visites

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... Smiley triste

 

Allez zou!


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 27 sur 42
2 880 Visites
0 Compliments
Message 28 sur 42
2 868 Visites

enfin ... Smiley heureux .... 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.

 

SR1.png

 

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.)

 

0 Compliments
Message 29 sur 42
2 784 Visites

Bonjour,

 

Une fois qu'on a commencé à s'en servir, notamment pour transmettre des informations que l'on caste en variant et que l'on dé-caste par la suite en fonction d'un type (transmis en même temps que l'information castée), il devient difficile de s'en passer.

 

A+


0 Compliments
Message 30 sur 42
2 776 Visites