EvoSoft 2013 Presentation

302 views
227 views

Published on

DRAFT

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
302
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

EvoSoft 2013 Presentation

  1. 1. 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
  2. 2. How artists use EAs? What can technology offer us? 2 Why EvoSpace Interactive? Saturday, July 6, 13
  3. 3. 3 Gaudí. Casa Batlló. Diego Rivera. El hombre controlador del universo Saturday, July 6, 13
  4. 4. 4 Endless  Forms:  Clune  and  Lipson,  2011 Langdon,  2004 Picbreeder: 2011 EvoEco: Kowaliw  et  al.  2011 Distributed IEAs & the Cloud Saturday, July 6, 13
  5. 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. 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. 7. EvoSpace 1.  The  EvoSpace  container  that  stores  the   evolving  population. 2.  Remote  clients  called  EvoWorkers,  which   execute  the  actual  evolutionary  process.  EvoSpace  consists  of  two  main  components  : 7 Saturday, July 6, 13
  8. 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. 9. evospace.get_sample(n) 9 Saturday, July 6, 13
  10. 10. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13
  11. 11. evoWorker 2 evospace get_Sample(5) evoWorker 1 10 Saturday, July 6, 13
  12. 12. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13
  13. 13. evoWorker 2 evospace evoWorker 1 phantom 10 Saturday, July 6, 13
  14. 14. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13
  15. 15. evoWorker 2 evospace evoWorker 1 get_Sample(3) 10 Saturday, July 6, 13
  16. 16. evoWorker 2 evospace evoWorker 1 get_Sample(3) 10 Saturday, July 6, 13
  17. 17. evoWorker 2 evospace evoWorker 1 10 Saturday, July 6, 13
  18. 18. worker1.evolve(n) 11 Saturday, July 6, 13
  19. 19. evospace evoWorker 2 evoWorker 1 12 Saturday, July 6, 13
  20. 20. evospace evolve(50) evoWorker 2 evoWorker 1 12 Saturday, July 6, 13
  21. 21. evospace evoWorker 2 evoWorker 1 12 Saturday, July 6, 13
  22. 22. evospace.put_back(samplei) 13 Saturday, July 6, 13
  23. 23. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  24. 24. evospace put_back(s1) evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  25. 25. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  26. 26. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  27. 27. evospace phantoms from s1 are deleted evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  28. 28. evospace phantoms from s1 are deleted evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  29. 29. evospace evoWorker 2 evoWorker 1 14 Saturday, July 6, 13
  30. 30. evospace.re_insert(samplei) 15 Saturday, July 6, 13
  31. 31. evospace evoWorker 2 evoWorker 1 16 Saturday, July 6, 13
  32. 32. evospace evoWorker 2 evoWorker 1 16 Saturday, July 6, 13
  33. 33. evospace re_insert( ) evoWorker 2 evoWorker 1 16 Saturday, July 6, 13
  34. 34. evospace re_insert( ) evoWorker 2 evoWorker 1 16 Saturday, July 6, 13
  35. 35. evospace evoWorker 2 evoWorker 1 16 Saturday, July 6, 13
  36. 36. evospace.read_sample(n) 17 Saturday, July 6, 13
  37. 37. evospace evoWorker 2 evoWorker 1 18 Saturday, July 6, 13
  38. 38. evospace read_Sample(5) evoWorker 2 evoWorker 1 18 Saturday, July 6, 13
  39. 39. evospace evoWorker 2 evoWorker 1 18 Saturday, July 6, 13
  40. 40. evospace read_Sample(3) evoWorker 2 evoWorker 1 18 Saturday, July 6, 13
  41. 41. evospace read_Sample(3) evoWorker 2 evoWorker 1 18 Saturday, July 6, 13
  42. 42. EvoSpace 19 Saturday, July 6, 13
  43. 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. 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. 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. 46. Advanced  key-­‐value  store   Keys  can  contain  strings,  hashes,lists,  sets,   sorted  sets. In-­‐memory  but  persistent  on  disk   database. Single  threaded. Master-­‐slave  replication. 21 Saturday, July 6, 13
  47. 47. Efficient  implementation  of  Set  operations   needed  for  evospace: Add,  remove,  and  test  for  existence  of   members  in  O(1). Returning  and  removing  a  random  member   from  a  set  is  also  O(1).   22 Saturday, July 6, 13
  48. 48. Each  individual  is  a  unique  key  and  a  JSON   object  string. ind:123  -­‐>  {  chromosome:[0,1,0,1],  fitness:0.2} A  Population  is  a  set  of  keys. pop:1-­‐>  {ind:123,  ind:124,  ind:13,  ind:132} Samples  are  also  sets. Re-­‐Insertion  is  a  union  of  sets. 23 Saturday, July 6, 13
  49. 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. 50. EvoSpace Interactive 25 Saturday, July 6, 13
  51. 51. Client Side 26 ind:21  -­‐>  {  chromosome:[0,1,0,1],  fitness:3.0,  ...  } ind:42  -­‐>  {  chromosome:[1,1,0,0],  fitness: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 html  canvas html  canvas Saturday, July 6, 13
  52. 52. Client Side II 27 JQuery User  Likes   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 html  canvas html  canvas EvoSpace putback(sample) Saturday, July 6, 13
  53. 53. 28 Why Processing? http://processingjs.nihongoresources.com/test/PjsGameEngine/docs/tutorial/mario.html Saturday, July 6, 13
  54. 54. EvoSpace Interactive 29 Saturday, July 6, 13
  55. 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. 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. 57. 32 Saturday, July 6, 13
  58. 58. 33 Saturday, July 6, 13
  59. 59. Fireworks IEA 34 Saturday, July 6, 13
  60. 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. 61. Thank You Please  visit  www.evospace.org    for  more   information.   All  code,  data,  matplotlib  scripts,  latex  files  with   authors  original  comments  and  edits  (in   spanish)  available  in:   https://github.com/mariosky/EvoSoft2013 https://github.com/mariosky/evospacei 36 Saturday, July 6, 13

×