Generative Design Primer
  • Welcome
  • Introduction to Generative Design
    • Computational Design
    • Generative Design
      • What is Generative Design?
      • Why should I use Generative Design?
      • What goes into a Generative Design Process?
        • Anatomy of each stage
      • Examples of Generative Design
        • MaRs Innovation District of Toronto
        • Furniture Design
        • A Further Analogy
      • Anatomy of a Good Generative Design Process
    • Visual Programming
    • Dynamo
    • Generative Design for Revit and Dynamo
  • Deeper Dive to Generative Design
    • Algorithms
      • What are Algorithms?
      • Generators
      • Evaluators
      • Solvers
    • Optioneering
    • Optimization
      • What is Optimization?
      • Objective Function
      • Constraints
      • Data
      • Defining Goals
    • Genetic Algorithms
      • What is a Genetic Algorithm?
      • Initialization phase
      • Evaluation Phase
      • Selection Phase
      • Crossover Phase
      • Mutation Phase
    • Other Techniques
    • Genetic Algorithm Q&A
  • Hello Generative Design for Revit and Dynamo!
    • Installing Generative Design
    • Setting up a Graph for Generative Design
    • Running Generative Design
    • Visualizing Results in Generative Design
    • Refinery Toolkit
      • Installing the Refinery Toolkit from the Dynamo Package Manager
      • Using the Refinery Toolkit
    • Space Analysis for Dynamo
      • Installing the Space Analysis for Dynamo package from the Dynamo Package Manager
      • Using the Space Analysis Package
    • Using Revit alongside Generative Design
      • Using Data from Revit
      • Remember Node Inputs
      • How to Test Revit Data Capture
      • Detailed Example Workflow
      • Sharing Logic and Results
      • Current Limitations
      • Accessing Generative Design Directly From Revit
  • Sample Workflows
    • Getting Started Workflows
      • Highest Point of a Surface
      • Minimum Volume and Maximum Surface
    • Architectural Workflows
      • Building Mass Generator
      • Building Positioning based on Solar Analysis
      • Office Layout
      • Grid Object Placement in a Room
      • Entourage Placement Exploration
    • MEP Workflows
      • Distributing Spotlights in an Office Space
    • Structural Workflows
    • BIM Workflows
      • Placement of views on sheets
    • Community Examples
      • Guidelines
      • List Of Examples
  • Generative Design in Your Office
    • What Generative Design Can Be Used For?
    • What Generative Design Can’t Be Used For?
    • How to Convince Senior Stakeholders of Using Generative Design?
    • The Role of a Generative Designer
    • Hiring a Generative Designer
  • Next Steps
    • Machine Learning
      • What is Machine Learning?
      • Is Generative Design Machine Learning?
      • Can Machine Learning and Generative Design Work Together?
  • Appendix
    • Glossary
    • Reference Material
    • Need Professional Help?
Powered by GitBook
On this page

Was this helpful?

  1. Deeper Dive to Generative Design
  2. Genetic Algorithms

Evaluation Phase

PreviousInitialization phaseNextSelection Phase

Last updated 5 years ago

Was this helpful?

What Do You Mean by ‘Fitness’?

A 'fitness' function is essentially the objective function for the genetic algorithm - it's the thing you want to maximize or minimize as you develop your design; the thing you care most about achieving overall.

A fitness function is used to evaluate how close (or far off) a given design solution is from meeting the designer’s goals.

The genetic algorithm is designed to improve the model's fitness again and again, so defining a fitness function precisely and accurately is vital.

Some examples of fitness functions that could be used in a generative design context include:

  • 'Maximize hours of daylight for each desk in an office'.

  • 'Maximize circulation in common areas'.

  • 'Minimize number of distinct part types needed to assemble an object'.

  • 'Minimize number of total parts needed to assemble an object'.

  • 'Maximize the structural strength of a critical component in a product'.

  • 'Minimize the fuel needed to power a vehicle'.

  • 'Minimize the weight of a design'.

You can see here that these suggestions are always framed as either a maximization or minimization problem. As discussed above, this formulation is crucial for an optimization approach to be effective.

Another thing to consider is that it's desirable for fitness functions to be calculated very efficiently by a computer; that is, a good fitness function can be calculated quickly. With experience, a user comes to learn which kinds of fitness functions are likely to be particularly fast or slow.

One of the great strengths of a genetic approach is that the fitness function can be quite complicated without impacting the genetic algorithm's ability to execute.

In fact, a single genetic model can have multiple competing fitness functions for example, minimizing the weight of a design while also making it as structurally sound as possible (this is also known as 'multi-objective optimization').

Only once a fitness function has been defined can the selection phase of a genetic algorithm begin.