π
<-
Chat plein-écran
[^]

News 2024

News 2023
Août (2)
Juin (3)
Mai (4)
Avril (1)

News 2022
Août (3)
Juin (1)
Mai (1)
Mars (2)

News 2021
Août (12)
Juin (2)
Mai (7)
Avril (3)
Mars (1)

News 2020
Août (15)
Juin (7)
Mai (7)
Avril (19)
Mars (4)

News 2019
Août (4)
Juin (6)
Mai (1)
Avril (3)
Mars (1)

News 2018
Août (11)
Juin (3)
Mai (10)
Avril (2)
Mars (4)

News 2017
Août (15)
Juillet (18)
Juin (1)
Mai (7)
Avril (4)
Mars (7)

News 2016
Août (17)
Juillet (16)
Juin (2)
Mai (2)
Avril (1)
Mars (5)

News 2015
Août (25)
Juin (4)
Mai (9)
Avril (4)
Mars (10)

News 2014
Août (4)
Juin (11)
Mai (12)
Avril (9)
Mars (12)
Janvier (13)

News 2013
Octobre (11)
Août (5)
Juin (9)
Mai (12)
Avril (10)
Mars (7)
Janvier (10)

News 2012
Août (12)
Juillet (10)
Juin (13)
Mai (22)
Avril (8)
Mars (5)

News 2011
Octobre (23)
Août (1)
Juin (29)
Mai (11)
Avril (5)
Mars (3)

News 2010
Août (2)
Juin (5)

News 2009
Août (1)
Juin (1)
Mai (1)
Avril (1)
Mars (1)

Publication participations concours Galactik rentrée 2017

Nouveau messagede critor » 06 Nov 2017, 17:04

Image

La période de soumission des participations à notre concours de rentrée 2017 Galactik est désormais close, depuis minuit ce jour.

Toutes les participations reçues dans les quatre catégories peuvent dès maintenant être librement consultées par tous sur le lien ci-après, à télécharger et charger sur calculatrice/émulateur pour les catégories Casio/HP/TI, ou à tester en ligne pour la catégorie NumWorks.



Pour les curieux, quelques nombres il me semble encore jamais vus dans la communauté calculatrices (du moins pour des concours, à ne pas confondre avec des loteries / tirages au sort) :

142 participations de 44 participants :
  • 31 participations de 10 participants dans la catégorie Casio :
    • 16 participations de 05 participants conçues sur Casio Graph monochrome
    • 15 participations de 05 participants conçues sur Casio Graph/fx-CG couleur
    • 00 participations de 00 participants conçues sur Casio fx-CP400
  • 31 participations de 09 participants dans la catégorie Hewlett Packard
  • 35 participations de 11 participants dans la catégorie NumWorks
  • 44 participations de 18 participants dans la catégorie Texas Instruments :
    • 11 participations de 04 participants conçues sur TI-8x monochrome
    • 16 participations de 09 participants conçues sur TI-8x couleur
    • 17 participations de 06 participants conçues sur TI-Nspire




Un grand merci à tous pour votre intérêt ainsi que les beaux combats et duels menés ces dernières semaines. :bj:
Merci aux constructeurs Casio, Hewlett Packard, NumWorks et Texas Instruments pour leur soutien. :bj:
Merci à Planète Casio pour sa collaboration très constructive et enrichissante. :bj:

Et à bientôt pour la levée de l'anonymat. ;)




Lien : https://tiplanet.org/galactik.php
Lien vers le sujet sur le forum: Publication participations concours Galactik rentrée 2017 (Commentaires: 14)

Coup d'oeil dans le TI-Robot E3

Nouveau messagede critor » 07 Nov 2017, 19:03

86248620Dans plusieurs articles précédents, nous te faisons découvrir le TI-Robot E3 conçu par Norland Research, un robot programmable pilotable par une TI-83 Premium CE ou TI-Nspire CX munie d'une interface TI-Innovator. Nous tentions donc de le faire rouler droit... avec plusieurs difficultés partiellement résolues. Les roues qui ne démarraient pas en même temps, qui ne tournaient pas à même vitesse, et même pire dont la vitesse variait, peut-être en rapport dans ce dernier cas avec une faiblesse de l'alimentation par 6 piles AA (oui, la bête est gourmande...).



8988Mais ne nous décourageons pas, et tentons aujourd'hui de mieux connaître et donc comprendre le TI-Robot E3 en le démontant. ;)

Le robot comprend donc une carte électronique qui s'enfiche sur le connecteur BreadBoard 10x2 broches de l'interface TI-Innovator lorsque l'on insère cette dernière.

On note qu'en réalité le contrôle du robot n'utilise pas les 10 voies BreadBoard.
En effet, les voies n°8, 9 et 10 inaccessibles une fois l'interface glissée dans le robot sont simplement acheminées jusqu'au côté de la carte. Elles pourront donc servir à connecter des capteurs ou actionneurs supplémentaires. :)

Seules les voies n°1 à 7 sont utilisées, et on peut rappeler par rapport aux articles précédents :
  • Voie n°1 : marche avant roue droite
  • Voie n°3 : marche avant roue gauche
Il nous reste donc encore 5 voies à exploiter et qui pourront peut-être nous aider à atteindre notre objectif.

Outre un interrupteur marche/arrêt et une diode témoin de l'alimentation, on remarque également un port USB libellé AUX POWER. Mais encore faut-il s'avoir si c'est pour une alimentation externe du robot pouvant potentiellement résoudre nos problèmes d'alimentation, ou si il s'agit au contraire pour le robot de partager son alimentation avec des capteurs/actionneurs.



A bientôt... ;)
Lien vers le sujet sur le forum: Coup d'oeil dans le TI-Robot E3 (Commentaires: 2)

Coup d'oeil dans le robot TI-Rover

Nouveau messagede critor » 10 Nov 2017, 23:52

89918970Après le TI-Robot E3, jetons aujourd'hui un coup d'oeil dans le TI-Rover, autre robot programmable piloté depuis une calculatrice TI-Nspire CX ou TI-83 Premium CE à travers une interface TI-Innovator.

Notons que comme avec le TI-Robot E3, l'interface TI-Innovator est à insérer dans le TI-Rover qui utilise alors lui aussi son connecteur BreadBoard.

Mais à y regarder de plus près ce n'est pas tout. On note que le TI-Rover utilise également le port I²C. Il s'agit à notre connaissance de la première utilisation effective de ce port. Le fonctionnement du TI-Rover semblerait donc à priori plus complexe que celui de TI-Robot E3.
899089718992


89938972Le coeur du TI-Rover est une carte électronique de référence FP15-1.... Ce que l'on rapproche aisément de la référence FP14-10-1 de la carte du TI-Innovator. Une carte effectivement bien plus riche en connexions que celle du TI-Robot E3 :
  • Du côté de la roue gauche, nous notons divers connecteurs :
    • J5 : diode RVB + indicateur de charge batterie (présents en haut à gauche sur la face supérieure du TI-Rover)
    • J? : Ultrasonic (sonar)
    • J7 : Left Motor
    • J13 : Left Encoder
    • J15 : connexion I²C TI-Innovator
  • Du côté de la roue droite, nous ne sommes pas en reste :
    • J9 : bouton marche/arrêt (présent en haut à droite sur la face supérieure du TI-Rover)
    • J? : Color Sensor (capteur de couleur TCS34725 présent sur la face inférieure du TI-Rover)
    • J8 : Battery
    • J6 : Right Motor
    • J14 : Right Encoder
    • J3 : I2C_1, qui serait donc bizarrement une deuxième connexion I²C ici inusitée

