Encyclopedia of Computer Graphics and Games

Living Edition
| Editors: Newton Lee

3D Room Layout System Using IEC (Interactive Evaluational Computation)

  • Ryuya AkaseEmail author
  • Yoshihiro Okada
Living reference work entry
DOI: https://doi.org/10.1007/978-3-319-08234-9_34-1



IEC is the interactive optimization system incorporating human tasks. 3D room layout system using IEC is the application of IEC, and it evolves layout according to the user preferences.


Designers usually build renderings to create a new layout, and they reorganize it to fit a customer need. Furthermore, customers can understand shapes intuitively if they provide the 3D room layout. Numerical optimization approaches that optimize parameters constructing the 3D room layout can automate these works. However, it is difficult to create a model equation that emulates human thoughts because it is a subjective personal preference. Therefore, optimization systems incorporate the human tasks that evaluate the fitness of solutions manually. These systems usually use interactive evolutionary computation (IEC). This approach is similar to the process of improvement in animal and crop varieties. Some evolutionary computing algorithms implement IEC. The most famous algorithm is interactive genetic algorithm (IGA), and some studies use parallel distributed interactive genetic algorithm (PDIGA), interactive differential evolution (IDE), interactive particle swarm optimization, and interactive genetic programming (Takagi et al. 1998, 2009). This entry focuses on IEC and interactive 3D room layout, and it especially treats the system that uses IGA. The remainder of this entry organizes as follows. Section “Algorithms for IEC” gives the algorithms for IEC and examples of some applications. Section “Layout Generation” shows the studies that generate 3D layout interactively. Section “Quantitative Evaluation Techniques and Problems of the IEC-Based Systems” describes quantitative evaluation techniques and problems of the IEC-based system. Finally, section “Summary” summarizes this paper.

Algorithms for IEC

Richard Dawkins famed for The Selfish Gene began the study of IEC (Dawkins 1986). Afterward, various fields such as arts, engineering, education, and entertainments incorporate IEC (Bentley 1999). Takagi organized the applications of IEC between 1986 and 2000 (Takagi 2001). Table 1 lists the major application. The following are specific advantages of IEC:
Table 1

Examples of IEC applications


Comfortable design




Hearing aid

Face image

Web page

Vision aid

Screen saver


Image retrieval

2D/3D CG


Knowledge transmission


Interior layout

Knowledge acquisition



Robot arm control



Educational aid




Artificial life

Story composition

Seasoning adjustment

  1. 1.

    Personalize applications based on user preferences.

  2. 2.

    Incorporate knowledge and heuristics of users to the system.

  3. 3.

    Aid creativity of users.

  4. 4.

    Provide user-friendly applications that need not special skills and knowledge.

  5. 5.

    Analyze user preferences by using optimized solution.


Interactive Genetic Algorithm

Genetic algorithm (GA) is a heuristic search algorithm, and it bases on the Darwinian theory of evolution. It finds the optimum solution by generating individuals that can be the optimum solution. Each individual that is in the population develops through the fitness function that determines the ability to solve problems, and crossover and mutation elevate individuals. IGA replaces the fitness function with the user evaluation to incorporate user preference and knowledge.

Table 2 shows the pseudo-code for typical IGA. The user rates the evolved individuals, and IGA generates new individuals according to the user evaluations. The following are specific procedures:
Table 2

Pseudo-code for typical IGA

IGA ( )

 generation = 0;

 create initial group of individuals;


  fitness = USER (current group of individuals);

  IF user is satisfied THEN RETURN the best individual;

  i = 0;


   select two individuals based on fitness;

   perform pcrossover;

   perform pmutation;

   insert two offspring into new group of individuals;

   i = i + 2;

  UNTIL i > predefined number of individuals;

  generation = generation + 1;

 UNTIL generation > predefined number of generations;


  1. 1.

    Initialization: This process generates the initial individuals. Typical IGA creates genes configuring an individual randomly.

  2. 2.

    Evaluation: This is the human task. The user rates individuals based on his/her subjective preference. IGA uses these evaluations as the fitness values to evolve the current individuals.

  3. 3.
    Selection: This process selects some highly rated individuals as parents to create a new generation. The following are specific selection methods:
    • Roulette selection: This method selects parent individuals according to a rate that is proportional to the fitness values. Typical roulette selection uses the selection boxes that have room according to the fitness values and random numbers, and it selects the individuals by checking the random numbers that are in the selection boxes. The following is the probability selecting ith individual, where n is the number of individuals and f is a fitness value.
      $$ {p}_i = \frac{f_i}{{\displaystyle {\sum}_{k=1}^n}{f}_k} $$
    • Tournament selection: This method selects parent individuals by using knockout competition.

    • Elitist selection: Roulette selection and tournament selection have the potential to lose the best individual because they are probabilistic methods. This method bequeaths the elite individual to the next generation, and it does not apply crossover and mutation to the elite individual.

  4. 4.
    Crossover: This process transposes gene sequences of two individuals. The following are specific crossover methods:
    • Single-point crossover: This method splits a gene sequence into two halves. Children inherit the parent gene sequences half-and-half.

    • Multi-point crossover: This method has some split-off points. Children inherit the parent gene sequences alternately.

    • Uniform crossover: Children inherit the parent gene sequences according to a randomly generated mask.

  5. 5.
    Mutation: This is a way to change a part of gene in an individual randomly with a fixed probability. It is a useful way to prevent the initial convergence. Typical mutation uses the reciprocal of a gene length as the mutation rate.
    • If a specific individual generated in an early stage has an extremely high fitness value, IGA may select it as an optimal solution. This is the initial convergence, and it is a problem in IGA. It converges exploration in the early stage, and solutions lose the diversity.

IGA iterates these operations (2–5) until the user obtains a satisfied result or the number of iterations exceeds the predefined constant. The performance of IGA depends on the operators. There are many methods other than listed above (Koza 1992) (Fig. 1).
Fig. 1

The flowchart of typical IGA

