SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante a EvoSoft 2013 Presentation

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

Semelhante a 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
 
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
 
Intro to Reactive Thinking and RxJava 2
Intro to Reactive Thinking and RxJava 2Intro to Reactive Thinking and RxJava 2
Intro to Reactive Thinking and RxJava 2
 

Último

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Último (20)

IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Motion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in TechnologyMotion for AI: Creating Empathy in Technology
Motion for AI: Creating Empathy in Technology
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 

EvoSoft 2013 Presentation