Que de mystères à explorer et secrets à révéler... à bientôt ! ;)
Lien vers le sujet sur le forum: Coup d'oeil dans le robot TI-Rover (Commentaires: 3)

Educatec-Educatice 2017 Paris : rencontre Casio

Nouveau messagede critor » 11 Nov 2017, 09:58

Tu as raté l'occasion ces dernières semaines d'aller voir Texas Instruments, Casio, Hewlett Packard et NumWorks aux journées APMEP à Nantes ou au Congrès UdPPC à Limoges ?

Et bien bonne nouvelle, ultime chance de l'année cette semaine avec le salon Educatec-Educatice à Paris Porte de Versailles, les mercredi 15 et jeudi 16 de 9h à 18h, et le vendredi 17 de 9h à 17h.

Tu pourras y rencontrer Casio.

Hewlett Packard sera certes également présent, mais à la différence sans sa branche HP Calculatrices selon la description des exposants sur le site de l'événement.



Source : http://www.educatec-educatice.com
Lien vers le sujet sur le forum: Educatec-Educatice 2017 Paris : rencontre Casio (Commentaires: 1)

Résultats catégorie TI concours Galactik rentrée 2017

Nouveau messagede critor » 14 Nov 2017, 20:08

Image

Après la publication des participations dans un article précédent des participations anonymisées à notre concours de rentrée 2017 Galactik, voici enfin ce soir la levée de l'anonymat avec le classement catégorie TI ! :bj:

En 18ème position, félicitons Sébastien B. qui a trouvé un score de 15 219 249,940 368 à l'aide de sa TI-83 Premium CE ou compatible.


17ème et toujours sur TI-83 Premium CE ou compatible, bravo à UnCurieux qui après 2 participations a réussi à atteindre le score de 21 363 990,943 919.


A la 16ème place c'est un chercheur TI-Nspire que nous accueillons, MMBC_Chris avec son score de 24 616 754,101 287.


wilylejardinier qui se classe 15ème décroche un score de 26 125 492,019 093 après avoir cherché sur TI-82 Advanced ou compatible.


C'est à nouveau muni d'une TI-83 Premium CE ou compatible, que Bx4 arrive 14ème avec son score de 26 584 147,366 138.


13ème, Ti64CLi++ a choisi quant à lui de chercher le problème sur TI-Nspire et arrive à faire un score de 28 072 395,376 077 après 2 participations.


A la 12ème place, bravo à Thimoté L. qui, muni de sa TI-83 Premium CE ou compatible, arrive à monter jusqu'à un score de 28 266 838,486 300.


Toujours à l'aide d'une TI-83 Premium CE ou compatible, Mohammad G. se classe 11ème avec son score de 32 390 666,279 043.


AMEMA avec sa TI-Nspire arrive à nous décrocher la 10ème place avec un score de 37 755 660,688 639 après avoir persévéré pendant 5 participations.


C'est quant à lui au bout de 4 participations à l'aide de sa TI-83 Premium CE ou compatible que Wistaro arrive 9ème avec un score de 38 281 788,724 363. Remarquons qu'il s'agit du premier candidat à utiliser des coordonnées avec une partie décimale non nulle.


Armé de sa fidèle TI-Nspire, 4BH_MM7 arrive au bout de 4 participations à une disposition évaluée à 45 634 462,004 189, se classant ainsi 8ème. Remarquons qu'il s'agit de la première configuration géométriquement remarquable, avec une disposition en quadrillage.


Après 2 participations avec sa TI-82 Advanced ou compatible, Guillaume S. se place quant à lui 7ème avec son score de 47 614 973,281 911.


Toujours fidèle à ses TI-Nspire, Extra44 termine avec un score de 49 136 121,396 922 à la 6ème place au bout de 3 participations.


C'est également sur TI-Nspire que Yassine E. arrive à faire légèrement mieux avec 49 942 000,581 264 après seulement 2 participations, terminant ainsi 5ème.


Comme promis tous les participants précédents gagnent un compte TI-Planet Premium, et si ils en avaient déjà un il leur est parfaitement possible d'en faire don à une autre personne.

Voici maintenant, dans l'inverse de l'ordre dans lequel ils pourront puiser dans la dotation annoncée afin de composer leur lot, les 4 meilleurs participants.

En 4ème position, toutes nos félicitations à LaTaupe qui, muni d'une simple TI-82 Advanced ou compatible, arrive à atteindre un score de 49 942 820,195 985 après avoir persévéré pendant 7 participations. Remarquons ici aussi une disposition géométriquement remarquable, selon un quadrillage triangulaire.

@LaTaupe, comment as-tu fait pour accumuler autant de millions ?
LaTaupe a écrit:Dans un premier temps, j'ai décidé de créer un algorithme en python utilisant le principe de la programmation génétique. Apres avoir fait tourner mon PC pendant quelques nuits, je n'ai obtenu qu'un score de 43 millions dans ma catégorie TI. Par conséquent, j'ai changé de méthode en écrivant un algorithme testant des configurations se basant sur une structure hexagonale. En effet, pour maximiser le score entre deux étoiles, il faut que ces dernières soient à une distance de 20 ou éloignées le plus possible l'une de l'autre. La structure hexagonale permet ainsi d'optimiser les distances entres les étoiles pour avoir le plus d'écart de 20. C'est ainsi que j'ai pu obtenir ma quatrième place dans la catégorie TI à 820 près. (encore désolé pour le participant 16)


Se classant 3ème, tout notre respect à Disconnected59 qui atteint directement un score de 49 946 730,080 638 après avoir cherché sur TI-83 Premium CE ou compatible. Nous avons ici encore une disposition selon un quadrillage en triangle, et l'on peut noter qu'il reste quelques traces de son raisonnement dans la liste fournie avec quelques valeurs exactes.

@Disconnected59, comment t'y es-tu pris pour disposer tes étoiles ?
Disconnected59 a écrit:Pour le concours, je suis tombé sur le concours lorsque je venais chercher des informations sur ma Ti 83CE et l’application dont j’avais besoin pour pouvoir le faire communiquer avec mon ordinateur.
Et pour le score, j’ai passé beaucoup de temps à essayer de réussir, j’ai même essayé plusieurs méthodes avec quelque algorithme pour m’aider, je suis alors tombé sur une liste me rapprochant de 49 millions et ensuite j’ai fait un Brut-force localisé sur la liste pour forcer le passage et ainsi me retrouver avec ce score.


Congratulations to Jacobly who ranked 2nd using his TI-83 Premium CE or compatible to improve the high score by 2 millionth up to 49 946 730,080 640 after submitting only 2 entries.

@jacobly, how did you achieve such a high score ?
jacobly a écrit:I used simulated annealing programmed in C to get all of my scores. Initially I assumed that I was restricted to integer coordinates which was difficult to optimize and didn't produce very good scores. Then I found out that other people were getting higher scores with fractional coordinates so I switched to a continuous algorithm. At some point I noticed that most of my good configurations had the stars near a "hexagonal" lattice of points where each point is 20 units away from 6 other points. I used this information to create another discrete implementation that only considered the points on this lattice. This let me find close to an optimal score fairly quickly, which I could then polish off by alternating two continuous algorithms. Since I was working with binary floats the whole time, I had no reasonable way to fully optimize the last digit when computed with decimal rounding error, and I ended finding a solution within an ulp of first place in 3 categories.
https://tiplanet.org/forum/viewtopic.php?f=49&t=20678&start=10#p223474


