{"id":23975902,"url":"https://github.com/matthieu637/smile","last_synced_at":"2026-05-15T17:31:35.848Z","repository":{"id":6768654,"uuid":"8015428","full_name":"matthieu637/smile","owner":"matthieu637","description":"SeMi-supervIsed Learning agEnt","archived":false,"fork":false,"pushed_at":"2016-08-01T13:46:33.000Z","size":41979,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-07T06:52:33.318Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthieu637.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-04T20:22:47.000Z","updated_at":"2016-08-01T13:46:34.000Z","dependencies_parsed_at":"2022-09-15T03:20:27.980Z","dependency_job_id":null,"html_url":"https://github.com/matthieu637/smile","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieu637%2Fsmile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieu637%2Fsmile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieu637%2Fsmile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieu637%2Fsmile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthieu637","download_url":"https://codeload.github.com/matthieu637/smile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240521054,"owners_count":19814694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-07T06:52:35.139Z","updated_at":"2026-05-15T17:31:30.801Z","avatar_url":"https://github.com/matthieu637.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# smile\n\nSeMi-supervIsed Learning agEnt\n\nkeywords : reinforcement learning, learning from demonstration, TORCS\n\n\u003chr\u003e\n## How to build\n\n##### Required packages :\n* plib\n* boost\n* gcc\n* cmake\n* torcs (version 1.3.4 recommanded - doesn't work with \u003e= 1.3.6)\n\nThe following works for ArchLinux paths :\n```\ngit clone https://github.com/matthieu637/smile\n\n#build library\ncd smile/library\nmkdir build\ncd build\ncmake ..\nmake -j4\n\n#build driver for torcs\ncd ../../driver/\nmkdir build\ncd build\ncmake ..\nmake -j4\n\n#copy lib to torcs\nsudo make install\n```\n## How to run the driver\n```\ntorcs\n```\nrace -\u003e quick race -\u003e configure race -\u003e accept -\u003e add 33 smile_2 driver (with space)\naccept -\u003e accept -\u003e new race\n\nYou should also remove the other drivers.\n\n## How to learn (without display)\n```\ncp ~/.torcs/config/raceman/quickrace.xml ~/.torcs/config/dtmrace2.xml #copy config race\nsudo chmod o+w /usr/share/games/torcs/ #allow to write the policy\ncd ..\n./learnIA 2 #wait at least 5 minutes than the perf is higher than 5000 several times\n```\n\n## Test my driver after learning\n```\ncp ~/.torcs/config/dtmrace2.xml ~/.torcs/config/raceman/quickrace.xml #copy config race\ntorcs\n#race -\u003e quick race -\u003e new race\n#Press F2 for a better view and \"+\" to accelerate time\n#For better results you might condiser disable learning \u0026 e-greedy policy in this phase\n#to do so changes learn to false in smile/driver/include/QLearnGen.hpp:65 + recompile/reinstall driver\n```\n\n## Troubleshooting\n```\n#you might need to remove some semaphores if you forced an exit\nrm -rf /dev/shm/sem.*\n```\n\u003chr\u003e\n\nNous devrons développer une bibliothèque indépendante du domaine dans lequel l’agent évolue. \nElle fournira plusieurs algorithmes de base de l’apprentissage\npar renforcement (Q-Learning, SARSA, . . .), plusieurs critères de performance, ainsi\nqu’une ouverture sur l’apprentissage semi-supervisé : c’est à dire avec les retours de\nl’expert pris en compte.\nDans un premier temps, l’expert pourra simplement compenser la fonction de\nrécompense en précisant si l’agent a bien ou mal agit. Dans un second temps, si\nle temps le permet, l’expert pourra également agir sur le choix de l’action à entreprendre lors de l’exploration de l’agent, ou encore dire à l’agent s’il est temps\nd’exploiter ou d’explorer.\nParallèlement au développement de la bibliothèque, afin d’avoir une application\npratique de la théorie, on utilisera TORCS qui simule des courses de voiture en 3D\ndans lequelles on intégrera nos propres conducteurs. Nous modifierons également\nl’interface TORCS pour intégrer les retours positifs ou négatifs de l’expert.\n\nDémo :\nhttps://www.youtube.com/watch?v=MirqnEToUVg\n\n\u003chr\u003e\nCode in library/ have been used in \u003cbr\u003e\n\n[Teacher-Student Framework: A Reinforcement Learning Approach](https://matthieu-zimmer.net/publications/ARMS2014.pdf)\u003cbr\u003e\nZimmer, Matthieu; Viappiani, Paolo; Weng, Paul \u003cbr\u003e\nAAMAS Workshop Autonomous Robots and Multirobot Systems 2014\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthieu637%2Fsmile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthieu637%2Fsmile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthieu637%2Fsmile/lists"}