Gene Expressions
IGA has many types of gene expressions as with GA (Back 1996). An individual has the genotype and phenotype. GA operators operate genotype, and the user evaluates phenotype. The following are typical genotype expressions:
  1. (a)

    Binary code: This method expresses genes as binary codes.

  2. (b)
    Gray code: This method expresses genes as the codes that maintain the difference of adjacent nodes at 1 bit, and it facilitates the local search. The following are the conversion equations of binary codes and gray codes, where k is the bit location and n is the most significant bit:
    $$ {g}_k = \left\{\begin{array}{c}\hfill {b}_n\hfill \\ {}\hfill {b}_{k+1} \oplus {b}_k\hfill \end{array}\right.\ \begin{array}{c}\hfill \left(k=n\right)\hfill \\ {}\hfill (otherwise)\hfill \end{array} $$
    $$ {b}_k = {\displaystyle \sum_{i=k}^n}{g}_i\left( mod\ 2\right) $$
  3. (c)

    String: This method expresses genes as strings. Mutation operator changes a gene element within the predefined character set.

  4. (d)
    Real number: Real-coded GA uses real numbers directly. The IGA that emphasizes continuous values uses this coding. It can generate children around the parents. However, real-coded GA needs the special crossover operators such as unimodal normal distribution crossover (UNDX). It generates children according to the normal distribution obtained from three parents (Ono et al. 2000) (Table 3).
    Table 3

    Typical genotype expressions


    Binary code

    Gray code


    Real number



























Parallel Distributed Interactive Genetic Algorithm

Miki et al. proposed parallel distributed interactive genetic algorithm (PDIGA) (Miki et al. 2003, 2006). Table 4 shows the pseudo-code for typical PDIGA. This algorithm extends IGA to parallel distributed model, optimizing solutions according to the multiuser preferences. It can generate the new solutions combined with other user evaluations, used in consensus building system. PDIGA inherits the performance of PDGA that can reduce the computation time and avoid the initial convergence of GA. PDGA connects each computer and runs IGA on those computers. PDIGA uses the migration that sends and receives the elite individual each user selected, incorporating other individuals.
Table 4

Pseudo-code for typical PDIGA


 generation = 0;

 create initial group of individuals;


  receive an elite individual;

  insert the elite individual into current group of individuals;

  fitness = USER (current group of individuals);

  send a new elite individual;

  IF user is satisfied THEN RETURN the best individual;

  i = 0;


   select two individuals based on fitness;

   perform crossover;

   perform mutation;

   insert two offspring into new group of individuals;

   i = i + 2;

  UNTIL i > predefined number of individuals;

  generation = generation + 1;

 UNTIL generation > predefined number of generations;


They also proposed global asynchronous distributed interactive genetic algorithm (GADIGA). It compiles the elite individuals in a database so that each computer can migrate them without synchronism. Each computer gets the elite individual from the database, incorporating it in own group of individuals.

Interactive Differential Evolution

Storn et al. proposed differential evolution (DE) that is a population-based descent method for numerical optimization (Storn et al. 1997). The following are specific advantages:
  1. 1.

    Completeness: It searches comprehensive optimized solution.

  2. 2.

    Efficiency: It needs a small number of times of evaluation.

Takagi et al. explained advantages to use DE for IEC as follows (Takagi et al. 2009):
  1. 1.

    The user can use the paired comparison evaluation.

  2. 2.

    It has a good convergence characteristic in a small population.

DE has some formats, and it expresses as DE/base/num/cross. The following are specific formats:
  1. (i)
    Base: The selection method of a base vector.
    • Rand: Select a vector from a parent group of individuals randomly.

    • Best: Select the best vector from a parent group of individuals. DE/best has better convergence performance than DE/rand. However, it needs parallel comparison of all individuals to select the best vector.

    • Gravity: Select a centrobaric vector from a parent group of individuals. DE/gravity has almost the same convergence performance as DE/best, and it needs not parallel comparison of all individuals (Funaki et al. 2011). However, the convergence performance will deteriorate if the centrobaric vector is quite different from the global optimum solution.

    • Moving: This selection method works with another selection method. It makes a moving vector that accumulates the difference between a target vector and trial vector, and it adds the moving vector to the base vector to accelerate the convergence performance.

  2. (ii)

    Num: The number of difference vectors.

  3. (iii)
    Cross: The crossover method of a target vector and trial vector.
    • Bin: Use the binomial crossover that performs a crossover with a fixed probability.

    • Exp: Use the exponential crossover that performs a crossover with the probability decreases in an exponential manner.

The user evaluates individuals in interactive differential evolution (IDE) as with IGA. Figure 2 illustrates the conceptual diagram and flowchart of IDE. The user selects the target vector or trial vector, and he/she repeats it until the number of evaluated target vectors exceeds the predefined number of individuals to obtain a next generation. IDE reduces the burden of user evaluation because it needs not parallel comparison of all individuals except for DE/best. However, the user needs to compare four individuals in the evaluation stage when used in combination with the moving vector. The user selects a vector from the target vector, trial vector, combination of target and moving vector, and combination of trial and moving vector in this case. In addition, Pei et al. reported that incorporating the opposition-based learning with IDE could improve the quality of group of individuals (Pei et al. 2013) (Table 5).
Fig. 2

The conceptual diagram and flowchart of IDE

Table 5

Pseudo-code for typical IDE/rand/1/bin

IDE ( )

 w = predefined weighting coefficient;

 generation = 0;

 create initial group of individuals;


  i = 0;


   x_i = select a target vector from current group of individuals;

   x_p1, x_p2 = select parameter vectors from current group of individuals randomly;

   x_b = select a base vector from current group of individuals randomly;

   x_m = x_b + w * (x_p1 – x_p2);

   x_new = make a trial vector from x_i and x_m by using binomial crossover;

   x_i = USER (x_i, x_new);

   IF user is satisfied THEN RETURN x_i;

   i = i + 1;

  UNTIL i > predefined number of individuals;

  generation = generation + 1;

 UNTIL generation > predefined number of generations;


Examples of the IEC Applications

Many researchers elaborate IEC applications, improving performance and extending application ranges. This section introduces some applications developed in recent years.

Web Page Design

Sorn et al. proposed the design system that generates a template for Web page interactively using IGA (Sorn et al. 2013). Although the work of creating and designing Web pages is increasing, they are time-consuming tasks. In addition, users have to learn the programming languages such as JavaScript and usages of authoring tools so that they can create the particular Web page. The proposed system evolves HTML and CSS based on the user preferences, and genes represent the layout expressing a location of navigation bar and styles such as font color and size. It displays ten Web pages as individuals in a generation, and the user gives ratings of one (good) to five (bad). Furthermore, the user can evaluate each section such as header and footer particularly so that the system reflects the specific user preferences.

Fashion Design

Mok et al. proposed the design system that generates a fashion sketch interactively using IGA (Mok et al. 2012). The design aid is useful for increasing productivity. The proposed system has a sketch design model describing the characteristics of the design, a database storing sketch design models, and a multistage sketch design engine that builds the final design. Mok et al. demonstrated the system making the skirts design. Genes represent the silhouette, shape, type of waist and hem, and decoration such as dart, yoke, pleat, panel, gathers, slit, and ruffles. The system generates initial population based on the waist level and skirt length the user decides at the beginning, and it evolves the skirt design.


Ghannem et al. proposed the design system that generates a sequence of refactoring interactively using IGA (Ghannem et al. 2013). Refactoring is a technique that restructures existing models such as class diagrams in a software development cycle, and it improves design quality while preserving its semantics. It is difficult to automate a complex refactoring and evaluate the quality and integrity of refactored models because it needs empirical rules. The proposed system incorporates feedback from users into the optimization processing, and it uses the first knowledge obtained from examples of refactoring and the second knowledge obtained from users. The system analyzes the similarities of examples and inserts the second knowledge interactively, and it displays applicable refactoring while optimizing a model. Genes represent the sequence of refactoring operations such as “pull-up method,” “rename attribute,” and “move attribute.” The system applies these operations to compose models and gets the evaluation the user scored using the five-level scale.

3D Motion

Akase et al. proposed the design system that generates a 3D motion of the Avatar interactively using IGA (Akase et al. 2012). Movies and computer games use 3D motions to make the motion of 3D characters. Generally, designers generate 3D motions using motion capture systems. However, it is difficult to create various 3D motions. The proposed system creates a unique 3D motion by considering a physical limitation. It combines the inverse kinematics with IGA to reduce the variables required for motion optimization, reducing the burden of user evaluation effort. The system optimizes the trajectory of end effectors instead of the joint angles. Genes represent the traveling sequences in common with the gene expression of traveling salesman problem. As with the feature Sorn et al. introduced, the user can evaluate each body part such as the head, arms, and legs particularly so that the system reflects the specific user preferences.

Layout Generation

This section introduces the methodologies to create the interactive 3D layout generation system.

Automatic Layout Generation Based on the Constraints

In recent years, designers create city design and room layout in a virtual world. For example, “City Engine” can create cities including street layouts and buildings automatically. Parish and Muller proposed this system, and they use a procedural approach based on l-systems to model cities (Parish et al. 2001).

The layout work for 3D virtual rooms takes a long time because 3D objects have six degrees of freedom. In addition, 3D furniture objects have furniture-specific features. For instance, TV needs some space for its watchers to watch, and desk and chair need pairs generally. These features are associated with ergonomic design. Akazawa et al. proposed a system that generates 3D scene automatically based on contact constraints (Akazawa et al. 2005, 2006). The proposed system makes scenes by using a semantic database. The following are specific attributes of the semantic database:
  1. 1.

    Face: Indicate the surface number of bounding box wrapping the 3D furniture object.

  2. 2.

    Occupancy distance: Indicate the minimum distance not to touch other objects.

  3. 3.

    Parent: Indicate the parent objects.

  4. 4.

    Constraint: Indicate whether a face should touch a certain face of other object or not.

  5. 5.

    Inside component: Indicate the objects placed inside the object.

  6. 6.

    Connection width: Indicate the width number of objects to place them in the rectangular area.

  7. 7.

    Connection depth: Indicate the depth number of objects to place them in the rectangular area.

  8. 8.

    Connection face: Indicate which faces of the bounding box are connectable.

  9. 9.

    Raito: Indicate the ratio of the number of objects in a width direction to the number of objects in a depth direction.

Similarly, Lap-Fai et al. proposed automatic 3D layout systems based on ergonomics constraints (Lap-Fai et al. 2011). They defined ergonomics as follows:
  1. 1.
    Accessibility: Maintain the space for furniture to perform a basic furniture function.
    • For example, bookcases need extra space for books.

  2. 2.
    Visibility: Maintain the sight for human to look viewing surfaces.
    • For example, other objects should not block a television.

  3. 3.
    Pairwise relationship: Maintain the semantic compatibility between objects.
    • For example, place a desk and chair in pairs.

Their system executes the following processes to arrange many objects:
  1. (a)

    Create relationships between one object and the other: System learns relationships from preliminarily ordered 3D layout.

  2. (b)

    Optimize the layout: Minimize the number of inappropriate objects that violate the ergonomics constraint using simulated annealing.


Interactive Layout Generation Using the Language and the Real-World Information

Calderon et al. proposed the interactive furniture placement system using the constraint logic programming (Calderon et al. 2003). The user can obtain knowledge and skills of the room layout design by using the system. Similarly, Coyne et al. developed Words Eye that generates 3D scenes using the natural language (Coyne et al. 2001). Words Eye parses several sentences to extract the object information and tags the corresponding label, and it depicts a 3D scene from 2000 shape data and 3D texts.

Alternatively, several studies use a 3D scanner and an RGBD camera to make 3D scene data from the real-world scene information. For instance, Nan et al. and Kim et al. proposed a new method that makes 3D scenes using a 3D scanner (Kim et al. 2012; Nan et al. 2012). In addition, Shao et al. developed the system that searches similar 3D shapes from a database using RGBD camera, making the 3D scenes using them (Shao et al. 2012).

Interactive Layout Generation Using IEC

Color Design

Miki et al. proposed the office design system that uses PDIGA (Miki et al. 2003). The system optimizes the color of office equipment and supplies such as partitions, carpets, tables, personal computers, and chairs. Genes represent the continuous-valued hue and tone, and the system employs the real-coded GA method. The user evaluates the presented color pattern in terms of the preference and a style that suits the working environment using the five-level scale.

Floor Layout

Garcia et al. proposed the IGA-based system that generates the floor layouts of an ovine slaughterhouse and recycling carton plant incorporating the knowledge of expert designer and preference of the user (Garcia et al. 2013). The system uses the flexible bay structure that manages the floor layouts by dividing floor into bay. Genes represent the equipment number used to specify an equipment location and the position of a bay.

3D Room Layout

Akase et al. proposed the IGA-based system that generates the 3D room layouts by a combination of parent-child relationships (Akase et al. 2013, 2014). The system saves the combinations to the database as with the system Akazawa et al. proposed. Table 6 explains the build process of combinations, and Table 7 shows the build process of room layouts. Genes represent the combination index called “pattern number.” Figure 3 illustrates an example of gene sequences, and Fig. 4 indicates a part of evolving process in order of top left to bottom right. It optimizes 3D room layouts based on user evaluations.
Table 6

The build process of combinations

maximum_number_of_furniture_objects = 37;

maximum_number_of_patterns = 8;


makePatternNumbers ( )

 i = 0;


  object_i = select a furniture objects;

  pattern = {};

  //The system uses this number for genes

  pattern_number = 0;


   //designer’s task

   pattern.parent = select a parent object;

   //designer’s task

   pattern.relative_distance = set a relative_distance;

   //designer’s task

   pattern.relative_angle = set a relative_angle;

   patterns[i][pattern_number] = pattern;

   pattern_number = pattern_number ± 1;

  UNTIL pattern_number > maximum_number_of_patterns;

  i = i + 1;

 UNTIL i > = maximum_number_of_furniture_objects;


Table 7

The build process of room layout

maximum_number_of_furniture_objects = 37;

//idx is the index number of an individual

gene_sequences[idx] [maximum_number_of_furniture_objects];

placeObjects (gene_sequences, patterns)

 i = 0;


  //select a pattern number (gene element) from a gene sequence

  pattern_number = gene_sequences[idx] [i];

  //get a pattern data

  pattern = patterns[i] [pattern_number];

  //The root parent is “Room”

  IF pattern.parent is not placed THEN

   i = i + 1;



  //place a target object_i

  object_i.position = pattern.parent.position + pattern.relative_distance;

  object_i.rotation = pattern.parent.rotation + pattern.relative_angle;

  i = i + 1;

  IF i > maximum_number_of_furniture_objects THEN

   i = 0;


 UNTIL all objects are placed;


Fig. 3

An example of gene sequences

Fig. 4

A part of evolving process in order of top left to bottom right

Quantitative Evaluation Techniques and Problems of the IEC-Based Systems

Quantitative Evaluation of the IEC-Based Systems

It is difficult to measure performance of the IEC-based system in a quantitative way because it includes the subjectivity of users. Many studies perform a perceptual study using actual users to receive a questionnaire about the usability and logs of fitness, and they evaluate the usefulness of the IEC-based system applying a statistical test to them. The following are specific assessment procedures:
  1. 1.

    Set the goal individual (concept) users should create.

  2. 2.
    Conduct the experimental tests using actual users.
    1. (A)

      Create the goal individual using an authoring tool manually.

    2. (B)

      Create the goal individual using the IEC-based system interactively.

  3. 3.

    Subjects select A or B that let them create the goal individual easily.

  4. 4.

    Calculate statistically significant difference between A and B.

Takagi et al. proposed a performance evaluation method for IEC algorithms (Takagi et al. 2009). It represents a psychological peculiarity of an IEC user using a mixture Gaussian function consisting of four Gaussian functions. The following are specific function and parameters, where n is the dimension number (Fig. 5):
Fig. 5

Mixture Gaussian function

$$ \mathrm{f}\ \left(\ {x}_1, \dots,\ {x}_n\right) = {\displaystyle {\sum}_{i=1}^4{a}_i \exp \left(-{\displaystyle {\sum}_{j=1}^n\frac{{\left(\ {x}_{ij} - {\mu}_{ij}\ \right)}^2}{2\ {\sigma}_{ij}^2}}\right)} $$
$$ \mathrm{a} = \left(\begin{array}{c}\hfill 3.1\hfill \\ {}\hfill 3.4\hfill \\ {}\hfill 4.1\hfill \\ {}\hfill 3\hfill \end{array}\right),\ \upmu = \left(\begin{array}{cccccccccc}\hfill -1\hfill & \hfill 1.5\hfill & \hfill -2\hfill & \hfill -2.5\hfill & \hfill -1\hfill & \hfill 1.5\hfill & \hfill -2\hfill & \hfill -2.5\hfill & \hfill -1\hfill & \hfill 1.5\hfill \\ {}\hfill 0\hfill & \hfill -2\hfill & \hfill 3\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill -2\hfill & \hfill 3\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill -2\hfill \\ {}\hfill -2.5\hfill & \hfill -2\hfill & \hfill 1.5\hfill & \hfill 3.5\hfill & \hfill -2.5\hfill & \hfill -2\hfill & \hfill 1.5\hfill & \hfill 3.5\hfill & \hfill -2.5\hfill & \hfill -2\hfill \\ {}\hfill -2\hfill & \hfill 1\hfill & \hfill -1\hfill & \hfill 3\hfill & \hfill -2\hfill & \hfill 1\hfill & \hfill -1\hfill & \hfill 3\hfill & \hfill -2\hfill & \hfill 1\hfill \end{array}\right) $$
$$ \upsigma = \left(\begin{array}{cccccccccc}\hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill & \hfill 1.5\hfill \\ {}\hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill \\ {}\hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill \\ {}\hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill & \hfill 2\hfill \end{array}\right) $$

Problems of the IEC-Based Systems

The maximum limit both of the number of individuals and generations is around 10–20 due to a burden of the user evaluation effort in the IEC-based systems (Takagi 2001; Takagi et al. 2009). Therefore, developers have to consider the following:
  1. 1.
    Improve the convergence speed of group of individuals.
    • In general, it depends on an evolutionary computing algorithm.

  2. 2.
    Support the user evaluation effort.
    • Improve the IEC user interface and evaluation method.

    • Incorporate an agent that predicts the fitness based on the characteristics of IEC users.


The effective algorithms such as PDIGA, IDE, and their derived type are addressing the first problem as the previous section explained. This section introduces some support methods to reduce a burden of the user evaluation.

Improvement of the IEC User Interface

The system Garcia et al. proposed clusters individuals, and it displays some representative individuals to the user at least in the early generations (Garcia et al. 2013). It employed the fuzzy c-means clustering algorithm (FCM) Bezdek et al. proposed (Bezdek et al. 1984). Each individual can belong to some clusters because the FCM allows overlapping of clusters. This feature can help the user evaluation because the individuals that the user did not evaluate can get scores from evaluated individuals belonging to a same cluster.

Analysis of the Characteristics of IEC Users

The system Akase et al. proposed analyzes user preferences using a conjoint analysis so that it can support user evaluations and reflect user preferences effectively (Akase et al. 2014). The conjoint analysis is an experimental design method that gets user evaluation values from some rendering and returns the characteristics of users. Tables 8 and 9 and Fig. 6 explain the procedures of the proposed system. The system generates offspring around the elite individual selected by the conjoint analysis. In addition, the individual that fits the potential user preference analyzed by the conjoint analysis gets an additional score from the system automatically. These features can accelerate the convergence speed.
Table 8

The procedure of proposed system

MAIN ( )

p = predefined weighting coefficient;

priorities, elite = CONJOINT_ANALYSIS ();

 generation = 0;

 create initial group of individuals;


  //Function C checks the constraints associated with priorities

  fitness = (1 – p) * priorities * C (current group of individuals)

   ± p * USER (current group of individuals);

  IF user is satisfied THEN RETURN the best individual;

  i = 0;


   select two individuals based on fitness;

   //maintain upper two individuals

   apply elitist selection;

   //produce new two individuals

   perform crossover;

   //produce new two individuals based on the elite individual

   perform crossover with elite;

   perform mutation;

   insert six offspring into new group of individuals;

   i = i + 6;

  UNTIL i > predefined number of individuals;

  generation = generation + 1;

 UNTIL generation > predefined number of generations;


Table 9

The procedure of conjoint analysis


 cards = predefined renderings;


  scores = USER (subset of cards);

  averages = calculate_average (subset of cards, scores);

  deviations = calculate_sum_of_squared_deviation (subset of cards, scores, averages);

  products = calculate_sum_of_products (subset of cards, scores, averages);

  solution = solve_system_of_equations (deviations, products);

  priorities = calculate_priority (solution);

  expectancies = calculate_expectancy (cards, solution);

  elite_individual = select_best_card (cards, expectancies);

  precision = check_precision (scores, expectancies);

 UNTIL precision > = 0.5;

 RETURN priorities, elite_individual;


Fig. 6

The flowchart of proposed system


This entry introduced the typical IEC algorithms, generation methods of layout, and recent IEC applications. In addition, it indicated the problems of the IEC-based systems and some solutions for future directions. Although the burden of the user evaluation to optimize complex contents such as 3D room layout that has many parameters is a problem, many researchers are addressing it. An IEC-based authoring tool could be a practical product if they resolved the problem completely.



  1. Akase, R., Nishino, H., Kagawa, T., Utsumiya, K., Okada, Y.: An avatar motion generation method based on inverse kinematics and interactive evolutionary computation. Proc. of the 4th Int. Workshop on Virtual Environment and Network Oriented Applications (VENOA-2012) of CISIS-2012, pp. 741–746. IEEE CS Press (2012)Google Scholar
  2. Akase, R., Okada, Y.: Automatic 3D furniture layout based on interactive evolutionary computation. Proc. of the 5th Int. Workshop on Virtual Environment and Network Oriented Applications of CISIS-2013, pp. 726–731. IEEE CS Press (2013)Google Scholar
  3. Akase, R., Okada, Y.: Web-based multiuser 3D room layout system using inter- active evolutionary computation with conjoint analysis. The 7th Int. Symposium on Visual Information Communication and Interaction (VINCI-2014), pp. 178–187. ACM Press (2014)Google Scholar
  4. Akazawa, Y., Okada, Y., Niijima, K.: Automatic 3D scene generation based on contact constraints. Proc. Conf. on Computer Graphics and Artificial Intelligence, pp. 593–598. (2005)Google Scholar
  5. Akazawa, Y., Okada, Y., Niijima, K.: Interactive learning interface for automatic 3D scene generation. Proc. of 7th Int. Conf. on Intelligent Games and Simulation, pp. 30–35. (2006)Google Scholar
  6. Back, T.: Evolutionary Algorithms in Theory and Practice. Oxford University Press, New York (1996)Google Scholar
  7. Bentley, P.: Evolutionary Design by Computers, pp. 1–73. Morgan Kaufmann, San Francisco (1999)zbMATHGoogle Scholar
  8. Bezdek, J.C., Ehrlich, R., Full, W.: FCM: The fuzzy c-means clustering algorithm. Comput. Geosci. 10, 191–203 (1984)CrossRefGoogle Scholar
  9. Calderon, C., Cavazza, M. Diaz, D.: A new approach to virtual design for spatial configuration problems. Proceedings. Seventh International Conference on Information Visualization, pp. 518–523. (2003)Google Scholar
  10. Coyne, B., Sproat, R.: Words eye: An automatic text-to-scene conversion system, ACM SIGGRAPH 2001. Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques, pp. 487–496. (2001)Google Scholar
  11. Dawkins, R.: The Blind Watchmaker. W.W. Norton, New York (1986)Google Scholar
  12. Funaki, R., Takagi, H.: Application of gravity vectors and moving vectors for the acceleration of both differential evolution and interactive differential evolution. Int. Conf. on Genetic and Evolutionary Computing (ICGEC), pp. 287–290. (2011)Google Scholar
  13. Garcia, H.L., Arauzo, A.A., Salas, M.L., Pierreval, H., Corchado, E.: Facility layout design using a multi-objective interactive genetic algorithm to support the DM, Expert Systems, pp. 1–14. (2013)Google Scholar
  14. Ghannem, A., Ghizlane, B., Marouane, K.: Model Refactoring Using Interactive Genetic Algorithm, Search Based Software Engineering, pp. 96–110. Springer, Berlin (2013)CrossRefGoogle Scholar
  15. Kim, Y., Mitra, N., Yan, D., Guibas, L.: Acquiring 3D indoor environments with variability and repetition. ACM Trans. Graph. 31(6), 138 (2012)CrossRefGoogle Scholar
  16. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection, vol. 1. MIT press, Cambridge (1992)Google Scholar
  17. Lap-Fai, Y., Sai-Kit, Y., Chi-Keung, T., Demetri, T., Tony, F.C., Stanley, O.: Make it home: Automatic optimization of furniture arrangement. ACM Trans. Graph. 30(4), 86 (2011)Google Scholar
  18. Miki, M., Hiroyasu, T., Tomioka, H.: Parallel distributed interactive genetic algorithm. Proc. Jpn. Soc. Mech. Eng. Des. Syst. Conf. 13, 140–143 (2003)Google Scholar
  19. Miki, M., Yamamoto, Y., Wake, S., Hiroyasu, T.: Global asynchronous distributed interactive genetic algorithm. In: Systems, Man and Cybernetics. IEEE International Conference on, vol. 4, pp. 3481–3485. IEEE, Taipei (2006)Google Scholar
  20. Mok, T.P., Wang, X.X., Xu, J., Kwok, Y.L.: Fashion sketch design by inter- active genetic algorithms. AIP Conference Proceedings, pp. 357–364. (2012)Google Scholar
  21. Nan, L., Xie, K., Sharf, A.: A search-classify approach for cluttered indoor scene understanding. ACM Trans. Graph. 31(6), 137 (2012)CrossRefGoogle Scholar
  22. Ono, I., Kobayashi, S., Yoshida, K.: Optimal lens design by real-coded genetic algorithms using UNDX. Comput. Methods Appl. Mech. Eng. 186(2), 483–497 (2000)CrossRefzbMATHGoogle Scholar
  23. Parish, Y., Muller, P.: Procedural modeling of cities. Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques, pp. 301–308. ACM (2001)Google Scholar
  24. Pei, Y., Takagi, H.: Triple and quadruple comparison-based interactive differential evolution and differential evolution. In: Proceedings of the Twelfth Workshop on Foundations of Genetic Algorithms XII, pp. 173–182. ACM, Australia (2013)Google Scholar
  25. Shao, T., et al.: An interactive approach to semantic modeling of indoor scenes with an RGBD camera. ACM Trans. Graph. 31(6), 136 (2012)CrossRefGoogle Scholar
  26. Sorn, D., Sunisa, R.: Web page template design using interactive genetic algorithm. In: Computer Science and Engineering Conference (ICSEC). 2013 International, IEEE, pp. 206–211. (2013)Google Scholar
  27. Storn, R., Price, K.: Differential evolution – a simple and efficient heuristic for global optimization over continuous spaces. J. Glob. Optim. 11(4), 341–359 (1997)CrossRefMathSciNetzbMATHGoogle Scholar
  28. Takagi, H.: Perspective on interactive evolutionary computing. J. Jpn. Soc. Artif. Intell. 13(5), 692–703 (1998)Google Scholar
  29. Takagi, H.: Interactive evolutionary computation: Fusion of the capabilities of EC optimization and human evaluation. Proc. IEEE 89(9), 1275–1296 (2001)CrossRefGoogle Scholar
  30. Takagi, H., Pallez, D.: Paired Comparison Based Interactive Differential Evolution, Nature and Biologically Inspired Computing. pp. 475–480. India (2009)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Graduate School of Information Science and Electrical EngineeringKyushu UniversityFukuokaJapan
  2. 2.Innovation Center for Educational ResourceKyushu UniversityFukuokaJapan