IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

IA ou arbre décisionnel en php


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Codeur plaisir
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Codeur plaisir

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut IA ou arbre décisionnel en php
    Bonjour à toutes et à tous,

    je bosse actuellement sur une application de planification. Pour le moment je test si ce que j'envisage de faire est possible sur un affichage simple dont je vous expose la problématique.

    Prenons par exemple cet affichage :

    Nom : début.jpg
Affichages : 1056
Taille : 1,7 Ko

    Sur la première ligne 2 cases et sur la deuxième lignes 4 cases. Elles seront affichées via des DIV avec des ID différents.

    Je souhaite que ce tableau puisse se remplir automatiquement via un algorithme. Par exemple si la deuxième case de la première ligne contient la lettre "C" je souhaite que toutes les autres cases se remplissent automatiquement selon des conditions bien précises et à l'aide de variables prédéfinies.

    Nom : étape-suivante.jpg
Affichages : 1044
Taille : 2,5 Ko

    Je pourrais alors très bien taper ce type de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if $var_id_case2==C then $var_id_case1=A ?>
    et faire cela pour chaque case...

    L'ennui c'est que j'aimerai ne pas coder directement !
    Je souhaite qu'un administrateur (pour le moment il n'y a que moi), via une interface utilisateur, puisse créer toutes les conditions de remplissage du tableau.
    Cette interface utilisateur, stockerait ces conditions dans une base de données.
    Ensuite, lors de la création du tableau, un code php, lirait de manière récursive, toutes les conditions enregistrées dans la base de données pour remplir et compléter le tableau.

    Voici ce que je me pose comme questions :
    1-il semble possible de stocker du code php dans une base de données et via la fonction eval() on peut l'utiliser, mais ce c'est pas une bonne idée. Existe t-il selon vous une autre solution ?
    2-Est ce que ce j'envisage de faire s'apparente à un algorithme de type "arbre décisionnel" ? Si oui, peut-on créer un algorithme décisionnel en php ?

    Merci de bien vouloir me donner votre avis sur ces questions et sur d'éventuelles pistes qui pourraient m'aider à réaliser ce projet.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    salut

    stoquer du code en base grands dieux, sauf si tu as des milliard de pages de code, pas la peine.

    pour moi php n'est pas un language adapté pour faire cela parce:
    1/ ça peut prendre du temps pour trouver une bonne solution et PHP en mode web doit trouver une réponse rapidement sans quoi l'utilisateur dit "marche pas".
    2/ tu as besoin d'évaluer plusieurs solutions et il y a des languages qui font nativement du test d'inférences.

    Mais comme on kiffe le PHP on va faire en PHP.

    à ta place je ferai un moteur qui essaie une solution puis on verifie si la solution n'a pas déjà été testée puis on regarde si la possibilité valide les règles métiers.

    tu as du pain sur la planche, peut être quelqu'un aura une meilleur idée.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par Ikayms Voir le message
    1-il semble possible de stocker du code php dans une base de données et via la fonction eval() on peut l'utiliser, mais ce c'est pas une bonne idée. Existe t-il selon vous une autre solution ?
    Plutôt que d'utiliser le dangereux eval, mieux vaut utiliser un moteur de règles basé par exemple sur symfony/expression-language, si tu as vraiment besoin de cette fonctionnalité.

    Edit: Ou, peut-être plus simple à utiliser, ruler/ruler

  4. #4
    Candidat au Club
    Homme Profil pro
    Codeur plaisir
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Codeur plaisir

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Rassurez-vous je ne comptais pas utiliser eval(), après mes recherches j'ai bien compris que ce n'étais vraiment pas bon, toutefois je pense comme gene69, php n'est pas ce qui est de mieux pour réaliser un arbre décisionnel ou du moins faire ce que j'envisage de créer, mais j'aime bien ce langage et Tsilefy m'apporte un élément que je ne connaissais pas et qui me semble intéressant. Je vais m'intéresser à cette classe Hoa\ruler, ça me semble pas mal du tout.

    Merci pour vos commentaires, ça me conforte dans l'idée que c'est possible même si c'est pas encore demain que je vais y arriver.

  5. #5
    Candidat au Club
    Homme Profil pro
    Codeur plaisir
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Codeur plaisir

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut ça prend du temps
    Tout d'abord encore merci à gene69 et Tsilefy.
    vos remarques mais surtout l'information concernant hoa/ruler m'a beaucoup aidé dans mes recherches.
    Comme vous le voyez, le manque de temps ne m'a pas permis de résoudre mon problème tout de suite mais j'y suis arrivé.

    Pour cela je me suis appuyé sur la logique de ruler, mais à mon niveau ruler c'était comme utiliser un ordinateur quantique pour réaliser une simple addition. Trop complexe, trop puissant pour pas grand chose. Mais la logique de cette librairie m'a ouvert l'esprit. Donc merci de m'avoir présenter ruler.

    J'ai donc adapté mon propre petit code qui ne prend à peine quelques ligne pour réaliser ce que je veux.

    Une condition est stocker dans une base de donnée (serialisée). Cela permet à n'importe qui (non programmateur) de pouvoir réaliser ces propres conditions via une UI. (non crée encore)

    Ces conditions sont injectées dans une fonction pour y être traitées.

    Pour moi le problème est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Insertion d'arbre généalogique automatique php/mysql
    Par samgione dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/02/2017, 13h51
  2. Récupérer valeurs d'un arbre Dynatree en PHP
    Par Tyra3l dans le forum jQuery
    Réponses: 14
    Dernier message: 05/06/2012, 14h48
  3. Arbre n-aire en php
    Par ilood dans le forum Langage
    Réponses: 3
    Dernier message: 01/12/2008, 11h03
  4. [PHP-JS] creation d'une conformation comme un arbre
    Par lia_21 dans le forum Langage
    Réponses: 2
    Dernier message: 04/07/2006, 19h40
  5. [FLASH MX 2004]Arbre décisionnel
    Par stip dans le forum Flash
    Réponses: 5
    Dernier message: 24/05/2004, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo