From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA02747; Wed, 8 Jan 2003 18:35:30 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA02231 for ; Wed, 8 Jan 2003 18:35:29 +0100 (MET) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h08HZS519705 for ; Wed, 8 Jan 2003 18:35:29 +0100 (MET) Received: from ibm3.cicrp.jussieu.fr (ibm3.cicrp.jussieu.fr [134.157.15.3]) by shiva.jussieu.fr (8.12.5/jtpda-5.4) with ESMTP id h08HZSJa058387 ; Wed, 8 Jan 2003 18:35:28 +0100 (CET) Received: from ibm1.cicrp.jussieu.fr (ibm1.cicrp.jussieu.fr [134.157.15.1]) by ibm3.cicrp.jussieu.fr (8.8.8/jtpda/mob-V8) with ESMTP id SAA25250 ; Wed, 8 Jan 2003 18:34:17 +0100 Received: from localhost (fernande@localhost) by ibm1.cicrp.jussieu.fr (8.8.8/jtpda/mob-v8) with ESMTP id SAA1507418 ; Wed, 8 Jan 2003 18:34:17 +0100 Date: Wed, 8 Jan 2003 18:34:17 +0100 (NFT) From: Diego Olivier Fernandez Pons To: Christophe Raffalli cc: caml-list@inria.fr Subject: Re: [Caml-list] =?ISO-8859-1?Q?=E9galit=E9_physique_=28=3D=3D?= =?ISO-8859-1?Q?=29_avec_Pervasives=2E=28+=29?= In-Reply-To: <3E1AE703.8020001@univ-savoie.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Antivirus: scanned by sophie at shiva.jussieu.fr Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Bonjour, On Tue, 7 Jan 2003, Christophe Raffalli wrote > M=EAme l'orsqu'il s'agit d'une optimisation, il est important d'=EAtre > sur qu'elle remplit son usage ! (m=EAme si le programme marche quel > que soit le r=E9sultat de =3D=3D) C'est une remarque fort juste au demeurant ! Un des probl=E8mes des solveurs de contraintes est la n=E9cessit=E9 de manipulation de fonctions sous deux formes : - une forme explicite pour la propagation de contraintes let f =3D fun x y -> x + y < 10 && 0 < x + y si vous avez des bornes sur y, vous pouvez en d=E9duire des bornes sur x, mais pour ce faire il faut pouvoir 'traverser' f - une forme 'compil=E9e' pour l'=E9num=E9ration exhaustive si vous avez =E9puis=E9 toutes l'information dont vous disposiez, il ne reste pas d'autre solution que d'essayer tous les couples (x, y) avec un m=E9canisme de retour en arri=E8re. La librairie FaCiLe a choisi une forme explicite pour la propagation (sous forme de syntaxe abstraite que l'on construit lors de la d=E9clarations de contraintes) et une fonction d'=E9valuation (donc assez lente) pour la recherche. Si je suppose r=E9solue la question de la compilation =E0 la vol=E9e de fonctions (par exemple Dynamic Caml), on peut essayer un compromis par une double repr=E9sentation des fonctions f =3D (f_abstraite, f_compil=E9e) Seulement, pour permuter de repr=E9sentation selon les besoins, je ne vois pas d'autre solution que : - hacher la repr=E9sentation courante (par exemple f_compil=E9e) - aller chercher la valeur dans une table (cl=E9, g_abstraite, g_compil=E9e) - v=E9rifier l'=E9galit=E9 physique g_compil=E9e =3D=3D f_compil=E9e - en d=E9duire que g_abstraite est bien une repr=E9sentation abstraite de la fonction voulue. (ou bien une solution plus ou moins =E9quivalente) Je suis tout =E0 fait d'accord sur le fait que l'=E9galit=E9 physique n'est pas la panac=E9e, mais je n'ai pas vraiment d'autre solution =E0 proposer. Et il y a bien s=FBr toujours le probl=E8me des applications partielles, et je n'ai aucun moyen de prouver la correction du code, et je n'ai aucune garantie sur la stabilit=E9 du code dans les futures versions, et je ne sais m=EAme pas si cette optimisation remplit son usage... Cela dit, mon courrier pr=E9c=E9dent n'=E9tait qu'une tentative de r=E9solution partielle du probl=E8me. Diego Olivier ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners