SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
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
How artists use EAs?
What can technology offer us?
2
Why EvoSpace
Interactive?
Saturday, July 6, 13
3
Gaudí. Casa Batlló.
Diego Rivera. El hombre controlador del universo
Saturday, July 6, 13
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
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
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
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
evospace
evospace
read(n)	
  
get_sample(n)
re_insert(i)	
  
insert(A)
put_back(A,i)
remove(A)	
  
8
Saturday, July 6, 13
evospace.get_sample(n)
9
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
10
Saturday, July 6, 13
evoWorker 2
evospace
get_Sample(5)
evoWorker 1
10
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
10
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
phantom
10
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
10
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
get_Sample(3)
10
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
get_Sample(3)
10
Saturday, July 6, 13
evoWorker 2
evospace
evoWorker 1
10
Saturday, July 6, 13
worker1.evolve(n)
11
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
12
Saturday, July 6, 13
evospace
evolve(50)
evoWorker 2
evoWorker 1
12
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
12
Saturday, July 6, 13
evospace.put_back(samplei)
13
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace
put_back(s1)
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace
phantoms
from s1
are deleted
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace
phantoms
from s1
are deleted
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
14
Saturday, July 6, 13
evospace.re_insert(samplei)
15
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
16
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
16
Saturday, July 6, 13
evospace
re_insert( )
evoWorker 2
evoWorker 1
16
Saturday, July 6, 13
evospace
re_insert( )
evoWorker 2
evoWorker 1
16
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
16
Saturday, July 6, 13
evospace.read_sample(n)
17
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
18
Saturday, July 6, 13
evospace
read_Sample(5)
evoWorker 2
evoWorker 1
18
Saturday, July 6, 13
evospace
evoWorker 2
evoWorker 1
18
Saturday, July 6, 13
evospace
read_Sample(3)
evoWorker 2
evoWorker 1
18
Saturday, July 6, 13
evospace
read_Sample(3)
evoWorker 2
evoWorker 1
18
Saturday, July 6, 13
EvoSpace
19
Saturday, July 6, 13
Implementation
Redis
evospace.py
cherrypy
javascript Python c# Objective-C Others
json-rpc
application-server
redis-server
process
python
20
Saturday, July 6, 13
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
Implementation
Redis
evospace.py
cherrypy
javascript Python c# Objective-C Others
json-rpc
application-server
redis-server
process
python
20
Saturday, July 6, 13
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
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
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
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
EvoSpace Interactive
25
Saturday, July 6, 13
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
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
28
Why Processing?
http://processingjs.nihongoresources.com/test/PjsGameEngine/docs/tutorial/mario.html
Saturday, July 6, 13
EvoSpace Interactive
29
Saturday, July 6, 13
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
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
32
Saturday, July 6, 13
33
Saturday, July 6, 13
Fireworks IEA
34
Saturday, July 6, 13
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
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

Contenu connexe

En vedette

Computador (informatica) 2 2
Computador (informatica) 2 2Computador (informatica) 2 2
Computador (informatica) 2 2
luismarlmg
 
Manual de el lenguaje de programacion c# (español spanish) x richy(1)
Manual de el lenguaje de programacion c# (español spanish) x richy(1)Manual de el lenguaje de programacion c# (español spanish) x richy(1)
Manual de el lenguaje de programacion c# (español spanish) x richy(1)
dulcecitom3
 
Ejericicio Diapositivas Exposición "Lineas de Espera"
Ejericicio Diapositivas Exposición "Lineas de Espera"Ejericicio Diapositivas Exposición "Lineas de Espera"
Ejericicio Diapositivas Exposición "Lineas de Espera"
AliniuZiz Rguez T
 
Unidad III SISTEMAS I
Unidad III SISTEMAS IUnidad III SISTEMAS I
Unidad III SISTEMAS I
luismarlmg
 

En vedette (18)

Presentacion de mapa conceptual de web quest elabora por luisana gonzález
Presentacion de mapa conceptual de web quest elabora por luisana gonzálezPresentacion de mapa conceptual de web quest elabora por luisana gonzález
Presentacion de mapa conceptual de web quest elabora por luisana gonzález
 
Computador (informatica) 2 2
Computador (informatica) 2 2Computador (informatica) 2 2
Computador (informatica) 2 2
 
Is there a free lunch for cloud-based evolutionary algorithms?
Is there a free lunch for cloud-based evolutionary algorithms?Is there a free lunch for cloud-based evolutionary algorithms?
Is there a free lunch for cloud-based evolutionary algorithms?
 
Bucles en python
Bucles en pythonBucles en python
Bucles en python
 
Transformación Agile
Transformación AgileTransformación Agile
Transformación Agile
 
Componente Docente Trabajo I -UNIVERSIDADES NACIONALES
Componente Docente Trabajo I -UNIVERSIDADES NACIONALESComponente Docente Trabajo I -UNIVERSIDADES NACIONALES
Componente Docente Trabajo I -UNIVERSIDADES NACIONALES
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Bucles con Scratch
Bucles con ScratchBucles con Scratch
Bucles con Scratch
 
