Top 20

1 0x00h 702 pts
2 boris39 702 pts
3 neoxquick 683 pts
4 maf-ia 664 pts
5 thefinder 645 pts
6 benito255 609 pts
7 mego 591 pts
8 madbat2 582 pts
9 Mart 554 pts
10 tehron 504 pts
11 Kithyane 503 pts
12 plucth 481 pts
13 egosum 474 pts
14 CoYoTe99 417 pts
15 Undr 415 pts
16 Zeta 415 pts
17 loonies2 412 pts
18 Armavica 411 pts
19 vitalimarrenra 403 pts
20 b0n0n 396 pts

Classement complet

Shoutbox

20 Sep - 10:46 am

Bonjour à tous, j'ai créé un nouveau topic sur le forum concernant un problème que je rencontre sur plusieurs challenges, comme il n'est plus très actif, que j'aimerais pouvoir avancer sur ces challenges et que ce chat a une meilleure visibilité, je poste ce message ici en espérant qu'une âme charitable puisse m'aider en répondant à mon message sur le forum :)

3 Sep - 9:39 am

Ah ok je n'avais pas bien compris ton message original. Très bien, ce que tu peux faire c'est poster un message sur le forum avec le lien de téléchargement et les explications. Merci pour ta contribution !

1 Sep - 5:52 pm

Bonjour bonjour, je l'ai créé en Pharo, une implémentation récente du langage smalltalk.

31 Aug - 2:43 pm

Bonjour PharoGuy, re-bienvenue à toi ! Tu as créé cet objet en quel langage ?

30 Aug - 8:23 pm

Bonjour tout le monde ! je redécouvre ce site avec Pharo ! J'ai créé un objet qui gère la récupération et l'envoi des variables, ça pourrait intéresser ?

24 Jul - 5:30 pm

Ça devrait être à nouveau opérationnel, définitivement cette fois ci.

19 Jul - 8:42 pm

A nouveau ? On regarde ça !

16 Jul - 5:26 pm

Bonjour à tous :) Je viens d'essayer de valider le challenge "Wav ? (6)", et j'ai l'impression que la page "validation.php" est de nouveau en carafe.

15 Jul - 8:43 pm

Cool !! Merci beaucoup !!

9 Jul - 11:20 pm

Hello, je regarde ça dès que je peux, probablement demain

Connexion
Mot de passe oublié

Supportez nousx

Vous aimez µContest ?
Supportez nous en votant (fun et difficulté) pour µContest sur WeChall :)
Si vous ne l'avez pas encore fait, profitez-en pour lier votre compte
Wechall à µContest pour pouvoir voter !

Merci

Liste des épreuves :: Intelligence artificielle :: Formal Systems and Decision Procedures (49)

Résumé

ID : 49
Points : 17
Validations :
Page de l'épreuve
Reporter un bug

Description


Ce challenge est une introduction aux systèmes formels. Il peut être surprenant de le trouver dans la section Intelligence Artificielle, mais ces deux domaines peuvent être intimement liés.
Les systèmes formels sont une modélisation mathématique d'un langage. On peut le voir comme un modèle abstrait d'un système. Par exemple, les langages de programmation sont des systèmes formels. Mais un système formel peut être utilisé pour modéliser le raisonnement mathématique et c'est ce qui nous intéresse ici.

Les systèmes formels en mathématiques sont constitués des éléments suivants :
  • Un ensemble fini de symboles (c.a.d. l'alphabet), qui peuvent être utilisés pour construire des formules (i.e. des chaines finies de symboles).
  • Une grammaire, qui nous dit quelles sont les formules bien formées (abréviées par fbf) construites à partir des symboles de l'alphabet. Une procédure de décision est généralement requise pour décider si une formule donnée est bien formée ou non. Ces fbf peuvent être appelées théorèmes du système.
  • Un ensemble d'axiomes: chaque axiome doit être une fbf.
  • Une ensemble de règles d'inférences.


Le système que nous allons utiliser dans ce challenge est le systèmes TQ que Douglas Hofstadter présente dans son chef-d'oeuvre "Gödel, Escher, Bach: Les brins d'une guirlande éternelle".

Il est défini comme suit :
  • Les symboles sont : t, q et -
  • La grammaire n'est volontairement pas donnée, mais nous verrons cela plus tard.
  • L'ensemble d'axiomes : Si x est une chaine composée uniquement de '-', la chaine xt-qx est un axiome. Vous pouvez constater qu'il y a une infinité d'axiomes dans ce système.
  • L'ensemble des règles d'inférence : Il n'y a qu'une seule règle d'inférence :
    Si x, y et z sont des chaines composées uniquement de '-', et si la chaine xtyqz est un théorème (cad une fbf), alors xty-qzx est également un théorème.


Prenons un exemple.
Avec x = "--", selon la règle de l'axiome,
(1) --t-q-- est un axiome et donc une fbf.
Nous pouvons l'utiliser pour produire de nouvelles chaines avec la règle d'inférence. Ici, x = "--", y = "-" et z = "--". Nous obtenons :
(2) --t--q----
Nous avons maintenant une fbf qui n'est pas un axiome (cad un théorème). Mais c'est super, nous pouvons l'utiliser pour produire un nouveau théorème avec la règle d'inférence :
(3) --t---q------
etc.

Maintenant vous comprenez que les axiomes sont les chaines de base, à partir desquelles nous allons "produire" les autres chaines (les théorèmes), qui seront des chaines bien formées de notre système formel. Nous pouvons également imaginer que certaines chaines ne seront jamais produites, peu importe l'axiome de départ qu'on choisit pour appliquer notre règle d'inférence. C'est exactement l'intérêt de ce challenge : Comment déterminer automatiquement, en un temps fini, si une chaine donnée est un théorème de notre système ou pas ? (Vous voyez le rapport avec l'intelligence artificielle maintenant... ?). De telles procédures automatiques sont appelées Procédure de Décision, et peuvent même ne pas exister.
Rassurez vous, dans ce cas, elle existe, il en existe même plusieurs.

Vous allez recevoir 15 chaines et votre rôle va être de déterminer lesquelles d'entre elles sont des théorèmes, c'est à dire celles qui peuvent être produites à partir des axiomes en appliquant la règle d'inférence.

Les chaines sont données dans les variables string1, string2, ..., string15.
Vous allez envoyer vos réponses dans des variables séparées. Si string1 est un théorème, alors vous devrez renvoyer theorm1=1, theorm1=0 sinon.

Par exemple, si
string7 = --t---q------
Alors vous devez retourner :
theorem7 = 1

Mais si
string7 = --t--q--
Alors vous devez retourner :
theorem7 = 0 (croyez moi ;) ).

Indice : Il y a deux manières de résoudre ce challenge, la manière forte, et la manière intelligente...
Note 1: Une chaine de '-' peut être vide.
Note 2: Les axiomes comptent en tant que théorèmes.

Variables


Nom Type Description
Variables à récupérer
string1Chaîne de caractèreschar*La première chaine dont vous devez determiner si c'est un théorème de TQ ou non
string2Chaîne de caractèreschar*La 2e chaine dont vous devez determiner si c'est un théorème de TQ ou non
...Chaîne de caractèreschar*
string15Chaîne de caractèreschar*La 15e chaine dont vous devez determiner si c'est un théorème de TQ ou non
Variables à renvoyer
theorem1EntierintVaut 1 si string1 est un théorème de TQ, 0 sinon.
theorem2EntierintVaut 1 si string2 est un théorème de TQ, 0 sinon.
...Entierint
theorem15EntierintVaut 1 si string15 est un théorème de TQ, 0 sinon.