Aller au contenu


Photo
- - - - -

Un petit "programme"


31 réponses à ce sujet

#21 Jul

Jul

    Nouveau membre

  • Membres
  • 11 messages

Posté 16 juin 2005 - 04:43

Je vais donner un exemple pour illustrer mon propos:

À la fin, toute les balles sont en un seul tas. [C'est le but du programme]

Au début il y au moins une cinquantaine de tas (une balle par tas).

Donc, au fur et à mesure que le temps avance, le nombre de tas diminue.

Vrai?

Si une fourmis qui contient 2 balles arrive sur un tas de 3 balles, qu'arrive t'il?

balle 2+3=5 >2 donc elle les déposent.

Donc, au fur et à me sur que le temps avance, le nombre de tas diminue et le nombre de balles par tas augmente ainsi (puisque le nombre de balle dans le programme est constant).

Supposons que le programme se rende jusqu'au moment où il ne reste que 2 tas, donc un peu avant la fin.

Comment ces 2 tas pourrait-il fussionner pour faire le tas final? Si une fourmi se trouve à l'emplacement du tas, elle doit les attraper et les relacher aussitôt car "nb de balle > 2"

Ainsi, il n'y aura jamais un seul tas.

Le minimum de tas possible pourrait être donné par les limites avec la formule donnant le nombre de tas à chaque instant(égal au nombre de balle au début), mais uns chose qui est sur : Il n'y aura jamais un seul tas.

Problème #1: Il y a un seul tas à un certain moment
Problème #2 : Lorsque la fourmis va sur le dernier tas elle le ramasse et il n'y a aucun tas (exécute le programme au bout tu va voir)

Comment cela se peut-il?

Mon explication : Lorsque une fourmis rammasse une 3e balle et quelle les déposent en tas, elle les fusionnent ensemble. Donc -2 balle à chaque fois. Donc nombre de balle non-constant.

Il s'agit d'une erreur de programmation que le programmeur a sans doute garder pour que son programme est lair de marcher. Son programme est une sorte de sophisme :lol:

Exemple de sophisme :
Pour Aller d'un point A à un point B, il faut d'abord parcourrir la moitié du trajet.
Il faut ensuite parcourrir la moitié du trajet.
Et ensuite la moitié du trajet restant.
Et on peut en conclure qu'il faut parcourir une infinité de moitié de parcour, et que nous n'arriverons jamais au point B : (1/2 + 1/4 + 1/8 + 1/16 + 1/32 ... négal jamais 1.)
Nous pouvons en conclure que le mouvement n'existe pas.

C'est bien sur faux, mais en apparence vrai (par rapport au raisonnement).

Pareil avec ce programme : Il prétent être une solution inspiré de la nature aux algorithme complexe de gestion, mais en fait il est faux (car le nombre de balle est non-constant et diminue)

Il est minuit moins quart ici alors bonne nuit
*s'endort* Zzz

#22 Jan

Jan

    Webmaster

  • Membres
  • PipPipPipPipPip
  • 4 747 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 16 juin 2005 - 10:55

Voila j'y vois + clair

Bon pour info c'est moi qui ai programmé ca et je peux t'assurer que le nombre de balle est réellement constant.Il n'y a pas de fusion de balles.

Pour ce qui est du tas inexistant, le problème du programme est que les fourmis peuvent les déposer hors de l'ecran visible :( car le point chaud et le point d'action ne sont pas localisés au même endroit.

Aussi ce que tu ne prend pas en compte c'est que la fourmis ne dépose pas exactement au même endroit ce qu'elle ramasse.

Quand la fourmis va passer sur un tas de 5 en etant chargée de 2 elle va donc en trouver 1 pour faire un tas de 3 et le déposer MAISla manoeuvre est très rapide et elle sera encore sur le tas pour en reramasser 3 sur les 5 et ainsi de suite, jusqu'à ce que le mouvement foumis l'éloigne en totalité de ce tas . Ca se voit sur le programme, on dirait que la fourmis pousse les tas devant elle.Dans ce cas tu pourra avoir un sel tas mais qui ne sera jamais fixe.

à+

#23 Jul

Jul

    Nouveau membre

  • Membres
  • 11 messages

Posté 16 juin 2005 - 03:19

Aussi ce que tu ne prend pas en compte c'est que la fourmis ne dépose pas exactement au même endroit ce qu'elle ramasse


Observe à partir du moment où il reste 2 tas, tu va voir que les 2 vont se faire rammasser(pas nécessairement du premier coup).

De toute façon il est improbable que toute les balles soit en un seul tas à la fin, puisque rien n'empèche une fourmi de transporter 2 balles sur elle au moment où il n'y a qu'un tas.

Moi je vois un code simple pour avoir un tas à la fin en le programment directement :


//protype écrit par Julien, 16 Juin 2005
//Ceci est un commentaire
/*Ceci est un commentaire*/

//Descriptions des 3 sous-fonctions:

int search(int mètre){
"ton code pour faire fourmis avancer d'un mètre et ramasser les balles en chemin" * mètre;
}

int turn(int degree){
"ton code pour faire tourner fourmis de un degrée" * degree;
}

int drop_ball_to_pos(int X, int Y){
"code pour faire aller fourmis à la position x,y d'un plan cartésien";
"code pour faire lacher balles";
}

//Fonction principale, le programme s'exécute à partir d'ICI

int main (){

//Boucle infini
for (; ;) {

//Faire chercher les fourmis pendant 100* 10 mètre avec rotation de 90 degrée à chaque 10 mètre

for ( i=0;i:)

ah oui, tu devrait aussi enlever le bouton "RECOMMENCER" en haut à gauche parce que ca bloque le champ de vision de l'environnement. ;)

#24 Jul

Jul

    Nouveau membre

  • Membres
  • 11 messages

Posté 21 juin 2005 - 02:17

Comme je disais, j'aimerais voir ton code, car cela m'intéresse beaucoup! Merci! :)

#25 Jan

Jan

    Webmaster

  • Membres
  • PipPipPipPipPip
  • 4 747 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 21 juin 2005 - 02:30

Ce n'est pas un code en "C" j'ai fait ca avec TGF, je pourrais te faire une copie d'écran des actions si tu n'as pas le programme ?

#26 Jul

Jul

    Nouveau membre

  • Membres
  • 11 messages

Posté 21 juin 2005 - 10:11

oais, j'aprécireais, merci.

#27 sap

sap

    Membre occasionnel

  • Membres
  • Pip
  • 128 messages

Posté 22 juin 2005 - 10:22

indépendamment du casse tête, l'intérêt de ce genre de robots "stupides" est qu'ils ne coutent pas cher du tout.

quand vous aurez fini votre débat, remplacez le terrain de jeu par un jardin et les baballes par des feuilles mortes... ou par une cuisine et des miettes... une cour de récréation et des papiers... ou par un attelier et des copeaux... un verger et des fruits...

#28 Jul

Jul

    Nouveau membre

  • Membres
  • 11 messages

Posté 27 juin 2005 - 05:56

Comme je disais, j'aimerais voir ton code...

merci

#29 Jan

Jan

    Webmaster

  • Membres
  • PipPipPipPipPip
  • 4 747 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 27 juin 2005 - 10:28

Désolé pour le retard mais je ne retrouvais plus le fichiers des fourmis, je n'avais que des applications autonomes qui n'étaient plus modifiables. Ca ma fait perdre pas mal de temps de tout refaire.

voila, j'ai fait exactement la même chose mais au lieu de mettre plusieurs mobiles il y en a qu'un :

http://robotmaker.free.fr/newprog.zip

là tu as le "code", c'est plutôt un tableau d'évenement...
http://robotmaker.free.fr/demo.jpg

à+

#30 sap

sap

    Membre occasionnel

  • Membres
  • Pip
  • 128 messages

Posté 30 juin 2005 - 09:26

là tu as le "code", c'est plutôt un tableau d'évenement...
http://robotmaker.free.fr/demo.jpg

j'ai installé le truc et j'ai vu comment ca fonctionnait mais je n'arrive pas à comprendre la logique de ce "programme".

pourrais tu donner quelques petites explcations?

#31 Jan

Jan

    Webmaster

  • Membres
  • PipPipPipPipPip
  • 4 747 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 30 juin 2005 - 12:46

Tu veux dire la finalité de ce programme par "logique" ? Si c'est le cas j'ai du tout expliqué plus haut, celui-ci illustre juste le système avec uniquement un seul mobile vu qu'on me demandait les coulisses du système.

Ou peut être tu n'a pas compris le tableau et tu veux que je t'explique le programme ?
En fait tu as pu voir qu'il y avait des colonnes verticales et horizontales, elles représentent évenements ou objets, à leurs intersections se trouve l'évenement à effectuer, c'est tout aussi simple.

à+

#32

  • Guests

Posté 03 novembre 2005 - 03:56

J'ai pas compris la logique de Jul masi c po grave j'aime bien le programme

+



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users