Pour le défi Python du Léviathan
Chercher avec la couche graphique de LeGmask et évaluer avec citorva
Déprécié :
Fonctionnel et commenté :
1. Dézipper le dossier.
2. Ouvrir dans votre IDE favori, Thonny par exemple, les fichier bench.py et web_test.py
3. Si vous exécutez le script web_test.py, vous pouvez visualiser le fonctionnement de votre IA sur la couche graphique TK, c'est pratique pour repérer un bug ou un script mal codé.
4. Si vous exécutez le script bench.py, vous simulez 1000 exécutions de ce script. C'est utile pour obtenir une évaluation rapide de votre IA et l'améliorer.
Comment ajouter des variables :
- Les variables devront être ajoutées et initialisées dans la fonction init()
- Ceci est commenté dans le fichier web_test.py
C'est le fichier web_test.py que vous devez améliorer.
Vous pouvez aussi dans un premier temps participer juste en envoyant le fichier web_test.py, c'est l'IA de base.
A la date du 22/11/2020, il y a moins de participant que de lots. Envoyer le fichier web_test.py permet de se classer.
Concours de rentrée 2020 - défi Python du Léviathan
Re: Concours de rentrée 2020 - défi Python du Léviathan
You do not have the required permissions to view the files attached to this post.
Last edited by cent20 on 22 Nov 2020, 11:17, edited 1 time in total.
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
-
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 1047
- Images: 67
- Joined: 17 May 2012, 09:49
- Location: Avignon
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: nsi_xyz
Re: Concours de rentrée 2020 - défi Python du Léviathan
Nouvelle IA du n°3. Voyons voir ses progrès ; direct dès maintenant :
https://tiplanet.org/concours_rentree20 ... &invalid=1
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Nouvelle IA du n°37. Le direct :
https://tiplanet.org/concours_rentree20 ... &invalid=1
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Le numéro 3 renchérit avec une nouvelle IA. Le direct :
https://tiplanet.org/concours_rentree20 ... &invalid=1
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Nouvelle IA du n°35. Voyons si elle bouleverse tout, en direct :
https://tiplanet.org/concours_rentree20 ... &invalid=1
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Petit indice pour ceux qui veulent aller encore plus loin.
Vous pouvez faire appel à un langage de programmation logique comme Prolog, histoire de bien faire à chaque étape toutes les déductions positives ou négatives possibles sur l'ensemble du graphe.
En Python vous pouvez exécuter des scripts Prolog en important pyswip.
Il y a aussi la possibilité d'importer pylog, qui à la différence réimplémente totalement un équivalent de Prolog en Python.
Vous pouvez faire appel à un langage de programmation logique comme Prolog, histoire de bien faire à chaque étape toutes les déductions positives ou négatives possibles sur l'ensemble du graphe.
En Python vous pouvez exécuter des scripts Prolog en important pyswip.
Il y a aussi la possibilité d'importer pylog, qui à la différence réimplémente totalement un équivalent de Prolog en Python.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Nouvelle IA du n°10. Bon visionnage :
https://tiplanet.org/concours_rentree20 ... &invalid=1
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Comme mise à jour du script eval.sh dont je parle dans mon commentaire p. 7, je propose le code suivant, qui ajoute un calcul du pourcentage des cas où on sort indemne du cratère, ainsi qu'un calcul du nombre moyen de déplacements alors effectués pour sortir.
Pour le reste des instructions, je vous renvoie à mon commentaire p. 7.
- Code: Select all
#! /bin/bash
if [[ ! "$2" ]]; then
echo "usage: $0 <nb of simulations> <l?.py file num>" >&2
exit 1
fi
base_file="l""$2"
script_file="$base_file"".py"
infos_file="$base_file"".txt"
timestamp="$(date +"%s")"
# First seed for the tests
base_seed="$2"
# Web size for the tests
web_size=36
# Web density for the tests
web_density=.05
# Pits density for the tests
pits_density=.1
# Bats density for the tests
bats_density=.15
# Number of tests
test_count="$1"
# Total time spent escaping
escape_time=0
# Number of successful escapes, falls in wells, leviathan mishaps, exceptions
escapes=0
well=0
leviathan=0
exception=0
lowpower=0
RANDOM=$base_seed
# Upper bound is the number of tests
for i in $(seq 1 $test_count); do
percent=$(echo "scale=2; $i*100/$test_count" | bc)
# echo -ne "\rseed: $i/$test_count ($percent%)..." >&2
result=$(python3 "$script_file" $RANDOM $web_size $web_density $pits_density $bats_density 2>&1 >/dev/null)
case "$result" in
"win "*)
escape_time=$(($escape_time+${result#* }))
escapes=$(($escapes+1));;
"well")
well=$(($well+1));;
"leviathan")
leviathan=$(($leviathan+1));;
"lowpower")
lowpower=$(($lowpower+1));;
"exception")
exception=$(($exception+1));;
esac
if [[ "$escapes" > "0" ]]; then
cat <<EOF > "$infos_file"
$timestamp #date
$test_count #total simulations
$i #simulations
$base_seed #seed
$web_size #web size
$web_density #web density
$pits_density #pits density
$bats_density #bats density
$escapes #successes
($(($escapes*100/$i)) %)
$(echo "scale=2; $escapes*100/$i" | bc -l) %
$escape_time #successes total steps
$(($escape_time/$escapes)) #average number of steps
$leviathan #fails by Leviathan
$well #fails by well
$lowpower #fails by low power
$exception #fails by exception
EOF
fi
done
printf "\r%40s\r" "" >&2
Pour le reste des instructions, je vous renvoie à mon commentaire p. 7.
-
AfyuVIP++
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 405
- Images: 149
- Joined: 30 Oct 2019, 19:17
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: plutôt, oui :)
Re: Concours de rentrée 2020 - défi Python du Léviathan
Merci à toi, toujours aussi sympa avec tes concurrents.
Sinon, encore une nouvelle IA du n°10. Voyons voir de suite si il progresse :
https://tiplanet.org/concours_rentree20 ... &invalid=1
Sinon, encore une nouvelle IA du n°10. Voyons voir de suite si il progresse :
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Concours de rentrée 2020 - défi Python du Léviathan
Mais c'était sans compter sur la dernière IA du n°37 qui, si la tendance se confirme, semble faire un bond prodigieux !
https://tiplanet.org/concours_rentree20 ... &invalid=1
https://tiplanet.org/concours_rentree20 ... &invalid=1
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15839
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Who is online
Users browsing this forum: ClaudeBot [spider] and 8 guests