Enfin, nous avons Zezombye qui termine 1er en améliorant encore le meilleur score d'un millionième jusqu'à 49 946 730,080 641 à l'aide de sa TI-83 Premium CE ou compatible après seulement 2 participations. Nous retrouvons ici aussi une disposition remarquable selon un quadrillage triangulaire, ainsi que quelques traces de recherche avec quelques valeurs exactes dans la liste.

@Zezombye, le monde entier attend de connaître ton secret.
Zezombye a écrit:Le 17 septembre, je découvre la surprise dont parlaient les admins : le concours de rentrée.
J'ouvre le g1m, puis je me mets à décortiquer l'algorithme pour savoir comment est calculé le score.
On se rend compte rapidement que le calcul du score se fait dans cette boucle :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
While K!=48 And K!=47 And K!=44
   If Abs Frac List 8[P] :Then
      
      Int List 8[P]->List 8[P]
      7->K
   Else
      
      GetKey->K
   IfEnd
   List 8[P]->Z
   If K=28 And ImP Z<Ymax-T Or K=27 And ReP Z<Xmax Or K=38 And ReP Z>Xmin Or K=37 And ImP Z>Ymin Or K=7 :Then
      
      Z+(K=27)-(K=38)+i((K=28)-(K=37))->List 8[P]
      For 1->I To P-1+(K!=7)(M-P+1)
         If I!=P :Then
            
            S+Mat G[I,P](1/(1+Abs ((Mat G[I,P]>0 And I>1)F-Abs (List 8[I]-List 8[P])))-(K!=7)/(1+Abs ((Mat G[I,P]>0 And I>1)F-Abs (List 8[I]-Z))))->S
         IfEnd
      Next
   IfEnd
   PlotOff ReP Z,ImP Z
   If K=78 Or K=77 Or K=7 :Then
      
      If K=77 :Then
         
         M-MOD(M-P+1,M-1)->P
      Else
         
         2+MOD(P-1,M-1)->P
      IfEnd
      PlotOff ReP List 8[P],ImP List 8[P]
      PlotOn ReP Z,ImP Z
   IfEnd
   PlotChg ReP List 8[P],ImP List 8[P]
   Text 1,1,S
WhileEnd


Plusieurs variables sont importantes ici :
- K pour Key, avec K=7 lors de l'initialisation
- S pour Score
- I pour Itérateur
- P pour Etoile (2 à 7, l'étoile 1 étant le centre de l'écran)
- F pour Distance (20, ne change pas).

On remarque que le code exécuté pour le recalcul du score est inutile ici, car on veut juste comprendre l'algo. Ainsi, on assume que K = 7 est toujours vrai.
En étudiant un peu plus l'algorithme, on remarque que la boucle While fonctionne ici comme un For qui itère sur P de 2 à 7. En pseudo-langage, ça donne :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
for (int P = 2; P <= 7; P++) {

   for (int I = 1; I <= P-1; I++) {
                                    1      
      S+Mat G[I,P]*(--------------------------------------------------
                    1+|20(Mat G[I,P]>0 And I>1)-|List 8[I]-List 8[P]||
      
                          K != 7
      - -------------------------------------------) -> S
        1+|20*(Mat G[I,P]>0 And I>1)-|List 8[I]-Z||
   }            
}


Mais comme K = 7, alors K != 7 est faux, donc on peut directement enlever cette portion du code :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
for (int P = 2; P <= 7; P++) {

   for (int I = 1; I <= P-1; I++) {
                                    1            
      S+Mat G[I,P]*(--------------------------------------------------)->S
                    1+|20(Mat G[I,P]>0 And I>1)-|List 8[I]-List 8[P]||
   }      
   
}


Tout de suite, c'est plus simple.
La matrice G vaut :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
     1       2        3       4       5        6       7

1      0  485402   366483  895650   398681   246960  1062990
2            0    2603497  -18533 -3484358   386459  -768468
3                   0    -646585 -3156512  1487979 -2522960
4                           0     2602703   632508 -2423677
5                                 0    -1746276  1331355
6                                      0    -2905103
7                                          0

À noter que G[X,Y] = G[Y,X] (avec l'instruction Mat G+Trn Mat G->Mat G).

Pour avoir le meilleur score, il faut donc influer sur le dénominateur de la fraction : 1+|20(Mat G[I,P]>0 And I>1)-|List 8[ I ]-List 8[P]||.
Ici, |List 8[ I ]-List 8[P]| est la distance entre I et P. Deux cas sont possibles :
- Si Mat G[I,P] > 0 : dans ce cas il faut que le dénominateur soit le plus proche de 1. En étudiant bien le dénominateur, il faut que |20(Mat G[I,P]>0 And I>1)-|List 8[ I ]-List 8[P]|| = 0, ce qui signifie que la distance entre I et P doit être la plus proche de 20.
- Si Mat G[I,P] <= 0 ou que I = 1 (on calcule le score par rapport au centre), alors plus I sera proche de P, plus la fraction sera proche de 1. Cela veut dire que si Mat G[I,P] <= 0 alors il faut que I soit le plus éloigné possible de P, et si I = 1 alors il faut que I soit aux mêmes coordonnées que P.

Toutefois, mon cerveau a décidé pour une quelconque raison de lire la condition (Mat G[I,P]>0 And I>1) en tant que (Mat G[I,P]=0 And I>1), ce qui change tout. Cela veut dire que si Mat G[I,P] < 0, alors I doit être à une distance éloignée de 20 de P, donc I peut être aux mêmes coordonnées que P avec une perte de score minime ! (ce qui n'est pas le cas, mais c'est ce que je croyais au début).

J'ai donc tracé le graphe des liaisons entre les étoiles :

Puis, je me suis rendu compte qu'il n'y avait qu'une seule configuration possible pour qu'il n'y ait que des traits verts reliant les étoiles :


La seule modification ici était d'influer sur l'angle du triangle 6-2-3 (par rapport à l'horizontale), ce qui avait un impact car G[2,4] = -18533 alors que G[3,4] = -646585. Après un bruteforce, je trouve mon score de 9 843 347,30939981. Bizarrement, mon algorithme trouve un score de 9.6 millions (mais qui me donne 9.8M lorsque je transpose la liste sur la calculatrice), mais j'ai attribué ça à un changement de moteur de calcul.
Convaincu que le seul moyen de battre mon score n'était que de quelques millièmes en changeant un peu l'angle du triangle 6-2-3, je cherche sur TI et HP, mais n'arrive qu'à faire 46M et 123M, loin des premiers.

---
Un mois plus tard, le 28 octobre, Nemhardy me donne un coup de pied au cul en sortant un score de 9 966 747. Cela implique une toute nouvelle configuration, ce que je trouve bizarre : il n'y a pas de moyen évident d'arranger les étoiles autre que ma configuration.
En cherchant un peu, je trouve qu'en rompant la liaison 4-6 et en plaçant le 4 sur le 6, cela pourrait faire augmenter mon score :
- Rompre la liaison 4-6 me fait perdre 632k
- Placer le 4 sur le centre (avec le 7) me fait gagner 895k
- La pénalité de 4 et 7 est divisée par 21, ça me fait perdre 2423/21 ~= 120k.
Tout cela s'additionne pour me donner une amélioration d'environ 120k, ce qui correspond à peu près au delta de 123k entre mon score et celui de Nemhardy.

Je teste, et je trouve un score de... 7 millions ?! Bizarre. Je refais mes calculs : seuls les 3 paramètres cités varient. Je retélécharge Galactik au cas où j'aurais modifié le calcul du score dans un de mes tests : même chose. Je teste sur Graph 90+E (en devant en plus démarrer ma VM, car j'avais épuisé la période d'essai de l'émulateur) : même chose.
Aurais-je fait une erreur dans le recopiage de l'algorithme ? Je regarde, et je ne vois pas. Je remarque que le score de 7 millions était comme si la pénalité de la liaison 7-4 était appliquée sans être divisée par 20... il doit y avoir une erreur, car G[7,4] != 0 et I > 1 donc la condition devrait être vraie.
Je teste : P = 4, I = 7, Mat G[I,P] = -2M, alors pourquoi (Mat G[I,P] = 0 And I>1) retourne 0...
...
...Ah, c'est Mat G[I,P] > 0.

(oui, il m'a fallu jusqu'au dernier moment pour que mon cerveau corrige l'erreur)

Maintenant que je connais le vrai fonctionnement de l'algorithme, une nouvelle configuration semble logique : en effet, cela veut dire que pour des étoiles à 20 de distance, les liaisons négatives sont divisées par 21.
La liaison 4-2 n'imposant qu'une pénalité de -18k, je peux les superposer, ce qui me donne une amélioration de -1063k + 896k + 485k = 318k, et la configuration suivante :

L'amélioration n'est que de 147k en raison du rapprochement des liaisons 5-3, 3-4 et 5-6, qui font sentir leurs millions de pénalités.
Un autre bruteforce pour trouver l'angle du triangle 2-3-6 (et cette fois mon algo en java trouve le même score qu'affiché sur la calculatrice), et je trouve un score de 9 991 310, qui est d'ailleurs toujours premier de la catégorie casio.

---
Avec ces connaissances en plus, j'ai re-regardé mes configurations TI et HP, que je triturais pendant un mois (mais avec un algo faux). Je me suis aidé des images des matrices :

Sur HP, je n'ai pas réussi à bien améliorer mon score : 125M contre 123M... et de toute façon la catégorie était saturée, avec 3 participants différents étant tombés sur ce qui est visiblement le score maximal.

Sur TI, après un peu d'expérimentation, je suis tombé sur cette configuration :

Ce qui me donnait 48M... pas assez, mais suffisant pour être 2ème.
Pour modifier la configuration, il faut noter que le polygone 2-11-6-10-7 est inaltérable (car composé uniquement de triangles verts) ; impossible de déplacer n'importe laquelle de ces 5 étoiles sans baisser mon score.

J'ai essayé de relier la liaison 8-5, mais c'est impossible, car il fallait alors superposer des étoiles avec une liaison négative, ou casser des liaisons positives, ce qui baissait mon score (la liaison 8-5 ne m'apportant que 1.22M).

Mais, en mettant le 7 sur le 3, il est possible de changer la structure tout en gardant l'intégralité des liaisons vertes :

On voit que, tout comme casio, on peut influer sur l'angle de l'étoile 8 par rapport à l'étoile 10. Un petit bruteforce plus tard, j'ai un score de 49 942 613, ce qui me classe premier. Mais le participant n°23 avait soumis un score de 49 946k avant de se rabattre vers HP - il y avait donc une amélioration à faire.

Y a-t-il quelque chose qui pourrait bouger dans notre configuration ? On élimine tous les triangles, il reste donc le losange 9-5-7-4 dont on peut modifier la distance 5-4 afin d'améliorer le score.
Un peu de trigonométrie pour déterminer les coordonnées de 9 par rapport à l'angle de 4 par rapport à 7, et avec un bruteforce, je trouve 49 946k.
Mais étant donné qu'il y a 2 angles à modifier : l'angle de 4 par rapport à 7, et l'angle de 8 par rapport à 10, il faut bruteforcer les 2 afin de trouver la meilleure configuration.

Un premier bruteforce et je trouve 49 946 730.080507. Un bon début, mais il me reste 133 millionièmes.
En raffinant, je me rapproche : 509, 543, puis un score de 639, que je soumets.
45 mn plus tard, je trouve un score de... 641 ! J'obtiens alors la première place au classement TI, et y reste.
Durant les prochains jours, je tente de trouver un 642, sans succès. Mon bruteforce atteint les limites, et la différence de moteur de calcul se fait sentir : des scores supposés être supérieurs à mon 641 se traduisent par un 640, 639, ou pire, .073543 (7 millièmes de moins).

J'essaie donc le BigDecimal pour garder un moteur de calcul décimal, mais... c'est lent. 1 heure pour 10^6 combinaisons, alors que je peux faire 10^9 combinaisons (voire plus, je ne me souviens plus) en flottant. Et bruteforcer sur la TI-83, n'en parlons pas.
L'interpréteur Lua de la NSpire semble une bonne option... sauf qu'il calcule en flottant lui aussi, et non pas en décimal. Il fait donc les mêmes erreurs que mon algorithme Java.

Je décide d'en rester là, en me disant que, si quelqu'un trouve un 642, je reviendrai sur Casio... mais visiblement mon 641 était le maximum possible.

Voilà, et encore merci à Nemh qui m'a permis de me rendre compte du vrai algo - sinon je m'en serais rendu compte 4 jours plus tard, et ces 4 jours auraient pu être fatals x)
https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14990 (avec en prime supports de recherche en pièce jointe)


Merci à vous tous pour vos efforts avec les diverses stratégies déployées et la persévérance jusqu'au bout du temps imparti et des décimales de la calculatrice ! :bj:
Lien vers le sujet sur le forum: Résultats catégorie TI concours Galactik rentrée 2017 (Commentaires: 51)

Mise à jour TI-Innovator 1.2.0.18 : compatibilité TI-Rover

Nouveau messagede critor » 23 Nov 2017, 23:29

89619022La mise à jour 1.2 dédiée au périphérique TI-Innovator Hub pour TI-83 Premium CE et TI-Nspire CX est désormais disponible. Plus précisément, nous passons donc de la version 1.1.0.16 à la version 1.2.0.18.

Bien que ce ne soit apparemment pas mentionné dans sa documentation, cette mise à jour est nécessaire pour les utilisateurs du robot TI-Rover, rajoutant apparemment la compatibilité avec ce dernier. En effet, sans cette mise à jour l'envoi comme déjà montré de la 1ère commande CONNECT RV génère une erreur INVALID OPTION.



Téléchargements :
Lien vers le sujet sur le forum: Mise à jour TI-Innovator 1.2.0.18 : compatibilité TI-Rover (Commentaires: 0)

Résultats catégorie Casio concours Galactik rentrée 2017

Nouveau messagede critor » 25 Nov 2017, 23:40

Image

Après la publication du classement de la catégorie TI dans un article précédent, voici ce soir le classement catégorie Casio de notre concours de rentrée 2017 Galactik! :bj:

C'est au bout de 3 participations à l'aide de sa Casio Graph 90+E ou compatible qu'Estéban S. arrive 9ème avec un score de 2 474 322,165 862 66.


Armé de sa Casio Graph 90+E, Guigui61 arrive au bout de 2 participations à une disposition bipolaire évaluée à 8 015 790,138 792 35, se classant ainsi 8ème.


Au bout de 4 participations également, Suruq Game se place quant à lui 7ème avec son score de 8 334 513,139 866 2 mais obtenu à l'aide de sa Casio Graph 35+E ou compatible, avec des étoiles qui font la queue leu leu.


Toujours sur Casio Graph 35+E ou compatible, Teusner termine avec un score de 8 515 340,047 202 66 à la 6ème place, et nous remet une constellation bipolaire.


C'est quant à lui en explosant littéralement la constellation sur Casio Graph 90+E ou compatible que Majdrab arrive à faire mieux avec 8 921 487,909 238 94 après 3 participations, terminant ainsi 5ème.


Comme promis tous les participants précédents gagnent un compte TI-Planet Premium, et si ils en avaient déjà un il leur est parfaitement possible d'en faire don à une autre personne.

Voici maintenant les mentions honorables ainsi que les gagnants, pour ces derniers dans l'inverse de l'ordre dans lequel ils pourront puiser dans la dotation annoncée afin de composer leur lot.

En 4ème position, toutes nos félicitations à Ne0tux qui, muni d'une Casio Graph 90+E ou compatible nous sort une constellation linéaire avec une queue et une tête, arrivant ainsi à atteindre un score de 9 843 016,078 170 63 après avoir persévéré pendant 2 participations.

@Ne0tux, comment as-tu fait pour accumuler autant de millions ?
Ne0tux a écrit:Je vois que Zezombye et moi avons eu exactement le même raisonnement ! La seule différence est que j'ai fait une rotation du triangle (6,2,3) autour de 6 de -90 à 90° seulement, par soucis de temps. Si j'avais poussé les bornes plus loin j'aurais trouvé une solution analogue à la tienne. :waza:

J'ai tout fait à la main quasiment. Avec un papier et en regardant G, si on veut une distance de 20 dès que G est positif, on a qu'une seule possibilité :

Code: Tout sélectionner
      17----------2
     / |         |\
    /  |         | \
   5   |         |  3
    \  |         | /
     \ |         |/
       4----------6


J'ai vite compris avec les coefficients de G négatifs que le duo 1 et 7 devait se trouver le plus loin possible du reste donc je suis directement tombé sur cette configuration :

(c'est fou, j'avais fait une image quasiment identique !)

Le seul algo que j'ai utilisé effectuait 2 rotations, dont celle du triangle en effet.

J'ai quand même eu de la chance dans le sens où je suis tombé sur le seul modèle de calculatrice où l'on pouvait espérer trouver juste avec ses méninges (j'ai cru comprendre qu'il y avait plus d'étoiles dans d'autres catégories, ça corse les choses) ! ^^

C'était rigolo en tout cas. J'ai envisagé le bruteforce 10 secondes avant de me rendre compte que les 2 heures passées à la main seraient bien plus fructueuses qu'un algo qui prendrait des siècles. :lol:
https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14990#150946


En redressant cette même constellation à la verticale, Alix se classe 3ème et atteint directement un score de 9 843 350,160 412 65 après avoir persévéré sur Casio Graph 90+E ou compatible pendant 3 participations.

@Alix, comment t'y es-tu pris pour disposer tes étoiles ?
Alix a écrit:Bonsoir, merci à vous c'était un plaisirs de se creuser la tête sur un telle problème !!!

J'ai découvert ce concours par un ami.
En découvrant l'interface de jeu j'ai tout d'abord cherché à comprendre comment cela fonctionnait, juste en bougeant les étoiles avec les touches. Ça ne m'a mené à presque rien.

J'ai ensuite tenté de comprendre le code. Débutant dans le domaine ça m'a pris beaucoup de temps. Et il y a des détails qui m'ont échappé jusqu'à la fin.

La première grande découverte que j'ai faite c'est la matrice qui contenait les coefficients des scores entre les étoiles. J'ai juste désactivé le "clear" et je suis aller la consulté.

Ensuite il m'a fallu comprendre comment était calculé le score à partir de ça. Au début je me suis juste dis que c'était l'inverse de la distance entre les étoiles multiplié par le coefficient de ces deux étoiles.

Puis en regardant la liste j'ai compris comment les coordonnées des étoiles rentraient en compte. Et j'ai trouvé le point centrale "aimé" de toutes les étoiles.(le (189;93) qui ne bougeait jamais)

Avec ces connaissance j'ai bidouiller un peu étant donné que je connaissais la matrice et donc les étoiles contraire et jumelle.("-" = contraire et "+" = jumelle)


Ensuite tout c'est passé pendant les vacances.
Pour mieux comprendre le programme j'ai mis des "disp" entre les lignes de calcul du score. Ils me renvoyaient le P et le I, la distance, le coeff, le score engendré et le score total.

J'ai alors compris que mettre à une distance de 20 équivalait à coller. En réfléchissant avec la matrice sur mon brouillon, j'ai adopté (après plein d'essais) la formation en Y assez proche de ma solution finale.

Code: Tout sélectionner
R-----M
  \     /
    \  /
      C
       |
      V
       |
      J
       |
      B


(Avec 20 entre chaque étoiles)

Pour différentes distances : comme celle entre mon Y et le point (189;93). J'ai tracé des courbe du score en fonction de la distance. Et j'ai regardé le max. Ici le B ce retrouve alors sur le point (189;93)

J'ai aussi essayé des algos mais ça n'a pas marché.

Enfin, pour grappiller des points j'ai fait pivoter le triangle rouge, magenta, cyan (2,3,6) pour amener le vert plus proche du rouge que du magenta.

Durant tout le concours j'ai travaillé sur ma calculatrice et une feuille de brouillon sur ma table de nuit ;)


Mention honorable pour Lephenixnoir. En poursuivant la rotation et réorientant cette même constellation cette fois-ci en diagonale, il arrive à atteindre un score de 9 846 812,233 735 44 après avoir cherché sur Casio Graph 35+E ou compatible et envoyé 2 participations. Mais comme il est aussi administrateur de Planète Casio, il ne peut donc pas être classé.

@Lephenixnoir, comment t'y étais-tu pris pour disposer tes étoiles ?
Lephenixnoir a écrit:J'ai implémenté un pur algorithme génétique. Ce type d'algo consiste à prendre un population, ici un ensemble de solutions avec leurs scores. Il applique ensuite un cycle bien précis :

1. Évaluation : On calcule le score de chaque configuration
2. Sélection : On ne garde que les meilleures
3. Croisement : On croise les meilleures entre elles pour recréer de la population
4. Altération : On modifie aléatoirement quelques positions (pour éviter de stagner)
5. On recommence à l'étape 1.

Les deux premières étapes sont simples à s'imaginer. Pour la troisième, j'avais deux manières de croiser deux configurations. Dans chacune d'elles, je considérais pour chaque étoile, sa position dans la première configuration, puis dans la deuxième. La première méthode choisissait, pour placer cette étoile dans la configuration fille, une position au hasard sur le segment. La seconde aussi, mais elle se mettait au même endroit (au même rapport de distance, ie. le même barycentre) pour toutes les étoiles, ce qui donnait une sorte de rotation qui préservait bien le score.

Pour l'altération, je faisais vibrer toutes les étoiles sur une amplitude de λ autour de leur position. Tant que le score maximal de la population grandissait, λ restait fixe, mais s'il stagnait, λ devenait plus petit pour permettre de gagner de la précision. Si ça ne suffisant pas, λ devenait très grand pour tenter de débloquer la situation.

Je faisais tourner ça sur 65'000 à 4 millions de générations selon les cas (plus le score semblait prometteur et plus je faisais durer la simulation), en partant de configurations entièrement aléatoires. En le faisant tourner quelques minutes, je sortais plusieurs configurations à plus de 9 millions, mon meilleur score étant 9846814.67 sur Casio et 107711137.32 sur Numworks.

Comme ça ne suffisait pas pour rattraper les premiers, j'ai imaginé un autre système (que je n'ai malheureusement pas eu le temps d'implémenter). Ça consistait à traduire les relations entre les étoiles en forces et à appliquer de la mécanique sur le système. En gros, en combinant la somme de toutes les forces, le système aurait convergé naturellement vers un équilibre local. En plus de ça, j'aurais fait vibrer doucement toutes les planètes avec l'algorithme génétique pour éviter de stagner.
https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14990#150945


C'est pour sa part en lui tordant le cou et lui coupant la queue, que Nemhardy se classe 2nd en utilisant sa Casio Graph 35+E ou compatible pour améliorer le meilleur score jusqu'à 9 966 747,315 503.

@Nemhardy, comment as-tu fait pour atteindre un si bon score ?
Nemhardy a écrit:Personnellement, contrairement à Zezombye (mais sa méthode a le mérite de lui permettre réellement de s'approcher de la configuration optimale, en minimisant la «fenêtre de bruteforce», c'est assez joli, même si peut être assez peu viable sur plus d'étoiles… ^^), j'ai considéré le calcul du score comme une boîte noire d'une certaine manière, c'est à dire qu'une fois implémentée de mon côté pour me permettre de faire mes essais, je n'ai fait que m'en servir pour attribuer un score à des configurations, sans réflexions géométriques dessus.

L'idée que j'avais initialement était de laisser le système évoluer depuis un état quelconque, en essayant d'éviter les équilibres instables ; la nature est très forte pour minimiser de l'énergie d'un système semblable en suivant les mouvements imposées par les forces en jeu, et maximiser une énergie c'est globalement le même problème.

Mais étant un peu flemmard, j'ai d'abord commencé par une solution plus simple (et quand je dis simple, c'est vraiment le cas… x) ) : je pars d'une configuration aléatoire, puis choisis une étoile que je fais bouger d'un certain pas dans la direction maximisant l'augmentation du score ; si on ne trouve pas de direction qui augmente le score, on passe à une autre étoile, et une fois qu'on ne peut plus bouger aucune étoile, on diminue le pas (on le divisait par deux dans mon algo, mais c'est assez arbitraire) et on recommence jusqu'à ce qu'on soit passé sous un seuil arbitraire pour le pas, ou qu'on ait dépassé un nombre maximum d'itérations (arbitraire là encore). ^^

Je savais qu'il n'y avait aucune raison que ça donne une configuration optimale, ni même une bonne configuration en fait, car on peut imaginer des cas ou il faut bouger plus d'une étoile pour pouvoir débloquer la situation même sans diminuer le pas. Cependant, ayant fait tourner mon algo environ 13 minutes, j'ai eu ladite configuration qui m'a plassé provisoirement premier, donc c'était déjà pas mal. :waza:
(J'avais tout de même fait tourner quatre threads pendant ces 13 minutes, chacun ayant des paramètres correspondants à la fenêtre dans laquelle naissaient les configurations aléatoires, et le pas initial de déplacement initial différents, histoire de voir si il y avait certains de ces paramètres plus intéressants que les autres, mais de manière totalement empirique (même si on pouvait se douter qu'une fenêtre pas trop grande, centrée avec un pas pas trop exagéré allait sûrement donner de meilleurs résultats qu'un truc un peu délirant ! ^^)

J'en avais un peu en réserve en cas d'un petit dépassement par quelqu'un d'autre car j'ai fait un algo permettant d'améliorer une configuration pas trop mauvaise, en essayant de bouger cette fois ci plus d'une étoile par itération. Mais ça fait un truc un peu plus lourd à exécuter donc c'est viable sur des petits changement je pense mais pour les gros mouvements initiaux ça n'aurait pas été hyper intéressant, je crois ; donc je l'ai réservé à de l'amélioration de configuration, c'est à dire en travaillant directement sur du petit pas. Mais je n'ai pas vraiment eu à m'en servir, donc je n'ai pas vraiment vu jusqu'où on pouvait pousser la chose !

Et ensuite je n'ai plus vraiment eu le temps, mais j'ai trouvé le concours très sympa, et la dernière semaine (et sûrement avant, mais je m'y étais un peu moins plongé je dois dire…) a vu son lot de discussions intéressantes et de rebondissements, et ce sans trop de mauvais esprit du type «je balance mon super score une heure avant la fin», donc c'était cool ! :p
https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14990#150943


Enfin Ruadh reprend quant à lui la rotation, nous remettant la constellation à l'horizontale mais cette fois-ci tête au centre, terminant 1er en améliorant encore le meilleur score jusqu'à 9 991 310,354 118 47 à l'aide de sa Casio Graph 35+E ou compatible après seulement 4 participations.

@Ruadh, peux-tu nous révéler ton secret ?
Ruadh a écrit:J’ai commencé par lire le programme fourni pour comprendre comment le score était calculé. J’ai découvert que si G(i,j)>0 (avec i et j différents de 1), alors la distance entre les étoiles i et j devait être de 20 pour avoir le score maximum. Si G(i,j)<0, il fallait espacer les étoiles i et j le plus possible. Enfin le score augmentait également en approchant chaque étoile du centre. J’ai donc placé les étoiles de la sorte et j’ai obtenu la disposition visible sur la figure 1.

Cependant, avec cette disposition, certaines étoiles sont très loin du centre, ce qui fait donc diminuer le score. J’ai remarqué que G(2,4) était très faible donc il n’est pas forcément utile d’éloigner les étoiles 2 et 4. Je les ai alors placées ensemble au centre et j’ai obtenu la disposition visible sur la figure 2.

Encore fallait-il déterminer l’angle α. Pour cela, j’ai tracé sur ma calculatrice une fonction qui donnait le score perdu dû aux distances d(3,5), d(3,7), d(6,5) et d(6,7). On peut exprimer ces distances en fonction de α.

d(3,5)=20*sqrt(2-2*cos(α))

d(3,7)=20*sqrt(5-4*cos(α))

d(6,5)=20*sqrt(2-2*cos(α+π/3))

d(6,7)=20*sqrt(5-4*cos(α+π/3))

La fonction est : f(α)=G(3,5)/(1+d(3,5))+G(3,7)/(1+d(3,7))+G(6,5)/(1+d(6,5))+G(6,7)/(1+d(6,7))

Une fois la fonction entrée dans la calculatrice, j’ai utilisé la recherche de maximum de la calculatrice pour obtenir l’angle qui maximise le score. Puis je me suis servi de cette valeur pour écrire la liste envoyée : {63+31i, 63+31i, 63+20*cos(α)+(31-20*sin(α))i, 63+31i, 83+31i, 63+20*cos(α+π/3)+(31-20*sin(α))i, 103+31i}.


Mention très honorable pour Zezombye. Avec une disposition un peu plus centrale de cette même constellation, il améliore le meilleur score d'un cent-millionième avec 9 991 310,354 118 48 à l'aide de sa Casio Graph 35+E ou compatible au bout de 4 participations. Il ne peut toutefois être classe puisqu'ayant décidé au dernier moment de passer dans la catégorie TI.

@Zezombye, comment avais-tu fait ?
Zezombye a écrit:Le 17 septembre, je découvre la surprise dont parlaient les admins : le concours de rentrée.
J'ouvre le g1m, puis je me mets à décortiquer l'algorithme pour savoir comment est calculé le score.
On se rend compte rapidement que le calcul du score se fait dans cette boucle :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
While K!=48 And K!=47 And K!=44
   If Abs Frac List 8[P] :Then
      
      Int List 8[P]->List 8[P]
      7->K
   Else
      
      GetKey->K
   IfEnd
   List 8[P]->Z
   If K=28 And ImP Z<Ymax-T Or K=27 And ReP Z<Xmax Or K=38 And ReP Z>Xmin Or K=37 And ImP Z>Ymin Or K=7 :Then
      
      Z+(K=27)-(K=38)+i((K=28)-(K=37))->List 8[P]
      For 1->I To P-1+(K!=7)(M-P+1)
         If I!=P :Then
            
            S+Mat G[I,P](1/(1+Abs ((Mat G[I,P]>0 And I>1)F-Abs (List 8[I]-List 8[P])))-(K!=7)/(1+Abs ((Mat G[I,P]>0 And I>1)F-Abs (List 8[I]-Z))))->S
         IfEnd
      Next
   IfEnd
   PlotOff ReP Z,ImP Z
   If K=78 Or K=77 Or K=7 :Then
      
      If K=77 :Then
         
         M-MOD(M-P+1,M-1)->P
      Else
         
         2+MOD(P-1,M-1)->P
      IfEnd
      PlotOff ReP List 8[P],ImP List 8[P]
      PlotOn ReP Z,ImP Z
   IfEnd
   PlotChg ReP List 8[P],ImP List 8[P]
   Text 1,1,S
WhileEnd


Plusieurs variables sont importantes ici :
- K pour Key, avec K=7 lors de l'initialisation
- S pour Score
- I pour Itérateur
- P pour Etoile (2 à 7, l'étoile 1 étant le centre de l'écran)
- F pour Distance (20, ne change pas).

On remarque que le code exécuté pour le recalcul du score est inutile ici, car on veut juste comprendre l'algo. Ainsi, on assume que K = 7 est toujours vrai.
En étudiant un peu plus l'algorithme, on remarque que la boucle While fonctionne ici comme un For qui itère sur P de 2 à 7. En pseudo-langage, ça donne :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
for (int P = 2; P <= 7; P++) {

   for (int I = 1; I <= P-1; I++) {
                                    1      
      S+Mat G[I,P]*(--------------------------------------------------
                    1+|20(Mat G[I,P]>0 And I>1)-|List 8[I]-List 8[P]||
      
                          K != 7
      - -------------------------------------------) -> S
        1+|20*(Mat G[I,P]>0 And I>1)-|List 8[I]-Z||
   }            
}


Mais comme K = 7, alors K != 7 est faux, donc on peut directement enlever cette portion du code :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
for (int P = 2; P <= 7; P++) {

   for (int I = 1; I <= P-1; I++) {
                                    1            
      S+Mat G[I,P]*(--------------------------------------------------)->S
                    1+|20(Mat G[I,P]>0 And I>1)-|List 8[I]-List 8[P]||
   }      
   
}


Tout de suite, c'est plus simple.
La matrice G vaut :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
     1       2        3       4       5        6       7

1      0  485402   366483  895650   398681   246960  1062990
2            0    2603497  -18533 -3484358   386459  -768468
3                   0    -646585 -3156512  1487979 -2522960
4                           0     2602703   632508 -2423677
5                                 0    -1746276  1331355
6                                      0    -2905103
7                                          0

À noter que G[X,Y] = G[Y,X] (avec l'instruction Mat G+Trn Mat G->Mat G).

Pour avoir le meilleur score, il faut donc influer sur le dénominateur de la fraction : 1+|20(Mat G[I,P]>0 And I>1)-|List 8[ I ]-List 8[P]||.
Ici, |List 8[ I ]-List 8[P]| est la distance entre I et P. Deux cas sont possibles :
- Si Mat G[I,P] > 0 : dans ce cas il faut que le dénominateur soit le plus proche de 1. En étudiant bien le dénominateur, il faut que |20(Mat G[I,P]>0 And I>1)-|List 8[ I ]-List 8[P]|| = 0, ce qui signifie que la distance entre I et P doit être la plus proche de 20.
- Si Mat G[I,P] <= 0 ou que I = 1 (on calcule le score par rapport au centre), alors plus I sera proche de P, plus la fraction sera proche de 1. Cela veut dire que si Mat G[I,P] <= 0 alors il faut que I soit le plus éloigné possible de P, et si I = 1 alors il faut que I soit aux mêmes coordonnées que P.

Toutefois, mon cerveau a décidé pour une quelconque raison de lire la condition (Mat G[I,P]>0 And I>1) en tant que (Mat G[I,P]=0 And I>1), ce qui change tout. Cela veut dire que si Mat G[I,P] < 0, alors I doit être à une distance éloignée de 20 de P, donc I peut être aux mêmes coordonnées que P avec une perte de score minime ! (ce qui n'est pas le cas, mais c'est ce que je croyais au début).

J'ai donc tracé le graphe des liaisons entre les étoiles :

Puis, je me suis rendu compte qu'il n'y avait qu'une seule configuration possible pour qu'il n'y ait que des traits verts reliant les étoiles :


La seule modification ici était d'influer sur l'angle du triangle 6-2-3 (par rapport à l'horizontale), ce qui avait un impact car G[2,4] = -18533 alors que G[3,4] = -646585. Après un bruteforce, je trouve mon score de 9 843 347,30939981. Bizarrement, mon algorithme trouve un score de 9.6 millions (mais qui me donne 9.8M lorsque je transpose la liste sur la calculatrice), mais j'ai attribué ça à un changement de moteur de calcul.
Convaincu que le seul moyen de battre mon score n'était que de quelques millièmes en changeant un peu l'angle du triangle 6-2-3, je cherche sur TI et HP, mais n'arrive qu'à faire 46M et 123M, loin des premiers.

---
Un mois plus tard, le 28 octobre, Nemhardy me donne un coup de pied au cul en sortant un score de 9 966 747. Cela implique une toute nouvelle configuration, ce que je trouve bizarre : il n'y a pas de moyen évident d'arranger les étoiles autre que ma configuration.
En cherchant un peu, je trouve qu'en rompant la liaison 4-6 et en plaçant le 4 sur le 6, cela pourrait faire augmenter mon score :
- Rompre la liaison 4-6 me fait perdre 632k
- Placer le 4 sur le centre (avec le 7) me fait gagner 895k
- La pénalité de 4 et 7 est divisée par 21, ça me fait perdre 2423/21 ~= 120k.
Tout cela s'additionne pour me donner une amélioration d'environ 120k, ce qui correspond à peu près au delta de 123k entre mon score et celui de Nemhardy.

Je teste, et je trouve un score de... 7 millions ?! Bizarre. Je refais mes calculs : seuls les 3 paramètres cités varient. Je retélécharge Galactik au cas où j'aurais modifié le calcul du score dans un de mes tests : même chose. Je teste sur Graph 90+E (en devant en plus démarrer ma VM, car j'avais épuisé la période d'essai de l'émulateur) : même chose.
Aurais-je fait une erreur dans le recopiage de l'algorithme ? Je regarde, et je ne vois pas. Je remarque que le score de 7 millions était comme si la pénalité de la liaison 7-4 était appliquée sans être divisée par 20... il doit y avoir une erreur, car G[7,4] != 0 et I > 1 donc la condition devrait être vraie.
Je teste : P = 4, I = 7, Mat G[I,P] = -2M, alors pourquoi (Mat G[I,P] = 0 And I>1) retourne 0...
...
...Ah, c'est Mat G[I,P] > 0.

(oui, il m'a fallu jusqu'au dernier moment pour que mon cerveau corrige l'erreur)

Maintenant que je connais le vrai fonctionnement de l'algorithme, une nouvelle configuration semble logique : en effet, cela veut dire que pour des étoiles à 20 de distance, les liaisons négatives sont divisées par 21.
La liaison 4-2 n'imposant qu'une pénalité de -18k, je peux les superposer, ce qui me donne une amélioration de -1063k + 896k + 485k = 318k, et la configuration suivante :

L'amélioration n'est que de 147k en raison du rapprochement des liaisons 5-3, 3-4 et 5-6, qui font sentir leurs millions de pénalités.
Un autre bruteforce pour trouver l'angle du triangle 2-3-6 (et cette fois mon algo en java trouve le même score qu'affiché sur la calculatrice), et je trouve un score de 9 991 310, qui est d'ailleurs toujours premier de la catégorie casio.

---
Avec ces connaissances en plus, j'ai re-regardé mes configurations TI et HP, que je triturais pendant un mois (mais avec un algo faux). Je me suis aidé des images des matrices :

Sur HP, je n'ai pas réussi à bien améliorer mon score : 125M contre 123M... et de toute façon la catégorie était saturée, avec 3 participants différents étant tombés sur ce qui est visiblement le score maximal.

Sur TI, après un peu d'expérimentation, je suis tombé sur cette configuration :

Ce qui me donnait 48M... pas assez, mais suffisant pour être 2ème.
Pour modifier la configuration, il faut noter que le polygone 2-11-6-10-7 est inaltérable (car composé uniquement de triangles verts) ; impossible de déplacer n'importe laquelle de ces 5 étoiles sans baisser mon score.

J'ai essayé de relier la liaison 8-5, mais c'est impossible, car il fallait alors superposer des étoiles avec une liaison négative, ou casser des liaisons positives, ce qui baissait mon score (la liaison 8-5 ne m'apportant que 1.22M).

Mais, en mettant le 7 sur le 3, il est possible de changer la structure tout en gardant l'intégralité des liaisons vertes :

On voit que, tout comme casio, on peut influer sur l'angle de l'étoile 8 par rapport à l'étoile 10. Un petit bruteforce plus tard, j'ai un score de 49 942 613, ce qui me classe premier. Mais le participant n°23 avait soumis un score de 49 946k avant de se rabattre vers HP - il y avait donc une amélioration à faire.

Y a-t-il quelque chose qui pourrait bouger dans notre configuration ? On élimine tous les triangles, il reste donc le losange 9-5-7-4 dont on peut modifier la distance 5-4 afin d'améliorer le score.
Un peu de trigonométrie pour déterminer les coordonnées de 9 par rapport à l'angle de 4 par rapport à 7, et avec un bruteforce, je trouve 49 946k.
Mais étant donné qu'il y a 2 angles à modifier : l'angle de 4 par rapport à 7, et l'angle de 8 par rapport à 10, il faut bruteforcer les 2 afin de trouver la meilleure configuration.

Un premier bruteforce et je trouve 49 946 730.080507. Un bon début, mais il me reste 133 millionièmes.
En raffinant, je me rapproche : 509, 543, puis un score de 639, que je soumets.
45 mn plus tard, je trouve un score de... 641 ! J'obtiens alors la première place au classement TI, et y reste.
Durant les prochains jours, je tente de trouver un 642, sans succès. Mon bruteforce atteint les limites, et la différence de moteur de calcul se fait sentir : des scores supposés être supérieurs à mon 641 se traduisent par un 640, 639, ou pire, .073543 (7 millièmes de moins).

J'essaie donc le BigDecimal pour garder un moteur de calcul décimal, mais... c'est lent. 1 heure pour 10^6 combinaisons, alors que je peux faire 10^9 combinaisons (voire plus, je ne me souviens plus) en flottant. Et bruteforcer sur la TI-83, n'en parlons pas.
L'interpréteur Lua de la NSpire semble une bonne option... sauf qu'il calcule en flottant lui aussi, et non pas en décimal. Il fait donc les mêmes erreurs que mon algorithme Java.

Je décide d'en rester là, en me disant que, si quelqu'un trouve un 642, je reviendrai sur Casio... mais visiblement mon 641 était le maximum possible.

Voilà, et encore merci à Nemh qui m'a permis de me rendre compte du vrai algo - sinon je m'en serais rendu compte 4 jours plus tard, et ces 4 jours auraient pu être fatals x)
https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14990 (avec en prime supports de recherche en pièce jointe)



Merci à vous tous pour vos efforts avec les diverses stratégies déployées et la persévérance jusqu'au bout du temps imparti et des décimales de la calculatrice ! :bj:
Lien vers le sujet sur le forum: Résultats catégorie Casio concours Galactik rentrée 2017 (Commentaires: 25)

Connecteur batteries TI 2010-2014(Nspire, 84+C...) identifié

Nouveau messagede critor » 28 Nov 2017, 20:10

38117473Dans ses calculatrices fabriquées depuis avril 2014, Texas Instruments intègre des batteries que les menus de diagnostics appellent Samsung. On peut justement aisément les remplacer par les batteries AB474350BU ou EB494353VU prévues pour de vieux téléphones Samsung à clapet. Cela concerne les :
  • TI-83 Premium CE
  • TI-84 Plus CE
  • révisions matérielles O+ des TI-Nspire CX

Les modèles fabriqués antérieurement, de janvier 2010 à mars 2014, utilisaient une batterie différente munie d'un câble, appelée Getac par les menus de diagnostics. Cela concerne les :
  • TI-84 Plus C Silver Edition
  • révisions matérielles A-N des TI-Nspire CX
  • TI-Nspire CM
  • TI-Nspire TouchPad
  • TI-Nspire Lab cradle
  • TI-Nspire Navigator cradle v2

90269024Si tu es muni·e d'un de ces appareils et bien bonne nouvelle, car la connectique utilisée vient enfin d'être identifiée ! Il s'agit de micro JST 4 broches au pas de 1.25mm. :bj:
Te voilà donc enfin capable de récupérer les pièces aussi bien pour remplacer le connecteur ou la fiche en cas d'accident, que pour bricoler si tu veux t'amuser par exemple à caser une batterie haute capacité, à te fabriquer un adaptateur secteur ou encore pourquoi pas un chargeur de batterie dédié. ;)
Lien vers le sujet sur le forum: Connecteur batteries TI 2010-2014(Nspire, 84+C...) identifié (Commentaires: 0)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1224 utilisateurs:
>1183 invités
>36 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)