Marcin Kosicki AAC Thesis

108
Integrating Supervised Data Mining into Performance Oriented Design Marcin Kosicki This dissertation is submitted in partial fulfillment of the requirements for the degree of Master of Science in Adaptive Architecture and Computation from University College London. September 2015 University College London The Bartlett School of Graduate Studies MSc Adaptive Architecture & Computation A genetic programming approach to extracting design information from solar radiation simulation

description

Integrating Supervised Data Mining into Performance Oriented Design: A genetic programming approach to extracting design information from solar radiation simulation

Transcript of Marcin Kosicki AAC Thesis

Page 1: Marcin Kosicki AAC Thesis

Integrating Supervised Data Mining

into Performance Oriented Design

Marcin Kosicki

This dissertation is submitted in partial fulfi llment of the requirements for the degree of Master of Science in Adaptive Architecture and Computation from University College London.

September 2015

University College LondonThe Bartlett School of Graduate Studies

MSc Adaptive Architecture & Computation

A genetic programming approach to extracting design information from solar radiation simulation

Page 2: Marcin Kosicki AAC Thesis

2 Integrating Supervised Data Mining into Performance Oriented Design

I, Marcin Kosicki confi rm that the work presented in this thesis is my own. Where information has been derived from other sources, I confi rm that this has been indicated in the thesis.

Marcin Kosici

Page 3: Marcin Kosicki AAC Thesis

3Marcin Kosicki AAC 2015

ABSTRACT

Current shift in architecture emphases the importance of widely understood building’s performance as a key guiding design criteria. The spectrum of performance evaluations has been enriched by the ability to support their estimations computationally based on early numeric evaluations, but its full potential has not been reached yet, due to lack of interoperability between various software platforms; computational power required for a systematic evaluation of each instance in a population based optimisation heuristics; and lack of methods for accumulating case specifi c, design knowledge and reusing it.

This thesis attempts to address these issues by using Knowledge Discovery techniques form the fi eld of Supervised Data Mining to uncover patterns between design parameters and performance values and change them into usable knowledge. The method use a Genetic Programming algorithm which performs symbolic regression to express total, passive, solar radiation of a given parametric model of building’s envelope as an analytical function of the model’s input parameters. Several models, that have diff erent levels of complexity are tested and error rates of developed functions are measured. The results show that the proposed technique give signifi cant trade-off between speed and accuracy and can be widely used in the context of potential design applications effi ciently replacing time consuming digital simulations as a fi tness criteria in a population based optimisation algorithms

Keywords:Performance, optimisation, knowledge discovery, supervised data mining, genetic programming, symbolic regression, building envelope, architecture.

Word Count: 10,172

Page 4: Marcin Kosicki AAC Thesis

4 Integrating Supervised Data Mining into Performance Oriented Design

ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3TABLE OF CONTENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4TABLE OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6ACKNOWLEDGEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8BACKGROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Design Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Solution spaces exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Performance oriented design - case studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Genetic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

METHODOLOGY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Data Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Parametric Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23NURBS Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Performance Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Knowledge Extraction - Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

RESULTS AND FINDINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Data Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361-Dimensional Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372-Dimensional Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393-Dimensional Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419-Dimensional Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4316-Dimensional Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4525-Dimensional Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

CRITICAL ASSESSMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49CONCLUSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52APPENDIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

1D Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562D Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643D Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669D Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6716D Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

TABLE OF CONTENTS

Page 5: Marcin Kosicki AAC Thesis

5Marcin Kosicki AAC 2015

25D Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Uniform Distribution Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Parametric Model Source Code - Face . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Parametric Model Source Code - Face . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Total Solar Radiation Solver Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83GP Source Code - Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87GP Source Code - Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88History Saver Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Sample Sets Generator Result Verifi cation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Sample Sets Generator Result Verifi cation - Main . . . . . . . . . . . . . . . . . . . . . . . . . . . 99GP Result to Solar Interpreter - Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Data Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Linear Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Radar Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Page 6: Marcin Kosicki AAC Thesis

6 Integrating Supervised Data Mining into Performance Oriented Design

Figrue 1. Wicked Problems [Sean Hanna unpublished] . . . . . . . . . . . . . . . . . . . . . . . . . 10Figrue 2. Graphical summary of computaional methods in sustaiable buidling design. [Ralph Evins 2013] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Figrue 4. Area of buidling design & Design Objectives [Ralph Evins 2013] . . . . . . . . . . 12Figrue 3. Optimisation methods [Ralph Evins 2013] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Figrue 5. SolSt Design Methodology (Turrin et al., 2011). . . . . . . . . . . . . . . . . . . . . . . . . 14Figrue 6. Set out fi le, generated geometry and results on the parametric model (Chronis et al. 2012) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Figrue 7. Solar radiation results database (Chronis et al. 2012) . . . . . . . . . . . . . . . . . . . 15Figrue 8. Classifi cation vs Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Figure 9. Knowledge Extraction Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figure 10. Knowledge Extraction Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Figure 11. Sample population. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Figure 12. Uniform Distribiution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Figrue 13. Genration of Instanices by the Parmetric Model form sampled data. . . . . . 24Figure 14. Parametric Model Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figure 15. Sun Positions (Roudsari, 2013) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Figure 16. Solar Radiation Symulation Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figure 17. 1D-Symbolic Regression [Eggermont 2005]. . . . . . . . . . . . . . . . . . . . . . . . . . 30Figure 18. Symbolic Regression in the context of proposed methodology. . . . . . . . . . 30Figure 19. The Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Figure 20. Genetic Programing Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Figure 21. Fitness Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Figure 22. GP Genetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figure 23. 1-D experiment statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Figure 24. 1-D verifi cation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Figure 25. 2-D experiment statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Figure 26. 2-D verifi cation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Figure 27. 3-D experiment statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Figure 28. 3-D verifi cation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figure 29. 9-D experiment statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Figure 30. 9-D verifi cation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Figure 31. 16-D experiment statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Figure 32. 16-D verifi cation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Figure 33. 25-D experiment statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Figure 34. 25-D verifi cation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Figure 35. Summary of the experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

TABLE OF FIGURES

Page 7: Marcin Kosicki AAC Thesis

7Marcin Kosicki AAC 2015

I would like to express my gratitude to my supervisor:Sean Hanna for his valuable support and guidance throughout the process of this thesis.

I would also like to express my deepest thanks to:Seda Zirek for technical support. I also want to thank:Martha Tsigari, Angelos Chronis and Ava Fatah gen. Schieck for their teaching.

ACKNOWLEDGEMENTS

Page 8: Marcin Kosicki AAC Thesis

8 Integrating Supervised Data Mining into Performance Oriented Design

INTRODUCTION

The growing demand for making buildings more and more green and sustainable facilitated the implementation of computational methods in architectural design process. The application of sophisticated and effi cient search heuristics in combination with numerical, performance evaluations, facilitated generation of solutions that perform well under imposed set of constraints. However, the optimisation methods, successful in aerospace and automobile industry, aiming at the production of the most fi t individuals, do not fully refl ect the nature of the preliminary design in architecture. Current applications tackle certain problems analytically but lack methods of accumulating case specifi c, design knowledge and taking advantage out of it.

In order to answer that question an multidisciplinary approach derived from Artifi cial Intelligence is adopted. The paper propose to use a Genetic Programming (Koza 1992), an evolutionary algorithm-based methodology to uncover patterns in design data and turning them into reusable knowledge. GP is a subset of Genetic Algorithms, inspired by biological evolution, to fi nd computer programs that perform a user-defi ned task. The application of GP in the context of data mining will allow architects to change the way they approach early performance simulations in the preliminary design stage. An effi cient way to construct models that approximate simulations’ outcomes can help to uncover underlying performance trends. The ability to extract design-specifi c knowledge can be benefi cial as it can be used as feedback for the overall design process as well as for creation and exploration of additional concepts.

The aim of this paper is to describe an automated method that use supervised data mining technique to express total solar radiation of a given parametric model as an analytical function of the model’s input parameters. The research is focused on the relationship between the complexity of the models an the accuracy of developed functions in the context of potential design applications. The report will start with an introduction to the nature of preliminary design followed by a comparison between traditional and performance oriented design in order to explain the paradigm shift in architecture along with its consequences. Then a summary of the current state of the art applications of both current optimisation trends in architecture and data mining techniques will be presented. The brief is supported by the review of distinctive works illustrating diff erent approaches. Upon that the methodology developed for this research will be comprehensively explained followed by the fi ndings of the research, discussed in respect with the aims set.

“The goal is to turn data into information, and information into insight.” – Carly Fiorina, former executive, president, and chair of Hewlett-Packard Co. (Fiorina, 2004)

Page 9: Marcin Kosicki AAC Thesis

9Marcin Kosicki AAC 2015

Design MethodologyDesign is a process in which a detailed description of an object that fulfi ls certain design objectives is developed. The signifi cance of the preliminary design can be exemplifi ed by the research in product design that revealed that about 80% of the life-cycle cost of an artefact is determined by its design (Duff y et al. 1993) of which 75% is established at the conceptual stage (Wang 2001). Therefore a poor concept can not be compensated in a later phase (Wang 2002) even by detail design (Chong et al. 2009). According to O’Sullivan (2002) the conceptual design phase begins when a designer takes a future product’s specifi cation (its requirements and design objectives) and creates a statement. Initially it is incomplete and open to further modifi cations but it acts as catalyst for synthesising conceptual alternatives. In the next stage the alternatives are rated based on preliminary analysis in order to select feasible concepts to be developed into more clearly defi ned proposals on later stages (Pahl et al. 2007). The initial description of the design artefact, the design statement and process objectives often change and evolve from an abstract defi nition toward assessable criteria (Langen and Brazier 2006). Therefore one has to consider vague nature of the design solution space especially in its initial stage.

Architectural design is a process where numerous factors and disciplines convergence toward a design solution. Its interdisciplinary refers to the exceptionally large range of domains with their own requirements that need to be satisfi ed. Fore every project social, fi nancial, artistic, or engineering problems create a vast network of interconnected dependancies. Additionally dynamic nature of the context, including changing needs, demands and environmental conditions adds uniqueness to every architectural challenge. These phenomena was formally described as a wicked problem by Rittle and Webber (1973) (Figure 1). Architectural design is the wicked problem because it is always the kind of task that has incomplete, contradictory, and changing requirements that are often diffi cult to recognise. The process includes dynamic factors like ill-defi ned brief, new site, diff erent team and subcontractors and many more. It produces unknown solutions, with far-reaching consequences. It celery shows that architectural design is fundamentally diff erent form optimisation challenges known form aerospace or car industry. To tackle with this ambiguity Turrin et al. points out (2010) that traditional conceptual design in architecture focuses on only a rather limited, customary chosen set of requirements, while other key disciplines are usually completely left out and postponed. It is due to a vast amount of data that needs to be analysed in order to defi ne and assess the range of performance requirements which is a major issue. Usually the initial creation

BACKGROUND

Page 10: Marcin Kosicki AAC Thesis

10 Integrating Supervised Data Mining into Performance Oriented Design

process, focuses on a limited range of domains, addresses the form mainly for soft issues regarding to visual and functional aspects. That is way architecture is traditionally formed and therefore perceived as plastic art designed by physical manipulation of a plastic medium, often in three dimensions or by two-dimensional drawings. The process usually postpones the realisation of engineering requirements to the next stage.

In opposition to the over-mentioned methodology, the idea of performance oriented (or performative) architecture has recently come into view. That phenomena stands for a paradigm shift in which, widely understood performance of a building, becomes a key guiding criteria (Kolarevic 2003). It enriches the spectrum of performance analysis at the preliminary stage by, supporting their estimations computationally based on early, numeric evaluations (Becker 1999). It is possible due to aff ordance of relatively fast and cheap computers for both architectural and university studios. By adopting aforementioned approach both the level of interdisciplinary and complexity at the preliminary design stage naturally rise. Because of versatile domains involved architectural geometry is given a new key role in the process as a common denominator that brings various fi elds together. Architectural geometry can integrate a wide number of performance evaluations and incorporate engineering aspects on early phases of the design. By doing that architects aim to handle both objective and ill-defi ned problems as well as measurable and un-measurable (or diffi cult to measure) criteria. In order to create a geometric model that can fulfi l that criteria architects instead of developing the geometry of solid forms (as in standard CAD software that essentially is a digital incarnation of a traditional plastic medium or 2D drawing) should work on the geometry of relationships. In that approach designers are expected to provide the information of a higher level order, a kind of metadata, which controls the creation of a desired form. The concept was described as ‘soft modelling’ by John Frazer (1987) and evolved into what is called today parametric modelling.

“wicked problems” e.g. architecture, planning

ill-defined brief

changing team

new site

unknown supply

etc

unique solution unknown, far-reaching consequences

optimisation problems e.g. automotive, aerospace

constrained brief

known, integrated

process

unique solution unknown consequences

Figrue 1. Wicked Problems [Sean Hanna unpublished]

Page 11: Marcin Kosicki AAC Thesis

11Marcin Kosicki AAC 2015

Solution spaces explorationConstructing a proper parametric model that resembles a custom design problem can benefi t with a feasible solution space. It enables a generation of a large set of design alternatives but it does not automatically lead to eff ective reinforcement of performance oriented design. As mentioned by Aish and Woodbury (2007) a great challenge lies in exploring families of designs generated by parametric models. It is due to the fact that the search need to be undertaken for both instances that fulfi l the traditional vague criteria and for basis underlying the performance trends. The ability to extract design-specifi c knowledge can be benefi cial as it can be used as feedback for the overall design process as well as for creation and exploration of additional parameters. The combination of search heuristics known form computer science, parametric modelling and its performance evaluations allows to methodically and systematically fi nd out better performing solutions.

The most straight forward exploration approach called an exhaustive stands for automated generation of design alternatives and their performance estimations in collaboration with search algorithms to seek for desired parametric confi gurations in the entire set of instances. Turin et al. point out (2010) that this scenario becomes unproductive the moment the parametric model is described by a relatively large set of independent variables. It is due to computational power required for a systematic generation and especially performance calculations of each instance. To counterbalance that stochastic, population based techniques are used because exploring ranges of solutions is in general more eff ective than following a direction set by single solution toward a better solution. Computer science provides number of evolutionary algorithms such as genetic algorithms, ant colony systems, particle swarm, shuffl ed frog leaping, memetic algorithms and others. Ralph Evins in his paper (2013) summarised 74 applications of computational methods used to optimise various aspects of sustainable building design over the years 1990-2012 (Figure 2). Around half or the projects focused on a single objective problems and around 40% of them used full multi-objective search. The most common optimisation method was a Genetic Algorithm (over 50% cases) and direct search with the ratio of 25% (Figure 3). The remaining part was almost entirely fi led by other evolutionary algorithms. The energy use was the most popular criteria (50% of cases). Cost objectives appeared in

Figrue 2. Graphical summary of computaional methods in sustaiable buidling design. [Ralph Evins 2013]

Page 12: Marcin Kosicki AAC Thesis

12 Integrating Supervised Data Mining into Performance Oriented Design

diff erent variants (construction, operational, life-cycle, total), formed almost as many cases as energy use. The other popular objectives were associated with comfort and daylight levels (Figure 4). In terms of area of building design, envelope appeared in almost 40% of examples. The rest was almost uniformly split among form, systems and renewables (around 20% each), with controls and lighting occurring sporadically.

The examples clearly shows that purpose of using over-mentioned algorithms is in general to solve a specifi c mono or inter-disciplinary design problem by seeking for an optimum solution. In other words the aim is to fi nd confi guration of parameters that best matches desired performance goals. These is by defi nition a major potential of optimisation technique but it does not support a fully informative study of design solutions which is essential for preliminary architectural design. The approach is suitable for the fi nal stage of design process when a structure of a parametric model is fully developed and the goal is to fi nd “a fi nal tune” for it. Most of the applications of optimisation in architecture focus on the fi nal results, by eliminating local-optimal solutions. In contrast, the signifi cance of examination of not the best design solutions, extracting knowledge from them and treating them as suitable solutions can benefi t in straightening vague, ill-defi ned aspects associated with aesthetic and visual design intentions (sometime developed during the exploration itself).

Figrue 4. Area of buidling design & Design Objectives [Ralph Evins 2013]

Figrue 3. Optimisation methods [Ralph Evins 2013]

Page 13: Marcin Kosicki AAC Thesis

13Marcin Kosicki AAC 2015

The fi eld of building’s envelope design is a topic of great interest, as it was pointed out in the previous section. Therefore, it was chosen as a test case for the proposed methodology. The issues associated with buildings’ envelope design deals with their overall shape, the material properties, the rationalisation of the geometry, and other factors associating geometry and performance. The main guiding criteria are traditionally infl uenced by economical, aesthetic and structural aspects. Nowadays rising pressure to include energy-related aspects such as minimising energy consumption or creating energy production potential is observed. That is way many novel projects of buildings’ envelopes tries to extend the “state of the art”. The relationship between geometry and structural performance is a well-known topic of common investigation across the whole fi eld of structural morphology, especially for large span roof, for both continuous and discrete systems. The topic is broadly covered in literature and many design methods which aim to reduce the weight of structural supports or include form fi nding processes. On the other hand the geometry-energy use relation in large structures is less explored (Turrin et al. 2010). When dealing with energy linked aspects both passive and active infl uence can be investigated. Building’s envelope contribute to the climatic aspects for the spaces inside, both for thermal comfort and daylight, by means of passive principles, so they need to be carefully designed.

In The UNIPOL Project a geometry of widespan enclosure was studies by the use of parametric modelling and genetic algorithms aiming for passive reduction of summer overheating at three diff erent scales. At the large scale the relationship between the overall shape of the roof and cooling through ventilation was investigated. At the medium scale, openable modules were tested against cooling via air extraction. At the small scale various cladding systems were simulated seeking for the reduction of the direct solar gain while still enabling the income of indirect natural light (Turrin et al. 2010). The research pointed out that digital simulations, required too much human interaction and computational power to be used to large ranges of design alternatives. That is way, constructing a proper parametric model, which was essential for the evaluation process, required considerable eff ort but still did not guarantee a return on time-investment.

In SolSt Project (Turrin, 2011) the objective, due to the local climate, was to use passive strategies to minimise both summer overheating and winter overcooling. The method was to increase solar intake, accumulated in a thermal mass, and minimise heat losses in

Performance oriented design - case studies

Page 14: Marcin Kosicki AAC Thesis

14 Integrating Supervised Data Mining into Performance Oriented Design

winter time while in summer time lowering solar gain and enforce cooling eff ects through evaporation and ventilation (Figure 5). The study was undertaken on a NURBS surface based parametric model which was used to create a feasible search space. Additionally structural behaviour was analysed via Finite Element Method with predefi ned material properties and uniform loads to simulate the load of cladding, moderate snow or roof live loads aiming to minimising the weight of the steel. Due to computational complexity and interoperability between software platforms the objectives were analysed independently. Since, that was a considerable obstacle, the process of multi-objective design exploration in this case is discussable and may be seen as only partially successful. Relatively laborious defi nitions of programming routines required to link various software platforms suggested that diff erent, more effi cient approach should be taken when dealing with digital simulations. Additionally, the research pointed out the importance of creating an effi cient method to explore trends and relationships between design variables and the performance evaluations. However, it was limited only to visualisation, fi ltering and sorting of generated solutions, it exemplifi ed the future role of data management in research for design exploration and knowledge extraction.

The project developed by Foster+Partners (Chorins et al. 2012) is an example of an a multi-objective optimisation process, which goal was to reduce incident solar radiations and maximise daylight penetration, for the external envelope of a large-scale offi ce building situated in the Middle East. This was achieved through the combined use of a parametric model and a genetic algorithm, along with an integrated data set of pre-computed results. First the initial model was pre-defi ned as upside-down, four sided cone due to its self- shading capabilities. A structural grid was then applied to a generic form, allowing to create a sequence of bays on each fl oor, that could be extruded inwards or outwards from the main form in search for an environmentally optimal solution. Each bay was assigned a parameter that controlled the glazing to wall ratio and the Solar Heat Gain Coeffi cient for the glazing itself to control the incident annual direct and diff use solar radiation and each bay’s potential daylight capacity. This resulted in millions of diff erent possible confi gurations to examine. To manage the search space the decision was made to limit the selection pool to selected 27 ‘test cases’ for which incident solar radiation and daylight results were computed and stored in a database which enabled interpolation between the precomputed cases (Figure 7). Then a parametric model was built and linked the results database enabling every possible confi guration to be assessed (Figure 6).

Figrue 5. SolSt Design Methodology (Turrin et al., 2011).

Page 15: Marcin Kosicki AAC Thesis

15Marcin Kosicki AAC 2015

Figrue 6. Set out fi le, generated geometry and results on the parametric model (Chronis et al. 2012)

Based on it a multi-objective genetic algorithm, which used weighted fi tness function, was implemented to generate solutions that played an informative role for the design team. This approach gave signifi cant time savings benefi ts, since it eliminated the necessity of using computationally expensive simulations applied to evaluate every individual. However, the method demonstrated potential in separating ‘original’ performance simulation form the optimisation heuristic, it worked on a limited number of samples and did not have any accuracy verifi cation procedure.

The over-mentioned examples clearly show a growing trend in performance driven optimisation for sustainable building design. This is a benefi t of the increasing computational power that enables to tackle certain problems analytically that were previously impossible. The outcomes of simulations are thus used mainly to produce the most “fi t” individuals in a way similar to a traditional optimisation technique rather than to systematically extract informations out of the solution space. That is way the future research should be undertaken not only in developing more accurate simulation techniques but also in more sophisticated methods of storing and extracting case specifi c knowledge and making it reusable in the context of design space exploration.

Figrue 7. Solar radiation results database (Chronis et al. 2012)

Page 16: Marcin Kosicki AAC Thesis

16 Integrating Supervised Data Mining into Performance Oriented Design

In the previous paragraph the systematic methods of generating valuable design information and the importance of exploring the entire set of design solution for the preliminary design stage was described. These kind of data sets contains design information that are crucial, and as it was pointed out, architects might be more interested in their structure rather than in specifi c solutions. Most real world problems are multi-objective and their solution sets are multidimensional, unintuitive to navigate and understand. A process of identifying, unique and useful, patterns in data is known as Knowledge Discovery (Fayyad et al. 1996). Its essential part is Data Mining where identifi cation, search or construction of patterns takes place. The aim of Data Mining is often to extract knowledge about a collection of previously gathered data which then can be used for predictive purposes (Figure 8)(Freitas 2002). There are two types of DM problems: classifi cation and regression.

• classifi cation aims to develop a model that predicts a category of an input data based on some predictor variables.• regression looks for a model that predicts a new data based on a given input data.

Figrue 8. Classifi cation vs RegressionIn classifi cation (left) the red line represents a model that separates two types of data (dots and rings). In regression (right) one type of dotted data is aproximated by the model.

Data Mining

Page 17: Marcin Kosicki AAC Thesis

17Marcin Kosicki AAC 2015

Genetic ProgrammingFinding a model that maps design data in a form of multi-dimensional decision vector, of which components’ domains are rather continuous that discrete, into objective spaces is a regression problem. Thus, the aim is to fi nd approximate values of certain objectives (performance evaluation) for given parameters. One of the most successful regression technique on the fi eld of computer science is to use Genetic Programming (GP) developed by John Koza (1992). It is a type of evolutionary computation that generation by generation transforms populations of programs into new, ideally better, populations of programs. It is domain-independent, stochastic search heuristic that theoretically due to its randomness can never guarantee results. However, since its discovery GP has proven to be successful in fi nding novel and unexpected ways of evolving computer programs, electric circuits, image fi lters and so on (Poli et al. 2008). Koza (1992) pointed out that if computer programs are to solve problems they require a special structure such that they can: perform operations in a hierarchical way; perform iterations and recursions; defi ne intermediate values and subprograms which can be subsequently reused; perform alternative computations depending on the outcome of intermediate calculations; perform computations on variables of many diff erent types. In order to that Koza (1992) proposed the hierarchical tree-based architecture, with intermediate and terminal nodes, preferred by functional programming languages such as Lisp or Scheme.

The main advantage of GP is that it overcomes limits of a standard Genetic Algorithm. The GA’s genotype is build out of fi xed number of gens which are required to describe each solution. Thus the process of decoding a genotype into a phenotype is fi xed which limits in advance the number of internal states of the system and limits what the system can learn (Koza 1992). On the contrary GP propose a method in which a solution to a problem does not have a predefi ned length and structure. Due to its hierarchical and evolvable architecture structural complexity of the answer is produced by a problem solving routine and is not part of the question (Koza 1992). Conceptually GP and GAs use similar heuristics, but the nature of the solution they produce is fundamentally diff erent. GAs defi ne the problem in terms of numerical values required. The algorithm based on a specifi c problem looks for specifi c optimal solution in the constrained search space. GP on the other hand, considers the search space as a a general set of problems which is explored in order to fi nd a general solution, an algorithm which fulfi ls the imposed criteria. The selection of the appropriate algorithm depends on the criteria of the research. In the context of regression where the goal is to uncover patterns in a given data, that

Page 18: Marcin Kosicki AAC Thesis

18 Integrating Supervised Data Mining into Performance Oriented Design

has unknown structure and is not explicitly defi ned, implementation of GP is much more suitable. In the case of symbolic regression a computer program which is being evolved is an analytical function. The biggest advance is that GP is able to discover the relationship between data as expressions in symbolic form without prior knowledge of the problem (Schmidt et al. 2009). It this context GP can automatically select specifi c parameters and can fi nd both linear and nonlinear relationships between them.

It is only recently that symbolic regression has been used on the fi eld of engineering and associated with parametric models. Baghlani et al. (2014) used GP based data mining technique in shape optimisation of concrete gravity dam. A total number of 322 models of dams with regard to fi ve design variables were created and evaluated using pseudo-dynamic analysis. Based on it, appropriate formulas for design constraints were developed by the use GP. The accuracy of the formulas was verifi ed, and they were used in an evolutionary optimisation method in order to fi nd optimal values of design variables. The procedure was computationally very eff ective since the necessity of time-consuming structural analysis in every evolution was eliminated. The results showed that the adopted procedure was capable of fi nding optimal values of design variables that satisfi ed all design constraints. Moreover it demonstrated potential of hybridisation data mining techniques with population-based optimisation approaches in solving real-life problems in engineering. Tatsukawa et al. (2013) used GP based data mining technique to analyse the non-dominated solutions of the multi-objective aerodynamic design optimisation problem of a bi-conical shape, reusable launch vehicle. The analysed parametric model of the vehicle had two input parameters and four case specifi c objectives, evaluated by computer fl uid dynamics simulation. Proposed methodology, based on GP, was capable of fi nding symbolic equations that were highly correlated to each given objective function. Furthermore the research showed capability of fi nding new design parameters from the original design parameters based on the correlation to the objective functions.

The over-mentioned examples used limited number of input parameters to create 2D profi les which were then extruded or revolved to make simple, generic solids. Architectural forms are usually unique, developed form much more sophisticated rules and create complex spatial arrangements. To my knowledge there are no similar research on the fi eld of architecture. Thus, the question of applicability of data mining technique related to complexity of parametric models and their performance require detailed research.

Page 19: Marcin Kosicki AAC Thesis

Desi

gn D

ata

Gen

erat

ion

Knw

oled

ge D

isco

very

Parametric Model

Imput Parameters

3D Models

Performance Evaluation

Problem data

Data Mining

Regression

Knowledge Verification

Data Sampling

Figure 9. Knowledge Extraction Process

19Marcin Kosicki AAC 2015

In this chapter a detailed description of the adopted methodology is presented. The proposed process of knowledge extraction in a context of performance orientated design in architecture has two primary stages. The fi rst is called Design Data Generation (DDG), the second - Knowledge Discovery (KD). The simplifi ed scheme of the process

can be seen in the fi gure 9. The DDG stage is composed of three parts named as follows: Data Sampling, Instances Generation and Performance Evaluation. The goal of DDG is to create an ordered data set that numerically represents an architectural problem which is then being analysed in the KD phase. The Parametric Model is a representation of the particular problem which in the case of this work is a conceptual geometry of a widespan enclosure. The PM model requires a certain number of input parameters to produce a 3D geometrical model of the building’s envelope. There is an infi nite number of parameters’ confi guration therefore to produce a fi nite subset that estimates characteristics of the search space Data Sampling techniques are used. The performance of each 3D model, generated by the PM, is then estimated in the Performance Evaluation stage. The objective that is analysed is an estimated total passive solar intake for the entire roof for a certain time period. Ultimately the outcome of DDG phase is a data set containing normalised values of both the input parameters and associated performance values.

The second stage called Knowledge Discovery, is responsible for uncovering patterns in the data set. It uses Supervised Data Mining

METHODOLOGY

Page 20: Marcin Kosicki AAC Thesis

Figure 10. Knowledge Extraction Diagram

Parametric Model

i1

i2

in

x11 x12 x1n

Input Parameters

x21 x1n x2n

xn2 xmnxn1

Instancies Performance evaluation

v1

v2

vn

x11 x12x21 x1n

xn2

x1n

xmnxn1

y1y2

yn

minn

i=1

| yn - g(xn1, xn2, ... , xnm) |

z1z2

zn

aproximatedperformance

values

x2n

g(an1, an2, ... , anm)

Data Sampling

Symbolic Regression via GPTraining Data

The GP found function to verify

Test Data

Performance evaluation

Model Generation

b1b2

bn

“true”performance

values

a11 a12a21 a1n

an2

a1n

amnan1

b1b2

bn

z1z2

zn

Desired Outcome

y1y2

yn

performance values

20 Integrating Supervised Data Mining into Performance Oriented Design

approach, called Regression Analysis, to construct a predictive model that based on a statistical analysis of already known input values (parameters) and targets (performance estimations) attempts to explain the behaviour of the target as a function of a set of independent attributes or predictors. The process of building the model, called training, is automatised by the use of an algorithm called Genetic Programming performing Symbolic Regression. After the algorithm converge and the acceptable function is found, it is associated with the initial Parametric Model for verifi cation. In order to test if the function can be eff ectively used instead of the initial performance simulation it is measured how well it predicts radiation values for a set of randomly generated roofs that were not included in the original training data set. The detailed diagram showing data fl ow on diff erent levels is presented in the fi gure 10. The following sections contain detailed descriptions of each part.

Page 21: Marcin Kosicki AAC Thesis

P(k,n) = kn (1.1)

21Marcin Kosicki AAC 2015

Sampling is a process where individuals are being selected from a statistical population to create its subset that estimates characteristics of the whole population (Haweks & March 2004). The population in this case is a set of individuals that can be generated from a given parametric model based on various input parameters. Because the parameter space is continuous there is an infi nite number of individuals that can be generated. In order to run the experiments a fi nite, relatively small subset of samples has to be chosen based on an adopted sampling method. The parameters’ values can be generated in various ways, following diff erent data distribution types such as:

• Normal – called the “the bell curve”, in which data are symmetrically distributed to either side of a certain value so the entire population can be represented equally by the mean, median or the mode• Skewed – similar to the normal distribution but the data are not distributed symmetrically. The entire population is better represented by the either the median or the mode than by the mean.• Uniform – means that there is no central value but that every value has the same likelihood of occurring. In such cases, the mean, median and mode are meaningless.

In the case of the extraction of design information from the architectural design space it is assumed that there should be no prior preferred values of parameters. If the exploration is to play an informative role, then the entire search space should be “fairly” explored. With an unknown structure of the design space there is no certain value that can infl uence the exploration. Therefore, the normal or skewed distribution may not produce data that correctly refl ects the examined search space. The goal is to conduct exploration based on the overview of as widely speeded individuals as possible. That is why the uniform distribution was adopted as the basic method of generating samples. The input set of that

kind, created within of a certain range and with desired density, from a mathematical point of view is a collection of all permutations with repetitions. By defi nition given a set of n elements, the permutations with repetition are diff erent groups formed by the k elements of a subset such that: the order of the elements does matter; the elements are repeated (Wolfram 2015). Based on it n is a number of input parameters required by a parametric

Data Sampling

Page 22: Marcin Kosicki AAC Thesis

x1 x2 x3 xn...( )

xn = an + ck |bn- an|

ck C = { c1, c2, ..., ck } and ck =k-1

|C|-1

xn [ an , bn] for

Therfore for n=2, k=3 and xn [0,1] all the possible permutations with repetitions are:

[0.0;0.0][0.0;0.5][0.0;1.0]

[0.5;0.0][0.5;0.5][0.5;1.0]

[1.0;0.0][1.0;0.5][1.0;1.0]

(x1 x2) =

Figure 11. Sample population.

22 Integrating Supervised Data Mining into Performance Oriented Design

model to create a particular instance, and k is density signifying how many samples are desired per each dimension. The logic of the training data generation can be seen in the fi gure 12. The number of groups follow the formula 1.1.

Maintaining density of samples especially in high-dimensional spaces, cause the total number to of samples to grow exponentially. It can signifi cantly slow the search process without noticeable accuracy improvements. That is way a mixture of uniformly and randomly distributed input data was used (Figure 11). The randomly chosen individuals (with normal probability of existence in a certain range) give diversity that can enrich the quality of the sample population obtained only by a non-probabilistic method. Adaptation of the mixed approach in creating the sample population can be seen as using a random and systematic sampling method (Haweks & March 2004). The Java source code for an algorithm that generates over mentioned samples can be viewed in the Appendix.

systematic sampling random sampling sample popultion

Figure 12. Uniform DistribiutionFor n input parameters for xn from an to bn; create a set of samples such that it contains all the permutations with repetitions of k-uniformly distributed values for

each parametes’ dimesion.

Page 23: Marcin Kosicki AAC Thesis

23Marcin Kosicki AAC 2015

Parametric design is a process of designing with parametric models (Barrios 2005). Its essence is to create geometric models which represent a design with parameterised components and attributes. Parametric models due to the use of associative geometry combine both geometric entities and their relationships. These relationships are developed during the initial parameterisation process and grouped in a hierarchical chain of dependencies. Based on the established hierarchy, some geometric attributes are described by independent parameters, which work like inputs while other components collect data from them and are dependently variable. Due to consistency of the hierarchical structure manipulation of the independent parameters results in generating diff erent geometric confi gurations of the model called instances (Figure 13). The process of constructing a proper parametric model crosses traditional boundaries of expertise due to its interdisciplinary. It is based on interconnections and to tackle their nature a team requires a collective knowledge and expertise based approach accumulated mostly form early brainstorming sessions.

The parametric model used for design space exploration is based on an nonuniform rational B-spline surface. They are a type of polynomial surface (the same type as Bezier and uniform B-Spline surfaces). They are smooth geometric entities without kinks because their curvature changes gradually and continuously. That is why they were used to describe a geometry of tested widespan enclosure. The basic mathematical parameters that defi ne every B-spline curve or surface are: control points, an order, and a knot vector. A convex hull boundary of a curve, its overall shape is described by the control points which are the fi rst parameter to be determined. The steepness or fl atness of a curve is controlled by the order. The maximum order is equal to the number of control points. Intuitively, it describes how close a curve lies from its control in a manner that increasing the order results in a fl atter surface. B-splines take advantage of its ability to change the order in terms of shape control over Beziers whose order is fi xed and given by the number of control points. The knot vector is a set of parameter values between 0 and 1 which determine how the Bezier segments which make up the B-spline curves are joined. The knot vector determines the impact that control points have over the curvature within their neighbourhood. Equally-spaced knots create a uniform B-spline curve in opposition to non-uniform distribution B-spline (NURBS) which requires an additional scalar parameter called weights. They expand the infl uence that control points have over the shape of a curve and enable precise representation of the conic sections using B-splines. When

Parametric Model

Page 24: Marcin Kosicki AAC Thesis

Parametric Model

i1

i2

in

x11 x12 x1n

input parameters

x21 x1n x2n

xn2 xmnxn1

Instancies

24 Integrating Supervised Data Mining into Performance Oriented Design

creating a NURBS surface the over mentioned idea is extended in two dimensions (named by convention U and V) by creating a gird of control points. The order and the knot vector in that case can vary for each dimension (Schneider and Eberly 2003).

For simplifi cation a NURBS surfaces generated by the model have equal number of control points in each dimension. The overall number of control points varies in diff erent test cases. The size of the surface and some of the points are fi xed and some of them have degrees of freedom that receives data form input parameters and enable generation of various instances. After control points are created the methodology is similar for every test case. Therefore, discrete points in the topological parameter space are mapped ono the surface. Then surface points or nodes are linked together in the U and V directions to form a quad mesh. The program computes a uniform mesh which is created by equally subdividing the parameter space in both directions by the set number of nodes. Pseudo-code for the input B-spline surface is adapted from Turner (2011) and is included in the Appendix. Additionally to generate model that better describe a test case of building’s enclosure a boundary all added (Figure 14).

Figrue 13. Genration of Instanices by the Parmetric Model form sampled data.

Page 25: Marcin Kosicki AAC Thesis

25Marcin Kosicki AAC 2015

NURBS SurfacesAccording to Schneider and Eberly (2003), mathematically A nonuniform rational B-spline surface NURBS surface is obtained from non-uniform B-spline polynomial surface in four dimensions as follows:

(Pi0,i1, 1) R4 for 0 i0 n0

weights: wi0,i1 > 0,

the polynomial surface is:

(Y (s, t), w(s, t))

(Y (s, t), w(s, t)) =n0

i0= 0

n1

i1= 0

B(0)i0,j 0

(s) B(1)i1,j 1

(t) wi0,i1(Pi0,i1, 1)

X(s, t) =Y (s, t)w(s, t)

=n0

i0= 0

n1

i1= 0

Ri0,i1,j 0,j 1(s, t)Pi0,i1

where

Ri0,i1,j 0,j 1(s, t) =

wi0,i1B(0)i0,j 0

(s)B(1)i1,j 1

(t)n0k0= 0

n1k1= 0 wk0,k1

B(0)k0,j 0

(s)B(1)k1,j 1

(t)

degrees:knot vectors: {si }n0i= 0 si si+ 1 for all i

{ti }n1i= 0 ti ti+ 1 for all i

0 i1 n1

control points:

The NURBS surface is obtained by treating as a homogeneous vector and dividing through by the last component to obtain a projection in three dimensions:

1 j0 n0

1 j1 n1

B(0)i ,0 (s) = 1, si s < si+ 1

0, otherwise

B(0)i ,j (s) =

(s si )B(0)i ,j 1(s)

si+ j 1 si+

(si+ j s)B(0)i+ 1,j 1(s)

si+ j si+ 1

and

B(1)i ,0(t) = 1, ti t < ti+ 1

0, otherwise

B(1)i ,j (t) =

(t ti )B(1)i ,j 1(t)

ti+ j 1 ti+

(ti+ j t)B(1)i+ 1,j 1(t)

ti+ j ti+ 1

B(0)i ,j (s) B(1)

i ,j (s) and the polynomials in the expression satisfy the Cox–de Boor formulas:where and

Page 26: Marcin Kosicki AAC Thesis

Initialize Control Points

Initialize Knot Vectors

Compute 2-Dimensional (U,V) grid of points which blelong to

the Surface

Create PQ Mesh form the grid of points

Initalize Degres

For visible ray check if it intersects the a set of

obscuring faces.

project boudnary points on base coordiation system XY

plane

create boundary wall faces with nodes taken form surface boudnary point set and

projected point set

create an union set containing the top PQ surface mesh and

the boundary wall mesh

return the final mesh

26 Integrating Supervised Data Mining into Performance Oriented Design

Figure 14. Parametric Model PseudocodeThe confi gurations of cross-bracing producted by the fi rst optimisation with the exaggerated thickeness of structural elements from the second optimization.

Page 27: Marcin Kosicki AAC Thesis

27Marcin Kosicki AAC 2015

One of the critical environmental factors that infl uence building design is the ability to estimate total, passive solar radiation accumulated in a building’s thermal mass. The knowledge of areas where solar energy may potentially be utilised can signifi cantly contribute to high performance design. Every type of new development, from a small-scale individual building to a large urban masterplan can benefi t from it, improving occupant thermal comfort or minimise the use of energy in the buildings. As shown in the SolSt Roof project, the outcome of the solar simulation may be used as fi tness criteria for a genetic algorithm. A standard method of calculating solar radiation, based on a 3D digital model, uses commercially available, dedicated software, for example: Autodesk Ecotect. The results are accurate but computationally expensive, producing outputs from hourly simulations, or some statistical subset of sun hours. However, at the preliminary design stage, while the primary goal is to uncover the overall tendency of a search space which has been examined, rather than high accuracy of a single prediction, a diff erent approach is required.

MethodologyA method that allows the above-mentioned problem to be overcome requires some trade-off between accuracy and speed. The technique proposed by Derren R. and Stone A. (2004) called ‘cumulative sky’ uses some pre-processing that generates a cumulative skyradiance distribution based on a given climate fi le. Then the fi nal value is accomplishedfrom a single simulation, due to a backward ray-tracing program called RADIANCE. Theapproach requires the simulation to be run for n-number of times to obtain results for a single given form for n-analysed periods. In presented work, the effi ciency of calculations and the overall tendency of analysed phenomena, were the most important criteria. Therefore, the algorithm that uses the cumulative sky approach was custom coded in Java and integrated. The key feature of the methodology was to produce a cumulative distribution for some discretised representation of the sky vault. The model used was developed by Tregenza (1987), in which each of 145 patches subtends a similar solid angle (Figure 15). The next step was to predict the luminance / radiance at the centroid of these patches and sum up all the results for the period of interest. As a climate data source, the EnergyPlus (2014) weather format was used, which is based on the Pérez (1993) all-weather luminance distribution model. The solver used a custom-made class called Face that stored all the basic geometrical information associated with the mesh’s face, i.e.: the centre and nodal point’s positions or a normal vector. The solver could access the information (when it is running) and use it to calculate mesh-ray intersections

Performance Evaluation

Page 28: Marcin Kosicki AAC Thesis

Solver Ladybug

time total 142.761 s 597.823 s

time average per individual 0.283 s 1.150 s

average di erence 1.92%

28 Integrating Supervised Data Mining into Performance Oriented Design

to solve overshadowing problems. The approach was based on Kämpf and Robinson’s work (2009), in which the measure point irradiation a subsurface (in Wh/m2) was multiplied by the corresponding sub-surface area (in m2) and summed up over all the points.

Ray-face intersection testThe most computationally expensive task in the cumulative sky simulation was to check if an analysed face was not overshadowed by any other face for a given patch-ray. The test had to be performed for every ray with all potentially obscuring faces apart from the analysed one. Therefore it was crucial to use a method that was as computationally effi cient as possible. The most important information was that, if the ray intersected a given face,only the knowledge was required. Therefore, the co-ordinates of an actual intersection were irrelevant. That is why Möller and Trumbore’s intersection algorithm (1997) was used. It did not require any pre-processing and made it possible to obtain a signifi cant saving of memory and time. The full Java source code of the entire simulation can be seen in the Appendix and the pseudocode is presented in the Figure 16.

TestsIn order to check the accuracy of the custom-made simulation engine, a test was performed. Randomly generated NURBS surfaces were analysed both in a custom-made Java-based solver and via Ladybug (Roudsari, 2013), a plug-in for Rhino/Grasshopper, a widely used computer-aided design platform available for designers today. Ladybug plug-in was chosen because it uses a similar computational model for the radiation simulation. A total number of 504 sample surfaces were tested and the results are presented in Table 1. The experiment proved that a custom-made solver could estimate total solar radiation with acceptable approximation. The average diff erence from the result obtained in Ladybug was less than 2% with a signifi cant computation time improvement. The solver processed a given set of samples nearly four times faster. Therefore, it could be used effi ciently to evaluate large sets of samples.

Figure 15. Sun Positions (Roudsari, 2013)(left) Cumulative Sky over a year (hemispherical view) based on Tergenza’s model. (right) Solar sources of hourly sun positions.

Page 29: Marcin Kosicki AAC Thesis

29Marcin Kosicki AAC 2015

Load Tergenza Sky Vectors with associated radiation values

Create a set of sky vectors that represents a part of the

sky visible for the face F.

For face F create a set of potentially obscuring faces that are positioned “above”

the face Fn.

For every visible sky vector create a ray R that starts in the centre point of the face F and

has a direction of the sky vector

Load Mesh M containing faces F

Add a sky patch value multiplied by face’s area and the cosine of an angle between the face’s normal vector and the ray

direction vector to the cumulative radiation value for

face F.

For visible ray check if it intersects the set of potentially

obscuring faces.

yes

no

Check the next ray?yes

Check the next face?yes

no

Return total radiation

Figure 16. Solar Radiation Symulation Pseudocode

Page 30: Marcin Kosicki AAC Thesis

30 Integrating Supervised Data Mining into Performance Oriented Design

Genetic Programming In that phase a model that maps parameters space into objective is constructed. To conduct the extraction both input parameters’ values and numeric performance estimation associated with them are required. They create a regression problem that is solved by the creation of an analytical function that takes input parameters as arguments and outputs an approximation of performance value. An example taken form Eggermont (2005) of 1-dimensional regression problem can be seen in the Figure 17 and in the Figure 18. The process may reveal the trade-off information between objective functions, relationship between objective functions and design parameters, and constraint conditions among design parameters especially when complex, nonlinear relations between objective functions and design parameters exists. GP is an evolutionary technique that transforms populations of programs in order to fi nd better fi tted individuals (Figure 20). In the case of symbolic regression an individual’s fi tness is based on the information how much the results calculated bast by the individual vary form the given test data. Numerically it can be measure as an aggregated total error. In this case, GP is considered as the data mining method than is able to reveal design information between the objective functions and design parameters. The basic algorithm was adopted form Poli et al. 2008 and can be seen in the Appendix.

Knowledge Extraction - Data Mining

For X = {x1,…,xn}

S = {(xi,f(xi))|xi X}

f(xi) i i X

x11 x12x21 x1n

xn2

x1nx2n

xmnxn1

input parameters

y1y2

yn

performance values

performance simulation

x11 x12x21 x1n

xn2

x1nx2n

xmnxn1

input parameters

z1z2

zn

aproximatedperformance

values

g (x1, x2, ..., xn)

such that yi zi

find g(x1,x2,...,xn)Figure 17. 1D-Symbolic Regression [Eggermont 2005].

Figure 18. Symbolic Regression in the context of proposed methodology.

Page 31: Marcin Kosicki AAC Thesis

*+ Y 1 / X 2- - 1Y - X 1 +

-

+

-

Y 1

-

X 1

*

+

Y 1

/

X 2

infix notation: (y-1)+(x-1) - (y+1)*(x/2)prefix notation: -( +( -(y 1) -(x 1) ) *( +(y 1) /(x 2) ) )

111 113 2 5 112 1 9110 110 52 110 1 7 111

Figure 19. The InterpreterAn analytical function in a form of the syntax-tree. The red arrows show a direction of recursive evaluation

of the syntax tree. Below an infi x and prefi x notation and in fl attened version for both symbolic and coded version is presented.

31Marcin Kosicki AAC 2015

Syntax-TreePrograms evolved via GP are usually structured as syntax trees (Figure 19) and in the case of symbolic regression they represents an analytical function. Every program contains two primary type of nodes either functional or terminal. Arithmetic operations (+, * and max) are internal (functional) nodes and create branches, while variables and constants in the program (x, y and 3) are leaves of the tree, called terminals. Both terminal and functional nodes are grouped in a primitive set that works as a gene pool. Analytical function are commonly expressed in a prefi x notation similar to one used in procedural programming languages like Lisp or Scheme. According to the fi gure 19 a function (y-1)+(x-1)-(y+1)*(x/2) becomes -(+(-(y 1)-(x 1))*(+(y 1)/(x 2))). Prefi x notation makes it easier to manipulate the sub parts via genetic operators while maintaining syntax correctness.

Fitness Function Due to the fact that GP evolves programs its fi tness measurements are diff erent that in standard GA. To compute it the programs in the population need to be executed and their performance evaluated. In order to that the algorithm needs an interpreter, a function that translate a syntax tree into an executable program. The major issue at this point is to ensure that it will execute the nodes in the tree in an order that guarantees that functional nodes are not executed before the value of their arguments (if any) is known. To deal with that the tree is recursively traversed starting from the root node, postponing the evaluation of each node until the values of its children (arguments) are known (Figure 19). In the case of symbolic regression the task is to minimise a cumulative error between target values and the outcomes of the executed candidate program-function (Figure 21).

Page 32: Marcin Kosicki AAC Thesis

Figure 20. Genetic Programing Pseudocode

32 Integrating Supervised Data Mining into Performance Oriented Design

Create initial population of programs from the available primitives

Execute each program and measure its fitness

Individual = 0

Individual = M ?

Select Genetic Operation Probabilistically

Gen = Gen+1

Termination Criterion Satisifed ?

Select Two Individuals Based on Fitness

Perform Crossover

Insert Offspring into New Population

Individuals = Individuals+1

Select OneIndividual Based on fitness

Perform Mutation

Insert Mutatnt into New Population

Iindividuals = Individuals+1

Page 33: Marcin Kosicki AAC Thesis

minn

i=1

| yn - g(xn1, xn2, ... , xnm) |

if i = n

error = |f(xi) - g(xi)|

fitness = fitness + error

i +1

fitness = 0i=0

retrun fitness

no

yes

33Marcin Kosicki AAC 2015

Genetic Operators Conceptually GP uses similar genetic operators to those used in standard GA. They are probabilistically applied to individuals based on their fi tness. The better the individual the more likely to be chose to breed or mutate. Commonly used mechanism for selecting individuals is called tournament selection (Poli et al. 2008). Based on that a number of individuals is chosen randomly from the population and checked which program is better without calculating how much better. Due to that the selection pressure on the population remains constant and small diff erences are amplifi ed even if they only produce marginally superior to the other individuals in a tournament. Because of the diff erences in DNA structure crossover and mutation operators works diff erently than in standard GA. Their equivalents are called subtree crossover and mutation. After choosing two parents based on tournament selection, an algorithm selects a crossover point (a node) randomly and independently in each parent tree. Then, the off spring is created by swapping the subtree anchored at the crossover point in the fi rst parent with the subtree rooted at the crossover point in the second parent (Figure 22). The operation uses copies of original parents to allow an individual to be selected multiple times which allows it to take part in the generation of multiple off springs. While performing subtree mutation the algorithm randomly selects a mutation point in a tree and swaps the subtree anchored there with a randomly generated subtree (Figure 22). It is known in literature as “headless chicken” crossover (Poli et al. 2008). It other words it can be described as crossover between a program and a newly generated random program.

Figure 21. Fitness Evaluation(Up) Regression problem in mathematical notation(Left) Pseudocode for fi tness evaluation in GP.

Page 34: Marcin Kosicki AAC Thesis

crossover point

crossover point

+

+

X Y

3

(x+y)+3 parent1

*

+

Y 1

/

X 2

(y+1)*(x/2)parent2

+

3/

X 2

(x/2)+yoffspring

+ + X Y 3

CP

parent1 * + Y 1 / X 2

CP

parent2

+

/ X 2+

/ X 2+ 3offspring

Crossover

MP

parent

+ Y 1 2* X X 3randomly generated

sub-tree

/ -

+ Y 1*+ Y 1* X X 3/ -

offsprign

*

+

Y 1

(y+1)*2parent

crossover point

2

*

+

Y 1

crossover point

/

X -

X 3

/

X -

X 3

(y+1)*(x/x-3)offspring

x/(x-3)randomly generated

sub-tree

Mutation

34 Integrating Supervised Data Mining into Performance Oriented Design

Figure 22. GP Genetic Operators

Page 35: Marcin Kosicki AAC Thesis

35

SettingsThe proposed methodology was tested on series of parametric models that had diff erent levels of complexity. The dimensionality of the problem was increased gradually and the performance, the length of evolved programs as well as its accuracy was recorded. The experiments were made on MacBook Pro (Mid 2014) Intel Core i5, 2.6 GHz 8 GB 1600 MHz DDR3 RAM. The performance evaluation was based on the weather data for London Gatwick 037760 (IWEC) in the United Kingdom. The test period was set up form the 1st April to 31st September to measure the total passive solar intake for the summer period. The radiation 145 values for every Tergenza Sky Patch can be seen in the Appendix X. For simplifi cation all examined forms had square plan with dimension 200 x 200 m. They were tilted form the North direction by an angle equal to 45 degrees. For every GP run the primitive set contained terminal array in a form of constants and input parameters and terminal with arithmetic operations (addition, subtraction, multiplication and protected division). The genetic operators probabilities were equal for all the experiments and set up to 95% for crossover and 5% for mutation. The tournament size for each run was set to 2 and each generation consisted 100,000 individuals. All the data in each dimension was normalised with their ranges and mapped from 0 to 1. The fi tness was measured as a an average error between the original simulation result and the output of a candidate

function per individual sample Each GP run used 100 randomly generated constants within the range from -5 to 5. The initial setting were based on a setting proposed by Poli et al. (2008) from which work the GP code contributes. The number of training samples were computed based on the function 1.2 and related to number of input dimesions required by the particular parametric model . After the algorithms converged their results were compared with the outcomes of the initial radiation simulation for each parametric model based on a set of new randomly generated samples. The evolved program in fl attened form can be seen in the Appendix

Marcin Kosicki AAC 2015

RESULTS AND FINDINGS

Sn= 100 n (1.2)

Page 36: Marcin Kosicki AAC Thesis

36

Data VisualisationThe results are presented in a graphical form based on a commonly used data visualisation techniques. Each, random test sample presented is described by: its parameters, the performance value obtained from the simulation and approximated value produced by the best candidate function. There are two types of graphs used, bar and radar charts. For input parameters up to two dimensions, and for both simulation (sunSim) and GP outcomes (sunGP) bar graphs are used. The confi guration of input parameters for an individual produced by parametric models that has number of dimensions of 3 and higher is presented in a form of a radar chart (Friendly, 1991). The technique can better visualise the span of parameters that were tested.

Integrating Supervised Data Mining into Performance Oriented Design

Page 37: Marcin Kosicki AAC Thesis

37

1-Dimensional TestThe fi rst test was performed on a parametric model that required one input parameter. It generated a buildings’ envelope that was an outcome of extrusion of a 2-dimensional B-Spline curve along an axis perpendicular to the profi le curve. The curve had three control points. The placement of fi rst and the last was fi xed. The position of the middle point (in 2D space) had height fi xed on 100 m and the second coordinate that could be chosen anywhere between the anchor points. Total number of 100 sample roofs were generated. The evolution of the mapping function can be seen below (Figure 23). The textual outcome of the experiment can be seen in Appendix X

Figure 23. 1-D experiment statistics

Marcin Kosicki AAC 2015

12354

6117 6980

2316

58876648

10967

2184

19656

9.001

0.849

3.461

5.980

0.046

0.010

0.002 0.00245 0.00097

Page 38: Marcin Kosicki AAC Thesis

38

The GP algorithm run for 140 generations. The value of the best fi tness in the fi rst population was 4,5% and improved signifi cantly up 0.2% in the 25th generation. After that point the average error decreased steadily up to 0.097% in the 140th generation. In contrast, total computation time increased exponentially up to the end of the experiment at which point the fi gures approximately 9 hours to reach the fi nal generation. The average length increased exponentially from 19 in the 1st generation to 2316 in the 40th. It remained stable up to the 55th generation and increased steeply up to 6117 in the 60th generation. Then it remained stable up to the 120th generation and increased almost two times up to 12354 in the 130th generation and signifi cantly declined to 6980 in 140th. The verifi cation test gave the result of 0.693% for 100 randomly generated test samples (Figure 24). In conclusion the experiment showed that for 1-dimensional problem GP were able to create function that predicts the performance value with hight accuracy. The interpretation of the developed function in mathematical notation can be seen in the Appendix.

Figure 24. 1-D verifi cation test

Integrating Supervised Data Mining into Performance Oriented Design

test

sam

ples

best

g(x

)

solSimsolGP

Page 39: Marcin Kosicki AAC Thesis

39

2-Dimensional TestThe second test was based on a model that had two input parameters. The geometry was generated similarly to the one used in the previous test. The diff erence was that both coordinates in the 2D profi le curve work plane were adjustable for the second control.Total number of 200 samples were generated and analysed on a GP run that lasted 100 generations (Figure 25).

Figure 25. 2-D experiment statistics

Marcin Kosicki AAC 2015

19

1968 1988

3288

6284

0.069

0.001690.0042

0.00845

0.0533

11.61

11.16

7.99

1.86

Page 40: Marcin Kosicki AAC Thesis

40

The best fi tness of 5.53% achieved in the fi rst generation increased sharply up to 0.85% in the 20th generation and continued to improve steady up to 100th generation reaching 0.169%. The fi gures for the average length showed diff erent trend. It experienced steady growth form 19 at the beginning to 1968 in the 55th generation. Then in was stable up to 75th generation and tripled up to 6284 in the fi nal generation. The computation time grew exponential but steady with 11.61 hours required to process 100 generations. The verifi cation proved that the model had high accuracy of 0.51 % for 200 random samples. The fi gure 26 presents the confi guration of parameters for 25 of test samples with their performance values.

Integrating Supervised Data Mining into Performance Oriented Design

solSimsolGP

Figure 26. 2-D verifi cation test

Page 41: Marcin Kosicki AAC Thesis

41

3-Dimensional Test The third model had three input parameters. Building’s geometry was generated based on a NURBS surface created form 3 x 3 gird of control points in which the position of all the boundary points was fi xed. The central point was movable in X, Y and Z direction. Its position in X and Y dimension was constrained by the dimensions of the grid and its Z-range was from 75 to 400. Total number of 500 samples were prepared and processed by 130 generations by the GP algorithm. The record of the run is presented below in the fi gure 27.

Figure 27. 3-D experiment statistics

Marcin Kosicki AAC 2015

540

1540

2514 2554

5316

0.004740.00571

0.0122

0.0162

0.0399

0.0077

8.314

3.734

2.785

0.251

15

1664

Page 42: Marcin Kosicki AAC Thesis

42 Integrating Supervised Data Mining into Performance Oriented Design

solSimsolGP

The best average fi tness improved approximately fi ve times form 3.99% in the fi rst generation to 0.77% in the 60th generation and continued to refi ne narrowly up to 0.47% in the next 40 generations. The average fi tness raised form 15 in the initial population to 1540 in the 45th generation. Then it remained steady until the 80th generation (1664) and tripled reaching its pick of 5316 in the 130th generation. Computational time remained steady up to the 30 generations that required nearly half an hour and experienced exponential growth with 8.31 hours necessary to process 130 generations. The verifi cation test gave the average error of 0.593 % per sample for 300 random test cases, of which 16 are presented above (Figure 28), and confi rmed high accuracy of the developed function.

Figure 28. 3-D verifi cation test

Page 43: Marcin Kosicki AAC Thesis

43

9-Dimensional TestThe fourth experiment used a model with 9 input parameters. Its logic was based on a NURBS surface produced by a 3x3 grid of control points. Each point was fi xed along X and Y axis and could be move only along the Z-direction within a range form 0 to 100. The results of the GP run that processed total number of 900 samples for 100 generations are depicted in the fi gure 29.

Figure 29. 9-D experiment statistics

Marcin Kosicki AAC 2015

0.091

3724

2743

3382

14261779

883

11

0.01810.01860.01940.02010.0218

0.0955

9.38

8.17

6.75

4.87

3.66

1.82

Page 44: Marcin Kosicki AAC Thesis

44 Integrating Supervised Data Mining into Performance Oriented Design

solSimsolGP

Similarly to previous experiments computational time changed exponentially up to 9.38 hours necessarily to process 100 generations. The initial best fi tness of 9.55% improved steeply four times in the fi rst 55 generations reaching the value of 2.18% and slightly upgraded to 1.81% for the next 45 generations. The average length tended to grow gradually form 11 to 1426 in the fi rst 80 generations. Then it almost tripled up to 3724 in the fi nal generation. The verifi cation test after 1000 new test samples gave the result of 1.55%. The fi gure 30 presents a subset of 16 test samples.

Figure 30. 9-D verifi cation test

Page 45: Marcin Kosicki AAC Thesis

45

16-Dimensional TestThe fi fth model required 16 inputs and was based on a 4 by 4 grid of control points. Similarly to the previous experiment points’ Z-components were parametrised. Total number of 1600 samples provided training data for the GP algorithm. The run’s statistic are presented below (Figure 31).

Figure 31. 16-D experiment statistics

Marcin Kosicki AAC 2015

56.96

42.22

4.510.0165

6109

2966

1334

873

12.24

0.0306

0.0448

0.0591

0.0651

0.0309

27.72

Page 46: Marcin Kosicki AAC Thesis

46

The best fi tness improved noticeably slower than in the previous experiments starting from 6.51% and gradually improving up to 3.09% in the 125th generation. For the next 15 generations it remained relatively stable and ended with 3.06% The average length rose gradually form 12.24 at the beginning of the run till the 125th generation up to 2966. Then it grew sharply in the next 5 generation and doubled up to 6109 at the end. Computational time trend was similar to previously observed with 27.72 hours required to process 100 generation and 56.96 for 135 generations. The verifi cation error was 3.12% for 1600 random samples (Figure 32).

Figure 32. 16-D verifi cation test

Integrating Supervised Data Mining into Performance Oriented Design

solSimsolGP

Page 47: Marcin Kosicki AAC Thesis

47

25-Dimensional TestThe sixth experiment was based on the model that had 25 inputs matching z-components’ of control points spread on a 5x5 grid. Total number of 2500 instances were generated and evaluated as training data. The evolution of the mapping function, that run for 145 generations, can be seen below (Figure 33)

Figure 33. 25-D experiment statistics

Marcin Kosicki AAC 2015

4042

5348

3477

1270

2972

1509

45031

0.02331.001

7.072611.9208

23.08031.4061

61.61266.342

0.05340.05380.0569

0.0591

0.06520.0682

0.0798

0.091

Page 48: Marcin Kosicki AAC Thesis

48

The best individual fi tness starting form 9.1% gradually improved reaching 6.52% after 60 generation and 5.69% in the 105th generation, and fi nally almost halved the initial value reaching 5.34%. The average length recored an upward trend starting form 19 up to 1509 in the 50th generation. Then it increased sharply up to 2972 in the 60th generation and slipped back to 1270 in the 85th generation. It remained stable for 15 generation and climbed in the 105th generation to 3477 and remained stable again until it picked at 5348 in the 140th generation and fi nally dropped to 4042. Computational time, as in previous examples, gradually increased up to 66.34 hours required to process 145 generations. The verifi cation test produced an average error of 5.74% per individual based on 2500 random samples (Figure 34).

Figure 34. 25-D verifi cation test

Integrating Supervised Data Mining into Performance Oriented Design

solSimsolGP

Page 49: Marcin Kosicki AAC Thesis

49

CRITICAL ASSESSMENT

The assessment of the presented study will be based upon the accuracy of the developed functions in relation to dimensionally of the input parametric models. Based on this criterium the method described has been successful in automated creation of analytical approximations of total, solar radiation for a given parametric models in the context of buildings’ envelope. To my knowledge, there are no examples of this method applied as a design data extraction technique with this kind of performance analysis. The experiments proved that even for the 25-dimensional parametric model, GP were able to produce a function with an acceptable error rate of 5.43% per individual which still proves that it can correctly uncovers the overall performance tendency. The average computation time of 1 ms is 283 times faster compared to ‘original’ radiation simulation which has signifi cant implementation implications (Figure 35). The results proved that it can effi ciently eliminate the necessity of using the radiation simulation to assess its performance. Moreover, the experiments demonstrated, that highly accurate functions can be build based on a relatively small set of samples, even for complex parametric models, compared to standard populations’ sizes used in a traditional Genetic Algorithm. The reason for that is that all the samples contributed in every GP generation providing constant feedback for the process of symbolic regression, in contrast to GA’s where all the intermediate performance evaluations are lost in the search for the fi ttest instance. Thus, the proposed method should be seen as much more effi cient way of managing time required to compute performance simulations.

The solar simulation used in this thesis gives the opportunity to examine how the geometry of building form might aff ect the account of total solar radiation accumulated in its thermal mass. However the local climate conditions were set up to London, Gatwick, the building itself was an abstract test model. It did not take into account the infl uence that surrounding buildings might have into its solar performance. In real case scenarios, the role of the site conditions is of grate importance. Site-specifi c informations may signifi cantly aff ect the patterns in training data sets. In that cases methods for symbolic regression of implicit or discontinuous functions may be required. This problem require further research that are far beyond the scope of this thesis.

One of the most important shortcomings of the current implementation is that in every experiment apart form progressive improvements in the best fi tness, GP populations experience rapid growth of the average size (number of nodes) of the program. In general, the growth of the programs is expected as a part of solving a problem. Because GP run started form populations of small random programs, the growth of its complexity is

Marcin Kosicki AAC 2015

Page 50: Marcin Kosicki AAC Thesis

50

necessary to comply with all the fi tness cases included in training data. The negative eff ect occurred when programs continued to grow rapidly without noticeable improvement in terms of fi tness. The research reveal that the average length of the programs experienced similar trends in all the experiments and was not a function of the complexity of the input parametric models. That phenomena was noticed by other researchers and it is known as ‘bloat’ (Poli et al. 2008). It signifi cantly aff ected the performance of GP, since large programs are computationally expensive to evolve and interpret. Therefore, anti-bloat techniques should be implemented and tested for speed and accuracy. Potentially the use of multi-objective optimisation where programs’ fi tness and length work as objectives can benefi t as an anti-bloat policy.

Additionally, since GP evolved mathematical formulas which can be simplifi ed, implementation of systems for automatic simplifi cation of algebraic expressions can signifi cantly improve the overall performance no only when applied to the fi nal function but also as an intermediate step in GP heuristic. Moreover, experiments showed that the computational time is highly correlated to the number of samples used. Limiting sample set size will cause GP algorithm to converge faster, but may noticeably aff ect the accuracy of its outcome. Therefore, further research is required to determine the acceptable trade-off between confl icting objectives.

The advantage of the proposed methodology is that in can be easily applicable for diff erent test cases. The phase were training data is generated is separated form the actual process of regression. It means that other types of simulations or diff erent parametric models can be used instead of presented one. As long as the whole process is consistent it can produce a useful knowledge in a form of analytical function. That gives a grate opportunity for creating a general method applicable to solve variety of design challenges. The aim of this work was to demonstrated the benefi ts of adopting data mining techniques into the preliminary design process. Solar radiation analysis are only one of the performance simulations from which design would benefi t. Wind, structural and HVAC performance simulations should also be examined if they can produce training that that could be approximated with similar accuracy. It will allow to integrate them more tightly with design processes, and widen the range of performance assessments that can be simultaneously analysed which will aff ect the way architectural design is conceived.

models’ dimensions

training error [%]

verification error [%]

number of samples best length

number of generation

Interpreting Time [ms]

1 0.097 0.693 100 4291 140 1

2 0.169 0.51 200 4957 100 1

3 0.77 0.593 300 873 130 1

9 1.81 1.55 900 2355 100 1

16 3.09 3.12 1600 5303 135 1

25 5.69 5.74 2500 10519 145 1

Figure 35. Summary of the experiments

Integrating Supervised Data Mining into Performance Oriented Design

Page 51: Marcin Kosicki AAC Thesis

51

Integrating data mining techniques into design processes will probably become standard practice in architecture in the years to come. The ability to uncover the patterns between input parameters and evaluation values can signifi cantly contribute to the fi eld of performance oriented design. The conceptual motivation, as well as its performance and accuracy was developed and tested in this thesis.

The research showed that the application of supervised data mining techniques in a form of symbolic regression via Genetic Programming can represent a total, passive, solar radiation of a particular instance of a parametric model as an analytical function of its inputs’ parameters. 5600 buildings’ envelopes based on six parametric models, with diff erent levels of complexity, were created and evaluated to form training data sets. Total number of 75 million candidate functions were generated over 750 generations by a Genetic Programming algorithm to fi nd the most accurate mapping functions for each model. The functions’ accuracy was verifi ed based on a 5600 new, randomly generated samples that were not the part of the original training sets. It was proved that reasonable error rates can be achieved even for complex parametric models.

The results proved that it is possible to automatically create functions that can effi ciently replace performance simulations. Once the acceptable mapping function is obtained performance calculations became computationally less expensive than in the ‘original’ simulation. Moreover, the ability to express performance assessment in an analytical form can benefi t in better understanding of the analysed search space. Time saving benefi ts make the proposed methodology particularly suitable to couple with heuristic optimisation algorithms, like Generative Algorithms. Fitness evaluation in a form of analytical function overcomes the necessity of using time consuming simulations to asses every individual in a population. It can signifi cantly contribute to form fi nding in performance oriented design, especially when used in multi-objective exploration. Therefore, due to considerable time savings, the architects will be able to tackle much more objectives, when working with multiple design alternatives in the preliminary design stage. It will undoubtedly improve sustainability of proposed solutions because and leda to projects that will be much more adapted into their environment.W

CONCLUSIONS

Marcin Kosicki AAC 2015

Page 52: Marcin Kosicki AAC Thesis

52 Integrating Supervised Data Mining into Performance Oriented Design

AISH, R., WOODBURY, R. (2007) Multi-Level Interaction in Parametric Design, in: Proceedings Eighth International Symposium SG 2007, Kyoto, Japan, 25–27, June 2007, Springer.

BAGHLANI A., SATTARI M., MAKIABADI M. H (2014) Application of genetic programming in shape optimisation of concrete gravity dams by metaheuristics. Cogent Engineering 2014

BECKER R. (1999), Research and development needs for better implementation of the performance concept in building, Automation in Construction 8 (4) 525–532.

CHONG Y.T., CHEN C.H., LEONG K.F. (2009), A heuristic-based approach to conceptual design, Research in Engineering Design 20 (2) 97–116.

CHRONIS A., TSIGKARI M., GIOUVANOS E., AISH F., ZAKI A.A (2012), Performance Driven Design and Simulation Interfaces: A Multi-Objective Parametric Optimization Process, In Proceding from SimAUD 2012, Symposium on Simulation for Architecture and Urban Design

DARREN R., STONE A. (2004) Irradiation Modelling Made Simple: The Cumulative Sky Approach and Its Applications. Plea2004 - The 21st Conference on Passive and Low Energy Architecture. Eindhoven, The Netherlands,

DUFFY A.H.B., ANDREASEN M.M., MACCALLUM K.J., REIJERS L.N. (1993) Design coordination for concurrent engineering, Journal of Engineering Design 4 251–265.

EGGERMONT J. (2005) Data Mining using Genetic Programming Classifi cation and Symbolic Regression, Phd Thesis, Institute for Programming research and Algorithmics,Leiden Institute of Advanced Computer Science, Faculty of Mathematics

ENERGYPLUS ENGINEERING REFERENCE http://apps1.eere.energy.gov/buildings/energyplus/pdfs/engineeringreference.pdf (accessed August 31, 2015).

EVINS R. (2013) A review of computational optimisation methods applied to sustainable building design. Renewable and Sustainable Energy Reviews 22, 230-245

BIBLIOGRAPHY

Page 53: Marcin Kosicki AAC Thesis

53Marcin Kosicki AAC 2015

FAYYAD U.M., PIATETSKY-SHAPIRO G., SMYTH P. (1996) From data mining to knowledge discovery: An overview. In U.M. Fayyad, G. Piatetsky- Shapiro, P. Smyth, and R. Uthurusamy, editors, Advances in Knowledge Discovery and Data Mining, pages 1–30. AAAI Press.

FIORINA, C. (2004) Information: the currency of the digital age, speach, Oracle OpenWorld San Francisco December 6, 2004.

FRAZER, J. (eds.) in T.Maver and H.Wagter (1987) Plastic Modelling – The Flexible Modelling of the Logic of Structure and Space CAAD Futures 87, conference proceedings (Elsevier 1988), pp 199-208.

FREITAS A.A. (2002) A survey of evolutionary algorithms for data mining and knowledge discovery. In A. Ghosh and S. Tsutsui, editors, Advances in Evolutionary Computation, pages 819–845. Springer-Verlag,

FRIENDLY, M. (1991). Statistical Graphics for Multivariate Data , SAS SUGI 16 Conference.

HANNA S. (2014) Computational Synthesis. Lecture notes: MSc. Adaptive Architecture and Computation 2010-2011, The Bartlett School of Graduate Studies, University College London.

KÄMPF H. J., AND ROBINSON D. (2009) Optimisation of building form for solar energy utilisation using constrained evolutionary algorithms, Energy and Buildings, Volume 42, Issue 6, 807–814

KNOWLES J., CORNE D. (1996) The Pareto archived evolution strategy: A new baseline algorithm for multiobjective optimization, in Proceedings of the Congress on Evolutionary Computation. Piscataway, NJ: IEEE Press, pp. 98–105.

KOLAREVIC B. (2003), Computing the Performative in Architecture. in: Proceedings of the 21th eCAADe Conference: Digital Design. Graz, Austria, 17–20 pp. 457–464.

Koza J.R. (1992) Genetic Programming. MIT Press.

MÖLLER T., TRUMBORE B. (1997) Fast Minimum Storage Ray Triangle Intersection, Journal of Graphics Tools, 2(1):21–28.

O’SULLIVAN B. (2003) Interactive constraint-aided conceptual design, Artif. Intell. Eng. Des. Anal. Manuf. 16 303–328.

P.H.G. VAN LANGEN, F.M.T. BRAZIER, (2006) Design space exploration revisited, in: Artifi cial Intelligence for Engineering Design, Analysis and Manufacturing, vol. 20 (Issue 2, Special Issue: Design Spaces: The Explicit Representation of Spaces of Alternatives),.PAHL G., BEITZ W., FELDHUSEN J., GROTE K.H., (2007) Engineering Design: A Systematic

Page 54: Marcin Kosicki AAC Thesis

54 Integrating Supervised Data Mining into Performance Oriented Design

Approach, Springer, Verlag, London.

PEREZ, R., SEALS, R., MICHALSKY, J., (1993), All-weather model for sky luminance distribution – preliminary confi guration and validation, Solar Energy Vol. 50 No. 3, p235-243.

POLI R., LANGDON W.B, MCPHEE N.F, (2008) A Field Guide to Genetic Programming http://www.gp-fi eld- guide.org.uk (accessed August 31, 2015).

RITTLE, H., & WEBBER, M. (1973). Dilemmas in a General Theory of Planning. Policy Sciences, 4, 155-169.

ROUDSARI, S., PAK, M., (2013). Ladybug: a parametric environmental plugin for grasshopper to help designers create an environmentally-conscious design. In: Proceedings of the 13th International IBPSA Conference Held in Lyon, France Aug 25–30th

SCHMIDT, M., LIPSON, H. (2009) Distilling free-form natural laws from experimental data. Science 324(81), 81–85 Schneider, P. Eberly, D. (2003). Geometric Tools for Computer Graphics. Morgan Kaufmann Series inComputer Graphics and Geometric Modeling. Morgan Kaufmann Publishers (Elsevier Science).

TATSUKAWA T., NONOMURA T., OYAMA A, FUJII K. (2013) A New Multiobjective Genetic Programming for Extraction of Design Information from Non-dominated Solutions. In Proceedings form 7th International Conference, EMO 2013, Sheffi eld, UK, March 19-22, 2013.

TREGENZA, P.R. (1987) Subdivision of the sky hemisphere for luminance measurements. Lighting Research & Technology 19, 13-14.

TSIGKARI, M., CHRONIS, A., JOYCE, S., DAVIS, A., FENG, S. AND AISH, F., 2013. Integrated design in the simulation process. In: O’Brian, L., Khan, A. and Gunay, B., eds. SimAUD ‘13 Proceedings of the Symposium on Simulation for Architecture & Urban Design. San Diego, CA: Society for Computer Simulation International

TURNER, A. 2011. Morphogenetic Programming. Lecture notes: MSc. Adaptive Architecture and Computation 2010-2011, The Bartlett School of Graduate Studies, University College London.

TURRIN M., VAN DEN HAM E., KILIAN A., SARIYILDIZ S., (2010) Integrated design of a large span roof: a parametric investigation on structural morphology, thermal comfort and daylight. Proceedings of ICCCBE, International Conference, Nottingham (UK).

TURRIN, M, BUELOW VON, P, FALK, A,(2010) Optimization of structural form using a genetic algorithm to search associative parametric geometry. Structure and Architecture, International Conference, Guimaraes, Portugal.

Page 55: Marcin Kosicki AAC Thesis

55Marcin Kosicki AAC 2015

WANG J. (2001). Ranking engineering design concepts using a fuzzy outranking preference model, Fuzzy Sets and Systems 119 161–169.

WANG J. (2002). Improved engineering design concept selection using fuzzy sets, International Journal of Computer Integrated Manufacturing 15 (1) 18–27.

WOLFRAM 2015, Permutation http://mathworld.wolfram.com/Permutation.html (accessed August 31, 2015).

ZITZLER E., (1999) Evolutionary algorithms for multiobjective optimization: Methods and applications, Doctoral dissertation ETH 13398, Swiss Federal Institute of Technology (ETH), Zurich, Switzerland

Page 56: Marcin Kosicki AAC Thesis

56 Integrating Supervised Data Mining into Performance Oriented Design

APPENDIX

!;2.112730490839886;-0.2270661394295619;-3.356355403390794;-2.87383157875879;3.6230677341448594;1.9168380556741695;0.7427843471388993;-3.0652325965932-823;2.1221477513709166;-3.9943627731667397;-3.7409922676377927;-2.663816997034779;3.6987330276773527;-3.482540649299102;1.8871128865515345;0.5019964872219855;-1.1192777118215447;-2.337480884682641;2.861204734377102;1.2259138488664547;0.12261729373978802;4.356696425180008;-2.585476313401572;-0.7540040498485006;2.4251702341825077;0.4579248310507902;-1.3676468951444698;4.114277718022198;2.744257162795475;0.2862069219847001;-2.835385611105179;1.13947-0287643995;-0.8317167469655837;3.2859560470345848;-1.7567181664305478;-0.3274157456776301;3.97819764145569;-4.160239421278372;-2.759238679146463;3.061949885867575;-4.348543399475627;-1.2944427209799372;1.6088953352973654;2.9732519978748435;3.6310417913572426;3.324585969428121;3.454266222619161;-0.5481609691626446;-3.7470959451714645;-4.664606906188469;-3.766004915571534;2.0987042632193287;-3.390028151500183;-0.9704580050503244;1.0972387095624754;-2.9618233320503515;3.328124956594529;2.1975759323316684;3.251113356451972;-1.02549153706227;3.2393030938606078;-3.1608288838648626;-3.6042232782115544;-2.4338302906590137;0.7591844647918347;-2.4506888285375994;3.7519305106254777;2.590821896455431;4.4116309292869325;-3.957301039168023;-2.50499289964-7677;2.930564982230912;4.389369512611006;-2.7584816626768847;4.513830298045358;0.27620422986015924;-3.6998637307195503;-0.3729562191758298;-4.67245093682219;-0.36908001180415173;-4.680216419005;0.14349248629577627;4.723161425663431;-4.812138152798754;1.8586099261911029;1.8428959938525944;-2.7830372051223407;1.9628355117949239;4.544442103534275;0.6726687642781402;-2.2032354456613135;0.6823843736017512;-1.1642394221062746;-3.6670675955525143;-1.4322528099306506;-4.140786994790098;-0.09956845419682026;0.9685515527714026;4.903329757718625;4.731038625152058;-3.469634718168062;-1.3887739907348626;0.49344590964816337;-2.2044020753250635;-1.1903050585552668;-2.2501287132106906;-0.7138566034784164;0.04367782722583424;-3.9861705658177513;-0.817084242859007

@;140;1276.0688108594388;0.14589084992899568;6980.58874;32405871%;112;0;111;111;0;112;113;78;112;112;16;111;111;78;97;112;112;113;111;99;74;113;77;111;11;112;112;10;86;113;113;79;112;110;100;112;112;113;0;16;112;110;112;113;20;111;113;49;112;112;87;112;0;111;0;112;113;112;111;113;110;96;111;112;65;82;99;110;113;110;112;111;112;112;111;91;42;113;0;92;112;85;23;111;111;87;112;97;91;112;110;110;18;49;84;112;112;10;86;113;113;79;112;72;73;110;113;0;111;31;112;91;112;0;0;14;111;26;55;4;56;38;47;111;26;110;47;25;112;81;112;111;85;21;19;81;110;63;113;111;111;14;111;110;111;42;19;6;47;113;110;111;61;113;112;112;111;81;110;89;23;5;7;10;112;73;21;14;110;113;33;110;111;0;111;111;110;113;112;50;21;99;112;89;113;57;113;27;3;113;66;111;113;110;113;40;112;111;110;37;113;112;112;111;14;8;110;112;50;21;65;111;55;20;24;111;6;84;64;30;112;113;110;95;112;6;71;111;111;78;97;112;112;113;111;99;74;113;77;111;11;112;29;113;113;79;112;110;100;112;112;113;0;16;112;110;112;113;20;14;50;2;12;111;19;112;57;113;14;110;113;7;113;27;3;112;113;62;44;110;63;34;73;113;113;113;112;93;76;27;111;113;71;113;111;19;113;110;112;110;93;112;112;112;113;58;0;17;16;96;110;16;57;112;31;110;19;111;99;85;111;14;51;97;27;14;111;110;87;43;110;113;113;67;113;93;111;11;111;111;82;112;111;82;111;113;111;97;113;112;110;50;113;112;22;110;0;113;113;45;46;111;83;112;112;111;65;19;75;113;112;36;112;113;113;112;110;63;113;0;111;113;23;113;70;53;0;22;110;64;15;78;38;112;2;64;112;113;110;65;112;113;14;13;18;112;111;92;61;111;111;45;111;98;96;110;26;26;50;112;55;78;16;112;0;51;112;112;111;111;110;111;31;113;110;111;113;113;111;113;110;30;113;47;113;112;110;112;110;15;111;68;110;18;63;113;45;112;52;111;111;110;20;55;112;112;75;111;26;21;112;83;63;31;112;17;11;5;49;51;60;111;82;113;112;112;57;113;94;113;113;7;112;113;110;75;2;29;110;77;20;112;111;62;31;111;63;113;111;111;14;111;110;111;42;39;110;113;66;111;113;11;47;111;31;111;110;53;112;112;91;96;112;12;47;29;89;111;113;71;77;111;71;48;113;110;111;61;113;99;10;112;34;21;36;89;6;111;113;29;40;50;80;1;110;73;59;112;10;86;82;113;3;113;110;23;111;0;113;47;112;112;3;43;49;113;110;30;113;71;113;112;110;21;112;112;56;61;11;75;49;51;112;111;16;16;79;110;26;61;40;65;9;110;111;61;1;111;15;59;111;82;111;12;113;10;21;54;2;110;110;19;95;111;110;110;113;112;112;58;112;111;112;112;111;112;83;63;113;112;57;111;111;111;78;97;112;112;113;110;110;19;5;74;113;77;111;11;112;112;10;86;113;113;79;112;72;73;110;113;0;111;66;112;91;112;0;0;14;112;113;110;95;112;6;71;111;111;78;97;112;112;113;111;99;74;113;77;111;11;112;112;10;86;113;113;79;112;110;100;112;112;113;0;16;112;110;112;113;20;14;50;2;12;111;19;112;57;113;47;110;113;7;113;27;3;112;113;62;44;110;63;34;73;113;113;113;112;112;39;66;76;27;111;113;71;113;111;19;113;110;112;110;93;112;112;112;113;58;0;17;16;96;110;16;57;112;31;110;19;111;99;85;111;14;51;97;27;14;111;110;87;43;110;113;113;67;113;93;111;11;20;110;111;61;1;111;15;59;111;82;111;12;113;10;21;54;2;54;112;51;111;112;24;110;31;42;65;59;5;7;37;113;43;79;56;112;112;42;54;113;76;47;110;86;111;91;8;112;10;112;12;47;29;112;96;111;110;8;112;113;0;111;76;73;111;62;112;110;100;66;88;86;100;111;110;111;91;111;29;113;48;113;16;110;113;113;67;113;93;111;11;111;111;82;112;111;82;111;113;14;112;0;51;112;112;111;111;110;111;42;113;110;111;113;113;111;113;110;30;113;47;113;112;110;12;112;17;11;5;49;72;60;111;82;113;112;112;57;113;94;113;113;7;112;113;110;69;2;111;6;84;110;77;20;112;111;62;31;111;63;113;111;111;14;111;110;111;42;39;3;111;113;71;77;111;71;48;113;110;111;61;86;112;34;21;36;89;6;111;113;112;112;113;27;112;81;113;29;76;111;70;110;113;112;16;111;73;112;112;113;111;99;74;113;77;57;111;110;87;43;110;113;37;110;111;110;53;112;112;91;96;112;12;47;1;111;15;59;111;82;111;12;113;49;73;110;97;74;99;112;89;113;57;113;27;3;112;110;110;112;111;27;32;111;113;112;113;110;65;112;113;14;13;18;112;111;92;112;113;113;111;31;113;113;113;27;3;7;45;44;110;93;113;111;63;96;46;110;63;113;85;110;18;50;111;111;45;111;98;96;110;26;26;67;72;28;111;112;56;112;46;55;69;63;80;40;50;80;1;110;73;59;7;82;113;3;113;110;23;111;0;113;47;112;112;3;43;49;110;37;32;112;111;16;16;79;110;79;62;40;65;9;110;111;61;1;111;15;59;111;82;111;12;113;10;21;72;81;111;16;99;50;2;12;111;19;112;57;113;14;110;113;7;113;27;3;112;113;62;44;110;63;34;73;113;113;113;112;112;39;66;76;27;111;113;71;113;111;19;113;110;112;110;93;112;112;112;113;58;0;17;16;96;110;16;57;110;19;111;112;19;21;84;111;14;51;97;27;14;111;110;87;43;110;113;113;67;113;93;111;11;111;111;82;112;111;82;111;113;111;97;113;112;110;50;113;45;112;39;50;112;55;78;16;112;0;51;112;112;111;111;110;111;42;113;39;7;82;113;3;113;110;23;111;0;113;47;112;112;3;74;49;110;37;32;112;111;16;16;79;110;79;62;40;65;9;110;111;61;1;111;15;59;111;82;111;12;113;10;21;54;111;111;21;42;72;81;112;113;78;112;112;16;111;111;78;81;112;112;113;111;99;74;113;77;111;11;16;111;110;87;43;110;113;37;110;111;111;113;53;112;0;48;112;110;111;2;111;53;113;112;110;111;0;111;111;110;113;112;50;21;99;112;89;113;57;113;27;3;113;66;111;113;110;113;40;112;111;110;37;113;112;72;111;55;20;24;111;6;84;64;30;112;113;110;95;112;6;71;111;111;78;97;112;112;113;111;99;74;113;77;111;11;112;112;10;86;113;113;79;112;110;100;112;112;113;0;16;112;110;112;113;20;14;50;2;12;111;19;112;57;113;14;110;113;7;113;27;3;112;113;62;44;110;63;34;73;113;113;113;112;93;76;27;111;113;71;113;111;19;113;110;112;110;93;112;112;112;113;58;0;17;16;96;110;16;57;112;31;110;19;111;99;85;111;14;51;97;27;14;111;110;87;43;110;113;113;67;113;93;111;11;111;111;82;112;111;82;111;113;111;97;113;112;110;50;113;112;22;110;0;113;113;45;46;111;83;112;112;111;65;19;75;113;112;36;112;113;113;112;110;63;113;0;111;113;23;113;70;53;0;22;110;64;15;78;38;112;2;64;112;39;50;112;55;78;16;112;0;51;112;112;111;111;111;82;113;112;112;57;113;94;113;113;7;112;113;110;69;2;29;110;77;20;112;113;111;97;113;112;110;110;110;18;86;40;113;112;22;110;0;113;113;45;46;111;83;112;112;111;65;19;75;113;111;86;29;1

1D Test Data

GP developed solution for 1D-problem

Is an ouput fi le generated by the GP algorithm. #- start GP parameters@- number of geenerations; average fi tness; best fi tness; average length%- fl attend best solution code

Page 57: Marcin Kosicki AAC Thesis

57Marcin Kosicki AAC 2015

12;2;64;112;39;50;112;55;78;16;112;0;51;111;63;113;111;111;14;111;110;111;42;39;110;113;66;5;89;111;113;71;77;111;71;48;113;110;111;61;113;0;10;112;34;21;36;89;6;111;113;112;112;113;112;111;113;110;96;111;112;65;111;14;111;92;112;113;62;111;78;110;65;111;113;85;110;111;111;110;20;29;112;112;75;111;26;21;0;31;50;29;110;63;113;85;110;18;50;99;110;113;110;112;111;112;112;111;91;42;86;112;85;23;111;111;87;112;97;91;112;110;110;18;49;84;110;110;113;45;112;113;113;111;6;111;111;87;111;97;61;112;110;110;18;63;84;112;110;71;53;112;1;66;111;26;75;112;81;113;29;62;111;112;110;20;90;50;31;69;112;1;66;111;26;55;4;56;38;111;111;87;111;97;31;112;110;110;18;16;40;110;110;71;29;112;1;66;111;26;110;47;25;112;81;113;20;76;113;110;112;113;113;111;113;110;30;113;45;112;83;4;113;113;113;111;110;45;2;59;19;7;45;60;111;82;10;80;111;90;111;11;1;113;113;110;97;8;111;83;112;55;113;113;110;111;20;71;110;56;25;112;111;86;29;113;61;110;110;34;112;59;112;27;57;111;110;111;112;112;111;81;110;89;23;5;112;0;51;37;111;48;111;113;110;3;110;112;54;113;111;113;59;110;53;112;31;67;113;20;14;112;85;113;86;55;110;96;112;0;69;110;5;32;113;42;91;52;111;110;110;15;111;68;110;113;111;110;113;75;112;113;20;29;110;69;30;112;113;62;111;78;113;110;15;113;111;91;10;44;113;45;112;113;113;111;6;111;111;87;111;97;61;112;110;110;18;63;84;112;110;71;53;112;1;66;111;26;75;112;81;113;29;62;111;56;31;110;63;113;85;110;18;50;112;112;82;19;56;112;113;111;91;10;44;70;65;111;113;61;70;48;31;112;96;111;19;86;31;112;110;110;112;111;27;32;111;113;112;113;110;65;112;113;14;13;18;112;111;92;112;113;62;111;78;110;65;111;113;85;110;18;50;29;110;63;113;85;110;18;50;111;111;45;111;98;96;43;67;72;28;111;112;56;112;46;112;63;111;16;55;69;63;80;40;50;113;3;113;110;23;111;0;113;47;112;112;3;43;49;113;21;51;112;111;16;16;79;110;26;62;40;65;9;110;111;61;1;111;15;59;111;82;111;12;113;10;21;54;2;110;81;111;110;110;113;112;112;58;112;111;112;112;111;112;83;63;113;112;57;111;111;111;78;97;112;112;113;110;110;19;5;74;113;77;111;11;112;112;10;86;113;113;79;112;4;73;110;113;0;111;66;112;91;112;0;0;14;112;113;110;95;112;6;71;111;111;78;97;112;112;113;111;99;74;113;77;111;11;112;112;10;86;113;113;79;112;110;100;112;112;113;0;16;112;110;112;113;20;14;50;2;12;111;19;112;57;113;14;110;113;7;113;27;3;112;113;62;44;110;63;34;73;113;113;113;112;112;39;66;76;27;111;113;71;113;111;19;113;110;112;110;93;112;112;112;113;58;0;17;16;96;110;16;57;112;31;110;19;111;99;85;111;14;51;97;27;14;111;110;87;43;110;113;113;67;113;93;111;11;111;111;82;112;111;82;111;113;111;97;113;112;110;50;113;112;22;110;0;113;113;45;46;111;83;112;112;55;113;113;110;111;110;112;113;113;111;76;60;111;82;11;80;111;90;111;11;1;113;113;110;97;8;111;83;112;55;113;113;110;111;20;111;26;75;110;56;25;112;111;86;29;113;61;110;110;34;112;59;112;27;57;111;110;111;112;112;111;81;110;89;23;5;7;37;111;48;111;113;110;3;110;112;54;113;111;113;59;110;53;112;31;67;113;20;14;112;85;113;86;55;110;96;112;0;69;110;5;32;113;42;91;52;111;110;110;15;111;68;110;113;111;110;113;75;112;113;20;29;110;69;30;112;110;111;20;71;110;56;25;110;63;113;85;110;18;50;112;112;82;19;56;112;113;111;91;10;44;70;65;111;113;61;70;48;31;112;96;111;110;8;112;113;0;111;76;73;111;62;112;110;100;66;88;86;71;110;56;25;112;111;86;29;42;111;110;110;15;111;68;110;113;111;110;113;75;112;113;20;29;110;69;30;112;113;62;111;78;110;65;111;86;29;110;63;113;85;110;18;50;112;112;111;85;21;19;56;112;113;111;91;10;44;70;65;111;31;48;31;73;112;39;50;112;55;112;111;85;21;19;16;112;0;51;112;112;111;111;110;111;42;113;110;111;113;113;111;113;110;30;113;47;113;112;110;112;110;15;111;68;110;18;63;113;113;80;36;112;52;111;111;110;20;55;112;112;75;111;26;21;0;31;112;17;11;5;49;51;60;111;82;113;112;112;57;113;94;113;113;7;112;113;110;69;2;29;110;77;20;112;111;62;31;111;63;113;111;111;14;111;110;111;42;39;110;113;66;111;113;11;47;111;16;111;110;53;112;112;91;96;112;12;47;29;89;111;113;71;77;111;71;48;113;110;1;112;34;21;36;89;6;111;113;112;112;113;112;111;113;110;96;111;112;65;111;14;111;111;47;112;71;112;91;112;111;113;110;110;113;110;15;111;68;110;110;19;111;112;56;112;46;70;85;112;111;91;42;113;0;92;113;45;112;113;113;111;6;111;111;87;111;97;61;112;110;110;18;63;84;112;110;71;53;112;1;66;111;26;75;112;81;113;29;62;111;112;110;20;90;50;31;112;17;11;5;113;111;99;74;113;77;111;11;112;112;10;86;113;113;79;112;110;100;112;53;111;19;112;57;113;14;110;113;7;113;27;3;112;113;62;44;110;63;34;73;113;113;113;112;112;39;66;5;27;111;113;71;113;111;37;113;110;112;110;93;112;110;15;112;112;0;111;0;112;113;78;112;112;16;111;111;78;97;112;112;113;111;99;74;113;77;111;11;112;112;10;86;113;42;113;113;113;112;112;39;112;80;110;56;25;76;27;111;113;71;112;112;111;58;84;111;73;75;65;112;91;113;113;97;80;7;14;111;110;87;43;113;113;69;110;99;111;15;59;111;82;112;12;113;10;21;54;111;111;21;60;72;81;112;110;113;96;1;113;45;73;110;112;111;0;112;113;110;113;89;110;113;110;112;110;110;87;29;50;111;39;113;56;113;86;41;91;113;38;12;111;112;27;57;111;111;69;112;83;113;19;24;111;47;75;77;113;30;111;67;110;113;113;11;34;7;112;113;14;46;93;113;113;29;62;112;113;48;112;81;113;29;62;111;113;113;112;19;113;51;113;27;71;44;111;70;83;23;113;45;112;113;111;113;110;95;112;6;71;49;76;112;111;26;111;111;65;69;112;78;64;92;111;111;110;111;110;20;55;112;112;15;111;26;70;17;55;112;111;30;7;43;31;110;87;43;113;45;112;113;39;112;89;113;29;91;111;111;110;20;55;111;110;48;111;26;25;99;31;110;16;57;112;31;110;19;111;99;85;111;14;51;97;27;14;112;44;11;38;51;99;110;113;110;112;111;112;112;111;91;42;86;112;85;23;111;111;87;112;97;91;112;110;110;18;49;84;110;110;71;69;112;1;66;111;26;55;4;56;38;111;111;87;111;97;31;112;110;110;18;86;40;110;110;71;29;112;1;66;111;26;110;47;25;112;81;113;29;76;113;110;112;113;113;111;113;110;30;113;45;112;83;4;39;60;111;82;10;80;111;90;111;11;1;113;113;110;113;111;110;113;75;112;113;20;29;110;69;30;112;113;62;111;78;110;65;111;86;29;110;63;113;85;110;18;50;112;112;82;19;56;112;113;111;91;10;44;70;65;111;83;112;55;113;113;110;111;20;71;110;56;25;112;111;87;111;97;31;113;61;110;110;34;112;73;112;27;57;111;110;111;112;112;111;81;110;89;23;5;112;0;51;37;111;48;111;113;110;3;110;112;54;113;111;113;86;110;53;112;31;67;113;20;14;112;85;113;86;55;110;96;112;0;69;110;5;32;113;42;91;52;111;110;110;30;113;47;113;112;110;112;110;15;111;68;110;18;63;113;113;80;36;112;52;111;111;110;20;55;112;112;75;111;26;21;0;31;112;17;11;5;49;111;113;61;70;48;31;112;96;111;110;8;112;113;0;111;76;73;111;62;112;110;100;66;88;86;31;112;110;110;112;111;27;32;111;113;112;113;110;57;112;113;14;13;18;112;111;92;112;113;62;111;78;110;65;111;113;85;110;18;50;29;110;63;113;113;113;79;112;4;73;110;113;0;111;66;112;91;112;0;0;14;110;18;50;111;111;45;111;98;96;43;67;72;28;111;112;56;112;46;112;63;111;16;55;69;63;80;40;50;80;1;110;73;59;7;82;113;3;113;110;23;111;0;113;47;112;111;99;85;49;110;37;32;112;111;16;16;79;110;26;62;40;110;113;112;16;111;73;112;112;113;111;99;74;113;77;111;11;16;111;110;87;43;110;113;37;110;111;111;113;53;112;0;48;112;110;111;2;111;53;113;112;110;111;0;111;111;110;113;112;50;21;99;112;89;113;57;113;27;3;113;66;111;111;111;87;111;97;31;112;45;110;110;71;112;91;113;113;97;80;7;112;1;66;110;110;110;110;97;110;73;12;112;10;112;12;47;95;111;110;110;113;112;112;69;112;111;112;112;111;112;83;63;113;81;59;5;7;37;113;43;79;56;112;112;42;54;113;76;47;110;86;111;91;8;112;10;112;12;47;29;112;96;111;110;8;112;113;0;111;76;73;111;62;112;110;100;66;88;86;100;111;16;99;73;81;40;1;111;15;59;111;82;111;12;113;49;73;110;97;74;99;112;89;113;57;113;27;3;9;110;111;61;1;111;15;59;111;82;111;12;113;10;21;54;2;54;112;51;111;112;24;110;31;42;110;112;113;78;112;112;16;111;40;112;112;113;111;99;74;113;77;111;11;16;111;110;87;43;110;113;37;110;111;111;113;53;112;0;48;112;110;111;2;111;53;113;112;110;111;0;111;111;110;113;112;50;21;99;112;89;113;57;113;27;3;113;66;111;113;110;113;40;112;111;110;37;113;112;112;111;14;8;110;22;65;111;55;20;110;29;112;111;113;49;112;112;87;112;0;111;0;112;113;112;111;113;110;96;111;112;65;82;99;110;113;110;112;111;112;112;111;91;42;113;0;92;112;85;23;111;111;87;112;97;91;112;110;110;18;49;84;110;110;111;78;110;65;111;86;29;69;112;1;66;111;26;76;4;56;38;111;111;87;111;97;31;112;110;110;18;86;40;110;110;71;29;112;1;66;111;26;110;47;25;112;81;112;111;85;21;19;81;110;63;113;111;111;14;111;110;111;42;19;6;47;113;110;111;61;113;112;112;111;81;110;89;23;5;7;10;112;73;21;36;110;113;33;9;111;110;111;91;111;29;113;48;113;16;55;72;81;111;16;99;43;111;6;84;64;30;112;113;111;31;113;113;113;111;110;45;2;59;19;7;45;44;36;110;110;19;95;111;110;110;113;112;112;58;112;111;8;37;113;43;79;56;112;112;42;54;113;26;47;110;60;111;91;8;112;10;112;12;47;29;112;96;111;110;8;112;113;27;111;76;73;111;62;112;110;100;66;88;86;100;111;16;99;112;0;51;81;40;1;111;15;59;111;82;111;12;113;49;73;110;97;74;111;111;21;42;72;81;11;59;5;7;37;113;43;79;56;112;112;42;54;113;76;47;110;86;111;91;8;112;10;112;12;47;29;112;96;111;110;8;112;113;0;111;76;73;111;62;112;110;100;66;88;86;100;111;16;99;73;81;40;1;111;15;59;111;82;111;12;113;49;73;110;97;74;111;111;21;42;72;81

Page 58: Marcin Kosicki AAC Thesis

58 Integrating Supervised Data Mining into Performance Oriented Design

(X1 * ((X1 - (((-4.67245093682219) / (((-1.1192777118215447) * (((-4.67245093682219) - (0.9685515527714026)) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) * (-2.7830372051223407)) *

(((-0.36908001180415173) / (((-3.469634718168062) + (((X1 / (-1.1192777118215447)) * (((((0.12261729373978802) / (((-4.664606906188469) / (((1.9628355117949239) * (X1 * (X1 - (((((((-0.09956845419682026) + (((-2.4506888285375994) *

(4.723161425663431)) - (4.731038625152058))) / (((((((((0.6823843736017512) - (1.6088953352973654)) * (X1 / (-1.1642394221062746))) * ((1.8428959938525944) * (-0.7540040498485006))) - (((1.9628355117949239) - ((0.9685515527714026) * (0.6823843736017512))) - ((((2.861204734377102) + (-4.664606906188469)) + (1.8586099261911029)) * (((-3.7409922676377927) * (-2.7830372051223407)) *

(((-0.36908001180415173) / ((4.389369512611006) * (-2.7584816626768847))) / ((X1 / ((1.139470287643995) - ((0.6823843736017512) * (X1 * X1 )))) + (1.8871128865515345))))))) * ((-1.3676468951444698) - (-2.9618233320503515))) + (3.6230677341448594)) /

(3.328124956594529)) + (-2.759238679146463))) - (-0.5481609691626446)) * ((-1.3676468951444698) - ((-0.5481609691626446) + (0.4579248310507902)))) / ((0.14349248629577627) * (((1.8428959938525944) - (4.356696425180008)) * (1.2259138488664547)))) *

(0.14349248629577627))))) * ((-2.4338302906590137) + ((((1.8871128865515345) - ((((1.6088953352973654) - (1.2259138488664547)) + (0.7427843471388993)) - (-0.5481609691626446))) - ((((-3.1608288838648626) - (((((0.14349248629577627) - ((0.6726687642781402) + (-0.7540040498485006))) * (1.9168380556741695)) * (-3.0652325965932823)) / (-3.7409922676377927))) + ((-2.7584816626768847) *

(4.356696425180008))) / (1.8871128865515345))) / (((3.2859560470345848) / ((X1 - ((((((-3.766004915571534) * (4.356696425180008)) / (4.731038625152058)) + ((0.6726687642781402) * ((2.1975759323316684) / ((4.114277718022198) / (-2.87383157875879))))) -

((3.7519305106254777) / (((((-4.348543399475627) / ((((-4.160239421278372) + (((((1.8871128865515345) - (2.1221477513709166)) * (((-3.766004915571534) * (4.356696425180008)) + (-2.4506888285375994))) * ((-2.9618233320503515) - (0.12261729373978802))) / (2.4251702341825077))) - ((0.7427843471388993) - (1.8586099261911029))) * (0.7591844647918347))) + (-2.835385611105179)) / ((((-4.140786994790098) + ((0.7427843471388993) * (2.930564982230912))) / (((-4.67245093682219) - (0.9685515527714026)) -

(((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - ((0.2862069219847001) * (((-0.36908001180415173) / (((-3.469634718168062) + (((X1 / (-1.1192777118215447)) * (((((0.12261729373978802) / (1.8871128865515345))

* (-3.766004915571534)) + (-3.356355403390794)) * (3.6987330276773527))) * ((1.2259138488664547) - ((2.1975759323316684) * ((1.8871128865515345) / (((-3.0652325965932823) / ((4.114277718022198) / (-2.87383157875879))) + (((-3.6042232782115544) /

(3.6310417913572426)) * ((-2.4338302906590137) + (-1.7567181664305478))))))))) * (-2.7584816626768847))) / (((((-3.6670675955525143) * (-3.6998637307195503)) / (4.114277718022198)) / (((2.930564982230912) / (((1.2259138488664547) - (((((-3.6670675955525143) +

(((((3.251113356451972) / X1 ) * (-2.337480884682641)) * (-1.1192777118215447)) * (-0.09956845419682026))) * ((-1.1192777118215447) + (2.1975759323316684))) + ((1.139470287643995) * ((1.2259138488664547) + ((4.731038625152058) - (1.8428959938525944))))) /

((1.8871128865515345) - (2.0987042632193287)))) / (0.9685515527714026))) - (4.114277718022198))) / (1.8871128865515345))))))) * (((1.9628355117949239) + (2.9732519978748435)) - ((((2.590821896455431) / ((-3.6670675955525143) / ((-2.663816997034779) -

(((4.723161425663431) - (((4.723161425663431) - ((((0.9685515527714026) - ((((-3.766004915571534) + (((-2.585476313401572) * (X1 + (((3.324585969428121) / (3.454266222619161)) / ((-4.812138152798754) - ((((-2.4506888285375994) - (1.2259138488664547)) *

(0.27620422986015924)) * (((3.97819764145569) * ((((((-2.4338302906590137) + (X1 / (((-0.7540040498485006) / ((-2.504992899647677) / (-0.9704580050503244))) - X1 ))) * (-2.585476313401572)) / ((0.7591844647918347) + (0.5019964872219855))) / (-4.67245093682219)) * (-2.759238679146463))) / ((-3.356355403390794) * (0.7591844647918347)))))))) / ((((-2.4506888285375994) + (((1.8871128865515345) /

(-3.482540649299102)) * (2.861204734377102))) / (((-1.1642394221062746) - (-3.1608288838648626)) * (((3.324585969428121) - ((4.903329757718625) - (-0.09956845419682026))) - ((-1.3676468951444698) + (-1.3676468951444698))))) * (-3.766004915571534)))) *

((-2.9618233320503515) * (-4.67245093682219))) / (-1.1192777118215447))) / (X1 * (2.0987042632193287))) - (((((((1.139470287643995) - (((((((((-2.835385611105179) + ((-0.5481609691626446) / ((((((0.5019964872219855) + ((4.4116309292869325) - ((2.861204734377102) +

(-2.4338302906590137)))) * ((3.324585969428121) / ((-3.390028151500183) * ((((0.12261729373978802) + (-2.9618233320503515)) - (((0.27620422986015924) * ((-1.3676468951444698) - (4.356696425180008))) * ((-4.812138152798754) * (-2.4338302906590137)))) - (1.139470287643995))))) + ((-2.337480884682641) * (-2.663816997034779))) * (1.9168380556741695)) / (-4.664606906188469)))) / (2.0987042632193287)) - (3.2393030938606078)) / ((4.723161425663431) - ((((2.1975759323316684) * ((-1.4322528099306506) /

(((-3.0652325965932823) / ((((0.27620422986015924) + (-3.356355403390794)) / (0.2862069219847001)) * ((-0.3729562191758298) + (0.12261729373978802)))) / (((-3.6042232782115544) - (1.139470287643995)) * ((-2.4338302906590137) - ((((1.8871128865515345) -

((((1.6088953352973654) - (3.061949885867575)) + (((3.7519305106254777) / (((-2.663816997034779) / (-0.5481609691626446)) - ((1.139470287643995) - (((-0.9704580050503244) + (((0.6823843736017512) * (-0.09956845419682026)) * ((3.6987330276773527) *

(-0.5481609691626446)))) - (0.2862069219847001))))) + (0.6726687642781402))) - (((2.930564982230912) / (-0.3729562191758298)) - ((2.930564982230912) - (-3.7470959451714645))))) - ((((-3.1608288838648626) - ((4.731038625152058) / (-3.7409922676377927))) +

((-1.7567181664305478) * (4.356696425180008))) / (3.97819764145569))) / (0.6726687642781402))))))) * (0.7427843471388993)) / (((0.2862069219847001) / (-4.348543399475627)) - (-3.766004915571534))))) / (-4.680216419005)) - (-0.2270661394295619)) + ((-

2.7584816626768847) + (-1.02549153706227))) / ((-3.7409922676377927) * (-2.7830372051223407)))) + (4.723161425663431)) - ((-2.87383157875879) / (((-0.7540040498485006) + (X1 - ((-0.5481609691626446) / (((-2.87383157875879) * (2.9732519978748435)) *

(-4.664606906188469))))) / (((-2.835385611105179) + ((2.930564982230912) / ((((4.356696425180008) + (((3.328124956594529) * (-3.1608288838648626)) * (-2.663816997034779))) * (0.27620422986015924)) / (-4.664606906188469)))) / (2.0987042632193287))))) - (((-

1.1192777118215447) - (-1.1192777118215447)) * (-0.36908001180415173))) * ((-1.3676468951444698) + (-3.1608288838648626))) * (-4.348543399475627)))) * (-2.4506888285375994))) - (-3.9943627731667397))))) / (((-3.1608288838648626) - (-0.2270661394295619)) +

((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) - ((3.6987330276773527) - ((-3.7409922676377927) / (4.356696425180008))))))) * (1.0972387095624754)))) * (-3.356355403390794))) - (((1.2259138488664547) + (-4.140786994790098)) + (((((((3.251113356451972) * (((((((-4.812138152798754) * (-2.4338302906590137)) - (((2.1975759323316684) * ((((-4.67245093682219) - (0.9685515527714026)) - ((((((1.2259138488664547) + (1.9168380556741695)) + (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) * (-2.7830372051223407)) * (((-0.36908001180415173) / ((4.389369512611006) * (-2.7584816626768847))) / ((X1 / ((3.7519305106254777) - ((0.6823843736017512) * (X1 * X1 )))) + (1.8871128865515345))))))) * ((((-

4.140786994790098) + ((0.7427843471388993) * (2.930564982230912))) / (((-4.67245093682219) - (0.9685515527714026)) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) *

(-2.7830372051223407)) * (((-0.36908001180415173) / (((-3.469634718168062) + (((X1 / (-1.1192777118215447)) * (((((0.12261729373978802) / (1.8871128865515345)) * (-3.766004915571534)) + (-3.356355403390794)) * (3.6987330276773527))) * ((1.2259138488664547) - ((2.1975759323316684) * ((-0.5481609691626446) / (((-3.0652325965932823) / ((4.114277718022198) /

(-2.87383157875879))) + (((-3.6042232782115544) / (3.6310417913572426)) * ((-2.4338302906590137) + (-1.7567181664305478))))))))) * (-2.7584816626768847))) / ((((((3.061949885867575) * (3.7519305106254777)) * (-3.6998637307195503)) / (4.114277718022198)) /

(((2.930564982230912) / (((1.2259138488664547) - (((((-3.6670675955525143) + (((((3.251113356451972) / X1 ) * (-2.337480884682641)) * (-1.1192777118215447)) * (-0.09956845419682026))) * ((-1.1192777118215447) + (2.1975759323316684))) + ((1.139470287643995) *

((1.2259138488664547) + ((4.731038625152058) - (1.8428959938525944))))) / ((1.8871128865515345) - (2.0987042632193287)))) / (0.9685515527714026))) - (4.114277718022198))) / (1.8871128865515345))))))) * (((1.9628355117949239) + (2.9732519978748435)) - ((((2.590821896455431) / ((-3.6670675955525143) / ((-2.663816997034779) - (0.12261729373978802)))) / (((-3.1608288838648626) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) - ((3.6987330276773527) - ((-

3.7409922676377927) / (4.356696425180008))))))) * (1.0972387095624754)))) * (-3.356355403390794))) * (1.0972387095624754))) - ((2.0987042632193287) *

(((2.4251702341825077) * ((1.139470287643995) + (1.6088953352973654))) - (-2.4506888285375994))))) / (-1.02549153706227))) * (1.9168380556741695)) * (-3.0652325965932823)) - (-4.160239421278372)) * ((2.9732519978748435) / (-0.36908001180415173)))) *

Problem _1D.dat

Page 59: Marcin Kosicki AAC Thesis

59Marcin Kosicki AAC 2015

(3.328124956594529)) / (((1.6088953352973654) * (1.0972387095624754)) * ((-3.6998637307195503) / (-0.5481609691626446)))) + ((-2.7830372051223407) + ((0.6823843736017512) - (2.1221477513709166)))) + ((-3.7409922676377927) * ((3.6987330276773527) *

(-0.5481609691626446)))) - (0.2862069219847001)))))) - ((-0.09956845419682026) * (((2.1221477513709166) + ((X1 / ((-3.6998637307195503) - (-2.7584816626768847))) * ((-3.6042232782115544) - (((-3.469634718168062) + (3.7519305106254777)) *

(4.544442103534275))))) - (-2.7830372051223407))))) + (-3.469634718168062))) + ((((0.6823843736017512) - ((0.2862069219847001) - ((-3.7470959451714645) / ((-1.1192777118215447) / ((((2.590821896455431) / ((-3.6670675955525143) / ((-2.663816997034779) -

(((4.723161425663431) - (((4.723161425663431) - (((1.8871128865515345) / (X1 * (2.0987042632193287))) - (((((((1.6088953352973654) - (((((((((-2.835385611105179) + ((-0.5481609691626446) / ((((3.6987330276773527) + ((-2.337480884682641) * (-2.663816997034779))) *

(1.9168380556741695)) / (-4.664606906188469)))) / (4.389369512611006)) - (3.2393030938606078)) / ((4.723161425663431) - ((((2.1975759323316684) * ((-1.4322528099306506) / (((-3.0652325965932823) / ((((-3.957301039168023) + (-3.356355403390794)) /

((0.7427843471388993) - (1.8586099261911029))) * ((-0.3729562191758298) + (0.12261729373978802)))) / (((-3.6042232782115544) - (1.139470287643995)) * ((-2.4338302906590137) - ((((1.8871128865515345) - ((((1.6088953352973654) - (3.061949885867575)) +

(-2.87383157875879)) - (((2.930564982230912) / (-0.3729562191758298)) - ((2.930564982230912) - (-3.7470959451714645))))) - ((((-3.1608288838648626) - (-2.7830372051223407)) + ((-1.7567181664305478) * (4.356696425180008))) / (3.97819764145569))) /

(0.6726687642781402))))))) * (0.7427843471388993)) / ((((((4.114277718022198) / ((0.14349248629577627) * ((0.2862069219847001) / (-3.6998637307195503)))) * ((-2.504992899647677) - ((((-1.1192777118215447) * ((-2.7584816626768847) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / (2.1975759323316684))) * (((1.9628355117949239) + (2.9732519978748435)) - (((-4.160239421278372) / ((((-0.9704580050503244) + (((0.6823843736017512) * (-0.09956845419682026)) * ((3.6987330276773527) * (-0.5481609691626446)))) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) -

((3.6987330276773527) - ((-4.664606906188469) / (-2.7584816626768847))))))) * ((0.9685515527714026) + (4.513830298045358))))) / (4.731038625152058)) + ((0.6726687642781402) * ((2.1975759323316684) / ((4.114277718022198) / (-2.87383157875879))))))) *

((((((4.114277718022198) - (-0.8317167469655837)) * ((((((-2.4506888285375994) + (((1.8871128865515345) / (-3.482540649299102)) * (2.861204734377102))) / (((-1.1642394221062746) - (((((1.139470287643995) - ((((4.114277718022198) / (-2.87383157875879)) /

(-3.0652325965932823)) / (3.324585969428121))) / (3.6310417913572426)) / ((-3.6670675955525143) + (((-2.4338302906590137) - (-0.09956845419682026)) / (3.454266222619161)))) * ((-2.4338302906590137) + ((1.8428959938525944) / ((2.861204734377102) +

(-3.766004915571534)))))) * (((3.324585969428121) - ((4.903329757718625) - (-0.09956845419682026))) - ((-1.3676468951444698) + (-1.3676468951444698))))) * (2.590821896455431)) / (4.389369512611006)) - (2.744257162795475))) + (((3.328124956594529) * ((3.454266222619161) * (-2.9618233320503515))) - (-3.957301039168023))) + (-2.4338302906590137)) * (-4.680216419005))) /

(-4.348543399475627)) - (-3.766004915571534))))) / (-4.680216419005)) - (-0.2270661394295619)) + ((-2.7584816626768847) + (-1.02549153706227))) / (-3.0652325965932823))) + (4.723161425663431)) - ((-2.87383157875879) / (((-0.7540040498485006) + (X1 - ((-

0.5481609691626446) / (((-2.87383157875879) * (2.9732519978748435)) * (-4.664606906188469))))) / ((-4.160239421278372) + (-0.8317167469655837))))) - (((-1.1192777118215447) - (-1.1192777118215447)) * (-0.36908001180415173))) * ((-0.36908001180415173) +

(-3.6042232782115544))) * (-4.348543399475627)))) * (-2.4506888285375994))) - (-3.9943627731667397))))) / (((-3.1608288838648626) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) - ((3.6987330276773527) - ((-

3.7409922676377927) / (4.356696425180008))))))))) + (4.389369512611006)) - (0.14349248629577627))))))) - ((-1.1192777118215447) - (4.731038625152058))))

* (-3.766004915571534)) + (-3.356355403390794)) * (3.6987330276773527))) * ((1.2259138488664547) - ((2.1975759323316684) * ((1.8871128865515345) / (((-3.0652325965932823) / ((4.114277718022198) / (-2.87383157875879))) + (((-3.6042232782115544) /

(3.6310417913572426)) * ((-2.4338302906590137) + (-1.7567181664305478))))))))) * (-2.7584816626768847))) / ((((((3.061949885867575) * (3.7519305106254777)) * (-3.6998637307195503)) / (4.114277718022198)) / (((2.930564982230912) / (((1.2259138488664547) - (((((-

3.6670675955525143) + (((((3.251113356451972) / X1 ) * (-2.337480884682641)) * (-1.1192777118215447)) * (-0.09956845419682026))) * ((-1.1192777118215447) + (2.1975759323316684))) + ((1.2259138488664547) + (((1.2259138488664547) * (4.356696425180008)) - (1.8586099261911029)))) / ((1.8871128865515345) - (2.0987042632193287)))) / (0.9685515527714026))) - (4.114277718022198))) /

(1.8871128865515345))))))) * (((1.9628355117949239) + (2.9732519978748435)) - ((((2.590821896455431) / ((-3.6670675955525143) / ((-2.663816997034779) - (((4.723161425663431) - (((4.723161425663431) - ((((0.9685515527714026) - ((((-3.766004915571534) +

((3.324585969428121) / ((3.061949885867575) * (-3.766004915571534)))) * ((-2.9618233320503515) * (-4.67245093682219))) / (-1.1192777118215447))) / (X1 * (2.0987042632193287))) - (((((((1.6088953352973654) - ((3.061949885867575) / (-3.0652325965932823)))

+ (4.723161425663431)) - ((-2.87383157875879) / (((-0.7540040498485006) + (X1 - ((-0.5481609691626446) / (((-2.87383157875879) * (4.513830298045358)) * (-4.664606906188469))))) / ((-4.160239421278372) + (-0.8317167469655837))))) - (((-1.1192777118215447) -

(-1.1192777118215447)) * (-0.36908001180415173))) * ((-0.36908001180415173) + (-3.6042232782115544))) * (-4.348543399475627)))) * (-2.4506888285375994))) - (-3.9943627731667397))))) / (((-3.1608288838648626) - (-0.2270661394295619)) + ((0.5019964872219855) -

(-1.02549153706227)))) + ((4.723161425663431) - ((3.6987330276773527) - ((-3.7409922676377927) / (4.356696425180008))))))) * (1.0972387095624754)))) * (((4.356696425180008) - (1.6088953352973654)) - (4.389369512611006)))) * (0.14349248629577627))) - (((-

4.67245093682219) / (((-1.1192777118215447) * (((-4.67245093682219) - (0.14349248629577627)) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (-1.1192777118215447)))) * (((1.9628355117949239) +

(2.9732519978748435)) - (((-4.160239421278372) / (((((-0.9704580050503244) / (X1 * (-3.7470959451714645))) - ((((-3.356355403390794) - ((-0.9704580050503244) - ((((X1 - ((((((-3.766004915571534) * (4.356696425180008)) / (4.731038625152058)) + ((0.6726687642781402) *

((2.1975759323316684) / ((4.114277718022198) / (-2.87383157875879))))) - ((3.7519305106254777) / (((((-4.348543399475627) / ((((-4.160239421278372) + (((4.389369512611006) * ((-2.9618233320503515) - (0.12261729373978802))) / (2.4251702341825077))) - ((0.7427843471388993) - (1.8586099261911029))) * (0.7591844647918347))) + (-2.835385611105179)) / ((((-4.140786994790098) +

((0.7427843471388993) * (2.930564982230912))) / (((-4.67245093682219) - (0.9685515527714026)) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) * (-2.7830372051223407)) *

(((-0.36908001180415173) / (((-3.469634718168062) + (((X1 / (-1.1192777118215447)) * (((((0.12261729373978802) / (1.8871128865515345)) * (-3.766004915571534)) + (-3.356355403390794)) * (3.6987330276773527))) * ((1.2259138488664547) -

((2.1975759323316684) * ((1.8871128865515345) / (((-3.0652325965932823) / ((4.114277718022198) / (-2.87383157875879))) + (((-3.6042232782115544) / (3.6310417913572426)) * ((-2.4338302906590137) + (-1.7567181664305478))))))))) * (-2.7584816626768847))) / (((((-3.6670675955525143) * (-3.6998637307195503)) / (4.114277718022198)) / (((2.930564982230912) / (((1.2259138488664547) - (((((-

3.6670675955525143) + (((((3.251113356451972) / X1 ) * (-2.337480884682641)) * (-1.1192777118215447)) * (-0.09956845419682026))) * ((-1.1192777118215447) + (2.1975759323316684))) + ((1.139470287643995) * ((1.2259138488664547) + ((4.731038625152058) -

(1.8428959938525944))))) / ((1.8871128865515345) - (2.0987042632193287)))) / (0.9685515527714026))) - (4.114277718022198))) / (1.8871128865515345))))))) * (((1.9628355117949239) + (2.9732519978748435)) - ((((2.590821896455431) / ((-3.6670675955525143) /

((-2.663816997034779) - (((4.723161425663431) - (((4.723161425663431) - ((((0.9685515527714026) - ((((-3.766004915571534) + (((-2.585476313401572) * (X1 + (((3.324585969428121) / (3.454266222619161)) / ((-4.812138152798754) - ((((-2.4506888285375994) -

(1.2259138488664547)) * (0.27620422986015924)) * (((3.97819764145569) * ((((((-2.4338302906590137) + (X1 / (((-0.7540040498485006) / ((-2.504992899647677) / (-0.9704580050503244))) - X1 ))) * (-2.585476313401572)) / ((0.7591844647918347) + (0.5019964872219855))) /

(-4.67245093682219)) * (-2.759238679146463))) / ((-3.356355403390794) * (0.7591844647918347)))))))) / ((3.061949885867575) * (-3.766004915571534)))) * ((-2.9618233320503515) * (-4.67245093682219))) / (-1.1192777118215447))) / (X1 * (2.0987042632193287))) -

((((((4.723161425663431) - ((((2.1975759323316684) * ((-1.4322528099306506) / (((-3.0652325965932823) / ((((-3.957301039168023) + (-3.356355403390794)) / (0.2862069219847001)) * ((-0.3729562191758298) + (0.12261729373978802)))) / ((((0.9685515527714026) -

((((((2.861204734377102) + (-2.7830372051223407)) + (-4.348543399475627)) + (((-2.585476313401572) * (X1 + (((3.324585969428121) / (3.454266222619161)) / ((-4.812138152798754) - ((((-2.4506888285375994) - (1.2259138488664547)) * (0.27620422986015924)) *

(((-2.7830372051223407) - (0.2862069219847001)) / ((-3.356355403390794) * (0.7591844647918347)))))))) / ((3.061949885867575) * (-3.766004915571534)))) * ((-2.9618233320503515) * (-4.67245093682219))) / (-1.1192777118215447))) / (X1 * (2.0987042632193287))) *

((-2.4338302906590137) - ((((1.8871128865515345) - ((((1.6088953352973654) - (3.061949885867575)) + (((3.7519305106254777) / (1.9168380556741695)) + (0.6726687642781402))) - (((2.930564982230912) / (-0.3729562191758298)) - ((2.930564982230912) -

(-3.7470959451714645))))) - ((((-3.1608288838648626) - (X1 / (-3.7409922676377927))) + ((-1.7567181664305478) * (4.356696425180008)))

Page 60: Marcin Kosicki AAC Thesis

60 Integrating Supervised Data Mining into Performance Oriented Design

/ (3.97819764145569))) / (0.6726687642781402))))))) * (0.7427843471388993)) / ((((((((((-0.09956845419682026) + (((-2.4506888285375994) * ((1.8871128865515345) - ((-1.1642394221062746) - (((-3.6042232782115544) / ((-4.67245093682219) - ((-2.4506888285375994) +

(((1.8428959938525944) / (((((0.12261729373978802) + (0.2862069219847001)) - (((0.27620422986015924) * ((-1.3676468951444698) - (4.356696425180008))) * X1 )) - (1.139470287643995)) + (-3.766004915571534))) - (0.2862069219847001))))) * ((-2.4338302906590137) +

((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534)))))))) - (4.731038625152058))) / (((((((((0.6823843736017512) - (1.6088953352973654)) * (-2.7830372051223407)) * ((1.8428959938525944) * (-0.7540040498485006))) - (((1.9628355117949239) - ((0.9685515527714026) * (0.6823843736017512))) - ((((2.861204734377102) + (-4.664606906188469)) + (1.8586099261911029)) *

((((3.324585969428121) / (((((0.7427843471388993) - (((1.9628355117949239) - ((0.9685515527714026) - (-3.1608288838648626))) - ((((2.861204734377102) + (-2.4338302906590137)) + (1.8586099261911029)) * (((2.930564982230912) + (-0.9704580050503244)) *

((-0.2270661394295619) * (3.7519305106254777)))))) / ((-1.3676468951444698) - (0.27620422986015924))) / ((0.14349248629577627) * ((0.2862069219847001) / (-3.6042232782115544)))) * ((((0.12261729373978802) + (-2.2032354456613135)) * (-3.766004915571534)) - (1.139470287643995)))) + (-3.957301039168023)) + ((-0.2270661394295619) * (3.7519305106254777)))))) * ((-1.3676468951444698) -

(-2.9618233320503515))) + (3.6230677341448594)) / (3.328124956594529)) + (-2.759238679146463))) - (((1.9628355117949239) - ((0.9685515527714026) - (1.139470287643995))) - ((((2.861204734377102) + (-1.1192777118215447)) + (-4.348543399475627)) *

(((2.930564982230912) + (0.2862069219847001)) + ((-0.2270661394295619) * (3.7519305106254777)))))) * ((-1.3676468951444698) - ((-0.5481609691626446) + (0.4579248310507902)))) / ((0.14349248629577627) * ((0.12261729373978802) / (-3.6998637307195503)))) * (((((((((-2.835385611105179) + ((3.324585969428121) / ((-4.812138152798754) * (3.6230677341448594)))) / ((((((3.324585969428121) +

(-3.356355403390794)) - (-1.02549153706227)) / (1.2259138488664547)) / (-3.0652325965932823)) / (3.324585969428121))) - (3.2393030938606078)) / ((4.723161425663431) - (-3.7409922676377927))) / (-4.680216419005)) * ((-2.2032354456613135) - ((-

2.663816997034779) - (-0.2270661394295619)))) + ((((0.9685515527714026) + (2.1221477513709166)) / ((-4.812138152798754) - ((-2.9618233320503515) * (((((0.12261729373978802) - (2.930564982230912)) + ((3.328124956594529) + (0.4579248310507902))) /

(((-2.7830372051223407) - (0.2862069219847001)) * ((-3.1608288838648626) / (((-1.7567181664305478) + ((-1.02549153706227) * ((4.114277718022198) * (2.1975759323316684)))) + (((((((0.14349248629577627) - ((0.6726687642781402) + (-0.7540040498485006))) * (1.9168380556741695)) * (X1 * (2.0987042632193287))) - (-4.160239421278372)) + ((-3.7470959451714645) - ((((-2.87383157875879) +

(((1.0972387095624754) * ((((-1.02549153706227) / ((-0.9704580050503244) + ((1.139470287643995) * (2.590821896455431)))) - ((0.12261729373978802) / (1.8871128865515345))) / ((1.8428959938525944) * ((-2.7830372051223407) / (-2.9618233320503515))))) +

((-0.09956845419682026) + (X1 * (-3.957301039168023))))) / ((1.9168380556741695) + (-0.8317167469655837))) - ((1.6088953352973654) / (0.6823843736017512))))) - (-3.390028151500183)))))) / ((((0.5019964872219855) + ((4.4116309292869325) - ((((((0.27620422986015924) /

(((0.12261729373978802) / (0.2862069219847001)) * ((-3.957301039168023) + (-2.835385611105179)))) + (((-3.6042232782115544) / ((-4.67245093682219) - (((0.5019964872219855) + (((0.6823843736017512) - (-3.7409922676377927)) / (3.6310417913572426))) / ((3.324585969428121) / (((((0.7427843471388993) - (((1.9628355117949239) - ((0.9685515527714026) - (-3.1608288838648626))) - ((((2.861204734377102) + (-2.4338302906590137)) + (1.8586099261911029)) * (((2.930564982230912) + (-0.9704580050503244)) *

((-0.2270661394295619) * (3.7519305106254777)))))) / ((-1.3676468951444698) - (0.27620422986015924))) / ((0.14349248629577627) * ((0.2862069219847001) / (-3.6042232782115544)))) * ((3.328124956594529) - (1.139470287643995))))))) * ((-2.4338302906590137) +

((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534)))))) - (((4.723161425663431) * (1.2259138488664547)) * (3.328124956594529))) / ((((0.6823843736017512) - (-3.7409922676377927)) / (3.6310417913572426)) * (-2.504992899647677))) +

(-2.4506888285375994)))) + (((-3.1608288838648626) / (-2.504992899647677)) - (-3.7470959451714645))) - (1.139470287643995)))))) / ((-0.09956845419682026) * ((1.2259138488664547) - (-2.7830372051223407))))) / (1.139470287643995))) * ((((((4.114277718022198) - (-0.8317167469655837)) * ((((((-2.4506888285375994) + (((1.8871128865515345) / (-3.482540649299102)) * (2.861204734377102))) / (((-1.1642394221062746) - (((-3.6042232782115544) / ((-4.67245093682219) - ((-2.4506888285375994) + (((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534))) - (0.2862069219847001))))) * ((-2.4338302906590137) + ((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534)))))) * (((3.324585969428121) - ((4.903329757718625) - (-0.09956845419682026))) -

(2.9732519978748435)))) * (2.590821896455431)) / (4.389369512611006)) - (2.744257162795475))) + (((3.328124956594529) * ((3.454266222619161) * ((-2.4338302906590137) * ((-1.1192777118215447) - (-2.9618233320503515))))) - (-3.957301039168023))) +

(-2.4338302906590137)) * (-4.680216419005))) / (-4.348543399475627)) - (-3.766004915571534)))) - ((-2.87383157875879) / (((-0.7540040498485006) + (X1 - ((-0.5481609691626446) / (((-2.87383157875879) * (2.9732519978748435)) * (-4.664606906188469))))) / ((4.356696425180008) / (2.0987042632193287))))) - (((-1.1192777118215447) - (-1.1192777118215447)) * (-0.36908001180415173))) *

((-1.3676468951444698) + (-3.6042232782115544))) * (-4.348543399475627)))) * (-2.4506888285375994))) - (-3.9943627731667397))))) / (((-3.1608288838648626) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) -

((3.6987330276773527) - ((-3.7409922676377927) / (4.356696425180008))))))) * (1.0972387095624754)))) * (-3.356355403390794))) - ((0.14349248629577627) + (((((((3.251113356451972) * (((((((-4.812138152798754) * (-2.4338302906590137)) - (((2.1975759323316684) *

((((-4.67245093682219) - (0.9685515527714026)) - ((((((1.2259138488664547) + (1.9168380556741695)) + (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) * (-2.7830372051223407)) * (((-0.36908001180415173) /

((3.6230677341448594) * (-2.7584816626768847))) / ((X1 / ((3.7519305106254777) - ((0.6823843736017512) * (X1 * X1 )))) + (1.8871128865515345))))))) * ((((-4.140786994790098) + ((0.7427843471388993) * (2.930564982230912))) / (((-4.67245093682219) - (0.9685515527714026)) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-

3.7409922676377927) * (-2.7830372051223407)) * (((-0.36908001180415173) / (((-3.469634718168062) + (((X1 / (-1.1192777118215447)) * (((((0.12261729373978802) / (1.8871128865515345)) * (-3.766004915571534)) + (-3.356355403390794)) * (3.6987330276773527))) *

((1.2259138488664547) - ((2.1975759323316684) * ((1.8871128865515345) / (((-3.0652325965932823) / ((4.114277718022198) / (-2.87383157875879))) + (((-3.6042232782115544) / (3.6310417913572426)) * ((-2.4338302906590137) + (-1.7567181664305478))))))))) *

(-2.7584816626768847))) / ((((((3.061949885867575) * (3.7519305106254777)) * (-3.6998637307195503)) / (4.114277718022198)) / (((2.930564982230912) / (((1.2259138488664547) - (((((-3.6670675955525143) + (((((3.251113356451972) / X1 ) * (-2.337480884682641)) *

(-1.1192777118215447)) * (-0.09956845419682026))) * ((-1.1192777118215447) + (2.1975759323316684))) + ((1.139470287643995) * ((1.2259138488664547) + ((4.731038625152058) - (1.8428959938525944))))) / ((1.8871128865515345) - (2.0987042632193287)))) /

(0.9685515527714026))) - (4.114277718022198))) / (1.8871128865515345))))))) * (((1.9628355117949239) + (2.9732519978748435)) - ((((2.590821896455431) / ((-3.6670675955525143) / ((-2.663816997034779) - (((4.723161425663431) - (((4.723161425663431) -

((((0.9685515527714026) - ((((-3.766004915571534) + (((-2.585476313401572) * (X1 + (((3.324585969428121) / (3.454266222619161)) / ((-4.812138152798754) - (((-2.9618233320503515) * ((((((((((-3.6998637307195503) - (3.2393030938606078)) / ((4.723161425663431) -

(-2.663816997034779))) / (-4.680216419005)) * ((-2.2032354456613135) - ((-2.663816997034779) - (-0.2270661394295619)))) + ((((0.9685515527714026) + (2.1221477513709166)) / ((-4.812138152798754) - ((-2.9618233320503515) * (((((0.12261729373978802) - ((-

1.3676468951444698) - (0.27620422986015924))) + ((3.328124956594529) + (0.4579248310507902))) / (((-2.7830372051223407) - (0.2862069219847001)) * ((-3.1608288838648626) / (((-1.7567181664305478) + ((-1.02549153706227) * ((4.114277718022198) *

(2.1975759323316684)))) + (((((((0.14349248629577627) - ((0.6726687642781402) + (-0.7540040498485006))) * (1.9168380556741695)) * (-3.0652325965932823)) - (-4.160239421278372)) + ((-3.7470959451714645) - ((((-2.87383157875879) + (((1.0972387095624754) * ((((-1.02549153706227) / ((-0.9704580050503244) + ((1.139470287643995) * (2.590821896455431)))) - ((0.12261729373978802) /

(1.8871128865515345))) / ((1.8428959938525944) * ((-2.7830372051223407) / (-2.9618233320503515))))) + ((-0.09956845419682026) + (X1 * (-3.957301039168023))))) / ((1.9168380556741695) + (-0.8317167469655837))) - ((1.6088953352973654) / (0.6823843736017512))))) -

(-3.390028151500183)))))) / ((((0.5019964872219855) + ((4.4116309292869325) - ((((((0.27620422986015924) / (((0.12261729373978802) / (0.2862069219847001)) * ((-3.957301039168023) + (-2.835385611105179)))) + ((((0.12261729373978802) - (2.930564982230912)) +

((3.328124956594529) + (0.4579248310507902))) * ((-2.4338302906590137) + ((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534)))))) - (((4.723161425663431) * (1.2259138488664547)) * (3.328124956594529))) / ((((0.6823843736017512) -

(-3.7409922676377927)) / (3.6310417913572426)) * (-2.504992899647677))) + (-2.4506888285375994)))) + (((-3.1608288838648626) / (-2.504992899647677)) - (-3.7470959451714645))) - (1.139470287643995)))))) / ((-0.09956845419682026) * (((2.1221477513709166) + ((X1

/ ((-3.6998637307195503) - (-2.7584816626768847))) * ((-3.6042232782115544) - (((-3.469634718168062) + (3.7519305106254777)) * (4.544442103534275))))) - (-2.7830372051223407))))) - (2.930564982230912)) + ((3.328124956594529) + (0.4579248310507902))) /

(((-2.7830372051223407) - (0.2862069219847001)) * (1.6088953352973654))) / ((((0.5019964872219855) + ((4.4116309292869325) -

Page 61: Marcin Kosicki AAC Thesis

61Marcin Kosicki AAC 2015

((((((0.27620422986015924) / (((0.12261729373978802) / (0.2862069219847001)) * ((-3.957301039168023) + (-2.835385611105179)))) + (((-3.6042232782115544) / ((-4.67245093682219) - ((-2.4506888285375994) + ((-2.7830372051223407) - (0.2862069219847001))))) * ((-2.4338302906590137) + ((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534)))))) - ((((1.8428959938525944) -

(4.356696425180008)) * (1.2259138488664547)) * (3.328124956594529))) / ((((0.6823843736017512) - (-3.7409922676377927)) / (3.6310417913572426)) * (-2.504992899647677))) + (-2.4506888285375994)))) + ((1.139470287643995) - (-3.7470959451714645))) - (1.139470287643995)))) * (-2.7584816626768847)))))) / ((3.061949885867575) * (-3.766004915571534)))) * ((-2.9618233320503515) *

(((1.8428959938525944) - (4.356696425180008)) * (1.2259138488664547)))) / (-1.1192777118215447))) / (X1 * (2.0987042632193287))) - (((((((1.6088953352973654) - (((((((((-2.835385611105179) + ((-0.5481609691626446) / ((((((0.5019964872219855) + ((4.4116309292869325)

- ((2.861204734377102) + (-2.4338302906590137)))) * (((-4.680216419005) / (3.97819764145569)) / ((-3.390028151500183) * ((((0.12261729373978802) + (-2.9618233320503515)) - (((0.27620422986015924) * ((-1.3676468951444698) - (4.356696425180008))) * X1 ))

- (1.139470287643995))))) + ((-2.337480884682641) * (-2.663816997034779))) * (1.9168380556741695)) / (-4.664606906188469)))) / (2.0987042632193287)) - (3.2393030938606078)) / ((4.723161425663431) - ((((2.1975759323316684) * ((-1.4322528099306506) /

(((-3.0652325965932823) / ((((-3.957301039168023) + (-3.356355403390794)) / (0.2862069219847001)) * ((-0.3729562191758298) + (0.12261729373978802)))) / (((-3.6042232782115544) - (1.139470287643995)) * ((-2.4338302906590137) - ((((1.8871128865515345) - ((((1.6088953352973654) - (3.061949885867575)) + (((3.7519305106254777) / (((-2.663816997034779) / (-0.5481609691626446)) - ((-1.1192777118215447) - (((-0.9704580050503244) + (((0.6823843736017512) * (-0.09956845419682026)) * ((3.6987330276773527) *

(-0.5481609691626446)))) - (0.2862069219847001))))) + (0.6726687642781402))) - (((2.930564982230912) / (-0.3729562191758298)) - ((2.930564982230912) - (-3.7470959451714645))))) - (((-0.2270661394295619) + ((-1.7567181664305478) * (4.356696425180008))) /

(3.97819764145569))) / (0.6726687642781402))))))) * (0.7427843471388993)) / ((((((((((-0.09956845419682026) + (((-2.4506888285375994) * ((1.8871128865515345) - (((-0.5481609691626446) - ((2.930564982230912) * ((0.6823843736017512) * ((((((((0.5019964872219855) +

((4.4116309292869325) - (((1.2259138488664547) + (((3.328124956594529) * ((3.454266222619161) * (-2.504992899647677))) - (1.8428959938525944))) + (((0.6823843736017512) - (1.6088953352973654)) * (X1 / (-1.1642394221062746)))))) / ((3.324585969428121) /

(((((0.7427843471388993) - (((1.9628355117949239) - ((0.9685515527714026) - (-3.1608288838648626))) - ((((2.861204734377102) + (-2.4338302906590137)) + (1.8586099261911029)) * (((2.930564982230912) + (-0.9704580050503244)) * ((-0.2270661394295619) *

(3.7519305106254777)))))) / ((-1.3676468951444698) - (0.27620422986015924))) / ((0.14349248629577627) * ((0.2862069219847001) / (-3.6042232782115544)))) * ((((0.12261729373978802) + (-2.2032354456613135)) * (-3.766004915571534)) - (1.139470287643995))))) +

((-2.337480884682641) * (-2.663816997034779))) + (1.9168380556741695)) / (((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) * (-2.7830372051223407)) * (((-0.36908001180415173) / (((-3.469634718168062) + ((-0.9704580050503244) * ((1.2259138488664547) - ((2.1975759323316684) * ((1.8871128865515345) / (((-3.0652325965932823) / ((4.114277718022198) / (-2.87383157875879))) + (((-3.6042232782115544) / (3.6310417913572426)) *

((-2.4338302906590137) + (-1.7567181664305478))))))))) * (-2.7584816626768847))) / ((((((3.061949885867575) * (3.7519305106254777)) * (1.9168380556741695)) / (4.114277718022198)) / (((2.930564982230912) / (((-4.160239421278372) - (((((-3.6670675955525143) +

(((0.5019964872219855) + ((X1 * (X1 - (((-4.67245093682219) / (((-1.1192777118215447) * (((-4.67245093682219) - (0.9685515527714026)) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (((-3.7409922676377927) *

(-2.7830372051223407)) * ((1.6088953352973654) / ((((((3.061949885867575) * ((-4.680216419005) * ((3.328124956594529) + (0.4579248310507902)))) * (-3.6998637307195503)) / (4.114277718022198)) / (((2.930564982230912) / ((((3.251113356451972) -

(1.8586099261911029)) * ((-2.7584816626768847) - (0.27620422986015924))) * (-2.4506888285375994))) - ((0.6823843736017512) * (((0.9685515527714026) / (-4.680216419005)) / (-3.0652325965932823))))) / (1.8871128865515345))))))) * (((1.9628355117949239) +

(2.9732519978748435)) - (((-3.957301039168023) / ((4.731038625152058) + ((0.5019964872219855) - (-1.02549153706227)))) / ((4.723161425663431) - ((3.6987330276773527) * ((-3.7409922676377927) / (4.356696425180008))))))) * (1.0972387095624754)))) *

(((4.356696425180008) - (3.2393030938606078)) - (4.389369512611006)))) * (0.14349248629577627)))) * ((((-0.09956845419682026) / (-0.2270661394295619)) + ((3.324585969428121) / (-2.7584816626768847))) * (((X1 - (((((0.6726687642781402) /

(((((((1.9628355117949239) + (0.2862069219847001)) + (-3.766004915571534)) * ((3.061949885867575) - ((3.328124956594529) / ((-2.7830372051223407) / (-1.2944427209799372))))) + (0.6823843736017512)) / ((-2.759238679146463) / (3.6987330276773527))) +

(((4.114277718022198) * (2.1975759323316684)) - (((-3.957301039168023) - ((-4.812138152798754) * ((1.2259138488664547) / (2.4251702341825077)))) - ((-0.5481609691626446) - (0.27620422986015924)))))) + (-0.3729562191758298)) / ((-2.835385611105179) /

((2.590821896455431) - ((((-2.663816997034779) / (-1.7567181664305478)) / (-3.0652325965932823)) + (((1.8871128865515345) / (3.454266222619161)) * (-3.6670675955525143)))))) * (((0.2862069219847001) / (-3.6042232782115544)) / (((-3.7470959451714645) / ((0.14349248629577627) * ((0.2862069219847001) / (-3.6042232782115544)))) * (((((1.2259138488664547) * ((2.0987042632193287) /

((4.114277718022198) / (2.930564982230912)))) / (3.6310417913572426)) / ((-2.504992899647677) - (-4.812138152798754))) - (-0.7540040498485006)))))) * ((3.324585969428121) / ((((((-4.140786994790098) + ((0.7427843471388993) * (2.930564982230912))) /

(-4.664606906188469)) - (-3.6998637307195503)) / (((-1.3676468951444698) - (((-2.4506888285375994) - (-3.957301039168023)) - ((-4.67245093682219) * (0.7591844647918347)))) * (-1.1642394221062746))) * ((((((0.12261729373978802) + (-2.9618233320503515)) -

(((0.5019964872219855) * ((-1.3676468951444698) - (-2.504992899647677))) * (-2.337480884682641))) + (-2.9618233320503515)) - (((-2.835385611105179) - (-3.0652325965932823)) * (2.9732519978748435))) - (1.139470287643995))))) + ((1.9628355117949239) + (2.9732519978748435)))))) * ((3.324585969428121) / (((3.061949885867575) / ((0.6726687642781402) * ((0.2862069219847001) /

(0.6823843736017512)))) * ((((0.12261729373978802) + (-2.9618233320503515)) - (((-3.7470959451714645) + ((-1.3676468951444698) - (0.4579248310507902))) - (4.731038625152058))) - (1.139470287643995)))))) * ((-1.1192777118215447) + (2.1975759323316684))) +

((1.139470287643995) * ((1.2259138488664547) + ((4.731038625152058) - (1.8428959938525944))))) / ((1.8871128865515345) - (2.0987042632193287)))) / (0.9685515527714026))) - (4.114277718022198))) / (1.8871128865515345)))))))) - ((3.6310417913572426) *

(-2.663816997034779))) * (-2.759238679146463))))) - (2.0987042632193287)))) - (4.731038625152058))) / (((((((((0.6823843736017512) - (1.6088953352973654)) * (-2.7830372051223407)) * ((1.8428959938525944) * (-0.7540040498485006))) - (((1.9628355117949239) - ((0.9685515527714026) * (0.6823843736017512))) - ((((2.861204734377102) + (-4.664606906188469)) + (1.8586099261911029)) *

(((2.930564982230912) + (-3.957301039168023)) + ((-0.2270661394295619) * (3.7519305106254777)))))) * ((-1.3676468951444698) - (-2.9618233320503515))) + (3.6230677341448594)) / (3.328124956594529)) + (-2.759238679146463))) - (((1.9628355117949239) - ((0.9685515527714026) - (1.139470287643995))) - ((((2.861204734377102) + (-2.7830372051223407)) + (-4.348543399475627)) *

(((2.930564982230912) + (0.2862069219847001)) + ((-0.2270661394295619) * (3.7519305106254777)))))) * ((-1.3676468951444698) - ((-0.5481609691626446) + (0.4579248310507902)))) / ((0.14349248629577627) * ((0.2862069219847001) / (-3.6998637307195503)))) * (((((((((-2.835385611105179) + ((3.324585969428121) / ((-4.812138152798754) * (3.6230677341448594)))) / (3.061949885867575)) -

(3.2393030938606078)) / ((4.723161425663431) - (-3.7409922676377927))) / (-4.680216419005)) * ((-2.2032354456613135) - ((-2.663816997034779) - (-0.2270661394295619)))) + ((((((((0.27620422986015924) / (((0.12261729373978802) / (0.2862069219847001)) *

((-3.957301039168023) + (-2.835385611105179)))) + (((-3.6042232782115544) / ((-4.67245093682219) - ((-2.4506888285375994) + ((-2.7830372051223407) - (0.2862069219847001))))) * ((-2.4338302906590137) + ((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534)))))) - (((4.723161425663431) * (1.2259138488664547)) * (3.328124956594529))) / ((((0.6823843736017512) -

(-3.7409922676377927)) / (3.6310417913572426)) * (-2.504992899647677))) + (-2.4506888285375994)) / ((-4.812138152798754) - ((-2.9618233320503515) * (((((0.12261729373978802) - (2.930564982230912)) + ((3.328124956594529) + (0.4579248310507902))) /

(((1.9628355117949239) - ((0.9685515527714026) - (1.139470287643995))) * ((-3.1608288838648626) / (((-1.7567181664305478) + ((-2.7584816626768847) * ((4.114277718022198) * (2.1975759323316684)))) + (((((((0.14349248629577627) - ((0.6726687642781402) +

(-0.7540040498485006))) * (1.9168380556741695)) * (X1 * (2.0987042632193287))) - (-4.160239421278372)) + ((-3.7470959451714645) - ((((-2.87383157875879) + (((1.0972387095624754) * ((((-2.7830372051223407) / ((-0.9704580050503244) + ((1.139470287643995) * (2.590821896455431)))) - ((0.12261729373978802) / (1.8871128865515345))) / ((1.8428959938525944) * ((-2.7830372051223407) /

(-2.9618233320503515))))) + ((-0.09956845419682026) + (X1 * (-3.957301039168023))))) / ((1.9168380556741695) + (-0.8317167469655837))) - ((1.6088953352973654) / (0.6823843736017512))))) - (-3.390028151500183)))))) / ((((-2.835385611105179) + ((-0.5481609691626446) / ((((((0.5019964872219855) + ((4.4116309292869325) - ((2.861204734377102) + (-2.4338302906590137)))) *

(((-4.680216419005) / (3.97819764145569)) / ((-3.390028151500183) * ((((0.12261729373978802) + (-2.9618233320503515)) - (((0.27620422986015924) * ((-1.3676468951444698) - (4.356696425180008))) * X1 )) - (1.139470287643995))))) + ((-2.337480884682641) *

Page 62: Marcin Kosicki AAC Thesis

62 Integrating Supervised Data Mining into Performance Oriented Design

(-2.663816997034779))) * (1.9168380556741695)) / (-4.664606906188469)))) + (((-3.1608288838648626) / (-2.504992899647677)) - (-3.7470959451714645))) - (1.139470287643995)))))) / ((-0.09956845419682026) * (((2.1221477513709166) + ((X1 / ((-3.6998637307195503)

- (-2.7584816626768847))) * ((-3.6042232782115544) - (((-3.469634718168062) + (3.7519305106254777)) * (4.544442103534275))))) - (-2.7830372051223407))))) / (1.139470287643995))) * ((((((4.114277718022198) - (-0.8317167469655837)) * ((((((2.1975759323316684) +

(((1.8871128865515345) / (-3.482540649299102)) * (2.861204734377102))) / (((-1.1642394221062746) - (((-3.6042232782115544) / ((-4.67245093682219) - ((-2.4506888285375994) + (((1.8428959938525944) / ((2.861204734377102) + (-3.766004915571534))) -

(0.2862069219847001))))) * ((-2.4338302906590137) + ((((-0.36908001180415173) / ((3.6230677341448594) * (-2.7584816626768847))) / ((X1 / ((3.7519305106254777) - ((0.6823843736017512) * (X1 * X1 )))) + (1.8871128865515345))) / ((2.861204734377102) +

(-3.766004915571534)))))) * (((3.324585969428121) - ((4.903329757718625) - (-0.09956845419682026))) - (2.9732519978748435)))) * (2.590821896455431)) / (4.389369512611006)) - (2.744257162795475))) + (((3.328124956594529) * ((3.454266222619161) * ((-

2.4338302906590137) * ((-1.1192777118215447) - (-2.9618233320503515))))) - (-3.957301039168023))) + (-2.4338302906590137)) * (-4.680216419005))) / (-4.348543399475627)) - (-3.766004915571534))))) / (-4.680216419005)) - (-0.2270661394295619)) + ((-

2.7584816626768847) + (-1.02549153706227))) / (-3.0652325965932823))) + (4.723161425663431)) - ((-2.87383157875879) / (((-0.7540040498485006) + (X1 - ((-0.5481609691626446) / (((4.731038625152058) - (1.8428959938525944)) * (-4.664606906188469))))) / ((-4.160239421278372) + (-0.8317167469655837))))) - (((-1.1192777118215447) - (-1.1192777118215447)) * (-0.36908001180415173))) * ((-1.3676468951444698) + (-3.6042232782115544))) * (-4.348543399475627)))) * ((((-1.1192777118215447) * ((-2.7584816626768847) -

(((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (-1.1192777118215447)))) * (((1.9628355117949239) + (2.9732519978748435)) - (((-4.160239421278372) / (((((-0.9704580050503244) / (X1 * (-3.7470959451714645))) - ((((-3.356355403390794) - ((-0.9704580050503244) - ((((X1 - ((((((-3.766004915571534) * (4.356696425180008)) / (4.731038625152058)) +

((0.6726687642781402) * ((2.1975759323316684) / ((4.114277718022198) / (-2.87383157875879))))) - ((3.7519305106254777) / ((((1.9628355117949239) - ((0.9685515527714026) - (1.139470287643995))) - ((3.324585969428121) * (((2.930564982230912) + ((0.6823843736017512) * (((0.9685515527714026) / (-4.680216419005)) / (-3.0652325965932823)))) + ((-0.2270661394295619) *

(3.7519305106254777))))) - (((((0.9685515527714026) + ((-2.7584816626768847) + (3.6987330276773527))) + ((-3.7409922676377927) * ((3.6987330276773527) * (-0.5481609691626446)))) + (-4.140786994790098)) + (((((((-3.957301039168023) * (((((((-4.812138152798754) *

(-2.4338302906590137)) - ((0.14349248629577627) / (-1.02549153706227))) * (1.9168380556741695)) * (-3.0652325965932823)) - (-4.160239421278372)) * ((2.9732519978748435) / (-0.36908001180415173)))) * (3.328124956594529)) / (((1.6088953352973654) *

(1.0972387095624754)) * ((-3.6998637307195503) / (-0.5481609691626446)))) + ((-2.7830372051223407) + ((0.6823843736017512) - (2.1221477513709166)))) + ((-3.7409922676377927) * ((3.6987330276773527) * (-0.5481609691626446)))) - (0.2862069219847001)))))) - ((-0.09956845419682026) * (((2.1221477513709166) + ((X1 / ((-3.6998637307195503) - (-2.7584816626768847))) * ((-3.6042232782115544)

- (((-3.469634718168062) + (3.7519305106254777)) * (4.544442103534275))))) - (-2.7830372051223407))))) + (-3.469634718168062)) * ((-1.1192777118215447) - (4.731038625152058))) / (-2.7584816626768847)))) + (0.14349248629577627)) * (-4.348543399475627))) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) - ((3.6987330276773527) - ((-4.664606906188469) / (-2.7584816626768847))))))) * ((0.9685515527714026) + (4.513830298045358))))) / (4.731038625152058)) + ((0.6726687642781402) * ((2.1975759323316684) / ((4.114277718022198) / (-2.87383157875879))))))) - (-3.9943627731667397))))) / (((-3.1608288838648626) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) -

((3.6987330276773527) - ((-3.7409922676377927) / (4.356696425180008))))))) * (1.0972387095624754)))) * (-3.356355403390794))) * (1.0972387095624754))) - ((2.0987042632193287) * (((2.4251702341825077) * ((1.139470287643995) + (1.6088953352973654))) - ((((-

4.67245093682219) / (((-1.1192777118215447) * ((-4.348543399475627) - (((((4.731038625152058) - (4.513830298045358)) / ((-0.3729562191758298) / ((-2.663816997034779) - (-1.1192777118215447)))) * (((1.9628355117949239) + (2.9732519978748435)) - (((-

4.160239421278372) / (((((-0.9704580050503244) / (X1 * (-3.7470959451714645))) - ((((-3.356355403390794) - ((-0.9704580050503244) - ((((X1 - ((((((-

3.766004915571534) * (4.356696425180008)) / (4.731038625152058)) + ((0.6726687642781402) * ((2.1975759323316684) / ((4.114277718022198) / (-2.87383157875879))))) - ((3.7519305106254777) / (((((-4.348543399475627) / ((((-4.160239421278372) +

(((((1.8871128865515345) - (2.1221477513709166)) * ((-2.585476313401572) + (-2.4506888285375994))) * ((-2.9618233320503515) - (0.12261729373978802))) / ((0.2862069219847001) + ((((-4.664606906188469) / (((1.9628355117949239) * (X1 * (X1 - (((((((-

0.09956845419682026) + (((-2.4506888285375994) * (4.723161425663431)) - (4.731038625152058))) / (((((((((0.6823843736017512) - (1.6088953352973654)) * (X1 / (-1.1642394221062746))) * ((1.8428959938525944) * (-0.7540040498485006))) - (((1.9628355117949239)

- ((0.9685515527714026) * (0.6823843736017512))) - ((((2.861204734377102) + (-4.664606906188469)) + (1.8586099261911029)) * ((((-4.67245093682219) - ((-2.4506888285375994) + ((-2.7830372051223407) - (0.2862069219847001)))) + (-3.957301039168023)) +

((-0.2270661394295619) * (3.7519305106254777)))))) * ((-1.3676468951444698) - (-3.6998637307195503))) + (3.6230677341448594)) / (3.328124956594529)) + (-2.759238679146463))) - (((1.9628355117949239) - ((0.9685515527714026) - (1.139470287643995))) -

((((2.861204734377102) + (-2.7830372051223407)) + (-4.348543399475627)) * (((2.930564982230912) + (0.2862069219847001)) + ((-0.2270661394295619) * (3.7519305106254777)))))) * ((-1.3676468951444698) - ((-0.5481609691626446) + (0.4579248310507902)))) / ((0.14349248629577627) * (((1.8428959938525944) - (4.356696425180008)) * (1.2259138488664547)))) * (0.14349248629577627))))) * ((-2.4338302906590137) + ((((1.8871128865515345) - ((((1.6088953352973654) - (1.2259138488664547)) + (0.7427843471388993)) -

(-0.5481609691626446))) - ((((-3.1608288838648626) - (((((0.14349248629577627) - ((0.6726687642781402) + (-0.7540040498485006))) * (1.9168380556741695)) * (-3.0652325965932823)) / (-3.7409922676377927))) + ((-2.7584816626768847) * (4.356696425180008))) / (3.97819764145569))) / (((3.2859560470345848) / (-3.9943627731667397)) + ((((0.6823843736017512) - ((0.2862069219847001) - ((-

3.7470959451714645) / ((-1.1192777118215447) / (-2.9618233320503515))))) + (4.389369512611006)) - (0.14349248629577627))))))) - ((-1.1192777118215447) - (4.731038625152058))) * (2.9732519978748435))))) - ((0.7427843471388993) - (1.8586099261911029))) *

(0.7591844647918347))) + (-2.835385611105179)) / ((((1.139470287643995) - ((((((3.324585969428121) + (-3.356355403390794)) - (-1.02549153706227)) / (1.2259138488664547)) / (-3.0652325965932823)) / (3.324585969428121))) / (3.6310417913572426)) *

(3.97819764145569))) - (((1.2259138488664547) + (-4.140786994790098)) + (((((((3.251113356451972) * (((2.1221477513709166) - (-4.160239421278372)) * ((2.9732519978748435) / (-0.36908001180415173)))) * (3.328124956594529)) / (((1.6088953352973654) *

(1.0972387095624754)) * ((-1.3676468951444698) / (-0.5481609691626446)))) + ((3.2393030938606078) + ((0.6823843736017512) - (2.1221477513709166)))) + ((-3.7409922676377927) * ((3.6987330276773527) * (-0.5481609691626446)))) - (0.2862069219847001)))))) - ((-

0.09956845419682026) * (((2.1221477513709166) + (((4.114277718022198) / ((-3.6998637307195503) - (-2.7584816626768847))) * ((-3.6042232782115544) - (((-3.469634718168062) + (3.7519305106254777)) * (4.544442103534275))))) - (-2.7830372051223407))))) +

(-3.469634718168062)) * ((-1.1192777118215447) - (4.731038625152058))) / (X1 * (2.0987042632193287))))) + (0.14349248629577627)) * (-4.348543399475627))) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) -

((3.6987330276773527) - ((-4.664606906188469) / (-2.7584816626768847))))))) * ((0.9685515527714026) + (4.513830298045358))))) * (((4.356696425180008) - (1.6088953352973654)) - (4.389369512611006)))) * (0.14349248629577627)) + (-2.663816997034779)))))) /

(-1.02549153706227))) * (1.9168380556741695)) * (-3.0652325965932823)) - (-4.160239421278372)) * ((2.9732519978748435) / (-0.36908001180415173)))) * (3.328124956594529)) / (((1.6088953352973654) * (1.0972387095624754)) * ((-3.6998637307195503) /

(-0.5481609691626446)))) + ((-2.7830372051223407) + ((0.6823843736017512) - (2.1221477513709166)))) + ((-3.7409922676377927) * ((3.6987330276773527) * (-0.5481609691626446)))) - (0.2862069219847001)))))) - ((-0.09956845419682026) * (((2.1221477513709166) +

((X1 / ((-3.6998637307195503) - (-2.7584816626768847))) * ((-3.6042232782115544) - (((-3.469634718168062) + (3.7519305106254777)) * (4.544442103534275))))) - (-2.7830372051223407))))) + (-3.469634718168062)) * ((-1.1192777118215447) - (4.731038625152058))) /

(-2.7584816626768847)))) + (0.14349248629577627)) * (-4.348543399475627))) - (-0.2270661394295619)) + ((0.5019964872219855) - (-1.02549153706227)))) + ((4.723161425663431) - ((3.6987330276773527) - ((-4.664606906188469) / (-2.7584816626768847))))))) * ((0.9685515527714026) + (4.513830298045358))))) * (((4.356696425180008) - (1.6088953352973654)) - (4.389369512611006)))) *

(0.14349248629577627))))textMode(SHAPE) is not supported by this renderer.

Page 63: Marcin Kosicki AAC Thesis

63Marcin Kosicki AAC 2015

1;100;-5;5;1000.0;0.0

0.009615403;1.0367772E-40.019230766;4.3317402E-40.028846169;8.5498614E-40.038461532;0.00140319990.048076935;0.0022155787

0.0576923;0.00359463440.0673077;0.00520803

0.076923065;0.00686119260.086538464;0.008754376

0.09615383;0.010822250.10576923;0.0132551250.1153846;0.016169464

0.125;0.0191746970.1346154;0.022256624

0.14423077;0.0254095630.15384617;0.0285213140.16346154;0.0318958130.17307693;0.035569980.1826923;0.0395835860.1923077;0.043680985

0.20192309;0.0479303520.21153846;0.0522734520.22115386;0.0566577430.23076923;0.061512130.24038462;0.06641765

0.25;0.071406960.2596154;0.07663345

0.26923075;0.081946580.27884614;0.087482690.28846154;0.09305999

0.29807693;0.0987040250.3076923;0.1048124950.3173077;0.11103173

0.32692307;0.1172950040.33653846;0.1237145

0.34615386;0.130283130.35576925;0.136867370.3653846;0.14353825

0.375;0.150379550.3846154;0.1575035

0.39423075;0.164837630.40384614;0.172214370.41346154;0.179586860.42307693;0.187189420.4326923;0.195012110.4423077;0.203027960.45192307;0.2111915

0.46153846;0.219363590.47115383;0.227666330.48076925;0.236052860.4903846;0.24446923

0.5;0.252993520.5096154;0.261549060.5192308;0.2703858

0.52884614;0.279515120.5384615;0.288679960.5480769;0.298135940.5576923;0.3076473

0.5673077;0.317299280.5769231;0.327263680.5865385;0.33748233

0.59615386;0.348155470.6057692;0.35885414

0.6153846;0.369550.625;0.3802842

0.6346154;0.39101980.6442308;0.4024272

0.65384614;0.413990830.6634615;0.4257561

0.6730769;0.437777040.6826923;0.449930040.6923077;0.462227940.7019231;0.474558470.7115385;0.487070830.72115386;0.4997195

0.7307692;0.51310250.7403846;0.5265394

0.75;0.540186460.7596154;0.554452840.7692308;0.569105450.77884614;0.58392710.7884615;0.59951570.7980769;0.61516960.8076923;0.630844830.8173077;0.64665780.8269231;0.6625560.8365385;0.67872970.84615386;0.69500570.8557692;0.711612640.8653846;0.72849506

0.875;0.745523750.8846154;0.76280950.8942308;0.7807372

0.90384614;0.799152140.9134615;0.81774590.9230769;0.83643920.9326923;0.855398

0.9423077;0.874596830.9519231;0.89447030.9615385;0.915107850.97115386;0.93599680.9807692;0.95713850.9903846;0.978391

1.0;1.00.49648467;0.249880340.97273993;0.9394806

0.20379132;0.0487711360.44990742;0.209495740.6256797;0.381059650.62888205;0.384621620.69474405;0.46538230.573163;0.32334098

0.39866552;0.168240530.39390123;0.164599030.34783217;0.131439210.1339296;0.022032226

0.020242156;4.7720157E-40.4483645;0.208184850.70873266;0.483402340.66730124;0.430515350.20849556;0.050900080.59622115;0.34824350.16553468;0.03265280.7961792;0.612083440.61758745;0.372002750.83522654;0.676534060.18160868;0.039117746

0.6974848;0.468871830.7279965;0.509235140.95991004;0.91159270.7558641;0.5488528

0.39228463;0.163356320.9473353;0.884753

0.73451287;0.518354540.03397186;0.0011461359

0.6007386;0.353276850.7508209;0.541383740.6656368;0.42844462

0.06839569;0.00538556040.917956;0.826449160.61561;0.36979997

0.83519244;0.676461640.19369227;0.0443115720.28470957;0.090885594

0.36614025;0.14403960.8746049;0.744825

0.20295143;0.0484132326.477356E-5;7.1012137E-6

0.77511805;0.57809705

Problem _1D.dat

Is a sample fi le loaded to set up the problem.var_number; const_number; const_min; const_max; test_cases_num;xn;yn

Page 64: Marcin Kosicki AAC Thesis

64 Integrating Supervised Data Mining into Performance Oriented Design

!;-0.21396501390570588;-0.13777096563669033;0.6268127638741747;-0.0957593497658693;1.5143022768732308;-2.3905422036270623;-1.8658097103631812;2.6286677895899464;1.4441178038452076;-2.272424219898142;2.6337931609966683;0.11434034159053486;1.0405490191660771;0.09344934995011078;2.326810320567917;-0.23079478927751218;-2.5712250794983533;-1.9020841364230336;-1.631292637874902;1.5273654768711182;2.72681441511791;-2.5101333537322654;2.4767220332373077;0.9495534698224102;0.9288105445381283;-0.5423592793907241;0.9696012073794584;0.24703971256740465;2.7482386064808724;-1.1004269061606422;-0.09812861167341103;-1.7615606094477458;2.6331296408611315;1.1226478043974417;-0.8985790575204478;-0.3702627176366593;0.155645402477405;2.182820791295165;1.2531531-936266171;2.076207982188115;0.15606757496270163;1.7426813054109083;-2.3070421341018092;-1.7592278001595272;0.3865037022711455;2.6717347565874716;-0.7147700019799741;-0.49331424247653377;-2.047657047523338;0.6516950937561163;-1.3463496110056372;2.1333191142739683;2.589731761974166;-0.22621151841727638;-2.881072273728817;-0.5378559392124962;1.7450725333097346;-1.4728251786190694;-0.03131700261632009;1.2859037683005843;1.5377820789516488;-1.32279201-59019768;-0.8563532059024945;-2.3126988745058155;2.99028488669747;1.3193590048566763;-2.9291818627166206;1.534400760370465;0.3994434368393014;-0.13075710710352295;1.2082240678830596;1.3882988328738692;-1.598628914788005;2.9112931203761523;1.8873985034324203;0.8344744597001177;2.1467987334007965;0.67-82399942635431;2.2486856155024357;-2.8074061704231137;1.0569085229261956;1.4706582751428803;0.4609586580504015;-1.8095968540769025;2.8697751793440203;-1.449541017327279;1.0013258361332342;-0.494302321100093;1.1152970051275375;-2.0456919155414175;-0.45811757074430126;-0.9137784493965082;-0.22827464388703156;-0.7274333958780126;2.9495518873450255;-0.14929353581633054;-2.3403563134755627;-1.273545977716848;2.0515423809010382;0.7551204870007364;-1.8805250391851507;-1.1492528981935128;-1.84707033210462;-0.7234448108148106;2.6963342619025656;-2.2485645773273597;-1.1856375038873403;2.1230406675006543;2.9212772909211617;-0.7426345343667231

@;100;2263173.0893700863;0.4219901589808065;6284.23362;1439308814211%;112;111;112;3;110;112;2;113;111;0;113;112;77;110;110;113;112;3;112;110;64;27;111;111;10;110;112;9;113;112;110;0;112;112;111;24;1;112;59;113;112;112;113;112;77;110;110;111;112;110;110;78;49;59;112;36;111;22;7;101;1;47;110;111;113;112;112;110;84;7;112;110;111;77;111;111;67;81;91;2;68;111;112;87;110;110;110;112;11;112;112;110;99;88;77;24;112;52;62;33;110;84;7;66;66;110;113;113;111;113;113;68;5;79;55;112;111;10;110;112;9;113;112;110;0;112;112;111;24;0;112;59;50;36;16;113;112;112;38;2;113;2;25;22;59;112;49;112;38;112;56;8;80;45;112;29;49;112;77;35;111;112;110;111;18;64;112;2;113;111;0;112;3;110;112;2;112;111;111;64;42;113;110;1;113;11;110;111;77;113;111;111;34;81;113;93;3;113;85;110;112;111;112;3;110;112;44;110;111;112;11;112;58;35;34;112;112;111;110;110;113;113;113;113;30;113;113;1;110;113;73;75;112;77;21;112;111;112;3;110;112;113;52;21;112;38;2;110;84;112;98;74;1;87;51;79;110;77;112;113;111;113;71;54;110;110;55;88;85;113;17;112;46;112;93;111;113;113;13;111;113;110;60;113;112;17;113;101;25;37;110;113;74;48;110;78;112;49;112;38;112;56;8;112;111;58;110;113;1;68;84;11;112;59;50;99;112;3;110;112;2;113;111;0;113;112;77;110;110;113;112;2;112;36;111;8;7;73;1;47;110;111;113;112;112;44;113;49;85;60;66;113;88;111;110;113;11;113;111;81;112;69;111;58;88;45;111;22;112;95;112;113;94;110;113;111;112;3;110;112;113;112;77;110;110;113;112;113;53;111;111;8;112;43;112;1;112;3;110;1;113;84;7;113;111;86;113;113;112;56;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;110;77;32;73;111;112;112;58;92;89;101;112;36;111;8;7;24;1;47;24;112;77;68;110;84;7;1;14;113;112;33;1;1;43;113;20;30;112;29;78;113;44;93;110;110;78;112;49;112;38;112;56;8;111;110;83;112;111;113;1;111;1;110;25;113;113;0;113;48;76;11;1;100;48;110;113;110;112;2;50;112;92;1;113;74;113;111;112;3;110;112;113;112;77;110;110;113;112;113;53;111;111;8;112;43;112;1;112;3;110;1;113;84;7;113;111;86;113;113;112;56;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;110;77;32;73;111;112;112;58;92;89;113;110;0;110;17;84;16;112;36;111;8;7;24;1;47;24;112;77;68;110;84;7;1;14;1;110;110;112;62;112;113;21;98;78;112;8;112;113;113;62;110;8;93;110;112;35;0;112;6;113;76;14;112;111;101;4;15;1;43;70;110;0;112;112;44;112;53;50;36;110;84;7;113;113;80;66;21;87;113;113;110;112;113;37;26;22;113;113;110;49;111;111;99;110;74;14;113;110;112;112;111;10;112;112;9;80;59;113;82;110;112;37;113;113;90;4;38;110;112;112;111;113;80;35;112;6;51;64;112;111;111;113;74;113;113;110;0;1;42;14;100;78;112;44;112;11;111;28;1;111;113;1;111;113;110;96;111;49;18;1;73;50;113;13;113;110;32;59;113;42;68;112;42;36;113;27;112;46;58;5;1;58;21;55;110;110;3;111;111;112;113;111;1;110;98;85;110;110;110;112;113;110;20;2;99;39;48;111;112;67;68;29;22;27;49;113;46;112;93;111;113;113;13;111;113;110;60;112;111;112;3;110;112;113;52;21;46;110;84;112;98;74;1;87;110;113;46;48;110;78;112;49;1;112;111;58;110;113;1;68;84;11;27;99;112;110;111;82;113;42;68;112;1;110;19;111;110;112;3;110;112;110;113;81;111;24;111;110;84;7;51;113;25;52;64;110;112;29;27;7;113;112;112;9;80;1;111;55;113;30;111;9;113;85;110;112;111;112;3;110;112;44;110;111;112;11;112;58;35;34;112;112;111;110;110;113;113;113;113;30;113;113;100;110;113;73;75;112;77;21;112;111;112;3;110;112;113;52;21;112;38;2;110;84;112;98;74;1;87;51;79;110;77;112;113;111;113;71;54;110;110;55;88;85;113;17;112;46;112;93;111;113;113;13;111;113;110;60;113;112;17;113;101;25;37;110;113;74;48;110;78;112;49;112;38;112;56;8;112;111;58;110;113;1;68;84;11;112;59;50;99;30;110;113;110;112;2;50;112;92;1;113;74;113;111;112;3;110;112;113;112;77;110;110;113;112;113;53;111;111;8;112;43;112;1;112;3;110;1;113;84;7;113;111;86;113;113;112;56;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;110;77;32;73;111;112;112;58;92;89;101;112;36;111;8;7;24;1;47;24;112;77;68;110;84;7;1;14;1;110;110;112;62;112;113;21;98;78;112;8;112;113;113;62;110;8;112;97;1;110;112;35;0;112;6;113;76;14;112;111;101;4;15;1;43;70;110;0;112;112;44;112;59;50;36;110;84;7;113;113;80;66;21;87;113;113;110;112;113;113;13;82;26;22;113;112;113;111;1;110;112;1;113;1;75;85;110;110;110;112;113;110;112;112;40;112;77;68;60;80;99;39;48;111;1;29;113;110;112;112;111;10;113;112;49;36;112;58;97;113;93;3;113;13;110;112;2;113;111;0;113;112;77;110;110;113;112;2;112;36;111;8;7;110;113;1;74;111;52;39;1;47;110;111;113;112;112;35;110;2;50;60;66;113;88;111;110;113;11;113;111;81;112;86;111;58;88;45;111;22;112;95;112;113;94;110;110;112;112;86;67;49;112;31;113;93;43;113;112;33;1;1;43;113;20;30;112;110;113;46;6;111;55;111;10;110;113;70;111;113;112;111;111;113;74;113;113;110;0;1;42;14;100;78;112;44;112;11;111;28;1;66;111;112;69;110;112;3;110;112;113;85;110;6;113;113;113;110;0;35;113;1;111;64;111;0;113;113;1;113;110;0;110;1;113;110;112;113;113;113;44;111;0;85;110;51;85;110;99;22;62;27;7;59;112;38;2;14;21;84;110;84;7;110;39;7;1;112;86;1;78;113;44;111;0;92;110;110;78;112;49;112;38;112;56;8;59;112;1;112;113;93;84;113;112;40;82;112;110;50;78;87;110;84;98;62;1;58;21;7;27;87;111;77;110;112;3;110;112;9;113;112;110;0;112;112;111;24;1;112;59;113;112;112;113;112;77;110;110;111;112;110;110;78;49;59;112;36;111;22;7;101;1;47;110;111;113;112;112;110;84;7;112;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;68;111;112;87;110;110;110;112;11;112;112;110;99;88;77;24;112;52;62;33;110;84;7;66;66;110;113;113;111;113;113;68;5;79;55;97;80;45;112;29;49;112;77;35;111;112;110;111;18;64;112;2;113;111;0;112;3;110;112;2;112;111;111;64;42;113;110;1;113;11;110;111;77;113;111;111;34;81;113;93;3;113;85;110;112;111;112;3;110;112;44;110;111;112;11;112;58;50;34;112;112;111;110;110;113;113;113;113;30;113;113;1;110;113;73;75;112;77;21;112;111;112;3;110;112;113;52;21;112;38;2;110;84;112;98;74;1;87;51;79;110;77;112;113;111;113;71;54;110;110;55;88;85;113;17;112;46;112;93;111;

2D Test Data

Covers a data generated to solve the 1-dimensional test problem.

Is an ouput fi le generated by the GP algorithm. #- start GP parameters@- number of geenerations; average fi tness; best fi tness; average length%- fl attend best solution code

Page 65: Marcin Kosicki AAC Thesis

65Marcin Kosicki AAC 2015

113;113;14;111;113;110;60;113;112;17;113;101;25;37;110;113;74;48;110;78;112;49;112;38;112;56;8;112;111;58;110;113;1;68;84;11;112;59;50;99;112;3;110;112;2;113;111;0;113;112;77;110;110;113;112;2;112;36;111;8;7;73;1;47;110;111;113;112;112;44;113;49;85;60;66;113;88;111;110;113;11;113;111;81;112;86;111;58;88;45;111;22;112;95;112;113;94;110;113;111;112;3;110;112;113;112;77;110;110;113;112;113;53;111;111;8;112;43;112;1;112;3;110;1;113;84;7;113;111;86;113;113;112;56;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;110;77;32;73;111;112;112;58;92;89;101;112;36;111;8;7;24;1;47;24;112;77;68;110;84;7;1;14;113;112;33;1;1;43;113;20;30;112;29;78;113;44;93;110;110;78;112;49;112;38;112;56;8;111;110;83;112;111;113;1;111;1;110;25;113;113;0;113;48;76;11;1;113;113;113;29;3;79;110;77;112;113;37;112;17;112;98;112;112;42;58;111;113;113;14;111;10;113;110;112;112;111;10;110;112;9;113;112;110;0;112;112;111;24;1;112;59;50;36;16;113;112;112;38;2;113;2;25;22;111;1;3;112;49;112;38;112;56;8;113;83;113;50;111;98;84;112;42;94;1;56;87;113;22;113;110;110;7;112;110;112;110;112;111;60;110;113;110;26;85;110;113;110;110;1;113;100;113;1;111;64;111;0;113;113;1;113;110;0;110;1;113;110;112;113;113;113;44;111;0;85;110;51;85;110;110;110;8;48;111;112;112;51;110;111;112;3;110;112;2;112;111;111;64;42;113;110;1;113;11;110;111;77;113;111;111;22;81;113;93;3;110;73;110;112;1;1;2;55;110;110;3;113;110;32;59;99;112;110;111;82;113;42;68;112;1;110;19;111;110;112;3;110;112;110;113;112;111;111;69;100;17;112;44;112;11;111;28;55;111;24;111;110;84;7;51;113;25;52;64;112;111;60;110;113;110;111;8;113;113;110;0;110;17;84;16;113;112;3;113;101;16;37;85;110;113;110;110;1;113;100;113;1;111;64;111;0;113;113;113;113;74;84;110;47;11;110;110;113;1;74;111;52;39;28;113;112;37;113;112;3;0;35;37;113;72;111;113;72;66;110;113;113;111;36;55;11;80;45;76;58;49;113;110;112;2;50;112;51;1;113;74;113;113;110;0;35;42;14;113;112;33;7;111;55;113;30;111;9;110;110;112;26;69;1;14;7;27;87;110;113;47;110;110;112;47;112;49;2;1;14;59;1;38;1;110;110;42;111;112;1;70;59;112;98;21;22;62;27;7;59;113;112;37;113;98;25;37;113;70;111;113;112;89;80;66;110;113;113;111;1;55;11;80;45;76;58;49;113;110;112;2;50;112;51;110;84;7;113;74;113;113;110;0;35;42;14;112;3;110;27;111;84;73;83;88;77;82;42;48;110;113;110;112;2;50;112;92;1;113;74;113;111;112;3;110;112;113;112;77;110;110;113;112;113;53;111;111;8;112;43;112;1;112;3;110;1;113;84;7;113;111;86;113;113;112;56;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;110;77;113;113;112;34;94;110;113;1;113;1;25;66;69;73;111;112;112;58;92;89;113;110;0;110;17;84;16;112;36;111;8;7;24;1;47;24;112;77;68;110;84;7;1;14;1;110;110;112;62;112;113;21;98;78;112;8;112;113;113;62;110;8;93;110;112;35;0;112;6;113;76;14;112;111;101;4;15;1;43;70;110;0;112;112;44;112;59;50;36;110;84;7;113;113;80;66;21;87;113;113;110;112;113;37;26;22;113;113;110;49;111;111;99;110;74;14;113;110;112;112;111;10;112;112;9;80;59;113;82;110;112;37;113;113;90;4;38;110;112;112;111;113;80;35;112;6;51;64;112;111;111;113;74;113;113;110;0;1;42;14;100;78;112;44;112;11;111;28;1;111;113;1;111;113;110;96;111;49;18;1;73;50;113;13;113;110;32;59;113;42;68;112;42;36;113;27;112;46;58;5;1;58;21;55;110;110;3;111;111;112;113;111;1;110;98;85;110;110;110;112;113;110;20;2;99;39;48;111;112;67;68;29;22;27;49;113;34;110;110;112;113;110;3;56;99;39;48;111;1;112;82;113;111;54;111;111;34;81;113;85;110;113;112;47;29;113;76;111;113;110;51;113;112;111;100;113;110;20;113;68;111;1;111;49;110;112;110;47;11;110;113;113;26;111;78;112;112;113;95;112;111;1;112;95;19;81;71;112;111;111;69;88;78;112;44;112;113;3;26;111;28;69;111;112;82;110;110;42;0;95;101;19;45;113;110;99;73;1;112;45;111;8;55;51;110;20;2;8;111;2;110;30;58;113;74;113;113;110;0;1;42;14;112;110;111;82;113;42;68;112;1;110;19;111;110;112;3;110;112;110;113;81;111;24;111;110;84;7;51;113;25;52;64;110;112;29;27;7;113;112;33;1;111;55;113;30;111;9;113;85;110;112;111;112;3;110;112;44;110;111;112;0;110;111;112;112;111;58;110;113;1;68;84;11;112;58;35;57;112;112;111;110;3;27;43;70;113;10;49;34;112;112;111;110;110;113;113;113;113;30;113;113;100;110;113;73;75;112;77;21;112;111;112;3;110;112;113;52;21;112;38;2;110;84;112;98;74;1;87;51;79;110;77;112;113;111;113;71;54;110;110;55;88;85;113;17;112;46;112;93;111;113;113;13;111;113;110;60;113;112;17;113;101;25;37;110;113;74;48;110;78;112;49;112;38;112;56;8;112;111;58;110;113;1;68;84;11;112;59;50;99;30;110;113;110;112;2;50;112;92;1;113;74;113;111;112;3;110;112;113;112;77;110;110;113;112;113;53;111;111;8;112;43;112;1;112;3;110;1;113;84;7;113;111;86;113;113;112;56;113;112;42;111;30;59;110;112;113;3;111;110;113;64;58;11;75;83;98;110;77;32;73;111;112;112;58;92;89;101;112;36;111;8;7;24;1;47;24;112;77;68;110;84;7;1;14;1;110;110;112;62;112;113;21;98;78;112;8;112;113;113;62;110;8;112;97;1;110;112;35;0;112;6;113;76;14;112;111;101;4;15;1;43;70;110;0;112;112;44;112;59;50;36;110;84;7;113;113;80;66;21;87;113;113;110;112;113;113;13;82;26;22;113;112;113;111;1;110;112;1;113;1;75;85;110;110;110;112;113;110;32;80;99;39;48;111;1;29;113;110;112;112;111;10;113;112;49;36;112;58;97;113;93;3;113;13;110;112;2;113;111;0;113;112;77;110;110;113;112;2;112;36;111;8;7;110;113;1;74;111;52;39;1;47;110;111;113;112;112;35;110;2;50;60;66;113;88;111;110;113;11;113;111;81;112;86;111;58;88;45;111;22;112;95;112;113;94;110;110;112;112;86;67;49;112;31;113;93;43;113;112;33;1;1;43;113;20;30;112;110;113;46;6;111;55;111;10;110;113;70;111;113;112;111;111;113;74;113;113;110;0;1;42;14;100;78;112;44;112;11;111;28;1;66;111;112;69;110;112;3;110;112;113;85;110;6;113;113;113;110;0;35;42;14;21;84;110;84;7;110;39;7;1;112;86;1;78;113;44;111;0;92;110;110;78;112;49;112;38;112;56;8;59;112;1;112;113;93;84;113;112;40;82;112;110;50;78;87;110;84;98;62;1;58;21;7;27;87;111;77;110;112;3;113;29;75;85;113;44;111;0;92;110;113;110;112;111;111;113;113;113;30;113;113;62;110;113;73;75;112;77;21;112;111;112;3;110;112;113;52;111;6;47;46;110;84;112;98;74;1;87;51;79;113;110;112;112;111;10;110;112;9;113;112;110;0;112;112;111;24;1;112;59;50;36;16;113;112;112;38;2;113;2;25;22;59;112;82;112;38;112;56;8;113;83;113;50;111;98;84;112;42;94;1;112;49;112;38;112;56;8;113;44;113;50;111;98;111;92;113;30;25;112;42;94;1;38;1;66;36;0;113;112;112;111;10;110;112;36;80;59;113;82;110;112;73;113;113;90;4;38;0;113;2;25;22;59;85;113;44;111;0;92;110;113;110;112;111;111;113;113;113;30;113;113;62;110;113;73;75;112;112;113;94;110;110;112;112;86;67;49;112;31;113;93;43;113;112;33;1;1;43;21;112;111;112;3;110;112;113;52;111;6;47;46;110;84;112;98;74;1;87;51;79;113;110;112;112;111;10;110;112;9;113;112;110;0;112;112;111;24;1;112;59;50;36;16;113;112;112;38;2;113;2;25;22;59;112;49;112;38;112;56;8;113;83;113;50;111;98;84;112;42;94;1;112;49;112;38;112;56;8;113;44;113;50;111;98;111;92;113;30;25;112;42;94;1;38;1;66;36;0;113;112;112;111;10;110;112;36;80;59;113;82;110;112;73;113;113;90;4;38;0;113;2;25;22;59;72;73;1;87;110;111;113;112;112;113;112;77;110;110;111;112;110;110;78;49;59;112;36;111;22;7;101;1;47;110;111;113;112;112;110;84;7;112;110;111;77;2;2;68;111;112;87;110;110;110;112;11;112;112;112;49;2;77;24;112;52;62;33;110;84;7;66;66;110;113;113;111;113;113;68;5;79;55;97;80;45;112;29;49;112;77;35;111;112;110;111;18;64;112;2;113;111;0;112;3;110;112;2;112;111;111;64;42;113;110;1;113;11;110;111;77;113;111;111;22;81;113;93;3;113;85;110;112;111;112;3;110;112;44;110;111;112;11;112;58;35;34;112;112;111;110;110;113;113;113;113;30;113;113;1;110;113;73;75;112;77;21;112;111;112;3;110;112;113;52;21;112;38;2;110;84;112;98;74;1;87;51;79;110;77;112;113;111;113;71;54;110;110;55;88;98;113;17;112;46;112;93;111;113;113;13;111;113;110;60;113;66;37;110;113;74;48;110;78;112;49;112;38;112;56;8;112;111;58;110;113;1;68;84;11;112;59;50;99;112;3;110;112;2;113;111;0;113;112;77;110;110;113;112;2;112;64;111;8;113;25;111;99;36;73;1;47;110;111;113;112;112;44;2;60;66;113;88;111;110;113;11;113;111;81;112;86;111;58;88;45;111;22;112;95;112;113;94;110;110;112;37;113;98;25;112;31;113;93;43;113;112;33;1;1;43;113;20;30;112;29;78;113;44;93;110;110;78;112;49;112;38;112;56;8;111;110;83;112;111;113;1;111;1;110;25;113;113;0;113;110;110;1;113;100;113;1;111;64;111;0;113;113;113;113;110;0;1;42;14;112;113;110;32;59;99;39;113;112;74;113;111;29;111;111;40;112;81;113;34;45;113;113;92;16;113;112;1;112;52;110;112;44;112;11;111;28;1;113;63;112;1;112;52;110;110;41;68;113;63;110;111;1;3;113;113;72;89;112;39;112;112;97;87;24;113;112;66;37;5;113;110;112;112;111;10;112;112;9;80;59;113;82;110;112;37;113;113;90;4;38;110;112;112;111;113;80;35;112;6;51;64;112;111;111;113;74;113;113;110;0;1;42;14;100;78;112;44;112;11;111;28;1;111;113;1;111;113;110;96;111;49;18;1;73;50;113;13;113;110;32;59;113;42;68;112;42;36;113;27;112;46;58;37;113;72;111;113;112;89;80;20;110;113;113;111;36;55;11;80;45;76;11;1;113;113;113;29;3;79;110;77;112;113;37;112;17;112;98;112;112;42;58;111;113;113;14;111;73;112;111;58;110;113;1;68;84;39;56;87;113;22;113;113;13;100;42;48;110;113;110;112;2;50;112;92;1;0;1;110;110;112;62;112;113;21;98;78;112;8;112;113;113;62;110;8;112;97;1;110;112;35;0;112;6;113;76;14;112;111;101;4;15;1;43;70;110;0;112;112;44;112;59;50;36;110;84;7;113;113;80;66;21;87;113;113;110;112;113;113;13;82;26;22;113;113;110;49;111;111;99;110;74;14;113;110;112;112;111;10;112;112;9;80;59;113;82;110;112;37;113;113;90;4;38;110;112;112;111;113;80;35;112;6;51;110;47;11;112;111;111;113;74;113;113;110;0;1;42;14;100;78;112;44;112;11;111;28;1;111;113;1;111;113;110;96;111;49;18;1;73;50;113;13;113;110;32;59;113;42;68;112;42;36;113;27;112;46;58;5;1;58;21;55;110;110;3;111;111;112;113;111;1;110;98;85;110;110;110;112;113;110;32;59;99;39;48;111;112;67;68;29;22;27;49;113;34;110;110;112;113;110;110;113;77;112;40;23;12;56;99;39;48;111;1;112;82;113;111;54;111;111;34;81;113;85;110;113;112;47;29;113;76;111;113;110;51;113;112;111;100;113;110;20;113;68;111;1;111;49;110;112;110;47;11;110;113;113;26;111;78;112;112;113;95;112;113;110;59;62;27;81;71;112;111;111;69;88;78;112;44;112;113;3;26;111;28;69;111;112;82;110;110;42;0;95;101;19;45;113;110;99;73;1;112;45;111;8;55;51;110;20;2;8;111;2;110;30;58;113;74;113;113;110;0;1;42;14;112;110;111;82;113;42;68;112;1;110;19;111;110;112;3;110;112;110;113;81;111;24;111;110;84;7;51;113;25;52;64;110;112;29;27;7;113;112;33;1;111;55;113;30;111;9;110;110;112;26;69;1;14;7;27;87;110;113;47;110;110;112;47;112;49;2;1;14;59;113;44;111;0;92;110;113;110;112;111;111;10;113;110;112;112;111;10;110;112;9;113;112;110;0;112;112;111;24;1;42;36;16;113;112;112;38;2;113;2;25;22;59;112;49;112;38;112;56;8;113;83;113;50;111;98;84;112;42;94;1;112;49;112;112;74;112;111;110;64;90;112;95;1;111;67;59;112;56;8;113;13;113;50;111;98;111;92;113;30;25;112;42;94;1;38;1;66;110;113;113;111;36;55;35;111;68;113;70;113;112;111;29;111;111;40;113;81;113;34;45;113;113;92;16;113;112;1;112;38;110;110;41;68;113;66;110;111;1;3;113;2;112;39;110;112;97;87;24;113;110;49;111;111;111;55;35;110;74;48;113;110;112;112;111;10;112;112;9;80;59;113;82;110;112;73;113;113;90;4;38;112;112;112;111;113;110;112;110;110;7;58;82;68;112;21;110;110;42;111;112;1;70;59;112;98;21;35;112;6;51;64;112;111;111;69;100;17;112;44;112;11;111;28;1;1;113;13;113;50;113;42;44;112;42;36;113;27;112;46;58;5;113;113;42;42;79;113;2;21;45;112;29;49;113;44;111;0;85;110;110;78;112;49;112;70;112;56;8;59;1;87

Page 66: Marcin Kosicki AAC Thesis

66 Integrating Supervised Data Mining into Performance Oriented Design

!;-2.1282560000097117;4.304054518328149;-2.582981193205225;3.534862458658049;1.5631861296409202;-4.776173809541423;3.6056908159253886;-0.9068694127176098;1.2287246023568326;-2.7303874773969117;3.8911451818849905;2.8977755839020682;-4.131457226781919;-0.42912069958337984;4.14498109245115;-2.6685858015412167;3.4130109629471335;-0.5932187500209825;-4.923938870786545;-2.5313852393044067;1.4489551008169013;-2.916224861066894;-4.5529641586185665;2.4916-598103650536;4.60040589537819;-4.99253443510621;2.9165737724838694;-0.39303519206570137;-3.836988769539328;2.7690538670584193;3.8027657255748792;2.8928824348245987;1.8744996335094797;4.80309470118517;-4.62237173379381;-2.472808392591598;0.5492804415092873;0.9720875648637861;-1.8204152995065748;1.922654887243076;-0.2865276572613542;3.2947634069540594;1.2702523261201595;-3.5583972645801043;4.347357657715733;3.958748689597579;0.36382202481867054;-2.434417216401128;3.3754562482576542;0.7446275663964137;-2.6782356985019087;0.6636895277041504;1.6401232573670246;-3.9627633349603206;-0.3674460997429101;2.8332686156845313;4.752771417533767;4.711368768933159;0.1855551106141835;-0.3207336761028676;0.4375300312261521;4.352880816299944;0.90016463341298;-3.6464226087886162;2.765344205137737;-1.4874645213138207;-1.4142403866730957;3.693315969519853;-4.97776653241869;-0.011272678264685254;-2.21504470351-2076;4.8770174057238;2.863623514770657;-3.5034195844696834;3.292127071509478;-3.3396427527845027;1.8773718952067666;-4.495273764436737;4.541104936808285;1.9580460252320897;2.711307835419584;-1.4925994658292385;-4.879596038404959;-2.6938552691788553;2.5168160163028928;-2.451670990439073;3.301303131503383;-0.4308833457863024;3.6181912774534037;-1.575805630401633;3.6535433348256294;1.1485144243295604;-0.9618058632976911;-4.330690487310417;-4.424636517809986;1.9052762463510629;-0.2065519524057997;4.159450064412228;1.8790506367103266;-0.9748137991363848;0.7190097196832284;0.9716217337486333;-0.5498694870075136;3.13712737198742;-0.010339019127632909;-1.0021240593643665;4.437780106775925;0.13633916043361172;2.4761612214614415;0.7351051542419915

@;130;41.8117076249964;2.367933939863746;5316.2621;29930622%;113;2;112;113;29;110;112;2;113;42;111;74;112;113;72;14;110;113;113;60;111;113;111;1;110;113;113;1;111;110;110;65;0;78;64;9;2;78;60;9;2;113;111;111;49;110;110;65;0;56;110;1;112;110;60;113;87;112;110;111;6;111;1;110;113;113;60;111;110;113;112;2;111;83;113;113;60;112;23;94;113;84;112;113;112;39;111;74;112;113;112;2;111;112;111;113;69;110;113;40;112;111;94;113;111;30;72;84;71;13;68;100;113;113;60;111;35;113;110;20;113;113;60;111;35;110;113;113;60;110;111;51;32;113;110;81;53;45;14;2;111;69;113;110;10;77;60;112;113;49;113;110;113;56;95;112;56;62;111;112;110;85;110;17;0;45;112;113;110;112;73;61;24;113;55;111;110;110;70;24;80;27;113;111;111;111;52;111;12;75;111;82;88;110;113;2;111;111;53;113;56;110;113;110;86;49;9;2;113;43;49;11;81;110;113;2;110;42;113;86;11;111;112;72;113;111;110;97;45;37;87;113;110;113;112;112;110;78;113;110;90;2;113;88;113;54;113;110;10;87;111;110;110;24;111;112;72;12;112;110;16;42;110;110;36;113;110;112;113;101;42;85;112;69;36;111;29;20;110;113;2;111;82;113;112;112;112;111;66;113;19;63;84;46;94;111;113;111;111;49;110;110;65;0;56;37;68;113;55;112;51;16;2;0;112;2;32;113;2;11;13;76;113;113;113;112;112;76;110;112;29;64;75;113;110;89;54;14;111;48;110;110;110;112;113;4;110;113;2;110;111;53;113;26;95;112;43;49;11;17;12;111;110;10;111;5;110;111;98;76;113;110;95;110;111;112;74;9;57;112;41;1;111;110;36;0;83;110;2;68;68;68;102;112;111;113;69;110;113;38;112;111;94;113;19;84;71;110;77;112;111;42;112;90;87;37;68;100;111;69;112;62;110;98;111;112;110;113;2;112;111;29;110;112;2;113;1;111;55;111;65;111;111;20;112;35;112;112;60;112;110;41;53;45;45;110;71;111;112;72;37;12;113;111;111;49;110;110;17;0;56;37;68;100;113;110;10;87;111;110;36;0;110;2;68;12;81;14;110;113;113;60;111;113;113;112;2;60;113;49;113;110;113;56;95;112;25;62;111;112;110;85;110;17;0;45;37;78;60;9;2;110;113;110;113;112;2;111;83;113;113;60;112;23;94;113;95;112;113;112;39;10;110;113;110;113;37;2;110;77;112;111;42;112;12;87;37;112;110;110;65;0;56;113;84;45;110;77;110;59;113;112;110;97;111;110;49;65;113;111;45;112;111;72;110;113;4;76;2;14;68;45;51;113;43;113;110;20;2;112;113;112;112;2;36;49;113;42;111;59;45;110;113;2;110;42;113;86;111;111;49;110;110;17;0;56;37;111;112;72;113;111;110;97;45;37;51;112;110;33;16;112;12;87;2;110;77;60;112;110;110;65;29;78;113;110;81;53;45;110;77;110;2;113;112;110;97;111;110;49;72;113;111;45;110;4;60;68;52;51;45;26;78;64;110;85;110;17;0;2;112;46;112;110;110;2;42;111;81;110;40;52;16;2;112;6;112;113;111;10;110;4;110;17;0;68;110;0;113;112;2;113;47;111;9;110;2;111;69;112;62;110;98;111;112;110;112;2;113;47;111;9;110;2;111;110;17;0;112;113;110;113;56;95;112;25;62;111;112;110;113;56;95;110;17;0;45;112;113;110;112;73;61;24;29;113;71;81;110;98;111;112;110;113;2;112;111;29;110;112;2;113;1;111;55;111;65;111;111;20;112;60;112;110;41;53;45;110;71;111;112;29;40;36;113;111;111;49;110;110;17;0;56;37;68;100;1;12;87;1;12;110;59;27;112;112;110;113;2;112;111;29;110;1;113;111;111;49;110;110;17;0;56;111;72;110;113;111;45;110;0;60;76;2;68;100;1;12;110;71;94;83;100

3D Test Data

Covers a data generated to solve the 1-dimensional test problem.

Is an ouput fi le generated by the GP algorithm. #- start GP parameters@- number of geenerations; average fi tness; best fi tness; average length%- fl attend best solution code

Page 67: Marcin Kosicki AAC Thesis

67Marcin Kosicki AAC 2015

!;-0.5851029841438535;2.334418697676348;1.8014287528336368;1.0505503514225998;1.5713893745390557;-1.0859438467536422;0.34533884953505556;1.422096075429855;1.1758804858859548;1.7949788172900796;-0.5883538490771336;-1.310837408717871;2.9408399210767415;0.4946584254213664;0.43161610998193733;-1.7408415-516215716;-0.6434252453699392;-0.6533366503498792;0.019770092626061775;2.8577173896148107;-0.16916272552084255;-0.32006473464089424;-2.130126348089906;2.4634322848524226;0.8800588807764331;0.5819024108779214;0.577887655546363;-0.40395077615865294;-2.7076853367596403;1.325203711000822;0.9867901782406-463;2.392388110318535;1.5786098943735123;0.1686560512677806;2.888413668400892;0.12886147277440507;-0.38694154220627963;0.5614554663056568;-0.6548222715313883;1.7615784745986707;-1.8659836010267323;2.7854639993687043;-0.49017334900918197;-2.345374296630794;-1.2627919195178787;2.7637926734486804;1.6240229239710047;1.9542278591108486;-2.861624603693625;2.1447504267814743;2.8668743805606915;2.041099304994747;1.8169589799777963;2.838588023782715;-0.09778545600406963;2.155410263649145;0.6738092736482417;-1.0596747859727804;1.3386835045468501;2.63839520111547;0.04490450389931233;-0.5846900608631396;2-.869395573897549;0.27174709618125004;-2.6904571331837426;2.055015799417208;-2.4017875299572857;-1.0794565297013263;-1.584544702659095;1.0289458883772067;-0.01262443504769184;-2.902433584251109;0.9147742756026824;0.86436782792584;-2.0235157089554714;0.16648186979177426;-0.43622673194425854;0.8789657777967195;2.1255436377920063;1.6884586106412929;1.1857812668333398;-0.02764555125405188;-2.874962604374783;-1.1085885273974319;-1.6693426397996738;0.2507597766607863;-0.30628314879798957;1.4031674608631874;-2.7143035498817785;-0.7849716788955909;-2.2499681659408592;2.2394578534948195;-2.798180079182524;0.1854900577838272;-1.2041370280808488;-0.4252455166129776;-0.5046071620332633;1.2680560429067258;-1.3085517593207558;-2.951428245045326;0.2699890681222543;2.4842922002714447;-2.5718649953168304;-2.728028737620062;-0.7260860858931171;-1.3059282112989177;0.12081651756498113;1.7986090873949196;-1.1317236624933813;2.6327653319721556

@;100;247.1338095206802;18.12211606947235;3724.78296;33785642%;112;110;110;8;0;110;111;110;112;39;35;113;112;37;100;111;112;61;39;112;75;111;110;37;111;110;105;0;2;110;113;111;113;85;65;113;111;113;111;81;113;113;111;111;57;67;111;80;112;113;112;111;26;14;110;112;113;111;111;112;111;62;50;57;108;112;113;36;105;112;74;112;110;112;111;2;110;112;110;75;112;112;110;112;111;110;85;8;110;113;11;13;112;71;5;112;111;44;112;18;4;5;111;86;85;81;111;73;100;10;50;113;33;25;111;110;9;112;112;88;81;27;111;108;61;50;61;111;81;74;101;113;31;80;21;111;74;49;111;72;106;100;108;110;31;100;110;31;110;113;112;8;112;112;112;113;33;111;56;96;85;28;111;113;3;113;100;111;112;18;4;45;112;19;95;7;112;74;25;110;111;58;71;111;64;112;11;90;113;111;104;110;44;112;35;112;74;9;110;31;110;110;111;8;113;112;110;4;85;28;111;113;3;113;110;85;0;113;111;113;110;112;87;37;111;26;112;110;75;112;62;94;10;112;110;113;19;95;110;72;2;89;111;111;112;85;22;113;19;73;59;45;113;19;95;90;112;110;110;8;0;111;110;110;112;39;80;7;110;1;6;113;113;2;110;112;113;112;111;113;111;8;113;112;110;4;85;28;111;113;3;113;110;8;0;113;111;113;110;112;87;37;111;26;112;110;75;112;62;94;10;112;110;113;19;95;110;72;2;89;111;111;112;58;22;113;19;73;59;45;113;19;95;65;113;112;112;111;62;112;63;112;0;112;73;110;39;6;61;108;110;31;100;110;31;110;110;112;113;113;113;110;110;8;0;111;110;110;112;39;80;7;110;1;6;113;113;37;110;112;113;112;111;113;85;65;113;112;112;111;62;112;63;112;0;112;73;110;39;113;111;112;35;112;74;9;21;111;58;71;61;108;110;31;100;110;31;110;110;112;113;113;113;49;80;111;87;113;110;87;53;112;60;22;32;113;112;112;113;92;111;56;47;85;28;56;111;1;80;111;72;6;111;111;58;71;111;14;112;37;108;110;43;81;100;111;75;113;110;45;78;110;112;113;110;111;35;93;110;75;5;93;110;110;111;112;112;111;113;110;110;98;110;110;113;19;113;74;110;111;112;111;62;50;57;108;112;100;79;111;65;111;95;89;113;113;10;65;110;112;113;89;49;111;13;14;58;97;80;113;70;46;110;110;111;81;111;56;110;70;18;29;9;112;81;74;104;113;80;111;112;113;87;110;31;104;50;111;113;72;97;61;113;112;112;54;113;105;112;110;110;110;30;110;113;113;111;111;57;25;111;13;74;111;74;49;37;71;95;111;58;105;86;82;80;13;80;111;87;113;110;68;73;112;60;22;32;113;112;112;113;92;111;56;47;85;28;56;111;1;80;111;72;6;111;111;58;71;111;14;112;37;108;110;43;81;100;111;75;113;110;39;78;110;112;113;110;111;35;93;110;75;5;93;110;110;111;112;112;111;113;110;110;98;110;110;113;19;95;111;65;111;95;89;113;113;10;65;110;112;113;89;49;111;13;14;58;97;80;110;111;113;112;108;105;91;111;113;111;51;105;110;102;102;11;113;110;13;110;47;2;49;110;110;111;112;113;85;113;112;110;110;8;0;110;2;111;58;71;86;113;49;45;11;111;56;110;70;94;29;9;112;81;74;104;113;80;111;112;113;87;110;31;104;50;111;113;72;97;61;113;112;112;54;113;105;112;110;110;110;30;110;113;113;111;111;2;67;111;13;74;111;74;49;37;71;56;111;58;105;86;82;80;13;106;111;110;110;112;110;110;13;41;110;110;8;0;6;113;2;111;113;113;110;39;78;110;112;113;110;111;35;93;110;75;5;93;110;110;111;112;112;111;113;110;110;98;110;110;112;111;56;113;26;66;112;19;113;49;110;111;8;37;110;111;73;50;71;111;110;25;17;111;49;6;113;113;10;65;110;112;113;89;49;111;13;14;58;97;80;110;111;113;112;108;105;91;111;113;111;51;105;110;102;102;11;113;110;13;110;47;2;49;110;110;111;81;111;56;110;70;94;29;9;112;81;74;104;113;80;111;112;113;87;110;31;98;50;111;113;72;97;61;113;112;112;54;113;105;112;110;110;110;30;110;113;113;110;110;111;81;111;56;110;56;94;59;9;111;74;49;37;71;95;111;58;111;113;110;110;98;110;110;112;111;112;110;35;14;18;113;26;66;112;19;113;49;110;111;8;37;110;111;73;1;71;111;110;25;17;111;95;89;113;113;10;111;110;64;111;67;40;110;19;112;112;79;110;110;34;110;9;1;89;112;64;111;110;112;112;37;83;39;25;2;110;112;113;89;49;111;13;14;58;97;80;110;111;113;112;108;105;110;31;110;110;111;8;113;112;110;4;85;28;110;31;100;90;112;110;110;8;0;111;110;110;112;39;80;7;110;1;6;113;113;2;110;112;113;112;113;62;100;110;31;110;110;112;113;113;113;113;110;113;113;112;113;21;113;105;2;110;111;106;96;56;110;31;100;111;112;3;111;110;8;111;8;111;66;3;5;113;19;95;77;73;80;111;87;113;110;110;8;0;110;111;110;112;39;35;113;112;37;100;111;112;61;39;112;75;111;110;113;9;62;111;110;105;0;2;110;113;111;113;85;65;113;111;113;111;81;111;5;110;70;85;100;108;110;31;100;110;31;110;113;112;113;113;113;49;73;80;111;87;113;110;68;73;112;60;22;112;112;112;113;33;111;56;96;85;28;111;113;3;113;100;111;49;45;112;19;95;7;112;74;25;110;111;58;71;111;64;112;11;90;113;111;104;110;44;112;35;112;74;9;110;31;110;110;111;8;113;112;110;4;85;28;111;113;3;113;110;8;0;113;111;113;110;112;87;37;111;26;112;111;45;112;19;85;10;112;110;113;19;95;110;72;2;89;111;111;112;85;22;113;19;73;59;45;113;19;95;90;112;110;110;8;0;111;110;110;112;39;80;7;110;1;6;113;113;2;110;112;113;112;111;113;85;65;113;112;112;111;62;112;72;112;0;112;73;110;39;113;111;112;35;112;74;9;21;111;110;112;110;111;113;105;111;112;61;39;112;75;111;110;113;9;62;111;110;105;0;2;110;113;111;113;85;65;113;111;113;111;81;111;96;110;70;85;100;108;110;31;100;110;31;110;113;112;8;112;112;112;113;33;111;56;1;85;89;111;113;3;70;112;19;95;7;112;74;25;110;111;58;71;111;64;1;86;6;86;25;64;110;113;52;112;113;110;112;112;110;111;35;93;110;110;104;108;5;93;37;111;91;99;110;104;108;93;100;108;110;31;100;110;31;110;110;112;113;113;113;110;112;112;37;83;39;25;80;111;87;113;110;68;73;112;60;22;32;113;112;112;113;92;111;56;47;85;28;56;111;1;106;111;72;6;111;111;58;71;111;14;112;37;108;110;43;81;100;111;75;113;110;39;78;110;4;13;106;111;110;110;112;110;110;113;106;110;113;113;73;112;83;1;110;112;81;33;108;93;41;110;72;6;113;2;111;113;3;110;1;112;81;74;113;52;95;7;110;5;6;111;111;111;112;93;79;110;39;2;1;3;112;60;22;32;113;112;112;62;85;28;56;111;1;80;111;72;6;111;111;58;71;111;14;112;37;108;110;43;81;100;111;75;113;110;39;78;110;112;113;110;111;35;93;110;75;5;93;110;110;111;112;112;111;113;110;110;98;110;110;112;111;112;110;35;14;18;113;26;66;112;19;110;111;73;1;71;111;110;25;17;111;95;89;11

9D Test Data

Covers a data generated to solve the 1-dimensional test problem.

Is an ouput fi le generated by the GP algorithm. #- start GP parameters@- number of geenerations; average fi tness; best fi tness; average length%- fl attend best solution code

Page 68: Marcin Kosicki AAC Thesis

68 Integrating Supervised Data Mining into Performance Oriented Design

3;113;10;65;110;112;113;89;49;111;18;14;58;97;80;110;111;113;112;108;105;91;111;113;111;51;105;110;102;102;75;113;110;13;110;47;2;49;110;110;111;81;111;56;110;70;94;29;9;112;81;74;104;113;80;111;112;113;87;110;31;104;50;111;110;111;35;93;110;75;5;61;113;112;112;54;113;105;112;110;110;110;112;110;111;110;110;112;110;110;113;106;110;113;113;73;112;83;1;110;112;81;33;108;93;41;110;72;6;113;110;110;93;110;110;13;112;85;2;57;110;26;99;111;113;3;110;1;112;81;74;113;19;95;7;110;5;6;111;111;111;112;93;79;72;1;3;111;110;110;112;39;80;7;110;1;6;113;113;2;110;112;113;112;111;113;85;65;113;112;112;111;62;112;63;112;0;112;19;95;61;108;110;31;105;110;31;110;110;112;113;113;113;113;110;113;113;112;113;21;113;105;2;110;111;106;96;56;110;31;100;111;112;3;111;110;8;111;8;111;66;3;5;113;19;95;77;73;80;111;87;113;110;68;73;112;60;22;32;113;112;113;33;111;56;96;85;56;111;1;80;111;72;6;111;111;58;71;111;14;31;110;43;81;100;111;75;113;110;39;78;110;112;113;110;111;35;93;110;75;5;93;110;110;111;112;112;111;113;110;110;98;110;110;112;111;112;110;35;14;18;113;26;66;112;19;110;113;113;111;111;72;97;111;31;85;110;8;0;13;112;71;5;111;110;25;17;111;95;89;113;113;10;65;110;112;113;89;49;111;13;14;58;97;80;110;111;113;112;108;105;58;111;4;39;113;110;13;110;47;2;49;110;110;111;81;111;56;110;70;85;29;9;112;81;50;104;113;80;111;112;113;87;110;31;104;50;111;113;72;97;61;113;112;112;54;113;105;112;110;110;110;30;110;113;113;111;111;57;67;111;80;112;113;112;111;108;14;110;112;113;111;111;112;111;62;50;57;108;112;113;36;105;112;74;112;110;112;111;2;110;112;110;75;112;112;110;112;111;110;85;8;110;113;11;13;112;71;5;112;111;44;112;18;4;5;111;86;85;81;111;73;100;10;50;113;33;25;111;110;9;112;112;88;81;27;111;108;61;50;61;111;81;74;101;113;31;80;21;111;74;49;111;72;106;71;95;111;58;105;86;82;80;13;106;110;113;113;111;111;57;67;111;13;112;113;112;111;26;14;110;112;113;111;111;112;111;62;50;57;108;46;61;111;81;74;101;113;31;80;21;111;74;49;37;71;95;111;58;105;86;82;80;13;106;111;113;111;51;105;110;102;113;110;111;30;113;49;54;113;90;39;111;112;110;111;112;111;113;44;110;44;36;110;111;112;57;51;110;87;53;13;111;112;54;92;112;63;112;41;57;26;26;48;110;111;111;110;113;62;112;110;8;0;87;111;113;99;110;90;75;21;112;19;112;60;96;98;65;11;113;110;13;110;47;2;49;86;82;80;13;110;1;112;81;74;113;19;95;7;110;5;6;111;111;111;112;93;110;110;91;3;11;110;39;2;1;3;106

Page 69: Marcin Kosicki AAC Thesis

69Marcin Kosicki AAC 2015

!;3.7640520752800324;-4.995865734252348;2.9006981403054546;1.3973691283283483;0.39091737731567466;4.936218379202344;-2.1959115783994965;-3.526392311724881;2.478188692033065;-1.9503591490778005;-1.2068283364362573;-2.3302429119786936;1.1581869745817048;-3.8351108111736854;-2.2791269462879873;-1.93667-99571162763;2.437513901593525;-1.1487966421932216;-4.873926443219441;-3.7120850339513165;4.821332099490759;-3.4870471303557835;4.805130216384065;4.003757259555952;-2.4810964621330625;2.520480212064119;1.8853328540111702;-3.962364073932579;2.857394644341177;0.3781487081652468;-4.956083144588944;-1.5717127173044698;-3.420206232215277;2.0492803426934545;1.8463270725933913;-0.7287272642858289;-1.1858888622540729;-4.75286855730603;-1.4299995814854483;3.478161208779092;-3.325142702664865;0.7530008095723577;2.3350223724569386;-4.651966521960183;-3.305868828598312;-4.362983766891921;3.880581074453726;-2.195017522503351;1.5784666494508857;4.634109024098684;3.9062289217482054;-1.8162279745954226;1.1489277916030023;-0.13287601491704848;4.5395337007201135;-0.004460754418031065;1.7457556499479576;-1.3890197246246547;0.19678268878400829;4.98058846793805;1.8652130964850215;-0.1437597069704193;-1.1290177804388457;-1.9514234732861402;4.345091189032686;3.057404440877411;-4.28853329425992;-4.293446615183141;-2.9733287258500196;-3.3593015279552576;-4.347979163519115;4.375047834544052;4.494770939425784;-0.40192524528736406;0.7994835456284903;-4.604135629564066;3.233820758039027;-3.1913983432264703;1.31239185523585;0.990932654667871;1.3367545537662098;-2.394630393311543;-4.420707271477974;3.8397510134060635;1.7648198953728826;-2.4545068291155836;-3.3510654510312223;-2.086334351250083;-4.919755158092575;-4.657257892058244;-2.9303755739493056;-0.2615613969011088;3.5600265384242533;0.4867915606672817;3.5626175182128783;-2.6477510233953083;3.647930697599911;2.200026682710851;-3.715517341412279;-1.1155140578918399;-2.186873673025451;-2.92770057805124;4.825965662648095;3.901390727653599;0.05770179316731827;0.9659794336627714;4.549950322725685;-1.552196260447766;1.5516391031422927;0.5981012962482657

@;135;1192.935624057544;76.50369574658623;6109.3263;205062750%;111;111;41;113;113;7;96;110;112;113;37;89;4;19;113;113;110;110;29;113;112;18;60;113;112;59;110;6;10;110;112;113;113;113;74;67;111;110;92;113;113;12;110;110;112;111;1;111;113;110;110;112;59;110;6;7;113;113;113;108;111;111;99;53;49;111;83;19;112;16;111;22;112;1;113;96;113;113;0;31;110;110;110;79;111;38;1;47;110;52;112;113;113;113;74;67;111;110;92;113;113;12;110;23;90;30;64;110;110;113;110;110;112;59;110;113;13;110;112;101;112;113;13;111;110;113;38;110;112;67;92;111;28;20;113;7;92;113;45;111;113;110;113;111;110;112;112;110;36;47;102;113;110;112;113;110;111;22;113;111;34;32;22;111;110;112;35;112;89;55;111;112;111;46;19;79;5;113;111;113;112;58;46;111;111;108;112;113;44;110;103;101;113;74;79;112;112;92;110;74;113;104;111;92;110;64;113;80;111;60;55;112;44;9;111;70;113;110;58;71;111;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;113;110;110;112;59;110;6;7;113;113;113;108;111;111;99;53;49;111;83;97;93;111;70;113;110;58;71;111;110;110;113;110;30;47;110;87;113;31;113;105;69;38;111;110;30;113;111;98;85;110;2;85;111;13;74;60;62;112;113;20;68;113;22;92;74;113;53;112;110;79;111;38;1;111;22;19;29;62;11;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;74;112;105;86;60;111;113;103;111;88;73;64;52;112;110;54;46;110;110;113;110;110;112;59;110;113;13;110;112;101;112;113;13;111;110;89;113;7;92;113;102;111;112;113;37;89;4;15;104;64;5;113;113;107;111;88;73;113;111;41;32;42;59;62;113;111;49;64;113;30;110;110;95;72;76;113;111;49;64;22;69;112;113;111;110;97;111;49;64;60;111;112;67;58;113;113;113;111;73;113;112;110;30;113;58;102;17;98;74;111;31;44;113;91;93;112;110;65;68;29;62;15;104;113;111;50;113;112;112;110;74;113;79;111;92;110;76;113;113;113;102;113;113;96;113;112;111;74;62;113;38;110;112;67;92;111;28;20;110;110;69;72;76;113;11;111;111;64;113;113;93;113;113;69;32;74;110;111;72;111;111;44;57;108;111;45;113;113;111;59;112;111;62;110;102;97;22;96;67;112;112;113;52;54;1;10;113;111;113;111;75;99;44;113;45;44;106;111;46;63;113;104;113;61;46;111;102;20;68;112;9;59;5;113;113;107;111;88;73;113;111;41;32;42;29;62;113;111;49;64;113;30;110;110;95;72;76;113;111;49;64;22;110;22;112;44;9;111;70;113;110;58;71;111;110;110;113;52;110;87;113;31;113;105;69;38;111;49;64;60;62;64;110;6;10;112;113;65;68;29;29;30;64;110;110;113;110;110;112;59;110;113;13;110;112;101;112;113;13;111;111;58;110;78;36;113;45;111;113;110;113;111;110;112;112;110;36;47;102;113;110;112;113;110;111;22;113;111;111;113;13;52;112;110;54;46;22;32;22;111;110;112;35;112;89;55;111;112;111;46;19;110;110;110;112;111;1;111;113;110;110;112;59;110;6;7;113;113;113;108;111;111;99;53;49;111;83;19;113;85;60;111;70;113;110;58;71;111;110;110;113;52;110;87;113;31;113;105;69;38;111;49;64;60;62;64;110;6;10;113;53;112;110;79;111;38;1;111;22;19;29;107;5;113;111;113;112;58;46;111;111;108;112;113;44;110;103;101;113;74;79;112;112;92;110;74;113;104;111;92;112;111;112;67;58;68;54;112;44;9;111;70;113;110;58;71;111;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;113;110;110;112;59;110;6;7;113;113;113;108;111;111;99;53;49;111;83;19;112;34;112;105;86;111;70;113;110;58;71;111;110;110;113;110;30;47;110;87;113;31;113;105;69;38;111;110;30;113;111;98;85;110;2;85;111;13;74;60;62;112;113;20;2;113;22;92;110;6;10;113;53;112;110;79;111;38;1;111;22;19;29;62;11;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;74;112;105;86;60;111;113;103;111;88;73;64;52;112;110;54;46;110;110;113;110;110;112;59;110;113;13;110;112;101;112;113;13;111;110;89;113;7;92;113;102;111;112;113;37;89;4;15;104;64;5;113;113;107;111;88;73;113;111;41;32;42;59;62;113;111;49;64;113;30;110;110;95;72;76;113;111;49;64;22;69;112;113;111;110;97;111;49;64;60;111;112;67;58;113;113;113;111;73;113;112;110;30;113;58;102;17;98;74;111;31;44;113;91;93;112;110;65;68;29;62;15;104;113;111;50;113;112;112;110;74;113;79;111;92;110;76;113;113;113;102;113;113;96;113;112;111;74;113;113;14;113;112;101;112;113;113;93;111;112;111;112;67;58;68;110;79;23;80;111;110;78;113;7;92;111;111;57;64;111;113;110;111;112;59;110;6;5;111;113;113;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;52;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;113;58;111;112;101;32;108;43;98;74;111;64;44;113;91;93;112;110;65;68;113;32;110;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;113;46;64;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;113;58;111;112;101;32;108;43;98;74;113;112;112;110;74;113;79;111;92;110;76;113;113;113;102;113;113;96;113;112;111;74;113;113;14;113;112;101;112;113;113;93;111;112;111;112;67;58;68;110;79;23;80;111;110;78;113;7;92;111;111;57;64;111;113;110;111;112;59;110;6;5;111;113;113;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;52;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;113;29;111;112;101;32;108;43;98;74;111;64;44;92;112;110;65;68;113;32;110;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;113;46;64;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;113;58;111;112;101;32;108;43;98;74;111;64;31;113;91;93;112;110;65;68;113;32;110;79;111;38;1;111;46;113;111;112;101;110;112;113;37;89;4;19;111;113;113;113;111;110;113;111;110;113;113;110;79;111;111;112;12;55;110;2;14;1;111;111;36;111;88;73;113;112;111;74;113;113;13;111;112;101;110;112;113;37;110;113;13;110;112;101;112;113;13;111;107;113;45;6;104;64;5;4;19;64;112;110;54;46;22;113;111;93;76;58;23;110;110;112;13;74;113;113;110;1;110;113;35;73;74;113;113;112;101;112;111;46;19;110;113;46;112;101;91;107;7;113;57;49;32;111;22;112;112;41;43;69;5;112;110;54;46;22;69;112;111;113;110;92;93;111;1;111;113;110;110;112;59;110;6;5;113;113;110;78;36;111;83;19;113;111;41;32;30;29;62;11;11;112;110;65;68;113;113;40;112;74;76;110;79;111;38;1;111;46;113;103;111;88;73;64;111;83;19;17;64;111;88;73;111;38;1;12;64;111;83;19;113;111;41;32;22;113;93;113;113;113;93;111;73;80;110;75;111;55;111;96;75;111;97;19;62;11;110;92;93;64;65;113;38;

16D Test Data

Covers a data generated to solve the 1-dimensional test problem.

Is an ouput fi le generated by the GP algorithm. #- start GP parameters@- number of geenerations; average fi tness; best fi tness; average length%- fl attend best solution code

Page 70: Marcin Kosicki AAC Thesis

70 Integrating Supervised Data Mining into Performance Oriented Design

110;112;67;92;111;28;20;110;110;69;72;76;113;11;111;111;64;113;113;93;113;113;63;32;74;110;111;72;111;111;44;57;108;111;45;113;113;111;59;112;111;62;110;102;97;22;96;67;112;43;10;113;111;113;111;75;99;44;113;45;44;106;111;46;63;113;104;113;61;46;111;102;20;68;113;91;93;112;110;65;68;113;32;110;79;111;38;1;111;46;113;111;112;101;110;112;113;37;89;4;19;111;113;113;113;111;110;113;111;110;113;113;110;79;111;111;112;12;55;110;2;14;1;111;111;36;111;88;73;112;110;30;113;58;102;17;110;110;112;13;74;113;113;110;1;110;113;35;73;74;113;113;112;101;112;111;46;19;110;113;46;112;101;91;107;7;113;57;49;32;111;22;112;112;41;43;69;5;112;110;54;46;22;69;112;111;113;110;92;93;111;1;111;113;110;110;112;59;110;6;5;113;113;110;78;36;111;83;19;113;111;41;32;30;29;62;11;11;112;110;65;68;113;113;40;112;74;76;110;79;111;76;1;111;46;113;103;111;88;73;64;111;83;19;17;64;111;88;73;111;38;1;12;64;111;83;19;113;111;41;32;22;113;113;111;59;112;111;62;110;102;97;22;96;67;62;11;104;64;65;113;38;110;112;67;92;111;28;20;110;110;69;72;76;113;11;111;111;64;113;113;60;113;113;69;32;74;110;111;72;111;111;44;57;108;111;45;113;113;111;59;112;111;62;110;102;97;22;96;67;112;112;113;52;54;1;10;113;111;113;111;75;99;44;113;45;44;106;111;46;63;113;104;113;61;46;111;102;20;68;112;9;59;5;113;113;107;111;88;73;113;111;41;32;42;29;62;113;111;49;64;113;30;110;110;95;72;76;113;111;49;64;22;110;22;112;44;9;113;113;113;6;111;113;111;112;113;44;97;111;113;53;112;111;36;111;113;112;113;101;64;22;111;111;113;33;111;113;61;19;113;38;56;42;111;112;93;110;113;41;113;113;111;49;64;110;74;113;112;7;113;110;53;111;74;113;111;110;112;35;112;89;55;111;112;111;46;19;110;113;46;112;101;91;107;5;113;111;55;111;70;113;110;58;71;111;110;113;111;92;93;111;1;111;111;1;111;113;110;110;112;111;1;111;110;54;46;64;60;113;53;110;30;113;54;110;2;85;29;62;11;111;88;73;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;98;112;113;71;56;53;111;92;110;112;64;18;17;111;22;112;1;113;53;72;113;74;112;110;54;46;76;38;70;43;80;14;111;101;110;110;77;46;111;32;111;100;112;112;89;74;32;3;60;111;46;19;111;111;111;113;110;92;93;111;8;111;113;110;110;112;59;110;6;5;113;113;113;111;110;113;111;110;112;112;58;102;113;110;67;60;111;112;47;111;58;110;78;36;64;110;76;16;112;110;54;46;22;69;112;113;111;110;97;111;94;64;60;111;110;108;111;46;110;113;113;80;71;39;113;54;110;2;85;112;113;113;111;5;113;112;113;30;113;84;110;69;110;113;112;111;11;113;111;62;110;112;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;110;54;46;64;60;113;53;112;110;79;111;38;1;111;22;19;29;62;11;111;110;30;113;54;110;2;85;19;64;113;112;113;102;113;65;27;54;110;112;112;86;102;113;110;112;113;110;111;113;103;112;54;104;113;111;34;32;22;112;48;38;74;112;105;86;60;111;112;47;112;58;110;78;36;64;5;31;112;19;87;84;110;93;74;28;98;74;111;110;92;113;113;12;110;23;90;30;44;113;91;87;112;113;65;68;112;110;3;92;110;102;75;52;64;111;83;19;113;111;41;32;111;113;111;112;113;44;97;111;113;53;112;111;36;111;113;112;113;95;64;22;111;111;113;33;111;113;61;19;113;38;56;42;111;7;38;70;43;80;14;111;101;110;110;113;110;110;112;59;110;113;13;110;112;101;112;113;13;111;110;89;113;7;92;113;45;111;113;110;113;111;110;112;112;110;36;47;102;113;110;112;113;110;111;22;113;111;34;32;22;111;104;113;111;113;112;58;46;111;111;108;112;113;44;110;103;101;113;74;110;74;112;87;102;112;112;92;110;74;113;104;111;92;110;64;113;80;111;60;55;112;44;9;111;70;113;110;58;71;111;110;113;111;92;93;111;1;111;113;110;110;112;111;1;112;111;46;19;110;113;46;112;101;91;107;110;6;10;113;53;112;110;113;110;103;111;111;110;112;35;112;89;55;111;112;111;46;19;110;113;46;112;101;91;107;5;113;111;55;111;110;23;90;113;110;58;71;111;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;113;110;110;112;59;60;113;113;111;46;19;111;83;19;112;16;113;113;113;111;110;113;111;110;113;113;110;79;111;111;112;12;55;110;2;14;1;111;111;36;111;87;73;113;112;111;74;113;113;13;111;112;101;110;112;113;37;110;113;13;110;112;101;112;113;13;111;110;89;113;7;92;113;45;111;113;110;113;111;110;112;112;110;36;47;102;113;110;113;100;111;113;102;113;65;27;64;60;111;111;112;12;112;113;113;113;74;67;111;110;92;113;113;96;110;23;90;30;64;110;77;113;112;59;110;6;7;22;110;22;112;44;9;113;66;37;64;52;112;110;54;46;22;69;112;113;111;110;97;111;49;64;60;111;110;108;79;113;113;113;111;73;113;112;110;113;112;110;30;113;58;111;112;101;32;108;43;98;113;58;102;17;98;74;111;31;111;100;112;112;89;74;32;113;91;93;112;110;113;112;112;91;79;111;111;91;113;38;108;67;81;68;29;62;15;111;70;113;110;58;71;111;110;110;113;52;110;87;113;31;113;105;69;38;111;113;23;108;111;13;74;60;64;5;4;19;64;112;110;54;46;22;113;111;93;76;113;111;60;110;112;64;113;98;54;113;74;111;25;111;43;30;107;23;110;110;112;13;74;113;113;110;111;112;113;107;88;102;111;35;70;110;113;35;73;74;113;113;112;101;110;112;12;80;113;66;37;7;74;32;111;22;112;112;41;43;69;5;112;110;54;46;22;111;112;111;46;19;110;113;46;112;101;91;107;5;112;111;113;110;92;93;111;1;1;11;112;110;65;68;28;111;46;113;103;111;88;73;64;111;83;19;17;111;70;113;110;58;71;111;110;110;113;52;110;87;113;31;113;105;69;38;111;113;65;27;64;60;62;64;110;6;10;113;53;112;110;79;38;111;74;19;29;62;11;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;103;60;111;38;1;111;22;19;29;62;11;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;112;88;58;112;105;86;60;111;113;103;111;88;73;64;52;112;110;54;46;110;110;113;110;110;112;59;110;113;13;110;112;101;112;113;13;111;110;89;113;7;92;113;45;111;113;110;113;111;110;112;112;110;36;47;102;113;110;112;113;110;111;22;113;111;34;32;22;111;110;112;35;112;91;55;111;112;111;46;19;110;113;113;110;110;29;113;112;18;60;113;112;59;110;6;10;110;112;113;113;113;74;67;111;110;92;113;113;101;110;23;90;30;64;110;112;101;111;43;112;29;111;62;113;106;111;113;113;13;111;113;31;60;112;87;14;64;87;113;111;49;64;22;110;22;112;44;9;113;113;113;6;111;113;111;112;113;44;97;111;113;53;112;111;36;111;113;112;113;95;64;22;111;111;113;33;111;113;61;19;113;38;56;42;111;112;30;111;110;30;113;111;98;85;110;2;85;111;13;74;38;70;43;80;14;111;101;110;110;77;113;111;49;64;110;24;37;111;110;76;113;113;113;102;113;113;96;113;112;111;74;113;113;14;113;112;101;112;113;113;93;111;112;111;112;67;58;68;54;80;111;110;78;113;7;92;111;111;57;64;111;113;110;111;112;59;110;6;5;111;113;113;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;52;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;46;43;98;74;111;64;44;113;91;93;112;110;65;68;113;32;110;111;110;113;111;113;13;19;112;110;54;46;22;69;112;113;111;110;97;113;46;64;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;113;58;111;112;101;32;108;43;98;74;111;64;31;113;91;93;112;110;65;68;113;32;110;79;111;38;1;111;46;113;111;112;101;110;112;113;37;89;4;19;111;113;113;113;111;110;113;111;110;113;113;110;79;111;111;112;12;55;110;2;14;1;111;111;36;111;88;73;113;112;111;74;113;113;13;111;112;101;110;112;113;37;110;113;13;110;112;101;112;113;13;111;110;89;110;112;112;110;36;47;102;113;110;113;100;44;60;111;111;112;12;112;113;113;113;74;112;111;74;113;113;13;111;112;101;112;113;13;111;110;89;113;7;92;111;1;111;113;113;12;97;62;11;104;64;65;113;38;110;112;67;92;111;28;20;111;110;92;113;113;96;110;23;90;30;64;110;77;113;112;59;110;6;7;22;110;22;112;44;9;113;66;37;64;52;113;45;6;104;64;5;4;19;64;112;110;54;46;22;113;111;93;76;46;23;110;110;112;13;74;113;113;110;1;110;113;35;73;74;113;113;110;112;59;110;113;13;110;112;101;112;113;13;107;104;64;5;113;113;107;111;88;73;110;64;113;80;111;60;55;7;113;57;49;32;111;22;112;112;41;43;69;5;112;110;54;46;22;69;112;111;113;110;92;93;111;1;111;113;110;110;112;59;110;6;5;113;113;110;78;36;111;83;111;88;73;113;111;41;32;30;29;62;11;11;112;110;65;68;113;113;40;112;74;76;110;79;111;38;1;111;46;113;103;111;88;73;64;111;83;19;17;64;111;111;99;53;73;111;38;1;12;64;111;83;19;113;110;108;111;46;49;22;113;93;113;113;113;93;111;73;80;110;75;111;55;111;96;75;111;46;19;62;11;104;64;65;100;110;110;69;72;76;113;11;111;111;64;113;113;93;113;113;63;32;74;110;111;72;111;111;44;57;108;111;45;113;113;111;59;112;111;62;110;102;97;22;96;67;112;112;113;52;54;1;10;113;111;113;111;75;99;44;113;45;44;106;111;46;63;111;100;111;22;112;1;113;53;72;3;60;111;46;19;111;111;111;113;110;92;93;111;10;111;113;110;110;112;59;110;6;5;113;113;113;111;110;113;111;111;99;53;49;69;112;113;111;110;97;111;94;113;46;64;60;111;110;108;111;46;95;112;113;113;111;5;113;112;113;30;113;84;110;69;110;113;112;111;11;113;111;62;110;112;110;113;111;92;93;111;1;111;113;110;110;112;112;16;111;22;112;1;113;96;113;113;0;31;110;110;30;47;110;52;111;112;113;88;70;108;110;23;90;60;113;53;112;46;111;22;19;29;62;11;111;110;30;113;54;110;2;85;111;53;74;64;113;112;113;102;111;13;74;54;110;112;112;86;102;113;110;112;113;110;111;111;113;110;113;111;110;112;112;110;36;47;102;113;110;112;113;110;111;22;113;111;34;32;22;111;110;112;35;112;89;55;111;110;112;111;74;112;113;88;111;76;64;65;92;111;28;20;5;113;111;111;113;110;110;112;59;110;6;5;113;113;113;111;110;113;111;46;49;69;112;111;113;110;92;93;111;1;111;113;110;110;112;59;110;6;5;113;113;110;113;103;112;54;26;36;111;83;19;113;111;41;32;30;29;62;11;11;112;110;65;68;113;113;40;112;74;76;110;79;111;38;1;111;46;113;103;111;88;73;64;111;83;19;17;29;62;11;111;12;113;110;58;71;111;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;113;110;110;112;59;110;6;7;113;113;113;108;111;111;99;53;49;111;83;19;112;16;111;22;110;113;111;75;32;22;113;58;111;88;108;111;70;113;110;58;71;111;110;110;113;52;110;87;113;31;69;38;111;110;30;113;111;98;85;113;80;111;60;55;111;13;74;60;62;112;30;113;22;92;110;6;10;113;53;112;110;79;111;38;1;111;22;19;29;112;113;95;64;22;11;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;74;112;74;86;60;111;111;112;12;55;46;64;52;112;110;54;46;22;69;112;113;111;110;97;111;49;64;60;111;110;108;79;113;113;113;111;73;113;112;110;30;113;58;102;17;98;74;111;31;44;113;91;93;112;47;29;62;15;113;111;34;32;22;112;48;38;74;112;105;86;60;111;112;47;112;58;110;78;36;64;5;31;19;84;110;93;113;45;64;17;98;74;111;59;44;113;91;87;112;113;65;68;29;52;64;111;83;19;113;111;41;32;30;29;62;4;11;110;2;14;1;111;111;36;111;88;112;63;58;13;110;74;111;22;112;112;41;53;112;88;58;107;5;113;111;111;111;1;111;113;110;110;112;111;1;111;110;54;46;64;60;113;53;110;30;113;54;110;2;85;29;62;11;11;111;70;113;110;58;71;111;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;113;110;110;112;59;110;6;7;113;113;113;108;111;111;99;53;49;111;83;19;112;16;111;22;112;1;113;96;113;113;0;31;110;110;30;47;110;52;111;112;113;88;70;108;110;23;90;111;70;111;92;93;62;112;113;20;68;113;111;112;101;111;43;112;29;111;62;113;106;111;113;113;13;111;113;31;60;112;87;14;64;87;11;92;110;6;10;113;53;112;110;79;111;38;1;111;22;19;29;62;11;111;110;30;113;54;110;2;85;111;13;74;60;111;57;64;74;112;74;86;60;111;111;112;12;55;46;64;52;112;110;54;46;22;69;112;113;111;110;97;111;49;64;60;111;110;108;79;113;113;113;111;73;113;112;110;30;113;58;102;17;98;74;111;31;44;113;91;93;112;47;29;62;15;104;64;5;113;113;107;111;88;73;113;111;41;32;42;29;62;113;111;49;64;113;30;110;110;95;72;76;113;111;49;64;22;69;112;113;111;110;97;111;49;64;60;111;110;108;79;113;113;113;111;73;113;112;110;30;113;58;102;17;98;74;111;31;44;113;91;93;112;110;65;68;29;62;15;104;113;111;50;113;112;112;110;74;113

Page 71: Marcin Kosicki AAC Thesis

71Marcin Kosicki AAC 2015

;79;111;92;110;76;113;113;113;102;113;113;96;113;112;111;74;113;113;14;113;112;101;112;113;113;93;111;112;111;112;67;58;68;110;79;23;80;111;110;78;113;7;92;111;1;111;113;110;111;112;59;110;6;5;111;113;113;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;47;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;30;113;58;111;112;101;32;108;43;98;74;111;64;44;113;105;93;112;110;65;68;113;32;110;111;110;113;111;113;13;52;112;110;54;46;22;69;112;113;111;110;97;113;46;64;60;111;110;108;111;46;49;113;113;113;111;73;113;112;110;23;90;43;98;74;111;73;113;112;110;30;113;58;102;17;98;113;64;110;6;7;112;110;65;68;113;32;110;79;111;38;1;111;46;113;111;112;101;110;112;113;37;113;113;113;111;73;113;112;110;30;113;58;102;113;58;58;98;74;111;31;44;113;91;93;4;19;64;111;88;73;111;38;1;111;46;113;111;112;101;110;112;113;37;89;4;19;64;111;88;73;64;111;83;19;113;111;41;32;22;113;104;113;113;113;93;111;73;80;110;75;111;55;111;96;75;111;46;112;110;113;111;92;93;111;1;111;113;110;110;112;111;1;111;110;54;46;64;60;113;53;112;110;79;111;38;1;111;22;19;29;62;11;111;110;30;113;54;110;2;85;111;53;74;64;62;11;104;64;65;113;38;110;112;67;92;111;28;20;110;110;36;72;76;113;11;111;111;64;113;113;93;7;110;111;72;111;111;44;57;108;111;45;113;113;111;59;112;111;62;110;102;97;22;96;67;112;112;113;52;54;1;10;113;111;113;111;75;99;44;113;45;44;106;111;46;63;113;104;113;61;46;111;102;20;68;112;9;111;83;19;5;113;113;107;111;88;73;113;111;41;32;42;29;62;113;111;49;64;110;24;37;111;32;111;100;112;112;89;74;32;3;29;62;4;11;110;2;14;1;111;111;36;111;88;112;63;58;113;113;0;31;110;110;30;47;110;113;61;19;33;110;74;111;22;13

Page 72: Marcin Kosicki AAC Thesis

72 Integrating Supervised Data Mining into Performance Oriented Design

@;145;4100.346392954718;133.6836195417455;4042.7083;238832888%;112;111;62;112;51;113;111;110;111;110;16;110;111;113;110;111;110;22;110;111;113;110;111;17;99;110;30;2;113;104;75;83;113;113;110;87;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;112;110;111;89;112;49;28;111;110;72;112;110;112;41;112;58;29;29;113;13;110;111;113;113;47;112;94;112;31;113;47;113;29;96;104;94;112;92;111;111;15;110;111;113;6;28;11;113;34;26;112;112;113;110;111;27;113;108;111;86;111;6;106;47;25;106;111;111;49;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;16;110;107;67;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;110;16;110;111;113;110;111;17;99;110;64;2;113;104;75;83;113;113;110;87;82;112;110;111;89;112;112;110;6;63;47;28;111;82;112;110;6;11;112;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;113;82;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;60;112;29;112;82;110;80;112;18;45;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;112;89;101;56;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;69;111;46;110;74;113;62;79;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;77;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;77;113;82;113;106;110;49;7;26;70;41;111;110;9;110;111;113;110;111;17;99;110;30;2;113;104;75;83;113;113;110;87;9;112;110;111;29;112;112;110;6;11;47;28;111;110;72;112;110;112;41;112;58;29;42;113;13;110;111;113;113;112;110;74;113;62;34;27;112;94;112;31;113;47;70;104;94;111;42;110;71;24;112;29;112;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;112;111;111;4;104;26;110;49;7;8;112;7;49;110;17;26;112;13;29;92;60;112;29;112;82;110;80;112;18;45;113;28;110;96;111;113;110;36;110;113;110;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;16;110;107;67;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;66;22;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;26;110;111;113;110;111;17;99;110;30;2;113;104;75;83;113;113;110;87;112;97;5;112;110;111;89;112;49;28;111;110;72;112;110;112;41;112;58;29;29;113;13;110;111;113;113;47;112;94;112;31;113;47;113;29;96;104;94;112;102;111;111;15;110;111;113;6;28;11;113;34;26;112;112;113;110;111;27;113;108;111;86;111;6;106;47;25;106;111;111;49;110;110;113;112;110;74;113;62;34;27;113;111;112;112;113;41;112;111;112;113;46;101;113;46;58;58;111;15;112;99;48;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;112;47;111;110;113;112;110;74;113;62;34;27;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;16;110;107;67;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;66;22;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;112;89;101;56;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;71;69;111;46;110;74;113;62;79;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;110;61;82;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;113;28;110;96;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;48;79;30;112;111;111;82;113;58;111;110;112;11;113;89;57;112;111;113;110;111;86;110;44;43;15;112;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;75;111;46;101;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;112;111;111;112;83;113;39;77;16;3;110;89;113;111;90;111;113;41;112;111;112;110;75;113;110;49;111;113;110;87;64;112;110;111;110;106;14;112;112;110;112;111;112;113;47;112;48;78;113;46;58;58;111;14;112;96;112;113;41;112;111;112;113;46;112;48;78;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;58;112;39;77;110;111;111;89;75;96;112;19;108;111;51;112;79;112;39;5;110;30;2;113;112;23;111;33;111;111;112;110;110;16;70;111;96;112;82;112;80;112;38;100;8;111;35;29;111;75;75;11;113;101;8;52;48;28;111;110;72;112;72;113;13;110;111;79;94;110;110;111;110;111;111;101;67;112;111;15;113;99;7;110;41;111;62;9;113;51;15;111;16;16;111;35;112;110;113;32;113;113;110;55;2;112;89;93;113;60;110;49;40;28;68;113;108;110;113;110;43;113;62;34;69;112;102;113;89;110;113;110;111;40;110;37;112;111;110;113;101;112;4;21;84;111;110;111;111;101;86;112;111;111;11;27;82;111;113;78;110;110;113;89;88;45;113;110;40;15;111;112;16;113;99;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;112;113;110;83;111;55;105;25;111;113;6;55;11;112;113;110;111;27;113;108;111;86;111;6;106;47;25;106;39;34;113;113;53;110;63;14;110;75;113;113;111;61;90;112;94;51;46;111;113;52;111;113;113;113;63;101;111;3;113;79;111;27;113;111;29;25;111;86;111;6;106;64;95;62;63;112;112;113;110;17;48;111;113;110;111;17;17;110;52;89;113;62;75;84;75;49;77;28;113;17;110;92;112;54;81;113;113;54;54;111;113;110;73;110;30;2;113;104;75;83;112;55;90;111;111;15;88;112;110;106;16;63;33;69;111;113;48;111;110;111;113;113;52;110;87;82;39;88;113;110;111;50;110;72;112;110;112;41;112;58;29;42;113;13;110;111;113;113;47;112;94;110;31;113;47;70;110;111;111;111;36;111;7;97;32;90;108;94;112;92;111;48;112;112;113;110;111;111;67;84;112;113;110;99;111;55;105;25;27;47;25;106;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;113;112;112;110;46;71;110;3;111;110;0;74;106;112;10;49;75;113;91;93;90;112;90;75;70;111;79;113;110;110;38;43;113;112;112;110;46;71;110;3;111;110;0;73;106;112;112;51;38;49;75;29;112;48;20;113;66;89;111;84;111;34;26;111;88;110;94;110;112;79;111;111;110;111;111;11;32;112;111;103;113;88;7;110;113;13;113;111;112;83;113;111;112;60;37;111;113;113;112;108;113;2;113;32;88;47;112;63;113;14;112;47;1;80;80;113;113;51;75;49;112;40;67;111;62;9;14;111;112;110;90;52;48;49;111;110;72;112;110;112;94;112;88;55;42;113;60;110;111;101;94;26;110;111;41;71;99;112;110;47;30;111;110;38;111;110;52;113;56;110;99;111;113;110;36;63;77;46;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;9;58;111;15;112;26;112;111;66;111;112;112;111;104;97;110;3;49;63;10;113;48;6;80;19;46;52;57;56;29;96;111;111;63;32;90;71;70;41;112;89;101;56;77;46;101;112;99;48;96;113;113;110;38;43;89;101;26;110;49;7;41;112;89;101;56;77;46;110;110;95;79;110;75;113;110;49;112;112;112;78;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;112;110;110;16;70;111;96;112;82;7;75;47;111;110;63;16;112;111;110;16;110;107;67;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;110;16;110;111;113;110;111;17;99;110;30;2;113;104;75;83;113;113;110;87;82;112;110;111;89;112;112;110;6;63;47;28;111;82;112;110;6;11;112;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;113;82;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;60;112;29;112;82;110;80;112;18;45;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;112;89;101;56;77;46;110;110;95;47;110;75;113;110;49;1

25D Test Data

Covers a data generated to solve the 1-dimensional test problem.

Is an ouput fi le generated by the GP algorithm. #- start GP parameters@- number of geenerations; average fi tness; best fi tness; average length%- fl attend best solution code

Page 73: Marcin Kosicki AAC Thesis

73Marcin Kosicki AAC 2015

12;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;69;111;46;110;74;113;62;79;17;113;113;112;108;113;2;113;32;88;47;113;80;112;31;103;8;15;111;110;52;113;56;110;99;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;77;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;111;110;9;110;111;113;110;111;17;99;110;30;2;113;104;75;83;113;113;110;87;9;112;110;111;29;112;112;110;6;11;47;28;111;110;72;112;110;112;41;112;58;29;42;113;13;110;111;113;113;112;110;74;113;62;34;27;112;94;112;31;113;47;70;104;94;111;42;110;71;24;112;29;112;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;112;111;111;4;104;26;110;49;7;8;112;7;49;110;17;26;112;13;29;92;60;112;29;112;82;110;80;112;18;45;113;28;110;96;111;113;110;36;110;113;110;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;16;110;107;67;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;66;22;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;112;89;101;56;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;69;111;46;110;74;113;62;79;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;113;28;110;96;113;111;112;74;113;111;112;111;110;16;110;107;67;112;29;113;111;19;20;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;101;112;99;48;96;113;113;112;111;111;58;110;110;113;112;110;74;113;110;0;74;34;27;113;111;113;112;112;110;46;71;110;3;111;110;0;74;106;112;10;49;75;26;90;112;90;75;70;111;79;113;110;110;38;43;113;112;112;110;46;71;110;3;111;110;0;73;106;112;112;51;38;49;75;29;113;14;112;47;1;89;101;26;110;49;7;41;112;89;101;56;77;46;110;110;95;79;110;75;113;110;49;112;112;112;78;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;112;110;110;16;70;111;96;112;82;7;75;66;72;112;111;112;111;112;113;113;112;111;111;73;48;79;30;112;111;111;82;113;58;111;110;112;11;113;89;57;112;111;113;110;111;86;110;44;43;15;112;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;113;113;111;113;110;111;112;73;106;89;73;112;113;91;93;72;112;110;33;111;81;47;111;110;63;112;110;112;89;81;110;110;113;111;110;9;62;112;113;91;111;70;110;111;111;77;111;70;0;112;112;2;24;113;112;77;110;30;48;23;38;72;96;15;111;108;4;112;110;102;77;113;112;77;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;112;113;110;83;111;55;105;111;3;111;111;112;67;65;33;112;75;97;111;113;6;55;11;28;39;34;37;104;15;111;110;52;113;35;110;99;111;113;110;36;110;113;110;72;72;111;113;110;111;86;110;44;43;15;106;46;56;77;112;94;110;31;113;47;112;111;111;67;84;112;110;8;111;113;110;61;82;48;28;110;89;110;57;112;68;112;0;65;90;113;113;53;110;63;111;111;19;20;110;48;73;110;75;113;113;111;61;39;112;94;31;69;111;46;21;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;112;111;111;112;83;113;39;77;16;3;110;89;113;111;90;110;75;113;110;49;112;112;112;60;112;88;55;83;113;8;110;110;14;113;110;9;62;89;26;69;19;46;52;57;56;29;96;111;111;7;32;90;71;70;41;112;89;101;56;77;46;101;112;99;48;96;113;113;110;38;43;89;101;26;110;49;7;41;112;89;101;56;77;46;110;110;95;79;110;75;113;110;49;112;112;112;78;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;112;90;75;66;111;79;63;112;29;112;82;113;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;8;67;112;29;113;82;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;60;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;112;89;101;56;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;69;111;46;110;74;113;62;79;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;113;28;110;96;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;48;79;30;112;111;111;82;113;58;111;110;112;11;113;89;57;112;111;113;110;111;86;110;44;43;15;112;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;113;113;111;113;110;111;112;73;106;89;73;112;113;91;93;72;112;110;47;111;81;47;111;110;63;112;110;58;110;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;111;108;4;112;110;102;77;113;112;77;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;112;113;110;83;111;55;105;25;111;113;6;55;11;112;113;110;111;27;113;108;111;86;111;6;106;47;25;106;39;34;37;104;15;111;110;52;113;35;110;99;111;113;110;36;110;113;110;72;72;112;111;113;112;28;103;70;41;112;89;101;56;77;46;113;113;53;110;63;111;111;19;20;110;48;73;110;75;113;113;111;61;39;112;94;31;69;111;46;101;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;112;111;111;112;83;113;39;77;16;3;110;89;113;111;90;111;113;41;112;111;112;110;75;113;110;49;111;113;110;87;64;112;110;111;110;106;14;112;112;110;112;111;112;113;47;112;48;78;113;46;58;58;111;14;112;96;112;113;41;112;111;112;113;46;112;48;78;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;58;112;39;77;110;111;111;89;75;96;112;19;108;111;51;112;79;112;39;5;110;30;2;113;112;23;111;33;111;111;112;110;110;16;70;111;96;112;82;112;80;112;38;100;8;111;35;29;111;46;46;11;113;101;8;52;48;28;111;110;72;112;72;113;13;110;111;79;94;110;110;111;110;111;111;101;67;112;111;15;113;99;7;110;41;111;62;9;113;51;15;111;16;16;111;35;112;110;113;32;113;113;110;55;2;112;89;93;8;28;68;113;108;110;113;110;43;83;69;112;102;113;89;110;113;110;111;40;110;37;112;111;110;113;101;112;4;21;84;111;110;111;111;101;86;112;111;111;11;27;82;111;113;78;110;110;113;89;88;45;113;110;111;113;110;111;112;73;106;89;73;112;113;91;91;72;28;15;111;112;16;113;99;84;113;113;53;110;63;14;110;75;113;113;111;61;90;112;94;51;46;111;62;62;63;112;112;113;110;76;48;111;113;110;111;17;17;110;52;89;113;62;75;84;75;49;77;28;113;17;110;92;112;54;81;113;113;54;54;111;113;110;73;110;30;2;113;104;75;83;112;55;90;111;111;15;88;112;110;106;16;63;33;69;111;113;48;111;110;111;113;113;52;110;87;82;39;88;113;110;111;50;110;72;112;110;112;41;112;58;29;42;113;13;110;111;113;113;47;112;94;110;31;111;110;0;74;106;110;111;111;111;36;111;7;97;32;90;108;94;112;92;111;48;112;112;113;110;111;111;67;84;112;113;110;99;111;55;105;25;27;47;25;106;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;113;112;112;110;46;71;110;3;111;110;0;74;106;112;10;49;75;113;91;93;90;112;90;75;70;111;79;113;110;110;38;43;113;112;112;110;46;71;110;3;111;110;0;73;106;112;112;51;38;49;75;29;112;48;20;113;66;89;111;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;75;49;111;34;26;111;88;110;94;110;112;79;111;111;110;111;111;11;32;112;111;103;113;88;7;110;113;13;113;111;112;83;113;111;112;60;37;111;113;113;112;108;113;2;113;32;88;47;112;63;113;14;112;47;1;80;80;113;113;51;75;49;112;40;67;111;62;9;14;111;112;110;90;52;48;49;111;110;72;112;110;96;42;113;60;110;111;101;94;26;110;111;41;71;99;112;110;47;30;111;110;38;111;110;52;113;56;110;99;111;113;110;36;63;77;46;110;110;95;79;110;75;113;26;82;9;58;111;15;112;26;112;111;66;111;112;112;111;104;97;110;3;49;63;10;113;48;6;80;19;46;52;57;56;29;96;111;111;7;32;90;71;70;41;112;89;101;56;77;46;101;112;99;48;96;113;113;110;38;43;89;101;26;110;49;7;41;112;89;101;56;77;46;110;110;95;79;110;75;113;110;49;112;112;112;78;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;112;110;110;16;70;111;96;112;82;7;75;66;72;112;111;112;111;112;113;113;112;111;111;73;48;79;30;112;111;111;82;113;58;111;110;112;11;113;89;57;112;111;113;110;111;86;110;44;43;15;112;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;113;113;111;113;113;110;87;82;112;110;111;89;112;49;28;111;110;72;112;110;112;41;112;58;29;42;113;13;110;111;113;113;47;112;94;112;31;113;47;113;29;96;104;94;112;92;111;111;15;110;111;113;6;28;11;7;112;112;113;110;111;27;113;108;111;86;111;6;106;47;25;106;111;99;110;6;11;112;29;112;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;113;82;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;60;112;110;33;111;81;47;111;110;63;112;110;112;89;81;110;110;113;111;110;9;62;112;113;91;111;70;110;111;111;77;111;70;30;112;112;2;24;113;112;77;110;30;48;23;38;72;96;15;111;108;4;112;110;102;77;113;112;77;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;112;113;110;83;111;55;105;111;3;111;111;112;67;65;33;112;75;97;111;113;6;55;11;28;39;34;37;104;15;111;110;52;113;35;110;99;111;113;110;36;110;113;110;72;72;111;113;110;111;86;110;44;43;15;106;46;56;77;112;94;110;31;113;47;112;111;111;67;84;112;110;8;111;113;110;61;82;48;28;110;89;110;57;112;68;112;0;65;90;113;36;110;75;113;113;111;61;39;112;94;31;69;111;46;101;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;112;111;111;112;83;113;39;77;16;3;110;89;113;111;90;110;75;113;110;49;112;112;112;60;112;88;55;83;113;8;110;110;14;113;110;9;62;89;26;69;19;46;52;57;56;29;96;111;111;7;32;63;71;70;41;112;89;101;56;77;46;101;112;99;48;96;113;113;110;38;43;89;101;26;110;49;7;41;112;89;101;56;77;46;110;110;95;79;110;75;113;110;49;112;112;112;78;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;0;66;111;79;63;112;29;112;82;113;80;112;28;103;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;113;82;113;80;112;28;103;8;112;7;29;110;17;111;1;111;29;83;112;13;29;92;60;99;110;112;110;113;112;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;66;22;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;1

Page 74: Marcin Kosicki AAC Thesis

74 Integrating Supervised Data Mining into Performance Oriented Design

12;89;101;56;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;7;43;69;111;46;110;74;113;62;79;17;113;82;113;80;112;28;103;113;29;96;113;111;113;110;113;86;110;107;43;15;84;46;19;40;113;91;111;112;7;29;66;110;111;110;14;110;111;113;110;111;17;99;110;30;2;113;104;75;83;113;113;110;87;102;112;110;111;89;112;112;110;6;11;47;28;111;110;72;112;110;112;41;110;113;52;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;113;17;110;92;112;54;81;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;15;110;107;67;112;112;112;63;111;33;111;113;110;106;16;113;113;98;15;111;110;77;113;28;110;99;111;113;111;17;99;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;110;112;41;112;58;29;113;41;112;111;112;113;46;112;48;78;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;58;112;39;77;110;111;111;89;75;96;112;19;108;111;51;112;79;112;39;5;111;112;112;113;110;41;110;112;32;78;112;111;110;111;111;66;22;110;112;110;113;113;47;112;94;110;26;113;47;112;111;113;113;111;113;110;111;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;111;55;105;63;112;112;42;75;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;113;28;110;96;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;48;79;30;112;111;111;82;113;58;111;110;112;11;113;89;57;112;111;113;110;111;86;110;44;43;15;112;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;113;113;111;113;110;111;112;73;106;89;73;112;113;91;93;72;112;110;47;111;81;47;111;110;63;112;110;58;110;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;111;108;4;112;110;102;77;113;112;77;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;112;113;110;83;111;55;105;25;111;113;6;55;11;112;113;110;111;27;113;108;111;86;111;6;106;47;25;106;39;34;37;104;15;111;110;52;113;35;110;99;111;113;110;36;110;113;110;72;72;112;111;113;112;28;103;70;41;112;89;101;56;77;46;113;113;53;110;63;111;111;19;20;110;48;73;110;75;113;113;111;61;39;73;69;111;46;101;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;112;111;111;112;83;113;39;77;16;3;110;89;113;111;90;111;113;41;112;111;112;110;75;113;110;49;111;113;110;87;64;112;110;111;110;106;14;112;112;110;112;111;112;113;47;112;48;78;113;46;58;58;111;14;112;96;112;113;41;112;111;112;113;46;112;48;78;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;58;112;39;77;110;111;111;89;75;79;112;19;108;111;51;112;79;112;39;5;110;30;2;113;112;23;111;33;111;111;112;110;110;16;70;111;96;112;82;112;80;112;38;100;8;111;35;29;111;46;75;11;113;101;8;52;48;28;111;110;72;112;72;113;13;110;111;79;94;110;110;111;110;111;111;101;67;112;111;15;113;99;7;110;41;111;62;9;113;51;15;111;16;16;111;35;112;110;113;32;113;113;110;55;2;112;89;93;113;60;110;49;40;28;68;113;108;110;113;110;43;83;69;112;102;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;112;55;90;111;111;15;88;112;110;106;16;63;33;69;111;113;48;111;112;112;112;60;112;88;55;83;113;8;110;110;14;113;110;9;62;89;26;111;84;111;34;26;111;88;110;94;110;112;79;111;111;110;111;111;11;32;112;111;103;113;88;7;110;113;13;113;111;112;83;113;111;112;60;37;111;113;113;112;108;113;2;113;32;88;47;112;63;113;14;112;47;1;80;80;113;113;51;75;49;112;40;67;111;62;9;14;111;112;110;90;52;48;49;111;110;72;112;110;112;94;112;88;55;42;113;60;110;111;101;94;26;110;111;41;71;99;112;110;47;30;111;110;38;111;110;52;113;56;110;99;111;113;110;36;63;77;46;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;9;58;111;15;112;26;112;111;66;111;112;112;111;104;97;110;3;49;63;113;113;112;113;110;111;112;73;106;113;17;110;92;112;54;81;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;15;110;107;67;112;112;112;63;111;33;111;113;110;106;16;113;113;98;15;111;110;77;113;28;110;99;111;113;111;17;99;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;110;111;112;3;35;103;110;9;38;62;89;26;69;111;46;75;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;63;77;46;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;113;48;6;80;19;46;52;57;56;29;96;111;111;7;32;90;71;70;41;112;89;101;56;77;46;101;112;99;48;96;113;113;110;38;43;89;101;26;89;73;112;113;91;93;72;112;110;47;111;81;47;111;110;63;112;110;112;89;81;110;110;113;111;110;9;62;112;113;91;111;70;110;111;111;77;111;70;73;112;112;74;71;113;112;77;110;30;48;23;38;72;96;15;111;108;4;112;110;102;77;113;113;77;110;8;112;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;80;28;39;34;37;104;15;111;110;52;113;113;110;55;52;111;111;75;110;110;113;112;110;112;51;16;111;110;82;14;34;27;112;70;83;74;70;111;4;113;112;110;38;43;113;113;112;110;102;71;69;111;111;95;113;104;106;110;36;4;75;90;113;60;110;49;7;113;113;53;110;63;111;110;19;72;110;48;73;110;75;113;113;111;61;39;111;94;80;69;112;110;107;111;113;110;61;110;74;113;62;34;48;28;110;96;110;57;112;68;112;0;46;90;110;111;111;111;36;111;7;97;32;90;108;110;78;9;111;111;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;113;113;111;113;110;111;112;73;106;89;73;112;113;91;93;72;112;110;33;111;81;47;111;110;63;112;110;112;89;81;110;110;113;111;110;9;62;112;113;91;111;70;110;111;111;77;111;70;0;112;112;2;24;113;112;77;110;30;48;23;38;72;96;15;111;108;4;112;110;102;77;113;112;77;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;75;97;112;113;110;83;111;55;105;111;3;111;111;112;67;65;33;112;75;97;111;113;6;55;11;28;39;34;37;104;15;111;110;52;113;35;110;99;111;113;110;36;110;113;110;72;72;111;113;110;111;86;110;44;43;15;106;46;56;77;112;94;110;31;113;47;112;111;111;67;84;112;110;107;111;90;28;110;89;110;57;112;68;112;0;65;90;113;113;53;110;63;111;111;19;20;110;48;73;110;75;113;113;111;61;39;112;94;31;69;111;46;101;80;26;90;7;8;110;112;94;31;110;9;41;66;111;81;47;111;110;63;112;111;77;44;112;110;102;40;113;112;77;105;23;112;112;51;75;112;58;29;97;110;3;49;110;111;113;5;112;110;113;112;51;113;29;96;113;111;113;110;113;86;110;107;43;15;84;46;19;40;113;91;111;112;7;29;66;91;3;10;113;112;23;111;33;111;111;112;110;110;16;70;111;96;112;82;112;80;112;28;100;8;111;35;29;111;46;75;11;62;89;26;69;111;46;75;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;63;77;46;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;112;90;75;42;113;13;110;111;113;113;47;112;94;112;31;113;47;70;104;94;112;92;111;28;112;112;113;110;112;51;33;47;25;106;111;111;49;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;72;111;110;63;16;112;111;110;113;86;110;52;43;15;112;29;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;63;110;113;110;72;72;112;111;112;111;112;113;113;112;111;110;112;32;78;112;111;110;111;111;66;22;110;112;110;32;110;78;113;110;49;112;112;41;83;113;13;7;110;102;22;111;111;108;7;90;110;112;94;31;110;9;41;66;111;81;47;111;110;63;112;111;77;44;112;110;102;40;113;112;77;105;23;111;35;112;111;112;111;112;113;113;102;49;110;37;113;113;79;111;112;83;28;88;14;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;113;28;110;10;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;75;79;30;112;111;111;82;113;58;111;110;112;51;113;9;57;112;111;113;110;111;86;110;44;43;15;106;46;52;57;56;29;111;111;58;110;110;113;112;110;74;113;62;34;27;113;111;112;112;63;111;33;111;113;106;113;113;111;113;110;111;112;73;106;89;73;112;113;91;93;72;112;110;47;111;81;47;111;110;63;112;110;112;89;81;110;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;111;108;4;112;110;102;77;113;112;77;110;8;111;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;65;33;112;46;97;112;113;110;112;13;29;111;55;105;25;111;113;6;55;11;28;39;34;37;104;15;111;110;52;113;35;110;99;111;113;110;36;110;113;110;72;72;112;111;113;110;112;113;113;110;110;111;73;111;35;111;113;110;87;64;112;110;111;110;106;14;112;112;110;112;111;112;106;113;46;58;58;111;14;112;113;47;112;94;112;31;113;47;70;112;113;41;112;111;112;113;46;112;48;78;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;58;112;39;77;110;111;111;89;75;96;112;19;108;111;51;112;79;112;39;5;111;112;112;113;110;41;110;112;32;78;112;111;110;111;28;110;112;110;32;110;78;113;110;49;112;112;41;83;113;13;7;110;102;22;111;111;108;7;90;110;112;94;31;110;9;49;66;111;81;47;111;110;63;112;111;77;44;112;110;102;40;113;112;77;105;23;112;112;51;75;91;97;110;3;49;110;111;113;5;112;110;113;112;51;113;29;96;113;111;113;110;113;86;110;107;43;15;84;46;19;40;113;91;111;112;7;29;66;91;3;10;113;112;23;111;33;111;111;112;110;110;16;75;111;96;112;82;112;80;112;28;100;8;111;35;29;111;46;75;11;113;101;8;52;48;28;111;110;72;112;110;111;92;96;112;19;25;113;13;112;89;101;112;55;90;111;111;15;88;112;110;106;16;63;33;79;30;112;111;111;82;110;69;111;113;112;51;113;29;96;113;111;113;110;113;86;110;107;43;112;9;113;113;48;111;110;111;113;113;52;111;113;113;113;63;101;111;3;113;79;111;27;113;111;29;25;111;86;111;6;106;64;95;39;101;111;110;16;110;107;67;112;29;113;82;113;80;112;28;103;111;84;111;34;112;111;77;110;110;110;112;95;33;31;26;89;112;110;110;111;111;4;104;9;110;55;2;77;113;83;23;111;113;41;113;113;51;15;111;110;77;113;28;110;99;113;112;110;74;113;62;34;27;113;111;112;112;63;113;33;111;113;106;113;113;112;113;110;111;112;73;106;89;73;112;113;91;36;47;112;112;47;111;81;47;111;110;63;16;112;111;110;16;110;107;67;112;112;112;63;111;33;111;113;41;113;113;51;15;111;110;77;113;28;110;99;111;113;110;99;110;113;110;72;111;111;66;22;110;112;110;32;110;78;9;111;111;108;7;83;110;111;112;3;35;103;110;9;38;112;111;112;111;112;113;113;102;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;96;113;113;110;38;43;89;113;106;110;49;7;26;70;112;110;112;41;112;89;55;42;102;112;89;101;56;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;71;69;111;46;110;74;113;62;79;17;113;82;113;80;112;28;103;8;15;111;110;52;113;56;110;99;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;111;35;112;111;112;111;112;113;113;102;49;110;37;112;111;110;111;101;112;24;10;29;112;110;111;111;101;2;112;111;113;113;113;79;111;112;83;28;88;14;110;113;40;110;64;112;112;97;5;112;111;42;110;71;24;110;111;37;73;111;43;111;15;88;43;113;99;7;110;41;111;0;9;63;112;112;42;62;49;77;113;113;110;38;43;89;113;106;110;49;7;26;70;41;112;89;101;113;28;110;96;111;113;110;36;110;113;110;72;72;112;111;112;111;112;113;113;112;111;111;73;48;79;30;112;111;111;82;113;58;111;110;112;11;113;89;57;112;111;113;110;111;86;110;44;43;26;112;111;111;58;110;110;113;112;110;74;113;62;

Page 75: Marcin Kosicki AAC Thesis

75Marcin Kosicki AAC 2015

34;27;113;111;112;112;63;111;33;111;113;106;75;111;46;101;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;112;111;111;112;83;113;39;77;16;3;110;89;113;111;90;111;113;41;112;111;112;110;75;113;110;49;111;113;110;87;64;112;110;111;110;106;14;112;112;110;112;111;112;113;47;112;48;78;113;46;58;58;111;14;112;96;112;113;41;112;111;112;113;46;112;48;78;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;58;112;39;77;110;111;111;89;75;96;112;19;108;111;51;112;79;112;39;5;110;30;2;113;112;23;111;33;111;111;112;110;110;16;70;111;96;112;82;112;80;112;38;100;8;111;35;29;111;46;75;11;113;101;8;52;48;28;111;110;72;112;72;113;13;110;110;36;110;113;110;72;72;111;113;110;111;86;110;44;43;15;106;46;56;110;110;111;110;111;111;101;67;112;111;15;113;99;7;110;41;111;62;9;113;51;15;111;16;16;111;35;112;110;113;32;113;113;110;55;2;112;89;93;113;60;110;49;40;28;68;113;108;110;113;110;43;83;69;112;102;113;89;110;113;110;111;40;110;37;112;111;110;113;101;112;4;21;84;111;110;111;111;101;86;112;111;111;11;27;82;111;113;78;110;110;113;89;88;45;113;110;111;113;110;111;112;73;106;89;73;112;113;91;91;72;28;15;111;112;16;113;99;84;113;113;53;110;63;14;110;75;113;113;111;61;90;112;94;51;46;111;113;52;111;113;113;113;63;101;111;3;113;79;111;27;113;111;29;25;111;86;111;6;106;64;95;62;63;112;112;113;110;76;48;111;113;110;111;17;17;110;52;89;113;62;75;84;75;49;77;28;113;17;110;92;112;54;81;113;113;54;54;111;113;110;73;110;30;2;113;104;75;83;112;55;90;111;111;15;88;112;110;106;16;63;33;69;111;113;48;111;110;111;113;113;52;110;87;82;39;88;113;110;111;50;110;72;112;110;112;41;112;58;29;42;113;13;110;111;113;113;47;112;94;110;31;113;47;70;110;111;111;111;36;111;7;97;32;90;108;94;112;92;111;48;112;112;113;110;111;111;67;84;112;113;110;99;111;55;105;25;27;47;25;106;51;112;48;20;113;66;89;111;84;111;34;26;111;88;110;94;110;112;79;111;111;110;111;111;11;32;112;111;103;113;88;7;110;113;13;113;111;112;83;113;111;112;60;37;111;113;113;112;108;113;2;113;32;88;47;112;63;113;14;112;47;1;80;80;113;113;51;75;49;112;40;67;111;62;9;14;111;112;110;90;52;48;49;111;110;72;112;110;112;94;112;88;55;42;113;60;110;111;101;94;26;110;111;41;71;99;112;110;47;30;111;110;38;111;110;52;113;56;110;99;111;113;110;36;63;77;46;110;110;95;79;110;75;113;110;49;112;112;112;26;112;88;6;83;113;13;7;110;102;22;9;58;111;70;112;26;112;111;66;111;112;112;111;104;97;110;3;49;63;10;113;48;6;80;19;46;52;57;56;29;96;111;111;7;32;90;71;70;41;112;89;101;56;77;46;112;18;45;112;99;48;96;113;113;110;38;43;89;101;26;110;49;7;41;112;89;101;56;77;46;110;110;95;79;110;75;113;110;49;112;112;112;78;112;88;6;83;113;13;7;110;102;22;111;46;75;17;26;90;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;9;62;89;26;69;110;94;112;112;79;111;111;110;8;14;112;112;110;90;52;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;113;82;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;49;88;112;110;47;30;111;110;63;112;111;77;110;110;110;112;95;33;45;26;89;112;110;110;111;111;4;104;9;110;55;2;77;113;83;23;104;84;46;19;57;65;112;48;78;96;113;113;26;112;89;12;113;106;110;49;7;49;70;41;112;89;101;83;77;46;113;113;53;110;63;111;111;19;20;110;48;73;110;75;113;113;111;61;39;112;111;33;111;113;110;106;16;113;113;98;15;111;110;77;113;28;110;99;111;113;111;17;99;77;46;110;110;95;47;110;75;113;110;49;112;112;112;41;112;88;55;83;113;13;110;110;14;113;110;110;113;106;110;49;7;113;41;112;111;112;113;46;112;48;29;113;46;58;58;111;15;112;26;112;111;111;110;113;110;63;112;68;112;110;102;40;113;112;77;110;110;64;25;48;110;63;112;111;77;44;112;110;102;40;113;112;77;105;23;112;39;77;110;111;111;89;75;96;112;19;108;111;51;112;79;112;39;5;111;112;112;113;110;41;110;112;32;78;112;111;110;111;111;26;22;110;112;110;113;113;47;112;94;110;26;113;47;112;111;113;113;111;113;110;111;112;73;106;89;73;112;113;91;93;72;112;110;47;111;81;47;111;110;63;112;110;112;89;81;110;110;113;111;107;112;113;91;111;70;110;111;111;77;111;70;73;112;112;74;71;113;112;77;110;30;48;23;38;72;96;15;111;108;4;112;110;102;77;113;113;77;110;8;112;112;113;5;110;113;113;113;63;101;111;3;111;111;112;67;111;112;83;113;111;112;60;37;111;113;113;112;108;113;2;113;32;88;47;112;63;113;14;112;47;1;80;80;113;113;51;75;49;33;112;75;97;80;28;39;34;37;104;15;111;110;52;113;113;110;55;52;111;111;75;110;110;113;112;110;112;51;16;111;110;90;14;34;27;112;70;83;74;70;111;4;113;112;110;38;43;113;113;112;110;102;71;69;111;111;95;113;104;106;110;36;4;75;90;113;60;110;49;7;113;113;53;110;63;111;110;19;72;110;48;73;110;75;113;113;111;61;39;111;94;80;69;112;110;107;111;113;110;61;110;74;113;62;34;48;28;110;96;110;57;112;68;112;0;46;90;110;111;111;111;36;111;7;97;32;90;108;110;78;9;111;111;108;7;8;110;112;94;31;110;9;41;66;111;81;47;111;110;63;112;111;77;44;112;110;102;40;113;112;77;105;23;112;112;51;75;112;58;29;97;110;3;49;110;111;113;5;112;110;113;112;51;113;29;96;113;111;113;110;113;86;110;107;43;15;84;46;19;40;113;91;111;112;7;29;66;91;3;10;113;112;23;111;33;111;111;112;110;110;16;70;111;96;112;82;112;80;112;28;100;8;111;35;29;111;46;75;11;62;89;26;69;111;46;75;111;112;73;106;89;69;111;46;101;80;26;90;113;90;75;70;111;106;113;110;110;38;43;113;53;108;29;111;113;110;61;82;48;90;71;70;41;16;56;77;46;101;110;49;7;96;113;113;110;38;111;1;111;29;83;89;101;26;110;49;7;11;48;56;77;46;110;110;95;79;110;4;113;110;49;112;112;112;41;112;88;6;83;113;13;7;110;102;22;111;46;70;17;26;90;112;90;75;66;111;79;63;112;29;112;82;113;80;34;113;111;112;51;113;111;112;111;110;16;110;107;67;112;29;113;111;19;20;113;80;112;28;103;8;112;7;29;110;17;26;112;13;29;92;60;112;29;112;112;82;110;80;112;18;45;110;80;112;18;45;1;113;104;75;83;113;113;110;87;82;112;110;111;89;112;112;110;6;11;47;28;111;110;0;74;27;113;111;112;51;113;111;12;112;7;29;110;17;26;112;13;29;92;60;112;29;112;82;110;80;112;18;45;8;112;7;29;92;46

Page 76: Marcin Kosicki AAC Thesis

76 Integrating Supervised Data Mining into Performance Oriented Design

DataHigDim.java

1 package core.datavisualistaion;23 import java.util.ArrayList;45 public class DataHigDim {67 private int dim;8 private int dimRow;9 private double valueSpan;

10 private int numOfSamplePt;11 private double[][] samplePt;1213 // temporary arrays14 ArrayList<int[]> in;15 int[] tDepth;1617 public DataHigDim(int _d, int row) {1819 dim = _d;20 dimRow = row - 1;21 valueSpan = 1.0;22 in = new ArrayList<int[]>();23 tDepth = new int[dim];24 numOfSamplePt = (int) Math.pow(row, dim);25 samplePt = new double[numOfSamplePt][dim];2627 // if there are to be only one sample point generate one in the middle28 // of value span29 if (numOfSamplePt == 1) {30 for (int j = 0; j < samplePt[0].length; j++) {31 samplePt[0][j] = valueSpan * 0.5f;32 }33 } else {34 goDepper(0);35 for (int i = 0; i < samplePt.length; i++) {36 int[] indices = in.get(i);37 for (int j = 0; j < samplePt[i].length; j++) {38 samplePt[i][j] = (valueSpan / dimRow) * indices[j];39 }40 }41 }42 // erase unused data;43 tDepth = null;44 in = null;45 }4647 public double[][] getUniformDist() {48 return samplePt;49 }5051 public int getNumOfPt() {52 return numOfSamplePt;53 }5455 public int getNumOfDim() {56 return dim;57 }5859 private void goDepper(int depth) {6061 if (depth < dim) {6263 int i = 0;64 while (i <= dimRow) {65 tDepth[depth] = i;66 goDepper(depth + 1);67 i++;68 }69 } else {70 int[] array = new int[tDepth.length];71 System.arraycopy(tDepth, 0, array, 0, tDepth.length);72 in.add(array);73 }74 }75 }76

Uniform Distribution Generator

Page 77: Marcin Kosicki AAC Thesis

77Marcin Kosicki AAC 2015

Parametric Model Source Code - Face

Face.java

1 ppackage core.model.geo;2 import java.util.ArrayList;3 import processing.core.PApplet;4 import processing.core.PConstants;5 import processing.core.PVector;67 public class Face {8 PApplet p;9 public PVector[] nodes;

10 public PVector normal;11 public PVector cPt;12 public PVector mPt;13 public float area;14 public int[] topology;15 public ArrayList<Float> irradiance;16 public ArrayList<int[]> irradColour;17 private boolean drawNrml;18 private static final int CLOSE = PConstants.CLOSE;1920 Face(PApplet proc, PVector[] n, int[] t) {21 p = proc;22 irradiance = new ArrayList<Float>();23 irradColour = new ArrayList<int[]>();24 nodes = n;25 normal = computeNormal(nodes[0], nodes[1], nodes[2]);26 cPt = computCentre(nodes);27 topology = t;28 mPt = genSmamplePt(normal, 0.1f);29 area = computeArea(nodes);30 drawNrml = false;31 }3233 private float computeArea(PVector[] node) {34 // compute panel area by vertices35 PVector AB = PVector.sub(node[1], node[0]);36 PVector AC = PVector.sub(node[2], node[0]);37 PVector cross = AB.cross(AC);38 float area = 0.5f * cross.mag();39 return area;40 }4142 public void draw(int set) {43 // if there are 2 sets44 drawPanel(nodes, set);45 if (drawNrml)46 drawNrml(15, 2);47 }4849 private PVector computeNormal(PVector vN_1, PVector vN_2, PVector vN_3) {50 PVector tan_U = PVector.sub(vN_1, vN_2);51 PVector tan_V = PVector.sub(vN_1, vN_3);52 PVector nrml = tan_V.cross(tan_U);53 nrml.normalize();54 return nrml;55 }5657 private PVector computCentre(PVector[] n) {58 PVector pt = new PVector();59 for (int i = 0; i < n.length; i++)60 pt.add(new PVector(n[i].x, n[i].y, n[i].z));61 pt.div(n.length);62 return pt;63 }6465 private void drawPanel(PVector[] n, int set) {66 p.pushStyle();67 p.stroke(0);68 p.strokeWeight(0.5f);69 int[] iColor = irradColour.get(set);70 p.fill(iColor[0], iColor[1], iColor[2]);71 p.beginShape();72 for (int i = 0; i < n.length; i++)73 p.vertex(n[i].x, n[i].y, n[i].z);74 p.endShape(CLOSE);75 p.popStyle();76 }7778 private void drawNrml(int lng, int s) {79 p.pushStyle();80 p.colorMode(1);81 p.stroke(255, 0, 0);82 p.strokeWeight(s);83 p.pushMatrix();84 p.translate(cPt.x, cPt.y, cPt.z);85 p.line(0, 0, 0, normal.x * lng, normal.y * lng, normal.z * lng);86 p.popMatrix();87 p.popStyle();88 }8990 @SuppressWarnings("unused")91 private void drawSamplePt(int s) {92 p.pushStyle();93 p.colorMode(1);94 p.stroke(0, 255, 0);95 p.strokeWeight(s);96 p.pushMatrix();97 p.point(mPt.x, mPt.y, mPt.z);98 p.popMatrix();99 p.popStyle();

100 }101102 private PVector genSmamplePt(PVector center, float offset) {103 PVector pt = PVector.add(cPt, PVector.mult(normal, offset));

Page 1

Page 78: Marcin Kosicki AAC Thesis

78 Integrating Supervised Data Mining into Performance Oriented Design

Face.java

104 rreturn pt;105 }106107 public String panel_data() {108 String pt_data = mPt.x + " " + mPt.y + " " + mPt.z + " " + normal.x109 + " " + normal.y + " " + normal.z;110 // System.out.println(pt_data);111 return pt_data;112 }113114 public String panel_topo() {115 String t_data = "t";116 for (int i = 0; i < topology.length; i++) {117 if (i != topology.length)118 t_data += topology[i] + " ";119 else120 t_data += topology[i];121 }122 // System.out.println(t_data);123 return t_data;124 }125 }126

Page 2

Page 79: Marcin Kosicki AAC Thesis

79Marcin Kosicki AAC 2015

Parametric Model Source Code - Face

BSplineSurface.java

1 ppackage core.model.geo;2 import java.util.ArrayList;3 import processing.core.PApplet;4 import processing.core.PConstants;5 import processing.core.PVector;6 public class BSplineSurface {78 PApplet p; // The parent PApplet that we will render ourselves onto9 private static final float PI = PConstants.PI;

10 PVector[][] ctrl_pts;11 int N_u, N_v;12 int D_u, D_v;13 float theta = PI / 4f;14 float[] knots_u;15 float[] knots_v;16 float res = 0.08f;17 float width, height, zDepth; // surface XY dimensions18 public ArrayList<Face> panels = new ArrayList<Face>();19 ArrayList<PVector> points = new ArrayList<PVector>();20 public BSplineSurface(PApplet parent, float w, float h, float z, float xPos) {21 22 //constructor for 1D problem with a profile curve23 p = parent; // pass parent24 width = w;25 height = h;26 zDepth = z;27 makeCtrlPtsProfileCurve(5, 5, xPos, z);28 makeKnots();29 createPanels(res, res);30 createSides(res, res);31 }3233 public BSplineSurface(PApplet parent, float w, float h, float z,34 float xPos, float zPos) {3536 //constructor for 2D problem with a profile curve37 p = parent; // pass parent38 width = w;39 height = h;40 zDepth = z;41 makeCtrlPtsProfileCurve(5, 5, xPos, zPos);42 makeKnots();43 createPanels(res, res);44 createSides(res, res);45 }4647 public BSplineSurface(PApplet parent, float w, float h, float z,48 float xPos, float yPos, float zPos) {4950 //constructor for 3D problem with a 1 free control point51 p = parent; // pass parent52 width = w;53 height = h;54 zDepth = z;55 makeCtrlPtsFreeCtrPt(5, 5, xPos, yPos, zPos);56 makeKnots();57 createPanels(res, res);58 createSides(res, res);59 }6061 public BSplineSurface(PApplet parent, float w, float h, float z, int num) {6263 // MultiDim BSpline surface64 p = parent; // pass parent65 width = w;66 height = h;67 zDepth = z;68 makeCtrlPts(num);69 makeKnots();70 createPanels(res, res);71 createSides(res, res);72 }7374 public BSplineSurface(PApplet parent, float w, float h, float[] ctrPtZ) {7576 /// MultiDim BSpline surface fixed Z77 p = parent; // pass parent78 width = w;79 height = h;80 makeCtrlPts(ctrPtZ);81 makeKnots();82 createPanels(res, res);83 createSides(res, res);84 }8586 private void makeCtrlPts(float[] ctrPtZ) {87 float x;88 float y;89 float z;90 int ctrlptNum = PApplet.floor(PApplet.sqrt(ctrPtZ.length));91 N_u = N_v = ctrlptNum - 1;92 ctrl_pts = new PVector[N_u + 1][N_v + 1];9394 int k = 0;95 for (int i = 0; i <= N_u; i++) {96 for (int j = 0; j <= N_v; j++) {97 x = -width / 2 + i * (width / N_u);98 y = -height / 2 + j * (height / N_v);99 z = ctrPtZ[k];

100 ctrl_pts[i][j] = new PVector(x, y, z);101 k++;102 }103 }

Page 1

Page 80: Marcin Kosicki AAC Thesis

80 Integrating Supervised Data Mining into Performance Oriented Design

BSplineSurface.java

1 ppackage core.model.geo;2 import java.util.ArrayList;3 import processing.core.PApplet;4 import processing.core.PConstants;5 import processing.core.PVector;6 public class BSplineSurface {78 PApplet p; // The parent PApplet that we will render ourselves onto9 private static final float PI = PConstants.PI;

10 PVector[][] ctrl_pts;11 int N_u, N_v;12 int D_u, D_v;13 float theta = PI / 4f;14 float[] knots_u;15 float[] knots_v;16 float res = 0.08f;17 float width, height, zDepth; // surface XY dimensions18 public ArrayList<Face> panels = new ArrayList<Face>();19 ArrayList<PVector> points = new ArrayList<PVector>();20 public BSplineSurface(PApplet parent, float w, float h, float z, float xPos) {21 22 //constructor for 1D problem with a profile curve23 p = parent; // pass parent24 width = w;25 height = h;26 zDepth = z;27 makeCtrlPtsProfileCurve(5, 5, xPos, z);28 makeKnots();29 createPanels(res, res);30 createSides(res, res);31 }3233 public BSplineSurface(PApplet parent, float w, float h, float z,34 float xPos, float zPos) {3536 //constructor for 2D problem with a profile curve37 p = parent; // pass parent38 width = w;39 height = h;40 zDepth = z;41 makeCtrlPtsProfileCurve(5, 5, xPos, zPos);42 makeKnots();43 createPanels(res, res);44 createSides(res, res);45 }4647 public BSplineSurface(PApplet parent, float w, float h, float z,48 float xPos, float yPos, float zPos) {4950 //constructor for 3D problem with a 1 free control point51 p = parent; // pass parent52 width = w;53 height = h;54 zDepth = z;55 makeCtrlPtsFreeCtrPt(5, 5, xPos, yPos, zPos);56 makeKnots();57 createPanels(res, res);58 createSides(res, res);59 }6061 public BSplineSurface(PApplet parent, float w, float h, float z, int num) {6263 // MultiDim BSpline surface64 p = parent; // pass parent65 width = w;66 height = h;67 zDepth = z;68 makeCtrlPts(num);69 makeKnots();70 createPanels(res, res);71 createSides(res, res);72 }7374 public BSplineSurface(PApplet parent, float w, float h, float[] ctrPtZ) {7576 /// MultiDim BSpline surface fixed Z77 p = parent; // pass parent78 width = w;79 height = h;80 makeCtrlPts(ctrPtZ);81 makeKnots();82 createPanels(res, res);83 createSides(res, res);84 }8586 private void makeCtrlPts(float[] ctrPtZ) {87 float x;88 float y;89 float z;90 int ctrlptNum = PApplet.floor(PApplet.sqrt(ctrPtZ.length));91 N_u = N_v = ctrlptNum - 1;92 ctrl_pts = new PVector[N_u + 1][N_v + 1];9394 int k = 0;95 for (int i = 0; i <= N_u; i++) {96 for (int j = 0; j <= N_v; j++) {97 x = -width / 2 + i * (width / N_u);98 y = -height / 2 + j * (height / N_v);99 z = ctrPtZ[k];

100 ctrl_pts[i][j] = new PVector(x, y, z);101 k++;102 }103 }

Page 1

Page 81: Marcin Kosicki AAC Thesis

81Marcin Kosicki AAC 2015

BSplineSurface.java

104 }105106 vvoid makeCtrlPtsProfileCurve(float zStart, float zEnd, float xMid,107 float zMid) {108 float x;109 float y;110 float z;111 N_u = N_v = 2;112 ctrl_pts = new PVector[N_u + 1][N_v + 1];113 for (int i = 0; i <= N_u; i++) {114 for (int j = 0; j <= N_v; j++) {115 x = -width / 2 + i * (width / N_u);116 y = -height / 2 + j * (height / N_v);117 if (i == 0)118 z = zStart;119 else if (i == N_u)120 z = zEnd;121 else {122 z = zMid;123 x = xMid;124 }125 PVector pos = new PVector(x, y);126 pos.rotate(theta);127 ctrl_pts[i][j] = new PVector(pos.x, pos.y, z);128 }129 }130 }131132 void makeCtrlPtsFreeCtrPt(float zStart, float zEnd, float xMid, float yMid,133 float zMid) {134135 float x;136 float y;137 float z;138 N_u = N_v = 2;139 ctrl_pts = new PVector[N_u + 1][N_v + 1];140141 for (int i = 0; i <= N_u; i++) {142 for (int j = 0; j <= N_v; j++) {143144 x = -width / 2 + i * (width / N_u);145 y = -height / 2 + j * (height / N_v);146147 if (i == 0 || i == N_u)148 z = zStart;149 else if (j == 0 || j == N_v)150 z = zEnd;151 else {152 z = zMid;153 x = xMid;154 y = yMid;155 }156 ctrl_pts[i][j] = new PVector(x, y, z);157 }158 }159 }160161 void makeCtrlPts(int n) {162 float x;163 float y;164 float z;165 N_u = N_v = n;166 ctrl_pts = new PVector[N_u + 1][N_v + 1];167 for (int i = 0; i <= N_u; i++) {168 for (int j = 0; j <= N_v; j++) {169 x = -width / 2 + i * (width / N_u);170 y = -height / 2 + j * (height / N_v);171 z = p.random(zDepth);172 ctrl_pts[i][j] = new PVector(x, y, z);173 }174 }175 }176177 void makeKnots() {178 D_u = D_v = 2;179 knots_u = new float[N_u + D_u + 2];180 knots_v = new float[N_v + D_v + 2];181 if (knots_u.length == 6) {182 float[] knots = { 0.00f, 0.0002f, 0.0003f, 0.9997f, 0.9998f, 1.0f };183 knots_u = knots;184 knots_v = knots;185 }186 if (knots_u.length == 7) {187 float[] knots = { 0.00f, 0.0002f, 0.0003f, 0.5f, 0.9997f, 0.9998f,188 1.0f };189 knots_u = knots;190 knots_v = knots;191 }192 if (knots_u.length == 8) {193 float[] knots = { 0.00f, 0.0002f, 0.0003f, 0.333f, 0.666f, 0.9997f,194 0.9998f, 1.0f };195 knots_u = knots;196 knots_v = knots;197 }198 if (knots_u.length > 8) {199 for (int i = 0; i < knots_u.length; i++) {200 knots_u[i] = PApplet.parseFloat(i)201 / PApplet.parseFloat(N_u + D_u + 1);202203 }204 for (int j = 0; j < knots_u.length; j++) {205 knots_v[j] = PApplet.parseFloat(j)206 / PApplet.parseFloat(N_v + D_v + 1);

Page 2

Page 82: Marcin Kosicki AAC Thesis

82 Integrating Supervised Data Mining into Performance Oriented Design

BSplineSurface.java

207 }208 }209 }210211 pprivate void drawPanels(int set) {212 for (int i = 0; i < panels.size(); i++) {213 Face p = panels.get(i);214 p.draw(set);215 }216 }217218 public void draw(int set, boolean ctrPtm, boolean gizmo) {219 drawPanels(set);220 if (gizmo)221 drawGizmo(300, 20, 3);222 if (ctrPtm)223 drawCtrlPts(10);224 }225226 private void drawGizmo(int l, int alpha, int weight) {227 p.pushStyle();228 p.strokeWeight(weight);229 // red X230 p.stroke(230, 0, 0, alpha);231 p.line(0, 0, l, 0);232 // green Y233 p.stroke(0, 230, 0, alpha);234 p.line(0, 0, 0, l);235 // blue Z236 p.stroke(0, 0, 230, alpha);237 p.line(0, 0, 0, 0, 0, l);238 p.popStyle();239 }240241 private void createPanels(float du, float dv) {242243 int i = 0;244 int j = 0;245 for (float u = knots_u[D_u]; u <= knots_u[knots_u.length - D_u - 1]; u += du) {246 j = 0;247 for (float v = knots_v[D_v]; v <= knots_v[knots_v.length - D_v - 1]; v += dv) {248 PVector pt = surfPos(u, v);249 points.add(pt);250 // System.out.println(u + ":" + v);251 j++;252 }253 i++;254 }255256 for (int x = 0; x < i - 1; x++) {257 for (int y = 0; y < j - 1; y++) {258 int k = x * i + y;259 int[] t1 = { k, k + 1, (k + 1) + j };260 PVector pt1 = points.get(t1[0]);261 PVector pt2 = points.get(t1[1]);262 PVector pt3 = points.get(t1[2]);263 PVector[] ptP1 = { pt1, pt2, pt3 };264 panels.add(new Face(p, ptP1, t1));265 int[] t2 = { k, (k + 1) + j, k + j };266 pt1 = points.get(t2[0]);267 pt2 = points.get(t2[1]);268 pt3 = points.get(t2[2]);269 PVector[] ptP2 = { pt1, pt2, pt3 };270 panels.add(new Face(p, ptP2, t2));271 }272 }273 }274275 private void createSidePanels(ArrayList<PVector> edgePt, boolean flip) {276 for (int x = 0; x < edgePt.size() - 1; x++) {277278 PVector pt1 = edgePt.get(x);279 PVector pt2 = edgePt.get(x + 1);280 PVector pt3 = new PVector(pt1.x, pt1.y, 0);281 PVector pt4 = new PVector(pt2.x, pt2.y, 0);282283 int[] t1 = { 0, 1, 2 };284 PVector[] ptP1 = new PVector[3];285 if (flip) {286 ptP1[0] = pt1;287 ptP1[1] = pt2;288 ptP1[2] = pt3;289 } else {290 ptP1[0] = pt1;291 ptP1[2] = pt2;292 ptP1[1] = pt3;293 }294 panels.add(new Face(p, ptP1, t1));295296 int[] t2 = { 0, 1, 2 };297 PVector[] ptP2 = new PVector[3];298 if (flip) {299 ptP2[0] = pt2;300 ptP2[1] = pt4;301 ptP2[2] = pt3;302 } else {303 ptP2[0] = pt2;304 ptP2[2] = pt4;305 ptP2[1] = pt3;306 }307 panels.add(new Face(p, ptP2, t2));308 }309 }

Page 3

Page 83: Marcin Kosicki AAC Thesis

83Marcin Kosicki AAC 2015

0.0,0.994542,0.1043340.206777,0.972809,0.1043340.404517,0.90856,0.104334

0.584577,0.804602,0.1043340.739089,0.665479,0.1043340.861299,0.497271,0.1043340.945866,0.30733,0.104334

0.989094,0.103958,0.1043340.989094,-0.103958,0.1043340.945866,-0.30733,0.104334

0.861299,-0.497271,0.1043340.739089,-0.665479,0.1043340.584577,-0.804602,0.1043340.404517,-0.90856,0.104334

0.206777,-0.972809,0.1043340.0,-0.994542,0.104334

-0.206777,-0.972809,0.104334-0.404517,-0.90856,0.104334

-0.584577,-0.804602,0.104334-0.739089,-0.665479,0.104334-0.861299,-0.497271,0.104334-0.945866,-0.30733,0.104334

-0.989094,-0.103958,0.104334-0.989094,0.103958,0.104334-0.945866,0.30733,0.104334

-0.861299,0.497271,0.104334-0.739089,0.665479,0.104334-0.584577,0.804602,0.104334-0.404517,0.90856,0.104334

-0.206777,0.972809,0.1043340.0,0.951258,0.308395

0.197778,0.930471,0.3083950.386912,0.869018,0.3083950.559136,0.769584,0.3083950.706923,0.636516,0.3083950.823814,0.475629,0.308395

0.9047,0.293955,0.3083950.946047,0.099434,0.308395

0.946047,-0.099434,0.3083950.9047,-0.293955,0.308395

0.823814,-0.475629,0.3083950.706923,-0.636516,0.3083950.559136,-0.769584,0.3083950.386912,-0.869018,0.3083950.197778,-0.930471,0.308395

0.0,-0.951258,0.308395-0.197778,-0.930471,0.308395-0.386912,-0.869018,0.308395-0.559136,-0.769584,0.308395-0.706923,-0.636516,0.308395-0.823814,-0.475629,0.308395

-0.9047,-0.293955,0.308395-0.946047,-0.099434,0.308395-0.946047,0.099434,0.308395

-0.9047,0.293955,0.308395-0.823814,0.475629,0.308395-0.706923,0.636516,0.308395-0.559136,0.769584,0.308395-0.386912,0.869018,0.308395-0.197778,0.930471,0.308395

0.0,0.866464,0.4992390.224257,0.83694,0.4992390.433232,0.75038,0.499239

0.612683,0.612683,0.4992390.75038,0.433232,0.4992390.83694,0.224257,0.499239

0.866464,0.0,0.4992390.83694,-0.224257,0.4992390.75038,-0.433232,0.499239

0.612683,-0.612683,0.4992390.433232,-0.75038,0.4992390.224257,-0.83694,0.499239

0.0,-0.866464,0.499239-0.224257,-0.83694,0.499239-0.433232,-0.75038,0.499239

-0.612683,-0.612683,0.499239

-0.75038,-0.433232,0.499239-0.83694,-0.224257,0.499239

-0.866464,0.0,0.499239-0.83694,0.224257,0.499239-0.75038,0.433232,0.499239-0.612683,0.612683,0.499239-0.433232,0.75038,0.499239-0.224257,0.83694,0.499239

0.0,0.744399,0.6677350.192665,0.719034,0.6677350.372199,0.644668,0.6677350.526369,0.526369,0.6677350.644668,0.372199,0.6677350.719034,0.192665,0.667735

0.744399,0.0,0.6677350.719034,-0.192665,0.6677350.644668,-0.372199,0.6677350.526369,-0.526369,0.6677350.372199,-0.644668,0.6677350.192665,-0.719034,0.667735

0.0,-0.744399,0.667735-0.192665,-0.719034,0.667735-0.372199,-0.644668,0.667735-0.526369,-0.526369,0.667735-0.644668,-0.372199,0.667735-0.719034,-0.192665,0.667735

-0.744399,0.0,0.667735-0.719034,0.192665,0.667735-0.644668,0.372199,0.667735-0.526369,0.526369,0.667735-0.372199,0.644668,0.667735-0.192665,0.719034,0.667735

0.0,0.5899,0.8074770.201758,0.554324,0.8074770.37918,0.451889,0.8074770.510868,0.29495,0.8074770.580938,0.102435,0.8074770.580938,-0.102435,0.807477

0.510868,-0.29495,0.8074770.37918,-0.451889,0.8074770.201758,-0.554324,0.807477

0.0,-0.5899,0.807477-0.201758,-0.554324,0.807477-0.37918,-0.451889,0.807477-0.510868,-0.29495,0.807477-0.580938,-0.102435,0.807477-0.580938,0.102435,0.807477-0.510868,0.29495,0.807477-0.37918,0.451889,0.807477-0.201758,0.554324,0.807477

0.0,0.410316,0.9119430.205158,0.355344,0.9119430.355344,0.205158,0.911943

0.410316,0.0,0.9119430.355344,-0.205158,0.9119430.205158,-0.355344,0.911943

0.0,-0.410316,0.911943-0.205158,-0.355344,0.911943-0.355344,-0.205158,0.911943

-0.410316,0.0,0.911943-0.355344,0.205158,0.911943-0.205158,0.355344,0.911943

0.0,0.215075,0.9765980.186261,0.107538,0.9765980.186261,-0.107538,0.976598

0.0,-0.215075,0.976598-0.186261,-0.107538,0.976598-0.186261,0.107538,0.976598

0.0,0.0,1.0

Tergenza Sky Vectors

4.354.374.464.614.885.747.657.617.717.04

6.386.186.035.925.865.865.926.036.206.41

6.627.688.288.008.185.844.934.644.464.38

3.963.994.084.254.545.458.83

15.6713.1312.61

8.896.866.366.236.166.156.226.366.607.20

9.9614.4914.8119.2710.545.664.594.284.094.00

4.404.454.614.945.507.80

21.2320.5319.5714.84

10.099.038.608.8510.2716.5523.4724.2924.568.58

5.604.984.634.463.773.813.944.194.605.20

8.7524.0326.3320.7321.6518.7016.4518.7923.8226.21

28.8027.599.735.314.664.233.963.824.094.16

4.394.815.497.4119.8633.5431.4529.9530.6234.76

22.506.835.584.864.414.174.504.645.075.84

7.2116.4122.2016.056.945.925.114.655.045.39

6.256.806.295.414.34

Sky Patch Radiation Values

234,38,0234,38,0234,39,0234,41,0234,43,0234,46,0234,50,0234,54,0234,58,0234,63,0234,68,0234,74,0234,79,0

234,85,0234,90,0234,96,0

234,101,0234,106,0234,110,0234,114,0234,118,0234,121,0234,123,0234,125,0234,126,0234,126,0

234,126,0234,128,1235,130,3235,133,5236,137,8

237,142,11238,147,15239,153,19240,160,24241,167,29242,174,34243,181,39245,189,45

246,196,50247,203,55248,210,60249,217,65250,223,69251,228,73252,233,76253,237,79253,240,81254,242,83254,244,84254,244,84254,244,85

253,243,87251,243,90249,241,94

246,240,100243,238,106239,237,114235,234,122231,232,131226,230,141221,227,151216,225,161211,222,172206,220,182

201,217,192196,215,202192,213,211188,210,219184,209,227181,207,233178,206,239176,204,243174,204,246173,203,248173,203,249173,203,249171,201,248

170,200,246167,197,244164,194,241160,190,238155,186,234150,181,230145,175,226139,170,221133,164,216127,158,212121,152,206115,146,202109,140,197

103,135,19298,129,18893,124,18488,120,18084,116,17781,113,17478,110,17277,109,17075,107,169

Sky Patch Color Samples

Total Solar Radiation Solver Source Code

Page 84: Marcin Kosicki AAC Thesis

84 Integrating Supervised Data Mining into Performance Oriented Design

SolarEngine.java

1 ppackage core.model.solver;23 import java.util.ArrayList;4 import processing.core.PApplet;5 import processing.core.PVector;6 import core.model.geo.Face;78 public class SolarEngine {9

10 PApplet p;11 private ArrayList<float[]> skyPatchValues;12 public ArrayList<String> testPerioidName;13 private ArrayList<int[][]> skyPatchColour;14 private PVector[] skyVector;15 private int[][] gRGBvalues;16 // stores linear gradient values from red to yellow to blue (without green!)17 // for 100 samples18 private float maxPatchValue; // the biggest value in set19 private float minPatchValue; // the biggest value in set2021 public SolarEngine(PApplet proc, ArrayList<float[]> _skyPatchValues,22 ArrayList<String> _testPerioidsNames, PVector[] _skyVectors,23 int[][] _gRGBvalues) {2425 p = proc;26 skyVector = _skyVectors;27 skyPatchValues = _skyPatchValues;28 testPerioidName = _testPerioidsNames;29 gRGBvalues = _gRGBvalues;30 maxPatchValue = getMax();31 minPatchValue = getMin();32 skyPatchColour = assignColours(minPatchValue, maxPatchValue);33 }3435 public void draw(int set) {36 drawPatches(8, set);37 }3839 private void drawPatches(int w, int set) {4041 p.pushStyle();42 p.strokeWeight(w);43 int[][] patchColour = skyPatchColour.get(set);44 for (int i = 0; i < skyVector.length; i++) {45 PVector tSkyPt = skyVector[i];46 tSkyPt.normalize(); // rest the value47 tSkyPt.mult(200); // multiply to draw in desired location48 p.pushMatrix();49 p.translate(tSkyPt.x, tSkyPt.y, tSkyPt.z);50 p.stroke(patchColour[i][0], patchColour[i][1], patchColour[i][2],51 200);52 p.point(0, 0, 0);53 p.popMatrix();54 }55 p.popStyle();56 }5758 private float[] computeIrradiance(ArrayList<Face> panels, int pIndex) {5960 // radiance for a given Panel P61 ArrayList<Integer> visibleSkyPatcheIndex = new ArrayList<Integer>();62 ArrayList<Integer> obstacleFaceIndex = new ArrayList<Integer>();63 // ------------------------------------------------------------------64 // compute indices of visible sky patches for the face pIndex65 Face face1 = panels.get(pIndex);66 for (int i = 0; i < skyVector.length; i++) {67 PVector skyRay = skyVector[i];68 float dot = face1.normal.dot(skyRay);69 if (dot > 0) {70 // add an index of visible skyPt71 visibleSkyPatcheIndex.add(i);72 }73 }74 // ------------------------------------------------------------------75 // go through all the panels except form pIndex and check if can76 // they make a shadow to check it may not work as expected77 // ------------------------------------------------------------------78 for (int i = 0; i < panels.size(); i++) {79 // don't check with itself80 if (i != pIndex) {81 Face panel2 = panels.get(i);82 // Check if a panel face into you83 PVector v2 = PVector.sub(face1.cPt, panel2.cPt);84 float dot1 = v2.dot(face1.normal);85 if (dot1 < 0) {86 obstacleFaceIndex.add(i);87 }88 }89 }90 // ------------------------------------------------------------------91 // go through all visible skyPatches and check if rays intersect92 // panelsObstacles93 // ------------------------------------------------------------------94 // temporary array that stores radiation values for certain panel95 float[] irradianceValues = new float[skyPatchValues.size()];96 for (int i = 0; i < irradianceValues.length; i++) {97 // set to zero by default98 irradianceValues[i] = 0f;99 }

100101 for (int i = 0; i < visibleSkyPatcheIndex.size(); i++) {102 int sunPatchIndex = visibleSkyPatcheIndex.get(i); // get patch index103 PVector rayDir = skyVector[sunPatchIndex]; // create startPt of a ray

Page 1

Page 85: Marcin Kosicki AAC Thesis

85Marcin Kosicki AAC 2015

SolarEngine.java

104 // if rays are free105 iif (!rayHitsAnyObstacle(panels, pIndex, obstacleFaceIndex, rayDir)) {106 // if a ray hits the target face add its radiation value107 float[] tempSunVaules = new float[skyPatchValues.size()];108 // compute the amount of energy received form particular109 // direction based on face's orientation110 float angle = PVector.angleBetween(rayDir, face1.normal);111 float ratio = PApplet.abs(PApplet.cos(angle));112 // for each time period113 for (int k = 0; k < skyPatchValues.size(); k++) {114 float[] tVal = skyPatchValues.get(k);115 // Compute "true" contribution116 tempSunVaules[k] = tVal[sunPatchIndex] * ratio;117 }118 for (int k = 0; k < irradianceValues.length; k++)119 irradianceValues[k] += tempSunVaules[k];120 }121 }122 // ------------------------------------------------------------------123 return irradianceValues;124 }125126 private boolean rayHitsAnyObstacle(ArrayList<Face> panels, int pIndex,127 ArrayList<Integer> obstacles, PVector rayDir) {128 boolean hit = false;129 Face panel1 = panels.get(pIndex);130 for (int panel2Index : obstacles) {131 Face panel2 = panels.get(panel2Index);132 if (rayIntersectsTriangle(panel1, panel2, rayDir)) {133 hit = true;134 break;135 }136 }137 return hit;138 }139140 private boolean rayIntersectsTriangle(Face panel1, Face panel2,141 PVector rayDir) {142143 PVector end_point = rayDir;144 PVector o = panel1.cPt;145 PVector v0 = panel2.nodes[0];146 PVector v1 = panel2.nodes[1];147 PVector v2 = panel2.nodes[2];148149 PVector e1 = PVector.sub(v2, v1);150 PVector e2 = PVector.sub(v0, v1);151152 float EPSILON = 0.000001f;153 boolean intersection = true;154155 PVector d = PVector.sub(end_point, o);156 PVector p = d.cross(e2);157 float det = p.dot(e1);158159 if (det > -EPSILON && det < EPSILON) {160 intersection = false;161 } else {162 float inv_det = 1 / det;163 PVector t = PVector.sub(o, v1);164 float u = t.dot(p) * inv_det;165 if (u < 0 || u > 1) {166 intersection = false;167 } else {168 PVector q = t.cross(e1);169 float v = d.dot(q) * inv_det;170 if (v < 0 || u + v > 1) {171 intersection = false;172 } else {173174 float t_parameter = e2.dot(q) * inv_det;175 if (t_parameter < EPSILON)176 intersection = false;177 }178 }179 }180 return intersection;181182 }183184 private ArrayList<int[][]> assignColours(float minPatch, float maxPatch) {185186 ArrayList<int[][]> colorSets = new ArrayList<int[][]>();187 // go through every sunSkyValue set188 for (int i = 0; i < skyPatchValues.size(); i++) {189 int[][] colourTemp = new int[145][3];190 float[] tempValues = skyPatchValues.get(i);191 // go through every patch in the set192 for (int j = 0; j < tempValues.length; j++) {193 float sample = PApplet.map(tempValues[j], minPatch, maxPatch,194 0, 99);195 colourTemp[j] = gRGBvalues[(int) sample];196 }197198 // add mapped colors to color set199 colorSets.add(colourTemp);200 System.out.println("color assigned for patches "201 + testPerioidName.get(i));202 }203 return colorSets;204 }205206 private float getMin() {

Page 2

Page 86: Marcin Kosicki AAC Thesis

86 Integrating Supervised Data Mining into Performance Oriented Design

SolarEngine.java

207 ffloat iMin = (float) 1.00E7;208209 float tempMin = 0;210 // for every test period211 for (int i = 0; i < skyPatchValues.size(); i++) {212 float[] valuesTemp = skyPatchValues.get(i);213 tempMin = PApplet.min(valuesTemp);214 if (tempMin < iMin)215 iMin = tempMin;216 }217218 System.out.println("# min value is: " + iMin);219 return iMin;220 }221222 private float getMax() {223 float iMax = 0;224225 // for every test period226 for (int i = 0; i < skyPatchValues.size(); i++) {227 float[] valuesTemp = skyPatchValues.get(i);228 for (int j = 0; j < valuesTemp.length; j++) {229 if (valuesTemp[j] > iMax)230 iMax = valuesTemp[j];231 }232 }233 System.out.println("# max value is: " + iMax);234 return iMax;235 }236237 public String getSunPatchValues() {238239 String v = "*{"; // create header240 for (int i = 0; i < skyPatchValues.size(); i++) {241 float[] tempValues = skyPatchValues.get(i);242 for (int j = 0; j < tempValues.length; j++) {243 v += ";" + tempValues[j];244 }245 v += "}";246 }247 return v;248 }249250 public float[] computeSurface(ArrayList<Face> panels) {251252 // maximum; radiation value for an individual face in kWh253 float[] iMax = new float[skyPatchValues.size()];254 // minimal radiation value for an individual face in kWh255 float[] iMin = new float[skyPatchValues.size()];256 // total radiation value for the entire mesh kWh for a given period257 float[] iTotal = new float[skyPatchValues.size()];258 // compute total radiation values for every panel259 // TODO can be done parallel. big potential for speeding up260 for (int i = 0; i < panels.size(); i++) {261262 Face face = panels.get(i);263 // get radiation sample values in kWh/m2 for a panel for each264 // time period265 float[] samplePt = computeIrradiance(panels, i);266 // for each time period267 for (int j = 0; j < samplePt.length; j++) {268 // multiply sample value by panel's area kWh/m2 * m2269 float radFace = samplePt[j] * face.area;270 // add radiation value for the face for current period271 iTotal[j] += radFace;272 // look for the maximum273 if (iMax[j] < radFace) {274 iMax[j] = radFace;275 }276 // look for the minimum277 if (iMin[j] > radFace) {278 iMin[j] = radFace;279 }280 face.irradiance.add(radFace);281 }// j - each time period282 }// i - each panel283 // print total radiation data for (int i = 0; i < iTotal.length;284 // i++) {285 // System.out.println("total solar radiation for a given " +286 // testPerioidName.get(i) + " = " + iTotal[i] + " kWh"); }287 for (int i = 0; i < panels.size(); i++) {288 Face panel = panels.get(i);289 for (int j = 0; j < panel.irradiance.size(); j++) {290 float faceTotalRadiation = panel.irradiance.get(j);291 float sample = PApplet.map(faceTotalRadiation, iMin[j],292 iMax[j], 0, 99);293 panel.irradColour.add(gRGBvalues[(int) sample]);294 }295 }296 // color save------------------------------------------------------297 return iTotal;298 }299 }

Page 3

Page 87: Marcin Kosicki AAC Thesis

87Marcin Kosicki AAC 2015

Interpreter.java

1 ppackage core.gpSolver.core;23 public class Interpreter {45 static final int ADD = 110, SUB = 111, MUL = 112, DIV = 113,6 FSET_START = ADD, FSET_END = DIV;7 double[] x = new double[FSET_START];8 static int[] program;9 static int PC;

10 static int varnumber;1112 public Interpreter(int varNum, double[] terminal) {13 PC = 0;14 varnumber = varNum;15 System.arraycopy(terminal, 0, x, 0, x.length);16 // x = terminal;17 }1819 public double execute(double[] input, int[] prog) {2021 double result = 0;22 program = prog;23 // Update the terminal array24 for (int j = 0; j < varnumber; j++)25 x[j] = input[j];26 // --------------------------------27 PC = 0;28 result = run();29 // --------------------------------30 return result;31 }3233 private double run() { /* Interpreter */3435 int primitive = program[PC++];3637 if (primitive < FSET_START) 38 return (x[primitive]);3940 switch (primitive) {41 case ADD:42 return (run() + run());43 case SUB:44 return (run() - run());45 case MUL:46 return (run() * run());47 case DIV: {48 double num = run(), den = run();49 if (Math.abs(den) <= 0.001)50 return (num);51 else52 return (num / den);53 }54 default:55 System.out.println("Interpreter should never get here");56 return (0.0); // should never get here57 }58 }5960 public void setUpVarNum(int var) {61 varnumber = var;62 }63 }

GP Source Code - Interpreter

Page 88: Marcin Kosicki AAC Thesis

88 Integrating Supervised Data Mining into Performance Oriented Design

package

importimport

public classdoubleintstatic newstatic final int ADD SUB MUL DIV

FSET_START ADD FSET_END DIVstatic double new double FSET_STARTstatic doublestatic int

15 static int PC;16 static int varnumber, fitnesscases, randomnumber;17 static double fbestpop = 0.0, favgpop = 0.0;18 static long seed;19 static double avg_len;20 static final int MAX_LEN = 50, POPSIZE = 100000, DEPTH = 5,21 GENERATIONS = 200, TSIZE = 2;22 public static final double PMUT_PER_NODE = 0.05, CROSSOVER_PROB = 0.9;23 static double[][] targets;2425 Interpreter interpreter;26 HistorySaver history;27 long startTime;2829 private int traverse(int[] buffer, int buffercount) {30 if (buffer[buffercount] < FSET_START)31 return (++buffercount);3233 switch (buffer[buffercount]) {34 case ADD:35 case SUB:36 case MUL:37 case DIV:38 return (traverse(buffer, traverse(buffer, ++buffercount)));39 }40 return (0); // should never get here41 }4243 private void setup_fitness(String fname) {4445 try {4647 int i = 0;48 String line;49 BufferedReader in = new BufferedReader(new FileReader(fname));50 while ((line = in.readLine()) != null) {51 String[] readValue = line.split(";");52 if (i == 0) {53 varnumber = Integer.parseInt(readValue[0]);54 randomnumber = Integer.parseInt(readValue[1]);55 minrandom = Double.parseDouble(readValue[2]);56 maxrandom = Double.parseDouble(readValue[3]);57 fitnesscases = Integer.parseInt(readValue[4]);58 targets = new double[fitnesscases][varnumber + 1];5960 if (varnumber + randomnumber >= FSET_START)61 System.out.println("too many variables and constants");6263 } else {64 for (int j = 0; j < varnumber + 1; j++) {65 targets[i - 1][j] = Double.parseDouble(readValue[j]);66 }67 }68 i++;69 }70 in.close();71 } catch (FileNotFoundException e) {72 System.out.println("ERROR: Please provide a data file");73 System.exit(0);74 } catch (Exception e) {75 System.out.println("ERROR: Incorrect data format");76 System.exit(0);77 }78 }7980 private double fitness_function(int[] Prog) {8182 double result, fit = 0.0;83 for (int i = 0; i < fitnesscases; i++) {84 result = interpreter.execute(targets[i], Prog);85 fit += Math.abs(result - targets[i][varnumber]);86 }8788 return (-fit);89 }9091 private int grow(int[] buffer, int pos, int max, int depth) {92 int prim = rd.nextInt(2);93 int one_child;9495 if (pos >= max)96 return (-1);9798 if (pos == 0)99 prim = 1;

100101 if (prim == 0 || depth == 0) {102 prim = rd.nextInt(varnumber + randomnumber);103 buffer[pos] = prim;

Page 1

GP Source Code - Main

Page 89: Marcin Kosicki AAC Thesis

89Marcin Kosicki AAC 2015

TinyGP_main.java

1 ppackage core.gpSolver.core;23 import java.util.*;4 import java.io.*;56 public class TinyGP_main {7 double[] fitness;8 int[][] pop;9 static Random rd = new Random();

10 static final int ADD = 110, SUB = 111, MUL = 112, DIV = 113,11 FSET_START = ADD, FSET_END = DIV;12 static double[] x = new double[FSET_START];13 static double minrandom, maxrandom;14 static int[] program;15 static int PC;16 static int varnumber, fitnesscases, randomnumber;17 static double fbestpop = 0.0, favgpop = 0.0;18 static long seed;19 static double avg_len;20 static final int MAX_LEN = 50, POPSIZE = 100000, DEPTH = 5,21 GENERATIONS = 200, TSIZE = 2;22 public static final double PMUT_PER_NODE = 0.05, CROSSOVER_PROB = 0.9;23 static double[][] targets;2425 Interpreter interpreter;26 HistorySaver history;27 long startTime;2829 private int traverse(int[] buffer, int buffercount) {30 if (buffer[buffercount] < FSET_START)31 return (++buffercount);3233 switch (buffer[buffercount]) {34 case ADD:35 case SUB:36 case MUL:37 case DIV:38 return (traverse(buffer, traverse(buffer, ++buffercount)));39 }40 return (0); // should never get here41 }4243 private void setup_fitness(String fname) {4445 try {4647 int i = 0;48 String line;49 BufferedReader in = new BufferedReader(new FileReader(fname));50 while ((line = in.readLine()) != null) {51 String[] readValue = line.split(";");52 if (i == 0) {53 varnumber = Integer.parseInt(readValue[0]);54 randomnumber = Integer.parseInt(readValue[1]);55 minrandom = Double.parseDouble(readValue[2]);56 maxrandom = Double.parseDouble(readValue[3]);57 fitnesscases = Integer.parseInt(readValue[4]);58 targets = new double[fitnesscases][varnumber + 1];5960 if (varnumber + randomnumber >= FSET_START)61 System.out.println("too many variables and constants");6263 } else {64 for (int j = 0; j < varnumber + 1; j++) {65 targets[i - 1][j] = Double.parseDouble(readValue[j]);66 }67 }68 i++;69 }70 in.close();71 } catch (FileNotFoundException e) {72 System.out.println("ERROR: Please provide a data file");73 System.exit(0);74 } catch (Exception e) {75 System.out.println("ERROR: Incorrect data format");76 System.exit(0);77 }78 }7980 private double fitness_function(int[] Prog) {8182 double result, fit = 0.0;83 for (int i = 0; i < fitnesscases; i++) {84 result = interpreter.execute(targets[i], Prog);85 fit += Math.abs(result - targets[i][varnumber]);86 }8788 return (-fit);89 }9091 private int grow(int[] buffer, int pos, int max, int depth) {92 int prim = rd.nextInt(2);93 int one_child;9495 if (pos >= max)96 return (-1);9798 if (pos == 0)99 prim = 1;

100101 if (prim == 0 || depth == 0) {102 prim = rd.nextInt(varnumber + randomnumber);103 buffer[pos] = prim;

Page 1

Page 90: Marcin Kosicki AAC Thesis

90 Integrating Supervised Data Mining into Performance Oriented Design

TinyGP_main.java

104 rreturn (pos + 1);105 } else {106 prim = (rd.nextInt(FSET_END - FSET_START + 1) + FSET_START);107 switch (prim) {108 case ADD:109 case SUB:110 case MUL:111 case DIV:112 buffer[pos] = prim;113 one_child = grow(buffer, pos + 1, max, depth - 1);114 if (one_child < 0)115 return (-1);116 return (grow(buffer, one_child, max, depth - 1));117 }118 }119 return (0); // should never get here120 }121122 static int[] buffer = new int[MAX_LEN];123 private int[] create_random_indiv(int depth) {124 int[] ind;125 int len;126 len = grow(buffer, 0, MAX_LEN, depth);127 while (len < 0)128 len = grow(buffer, 0, MAX_LEN, depth);129 ind = new int[len];130 System.arraycopy(buffer, 0, ind, 0, len);131 return (ind);132 }133134 private int[][] create_random_pop(int n, int depth, double[] fitness) {135 int[][] pop = new int[n][];136 int i;137138 for (i = 0; i < n; i++) {139 pop[i] = create_random_indiv(depth);140 fitness[i] = fitness_function(pop[i]);141 }142 return (pop);143 }144145 private void stats(double[] fitness, int[][] pop, int gen) {146147 if (gen % 5 == 0) {148149 int best = rd.nextInt(POPSIZE);150 int node_count = 0;151 fbestpop = fitness[best];152 favgpop = 0.0;153154 for (int i = 0; i < POPSIZE; i++) {155 node_count += traverse(pop[i], 0);156 favgpop += fitness[i];157 if (fitness[i] > fbestpop) {158 best = i;159 fbestpop = fitness[i];160 }161 }162163 avg_len = (double) node_count / POPSIZE;164 favgpop /= POPSIZE;165 // Statistics line166 String out = "@;" + gen + ";" + (-favgpop) + ";" + (-fbestpop)167 + ";" + avg_len + ";"168 + (System.currentTimeMillis() - startTime) + "\n" + "%;";169170 for (int j = 0; j < pop[best].length; j++) {171172 out += (int) pop[best][j];173 if (j != pop[best].length - 1)174 out += ";";175 }176 out += "\n";177 history.updateHistory(out);178 System.out.println("generation: " + gen + " saved");179 }180 }181182 private int tournament(double[] fitness, int tsize) {183 int best = rd.nextInt(POPSIZE), i, competitor;184 double fbest = -1.0e34;185186 for (i = 0; i < tsize; i++) {187 competitor = rd.nextInt(POPSIZE);188 if (fitness[competitor] > fbest) {189 fbest = fitness[competitor];190 best = competitor;191 }192 }193 return (best);194 }195196 private int negative_tournament(double[] fitness, int tsize) {197 int worst = rd.nextInt(POPSIZE), i, competitor;198 double fworst = 1e34;199200 for (i = 0; i < tsize; i++) {201 competitor = rd.nextInt(POPSIZE);202 if (fitness[competitor] < fworst) {203 fworst = fitness[competitor];204 worst = competitor;205 }206 }

Page 2

Page 91: Marcin Kosicki AAC Thesis

91Marcin Kosicki AAC 2015

TinyGP_main.java

207 rreturn (worst);208 }209210 private int[] crossover(int[] parent1, int[] parent2) {211 int xo1start, xo1end, xo2start, xo2end;212 int[] offspring;213 int len1 = traverse(parent1, 0);214 int len2 = traverse(parent2, 0);215 int lenoff;216217 xo1start = rd.nextInt(len1);218 xo1end = traverse(parent1, xo1start);219220 xo2start = rd.nextInt(len2);221 xo2end = traverse(parent2, xo2start);222223 lenoff = xo1start + (xo2end - xo2start) + (len1 - xo1end);224225 offspring = new int[lenoff];226227 System.arraycopy(parent1, 0, offspring, 0, xo1start);228 System.arraycopy(parent2, xo2start, offspring, xo1start,229 (xo2end - xo2start));230 System.arraycopy(parent1, xo1end, offspring, xo1start231 + (xo2end - xo2start), (len1 - xo1end));232233 return (offspring);234 }235236 private int[] mutation(int[] parent, double pmut) {237 int len = traverse(parent, 0), i;238 int mutsite;239 int[] parentcopy = new int[len];240241 System.arraycopy(parent, 0, parentcopy, 0, len);242 for (i = 0; i < len; i++) {243 if (rd.nextDouble() < pmut) {244 mutsite = i;245 if (parentcopy[mutsite] < FSET_START)246 parentcopy[mutsite] = rd.nextInt(varnumber + randomnumber);247 else248 switch (parentcopy[mutsite]) {249 case ADD:250 case SUB:251 case MUL:252 case DIV:253 parentcopy[mutsite] = (rd.nextInt(FSET_END - FSET_START254 + 1) + FSET_START);255 }256 }257 }258 return (parentcopy);259 }260261 private String print_parms() {262263 String out = "#; -- TINY GP (Java version) --\n";264265 out += "#;SEED=" + seed + "\n#;MAX_LEN=" + MAX_LEN + "\n#;POPSIZE="266 + POPSIZE + "\n#;DEPTH=" + DEPTH + "\n#;CROSSOVER_PROB="267 + CROSSOVER_PROB + "\n#;PMUT_PER_NODE=" + PMUT_PER_NODE268 + "\n#;MIN_RANDOM=" + minrandom + "\n#;MAX_RANDOM=" + maxrandom269 + "\n#;GENERATIONS=" + GENERATIONS + "\n#;TSIZE=" + TSIZE270 + "\n#;----------------------------------\n";271 System.out.println(out);272 return out;273 }274275 public TinyGP_main(String fname, long s) {276277 fitness = new double[POPSIZE];278 seed = s;279 if (seed >= 0)280 rd.setSeed(seed);281 setup_fitness(fname);282 for (int i = 0; i < FSET_START; i++)283 x[i] = (maxrandom - minrandom) * rd.nextDouble() + minrandom;284 interpreter = new Interpreter(varnumber, x);285 startTime = System.currentTimeMillis();286 pop = create_random_pop(POPSIZE, DEPTH, fitness);287 String[] fileName = fname.split("/");288 String header = print_parms();289 header += saveTerminal();290 String name = "src/data/solutions/_outcome_"291 + fileName[fileName.length - 1];292 history = new HistorySaver(header, name);293 }294295 private void evolve() {296 int gen = 0, indivs, offspring, parent1, parent2, parent;297 double newfit;298 int[] newind;299300 stats(fitness, pop, 0);301302 for (gen = 1; gen < GENERATIONS; gen++) {303 if (fbestpop > -1e-5) {304 System.out.print("PROBLEM SOLVED\n");305 System.exit(0);306 }307 for (indivs = 0; indivs < POPSIZE; indivs++) {308 if (rd.nextDouble() < CROSSOVER_PROB) {309 parent1 = tournament(fitness, TSIZE);

Page 3

Page 92: Marcin Kosicki AAC Thesis

92 Integrating Supervised Data Mining into Performance Oriented Design

TinyGP_main.java

310 parent2 = tournament(fitness, TTSIZE);311 newind = crossover(pop[parent1], pop[parent2]);312 } else {313 parent = tournament(fitness, TSIZE);314 newind = mutation(pop[parent], PMUT_PER_NODE);315 }316 newfit = fitness_function(newind);317 offspring = negative_tournament(fitness, TSIZE);318 pop[offspring] = newind;319 fitness[offspring] = newfit;320 }321 stats(fitness, pop, gen);322 }323 System.out.print("PROBLEM *NOT* SOLVED\n");324 System.exit(1);325 }326327 public static void main(String[] args) {328 String fname = "src/data/problems/problem16D_summer.dat";329 long s = -1;330 if (args.length == 2) {331 s = Integer.valueOf(args[0]).intValue();332 fname = args[1];333 }334 if (args.length == 1) 335 fname = args[0];336337 TinyGP_main gp = new TinyGP_main(fname, s);338 gp.evolve();339 }340341 private String saveTerminal() {342 String out = "$;" + varnumber + "\n" + "!;";343344 for (int i = 0; i < x.length; i++) {345 out += x[i];346 if (i != x.length - 1)347 out += ";";348 }349 return out;350 }351 }352

History Saver Source Code

HistorySaver.java

1 ppackage core.gpSolver.core;23 import java.io.FileNotFoundException;89 public class HistorySaver {

1011 String fileName;1213 public HistorySaver(String header, String name) {14 fileName = name + "_" + createFileName() + ".txt";15 generateFile(header);16 }1718 private void generateFile(String header) {19 // creates new history file2021 try {2223 PrintWriter out = new PrintWriter(fileName);24 out.println(header);25 out.close();2627 } catch (FileNotFoundException e) {28 System.out.print("unable to create history file");2930 }3132 }3334 public void updateHistory(String newEntry) {3536 try {3738 FileWriter fw = new FileWriter(fileName, true); // the true will39 // append the40 // new data41 fw.write(newEntry);// appends the string to the file42 fw.close();4344 } catch (IOException ioe) {45 System.out.println("unable to append the history file");46 }47 }4849 private String createFileName() {50 String timeStamp = Calendar.getInstance().get(Calendar.YEAR) + "_"51 + Calendar.getInstance().get(Calendar.MONTH) + "_"52 + Calendar.getInstance().get(Calendar.DAY_OF_MONTH) + "_"53 + Calendar.getInstance().get(Calendar.HOUR) + "_"54 + Calendar.getInstance().get(Calendar.MINUTE) + "_"55 + Calendar.getInstance().get(Calendar.SECOND);56 return timeStamp;57 }58 }

Page 93: Marcin Kosicki AAC Thesis

93Marcin Kosicki AAC 2015

RoofIndividual.java

1 ppackage core.model.roofindividual;23 import java.util.ArrayList;

1718 public class RoofIndividual {1920 PApplet p; // The parent PApplet that we will render ourselves onto21 private static final float PI = PConstants.PI;2223 private HScrollbar[][] hBar1;24 private GraphLinear[][] hBar2;25 Graph2D graph2D;26 GraphRadar graphRadar;2728 float surfX, surfY, surfZ;2930 int popNum;3132 DataBank dataBank;33 Reuslts result;3435 ArrayList<float[]> irradiance = new ArrayList<float[]>();36 ArrayList<float[]> parameters = new ArrayList<float[]>();3738 BSplineSurface[] bSurf;39 SolarSolver solar;40 DataHigDim hd;41 HistorySaver hist;4243 private int caseKey;44 int sampleWeight = 8;4546 float range[][];4748 float[][] in;49 float[][] data;5051 int toDraw;5253 private int graphSize;54 private int graphWeight;55 private int textSize;56 private int offset;57 private float min;58 private float max;5960 public RoofIndividual(PApplet proc, int cKey, int pNum) {6162 p = proc;63 solar = new SolarSolver(p);64 dataBank = new DataBank();6566 surfX = 200f;67 surfY = 200f;68 surfZ = 100f;6970 popNum = pNum;71 caseKey = cKey;72 bSurf = new BSplineSurface[pNum];73 toDraw = popNum - 1;7475 // graphSize = (int) (p.height * 0.20);76 graphSize = 150;77 graphWeight = 1;78 textSize = (int) (graphSize * 0.07);79 offset = 10;8081 generateData(caseKey);8283 }8485 public void generateData(int i) {8687 switch (i) {88 case 1:89 System.out.println("case: 1");9091 range = new float[1][2];92 range[0][0] = -surfX / 2f;93 range[0][1] = surfX / 2f;9495 in = generateInputData(popNum, range);9697 generatSurfaces1D(popNum, in);9899 createData2D(popNum);

100 setupSlider();101 graph2D = new Graph2D(p, graphSize, graphSize, offset, graphWeight,102 textSize);103104 break;105 case 2:106 System.out.println("case: 2");107108 range = new float[2][2];109 range[0][0] = -surfX / 2f;110 range[0][1] = surfX / 2f;111 range[1][0] = 0f;112 range[1][1] = surfZ;113114 in = generateInputData(popNum, range);115116 generatSurfaces2Da(popNum, in);

Page 1

Sample Sets Generator Result Verifi cation

Page 94: Marcin Kosicki AAC Thesis

94 Integrating Supervised Data Mining into Performance Oriented Design

RoofIndividual.java

117 createData4D(popNum);118 setupSlider();119120 bbreak;121122 case 3: {123 System.out.println("case: 3");124125 range = new float[3][2];126 range[0][0] = -surfX / 2;127 range[0][1] = surfX / 2;128 range[1][0] = -surfY / 2;129 range[1][1] = surfY / 2;130 range[2][0] = 75;131 range[2][1] = 400;132133 in = generateInputData(popNum, range);134135 generatSurfaces3D(in);136 createData5D(popNum);137 setupSlider();138139 graphRadar = new GraphRadar(p, graphSize, range.length,140 graphWeight, graphWeight, graphWeight, offset);141142 break;143 }144 case 4: {145 System.out.println("case: 4");146147 range = new float[25][2];148 for (int j = 0; j < range.length; j++) {149 range[j][0] = 0;150 range[j][1] = surfZ / 2;151 }152153 in = generateInputData(popNum, range);154155 generatSurfacesMultDim(in);156157 createDataMulti(popNum);158159 setupSlider();160161 graphRadar = new GraphRadar(p, graphSize, range.length,162 graphWeight, graphWeight, graphWeight, offset);163 break;164 }165 default: {166167 System.out.println("case: default");168 break;169 }170 }171172 findOldMinMax(caseKey);173 seutpLinerGraphs(min, max);174175 }176177 private void createDataMulti(int popNum2) {178 int dimNum = parameters.get(0).length + irradiance.get(0).length;179 System.out.println("total dimensions: " + dimNum);180 float[][] dataTemp = new float[popNum][dimNum - 1];181182 for (int i = 0; i < dataTemp.length; i++) {183184 for (int j = 0; j < dataTemp[i].length; j++) {185186 if (j != dataTemp[i].length - 1) {187 float[] pTemp = parameters.get(i);188 dataTemp[i][j] = pTemp[j];189 } else {190 float[] iTemp = irradiance.get(i);191192 dataTemp[i][j] = iTemp[0];193 }194 }195196 }197198 String[] dName = { "x", "y", "z", solar.sun.testPerioidName.get(0),199 solar.sun.testPerioidName.get(1) };200201 dataBank.addData(dataTemp, dName, 2);202 /*203 * hist = new HistorySaver(createHeader(parameters.get(0).length,204 * popNum), "problem10D_summer");205 * hist.updateHistory(dataBank.saveData(dataBank.getDataValue(0)));206 */207208 }209210 private void seutpLinerGraphs(float min, float max) {211212 float[] irr = new float[popNum];213 for (int i = 0; i < popNum; i++) {214 float[] temIR = irradiance.get(i);215 irr[i] = temIR[0];216 }217218 /*219 * float min = PApplet.min(irr); float max = PApplet.max(irr);

Page 2

Page 95: Marcin Kosicki AAC Thesis

95Marcin Kosicki AAC 2015

RoofIndividual.java

220 */221222 hBar2 = nnew GraphLinear[popNum][2];223224 int lWidth = 300;225 int hLin = 15;226227 float aveError = 0;228229 int[] colSol = { 255, 0, 0 };230 int[] colGP = { 255, 255, 0 };231232 long timeT = 0;233 for (int i = 0; i < popNum; i++) {234235 float ratio = PApplet.map(irr[i], min, max, 0, 1);236237 float[] in = dataBank.getDataValue(0)[i];238239 long timeS = System.currentTimeMillis();240 float ratioGP = result.compute(in);241 long timeE = System.currentTimeMillis();242 timeT += (timeE - timeS);243244 aveError += Math.abs(ratioGP - ratio);245246 hBar2[i][0] = new GraphLinear(p, new PVector(0 - lWidth / 2,247 -lWidth / 1.5f), lWidth, hLin, 1, ratio, "Sol:", colSol);248 hBar2[i][1] = new GraphLinear(p, new PVector(0 - lWidth / 2,249 -lWidth / 1.5f + 2 * hLin), lWidth, hLin, 1, ratioGP,250 "GpS:", colGP);251 }252253 System.out.println("average time ms " + (timeT));254255 aveError = aveError / popNum * 100;256 System.out.println("average error per individual: " + aveError + " %");257 }258259 private void setupSlider() {260261 data = new float[popNum][parameters.get(0).length];262263 hBar1 = new HScrollbar[popNum][data[0].length];264 int hBarWidth = 300;265 int height = 15;266267 for (int i = 0; i < popNum; i++) {268 float[] inputs = parameters.get(i);269 for (int j = 0; j < inputs.length; j++) {270 data[i][j] = PApplet.map(inputs[j], range[j][0], range[j][1],271 0, 1);272 }273 }274275 for (int i = 0; i < popNum; i++) {276277 for (int j = 0; j < hBar1[i].length; j++) {278279 hBar1[i][j] = new HScrollbar(p, new PVector(0 - hBarWidth / 2,280 50 - hBarWidth / 1.5f + 2 * height * j), hBarWidth,281 height, 1, data[i][j], "X" + j);282283 }284 }285 }286287 private float[][] generateInputData(int pop, float[][] range) {288289 /*290 * @param pop The number instances to be generated291 * 292 * @param range The range for every input parameter with min max values293 */294 float ratio = 0.0f;295 int dim = range.length;296 int nUnifrom = (int) (ratio * pop);297 int nRandom;298 float[][] imput;299300 if (nUnifrom != 0) {301 int row = (int) Math.pow(nUnifrom, 1 / dim);302303 hd = new DataHigDim(dim, row);304 double[][] uniDist = hd.getUniformDist();305 nUnifrom = uniDist.length;306307 nRandom = pop - nUnifrom;308 imput = new float[pop][dim];309310 // generate uniformly distributed values311 for (int i = 0; i < uniDist.length; i++) {312313 for (int j = 0; j < uniDist[i].length; j++) {314 float valueSpan = Math.abs(range[j][1] - range[j][0]);315 imput[i][j] = (float) (range[j][0] + uniDist[i][j]316 * valueSpan);317 }318 }319320 } else {321 nRandom = pop;322 imput = new float[nRandom][dim];

Page 3

Page 96: Marcin Kosicki AAC Thesis

96 Integrating Supervised Data Mining into Performance Oriented Design

RoofIndividual.java

323 }324325 // generate random values326 ffor (int i = 0; i < nRandom; i++) {327328 for (int j = 0; j < dim; j++) {329 imput[nUnifrom + i][j] = p.random(range[j][0], range[j][1]);330 }331 }332333 return imput;334 }335336 private void generatSurfacesMultDim(float[][] imput) {337338 for (int i = 0; i < imput.length; i++) {339 BSplineSurface bs = new BSplineSurface(p, surfX, surfY, imput[i]);340 // BSplineSurface bs = new BSplineSurface(p, surfX, surfY, surfZ/3,341 // 4);342 irradiance.add(solar.sun.computeSurface(bs.panels));343 parameters.add(imput[i]);344 bSurf[i] = bs;345 }346 }347348 private void createData2D(int popNum) {349350 int dimNum = parameters.get(0).length + irradiance.get(0).length;351 System.out.println("total dimensions: " + dimNum);352353 float[][] dataTemp = new float[popNum][dimNum];354355 for (int i = 0; i < dataTemp.length; i++) {356357 float[] pTemp = parameters.get(i);358 float[] iTemp = irradiance.get(i);359360 dataTemp[i][0] = pTemp[0]; // x361 dataTemp[i][1] = iTemp[0]; // summer362 }363364 String[] dName = { "x", solar.sun.testPerioidName.get(0), "null" };365366 dataBank.addData(dataTemp, dName, 2);367368 /*369 * hist = new HistorySaver(createHeader(parameters.get(0).length,370 * popNum), "problem2D");371 * hist.updateHistory(dataBank.saveData(dataBank.getDataValue(0)));372 */373374 }375376 private void createData4D(int popNum) {377378 int dimNum = parameters.get(0).length + irradiance.get(0).length;379 System.out.println("total dimensions: " + dimNum);380381 float[][] dataTemp = new float[popNum][dimNum - 1];382383 for (int i = 0; i < dataTemp.length; i++) {384385 float[] pTemp = parameters.get(i);386 float[] iTemp = irradiance.get(i);387388 dataTemp[i][0] = pTemp[0]; // x389 dataTemp[i][1] = pTemp[1]; // z390391 dataTemp[i][2] = iTemp[0]; // summer392 // dataTemp[i][3] = iTemp[1]; // winter393394 }395396 String[] dName = { "x", "z", solar.sun.testPerioidName.get(0),397 solar.sun.testPerioidName.get(1) };398399 dataBank.addData(dataTemp, dName, 2);400401 /*402 * hist = new HistorySaver(createHeader(parameters.get(0).length,403 * popNum), "problem3D");404 * hist.updateHistory(dataBank.saveData(dataBank.getDataValue(0)));405 */406407 }408409 private void createData5D(int popNum) {410411 int dimNum = parameters.get(0).length + irradiance.get(0).length;412 System.out.println("total dimensions: " + dimNum);413 float[][] dataTemp = new float[popNum][dimNum - 1];414415 for (int i = 0; i < dataTemp.length; i++) {416417 float[] pTemp = parameters.get(i);418 float[] iTemp = irradiance.get(i);419420 dataTemp[i][0] = pTemp[0]; // x421 dataTemp[i][1] = pTemp[1]; // y422 dataTemp[i][2] = pTemp[2]; // z423424 dataTemp[i][3] = iTemp[0]; // summer425 // dataTemp[i][4] = iTemp[1]; // winter

Page 4

Page 97: Marcin Kosicki AAC Thesis

97Marcin Kosicki AAC 2015

RoofIndividual.java

426427 }428429 String[] dName = { "x", "y", "z", solar.sun.testPerioidName.get(0),430 solar.sun.testPerioidName.get(1) };431432 dataBank.addData(dataTemp, dName, 2);433434 /*435 * hist = new HistorySaver(createHeader(parameters.get(0).length,436 * popNum), "problem5D_summer");437 * hist.updateHistory(dataBank.saveData(dataBank.getDataValue(0)));438 */439 }440441 public void draw() {442 drawPopulation();443 drawGraph();444 }445446 private void drawGraph() {447448 p.pushMatrix();449 p.translate(3 * p.width / 4, 3 * p.height / 4);450 for (int i = 0; i < hBar2[toDraw].length; i++) {451 hBar2[toDraw][i].draw();452 }453454 switch (caseKey) {455 case 1:456 p.translate(0, 10);457 for (int i = 0; i < hBar1[toDraw].length; i++) {458 hBar1[toDraw][i].draw();459 }460 break;461462 case 2:463 p.translate(0, 10);464 for (int i = 0; i < hBar1[toDraw].length; i++) {465 hBar1[toDraw][i].draw();466 }467 break;468469 case 3:470 // p.translate(3 * p.width / 4, 3 * p.height / 4);471 graphRadar.drawRadarChart(data[toDraw], 2, true, true, true);472 break;473 case 4:474 // p.translate(3 * p.width / 4, 3 * p.height / 4);475 graphRadar.drawRadarChart(data[toDraw], 2, true, true, true);476 break;477 default:478 break;479 }480 p.popMatrix();481 }482483 private void drawPopulation() {484485 /*486 * draws population preview487 */488489 // draws mesh representation of a surface490491 int set = PApplet492 .abs(PApplet.floor(PApplet.sin(p.frameCount * 0.025f)));493494 int numRows = (int) Math.ceil(PApplet.sqrt(popNum)); // numOfRowsForDisplay495496 for (int i = 0; i < popNum; i++) {497 p.pushMatrix();498499 p.scale(1.0f / numRows);500 p.translate(p.width / 2 * (i % numRows), (p.height) * (i / numRows));501502 p.translate(p.height / 2, -p.height / 2);503 p.scale(0.9f, -0.9f);504 p.translate(0, -p.height);505 if (caseKey <= 2) {506507 for (int j = 0; j < hBar1[i].length; j++) {508 hBar1[i][j].draw();509 }510511 p.pushMatrix();512 p.translate(0, -20);513514 hBar2[i][0].draw();515 hBar2[i][1].draw();516 p.popMatrix();517518 /*519 * p.rotateX(-PI / 3); p.rotateZ(-PI / 3); bSurf[i].draw(set,520 * false, false);521 */522523 } else {524 p.pushMatrix();525526 p.translate(0, -150);527 hBar2[i][0].draw();528 hBar2[i][1].draw();

Page 5

Page 98: Marcin Kosicki AAC Thesis

98 Integrating Supervised Data Mining into Performance Oriented Design

RoofIndividual.java

529530 p.translate(0, 50);531 graphRadar.drawRadarChart(data[i], 3, ttrue, true, false);532 p.popMatrix();533534 /*535 * p.translate(0, 80);536 * 537 * p.rotateX(-PI / 3); p.rotateZ(-PI / 3);538 * 539 * bSurf[i].draw(set, false, false);540 */541542 }543 p.popMatrix();544 }545546 p.pushMatrix();547 p.translate(p.width / 2, -p.height / 4);548549 p.scale(1, -1);550551 p.translate(p.width / 4, -p.height / 2);552553 p.rotateX(-PI / 3);554 p.rotateZ(-PI / 3);555556 bSurf[toDraw].draw(set, true, false);557 p.popMatrix();558559 }560561 private void generatSurfaces1D(int num, float[][] in) {562563 for (int i = 0; i < num; i++) {564565 float[] params1D = in[i];566567 BSplineSurface bs = new BSplineSurface(p, surfX, surfY, surfZ,568 params1D[0]);569570 float[] totalRad = solar.sun.computeSurface(bs.panels);571 float[] sumerRad = new float[1];572 sumerRad[0] = totalRad[0];573574 irradiance.add(sumerRad);575 parameters.add(params1D);576 bSurf[i] = bs;577578 }579 }580581 void findOldMinMax(int caseKey) {582 result = new Reuslts(data[0].length);583584 float[] inputMin = new float[result.minConf.length];585 float[] inputMax = new float[result.maxConf.length];586587 for (int j = 0; j < inputMin.length; j++) {588 float valueSpan = Math.abs(range[j][1] - range[j][0]);589 inputMin[j] = (float) (range[j][0] + result.minConf[j] * valueSpan);590 }591592 for (int j = 0; j < inputMax.length; j++) {593 float valueSpan = Math.abs(range[j][1] - range[j][0]);594 inputMax[j] = (float) (range[j][0] + result.maxConf[j] * valueSpan);595 }596597 BSplineSurface bsMin, bsMax;598 switch (caseKey) {599 case 1:600 bsMin = new BSplineSurface(p, surfX, surfY, surfZ, inputMin[0]);601 bsMax = new BSplineSurface(p, surfX, surfY, surfZ, inputMax[0]);602 break;603 case 2:604 bsMin = new BSplineSurface(p, surfX, surfY, surfZ, inputMin[0],605 inputMin[1]);606 bsMax = new BSplineSurface(p, surfX, surfY, surfZ, inputMax[0],607 inputMax[1]);608 break;609 case 3:610 bsMin = new BSplineSurface(p, surfX, surfY, surfZ, inputMin[0],611 inputMin[1], inputMin[2]);612 bsMax = new BSplineSurface(p, surfX, surfY, surfZ, inputMax[0],613 inputMax[1], inputMax[2]);614 break;615 case 4:616 bsMin = new BSplineSurface(p, surfX, surfY, inputMin);617 bsMax = new BSplineSurface(p, surfX, surfY, inputMax);618 break;619 default:620 bsMin = new BSplineSurface(p, surfX, surfY, surfZ, inputMin[0]);621 bsMax = new BSplineSurface(p, surfX, surfY, surfZ, inputMax[0]);622 break;623 }624 float[] tempMIN = solar.sun.computeSurface(bsMin.panels);625 float[] tempMAX = solar.sun.computeSurface(bsMax.panels);626 min = tempMIN[0];627 max = tempMAX[0];628 }629630 private void generatSurfaces2Da(int num, float[][] params2D) {631

Page 6

Page 99: Marcin Kosicki AAC Thesis

99Marcin Kosicki AAC 2015

RoofIndividual.java

632 ffor (int i = 0; i < num; i++) {633634 // z,y variable635636 BSplineSurface bs = new BSplineSurface(p, surfX, surfY, surfZ,637 params2D[i][0], params2D[i][1]);638639 parameters.add(params2D[i]);640 irradiance.add(solar.sun.computeSurface(bs.panels));641642 bSurf[i] = bs;643 }644 }645646 private void generatSurfaces3D(float[][] params3D) {647648 for (int i = 0; i < params3D.length; i++) {649650 BSplineSurface bs = new BSplineSurface(p, surfX, surfY, surfZ,651 params3D[i][0], params3D[i][1], params3D[i][2]);652653 irradiance.add(solar.sun.computeSurface(bs.panels));654 parameters.add(params3D[i]);655 bSurf[i] = bs;656 }657 }658659 private String createHeader(int var, int pop) {660 String out = var + ";100;-5;5;" + pop;661 return out;662663 }664 }665

RoofIndividual_main.java

1 ppackage core.model.roofindividual;23 import processing.core.PApplet;45 @SuppressWarnings("serial")6 public class RoofIndividual_main extends PApplet {78 RoofIndividual roof;9 boolean record;

1011 public void setup() {1213 size(1000, 600, OPENGL);1415 lights();16 smooth(8);17 ortho();18 noLoop();19 hint(ENABLE_DEPTH_SORT);20 record = true;2122 roof = new RoofIndividual(this, 1, 100);23 }2425 public void draw() {26 background(255);27 if (record) {28 textMode(SHAPE);29 String name = "src/data/graphic/gen.pdf";30 beginRecord(PDF, name);31 }3233 roof.draw();34 saveFrame();35 if (record) {36 endRecord();37 record = false;3839 }40 }4142 public static void main(String _args[]) {43 PApplet.main(new String[] { RoofIndividual_main.class.getName() });44 }4546 public void keyPressed() {47 if (key == 's') {48 record = true;49 }50 }5152 }53

Sample Sets Generator Result Verifi cation - Main

Page 100: Marcin Kosicki AAC Thesis

100 Integrating Supervised Data Mining into Performance Oriented Design

Reuslts.java

1 ppackage core.model.roofindividual;23 import java.io.BufferedReader;

1213 public class Reuslts {1415 int key;16 Interpreter interpret;1718 int[] prog;19 double[] terminal;20 private JFileChooser fileChooser;2122 public double[] maxConf;23 public double[] minConf;2425 Reuslts(int varNUM) {26 fileChooser = new JFileChooser();27 loadDataGPout(fileChoser("src/data/solutions"));28 loadDataGPin(fileChoser("src/data/problems"));29 interpret = new Interpreter(varNUM, terminal);30 }3132 private void loadDataGPin(String filePath) {33 // TODO Auto-generated method stub34 try {3536 int lineNum = 0;37 String line;38 BufferedReader in = new BufferedReader(new FileReader(filePath));3940 while ((line = in.readLine()) != null) {41 if (lineNum != 0) {4243 String[] readValue = line.split(";");44 Double val = Double45 .parseDouble(readValue[readValue.length - 1]);46 if (val == 0) {47 minConf = new double[readValue.length - 1];48 for (int j = 0; j < minConf.length; j++) {49 minConf[j] = Double.parseDouble(readValue[j]);50 }51 }5253 if (val == 1) {54 maxConf = new double[readValue.length - 1];55 for (int j = 0; j < maxConf.length; j++) {56 maxConf[j] = Double.parseDouble(readValue[j]);57 }58 }59 }60 lineNum++;61 }6263 in.close();6465 } catch (FileNotFoundException e) {66 System.out.println("ERROR: Please provide orignal problem file");67 } catch (Exception e) {68 System.out.println("ERROR: Incorrect data format tests ");69 System.exit(0);70 }71 }7273 private void loadDataGPout(String filePath) {7475 try {7677 String line;78 BufferedReader in = new BufferedReader(new FileReader(filePath));7980 while ((line = in.readLine()) != null) {8182 String[] readValue = line.split(";");8384 // TODo to make things faster it folat instaed of dobule85 if (readValue[0].equals("!")) {86 double[] tempTer = new double[readValue.length - 1];87 terminal = new double[tempTer.length];88 for (int j = 0; j < tempTer.length; j++) {89 tempTer[j] = Double.parseDouble(readValue[j + 1]);90 }91 System.arraycopy(tempTer, 0, terminal, 0, terminal.length);92 }9394 if (readValue[0].equals("%")) {95 int[] code = new int[readValue.length - 1];96 for (int j = 0; j < code.length; j++) {97 code[j] = Integer.parseInt(readValue[j + 1]);98 }99 prog = new int[code.length];

100 System.arraycopy(code, 0, prog, 0, code.length);101 }102 }103104 in.close();105106 } catch (FileNotFoundException e) {107 System.out.println("ERROR: Please provide a data file");108 } catch (Exception e) {109 System.out.println("ERROR: Incorrect data format tests ");110 System.exit(0);111 }

Page 1

GP Result to Solar Interpreter - Main

Page 101: Marcin Kosicki AAC Thesis

101Marcin Kosicki AAC 2015

Reuslts.java

112 }113114 ffloat compute(float[] in) {115116 double[] x = new double[in.length];117 for (int i = 0; i < in.length; i++) {118 x[i] = (double) in[i];119 }120121 double out = interpret.execute(x, prog);122123 return (float) out;124 }125126 private String fileChoser(String dialogTitle) {127 // fileChooser = new JFileChooser();128 String dir = System.getProperty("user.dir");129 fileChooser.setCurrentDirectory(new File(dir));130 // fileChooser.setSelectedFile(new File("README.html"));131 fileChooser.setDialogTitle(dialogTitle);132 String filename = null;133134 int result = fileChooser.showOpenDialog(null);135136 if (result == JFileChooser.APPROVE_OPTION) {137 filename = fileChooser.getSelectedFile().getPath();138 // JOptionPane.showMessageDialog(null, "You selected " + filename);139 } else if (result == JFileChooser.CANCEL_OPTION) {140 JOptionPane.showMessageDialog(null, "You selected nothing.");141 } else if (result == JFileChooser.ERROR_OPTION) {142 JOptionPane.showMessageDialog(null, "An error occurred.");143 }144 return filename;145 }146147 }148

Page 102: Marcin Kosicki AAC Thesis

102 Integrating Supervised Data Mining into Performance Oriented Design

DataBank.java

1 ppackage core.datavisualistaion;23 import java.util.ArrayList;67 public class DataBank {89 private ArrayList<String[]> dataName; // stores names a of data

10 private ArrayList<float[][]> dataNormal; // stores a normalized data1112 public DataBank() {13 dataName = new ArrayList<String[]>();14 dataNormal = new ArrayList<float[][]>();15 }1617 public float[][] getDataValue(int i) {18 return dataNormal.get(i);19 }2021 public String[] getDataName(int i) {22 return dataName.get(i);23 }2425 public void addData(float[][] data, String[] dName) {26 dataNormal.add(data);27 dataName.add(dName);28 }2930 public void addData(float[][] rawData, String[] dName, int key) {3132 float[][] nData = new float[rawData.length][rawData[0].length];3334 switch (key) {35 case 0:36 nData = normaliseData_0_Max(rawData);37 break;38 default:39 nData = normaliseData_Min_Max(rawData);40 }41 dataNormal.add(nData);42 dataName.add(dName);43 }4445 public void swapDataValues(int i, float[][] rawData, int key) {4647 try {48 float[][] nData = new float[rawData.length][rawData[0].length];49 switch (key) {50 case 0:51 nData = normaliseData_0_Max(rawData);52 break;53 default:54 nData = normaliseData_Min_Max(rawData);55 break;56 }57 dataNormal.set(i, nData);58 } catch (Exception e) {59 System.out.println("data doesn't exist");60 }61 }6263 public float[][] normaliseData_0_Max(float[][] data, float[][] range) {64 // set minimum range value to 0;65 for (int i = 0; i < range.length; i++)66 range[i][0] = 0;6768 // Normalize data69 float[][] tempData = normalizeData(data, range);70 return tempData;71 }7273 public float[][] normaliseData_0_Max(float[][] data) {7475 float[][] range = find_min_max_swap(data);76 // set minimum range value to 0;77 for (int i = 0; i < range.length; i++)78 range[i][0] = 0.0f;7980 // Normalize data81 float[][] tempData = normalizeData(data, range);82 return tempData;83 }8485 public float[][] find_min_max(float[][] data) {8687 float[][] min_max = new float[data.length][2];8889 for (int i = 0; i < min_max.length; i++) {90 min_max[i][0] = PApplet.min(data[i]);91 min_max[i][1] = PApplet.max(data[i]);92 }93 return min_max;94 }9596 public float[][] find_min_max_swap(float[][] data) {9798 float[][] min_max = new float[data[0].length][2];99 float[][] swapedData = new float[data[0].length][data.length];

100101 for (int i = 0; i < swapedData.length; i++) {102 for (int j = 0; j < swapedData[0].length; j++) {103 swapedData[i][j] = data[j][i];104 }105 }

Page 1

Data Bank

Page 103: Marcin Kosicki AAC Thesis

103Marcin Kosicki AAC 2015

DataBank.java

1 ppackage core.datavisualistaion;23 import java.util.ArrayList;67 public class DataBank {89 private ArrayList<String[]> dataName; // stores names a of data

10 private ArrayList<float[][]> dataNormal; // stores a normalized data1112 public DataBank() {13 dataName = new ArrayList<String[]>();14 dataNormal = new ArrayList<float[][]>();15 }1617 public float[][] getDataValue(int i) {18 return dataNormal.get(i);19 }2021 public String[] getDataName(int i) {22 return dataName.get(i);23 }2425 public void addData(float[][] data, String[] dName) {26 dataNormal.add(data);27 dataName.add(dName);28 }2930 public void addData(float[][] rawData, String[] dName, int key) {3132 float[][] nData = new float[rawData.length][rawData[0].length];3334 switch (key) {35 case 0:36 nData = normaliseData_0_Max(rawData);37 break;38 default:39 nData = normaliseData_Min_Max(rawData);40 }41 dataNormal.add(nData);42 dataName.add(dName);43 }4445 public void swapDataValues(int i, float[][] rawData, int key) {4647 try {48 float[][] nData = new float[rawData.length][rawData[0].length];49 switch (key) {50 case 0:51 nData = normaliseData_0_Max(rawData);52 break;53 default:54 nData = normaliseData_Min_Max(rawData);55 break;56 }57 dataNormal.set(i, nData);58 } catch (Exception e) {59 System.out.println("data doesn't exist");60 }61 }6263 public float[][] normaliseData_0_Max(float[][] data, float[][] range) {64 // set minimum range value to 0;65 for (int i = 0; i < range.length; i++)66 range[i][0] = 0;6768 // Normalize data69 float[][] tempData = normalizeData(data, range);70 return tempData;71 }7273 public float[][] normaliseData_0_Max(float[][] data) {7475 float[][] range = find_min_max_swap(data);76 // set minimum range value to 0;77 for (int i = 0; i < range.length; i++)78 range[i][0] = 0.0f;7980 // Normalize data81 float[][] tempData = normalizeData(data, range);82 return tempData;83 }8485 public float[][] find_min_max(float[][] data) {8687 float[][] min_max = new float[data.length][2];8889 for (int i = 0; i < min_max.length; i++) {90 min_max[i][0] = PApplet.min(data[i]);91 min_max[i][1] = PApplet.max(data[i]);92 }93 return min_max;94 }9596 public float[][] find_min_max_swap(float[][] data) {9798 float[][] min_max = new float[data[0].length][2];99 float[][] swapedData = new float[data[0].length][data.length];

100101 for (int i = 0; i < swapedData.length; i++) {102 for (int j = 0; j < swapedData[0].length; j++) {103 swapedData[i][j] = data[j][i];104 }105 }

Page 1

Page 104: Marcin Kosicki AAC Thesis

104 Integrating Supervised Data Mining into Performance Oriented Design

DataBank.java

106 ffor (int i = 0; i < swapedData.length; i++) {107 min_max[i][0] = PApplet.min(swapedData[i]);108 min_max[i][1] = PApplet.max(swapedData[i]);109 }110 return min_max;111 }112113 public float[][] normaliseData_Min_Max(float[][] data) {114 // first fine a range for a given data and normalize it form 0 to 1115 float[][] range = find_min_max_swap(data);116 float[][] tempData = normalizeData(data, range);117 return tempData;118 }119120 public float[][] normalizeData(float[][] data, float[][] range) {121122 float[][] tempData = new float[data.length][data[0].length];123 for (int i = 0; i < data.length; i++) {124 for (int j = 0; j < data[i].length; j++) {125 tempData[i][j] = PApplet.map(data[i][j], range[j][0],126 range[j][1], 0, 1);127 }128 }129 return tempData;130 }131132 public String saveData(float[][] newData) {133134 // NVAR NRAND MIN_RAND MAX_RAND NFITCASES135 String data = "*";136137 for (int i = 0; i < newData.length; i++) {138139 float[] entryLine = newData[i];140141 String line = "\n";142143 for (int j = 0; j < entryLine.length; j++) {144145 line += newData[i][j];146 if (j != entryLine.length - 1)147 line += " ";148 }149 data += line;150 }151 return data;152 }153 }154

Page 2

Page 105: Marcin Kosicki AAC Thesis

105Marcin Kosicki AAC 2015

GraphLinear.java

1 ppackage core.datavisualistaion.Graphs;23 import processing.core.PApplet;56 public class GraphLinear {78 /*9 * default horizontal scroll bar class. Code based on Processing example

10 * HScrollbar11 */1213 PApplet p; // basic processing canvas1415 int swidth, sheight; // width and height of bar16 PVector pos; // position of bar17 float spos, newspos; // x position of slider18 float sposMin, sposMax; // max and min values of slider19 int loose; // how loose/heavy20 float ratio;21 int[] color;2223 private String label;2425 public GraphLinear(PApplet _p, PVector _pos, int sw, int sh, int l,26 float sPosRatio, String _label, int[] _color) {2728 p = _p;29 swidth = sw;30 sheight = sh;31 int widthtoheight = sw - sh;32 ratio = (float) sw / (float) widthtoheight;33 pos = _pos;34 spos = pos.x + swidth * sPosRatio - sheight * sPosRatio;35 newspos = spos;36 sposMin = pos.x;37 sposMax = pos.x + swidth - sheight;38 loose = l;39 label = _label;40 color = _color;41 }4243 public void draw() {44 display();45 }4647 private void display() {48 p.noStroke();4950 p.fill(204);51 p.textSize(sheight);52 p.textAlign(PApplet.CENTER, PApplet.LEFT);53 p.text(label, pos.x - 2 * sheight, pos.y + sheight);5455 p.rect(pos.x, pos.y, swidth, sheight);5657 p.fill(color[0], color[1], color[2]);5859 // p.rect(spos, pos.y, sheight, sheight);60 p.rect(pos.x, pos.y, spos - pos.x, sheight);61 }6263 }64

Linear Chart

Page 106: Marcin Kosicki AAC Thesis

106 Integrating Supervised Data Mining into Performance Oriented Design

GraphRadar.java

1 ppackage core.datavisualistaion.Graphs;23 import processing.core.PApplet;56 public class GraphRadar extends Graph {78 int offset;9 int gSize;

10 int cNum;11 int inputNUM;12 int size;13 float angle;14 float tilt;15 float cStep;1617 int wArrow;18 int wScale;19 int wData;2021 /*22 * @param inputNUM The number of input parameters23 * 24 * @param size The length of line25 * 26 * @param offset The offset from start&end of an arrow line27 * 28 * @param angle The rotation angle29 * 30 * @param tilt The angle of tilt rotation31 */3233 public GraphRadar(PApplet proc, int _size, int _inNUM, int weightArrow,34 int wieghtScale, int wieghtData, int _offset) {3536 super(proc);3738 size = _size;39 offset = _offset;40 gSize = size - 2 * offset;41 cNum = 4; // circle number42 inputNUM = _inNUM;43 angle = (float) ((2 * Math.PI) / (inputNUM));44 tilt = (float) (angle - Math.PI / 2);45 cStep = 1.0f / (cNum - 1);4647 wArrow = weightArrow;48 wScale = wieghtScale;49 wData = wieghtData;50 }5152 public void drawRadarChart(float[] data, float weight, boolean gizmo,53 boolean scale, boolean text) {5455 // ----------------------------56 if (gizmo)57 drawRadarGizmo(120, text);58 // ----------------------------59 if (scale)60 drawRadarScale(180);61 // ----------------------------62 drawRadarData(data);63 // ----------------------------64 }6566 private void drawRadarData(float[] data) {6768 /*69 * Draws input representation70 */7172 // TODO check data to draw !7374 p.strokeWeight(wData);75 p.stroke(255, 0, 0);76 p.fill(255, 0, 0, 50);77 p.beginShape();78 for (int i = 0; i < data.length; i++) {79 float x = (float) (gSize * Math.cos(-tilt + angle * i));80 float y = (float) (gSize * Math.sin(-tilt + angle * i));81 float xOff = (float) (offset * Math.cos(-tilt + angle * i));82 float yOff = (float) (offset * Math.sin(-tilt + angle * i));83 p.vertex(data[i] * x + xOff, data[i] * y + yOff);84 }85 p.endShape(PConstants.CLOSE);86 }8788 private void drawRadarScale(int gray) {8990 /*91 * Draws scale lines for each input parameter92 */9394 p.strokeWeight(wScale);95 p.stroke(gray);96 p.noFill();97 for (int i = 0; i < cNum; i++) {9899 p.beginShape();

100 for (int j = 0; j < inputNUM; j++) {101 float x = (float) (gSize * Math.cos(-tilt + angle * j));102 float y = (float) (gSize * Math.sin(-tilt + angle * j));103 float xOff = (float) (offset * Math.cos(-tilt + angle * j));104 float yOff = (float) (offset * Math.sin(-tilt + angle * j));

Page 1

Radar Chart

Page 107: Marcin Kosicki AAC Thesis

107Marcin Kosicki AAC 2015

GraphRadar.java

1 ppackage core.datavisualistaion.Graphs;23 import processing.core.PApplet;56 public class GraphRadar extends Graph {78 int offset;9 int gSize;

10 int cNum;11 int inputNUM;12 int size;13 float angle;14 float tilt;15 float cStep;1617 int wArrow;18 int wScale;19 int wData;2021 /*22 * @param inputNUM The number of input parameters23 * 24 * @param size The length of line25 * 26 * @param offset The offset from start&end of an arrow line27 * 28 * @param angle The rotation angle29 * 30 * @param tilt The angle of tilt rotation31 */3233 public GraphRadar(PApplet proc, int _size, int _inNUM, int weightArrow,34 int wieghtScale, int wieghtData, int _offset) {3536 super(proc);3738 size = _size;39 offset = _offset;40 gSize = size - 2 * offset;41 cNum = 4; // circle number42 inputNUM = _inNUM;43 angle = (float) ((2 * Math.PI) / (inputNUM));44 tilt = (float) (angle - Math.PI / 2);45 cStep = 1.0f / (cNum - 1);4647 wArrow = weightArrow;48 wScale = wieghtScale;49 wData = wieghtData;50 }5152 public void drawRadarChart(float[] data, float weight, boolean gizmo,53 boolean scale, boolean text) {5455 // ----------------------------56 if (gizmo)57 drawRadarGizmo(120, text);58 // ----------------------------59 if (scale)60 drawRadarScale(180);61 // ----------------------------62 drawRadarData(data);63 // ----------------------------64 }6566 private void drawRadarData(float[] data) {6768 /*69 * Draws input representation70 */7172 // TODO check data to draw !7374 p.strokeWeight(wData);75 p.stroke(255, 0, 0);76 p.fill(255, 0, 0, 50);77 p.beginShape();78 for (int i = 0; i < data.length; i++) {79 float x = (float) (gSize * Math.cos(-tilt + angle * i));80 float y = (float) (gSize * Math.sin(-tilt + angle * i));81 float xOff = (float) (offset * Math.cos(-tilt + angle * i));82 float yOff = (float) (offset * Math.sin(-tilt + angle * i));83 p.vertex(data[i] * x + xOff, data[i] * y + yOff);84 }85 p.endShape(PConstants.CLOSE);86 }8788 private void drawRadarScale(int gray) {8990 /*91 * Draws scale lines for each input parameter92 */9394 p.strokeWeight(wScale);95 p.stroke(gray);96 p.noFill();97 for (int i = 0; i < cNum; i++) {9899 p.beginShape();

100 for (int j = 0; j < inputNUM; j++) {101 float x = (float) (gSize * Math.cos(-tilt + angle * j));102 float y = (float) (gSize * Math.sin(-tilt + angle * j));103 float xOff = (float) (offset * Math.cos(-tilt + angle * j));104 float yOff = (float) (offset * Math.sin(-tilt + angle * j));

Page 1

Page 108: Marcin Kosicki AAC Thesis

108 Integrating Supervised Data Mining into Performance Oriented Design

GraphRadar.java

105 p.vertex((cStep * i) * x + xOff, (cStep * i) * y + yOff);106 }107 p.endShape(PConstants.CCLOSE);108 }109 }110111 private void drawRadarGizmo(int gray, boolean text) {112113 /*114 * Draws arrows for each input parameter115 */116 p.textSize(offset);117 p.textAlign(PApplet.CENTER, PApplet.BOTTOM);118 p.strokeWeight(wArrow);119 p.stroke(gray);120 p.fill(gray);121 for (int i = 0; i < inputNUM; i++) {122 float x = (float) (size * Math.cos(-tilt + angle * i));123 float y = (float) (size * Math.sin(-tilt + angle * i));124 drawArrow(0, 0, x, y, 0, offset / 5, true);125126 p.pushMatrix();127 p.translate(x, y);128 p.rotate(PApplet.PI / 2 - tilt + angle * i);129 if (text)130 p.text("X" + i, 0, 0);131 p.popMatrix();132133 }134 }135 }136

Page 2