Taac II
Taac IITaac II
Taac II
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Manual de el lenguaje de programacion c# (español spanish) x richy(1)
Manual de el lenguaje de programacion c# (español spanish) x richy(1)Manual de el lenguaje de programacion c# (español spanish) x richy(1)
Manual de el lenguaje de programacion c# (español spanish) x richy(1)
 
UX Mobile
UX MobileUX Mobile
UX Mobile
 
Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"
Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"
Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"
 
Liderazgo y Dirección de las Mujeres en las TICs
Liderazgo y Dirección de las Mujeres en las TICsLiderazgo y Dirección de las Mujeres en las TICs
Liderazgo y Dirección de las Mujeres en las TICs
 
Primer Rails Girls Cali - Abril 2016
Primer Rails Girls Cali - Abril 2016Primer Rails Girls Cali - Abril 2016
Primer Rails Girls Cali - Abril 2016
 
GDG Summit Latam Bogotá - Mayo 2016
GDG Summit Latam Bogotá - Mayo 2016GDG Summit Latam Bogotá - Mayo 2016
GDG Summit Latam Bogotá - Mayo 2016
 
Ejericicio Diapositivas Exposición "Lineas de Espera"
Ejericicio Diapositivas Exposición "Lineas de Espera"Ejericicio Diapositivas Exposición "Lineas de Espera"
Ejericicio Diapositivas Exposición "Lineas de Espera"
 
Unidad III SISTEMAS I
Unidad III SISTEMAS IUnidad III SISTEMAS I
Unidad III SISTEMAS I
 

Similaire à EvoSoft 2013 Presentation

JavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfJavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdf
Sathwika7
 

Similaire à EvoSoft 2013 Presentation (20)

Research @ RELEASeD (presented at SATTOSE2013)
Research @ RELEASeD (presented at SATTOSE2013)Research @ RELEASeD (presented at SATTOSE2013)
Research @ RELEASeD (presented at SATTOSE2013)
 
JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8
 
Purely Functional I/O
Purely Functional I/OPurely Functional I/O
Purely Functional I/O
 
Apache Groovy: the language and the ecosystem
Apache Groovy: the language and the ecosystemApache Groovy: the language and the ecosystem
Apache Groovy: the language and the ecosystem
 
Scalable JavaScript
Scalable JavaScriptScalable JavaScript
Scalable JavaScript
 
A Holistic Approach to Evolving Software Systems
A Holistic Approach to Evolving Software SystemsA Holistic Approach to Evolving Software Systems
A Holistic Approach to Evolving Software Systems
 
Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.
 
Clojure And Swing
Clojure And SwingClojure And Swing
Clojure And Swing
 
xlab #7 - ReactJS & NodeJS
xlab #7 - ReactJS & NodeJSxlab #7 - ReactJS & NodeJS
xlab #7 - ReactJS & NodeJS
 
Invitation to Scala
Invitation to ScalaInvitation to Scala
Invitation to Scala
 
Knowledge of Javascript
Knowledge of JavascriptKnowledge of Javascript
Knowledge of Javascript
 
Bringing Characters to Life for Immersive Storytelling - Dioselin Gonzalez
Bringing Characters to Life for Immersive Storytelling - Dioselin GonzalezBringing Characters to Life for Immersive Storytelling - Dioselin Gonzalez
Bringing Characters to Life for Immersive Storytelling - Dioselin Gonzalez
 
function* - ES6, generators, and all that (JSRomandie meetup, February 2014)
function* - ES6, generators, and all that (JSRomandie meetup, February 2014)function* - ES6, generators, and all that (JSRomandie meetup, February 2014)
function* - ES6, generators, and all that (JSRomandie meetup, February 2014)
 
Bringing characters to life for immersive storytelling
Bringing characters to life for immersive storytellingBringing characters to life for immersive storytelling
Bringing characters to life for immersive storytelling
 
From Java To Clojure (English version)
From Java To Clojure (English version)From Java To Clojure (English version)
From Java To Clojure (English version)
 
Everything is Permitted: Extending Built-ins
Everything is Permitted: Extending Built-insEverything is Permitted: Extending Built-ins
Everything is Permitted: Extending Built-ins
 
Art & music vs Google App Engine
Art & music vs Google App EngineArt & music vs Google App Engine
Art & music vs Google App Engine
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
 
JavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdfJavaProgrammingForBeginners-Presentation.pdf
JavaProgrammingForBeginners-Presentation.pdf
 
MCE^3 - Jorge D. Ortiz - Fuentes - Escape From Mars
MCE^3 - Jorge D. Ortiz - Fuentes - Escape From Mars MCE^3 - Jorge D. Ortiz - Fuentes - Escape From Mars
MCE^3 - Jorge D. Ortiz - Fuentes - Escape From Mars
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

EvoSoft 2013 Presentation