Comme discuté dans le sujet sur les scénarios fictifs, j'ouvre ce thread autour de la réalisation technique de simulations autour du Guzi. Est ce qu'il y a des travaux en cours à ce niveau ? Est-il possible d'aider ?
Pour voir cela fonctionner, rendez-vous sur votre site en ligne.
Rechercher
Pour le moment, tout ce que j'ai fait ce sont des scripts en Python pour tracer les courbes dont j'ai parlé par ci par là. Tout le reste, j'ai seulement commencé à réfléchir sur papier.
Mes premières notes concernait la création de personas (je crois que c'est comme ça que ça se dit) à propos des comportements de dépense des Guzis :
L'économe : dépense peu (30 à 50% de Guzis), gagne peu et met peu de Guzas à disposition (uniquement les impôts).
Le dépensier : dépense 100% de ses Guzis chaque jour, met à disposition en Guzas l'équivalent de la moitié de son salaire dans sa propre entreprise et garde le reste.
Le rentier : dépense tous ses Guzis. Il investit ses Guzas dans les entreprises les plus rentables pour des périodes courtes. Il n'a pas de salaire (i.e ne travaille pas dans une entreprise)
Le moyen : dépense une portion variable (aléatoire) de Guzis, met à disposition une portion variable (aléatoire) de ses Guzas à l'entreprise où il travaille et une faible portion des Guzas restants à d'autres entreprises.
Le généreux : Il dépense une portion variable (aléatoire) de ses Guzis. Il met tous ses Guzas à disposition d'entreprises diverses. Il travaille ou non (aléatoire).
Pour que la simulation colle à la réalité, je pensais aussi chercher sur le net les statistiques suivantes et les intégrer :
probabilité de décès selon l'âge ;
probabilité de donner naissance selon l'âge ;
population initiale au début de la simulation = population actuelle.
Voilà tout ce à quoi j'ai réfléchi pour le moment. Je suis méga chaud ! Je suis plus partisan du Python mais pas fermé non plus.
Trop cool !!
Je vais mettre quelques idées en vrac ici. C'est bordélique mais on va dire que c'est un brainstorming :
inclure une notion de produit : tout ce qui est le produit du travail via les entreprises, l'état (?), les personnes (?). Cela peut être des choses matérielles (une chaise, un smoothie framboise, une moto) comme immatérielle (tout type de service, ou autre ?), au final peu importe. Parmi ces produits, que les gens peuvent se procurer via des guzis ou gratuitement, il y a des produits indispensables (travailler par catégorie de produit: du genre l'alimentation?), indispensables pour certaines personnes ou pas indispensables. La réalisation et la consommation de ces produits sont plus ou moins éthiques, plus ou moins écologiques. Un même produit peut être produit à bas cout ou à haut cout (notion probablement à associer avec l'éthique et l'écologie). Et d'autres propriétés... Et donc dans le système, on définirait une liste de produits (au départ par exemple seulement 1 puis genre 4 produits, qu'on serait pas obligé de rendre concret,du genre A, B, C et D, puis N produits) et puis on définirait pour chacun des produits quelles propriétés il a. Et du coup on pourrait simuler les interactions entreprise / particulier pour voir si les gens arrivent à obtenir ce dont ils ont besoin, si ce sont les entreprises les plus responsables qui émergent, si la sobriété est réellement privilégiée... etc
en parallèle de ce que tu dis @Gus, en généralisant, on pourrait avoir des individus avec les attributs suivants : volonté de s'enrichir, matérialisme, niveau d'éthique, goût au travail, volonté d'entreprendre, autre ?
gérer une notion d'autre monnaie d'échange (l'euro) me parait hyper chaud, donc j'oublierai cette notion dans un premier temps, et même second, troisième, ... trentième temps ^^. Et donc se concentrer sur un système où le Guzi est la seule monnaie d'échange, non ?
propriétés d'une entreprise : niveau d'éthique, politique salariale / actionnariale (pour faire simple, comment elle rémunère ses salariés et ses actionnaires? est ce qu'elle limoge facilement ?),
coté projet : définir des étapes de dev. Commencer par un programme hyper minimaliste, exemple un seul gars qui fait toujours la meme action et on regarde comment il évolue. Inclure petit à petit différentes notions et aller jusqu'à un système de plus en plus complet. A terme inclure des "IA" ?
coté projet/dev: savoir comment s'organiser et avec quels outils
coté technique : pour gérer tout ça, ça me fait penser à un truc que j'avais fait à la fac en master. On pourrait faire ce qu'on appelle un Système Multi-Agent. En gros, tu définis des agents (ici ça serait des personnes, des entreprises, l'état), tu définis la manière dont chacun prend une décision. Et à chaque "tour" (par exemple ici, un jour/semaine/mois), tu demandes à chaque agent de décider ce qu'il veut faire ce tour là, il agit en fonction de comment il se comporte en général (tu peux y mettre des probabilités d'action). Dés que chaque agent a agi, tu calcules le nouvel état de ton système et tu passes au tour suivant. Ainsi, tu laisses un peu vivre tout ça pendant X temps et tu vois comment ça évolue :D. Bref, si ça peut aider je peux sans doute récupérer le programme commun (en JAVA), et générique que j'avais fait dans le cadre de cette matière et dont je m'étais servi pour réaliser toutes les simulations demandées. Ca date mais ça peut déjà être une bonne base ou intéressant pour s'inspirer
coté technique encore : Python est sympa aussi si on veut faire des maths mais je connais pas tant que ça
regarder ce qu'il existe en simulation de système économique pour s'inspirer
@Rémi En fait c'est carrément un "jeu de la vie" mais avec beaucoup plus de paramètres ^^
Super vrac à idées. Je suis chaud pour qu'on commence en effet par quelque chose de très minimaliste ne prenant en compte que peu de paramètres. A chaud je dirais :
Que des particuliers, pas d'entreprise
Que des Guzis, pas de Guzas (forcement)
Des échanges aléatoires à chaque tour entre particuliers
Cela nous ferait une base. Qu'en dis-tu ?
@Gus oui c'est déjà une belle base!
Hello !
Super intéressant vos idées ! Je ne suis pas familier avec le Python, je viens plutôt du JavaScript. J'essaie de faire quelques petits bricolages dans mon coin pour voir si j'arrive à produire quelque chose d'intéressant, mais du coup serait-il possible qu'on détermine un petit bout de doc "universel" dans lequel on inscrirait les informations permettant de servir les simulations ?
Ou bien est-ce qu'on se donne quelques jours pour que chacun bricole son idée, pour ensuite voir un peu les résultats obtenus chez les uns et les autres ?
En matière de dev c'est un peu compliqué de faire dans le 100% collaboratif, surtout si on n'utilise pas les mêmes langages =)
Le mieux serait de bosser en cohérence. Je propose Python parce que c'est certainement le langage le plus abordable et puissant à la fois (donc bon pour débutants comme pros). Là où Java est lourd à mettre en place et vieillissant et où Javascript apporte des concepts parfois difficiles à appréhender sans amener de puissance particulière.
@Mathieu NICOLAS Je ne sais pas si tu es à l'aise avec les outils de collaboration comme Git. Mais dans tous les cas il faudra passer par cela.
J'ai déjà créé le projet Github : https://github.com/suipotryot/guzi
Si tu as besoin de ressources pour découvrir certains outils, n'hésite pas à demander. Pour le python, le site officiel est génial. Après il faudra que je remplisse le README sur le projet pour y mettre une section "installation et lancement".
Remarque : pour tout ce qui est code, nous travaillerons en anglais.
Merci ! Github c'est parfait, je connais, je pourrai m'impliquer quand le moment sera venu !
Bon je me lance dans la base que nous avons défini en Python et l'enverrai sur le projet Github, je vous tiens au jus.
Alors voilà, j'ai créé une sorte de library python pour pouvoir faire du Guzi.
J'ai créé un espace github adapté et j'y ai mis le projet :
https://github.com/GuziEconomy/python-guzi
Maintenant, y'a plus qu'à faire des simulations qui utilisent cette library :D
J'avoue que j'ai pas mal avancé dans le projet Java. Je suis d'accord qu'il est indispensable de travailler avec les mêmes technologies pour être efficace. Je propose que dans un premier temps (le plus cours possible) on laisse libre cours à nos imaginations, en mode POC puis on fait une session de partage où on retirera le meilleur de chaque approche. Et là on commencera à uniformiser
Ça me va
Ma première simulation me semble foirée, mais elle m'a tellement fait rire que je me sens obligé de la partager. C'est l'évolution du nombre de Guzis en circulation avec le temps :
😂 Oups j'ai tué tout le monde ...
Ah, un premier vrai résultat. Pour 10 utilisateurs qui ne dépensent rien (ces rapias) pendant 2000 jours :
Pour le moment quand je monte en quantité (temps et/ou utilisateurs), je blinde la mémoire (parce que chaque Guzi est conservé dans une liste, même ceux périmés, donc j'ai de l'optimisation à faire)
Bisous !
Trop cool! J'ai jeté un oeil à ton code c'est vrai que ça a l'air sympa le Python, j'ai bien envie de m'y remettre.
De mon côté, partir de mon projet existant n'était peut-être pas la meilleure des choses car ça date plus que je ne le pensais mais on avance ^^
J'ai pas encore fait ressortir des stats mais voila à quoi ça ressemble :
Mon projet se basait sur des agents positionnés dans un espace en 2 dimensions donc j'en ai profité même si on est d'accord que c'était pas dans les specs ^^
Les petits chiffres tout en haut ce sont les revenus quotidiens de mes utilisateurs, ils sont positionnés en fonction de leurs coordonnées dans mon monde en 2d. Ils interagissent uniquement avec leurs voisins en fonction des probabilités respectives d'acheter / vendre.
Je vais m'attaquer à ressortir des stats après avoir intégré une notion de décès/naissance comme dans ta simulation. Et puis on tardera pas trop à faire le point sur nos travaux je pense
EDIT : et j'ai du ajouter la notion de GUZA (et toi aussi @Gus il me semble) car sinon presqu'aucun de mes utilisateurs n'arrivait à se sortir d'une balance négative
@Rémi Je pensais avoir répondu mais il y a dû y avoir un ratage.
Pour l'instant je n'ai pas intégré le Guza. Il doit y avoir malentendu parce que sans Guza, il n'est pas possible que les balances passent dans le négatif.
Dans mes simulations (sans Guzas pour le moment), tout va dans le positif des balances et donc directement dans les totaux accumulés.
Pour que les balances passent dans le négatif, il faudrait que les utilisateurs mettent des Guzas à dispo mais ce n'est pas encore possible.
On est OK là-dessus ? Parce que du coup j'ai du mal à comprendre ta remarque.
En tout cas, beau boulot ! J'avoue être un gros fan de Python, même s'il est possible que nous passions un jour par la case java pour une application Android, mais ça nous verrons plus tard.
@Gus
ah merci pour la remarque, j'avais compris que les guzis dépensés entraient en compte dans la balance!
Hey les bichons ! J'ai séparé en deux projets la partie "Guzi" et la partie "simulator".
Le simulator est devenu un outil en ligne de commande pour grosso modo tracer des graphes : https://github.com/GuziEconomy/python-guzi-simulator
Si vous voulez l'utiliser et qu'il vous faut des détails pour l'installation, n'hésitez pas à me dire :D
Là je me lance dans l'ajout du Guza, ensuite j'ajouterai des profils d'utilisateur.