evosoft 2013 presentation

61
EvoSpace-i: A framework for Interactive Evolutionary Algorithms Mario García-Valdez, Leonardo Trujillo José C. Romero, Alejandra Mancilla Inst. Tec. de Tijuana, México Juan-J. Merelo University of Granada, Spain EvoSoft @ GECCO’13, Amsterdam, The Netherlands. Francisco Fernández-de-Vega Universidad de Extremadura, Spain 1 Saturday, July 6, 13

Upload: mario-garcia-valdez

Post on 30-Jul-2015

172 views

Category:

Technology


0 download

TRANSCRIPT

1. EvoSpace-i: A framework for Interactive Evolutionary Algorithms Mario Garca-Valdez, Leonardo Trujillo Jos C. Romero, Alejandra Mancilla Inst. Tec. de Tijuana, Mxico Juan-J. Merelo University of Granada, Spain EvoSoft @ GECCO13, Amsterdam, The Netherlands. Francisco Fernndez-de-Vega Universidad de Extremadura, Spain 1 Saturday, July 6, 13 2. How artists use EAs? What can technology offer us? 2 Why EvoSpace Interactive? Saturday, July 6, 13 3. 3 Gaud. Casa Batll. Diego Rivera. El hombre controlador del universo Saturday, July 6, 13 4. 4 EndlessForms:CluneandLipson,2011 Langdon,2004 Picbreeder: 2011 EvoEco: Kowaliwetal.2011 Distributed IEAs & the Cloud Saturday, July 6, 13 5. 5 Few cloud based EAs SOFEA (Merelo et al.) FlexGP (Sherry et al.) EAs using Map/Reduce (Fazenda et al.) EvoSpace (Garcia et al) No specific Collaborative-IEA (C-IEA) Big Companies offering Cloud services Amazon EC2, Google Apps SaaS, PaaS, IaaS Currently... Saturday, July 6, 13 6. Local Goals Developing computational framework EvoSpace-Interactive: A cloud based C- IEA tool. Distributed Collaborative Interactive Flexible EA tool for Artists 6 Saturday, July 6, 13 7. EvoSpace 1.TheEvoSpacecontainerthatstoresthe evolvingpopulation. 2.RemoteclientscalledEvoWorkers,which executetheactualevolutionaryprocess. EvoSpaceconsistsoftwomaincomponents: 7 Saturday, July 6, 13 8. evospace evospace read(n) get_sample(n) re_insert(i) insert(A) put_back(A,i) remove(A) 8 Saturday, July 6, 13 9. evospace.get_sample(n) 9 Saturday, July 6, 13 10. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13 11. evoWorker 2 evospace get_Sample(5) evoWorker 1 10 Saturday, July 6, 13 12. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13 13. evoWorker 2 evospace evoWorker 1 phantom 10 Saturday, July 6, 13 14. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13 15. evoWorker 2 evospace evoWorker 1 get_Sample(3) 10 Saturday, July 6, 13 16. evoWorker 2 evospace evoWorker 1 get_Sample(3) 10 Saturday, July 6, 13 17. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13 18. worker1.evolve(n) 11 Saturday, July 6, 13 19. evospace evoWorker 2 evoWorker 1 12 Saturday, July 6, 13 20. evospace evolve(50) evoWorker 2 evoWorker 1 12 Saturday, July 6, 13 21. evospace evoWorker 2 evoWorker 1 12 Saturday, July 6, 13 22. evospace.put_back(samplei) 13 Saturday, July 6, 13 23. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 24. evospace put_back(s1) evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 25. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 26. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 27. evospace phantoms from s1 are deleted evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 28. evospace phantoms from s1 are deleted evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 29. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13 30. evospace.re_insert(samplei) 15 Saturday, July 6, 13 31. evospace evoWorker 2 evoWorker 1 16 Saturday, July 6, 13 32. evospace evoWorker 2 evoWorker 1 16 Saturday, July 6, 13 33. evospace re_insert( ) evoWorker 2 evoWorker 1 16 Saturday, July 6, 13 34. evospace re_insert( ) evoWorker 2 evoWorker 1 16 Saturday, July 6, 13 35. evospace evoWorker 2 evoWorker 1 16 Saturday, July 6, 13 36. evospace.read_sample(n) 17 Saturday, July 6, 13 37. evospace evoWorker 2 evoWorker 1 18 Saturday, July 6, 13 38. evospace read_Sample(5) evoWorker 2 evoWorker 1 18 Saturday, July 6, 13 39. evospace evoWorker 2 evoWorker 1 18 Saturday, July 6, 13 40. evospace read_Sample(3) evoWorker 2 evoWorker 1 18 Saturday, July 6, 13 41. evospace read_Sample(3) evoWorker 2 evoWorker 1 18 Saturday, July 6, 13 42. EvoSpace 19 Saturday, July 6, 13 43. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python 20 Saturday, July 6, 13 44. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python core 20 Saturday, July 6, 13 45. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python 20 Saturday, July 6, 13 46. Advancedkey-valuestore Keyscancontainstrings,hashes,lists,sets, sortedsets. In-memorybutpersistentondisk database. Singlethreaded. Master-slavereplication. 21 Saturday, July 6, 13 47. EcientimplementationofSetoperations neededforevospace: Add,remove,andtestforexistenceof membersinO(1). Returningandremovingarandommember fromasetisalsoO(1). 22 Saturday, July 6, 13 48. EachindividualisauniquekeyandaJSON objectstring. ind:123->{chromosome:[0,1,0,1],tness:0.2} APopulationisasetofkeys. pop:1->{ind:123,ind:124,ind:13,ind:132} Samplesarealsosets. Re-Insertionisaunionofsets. 23 Saturday, July 6, 13 49. EvoSpace Interactive Evolution Remote Clients EvoWorker EvoSpace Re-Insertion Manager Server Get Sample1 Feed to Processing Script 2User evaluates Representations 3 Put Sample Back 4 After n evaluations Evolve a sample 5 24 Saturday, July 6, 13 50. EvoSpace Interactive 25 Saturday, July 6, 13 51. Client Side 26 ind:21->{chromosome:[0,1,0,1],tness:3.0,...} ind:42->{chromosome:[1,1,0,0],tness:3.0,...} parameters JQuery EvoSpace getSample(2) JQuery rendersprocessingjs individual:110 individual:3889individual:4006 individual:948individual:1882individual:3743 individual:110 individual:4042 individual:3889individual:4006 individual:4123individual:1383 individual:948individual:1882 ind:21 ind:42 htmlcanvas htmlcanvas Saturday, July 6, 13 52. Client Side II 27 JQuery UserLikes idual:3743 vidual:110 individual:4017individual:4123individual:1383 individual:948 individual:1204individual:1882dual:3743 dual:110 individual:4017individual:4123individual:1383 individual:948 individual:1204individual:1882 ind:21 ind:42 htmlcanvas htmlcanvas EvoSpace putback(sample) Saturday, July 6, 13 53. 28 Why Processing? http://processingjs.nihongoresources.com/test/PjsGameEngine/docs/tutorial/mario.html Saturday, July 6, 13 54. EvoSpace Interactive 29 Saturday, July 6, 13 55. Why Django? 30 Python Web Development Framework In House experience Provides: OR-Mapper Authentication Elegant URL design Template System MVC Patterns http://www.djangoproject.com/ Saturday, July 6, 13 56. Django 31 Framework is a Django Application Authentication with Facebook credentials Collections Also implements the EvoSpace population store Interactive data stored in PostgreSQL Saturday, July 6, 13 57. 32 Saturday, July 6, 13 58. 33 Saturday, July 6, 13 59. Fireworks IEA 34 Saturday, July 6, 13 60. Conclusions 35 EvoSpace-Interactive: A new cloud based C-IEA tool Linked to Social Networks Offering Processing to Artists Can evolve artistic animations Free Software Saturday, July 6, 13 61. Thank You Pleasevisitwww.evospace.orgformore information. Allcode,data,matplotlibscripts,latexleswith authorsoriginalcommentsandedits(in spanish)availablein: https://github.com/mariosky/EvoSoft2013 https://github.com/mariosky/evospacei 36 Saturday, July 6, 13