<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sumowiki.ilabt.imec.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kcrombec</id>
	<title>SUMOwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://sumowiki.ilabt.imec.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kcrombec"/>
	<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/Special:Contributions/Kcrombec"/>
	<updated>2026-04-08T21:38:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5410</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5410"/>
		<updated>2011-02-24T13:38:44Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:SED.png|150 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential &#039;&#039;Design of Experiments (DoE)&#039;&#039;. &lt;br /&gt;
In traditional experimental design, all the design points are selected up front, before performing any (computer or real-life) experiment, and afterwards, no additional design points are selected. This traditional approach is prone to oversampling and/or undersampling, because it is often very difficult to estimate up front the required number of design points.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate an experimental design in a sequential way, i.e. one design point at a time, without having to provide the total number of design points in advance. This is called &#039;&#039;sequential experimental design (SED)&#039;&#039;. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the &#039;&#039;intersite&#039;&#039; (maximin) and &#039;&#039;projected&#039;&#039; (non-collapsing) requirements. &lt;br /&gt;
The &#039;&#039;intersite distance&#039;&#039; is the smallest distance between two design points in the design space; this value should be as high as possible, in order to have the points spread out as evenly as possible. &lt;br /&gt;
In addition to the intersite distance, the projected distance is also important. &lt;br /&gt;
The &#039;&#039;projected distance&#039;&#039; is the smallest distance between all the points after they have been projected on one axes of the design space. This measure is especially important if the relative importance of the design parameters is unknown. E.g., if one of the design parameters does not influence the output behavior, two design points which only differ in this (irrelevant) parameter have the same behavior, and can be seen as the &amp;quot;same&amp;quot; design point. Thus, the projected distance must also be maximized. &lt;br /&gt;
&lt;br /&gt;
All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements. If you prefer to learn by example, you can check out the examples directory in the distribution, which contains several applications and example problems for the toolbox.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints. Additionally, &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; and all other methods besides &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; need the corner points [-1,...,-1] and [1,...,1] to start, and if they violate the constraints they will still be selected. You can later request the design without these corner points using the getAllPointsWithoutInitialDesign() function, so this might not be an issue, but keep it in mind.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=File:SED.png&amp;diff=5409</id>
		<title>File:SED.png</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=File:SED.png&amp;diff=5409"/>
		<updated>2011-02-24T13:38:13Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: SED Toolbox logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SED Toolbox logo&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5376</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5376"/>
		<updated>2011-01-26T15:31:46Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:SED.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential &#039;&#039;Design of Experiments (DoE)&#039;&#039;. &lt;br /&gt;
In traditional experimental design, all the design points are selected up front, before performing any (computer or real-life) experiment, and afterwards, no additional design points are selected. This traditional approach is prone to oversampling and/or undersampling, because it is often very difficult to estimate up front the required number of design points.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate an experimental design in a sequential way, i.e. one design point at a time, without having to provide the total number of design points in advance. This is called &#039;&#039;sequential experimental design (SED)&#039;&#039;. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the &#039;&#039;intersite&#039;&#039; (maximin) and &#039;&#039;projected&#039;&#039; (non-collapsing) requirements. &lt;br /&gt;
The &#039;&#039;intersite distance&#039;&#039; is the smallest distance between two design points in the design space; this value should be as high as possible, in order to have the points spread out as evenly as possible. &lt;br /&gt;
In addition to the intersite distance, the projected distance is also important. &lt;br /&gt;
The &#039;&#039;projected distance&#039;&#039; is the smallest distance between all the points after they have been projected on one axes of the design space. This measure is especially important if the relative importance of the design parameters is unknown. E.g., if one of the design parameters does not influence the output behavior, two design points which only differ in this (irrelevant) parameter have the same behavior, and can be seen as the &amp;quot;same&amp;quot; design point. Thus, the projected distance must also be maximized. &lt;br /&gt;
&lt;br /&gt;
All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements. If you prefer to learn by example, you can check out the examples directory in the distribution, which contains several applications and example problems for the toolbox.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints. Additionally, &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; and all other methods besides &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; need the corner points [-1,...,-1] and [1,...,1] to start, and if they violate the constraints they will still be selected. You can later request the design without these corner points using the getAllPointsWithoutInitialDesign() function, so this might not be an issue, but keep it in mind.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5375</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5375"/>
		<updated>2011-01-26T13:16:36Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Quick start guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:SED.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential &#039;&#039;Design of Experiments (DoE)&#039;&#039;. &lt;br /&gt;
In traditional experimental design, all the design points are selected up front, before performing any (computer or real-life) experiment, and afterwards, no additional design points are selected. This traditional approach is prone to oversampling and/or undersampling, because it is often very difficult to estimate up front the required number of design points.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate an experimental design in a sequential way, i.e. one design point at a time, without having to provide the total number of design points in advance. This is called &#039;&#039;sequential experimental design (SED)&#039;&#039;. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the &#039;&#039;intersite&#039;&#039; (maximin) and &#039;&#039;projected&#039;&#039; (non-collapsing) requirements. &lt;br /&gt;
The &#039;&#039;intersite distance&#039;&#039; is the smallest distance between two design points in the design space; this value should be as high as possible, in order to have the points spread out as evenly as possible. &lt;br /&gt;
In addition to the intersite distance, the projected distance is also important. &lt;br /&gt;
The &#039;&#039;projected distance&#039;&#039; is the smallest distance between all the points after they have been projected on one axis of the design space. This measure is especially important if the relative importance of the design parameters is unknown. E.g., if one of the design parameters does not influence the output behavior, two design points which only differ in this (irrelevant) parameter have the same behavior, and can be seen as the &amp;quot;same&amp;quot; design point. Thus, the projected distance must also be maximized. &lt;br /&gt;
&lt;br /&gt;
All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements. If you prefer to learn by example, you can check out the examples directory in the distribution, which contains several applications and example problems for the toolbox.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints. Additionally, &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; and all other methods besides &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; need the corner points [-1,...,-1] and [1,...,1] to start, and if they violate the constraints they will still be selected. You can later request the design without these corner points using the getAllPointsWithoutInitialDesign() function, so this might not be an issue, but keep it in mind.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5372</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5372"/>
		<updated>2011-01-25T12:31:55Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* metrics = seq.getMetrics() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(problemStruct, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generatePoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate an additional 10 points on top of the already generated points. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generateTotalPoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate a total of 10 points. If, for example, 6 points were previously generated, 4 additional points will be selected to get the total up to 10. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
The initial design is a set of samples which is generated in advance, to get the sequential design algorithm started. In the SED Toolbox, these are kept as small as possible (most methods need at least 2 points to get going, so the initial design will typically be 2 points). Note that the initial design &#039;&#039;might not respect the constraints&#039;&#039;. You can manually remove the initial points from the design, or you can request all the points excluding the initial design using the getAllPointsWithoutInitialDesign() function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPoints() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, including the initial design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPointsWithoutInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, excluding the initial design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.plot() ===&lt;br /&gt;
&lt;br /&gt;
Generate a plot of the design generated thus far. Will only work for 1-3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getMetrics() ===&lt;br /&gt;
&lt;br /&gt;
Will calculate some metrics about the quality of the design. Two metrics are calculated and plotted: the intersite distance (minimum distance between points) and the projected distance (minimum distance between points after being projected onto one of the axes). These can be used as a basis of comparison between designs.&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics() ===&lt;br /&gt;
&lt;br /&gt;
Will return the same metrics as described above in a struct. Will not plot or print any data.&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics(points) ===&lt;br /&gt;
&lt;br /&gt;
Calculate the same metrics as above, but then for the points provided as an argument instead of the design generated by the object. This function can be used to compare a design from another source against the design generated by the SED Toolbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = seq.updatePoints(newPoints, newValues) ===&lt;br /&gt;
&lt;br /&gt;
When using LOLA-Voronoi, you need to provide the outputs produced through simulation after every call of generatePoints. This is required because LOLA-Voronoi uses the outputs to determine the optimal distribution of points. When using the other methods, you do not need to call updatePoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = seq.plotLive(true) ===&lt;br /&gt;
&lt;br /&gt;
This will enable live plotting of sample generation for 2D designs. If this is enabled, after each point that is generated, a plot will be built that shows the current design. This nicely demonstrates how points are selected and distributed over the design space.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.save(&#039;file.txt&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Store the entire design in a text file called &#039;&#039;file.txt&#039;&#039;. Can later be loaded again by calling data = load(&#039;file.txt&#039;).&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:License_terms&amp;diff=5369</id>
		<title>SED:License terms</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:License_terms&amp;diff=5369"/>
		<updated>2011-01-24T14:40:30Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:osilogo.jpg|90px|right|Open Source Initiative]]&lt;br /&gt;
[[Image:Agpl3.png|90px|right|AGPLv3]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox is available under a &#039;&#039;&#039;dual license&#039;&#039;&#039; model. &lt;br /&gt;
&lt;br /&gt;
For &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;non-commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; use, the toolbox is available under the [http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3] (AGPLv3), an [http://www.opensource.org/ OSI] approved [http://en.wikipedia.org/wiki/Open_source open source] license.  &lt;br /&gt;
&lt;br /&gt;
For use in a &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; setting, a commercial license must be obtained.&lt;br /&gt;
&lt;br /&gt;
In addition we require that any reference to the SED Toolbox be accompanied by the [[http://sumo.intec.ugent.be/?q=SED#sed_reference|corresponding SED publication]].&lt;br /&gt;
&lt;br /&gt;
== License terms ==&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;non-commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; use, this program is free software; you can redistribute it and/or modify it under the terms of the [http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3] as published by the Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
You should have received a copy of the GNU Affero General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA, or download the license from the following URL: [http://www.fsf.org/licensing/licenses/agpl-3.0.html http://www.fsf.org/licensing/licenses/agpl-3.0.html]&lt;br /&gt;
&lt;br /&gt;
In accordance with Section 7(b) of the GNU Affero General Public License, these Appropriate Legal Notices must retain the display of the &amp;quot;&#039;&#039;&#039;SED Toolbox&#039;&#039;&#039;&amp;quot; text and homepage.  In addition, when mentioning the program in written work, reference must be made to the [[http://sumo.intec.ugent.be/?q=SED#sed_reference|corresponding SED publication]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can be released from these requirements by purchasing a &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; license.&lt;br /&gt;
Buying such a license is in most cases mandatory as soon as you develop commercial activities involving the SED Toolbox software. Commercial activities include: consultancy services or using the SED Toolbox in commercial projects  (standalone, on a server, through a webservice or other remote access technology).&lt;br /&gt;
&lt;br /&gt;
For details about a commercial license please [[contact]] us.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:License_terms&amp;diff=5368</id>
		<title>SED:License terms</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:License_terms&amp;diff=5368"/>
		<updated>2011-01-24T14:39:57Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: New page: Open Source Initiative AGPLv3  The SED Toolbox is available under a &amp;#039;&amp;#039;&amp;#039;dual license&amp;#039;&amp;#039;&amp;#039; model.   For &amp;lt;font color=red&amp;gt;&amp;#039;&amp;#039;&amp;#039;non-c...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:osilogo.jpg|90px|right|Open Source Initiative]]&lt;br /&gt;
[[Image:Agpl3.png|90px|right|AGPLv3]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox is available under a &#039;&#039;&#039;dual license&#039;&#039;&#039; model. &lt;br /&gt;
&lt;br /&gt;
For &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;non-commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; use, the toolbox is available under the [http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3] (AGPLv3), an [http://www.opensource.org/ OSI] approved [http://en.wikipedia.org/wiki/Open_source open source] license.  &lt;br /&gt;
&lt;br /&gt;
For use in a &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; setting, a commercial license must be obtained.&lt;br /&gt;
&lt;br /&gt;
In addition we require that any reference to the blindDACE Toolbox be accompanied by the [[http://sumo.intec.ugent.be/?q=SED#sed_reference|corresponding blindDACE publication]].&lt;br /&gt;
&lt;br /&gt;
== License terms ==&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;non-commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; use, this program is free software; you can redistribute it and/or modify it under the terms of the [http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3] as published by the Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
You should have received a copy of the GNU Affero General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA, or download the license from the following URL: [http://www.fsf.org/licensing/licenses/agpl-3.0.html http://www.fsf.org/licensing/licenses/agpl-3.0.html]&lt;br /&gt;
&lt;br /&gt;
In accordance with Section 7(b) of the GNU Affero General Public License, these Appropriate Legal Notices must retain the display of the &amp;quot;&#039;&#039;&#039;SED Toolbox&#039;&#039;&#039;&amp;quot; text and homepage.  In addition, when mentioning the program in written work, reference must be made to the [[http://sumo.intec.ugent.be/?q=SED#sed_reference|corresponding blindDACE publication]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can be released from these requirements by purchasing a &amp;lt;font color=red&amp;gt;&#039;&#039;&#039;commercial&#039;&#039;&#039;&amp;lt;/font&amp;gt; license.&lt;br /&gt;
Buying such a license is in most cases mandatory as soon as you develop commercial activities involving the blindDACE Toolbox software. Commercial activities include: consultancy services or using the SED Toolbox in commercial projects  (standalone, on a server, through a webservice or other remote access technology).&lt;br /&gt;
&lt;br /&gt;
For details about a commercial license please [[contact]] us.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5367</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5367"/>
		<updated>2011-01-24T14:22:57Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:SED.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential &#039;&#039;Design of Experiments (DoE)&#039;&#039;. &lt;br /&gt;
In traditional experimental design, all the design points are selected up front, before performing any (computer or real-life) experiment, and afterwards, no additional design points are selected. This traditional approach is prone to oversampling and/or undersampling, because it is often very difficult to estimate up front the required number of design points.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate an experimental design in a sequential way, i.e. one design point at a time, without having to provide the total number of design points in advance. This is called &#039;&#039;sequential experimental design (SED)&#039;&#039;. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the &#039;&#039;intersite&#039;&#039; (maximin) and &#039;&#039;projected&#039;&#039; (non-collapsing) requirements. &lt;br /&gt;
The &#039;&#039;intersite distance&#039;&#039; is the smallest distance between two design points in the design space; this value should be as high as possible, in order to have the points spread out as evenly as possible. &lt;br /&gt;
In addition to the intersite distance, the projected distance is also important. &lt;br /&gt;
The &#039;&#039;projected distance&#039;&#039; is the smallest distance between all the points after they have been projected on one axis of the design space. This measure is especially important if the relative importance of the design parameters is unknown. E.g., if one of the design parameters does not influence the output behavior, two design points which only differ in this (irrelevant) parameter have the same behavior, and can be seen as the &amp;quot;same&amp;quot; design point. Thus, the projected distance must also be maximized. &lt;br /&gt;
&lt;br /&gt;
All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints. Additionally, &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; and all other methods besides &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; need the corner points [-1,...,-1] and [1,...,1] to start, and if they violate the constraints they will still be selected. You can later request the design without these corner points using the getAllPointsWithoutInitialDesign() function, so this might not be an issue, but keep it in mind.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5366</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5366"/>
		<updated>2011-01-24T14:22:42Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SequentialDesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(problemStruct, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generatePoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate an additional 10 points on top of the already generated points. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generateTotalPoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate a total of 10 points. If, for example, 6 points were previously generated, 4 additional points will be selected to get the total up to 10. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
The initial design is a set of samples which is generated in advance, to get the sequential design algorithm started. In the SED Toolbox, these are kept as small as possible (most methods need at least 2 points to get going, so the initial design will typically be 2 points). Note that the initial design &#039;&#039;might not respect the constraints&#039;&#039;. You can manually remove the initial points from the design, or you can request all the points excluding the initial design using the getAllPointsWithoutInitialDesign() function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPoints() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, including the initial design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPointsWithoutInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, excluding the initial design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.plot() ===&lt;br /&gt;
&lt;br /&gt;
Generate a plot of the design generated thus far. Will only work for 1-3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics() ===&lt;br /&gt;
&lt;br /&gt;
Will calculate some metrics about the quality of the design. Two metrics are calculated and plotted: the intersite distance (minimum distance between points) and the projected distance (minimum distance between points after being projected onto one of the axes). These can be used as a basis of comparison between designs. Will optionally return the values in a struct.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics(points) ===&lt;br /&gt;
&lt;br /&gt;
Calculate the same metrics as above, but then for the points provided as an argument instead of the design generated by the object. This function can be used to compare a design from another source against the design generated by the SED Toolbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = seq.updatePoints(newPoints, newValues) ===&lt;br /&gt;
&lt;br /&gt;
When using LOLA-Voronoi, you need to provide the outputs produced through simulation after every call of generatePoints. This is required because LOLA-Voronoi uses the outputs to determine the optimal distribution of points. When using the other methods, you do not need to call updatePoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = seq.plotLive(true) ===&lt;br /&gt;
&lt;br /&gt;
This will enable live plotting of sample generation for 2D designs. If this is enabled, after each point that is generated, a plot will be built that shows the current design. This nicely demonstrates how points are selected and distributed over the design space.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.save(&#039;file.txt&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Store the entire design in a text file called &#039;&#039;file.txt&#039;&#039;. Can later be loaded again by calling data = load(&#039;file.txt&#039;).&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5365</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5365"/>
		<updated>2011-01-24T13:51:32Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SequentialDesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(problemStruct, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generatePoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate an additional 10 points on top of the already generated points. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generateTotalPoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate a total of 10 points. If, for example, 6 points were previously generated, 4 additional points will be selected to get the total up to 10. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
The initial design is a set of samples which is generated in advance, to get the sequential design algorithm started. In the SED Toolbox, these are kept as small as possible (most methods need at least 2 points to get going, so the initial design will typically be 2 points). Note that the initial design &#039;&#039;might not respect the constraints&#039;&#039;. You can manually remove the initial points from the design, or you can request all the points excluding the initial design using the getAllPointsWithoutInitialDesign() function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPoints() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, including the initial design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPointsWithoutInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, excluding the initial design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.plot() ===&lt;br /&gt;
&lt;br /&gt;
Generate a plot of the design generated thus far. Will only work for 1-3D.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics() ===&lt;br /&gt;
&lt;br /&gt;
Will calculate some metrics about the quality of the design. Two metrics are calculated and plotted: the intersite distance (minimum distance between points) and the projected distance (minimum distance between points after being projected onto one of the axes). These can be used as a basis of comparison between designs. Will optionally return the values in a struct.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics(points) ===&lt;br /&gt;
&lt;br /&gt;
Calculate the same metrics as above, but then for the points provided as an argument instead of the design generated by the object. This function can be used to compare a design from another source against the design generated by the SED Toolbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = seq.updatePoints(newPoints, newValues) ===&lt;br /&gt;
&lt;br /&gt;
When using LOLA-Voronoi, you need to provide the outputs produced through simulation after every call of generatePoints. This is required because LOLA-Voronoi uses the outputs to determine the optimal distribution of points. When using the other methods, you do not need to call updatePoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.save(&#039;file.txt&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Store the entire design in a text file called &#039;&#039;file.txt&#039;&#039;. Can later be loaded again by calling data = load(&#039;file.txt&#039;).&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5364</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5364"/>
		<updated>2011-01-24T13:51:02Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SequentialDesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(problemStruct, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== seq = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generatePoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate an additional 10 points on top of the already generated points. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [seq, newPoints] = seq.generateTotalPoints(10) ===&lt;br /&gt;
&lt;br /&gt;
Use the sequential design algorithm to generate a total of 10 points. If, for example, 6 points were previously generated, 4 additional points will be selected to get the total up to 10. Will return the new points as the second return parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.getInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
The initial design is a set of samples which is generated in advance, to get the sequential design algorithm started. In the SED Toolbox, these are kept as small as possible (most methods need at least 2 points to get going, so the initial design will typically be 2 points). Note that the initial design &#039;&#039;might not respect the constraints&#039;&#039;. You can manually remove the initial points from the design, or you can request all the points excluding the initial design using the getAllPointsWithoutInitialDesign() function.&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPoints() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, including the initial design.&lt;br /&gt;
&lt;br /&gt;
=== seq.getAllPointsWithoutInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
Get all points generated thus far, excluding the initial design.&lt;br /&gt;
&lt;br /&gt;
=== seq.plot() ===&lt;br /&gt;
&lt;br /&gt;
Generate a plot of the design generated thus far. Will only work for 1-3D.&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics() ===&lt;br /&gt;
&lt;br /&gt;
Will calculate some metrics about the quality of the design. Two metrics are calculated and plotted: the intersite distance (minimum distance between points) and the projected distance (minimum distance between points after being projected onto one of the axes). These can be used as a basis of comparison between designs. Will optionally return the values in a struct.&lt;br /&gt;
&lt;br /&gt;
=== metrics = seq.getMetrics(points) ===&lt;br /&gt;
&lt;br /&gt;
Calculate the same metrics as above, but then for the points provided as an argument instead of the design generated by the object. This function can be used to compare a design from another source against the design generated by the SED Toolbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq = seq.updatePoints(newPoints, newValues) ===&lt;br /&gt;
&lt;br /&gt;
When using LOLA-Voronoi, you need to provide the outputs produced through simulation after every call of generatePoints. This is required because LOLA-Voronoi uses the outputs to determine the optimal distribution of points. When using the other methods, you do not need to call updatePoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seq.save(&#039;file.txt&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Store the entire design in a text file called &#039;&#039;file.txt&#039;&#039;. Can later be loaded again by calling data = load(&#039;file.txt&#039;).&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5363</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5363"/>
		<updated>2011-01-24T13:34:06Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Constraints */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:SED.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential &#039;&#039;Design of Experiments (DoE)&#039;&#039;. &lt;br /&gt;
In traditional experimental design, all the design points are selected up front, before performing any (computer or real-life) experiment, and afterwards, no additional design points are selected. This traditional approach is prone to oversampling and/or undersampling, because it is often very difficult to estimate up front the required number of design points.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate an experimental design in a sequential way, i.e. one design point at a time, without having to provide the total number of design points in advance. This is called &#039;&#039;sequential experimental design (SED)&#039;&#039;. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the &#039;&#039;intersite&#039;&#039; (maximin) and &#039;&#039;projected&#039;&#039; (non-collapsing) requirements. &lt;br /&gt;
The &#039;&#039;intersite distance&#039;&#039; is the smallest distance between two design points in the design space; this value should be as high as possible, in order to have the points spread out as evenly as possible. &lt;br /&gt;
In addition to the intersite distance, the projected distance is also important. &lt;br /&gt;
The &#039;&#039;projected distance&#039;&#039; is the smallest distance between all the points after they have been projected on one axis of the design space. This measure is especially important if the relative importance of the design parameters is unknown. E.g., if one of the design parameters does not influence the output behavior, two design points which only differ in this (irrelevant) parameter have the same behavior, and can be seen as the &amp;quot;same&amp;quot; design point. Thus, the projected distance must also be maximized. &lt;br /&gt;
&lt;br /&gt;
All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints. Additionally, &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; and all other methods besides &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; need the corner points [-1,...,-1] and [1,...,1] to start, and if they violate the constraints they will still be selected. You can later request the design without these corner points using the getAllPointsWithoutInitialDesign() function, so this might not be an issue, but keep it in mind.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
* mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
* optimizer-projected unsupported&lt;br /&gt;
* zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5362</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5362"/>
		<updated>2011-01-24T13:18:21Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* getInitialDesign() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(&#039;problem.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(&#039;problem.xml&#039;, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== getInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
The initial design is a set of samples which is generated in advance, to get the sequential design algorithm started. In the SED Toolbox, these are kept as small as possible (most methods need at least 2 points to get going, so the initial design will typically be 2 points). Note that the initial design &#039;&#039;might not respect the constraints&#039;&#039;. You can manually remove the initial points from the design, or you can request all the points excluding the initial design using the getAllPointsWithoutInitialDesign() function.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5361</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5361"/>
		<updated>2011-01-24T13:17:32Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SequentialDesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(&#039;problem.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the default algorithm (&#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;) to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(&#039;problem.xml&#039;, &#039;methods/method.xml&#039;) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in the problem.xml XML file. Uses the algorithm described in methods/method.xml to generate the design. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;br /&gt;
&lt;br /&gt;
=== getInitialDesign() ===&lt;br /&gt;
&lt;br /&gt;
The initial design is a set of samples which is generated in advance, to get the sequential design algorithm started. In the SED Toolbox, these are typically kept very low (most methods need at least 2 points to get going, so the initial design will be 2 points). Note that the initial design &#039;&#039;might not respect the constraints&#039;&#039;. You can manually remove the initial points from the design, or you can request all the points excluding the initial design using the getAllPointsWithoutInitialDesign() function.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5360</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5360"/>
		<updated>2011-01-24T13:00:27Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SequentialDesign(problemStruct) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. For more information, see the [[SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5359</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5359"/>
		<updated>2011-01-24T13:00:04Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SequentialDesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;br /&gt;
&lt;br /&gt;
=== SequentialDesign(problemStruct) ===&lt;br /&gt;
&lt;br /&gt;
Create a sequentual design object for the specified problem, as described in problemStruct. For more information, see the [SED:SED_toolbox#You_want_to_use_the_more_advanced_features_of_the_SED_Toolbox|main page]].&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5358</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5358"/>
		<updated>2011-01-24T12:58:05Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox. There are three ways to create an instance of this class, as described in the different use cases in the main documentation page. Additionally, several functions are available to make it easy for the user to generate, plot and get data about the design produced by your SequentialDesign instance. In the sections below, we describe each function that is available to the user.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5357</id>
		<title>SED:SED reference</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_reference&amp;diff=5357"/>
		<updated>2011-01-24T12:56:23Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: New page: This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox.  == SequentialDesign ==&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the different functions available in the SequentialDesign class, which is the main entry point for using the SED Toolbox.&lt;br /&gt;
&lt;br /&gt;
== SequentialDesign ==&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5341</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5341"/>
		<updated>2011-01-20T16:36:46Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
* mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
* optimizer-projected unsupported&lt;br /&gt;
* zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5340</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5340"/>
		<updated>2011-01-20T16:36:24Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Quality vs time cost */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs speed ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5339</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5339"/>
		<updated>2011-01-20T16:36:10Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Rules of thumb for selecting the right sequential design method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
the default method &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039; can run into problems when you are using very strict constraints. Because the Monte Carlo points are filtered by the projected distance threshold, it might be possible that no candidates remain that satisfy the constraints. In that case, &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039; can be a good alternative. It produces slightly worse designs but is much more robust in terms of constraints.&lt;br /&gt;
&lt;br /&gt;
=== Quality vs time cost ===&lt;br /&gt;
&lt;br /&gt;
The slowest method available in SED is &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, but this method also generates the best designs (slightly better than &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;). If you have the time, consider using this method instead. It also supports constraints, but might also run into problems with very tight constraints.&lt;br /&gt;
&lt;br /&gt;
If time is of no concern, you can also consider increasing some of the method parameters to further improve the design. For &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;, the &#039;&#039;candidatesPerSample&#039;&#039; option can be increased to improve the quality at the cost of speed. For &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;, both the &#039;&#039;nPop&#039;&#039; and &#039;&#039;maxIterations&#039;&#039; options can be increased.&lt;br /&gt;
&lt;br /&gt;
=== Dimensionality ===&lt;br /&gt;
&lt;br /&gt;
The Monte Carlo methods scale very well with the number of dimensions and points and should work for high-dimensional problems. However, the optimizer methods suffer more from the curse of dimensionality. &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039; should work up to 10D, but will run into memory problems for higher dimensions.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5338</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5338"/>
		<updated>2011-01-20T16:18:17Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Rules of thumb for selecting the right sequential design method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
! Use when...&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;&lt;br /&gt;
| tiodo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5337</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5337"/>
		<updated>2011-01-20T16:17:21Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
! Use when...&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;mc-intersite-projected-threshold&#039;&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;mc-intersite-projected&#039;&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;optimizer-intersite&#039;&#039;&#039;&lt;br /&gt;
| tiodo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5336</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5336"/>
		<updated>2011-01-20T16:16:55Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* You want full control over all the method parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
! Use when...&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;mc-intersite-projected-threshold&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;mc-intersite-projected&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;optimizer-intersite&#039;&#039;&lt;br /&gt;
| tiodo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5335</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5335"/>
		<updated>2011-01-20T16:16:39Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Rules of thumb for selecting the right sequential design method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
! Use when...&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;mc-intersite-projected-threshold&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;mc-intersite-projected&#039;&#039;&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;optimizer-intersite&#039;&#039;&lt;br /&gt;
| tiodo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5334</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5334"/>
		<updated>2011-01-20T16:16:23Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which generates Monte Carlo points only in parts of the design space where the projected distance is above a certain threshold. From the remaining points, the best point in terms of intersite distance is picked as the next design point.&lt;br /&gt;
&lt;br /&gt;
This method is very fast and can be applied to highly dimensional problems and for large designs. It also works well with constraints and input weights. However, there are some cases in which one of the other methods might be a better choice. Below you can find a table with rules of thumb for picking the right method for the right job.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
! Use when...&lt;br /&gt;
|-&lt;br /&gt;
| mc-intersite-projected-threshold&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| mc-intersite-projected&lt;br /&gt;
| todo&lt;br /&gt;
|-&lt;br /&gt;
| optimizer-intersite&lt;br /&gt;
| tiodo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5333</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5333"/>
		<updated>2011-01-20T16:08:46Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
Central to the experimental design problem is the trade-off between the intersite (maximin) and projected (non-collapsing) requirements. The intersite distance is the smallest distance between two points in the design; this value should be as high as possible, in order to have the points spread out as evenly as possible. In addition to the intersite distance, the projected distance is also important. The projected distance is the smallest distance between all the points after they are projected on one of the axes. This is an important property if it is unknown up front how important each design parameters included in the experiment is. If one of the design parameters is irrelevant, two points which differ only in this value can be considered the same point. Thus, the projected distance must also be maximized. All the algorithms in the SED Toolbox were optimized to produce designs that score well on both the intersite and projected distance.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== Rules of thumb for selecting the right sequential design method ==&lt;br /&gt;
&lt;br /&gt;
The default sequential design method for the SED Toolbox is &#039;&#039;mc-intersite-projected-threshold.xml&#039;&#039;. This is an intelligent Monte Carlo method which performs a trade-off.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5332</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5332"/>
		<updated>2011-01-20T16:00:03Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* SED toolbox interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
A reference of all the functions available in the SED Toolbox can be found on [[SED:SED_reference|this page]].&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5331</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5331"/>
		<updated>2011-01-20T15:57:22Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
If you want full control over all the parameters of both the problem specification and the sequential design method, XML files are the only option. By editing the method XML files, you can tweak each method to your own preferences. Even though the options are documented, it might be difficult to understand their effect on the sampling process. Note that the default settings have been chosen based on extensive studies and comparisons, and are in most cases the best choice. If you have any questions or suggestions, please contact the authors at &#039;&#039;Karel dot Crombecq at ua.ac.be&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In addition to the methods provided by the XML files packaged with the SED Toolbox, SED also contains a huge library of components (such as candidate generators, optimizers, metrics) from which the user can compose his own sequential design methods. This feature is undocumented and unsupported, but users are free to experiment with them.&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
TODO:&lt;br /&gt;
- problemen:&lt;br /&gt;
- mc-intersite-projected-th en optimizer-intersite kunnen zonder kandidaten vallen&lt;br /&gt;
- optimizer-projected unsupported&lt;br /&gt;
- zie selectie van punten gebeuren met optimizer-intersite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5330</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5330"/>
		<updated>2011-01-20T14:32:44Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You want full control over all the method parameters ===&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
The SED toolbox provides &lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5329</id>
		<title>SED:SED toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=SED:SED_toolbox&amp;diff=5329"/>
		<updated>2011-01-20T14:23:52Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[[Image:blindDACE.gif|250 px|right|SED Toolbox]]&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox (Sequential Experimental Design) is a powerful Matlab toolbox for the sequential design of experiments. In traditional design of experiments, the all the design points are selected at once, and all the experiments are performed at once without selecting any additional design points. This method is prone to over- or undersampling, because it is often very difficult to predict the required number of design points in advance.&lt;br /&gt;
&lt;br /&gt;
The SED Toolbox solves this problem by providing the user with state-of-the-art algorithms that generate a design of experiments one point at a time, without having to provide the total number of design points in advance. This is called sequential experimental design. The SED Toolbox was designed to be extremely fast and easy to use, yet very powerful. &lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
See: [http://sumo.intec.ugent.be/?q=SED download page]&lt;br /&gt;
&lt;br /&gt;
== Quick start guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Before the toolbox can be used, you have to set it up for use, by browsing to the directory in which the toolbox was unpacked and running the startup command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the toolbox is ready to be used. The SED Toolbox can be used in several ways, based on how much freedom you want in configuring and fine-tuning the parameters of the algorithms. We will now describe the three ways the toolbox can be used, in order of complexity, based on your requirements.&lt;br /&gt;
&lt;br /&gt;
=== You want an ND design of X points ===&lt;br /&gt;
&lt;br /&gt;
In order to quickly generate a good ND design in X points, you can use the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
startup % configure the toolbox&lt;br /&gt;
config.inputs.nInputs = N; % set the number of inputs in the config struct&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
generator = generator.generateTotalPoints(X); % generate a total of X points&lt;br /&gt;
points = generator.getAllPoints(); % return the entire design&lt;br /&gt;
&lt;br /&gt;
% optional:&lt;br /&gt;
generator.plot(); % plot the design&lt;br /&gt;
generator.getMetrics(); % get some metrics about the quality of the design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== You want to use the more advanced features of the SED Toolbox ===&lt;br /&gt;
&lt;br /&gt;
If you want to use some of the more advanced features of the SED Toolbox, such as input ranges and weights and constraints, you have two options. The first one is to use Matlab structs as in the previous example. The second one is to use simple XML files to configure the toolbox. Note that constraints will only work with XML configuration. You can open the &#039;problem.xml&#039; file in the SED directory to get an idea of how a problem configuration looks like. You can edit this file to suit your needs and use it to configure the toolbox using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% generate a sequential design for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;);&lt;br /&gt;
&lt;br /&gt;
% generate a sequential design using the specified method for the problem defined in problem.xml:&lt;br /&gt;
generator = SequentialDesign(&#039;problem.xml&#039;, &#039;methods/mc-intersite-projected-threshold.xml&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you instead prefer to use Matlab structs, you can use the following code to configure the toolbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
config.inputs.nInputs = 2; % this is a 2D example&lt;br /&gt;
config.inputs.minima = [-1 -1]; % define the minimum of each input&lt;br /&gt;
config.inputs.maxima = [3 1]; % define the maximum of each input&lt;br /&gt;
config.inputs.weights = [2 0]; % the first input is twice as important as the second one&lt;br /&gt;
generator = SequentialDesign(config); % set up the sequential design&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SED toolbox interface ==&lt;br /&gt;
&lt;br /&gt;
The SED toolbox provides &lt;br /&gt;
&lt;br /&gt;
--TO BE UPDATED--&lt;br /&gt;
&lt;br /&gt;
two scripts dacefit.m and predictor.m that emulate the behavior of the DACE toolbox ([http://www2.imm.dtu.dk/~hbn/dace/]). Note, that full compatibility between blindDACE and the DACE toolbox is not provided. The scripts merely aim to ease the transition from the DACE toolbox to the blindDACE toolbox.&lt;br /&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
krige = dacefit(samples, values, &#039;regpoly0&#039;, &#039;corrgauss&#039;, theta0, lb, ub )&lt;br /&gt;
y = predictor([1 2], krige)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, a lot less code is used to copy the setup described above. However, less code means less flexibility (e.g., blind kriging and regression kriging are not available using the wrapper scripts). Hence, it is suggested to learn the object oriented interface of SED and use it instead.&lt;br /&gt;
&lt;br /&gt;
== Contribute ==&lt;br /&gt;
&lt;br /&gt;
Suggestions on how to improve the SED toolbox are always welcome. For more information please see the [[Feedback | feedback]] page.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Configuration&amp;diff=5214</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Configuration&amp;diff=5214"/>
		<updated>2010-08-30T10:14:24Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The full behavior of the SUMO Toolbox is configurable through 2 [[FAQ#What_is_XML.3F| XML]] files:&lt;br /&gt;
&lt;br /&gt;
* [[Toolbox configuration]] xml file: all the options related to the toolbox itself, which model types to use, how to score models, what sample selection strategy to use, etc.  All options related to the &#039;modeling&#039;.&lt;br /&gt;
** The [[Config:ToolboxConfiguration|default configuration]] can be used as a starting point to the several components of the toolbox. A tool is available called the [[Config:ToolboxConfigurationGUI|SUMO configuration editor]] that provides a GUI for editing the default configuration. It is advised for new users to use this tool to set up their experiment, as it avoids having to learn to work with the XML structure.&lt;br /&gt;
* [[Simulator configuration]] xml file: defines the interface with the [[simulator]], how many inputs, how many outputs, ranges, name of the executable or dataset, etc.  This file is found inside each project directory in the &amp;lt;code&amp;gt;examples/&amp;lt;/code&amp;gt; subdirectory.  If you want to add your own, please see [[Adding an example]].&lt;br /&gt;
&lt;br /&gt;
The Toolbox configuration file will contain the name of the simulator project to use (specified in the &amp;lt;code&amp;gt;&amp;lt;Simulator&amp;gt;&amp;lt;/code&amp;gt; tag). For information how to run different examples see [[Running#Running_different_examples]].&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Config:SequentialDesign&amp;diff=4920</id>
		<title>Config:SequentialDesign</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Config:SequentialDesign&amp;diff=4920"/>
		<updated>2009-09-28T13:09:41Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This wiki page is based on version 6.2 of the SUMO Toolbox.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;We are well aware that documentation is not always complete and possibly even out of date in some cases. We try to document everything as best we can but much is limited by available time and manpower.  We are are a university research group after all. The most up to date documentation can always be found (if not here) in the default.xml configuration file and, of course, in the source files.  If something is unclear please dont hesitate to [[Reporting problems|ask]].&#039;&#039;&lt;br /&gt;
== SampleSelector ==&lt;br /&gt;
&lt;br /&gt;
=== empty ===&lt;br /&gt;
Dont select any new samples, useful when modeling multiple outputs in paralel&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#EmptySampleSelector|EmptySampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== random ===&lt;br /&gt;
Each sampling iterations new samples are selected randomly&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#RandomSampleSelector|RandomSampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== delaunay ===&lt;br /&gt;
An adaptive sample selection algorithm that does a trade-off between error and density&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#DelaunaySampleSelector|DelaunaySampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- One of all, data --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;sampleSelect&amp;quot; value=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Integer between 2 and 20 --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;nLastModels&amp;quot; value=&amp;quot;2&amp;quot;/&amp;gt;      &lt;br /&gt;
   &amp;lt;!-- One of densityBased, differenceBased, weightedLinear, weightedGeometric --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;scoreFunction&amp;quot; value=&amp;quot;weightedLinear&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;lambda&amp;quot; value=&amp;quot;0.5&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;mu&amp;quot; value=&amp;quot;0.5&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- One of none, max, cap, capmax --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;volumeScaling&amp;quot; value=&amp;quot;max&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;differenceScaling&amp;quot; value=&amp;quot;capmax&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Boolean flag --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;snapToEdge&amp;quot; value=&amp;quot;enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;snapThreshold&amp;quot; value=&amp;quot;.2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== density ===&lt;br /&gt;
A simple density based sample selection algorithm&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#DensitySampleSelector|DensitySampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== error ===&lt;br /&gt;
An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#ErrorSampleSelector|ErrorSampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Integer between 2 and 20 --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;nLastModels&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;      &lt;br /&gt;
   &amp;lt;!-- One of none, max, cap, capmax --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;differenceScaling&amp;quot; value=&amp;quot;none&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Gridsize to evaluate on, one of int or array of dimension length --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;gridSize&amp;quot; value=&amp;quot;50&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Maximum total points to evaluate, distributed over dimensions --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;maxGridSize&amp;quot; value=&amp;quot;100000&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== lola ===&lt;br /&gt;
A highly adaptive sampling algorithm, error and density based&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#LOLASampleSelector|LOLASampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Integer between 2 and 20 --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;neighbourhoodSize&amp;quot; value=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== autoSampling ===&lt;br /&gt;
A wrapper around another sample selector that filters out the auto-sampled dimensions. This is useful if one or more inputs are sampled automatically by the simulator.&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#AutoSamplingSampleSelector|AutoSamplingSampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;!-- The filter function to use. Default = max. --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;function&amp;quot; value=&amp;quot;max&amp;quot;/&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;!-- The sample selector to use for non-auto sampled dimensions. --&amp;gt;&lt;br /&gt;
   &amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#LOLASampleSelector|LOLASampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;neighbourhoodSize&amp;quot; value=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== rationalPoleSupression ===&lt;br /&gt;
A sampling algorithm aimed at supressing poles by sampling them (only for Rational models)&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#OptimizeCriterion|OptimizeCriterion]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- A criterion determines the interesting regions to sample --&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Choose 1 from the following: --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;criterion&amp;quot; value=&amp;quot;rationalPoleSupression&amp;quot;/&amp;gt; &amp;lt;!-- supresses poles in a rational model by sampling at those locations --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!-- This criterion has to be solved to choose new samples, one can choose the optimizer used here --&amp;gt;&lt;br /&gt;
   &amp;lt;[[Config:Optimizer|Optimizer]] type=&amp;quot;[[Optimizer#DirectOptimizer|DirectOptimizer]]&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;maxevals&amp;quot; value=&amp;quot;1000&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;maxits&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:Optimizer|Optimizer]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--&lt;br /&gt;
   when debug is &#039;on&#039; a contour plot of the criterion function is drawn every iteration.&lt;br /&gt;
   Together with the current samples and the chosen samples&lt;br /&gt;
   --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== expectedImprovement ===&lt;br /&gt;
A sampling algorithm aimed at optimization problems (only for Kriging and RBF)&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#OptimizeCriterion|OptimizeCriterion]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- A criterion determines the interesting regions to sample --&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Choose 1 from the following: --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;criterion&amp;quot; value=&amp;quot;gExpectedImprovement&amp;quot;/&amp;gt; &amp;lt;!-- generalized expected improvement --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;criterion_opts&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt; &amp;lt;!-- balanced local-global search --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!-- This criterion has to be solved to choose new samples, one can choose the optimizer used here --&amp;gt;&lt;br /&gt;
   &amp;lt;[[Config:Optimizer|Optimizer]] type=&amp;quot;[[Optimizer#DirectOptimizer|DirectOptimizer]]&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;maxevals&amp;quot; value=&amp;quot;1000&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;maxits&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:Optimizer|Optimizer]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!--&lt;br /&gt;
   when debug is &#039;on&#039; a contour plot of the criterion function is drawn every iteration.&lt;br /&gt;
   Together with the current samples and the chosen samples&lt;br /&gt;
   --&amp;gt;&lt;br /&gt;
   &amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== extremaLOLA ===&lt;br /&gt;
LOLA sample selector supplemented with 1 sample at the minimum and maximum&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#CombinedSampleSelector|CombinedSampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
   &amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#LOLASampleSelector|LOLASampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Integer between 2 and 20 --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;neighbourhoodSize&amp;quot; value=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#OptimizeCriterion|OptimizeCriterion]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;criterion&amp;quot; value=&amp;quot;minmodel&amp;quot;/&amp;gt; &amp;lt;!-- generalized expected improvement --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Use the following optimization method. --&amp;gt;&lt;br /&gt;
      &amp;lt;[[Config:Optimizer|Optimizer]] type=&amp;quot;[[Optimizer#DirectOptimizer|DirectOptimizer]]&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;Option key=&amp;quot;maxevals&amp;quot; value=&amp;quot;1000&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;Option key=&amp;quot;maxits&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/[[Config:Optimizer|Optimizer]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#OptimizeCriterion|OptimizeCriterion]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;criterion&amp;quot; value=&amp;quot;maxmodel&amp;quot;/&amp;gt; &amp;lt;!-- generalized expected improvement --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Use the following optimization method. --&amp;gt;&lt;br /&gt;
      &amp;lt;[[Config:Optimizer|Optimizer]] type=&amp;quot;[[Optimizer#DirectOptimizer|DirectOptimizer]]&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;Option key=&amp;quot;maxevals&amp;quot; value=&amp;quot;1000&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;Option key=&amp;quot;maxits&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/[[Config:Optimizer|Optimizer]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== default ===&lt;br /&gt;
LOLA sample selector combined with error based sample selector (default)&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#CombinedSampleSelector|CombinedSampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
   &amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#LOLASampleSelector|LOLASampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Integer between 2 and 20 --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;neighbourhoodSize&amp;quot; value=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;!-- An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid --&amp;gt;&lt;br /&gt;
   &amp;lt;[[Config:SampleSelector|SampleSelector]] type=&amp;quot;[[SampleSelector#ErrorSampleSelector|ErrorSampleSelector]]&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Integer between 2 and 20 --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;nLastModels&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;      &lt;br /&gt;
      &amp;lt;!-- One of none, max, cap, capmax --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;differenceScaling&amp;quot; value=&amp;quot;none&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Gridsize to evaluate on, one of int or array of dimension length --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;gridSize&amp;quot; value=&amp;quot;50&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Maximum total points to evaluate, distributed over dimensions --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;maxGridSize&amp;quot; value=&amp;quot;100000&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
      &amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/[[Config:SampleSelector|SampleSelector]]&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4919</id>
		<title>Add Sampling Algorithm</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4919"/>
		<updated>2009-09-28T13:09:28Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This wiki page is based on version 6.2 of the SUMO Toolbox.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
You can govern how new samples are selected in a number of ways. The easiest method is by implementing your own sample selector class that derives from the SampleSelector base class in src/matlab/sampleSelectors.  Again, only two methods are needed:&lt;br /&gt;
&lt;br /&gt;
* a constructor for reading in the configuration extracted from the XML file. See other sample selectors for the structure of this configuration.&lt;br /&gt;
* a selectSamples.m file that, given the toolbox state, returns the next batch of samples.&lt;br /&gt;
&lt;br /&gt;
The toolbox state is a Matlab struct with the following fields:&lt;br /&gt;
* samples: the samples that were previously evaluated.&lt;br /&gt;
* values: the output that must be used to select new samples for.&lt;br /&gt;
* lastModels: the best models so far.&lt;br /&gt;
* numNewSamples: the amount of new samples that must be selected. This is based on environmental information such as the modeling time, the number of available computational nodes (cpu cores, grid nodes) and so on.&lt;br /&gt;
&lt;br /&gt;
The SUMO Toolbox contains an extensive framework for sampling, which makes it possible to combine your sampling algorithm in a number of ways with the existing algorithms. Below, a number of options are discussed. Note that these are optional, and it is also possible to write your own sample selector as mentioned above, without paying attention to the options below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CombinedSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The combined sample selector can be used to have multiple different sample selectors sample the same output during one run of the toolbox. This can be useful if there are multiple criteria that you want to use together to select new samples. Different weights can be given to the sample selectors, so that each sample selector gets to sample a number of samples proportional to its weight. Sample code for combining 3 selectors with different weights can be found below.&lt;br /&gt;
&lt;br /&gt;
Note the &amp;lt;MergeCriterion&amp;gt; tag. This tag defines the criterion which is used to combine the selected samples from the different sample selectors in one set of new samples. The ClosenessThreshold merge criterion simply filters out samples that are too close to each other. This avoids the problem that two sample selectors might select new samples really close to each other, thus evaluating two (almost) identical samples. The code from this example can be copied to your own CombinedSampleSelector as is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Allows you combine multiple sample selector algorithms--&amp;gt;&lt;br /&gt;
&amp;lt;SampleSelector id=&amp;quot;combo&amp;quot; type=&amp;quot;CombinedSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;lola&amp;quot; type=&amp;quot;LOLASampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.5&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!-- An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;error&amp;quot; type=&amp;quot;ErrorSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.3&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!--Each sampling iterations new samples are selected randomly--&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;random&amp;quot; type=&amp;quot;RandomSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--Remove samples that are too close to each other--&amp;gt;&lt;br /&gt;
	&amp;lt;MergeCriterion type=&amp;quot;ClosenessThreshold&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/MergeCriterion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= PipelineSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The pipeline sample selector is an extensive sampling framework used by several of the predefined sample selectors. It splits the sampling process up into three separate tasks, which are executed one after each other, to come to a final set of sample locations. In this section, we will briefly discuss the three different steps in the pipeline process. Please look into the existing sample selectors (such as delaunay and error) for example implementations.&lt;br /&gt;
&lt;br /&gt;
== CandidateGenerator ==&lt;br /&gt;
&lt;br /&gt;
The candidate generator is responsible for generating an initial set of candidate new samples. Out if this candidates, eventually, a number of new samples will be picked. Examples of candidate generators are a grid, a set of random points, etc. To implement your own candidate generator, you need only make a function with the following declaration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
function [state, candidates] = MyCandidateGenerator(state)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CandidateRanker ==&lt;br /&gt;
&lt;br /&gt;
All the candidates, generated by the candidate generator, are ranked by one or more candidate rankers. These rankers give a score (or ranking) to all the candidates. To make your own candidate ranker, you have to derive your class from the CandidateRanker base class. A minimal example candidate ranker is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyCandidateRanker &amp;lt; CandidateRanker&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		function this = MyCandidateRanker(config)&lt;br /&gt;
			this = this@CandidateRanker(config);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		function ranking = scoreCandidates(this, candidates, state)&lt;br /&gt;
			ranking = rand(size(candidates,1), 1);&lt;br /&gt;
		end&lt;br /&gt;
        end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MergeCriterion ==&lt;br /&gt;
&lt;br /&gt;
Finally, all the rankings provided by the different candidate rankers, are used to select the final set of new samples out of the candidate samples. The merge criterion has the task of somehow combining the different rankings, and using these rankings to select the most appropriate candidates. In addition to a set of new samples, the merge criterion also has to assign priority values to each sample. These priorities (high value means high priority) are used to determine in which order the samples are evaluated. A minimal example merge criterion is shown below.&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyMergeCriterion &amp;lt; MergeCriterion&lt;br /&gt;
	&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		function [this] = MyMergeCriterion()&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		function [this, newSamples, priorities] = selectSamples(this, candidates, rankings, state)&lt;br /&gt;
&lt;br /&gt;
			newSamples = candidates(1:state.numNewSamples, :);&lt;br /&gt;
			priorities = rand(state.numNewSamples,1);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4918</id>
		<title>Add Sampling Algorithm</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4918"/>
		<updated>2009-09-28T13:09:21Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This wiki page is written for version 6.2 of the SUMO Toolbox.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
You can govern how new samples are selected in a number of ways. The easiest method is by implementing your own sample selector class that derives from the SampleSelector base class in src/matlab/sampleSelectors.  Again, only two methods are needed:&lt;br /&gt;
&lt;br /&gt;
* a constructor for reading in the configuration extracted from the XML file. See other sample selectors for the structure of this configuration.&lt;br /&gt;
* a selectSamples.m file that, given the toolbox state, returns the next batch of samples.&lt;br /&gt;
&lt;br /&gt;
The toolbox state is a Matlab struct with the following fields:&lt;br /&gt;
* samples: the samples that were previously evaluated.&lt;br /&gt;
* values: the output that must be used to select new samples for.&lt;br /&gt;
* lastModels: the best models so far.&lt;br /&gt;
* numNewSamples: the amount of new samples that must be selected. This is based on environmental information such as the modeling time, the number of available computational nodes (cpu cores, grid nodes) and so on.&lt;br /&gt;
&lt;br /&gt;
The SUMO Toolbox contains an extensive framework for sampling, which makes it possible to combine your sampling algorithm in a number of ways with the existing algorithms. Below, a number of options are discussed. Note that these are optional, and it is also possible to write your own sample selector as mentioned above, without paying attention to the options below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CombinedSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The combined sample selector can be used to have multiple different sample selectors sample the same output during one run of the toolbox. This can be useful if there are multiple criteria that you want to use together to select new samples. Different weights can be given to the sample selectors, so that each sample selector gets to sample a number of samples proportional to its weight. Sample code for combining 3 selectors with different weights can be found below.&lt;br /&gt;
&lt;br /&gt;
Note the &amp;lt;MergeCriterion&amp;gt; tag. This tag defines the criterion which is used to combine the selected samples from the different sample selectors in one set of new samples. The ClosenessThreshold merge criterion simply filters out samples that are too close to each other. This avoids the problem that two sample selectors might select new samples really close to each other, thus evaluating two (almost) identical samples. The code from this example can be copied to your own CombinedSampleSelector as is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Allows you combine multiple sample selector algorithms--&amp;gt;&lt;br /&gt;
&amp;lt;SampleSelector id=&amp;quot;combo&amp;quot; type=&amp;quot;CombinedSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;lola&amp;quot; type=&amp;quot;LOLASampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.5&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!-- An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;error&amp;quot; type=&amp;quot;ErrorSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.3&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!--Each sampling iterations new samples are selected randomly--&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;random&amp;quot; type=&amp;quot;RandomSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--Remove samples that are too close to each other--&amp;gt;&lt;br /&gt;
	&amp;lt;MergeCriterion type=&amp;quot;ClosenessThreshold&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/MergeCriterion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= PipelineSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The pipeline sample selector is an extensive sampling framework used by several of the predefined sample selectors. It splits the sampling process up into three separate tasks, which are executed one after each other, to come to a final set of sample locations. In this section, we will briefly discuss the three different steps in the pipeline process. Please look into the existing sample selectors (such as delaunay and error) for example implementations.&lt;br /&gt;
&lt;br /&gt;
== CandidateGenerator ==&lt;br /&gt;
&lt;br /&gt;
The candidate generator is responsible for generating an initial set of candidate new samples. Out if this candidates, eventually, a number of new samples will be picked. Examples of candidate generators are a grid, a set of random points, etc. To implement your own candidate generator, you need only make a function with the following declaration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
function [state, candidates] = MyCandidateGenerator(state)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CandidateRanker ==&lt;br /&gt;
&lt;br /&gt;
All the candidates, generated by the candidate generator, are ranked by one or more candidate rankers. These rankers give a score (or ranking) to all the candidates. To make your own candidate ranker, you have to derive your class from the CandidateRanker base class. A minimal example candidate ranker is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyCandidateRanker &amp;lt; CandidateRanker&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		function this = MyCandidateRanker(config)&lt;br /&gt;
			this = this@CandidateRanker(config);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		function ranking = scoreCandidates(this, candidates, state)&lt;br /&gt;
			ranking = rand(size(candidates,1), 1);&lt;br /&gt;
		end&lt;br /&gt;
        end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MergeCriterion ==&lt;br /&gt;
&lt;br /&gt;
Finally, all the rankings provided by the different candidate rankers, are used to select the final set of new samples out of the candidate samples. The merge criterion has the task of somehow combining the different rankings, and using these rankings to select the most appropriate candidates. In addition to a set of new samples, the merge criterion also has to assign priority values to each sample. These priorities (high value means high priority) are used to determine in which order the samples are evaluated. A minimal example merge criterion is shown below.&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyMergeCriterion &amp;lt; MergeCriterion&lt;br /&gt;
	&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		function [this] = MyMergeCriterion()&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		function [this, newSamples, priorities] = selectSamples(this, candidates, rankings, state)&lt;br /&gt;
&lt;br /&gt;
			newSamples = candidates(1:state.numNewSamples, :);&lt;br /&gt;
			priorities = rand(state.numNewSamples,1);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4917</id>
		<title>Add Sampling Algorithm</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4917"/>
		<updated>2009-09-28T12:57:46Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
You can govern how new samples are selected in a number of ways. The easiest method is by implementing your own sample selector class that derives from the SampleSelector base class in src/matlab/sampleSelectors.  Again, only two methods are needed:&lt;br /&gt;
&lt;br /&gt;
* a constructor for reading in the configuration extracted from the XML file. See other sample selectors for the structure of this configuration.&lt;br /&gt;
* a selectSamples.m file that, given the toolbox state, returns the next batch of samples.&lt;br /&gt;
&lt;br /&gt;
The toolbox state is a Matlab struct with the following fields:&lt;br /&gt;
* samples: the samples that were previously evaluated.&lt;br /&gt;
* values: the output that must be used to select new samples for.&lt;br /&gt;
* lastModels: the best models so far.&lt;br /&gt;
* numNewSamples: the amount of new samples that must be selected. This is based on environmental information such as the modeling time, the number of available computational nodes (cpu cores, grid nodes) and so on.&lt;br /&gt;
&lt;br /&gt;
The SUMO Toolbox contains an extensive framework for sampling, which makes it possible to combine your sampling algorithm in a number of ways with the existing algorithms. Below, a number of options are discussed. Note that these are optional, and it is also possible to write your own sample selector as mentioned above, without paying attention to the options below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CombinedSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The combined sample selector can be used to have multiple different sample selectors sample the same output during one run of the toolbox. This can be useful if there are multiple criteria that you want to use together to select new samples. Different weights can be given to the sample selectors, so that each sample selector gets to sample a number of samples proportional to its weight. Sample code for combining 3 selectors with different weights can be found below.&lt;br /&gt;
&lt;br /&gt;
Note the &amp;lt;MergeCriterion&amp;gt; tag. This tag defines the criterion which is used to combine the selected samples from the different sample selectors in one set of new samples. The ClosenessThreshold merge criterion simply filters out samples that are too close to each other. This avoids the problem that two sample selectors might select new samples really close to each other, thus evaluating two (almost) identical samples. The code from this example can be copied to your own CombinedSampleSelector as is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Allows you combine multiple sample selector algorithms--&amp;gt;&lt;br /&gt;
&amp;lt;SampleSelector id=&amp;quot;combo&amp;quot; type=&amp;quot;CombinedSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;lola&amp;quot; type=&amp;quot;LOLASampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.5&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!-- An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;error&amp;quot; type=&amp;quot;ErrorSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.3&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!--Each sampling iterations new samples are selected randomly--&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;random&amp;quot; type=&amp;quot;RandomSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--Remove samples that are too close to each other--&amp;gt;&lt;br /&gt;
	&amp;lt;MergeCriterion type=&amp;quot;ClosenessThreshold&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/MergeCriterion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= PipelineSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The pipeline sample selector is an extensive sampling framework used by several of the predefined sample selectors. It splits the sampling process up into three separate tasks, which are executed one after each other, to come to a final set of sample locations. In this section, we will briefly discuss the three different steps in the pipeline process. Please look into the existing sample selectors (such as delaunay and error) for example implementations.&lt;br /&gt;
&lt;br /&gt;
== CandidateGenerator ==&lt;br /&gt;
&lt;br /&gt;
The candidate generator is responsible for generating an initial set of candidate new samples. Out if this candidates, eventually, a number of new samples will be picked. Examples of candidate generators are a grid, a set of random points, etc. To implement your own candidate generator, you need only make a function with the following declaration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
function [state, candidates] = MyCandidateGenerator(state)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CandidateRanker ==&lt;br /&gt;
&lt;br /&gt;
All the candidates, generated by the candidate generator, are ranked by one or more candidate rankers. These rankers give a score (or ranking) to all the candidates. To make your own candidate ranker, you have to derive your class from the CandidateRanker base class. A minimal example candidate ranker is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyCandidateRanker &amp;lt; CandidateRanker&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		function this = MyCandidateRanker(config)&lt;br /&gt;
			this = this@CandidateRanker(config);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		function ranking = scoreCandidates(this, candidates, state)&lt;br /&gt;
			ranking = rand(size(candidates,1), 1);&lt;br /&gt;
		end&lt;br /&gt;
        end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MergeCriterion ==&lt;br /&gt;
&lt;br /&gt;
Finally, all the rankings provided by the different candidate rankers, are used to select the final set of new samples out of the candidate samples. The merge criterion has the task of somehow combining the different rankings, and using these rankings to select the most appropriate candidates. In addition to a set of new samples, the merge criterion also has to assign priority values to each sample. These priorities (high value means high priority) are used to determine in which order the samples are evaluated. A minimal example merge criterion is shown below.&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyMergeCriterion &amp;lt; MergeCriterion&lt;br /&gt;
	&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		function [this] = MyMergeCriterion()&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		function [this, newSamples, priorities] = selectSamples(this, candidates, rankings, state)&lt;br /&gt;
&lt;br /&gt;
			newSamples = candidates(1:state.numNewSamples, :);&lt;br /&gt;
			priorities = rand(state.numNewSamples,1);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4916</id>
		<title>Add Sampling Algorithm</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4916"/>
		<updated>2009-09-28T12:52:46Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* PipelineSampleSelector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
You can govern how new samples are selected in a number of ways. The easiest method is by implementing your own sample selector class that derives from the SampleSelector base class in src/matlab/sampleSelectors.  Again, only two methods are needed:&lt;br /&gt;
&lt;br /&gt;
* a constructor for reading in the configuration extracted from the XML file. See other sample selectors for the structure of this configuration.&lt;br /&gt;
* a selectSamples.m file that, given the toolbox state, returns the next batch of samples.&lt;br /&gt;
&lt;br /&gt;
The toolbox state is a Matlab struct with the following fields:&lt;br /&gt;
* samples: the samples that were previously evaluated.&lt;br /&gt;
* values: the output that must be used to select new samples for.&lt;br /&gt;
* lastModels: the best models so far.&lt;br /&gt;
* numNewSamples: the amount of new samples that must be selected. This is based on environmental information such as the modeling time, the number of available computational nodes (cpu cores, grid nodes) and so on.&lt;br /&gt;
&lt;br /&gt;
The SUMO Toolbox contains an extensive framework for sampling, which makes it possible to combine your sampling algorithm in a number of ways with the existing algorithms. Below, a number of options are discussed. Note that these are optional, and it is also possible to write your own sample selector as mentioned above, without paying attention to the options below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CombinedSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The combined sample selector can be used to have multiple different sample selectors sample the same output during one run of the toolbox. This can be useful if there are multiple criteria that you want to use together to select new samples. Different weights can be given to the sample selectors, so that each sample selector gets to sample a number of samples proportional to its weight. Sample code for combining 3 selectors with different weights can be found below.&lt;br /&gt;
&lt;br /&gt;
Note the &amp;lt;MergeCriterion&amp;gt; tag. This tag defines the criterion which is used to combine the selected samples from the different sample selectors in one set of new samples. The ClosenessThreshold merge criterion simply filters out samples that are too close to each other. This avoids the problem that two sample selectors might select new samples really close to each other, thus evaluating two (almost) identical samples. The code from this example can be copied to your own CombinedSampleSelector as is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Allows you combine multiple sample selector algorithms--&amp;gt;&lt;br /&gt;
&amp;lt;SampleSelector id=&amp;quot;combo&amp;quot; type=&amp;quot;CombinedSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;lola&amp;quot; type=&amp;quot;LOLASampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.5&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!-- An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;error&amp;quot; type=&amp;quot;ErrorSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.3&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!--Each sampling iterations new samples are selected randomly--&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;random&amp;quot; type=&amp;quot;RandomSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--Remove samples that are too close to each other--&amp;gt;&lt;br /&gt;
	&amp;lt;MergeCriterion type=&amp;quot;ClosenessThreshold&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/MergeCriterion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= PipelineSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The pipeline sample selector is an extensive sampling framework used by several of the predefined sample selectors. It splits the sampling process up into three separate tasks, which are executed one after each other, to come to a final set of sample locations. In this section, we will briefly discuss the three different steps in the pipeline process. Please look into the existing sample selectors (such as delaunay and error) for example implementations.&lt;br /&gt;
&lt;br /&gt;
== CandidateGenerator ==&lt;br /&gt;
&lt;br /&gt;
The candidate generator is responsible for generating an initial set of candidate new samples. Out if this candidates, eventually, a number of new samples will be picked. Examples of candidate generators are a grid, a set of random points, etc. To implement your own candidate generator, you need only make a function with the following declaration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
function [state, candidates] = MyCandidateGenerator(state)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CandidateRanker ==&lt;br /&gt;
&lt;br /&gt;
All the candidates, generated by the candidate generator, are ranked by one or more candidate rankers. These rankers give a score (or ranking) to all the candidates. To make your own candidate ranker, you have to derive your class from the CandidateRanker base class. A minimal example candidate ranker is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
classdef MyCandidateRanker &amp;lt; CandidateRanker&lt;br /&gt;
	methods (Access = public)&lt;br /&gt;
		&lt;br /&gt;
		function this = MyCandidateRanker(config)&lt;br /&gt;
			this = this@CandidateRanker(config);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		function ranking = scoreCandidates(this, candidates, state)&lt;br /&gt;
			ranking = rand(size(candidates,1), 1);&lt;br /&gt;
		end&lt;br /&gt;
        end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4915</id>
		<title>Add Sampling Algorithm</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Sampling_Algorithm&amp;diff=4915"/>
		<updated>2009-09-28T12:30:48Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
You can govern how new samples are selected in a number of ways. The easiest method is by implementing your own sample selector class that derives from the SampleSelector base class in src/matlab/sampleSelectors.  Again, only two methods are needed:&lt;br /&gt;
&lt;br /&gt;
* a constructor for reading in the configuration extracted from the XML file. See other sample selectors for the structure of this configuration.&lt;br /&gt;
* a selectSamples.m file that, given the toolbox state, returns the next batch of samples.&lt;br /&gt;
&lt;br /&gt;
The toolbox state is a Matlab struct with the following fields:&lt;br /&gt;
* samples: the samples that were previously evaluated.&lt;br /&gt;
* values: the output that must be used to select new samples for.&lt;br /&gt;
* lastModels: the best models so far.&lt;br /&gt;
* numNewSamples: the amount of new samples that must be selected. This is based on environmental information such as the modeling time, the number of available computational nodes (cpu cores, grid nodes) and so on.&lt;br /&gt;
&lt;br /&gt;
The SUMO Toolbox contains an extensive framework for sampling, which makes it possible to combine your sampling algorithm in a number of ways with the existing algorithms. Below, a number of options are discussed. Note that these are optional, and it is also possible to write your own sample selector as mentioned above, without paying attention to the options below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CombinedSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The combined sample selector can be used to have multiple different sample selectors sample the same output during one run of the toolbox. This can be useful if there are multiple criteria that you want to use together to select new samples. Different weights can be given to the sample selectors, so that each sample selector gets to sample a number of samples proportional to its weight. Sample code for combining 3 selectors with different weights can be found below.&lt;br /&gt;
&lt;br /&gt;
Note the &amp;lt;MergeCriterion&amp;gt; tag. This tag defines the criterion which is used to combine the selected samples from the different sample selectors in one set of new samples. The ClosenessThreshold merge criterion simply filters out samples that are too close to each other. This avoids the problem that two sample selectors might select new samples really close to each other, thus evaluating two (almost) identical samples. The code from this example can be copied to your own CombinedSampleSelector as is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Allows you combine multiple sample selector algorithms--&amp;gt;&lt;br /&gt;
&amp;lt;SampleSelector id=&amp;quot;combo&amp;quot; type=&amp;quot;CombinedSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- A highly adaptive sampling algorithm, error and density based --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;lola&amp;quot; type=&amp;quot;LOLASampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.5&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!-- An adaptive sample selection algorithm (error based), driven by the evaluation of your model on a dense grid --&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;error&amp;quot; type=&amp;quot;ErrorSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.3&amp;quot; /&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!--Each sampling iterations new samples are selected randomly--&amp;gt;&lt;br /&gt;
	&amp;lt;SampleSelector id=&amp;quot;random&amp;quot; type=&amp;quot;RandomSampleSelector&amp;quot; combineOutputs=&amp;quot;false&amp;quot; weight=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--Remove samples that are too close to each other--&amp;gt;&lt;br /&gt;
	&amp;lt;MergeCriterion type=&amp;quot;ClosenessThreshold&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;!-- Closeness threshold, Double --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;closenessThreshold&amp;quot; value=&amp;quot;0.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Set a % of the maximumSamples to randomly chosen --&amp;gt;&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;randomPercentage&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;Option key=&amp;quot;debug&amp;quot; value=&amp;quot;off&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/MergeCriterion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= PipelineSampleSelector =&lt;br /&gt;
&lt;br /&gt;
The pipeline sample selector is an extensive sampling framework used by several of the predefined sample selectors. It splits the sampling process up into three separate tasks, which are executed one after each other, to come to a final set of sample locations. In this section, we will briefly discuss the three different steps in the pipeline process. Please look into the existing sample selectors (such as delaunay and error) for example implementations.&lt;br /&gt;
&lt;br /&gt;
== CandidateGenerator ==&lt;br /&gt;
&lt;br /&gt;
The candidate generator is responsible for generating an initial set of candidate new samples. Out if this candidates, eventually, a number of new samples will be picked. Examples of candidate generators are a grid, a set of random points, etc. To implement your own candidate generator, you need only make a function with the following declaration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source xmlns:saxon=&amp;quot;http://icl.com/saxon&amp;quot; lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
function [state, candidates] = MyCandidateGenerator(state)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Toolbox_configuration&amp;diff=4914</id>
		<title>Toolbox configuration</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Toolbox_configuration&amp;diff=4914"/>
		<updated>2009-09-28T12:03:49Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox can be configured by means of an [[FAQ#What is XML?|XML]] file.  &lt;br /&gt;
Examples can be found in the &amp;lt;code&amp;gt;config/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;demo/&amp;lt;/code&amp;gt; subdirectories of the SUMO installation directory.&lt;br /&gt;
The default configuration file is &#039;&#039;&#039;&amp;lt;code&amp;gt;config/default.xml&amp;lt;/code&amp;gt;&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
If you do not know what a tag or XML is please see [[FAQ#What is XML?]] first.&lt;br /&gt;
&lt;br /&gt;
=== Plans and Runs ===&lt;br /&gt;
&lt;br /&gt;
The general structure of the toolbox is as follows:&lt;br /&gt;
&lt;br /&gt;
* The top-level &amp;lt;[[Config:Plan|Plan]]&amp;gt; type defines a surrogate modeling experiment, and an experiment may consist of multiple &amp;lt;[[Config:Plan#Run|Run]]&amp;gt; tags.  &lt;br /&gt;
* Each &amp;lt;[[Config:Plan#Run|Run]]&amp;gt; tag can be configured separately.  &lt;br /&gt;
&lt;br /&gt;
For example, say you want to model some problem from electronics and you have at your disposal 3 algorithms for selecting data points.  Now lets assume you want to compare the different algorithms on your problem and see which one gives you the best model with the least number of data samples.  In this case your &amp;lt;[[Config:Plan|Plan]]&amp;gt; tag would contain 3 &amp;lt;[[Config:Plan#Run|Run]]&amp;gt; tags and each &amp;lt;[[Config:Plan#Run|Run]]&amp;gt; tag would contain a different &amp;lt;[[SampleSelector|SampleSelector]]&amp;gt; tag.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Plan&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;Run name=&amp;quot;gradient-run&amp;quot; repeat=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;SampleSelector&amp;gt;gradient&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
   &amp;lt;/Run&amp;gt;&lt;br /&gt;
  &amp;lt;Run name=&amp;quot;grid-run&amp;quot; repeat=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;SampleSelector&amp;gt;grid&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
   &amp;lt;/Run&amp;gt;&lt;br /&gt;
   &amp;lt;Run name=&amp;quot;random-run&amp;quot; repeat=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;SampleSelector&amp;gt;random&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
   &amp;lt;/Run&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
&amp;lt;/Plan&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, this concept of a plan and multiple runs allows you to setup different configurations beforehand and try them all in one go.  &lt;br /&gt;
&lt;br /&gt;
As you can see it is also possible to specify a &#039;&amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt;&#039; attribute.  Setting it to 5, for example, will ensure that that particular run is repeated 5 times.  This is usually a good idea if there is a lot of randomness in the algorithms (as is usually the case).  &lt;br /&gt;
&lt;br /&gt;
Remember though to set the &#039;&amp;lt;code&amp;gt;[[Random_state|seedRandomState]]&amp;lt;/code&amp;gt;&#039; option in the [[Config:SUMO| &amp;lt;SUMO&amp;gt;]] tag to &#039;&amp;lt;code&amp;gt;random&amp;lt;/code&amp;gt;&#039;, or otherwise you will still get deterministic results:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Option key=&amp;quot;seedRandomState&amp;quot; value=&amp;quot;random&amp;quot;/&amp;gt;	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Declarations and Definitions ===&lt;br /&gt;
&lt;br /&gt;
Each component in the toolbox has its own configuration section.  Inside the &amp;lt;[[Config:Plan#Run|Run]]&amp;gt; tag you &#039;&#039;declare&#039;&#039; what components you would like to use. This declaration refers to the &#039;&#039;definition&#039;&#039; of each component, further down the file.  So when you see line like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;SampleSelector&amp;gt;lola&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means we want to use the &#039;&amp;lt;code&amp;gt;lola&amp;lt;/code&amp;gt;&#039; sample selection algorithm, the word &#039;&amp;lt;code&amp;gt;lola&amp;lt;/code&amp;gt;&#039; is a unique identifier that refers to the &amp;lt;[[SampleSelector|SampleSelector]]&amp;gt; tag that has &#039;&amp;lt;code&amp;gt;[[SampleSelector#GradientSampleSelector|lola]]&amp;lt;/code&amp;gt;&#039; as its &amp;quot;id&amp;quot; attribute.  In this case your configuration file would have the following structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Plan&amp;gt;&lt;br /&gt;
   &amp;lt;Run&amp;gt;&lt;br /&gt;
     &amp;lt;!-- Here we declare what components to use, for example, the gradient sample selection algorithm --&amp;gt;&lt;br /&gt;
     &amp;lt;SampleSelector&amp;gt;lola&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
   &amp;lt;/Run&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
&amp;lt;Plan&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The definition of the sample selector --&amp;gt;&lt;br /&gt;
&amp;lt;SampleSelector id=&amp;quot;lola&amp;quot;&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- all the options for the gradient sample selection algorithm --&amp;gt;&lt;br /&gt;
&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you would like to use a different algorithm (e.g., &#039;&amp;lt;code&amp;gt;[[SampleSelector#ErrorSampleSelector|error]]&amp;lt;/code&amp;gt;&#039; for the Error sample selector), you simply fill in a different id in the the &amp;lt;[[SampleSelector|SampleSelector]]&amp;gt; tag in the &amp;lt;[[Config:Plan#Run|Run]]&amp;gt; tag:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;SampleSelector&amp;gt;error&amp;lt;/SampleSelector&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You just have to make sure there is a matching definition lower down the file for the id you have filled in.&lt;br /&gt;
&lt;br /&gt;
All the other components ([[Config:AdaptiveModelBuilder|AdaptiveModelBuilder]], [[Config:SampleEvaluator|SampleEvaluator]], ...) work in exactly the same way.&lt;br /&gt;
&lt;br /&gt;
== Running a configuration ==&lt;br /&gt;
&lt;br /&gt;
See the [[Running]] page for how to run the toolbox with a different example or with a your own configuration file.&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;We are well aware that documentation is not always complete and possibly even out of date in some cases. We try to document everything as best we can but much is limited by available time and manpower.  We are are a university research group after all. The most up to date documentation can always be found (if not here) in the default.xml configuration file and, of course, in the source files.  If something is unclear please dont hesitate to [[Reporting problems|ask]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following components can be configured separately:&lt;br /&gt;
&lt;br /&gt;
* [[Config:Plan|Plan]]&lt;br /&gt;
* [[Outputs]]&lt;br /&gt;
** [[Measures]]&lt;br /&gt;
* [[Config:Plan|Inputs]]&lt;br /&gt;
* [[Config:Plan|Simulator tag]]&lt;br /&gt;
* [[Config:ContextConfig|ContextConfig]]&lt;br /&gt;
* [[Config:SUMO|SUMO]]&lt;br /&gt;
** [[Config:InitialDesign|Initial Designs]]&lt;br /&gt;
* [[Config:SampleEvaluator|Sample Evaluators]]&lt;br /&gt;
* [[Config:SampleSelector|Sample Selectors]]&lt;br /&gt;
* [[Config:AdaptiveModelBuilder|Adaptive Model Builders]]&lt;br /&gt;
&lt;br /&gt;
== General guidelines ==&lt;br /&gt;
&lt;br /&gt;
Some general guidelines on how to configure the toolbox for different situations can be found on [[General guidelines|this page]].&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=General_guidelines&amp;diff=4613</id>
		<title>General guidelines</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=General_guidelines&amp;diff=4613"/>
		<updated>2009-02-09T11:52:15Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;[[Config:ToolboxConfiguration|default.xml]]&amp;lt;/code&amp;gt; file can be used as a starting point for default behavior for the SUMO Toolbox. If you are a new user, you should initially leave most options at their default values. The default settings were chosen since they produce good results on average.&lt;br /&gt;
&lt;br /&gt;
However, usually the optimal choice of components depends on the problem itself, so that the default settings aren&#039;t necessarily the best. This page will give the user general guidelines to decide which component to use for each situation they may encounter. The user is of course free to ignore these rules and experiment with other settings.&lt;br /&gt;
&lt;br /&gt;
Note this list is very brief and incomplete, feel free to [[Contact]] us if you have any further questions.&lt;br /&gt;
&lt;br /&gt;
== Measures ==&lt;br /&gt;
&lt;br /&gt;
The default [[Measures| Measure]] is [[Measures#CrossValidation| CrossValidation]]. Even though this is a very good, accurate, overall measure, there are some considerations to make in the following cases:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Expensive modelers (ann):&#039;&#039;&#039; If it is relatively expensive to train a model (for example, with neural networks), CrossValidation is also very slow, because it has to train a model for each fold (which is 5 by default). If modeling takes too long, you might want to use a faster alternative, such as [[Measures#ValidationSet|ValidationSet]].&lt;br /&gt;
* &#039;&#039;&#039;ErrorSampleSelector:&#039;&#039;&#039; CrossValidation might give a biased result when combined with the [[SampleSelector#ErrorSampleSelector|ErrorSampleSelector]]. This is because the ErrorSampleSelector tends to cluster samples around one point, which will result in very accurate surrogate models for all the points in this cluster (and thus good results with CrossValidation ). So when using CrossValidation and ErrorSampleSelector together, keep in mind that the real accuracy might be slightly lower than the estimated one.&lt;br /&gt;
* &#039;&#039;&#039;Rational modeler:&#039;&#039;&#039; When using Rational modeler, you might want to manually add a [[Measures#MinMax| MinMax]] measure (if you got a rough estimate of the minimum and maximum values for your outputs) and use it together with CrossValidation. By adding the MinMax measure, you eliminate models which have poles in the design space, because these poles always break the minimum and maximum bounds. This usually results in better models and quicker convergence.&lt;br /&gt;
&lt;br /&gt;
== Sample Selectors ==&lt;br /&gt;
&lt;br /&gt;
The default [[SampleSelector|SampleSelector]] is the [[SampleSelector#LOLASampleSelector|LOLASampleSelector]] combined with the [[SampleSelector#ErrorSampleSelector|ErrorSampleSelector]], with a weight of 0.8 for LOLA and 0.2 for error. This is a very robust sample selector, capable of dealing with most situations. There are, however, some cases in which it is advisable to choose a different one:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Large-scale problems (1000+ samples):&#039;&#039;&#039; The GradientSampleSelector&#039;s time complexity is O(n²) to the number of samples n, so for large-scale experiments in which many samples are taken, the GradientSampleSelector becomes quite slow. Depending on the time it takes to perform one simulation, this may or may not be a problem. If it takes a long time to perform one simulation, the cost for selecting new samples with the GradientSampleSelector might still be negligible.&lt;br /&gt;
* &#039;&#039;&#039;Rational modeler:&#039;&#039;&#039; Benchmarks have shown that the gain of using the LOLASampleSelector over the [[SampleSelector#ErrorSampleSelector|ErrorSampleSelector]] when using global approximation methods (mainly rational/polynomial) is pretty much zero. It is therefore advisable to use the (much faster) ErrorSampleSelector when using the Rational modeler. This can be done by changing the weights in default.xml to 1.0 for error and 0.0 for LOLA.&lt;br /&gt;
&lt;br /&gt;
When using the ErrorSampleSelector instead of the LOLASampleSelector, it is always a good idea to combine it with the [[SampleSelector#DensitySampleSelector|DensitySampleSelector]], to combat stability/robustness issues the ErrorSampleSelector often causes. It is a good idea to select about 60% of the samples with the ErrorSampleSelector, and 40% with the DensitySampleSelector. This will ensure that at least the entire design space is covered to a certain degree. This additional sample selector is NOT necessary when using the LOLASampleSelector.&lt;br /&gt;
&lt;br /&gt;
== Adaptive Model Builders ==&lt;br /&gt;
&lt;br /&gt;
The question that always gets asked is &#039;&#039;Which model type should I use for my data?&#039;&#039;  Unfortunately there is no straightforward since it all depends on your problem: how many dimensions, how many points, is your function rugged, smooth, or both, is there noise, etc, etc.  Based on this knowledge it is possible to say which model types are more likely to do well but it remains a heuristic.  Best is to try a few and see what happens, or use the &#039;&#039;heterogenetic&#039;&#039; model builder to try multiple model types in parallel and automatically try to determine the best type.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=InitialDesign&amp;diff=4506</id>
		<title>InitialDesign</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=InitialDesign&amp;diff=4506"/>
		<updated>2009-01-16T09:55:03Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Latin Hypercube Design ==&lt;br /&gt;
Choose an initial sampleset in such a way that they form a latin hypercube.&lt;br /&gt;
{{OptionsHeader}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = points&lt;br /&gt;
|values      = positive integer&lt;br /&gt;
|default     = 30&lt;br /&gt;
|description = The amount of samples that will be taken.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Dataset Design ==&lt;br /&gt;
Reads an initial design from a dataset.  Each row should contain one sample.  The inputvalues come first.  The outputvalues, if there are any, come second.&lt;br /&gt;
&lt;br /&gt;
If only input values are supplied (hasOutputs=false), each value has to be in the fixed [-1,1] range (model space). The samples are later automatically transformed to their original range before they are passed to the sample evaluator. This is done to easily support different ranges for variables without having to change the initial dataset design.&lt;br /&gt;
&lt;br /&gt;
If, however, output values are also provided (hasOutputs=true), the samples are instantly fed to the toolbox for modelling, since they don&#039;t have to be evaluated anymore. Because of this property, the inputs have to be in the original range defined in the simulator xml file, instead of the fixed [-1,1] range.&lt;br /&gt;
&lt;br /&gt;
{{OptionsHeader}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = filename&lt;br /&gt;
|values      = path&lt;br /&gt;
|default     = none&lt;br /&gt;
|description = Path of the file that contains the dataset.  &#039;&#039;&#039;This option is required!&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = hasOutputs&lt;br /&gt;
|values      = boolean&lt;br /&gt;
|default     = true&lt;br /&gt;
|description = Does the datasetfile contain evaluated samples or just sample locations?&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Combined Design ==&lt;br /&gt;
&lt;br /&gt;
Combines two other initial designs.  &lt;br /&gt;
&lt;br /&gt;
{{NodesHeader}}&lt;br /&gt;
{{Node&lt;br /&gt;
|name        = InitialDesign&lt;br /&gt;
|required    = one or more&lt;br /&gt;
|description = Configuration for each InitialDesign Method.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Factorial Design ==&lt;br /&gt;
Choose an initial sampleset in such a way that they form an uniform grid&lt;br /&gt;
{{OptionsHeader}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = levels&lt;br /&gt;
|values      = vector of positive integers &amp;gt; 1&lt;br /&gt;
|default     = [5,...,5]&lt;br /&gt;
|description = vector specifying for each dimension the number of samples. Sampling level1*level2*...*leveln points. If a scalar s is specified, The toolbox assumes [s s ... s].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Initial_Design&amp;diff=4505</id>
		<title>Add Initial Design</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Initial_Design&amp;diff=4505"/>
		<updated>2009-01-16T09:52:01Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
The available initial designs can be found in the folder src/matlab/initialDesigns.  Adding a new type means creating a new class in this folder analogous to the existing ones (subclass InitialDesign).  Two methods are required:&lt;br /&gt;
&lt;br /&gt;
1. A constructor for reading in the configuration extracted from the XML file. Don&#039;t forget to call the constructor of the base class using the following syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
this = this@InitialDesign(config);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. A generate method that returns the following values:&lt;br /&gt;
&lt;br /&gt;
* A set of initial samples (input values only) to be evaluated. To easily support different ranges for variables, each sample has to be in a fixed [-1,1] range in each dimension. The samples are later automatically transformed to their original range before they are passed to the sample evaluator.&lt;br /&gt;
&lt;br /&gt;
* An optional set of evaluated samples (inputs and outputs), which may come from any source (for example: a dataset). These samples are instantly fed to the toolbox for modelling, because they don&#039;t have to be evaluated anymore. Because of this property, they have to be in the original range defined in the simulator xml file, instead of the fixed [-1,1] range.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Initial_Design&amp;diff=4504</id>
		<title>Add Initial Design</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Initial_Design&amp;diff=4504"/>
		<updated>2009-01-16T09:51:52Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
The available initial designs can be found in the folder src/matlab/initialDesigns.  Adding a new type means creating a new class in this folder analogous to the existing ones (subclass InitialDesign).  Two methods are required:&lt;br /&gt;
&lt;br /&gt;
1. a constructor for reading in the configuration extracted from the XML file. Don&#039;t forget to call the constructor of the base class using the following syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
this = this@InitialDesign(config);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. a generate method that returns the following values:&lt;br /&gt;
&lt;br /&gt;
* A set of initial samples (input values only) to be evaluated. To easily support different ranges for variables, each sample has to be in a fixed [-1,1] range in each dimension. The samples are later automatically transformed to their original range before they are passed to the sample evaluator.&lt;br /&gt;
&lt;br /&gt;
* An optional set of evaluated samples (inputs and outputs), which may come from any source (for example: a dataset). These samples are instantly fed to the toolbox for modelling, because they don&#039;t have to be evaluated anymore. Because of this property, they have to be in the original range defined in the simulator xml file, instead of the fixed [-1,1] range.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Add_Initial_Design&amp;diff=4503</id>
		<title>Add Initial Design</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Add_Initial_Design&amp;diff=4503"/>
		<updated>2009-01-16T09:49:50Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The toolbox comes with a number of sample selection algorithms, both for experimental design (initial samples) and sequential design.  Of course you are free to add your own.&lt;br /&gt;
&lt;br /&gt;
The available initial designs can be found in the folder src/matlab/initialDesigns.  Adding a new type means creating a new class in this folder analogous to the existing ones (subclass InitialDesign).  Two methods are required:&lt;br /&gt;
&lt;br /&gt;
* a constructor for reading in the configuration extracted from the XML file. Don&#039;t forget to call the constructor of the base class using the following syntax:&lt;br /&gt;
&lt;br /&gt;
[code]&lt;br /&gt;
this = this@InitialDesign(config);&lt;br /&gt;
[/code]&lt;br /&gt;
&lt;br /&gt;
* a generate.m file that returns two matrices:&lt;br /&gt;
&lt;br /&gt;
** A set of initial samples (input values only) to be evaluated. To easily support different ranges for variables, each sample has to be in a fixed [-1,1] range in each dimension. The samples are later automatically transformed to their original range before they are passed to the sample evaluator.&lt;br /&gt;
&lt;br /&gt;
** An optional set of evaluated samples (inputs and outputs), which may come from any source (for example: a dataset). These samples are instantly fed to the toolbox for modelling, because they don&#039;t have to be evaluated anymore. Because of this property, they have to be in the original range defined in the simulator xml file, instead of the fixed [-1,1] range.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Known_bugs&amp;diff=4489</id>
		<title>Known bugs</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Known_bugs&amp;diff=4489"/>
		<updated>2008-11-04T14:27:17Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Version 6.0.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While we always try to test each release as much as we can, inevitably some bugs will always slip through unnoticed.  This page only shows the most important bugs that have surfaced after the release was made.&lt;br /&gt;
&lt;br /&gt;
To stay up to date with the latest news and releases, we also recommend subscribing to our newsletter [http://www.sumo.intec.ugent.be here].  Traffic will be kept to a minimum and you can unsubscribe at any time.  &lt;br /&gt;
&lt;br /&gt;
If you happen to encounter something not listed here, please [[reporting problems|report it]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 6.0.1 ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| getExpression does not work for rational models with complex outputs. It produces output different from evaluate, and evaluate is the one producing the correct output.&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in next version&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Please wait for release&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.0 ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| You get an error like &amp;quot;No appropriate method or public field isProjectMode for class ibbt.sumo.config.ContextConfig&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in 6.0.1&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Please upgrade to 6.0.1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| The Kriging models do not work with combineOutputs=true in some cases&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in SVN&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Please upgrade to 6.0.1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| The automatic model type selection algorithm (heterogeneous evolution) does not work with Matlab 2008a and later&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in SVN&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Use an older Matlab version (e.g., 2007a)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 5.0 ==&lt;br /&gt;
&lt;br /&gt;
We have found some important bugs in 5.0 that affect various parts of the model generation process. This could mean (in some cases) that the final models you get are not really as good as they could be.  This has been fixed in 6.0 and we are working hard to release it as soon as possible.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| Consecutive runs on the same dataset are not independent (can cause dataset depleted exceptions)&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in SVN.&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Wait for next release.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| Duplicate samples and samples with NaN/Inf values are not filtered properly (for example you get Matrix dimension mismatch errors).&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in SVN.&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Wait for next release or simply disable the relevant code. Simulators that may return invalid values or duplicate samples should be avoided until then.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Bug&#039;&#039;&#039;&lt;br /&gt;
| You get the following error: &amp;quot;Failed to create object of type ANNGeneticInterface, error is &amp;quot;Undefined variable &amp;quot;logger&amp;quot; or class &amp;quot;logger.severe&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Status&#039;&#039;&#039; &lt;br /&gt;
| Fixed in SVN.&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Workaround&#039;&#039;&#039; &lt;br /&gt;
| Simply remove the offending line or set complex handling to split or modulus (you are trying to model complex data with ANNs).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Interfacing_with_the_toolbox&amp;diff=4407</id>
		<title>Interfacing with the toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Interfacing_with_the_toolbox&amp;diff=4407"/>
		<updated>2008-07-25T13:13:08Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Gridded datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For how to add an example to the toolbox see the [[Adding an example]] page.&lt;br /&gt;
&lt;br /&gt;
== IMPORTANT ==&lt;br /&gt;
&lt;br /&gt;
* The SUMO Toolbox works on any &#039;&#039;&#039;input domain&#039;&#039;&#039; (= design space = input parameter ranges) specified in the [[simulator configuration]] file by a &#039;&amp;lt;code&amp;gt;minimum&amp;lt;/code&amp;gt;&#039; and &#039;&amp;lt;code&amp;gt;maximum&amp;lt;/code&amp;gt;&#039; attribute, for each input parameter.&lt;br /&gt;
** If a &#039;&amp;lt;code&amp;gt;minimum&amp;lt;/code&amp;gt;&#039; is not specified, the default value of &#039;&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&#039; is assumed. &lt;br /&gt;
** If a &#039;&amp;lt;code&amp;gt;maximum&amp;lt;/code&amp;gt;&#039; is not specified, the default value of &#039;&amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt;&#039; is assumed. &lt;br /&gt;
** Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;InputParameters&amp;gt;&lt;br /&gt;
		&amp;lt;Parameter name=&amp;quot;a&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;47.0&amp;quot; maximum=&amp;quot;50.0&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;Parameter name=&amp;quot;b&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;-20.0&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/InputParameters&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Be aware that all input values that are not in the specified input domain are trimmed, and thus not used in the modeling process.&lt;br /&gt;
&lt;br /&gt;
Also remember that:&lt;br /&gt;
* &#039;&#039;&#039;Complex output&#039;&#039;&#039; should always be returned as &#039;&#039;&#039;2 real values&#039;&#039;&#039; (i.e., real part and imaginary part separately).&lt;br /&gt;
&lt;br /&gt;
Make sure your data source complies with these requirements. This is your responsibility.&lt;br /&gt;
&lt;br /&gt;
== Passing data directly ==&lt;br /&gt;
&lt;br /&gt;
As mentioned on the [[Running]] page you pass your (input and corresponding output) data directly to the toolbox. &lt;br /&gt;
Remember though that the dimensions of your data must still match the information in the [[Toolbox configuration|toolbox configuration file]] used.&lt;br /&gt;
&lt;br /&gt;
== Native simulator ==&lt;br /&gt;
&lt;br /&gt;
If your simulator is a native code or script it is expected to produce one &#039;&#039;&#039;output&#039;&#039;&#039; value per line.  So every output should be on a new line, with complex outputs using two lines. &lt;br /&gt;
&lt;br /&gt;
There are 2 &#039;&#039;&#039;input&#039;&#039;&#039; methods supported for native simulators: &#039;&#039;&#039;batch mode&#039;&#039;&#039; and &#039;&#039;&#039;command line mode&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;command line mode&#039;&#039;&#039; (= the default option), the inputs are given to the simulator as command line arguments. A call to a simulator in command line mode looks like (for a problem with 3 input parameters):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; ./someSimulationCode  0.5  0.6  0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code should then produce one value per output per line.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;batch mode&#039;&#039;&#039;, multiple samples can be evaluated in batches. The simulation code is called with no command line arguments (except for optional options, see below). The inputs for a batch are instead given to the simulator on standard input (&amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;). First, the size of the batch (the number of samples) is placed on &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. Then, one line is written for each sample. this means that in total, &amp;lt;code&amp;gt;1 + (batchSize * inputDimension)&amp;lt;/code&amp;gt; numbers are written to &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. An example of the format looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
3&lt;br /&gt;
0.5  0.6  0.5&lt;br /&gt;
0.2  0.7  0.3&lt;br /&gt;
0.2  0.6  0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The executable &#039;&amp;lt;code&amp;gt;someSimulationCode&amp;lt;/code&amp;gt;&#039; must be in your path (easiest is just to place it in the &amp;lt;code&amp;gt;&amp;lt;SUMO-Toolbox-installation-dir&amp;gt;/bin/c&amp;lt;/code&amp;gt; or the absolute path to the executable must be specified in the [[simulator configuration]] xml file.&lt;br /&gt;
&lt;br /&gt;
If your xml file contains options, these will be passed to the simulator as command line arguments (both in single and batch mode).  For example:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; ./someSimulationCode  0.5  0.6  0.5  option1=value1  option2=value2  etc..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Matlab simulator ==&lt;br /&gt;
&lt;br /&gt;
=== Matlab function ===&lt;br /&gt;
&lt;br /&gt;
If your simulator is a Matlab file you just have to provide the following function to your code (for the same 3D example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = mySimulationCode(input1, input2 ,input3)&lt;br /&gt;
   ...&lt;br /&gt;
   % do the calculation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you just need to make sure the Matlab file is in the toolbox path (e.g., you can place it in &amp;lt;code&amp;gt;src/matlab/examples&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Options (if present) are passed to the simulator as an extra cell array parameter: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = mySimulationCode(input1, input2 ,input3, options)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&#039; is a cell array of strings of the form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
options : {&#039;option1&#039;,&#039;value1&#039;,&#039;option2&#039;,&#039;value2&#039;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: since Matlab is single threaded it is impossible to execute the simulator script while modeling (and vica versa).  Thus the two are done sequentially which can lead to significant slowdowns if your simulator takes a long time to execute.  In that case it is best to use a native executable or script.  This will change in future versions when we start using the parallel/distributed computing toolbox.&lt;br /&gt;
&lt;br /&gt;
== Java simulator ==&lt;br /&gt;
&lt;br /&gt;
You can also implement your simulator as a [http://en.wikipedia.org/wiki/Java_%28programming_language%29 Java] class.  All you need to do is write a class that implements the &#039;&#039;Simulator&#039;&#039; interface.  And make sure the class file is in the Matlab Java path.&lt;br /&gt;
&lt;br /&gt;
Options are passed as a java Properties object.&lt;br /&gt;
&lt;br /&gt;
== Scattered datasets ==&lt;br /&gt;
&lt;br /&gt;
Each row should contain exactly one data point, with one column per dimension.&lt;br /&gt;
&lt;br /&gt;
== Gridded datasets ==&lt;br /&gt;
Gridded datasets assume that the data is spread uniformly over a grid. By making this assumption, it becomes pointless to store the sample locations as in a scattered dataset: only the outputs are stored. In order to know the grid size, you do need to specify how many samples are taken in each dimension in the simulator file. For example, a gridSize of 20,40,50 will result in a grid of 20x40x50 or a total of 40000 samples for which the outputs have to be saved on disk.&lt;br /&gt;
&lt;br /&gt;
Because the input values are not stored, the dataset must adhere to a strict order in which the points are specified: the points must be specified in lexicographic order. For example, if you want to define a 3-dimensional dataset with grid size 2x3x2 on the [-1,1] domain, you must provide the outputs for the samples in the following order:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
[-1, -1, -1]&lt;br /&gt;
[-1, -1,  1]&lt;br /&gt;
[-1,  0, -1]&lt;br /&gt;
[-1,  0,  1]&lt;br /&gt;
[-1,  1, -1]&lt;br /&gt;
[-1,  1,  1]&lt;br /&gt;
[ 1, -1, -1]&lt;br /&gt;
[ 1, -1,  1]&lt;br /&gt;
[ 1,  0, -1]&lt;br /&gt;
[ 1,  0,  1]&lt;br /&gt;
[ 1,  1, -1]&lt;br /&gt;
[ 1,  1,  1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Interfacing_with_the_toolbox&amp;diff=4406</id>
		<title>Interfacing with the toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Interfacing_with_the_toolbox&amp;diff=4406"/>
		<updated>2008-07-25T13:12:27Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Gridded datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For how to add an example to the toolbox see the [[Adding an example]] page.&lt;br /&gt;
&lt;br /&gt;
== IMPORTANT ==&lt;br /&gt;
&lt;br /&gt;
* The SUMO Toolbox works on any &#039;&#039;&#039;input domain&#039;&#039;&#039; (= design space = input parameter ranges) specified in the [[simulator configuration]] file by a &#039;&amp;lt;code&amp;gt;minimum&amp;lt;/code&amp;gt;&#039; and &#039;&amp;lt;code&amp;gt;maximum&amp;lt;/code&amp;gt;&#039; attribute, for each input parameter.&lt;br /&gt;
** If a &#039;&amp;lt;code&amp;gt;minimum&amp;lt;/code&amp;gt;&#039; is not specified, the default value of &#039;&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&#039; is assumed. &lt;br /&gt;
** If a &#039;&amp;lt;code&amp;gt;maximum&amp;lt;/code&amp;gt;&#039; is not specified, the default value of &#039;&amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt;&#039; is assumed. &lt;br /&gt;
** Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;InputParameters&amp;gt;&lt;br /&gt;
		&amp;lt;Parameter name=&amp;quot;a&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;47.0&amp;quot; maximum=&amp;quot;50.0&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;Parameter name=&amp;quot;b&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;-20.0&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/InputParameters&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Be aware that all input values that are not in the specified input domain are trimmed, and thus not used in the modeling process.&lt;br /&gt;
&lt;br /&gt;
Also remember that:&lt;br /&gt;
* &#039;&#039;&#039;Complex output&#039;&#039;&#039; should always be returned as &#039;&#039;&#039;2 real values&#039;&#039;&#039; (i.e., real part and imaginary part separately).&lt;br /&gt;
&lt;br /&gt;
Make sure your data source complies with these requirements. This is your responsibility.&lt;br /&gt;
&lt;br /&gt;
== Passing data directly ==&lt;br /&gt;
&lt;br /&gt;
As mentioned on the [[Running]] page you pass your (input and corresponding output) data directly to the toolbox. &lt;br /&gt;
Remember though that the dimensions of your data must still match the information in the [[Toolbox configuration|toolbox configuration file]] used.&lt;br /&gt;
&lt;br /&gt;
== Native simulator ==&lt;br /&gt;
&lt;br /&gt;
If your simulator is a native code or script it is expected to produce one &#039;&#039;&#039;output&#039;&#039;&#039; value per line.  So every output should be on a new line, with complex outputs using two lines. &lt;br /&gt;
&lt;br /&gt;
There are 2 &#039;&#039;&#039;input&#039;&#039;&#039; methods supported for native simulators: &#039;&#039;&#039;batch mode&#039;&#039;&#039; and &#039;&#039;&#039;command line mode&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;command line mode&#039;&#039;&#039; (= the default option), the inputs are given to the simulator as command line arguments. A call to a simulator in command line mode looks like (for a problem with 3 input parameters):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; ./someSimulationCode  0.5  0.6  0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code should then produce one value per output per line.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;batch mode&#039;&#039;&#039;, multiple samples can be evaluated in batches. The simulation code is called with no command line arguments (except for optional options, see below). The inputs for a batch are instead given to the simulator on standard input (&amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;). First, the size of the batch (the number of samples) is placed on &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. Then, one line is written for each sample. this means that in total, &amp;lt;code&amp;gt;1 + (batchSize * inputDimension)&amp;lt;/code&amp;gt; numbers are written to &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. An example of the format looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
3&lt;br /&gt;
0.5  0.6  0.5&lt;br /&gt;
0.2  0.7  0.3&lt;br /&gt;
0.2  0.6  0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The executable &#039;&amp;lt;code&amp;gt;someSimulationCode&amp;lt;/code&amp;gt;&#039; must be in your path (easiest is just to place it in the &amp;lt;code&amp;gt;&amp;lt;SUMO-Toolbox-installation-dir&amp;gt;/bin/c&amp;lt;/code&amp;gt; or the absolute path to the executable must be specified in the [[simulator configuration]] xml file.&lt;br /&gt;
&lt;br /&gt;
If your xml file contains options, these will be passed to the simulator as command line arguments (both in single and batch mode).  For example:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; ./someSimulationCode  0.5  0.6  0.5  option1=value1  option2=value2  etc..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Matlab simulator ==&lt;br /&gt;
&lt;br /&gt;
=== Matlab function ===&lt;br /&gt;
&lt;br /&gt;
If your simulator is a Matlab file you just have to provide the following function to your code (for the same 3D example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = mySimulationCode(input1, input2 ,input3)&lt;br /&gt;
   ...&lt;br /&gt;
   % do the calculation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you just need to make sure the Matlab file is in the toolbox path (e.g., you can place it in &amp;lt;code&amp;gt;src/matlab/examples&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Options (if present) are passed to the simulator as an extra cell array parameter: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = mySimulationCode(input1, input2 ,input3, options)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&#039; is a cell array of strings of the form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
options : {&#039;option1&#039;,&#039;value1&#039;,&#039;option2&#039;,&#039;value2&#039;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: since Matlab is single threaded it is impossible to execute the simulator script while modeling (and vica versa).  Thus the two are done sequentially which can lead to significant slowdowns if your simulator takes a long time to execute.  In that case it is best to use a native executable or script.  This will change in future versions when we start using the parallel/distributed computing toolbox.&lt;br /&gt;
&lt;br /&gt;
== Java simulator ==&lt;br /&gt;
&lt;br /&gt;
You can also implement your simulator as a [http://en.wikipedia.org/wiki/Java_%28programming_language%29 Java] class.  All you need to do is write a class that implements the &#039;&#039;Simulator&#039;&#039; interface.  And make sure the class file is in the Matlab Java path.&lt;br /&gt;
&lt;br /&gt;
Options are passed as a java Properties object.&lt;br /&gt;
&lt;br /&gt;
== Scattered datasets ==&lt;br /&gt;
&lt;br /&gt;
Each row should contain exactly one data point, with one column per dimension.&lt;br /&gt;
&lt;br /&gt;
== Gridded datasets ==&lt;br /&gt;
Gridded datasets assume that the data is spread uniformly over a grid. By making this assumption, it becomes pointless to store the sample locations as in a scattered dataset: only the outputs are stored. In order to know the grid size, you do need to specify how many samples are taken in each dimension in the simulator file. For example, a gridSize of 20,40,50 will result in a grid of 20x40x50 or a total of 40000 samples for which the outputs have to be saved on disk.&lt;br /&gt;
&lt;br /&gt;
Because the input values are not stored, the dataset must adhere to a strict order in which the points are specified: the points must be specified in lexicographic order. For example, if you want to define a 3-dimensional dataset with grid size 2x3x2 on the [-1,1] domain, you must provide the outputs for the samples in the following order:&lt;br /&gt;
[-1, -1, -1]&lt;br /&gt;
[-1, -1,  1]&lt;br /&gt;
[-1,  0, -1]&lt;br /&gt;
[-1,  0,  1]&lt;br /&gt;
[-1,  1, -1]&lt;br /&gt;
[-1,  1,  1]&lt;br /&gt;
[ 1, -1, -1]&lt;br /&gt;
[ 1, -1,  1]&lt;br /&gt;
[ 1,  0, -1]&lt;br /&gt;
[ 1,  0,  1]&lt;br /&gt;
[ 1,  1, -1]&lt;br /&gt;
[ 1,  1,  1]&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Interfacing_with_the_toolbox&amp;diff=4332</id>
		<title>Interfacing with the toolbox</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Interfacing_with_the_toolbox&amp;diff=4332"/>
		<updated>2008-07-17T08:42:50Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Gridded datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IMPORTANT ==&lt;br /&gt;
&lt;br /&gt;
* The SUMO Toolbox works on any &#039;&#039;&#039;input domain&#039;&#039;&#039; (= design space = input parameter ranges) specified in the [[simulator configuration]] file by a &#039;&amp;lt;code&amp;gt;minimum&amp;lt;/code&amp;gt;&#039; and &#039;&amp;lt;code&amp;gt;maximum&amp;lt;/code&amp;gt;&#039; attribute, for each input parameter.&lt;br /&gt;
** If a &#039;&amp;lt;code&amp;gt;minimum&amp;lt;/code&amp;gt;&#039; is not specified, the default value of &#039;&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&#039; is assumed. &lt;br /&gt;
** If a &#039;&amp;lt;code&amp;gt;maximum&amp;lt;/code&amp;gt;&#039; is not specified, the default value of &#039;&amp;lt;code&amp;gt;+1&amp;lt;/code&amp;gt;&#039; is assumed. &lt;br /&gt;
** Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;InputParameters&amp;gt;&lt;br /&gt;
		&amp;lt;Parameter name=&amp;quot;a&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;47.0&amp;quot; maximum=&amp;quot;50.0&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;Parameter name=&amp;quot;b&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;-20.0&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/InputParameters&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Be aware that all input values that are not in the specified input domain are trimmed, and thus not used in the modeling process.&lt;br /&gt;
&lt;br /&gt;
Also remember that:&lt;br /&gt;
* &#039;&#039;&#039;Complex output&#039;&#039;&#039; should always be returned as &#039;&#039;&#039;2 real values&#039;&#039;&#039; (i.e., real part and imaginary part separately).&lt;br /&gt;
&lt;br /&gt;
Make sure your data source complies with these requirements. This is your responsibility.&lt;br /&gt;
&lt;br /&gt;
== Passing data directly ==&lt;br /&gt;
&lt;br /&gt;
As mentioned on the [[Running]] page you can call the toolbox as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
     	&amp;quot;go(&#039;MyConfigFile.xml&#039;,xValues, yValues, [options])&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to pass your (input and corresponding output) data directly to the toolbox. &lt;br /&gt;
&lt;br /&gt;
Remember though that the dimensions of your data must still match the information in &#039;&amp;lt;code&amp;gt;[[Toolbox configuration|MyConfigFile.xml]]&amp;lt;/code&amp;gt;&#039; file.&lt;br /&gt;
&lt;br /&gt;
== Native simulator ==&lt;br /&gt;
&lt;br /&gt;
If your simulator is a native code or script it is expected to produce one &#039;&#039;&#039;output&#039;&#039;&#039; value per line.  So every output should be on a new line, with complex outputs using two lines. &lt;br /&gt;
&lt;br /&gt;
There are 2 &#039;&#039;&#039;input&#039;&#039;&#039; methods supported for native simulators: &#039;&#039;&#039;batch mode&#039;&#039;&#039; and &#039;&#039;&#039;command line mode&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;command line mode&#039;&#039;&#039; (= the default option), the inputs are given to the simulator as command line arguments. A call to a simulator in command line mode looks like (for a problem with 3 input parameters):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; ./someSimulationCode  0.5  0.6  0.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code should then produce one value per output per line.&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;batch mode&#039;&#039;&#039;, multiple samples can be evaluated in batches. The simulation code is called with no command line arguments (except for optional options, see below). The inputs for a batch are instead given to the simulator on standard input (&amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;). First, the size of the batch (the number of samples) is placed on &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. Then, one line is written for each sample. this means that in total, &amp;lt;code&amp;gt;1 + (batchSize * inputDimension)&amp;lt;/code&amp;gt; numbers are written to &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. An example of the format looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
3&lt;br /&gt;
0.5  0.6  0.5&lt;br /&gt;
0.2  0.7  0.3&lt;br /&gt;
0.2  0.6  0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The executable &#039;&amp;lt;code&amp;gt;someSimulationCode&amp;lt;/code&amp;gt;&#039; must be in your path (easiest is just to place it in the &amp;lt;code&amp;gt;&amp;lt;SUMO-Toolbox-installation-dir&amp;gt;/bin/c&amp;lt;/code&amp;gt; or the absolute path to the executable must be specified in the [[simulator configuration]] xml file.&lt;br /&gt;
&lt;br /&gt;
If your xml file contains options, these will be passed to the simulator as command line arguments (both in single and batch mode).  For example:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; ./someSimulationCode  0.5  0.6  0.5  option1=value1  option2=value2  etc..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Matlab simulator ==&lt;br /&gt;
&lt;br /&gt;
=== Matlab function ===&lt;br /&gt;
&lt;br /&gt;
If your simulator is a Matlab file you just have to provide the following function to your code (for the same 3D example):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = mySimulationCode(input1, input2 ,input3)&lt;br /&gt;
   ...&lt;br /&gt;
   % do the calculation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you just need to make sure the Matlab file is in the toolbox path (e.g., you can place it in &amp;lt;code&amp;gt;src/matlab/examples&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Options (if present) are passed to the simulator as an extra cell array parameter: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = mySimulationCode(input1, input2 ,input3, options)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt;&#039; is a cell array of strings of the form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
options : {&#039;option1&#039;,&#039;value1&#039;,&#039;option2&#039;,&#039;value2&#039;,...}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Matlab class ===&lt;br /&gt;
&lt;br /&gt;
Your simulator can also be a Matlab object of a particular class.  Provide your class with the following function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
function [output1 output2 output3] = evaluate(input1, input2 ,input3)&lt;br /&gt;
   ...&lt;br /&gt;
   % do the calculation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options work in the same way as the pure Matlab simulator.&lt;br /&gt;
&lt;br /&gt;
== Java simulator ==&lt;br /&gt;
&lt;br /&gt;
You can also implement your simulator as a [http://en.wikipedia.org/wiki/Java_%28programming_language%29 Java] class.  All you need to do is write a class that implements the &#039;&#039;Simulator&#039;&#039; interface.  &lt;br /&gt;
&lt;br /&gt;
Options are passed as a java Properties object.&lt;br /&gt;
&lt;br /&gt;
== Scattered datasets ==&lt;br /&gt;
&lt;br /&gt;
Each row should contain exactly one data point, with one column per dimension.&lt;br /&gt;
&lt;br /&gt;
== Gridded datasets ==&lt;br /&gt;
Gridded datasets assume that the data is spread uniformly over a grid. By making this assumption, it becomes pointless to store the sample locations as in a scattered dataset: only the outputs are stored. In order to know the grid size, you do need to specify how many samples are taken in each dimension in the simulator file. For example, a gridSize of 20,40,50 will result in a grid of 20x40x50 or a total of 40000 samples for which the outputs have to be saved on disk.&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=Measures&amp;diff=4331</id>
		<title>Measures</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=Measures&amp;diff=4331"/>
		<updated>2008-07-17T08:39:44Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* CrossValidation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A measure is used to measure the quality of a new model. The measure decides whether the modeling process can be halted (the target accuracy has been reached) or whether new samples should be selected / new models should be built. The choice of measure is therefore very important for the success of the toolbox.&lt;br /&gt;
&lt;br /&gt;
The rule of thumb is that the default measure, CrossValidation, is the best choice, but is also very expensive, as it requires that a number (5 by default) of models are built for each new model that has to be evaluated. Especially when using neural networks this can become an unacceptable overhead. If the modeling takes unacceptably long, the best alternative is ValidationSet, which by default behaves as cross validation in which only one fold is considered, reducing the cost of the measure by a factor 5. A second measure, called MinMax, is also activated by default, enabling the user to force the model to remain within certain bounds, to speed up the convergence. See below for more details in how to set these bounds.&lt;br /&gt;
&lt;br /&gt;
However, in certain situations it might be very effective to use different measures, or use multiple measures together. When multiple measures are used, an intelligent pareto-based method is used to decide which model is the best choice. Models that score high on a particular measure but low on another are not discarded immediately, but are given a chance to set things right in further iterations of the toolbox. This encourages variety in the models, while still ensuring convergence to the optimal accuracy for each measure. An often used combination is CrossValidation with the MinMax measure, to ensure that no poles are present in the model domain.&lt;br /&gt;
&lt;br /&gt;
Note that also an [[FAQ#How_do_I_change_the_error_function_.28relative_error.2C_RMS.2C_....29.3F| error function can be defined]]. The default error function is &#039;&amp;lt;code&amp;gt;rootRelativeSquareError&amp;lt;/code&amp;gt;&#039;. &lt;br /&gt;
&lt;br /&gt;
Below is a list of available measures and the configuration options available for each of them. Each measure also has a target accuracy attribute, which can be omitted and which defaults to 0.001. In certain cases, such as the binary MinMax measure, the target accuracy is irrelevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CrossValidation ==&lt;br /&gt;
&lt;br /&gt;
The CrossValidation measure is the default choice and performs an n-fold cross validation on the model to create an efficient estimation of the accuracy of the model. Several options are available to customize this measure.&lt;br /&gt;
&lt;br /&gt;
{{OptionsHeader}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = folds&lt;br /&gt;
|values      = positive integer&lt;br /&gt;
|default     = 5&lt;br /&gt;
|description = The number of folds used for the measure. A higher number means that more models will be built, but that a better accuracy estimate is achieved.&lt;br /&gt;
}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = storeModels&lt;br /&gt;
|values      = boolean&lt;br /&gt;
|default     = no&lt;br /&gt;
|description = When this option is turned on, the models built for each fold are stored on disk for future reference.&lt;br /&gt;
}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = partitionMethod&lt;br /&gt;
|values      = [uniform,random]&lt;br /&gt;
|default     = uniform&lt;br /&gt;
|description = This option defines whether the test sets for the folds are chosen randomly, or are chosen in such a way as to maximize the domain coverage. Random is generally much faster, but might result in pessimistic scoring, as unlucky test set choice can result in an inaccurate error. This can partly be fixed by enabling the resetFolds option.&lt;br /&gt;
}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = resetFolds&lt;br /&gt;
|values      = boolean&lt;br /&gt;
|default     = no&lt;br /&gt;
|description = Folds are generated from scratch for each model that is evaluated using this measure. If the same model is evaluated twice (for example, after a rebuild), new folds are used. Enabling this feature can be very costly for large sample sizes. As a rule of thumb, enable this in combination with the random partition method, or disable this when using the uniform method.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== ValidationSet ==&lt;br /&gt;
&lt;br /&gt;
The ValidationSet measure has two different methods of operation.&lt;br /&gt;
&lt;br /&gt;
# In the first method, the list of samples that have been evaluated is split into a validation set and a training set. A model is then built using the training set, and evaluated using the validation set (which is by default 20% of the total sample pool).&lt;br /&gt;
# However, an external data file containing a validation set can also specified. In this case, all the evaluated samples are used for training, and the external set is used for validation only. Which of these two operation methods is used, depends on the configuration options below. By default, no external validation set is loaded.&lt;br /&gt;
&lt;br /&gt;
If you want to use an external validation set, you will have to provide a SampleEvaluator configuration so that the validation set can be loaded from an external source. Here is a ValidationSet configuration example which loads the validation set from the scattered data file provided in the simulator file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;Measure type=&amp;quot;ValidationSet&amp;quot; target=&amp;quot;.001&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Option key=&amp;quot;type&amp;quot; value=&amp;quot;file&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;SampleEvaluator type=&amp;quot;ibbt.sumo.SampleEvaluators.ScatteredDatasetSampleEvaluator&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Measure&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{OptionsHeader}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = type&lt;br /&gt;
|values      = [distance, random, file]&lt;br /&gt;
|default     = distance&lt;br /&gt;
|description = Method used to acquire samples for the validation set. The default method, &#039;distance&#039;, tries to select a validation set which covers the entire domain as good as possible, ensuring that not all validation samples are chosen in the same part of the domain. This is achieved using a distance heuristic, which gives no guarantees on optimal coverage but performs very well in almost all situations. The &#039;random&#039; method just picks a random set of samples from the entire pool to be used for validation set.&lt;br /&gt;
Finally, the &#039;file&#039; method does not take samples at all from the pool, but loads a validation set from an external dataset.&lt;br /&gt;
}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = percentUsed&lt;br /&gt;
|values      = [0,100]&lt;br /&gt;
|default     = 20&lt;br /&gt;
|description = Percent of samples used for the validation set. By default 20% of all samples are used for validation, while the remaining 80% are used for training. This option is irrelevant if the &#039;type&#039; option is set to &#039;file&#039;.&lt;br /&gt;
}}&lt;br /&gt;
{{Option&lt;br /&gt;
|name        = randomThreshold&lt;br /&gt;
|values      = positive integer&lt;br /&gt;
|default     = 1000&lt;br /&gt;
|description = When the sample pool is very large, the distance heuristic used by default becomes too slow, and the toolbox switches to random sample selection automatically. This is done when the amount of samples is larger than this value, which defaults to 1000. This option should not be changed unless the performance is unacceptable even for sample sets smaller than this amount.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LeaveNOut ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MinMax ==&lt;br /&gt;
&lt;br /&gt;
The MinMax measure is used to eliminate models whose response falls below a given minimum or above a given maximum. This measure can be used to detect models that have poles in the model domain and to guide the modeling process in the right direction. If the output is known to lie within certain value bounds, these can be added to the simulator file as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;OutputParameters&amp;gt;&lt;br /&gt;
	&amp;lt;Parameter name=&amp;quot;out&amp;quot; type=&amp;quot;real&amp;quot; minimum=&amp;quot;-1&amp;quot; maximum=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/OutputParameters&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the MinMax measure is defined, these values will be used to ensure that all models stay within these bounds. If only the minimum or only the maximum is defined, naturally only these are enforced. There are no further configuration options for this measure. In case of complex outputs the modulus is used.&lt;br /&gt;
&lt;br /&gt;
Remember though, that no guarantee can be given that the poles will really disappear. Using this measure only combats the symptoms and not the cause of the problem. Also, this measure can be reasonably slow, because it evaluates a dense grid to decide wether the model is crossing boundaries. If the model is slow to evaluate, this can take a considerable amount of time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: even if you don&#039;t know the exact bounds on your output, you can still use this measure by specifying very broad bounds (e.g., [-10000 10000]).  This can still allow you to catch poles since, by definition, they reach until infinity.&lt;br /&gt;
&lt;br /&gt;
== ModelDifference ==&lt;br /&gt;
&lt;br /&gt;
== SampleError ==&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
	<entry>
		<id>http://sumowiki.ilabt.imec.be/index.php?title=FAQ&amp;diff=4330</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://sumowiki.ilabt.imec.be/index.php?title=FAQ&amp;diff=4330"/>
		<updated>2008-07-17T08:34:16Z</updated>

		<summary type="html">&lt;p&gt;Kcrombec: /* Using */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What is a global surrogate model? ===&lt;br /&gt;
&lt;br /&gt;
A global [http://en.wikipedia.org/wiki/Surrogate_model surrogate model] is a mathematical model that mimics the behavior of a computationally expensive simulation code over &#039;&#039;&#039;the complete parameter space&#039;&#039;&#039; as accurately as possible, using as little data points as possible. So note that optimization is not the primary goal, although it can be done as a post-processing step. Global surrogate models are useful for:&lt;br /&gt;
&lt;br /&gt;
* design space exploration, to get a &#039;&#039;feel&#039;&#039; of how the different parameters behave&lt;br /&gt;
* sensitivity analysis&lt;br /&gt;
* &#039;&#039;what-if&#039;&#039; analysis&lt;br /&gt;
* prototyping&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
In addition they are a cheap way to model large scale systems, multiple global surrogate models can be chained together in a model cascade.&lt;br /&gt;
&lt;br /&gt;
=== What about surrogate driven optimization? ===&lt;br /&gt;
&lt;br /&gt;
When coining the term &#039;&#039;&#039;surrogate driven optimization&#039;&#039;&#039; most people associate it with trust-region strategies and simple polynomial models. These frameworks first construct a local surrogate which is optimized to find an optimum. Afterwards, a move limit strategy decides how the local surrogate is scaled and/or moved through the input space. Subsequently the surrogate is rebuild and optimized. I.e. the surrogate zooms in to the global optimum. For instance the [http://www.cs.sandia.gov/DAKOTA/ DAKOTA] Toolbox implements such strategies where the surrogate construction is separated from optimization.&lt;br /&gt;
&lt;br /&gt;
Such a framework was earlier implemented in the SUMO Toolbox but was deprecated as it didn&#039;t fit the philosophy and design of the toolbox. &lt;br /&gt;
&lt;br /&gt;
Instead another, equally powerful, approach was taken. The current optimization framework is in fact a sampling selection strategy that balances local and global search. In other words, it balances between exploring the input space and exploiting the information the surrogate gives us.&lt;br /&gt;
&lt;br /&gt;
A configuration example can be found [[Config:SampleSelector#isc|here]]. For more information see the [[Sample_Selectors#InfillSamplingCriterion| InfillSamplingCriterion ]].&lt;br /&gt;
&lt;br /&gt;
=== What is the difference between the M3-Toolbox and the SUMO-Toolbox? ===&lt;br /&gt;
&lt;br /&gt;
The SUMO toolbox is a complete, feature-full framework for automatically generating approximation models and performing adaptive sampling. In contrast, the M3-Toolbox was more of a proof-of-principle.&lt;br /&gt;
&lt;br /&gt;
=== What happened to the M3-Toolbox? ===&lt;br /&gt;
&lt;br /&gt;
The M3 Toolbox project has been discontinued (Fall 2007) and superseded by the SUMO Toolbox. Please contact tom.dhaene@ua.ac.be for any inquiries and requests about the M3 Toolbox.&lt;br /&gt;
&lt;br /&gt;
=== How can I stay up to date with the latest news? ===&lt;br /&gt;
&lt;br /&gt;
To stay up to date with the latest news and releases, we also recommend subscribing to our newsletter [http://www.sumo.intec.ugent.be here].  Traffic will be kept to a minimum (1 message every 2-3 months) and you can unsubscribe at any time.&lt;br /&gt;
&lt;br /&gt;
=== What is the roadmap for the future? ===&lt;br /&gt;
&lt;br /&gt;
There is no explicit roadmap since much depends on where our research leads us, what feedback we get, which problems we are working on, etc.  However, to get an idea of features to come you can always check the [[Whats new]] page.&lt;br /&gt;
&lt;br /&gt;
== Installation and Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Will the SUMO Toolbox work with Matlab R2008 and later? ===&lt;br /&gt;
Starting from version 6.0 Matlab R2007b-R2008b should be fully supported.  Initial tests have shown that v5.0 will work with R2008, but we do not guarantee that every component will work flawlessly.  R2008 also introduced a new way of handling classes and objects to which the SUMO Toolbox will be ported when R2008a and later become more widespread.  At that point compatibility with previous Matlab versions will be dropped.&lt;br /&gt;
&lt;br /&gt;
=== What is the relationship between Matlab and Java? ===&lt;br /&gt;
&lt;br /&gt;
Many people do not know this, but your Matlab installation automatically includes a Java virtual machine.  By default, Matlab seamlessly integrates with Java, allowing you to create Java objects from the command line (e.g., &#039;s = java.lang.String&#039;).  It is possible to disable java support but in order to use the SUMO Toolbox it should not be.  To check if Java is enabled you can use the &#039;usejava&#039; command.&lt;br /&gt;
&lt;br /&gt;
=== What is Java, why do I need it, do I have to install it, etc. ? ===&lt;br /&gt;
&lt;br /&gt;
The short answer is: no, dont worry about it.  The long answer is: Some of the code of the SUMO Toolbox is written in [http://en.wikipedia.org/wiki/Java_(programming_language) Java], since it makes a lot more sense in many situations and is a proper programming language instead of a scripting language like Matlab.  Since Matlab automatically includes a JVM to run Java code there is nothing you need to do or worry about (see the previous FAQ entry).  Unless its not working of course, in that case see [[FAQ#When_running_the_toolbox_you_get_something_like_.27.3F.3F.3F_Undefined_variable_.22ibbt.22_or_class_.22ibbt.sumo.config.ContextConfig.setRootDirectory.22.27]].&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
=== How do I upgrade to a newer version? ===&lt;br /&gt;
&lt;br /&gt;
Delete your old &amp;lt;code&amp;gt;&amp;lt;SUMO-Toolbox-directory&amp;gt;&amp;lt;/code&amp;gt; and replace it by the new one.  Restart Matlab and make sure the default run works.  To port your old configuration files to the new version: make a copy of default.xml and copy over your custom changes one by one.  This should prevent any weirdness if the XML structure has changed between releases.&lt;br /&gt;
&lt;br /&gt;
== Using ==&lt;br /&gt;
&lt;br /&gt;
=== I have no idea how to use the toolbox, what should I do? ===&lt;br /&gt;
&lt;br /&gt;
See: [[Running#Getting_started]]&lt;br /&gt;
&lt;br /&gt;
=== I want to model my own problem ===&lt;br /&gt;
&lt;br /&gt;
See : [[Adding an example]].&lt;br /&gt;
&lt;br /&gt;
=== I want to contribute some data/patch/documentation/... ===&lt;br /&gt;
&lt;br /&gt;
See : [[Contributing]].&lt;br /&gt;
&lt;br /&gt;
=== How do I interface with the SUMO Toolbox? ===&lt;br /&gt;
&lt;br /&gt;
See : [[Interfacing with the toolbox]].&lt;br /&gt;
&lt;br /&gt;
=== Ok, I generated a model, what can I do with it? ===&lt;br /&gt;
&lt;br /&gt;
See: [[Using a model]].&lt;br /&gt;
&lt;br /&gt;
=== How can I share a model created by the SUMO Toolbox? ===&lt;br /&gt;
&lt;br /&gt;
See : [[Running#Model_portability| Model portability]].&lt;br /&gt;
&lt;br /&gt;
=== Why are the Neural Networks so slow? ===&lt;br /&gt;
&lt;br /&gt;
You are probably using the [[Measures#CrossValidation| CrossValidation]] measure. CrossValidation is used by default if you have not defined a [[Measures| measure]] yourself.  Since you need to train them, neural nets will always be slower than the other models.  Using CrossValidation will slow things down much much more (5-times slower by default).  Therefore, when using one of the neural network model types, please use a different measure, such as [[Measures#ValidationSet| ValidationSet]] or [[Measures#SampleError| SampleError]].  See the comments in &amp;lt;code&amp;gt;default.xml&amp;lt;/code&amp;gt; for examples.&lt;br /&gt;
&lt;br /&gt;
Note: Starting from version 5.0, two new neural network backends are available (based on [http://leenissen.dk/fann/ FANN] and [http://www.iau.dtu.dk/research/control/nnsysid.html NNSYSID]).  These are a lot faster than the default backend based on the [http://www.mathworks.com/products/neuralnet/ Matlab Neural Network Toolbox].  However, the accuracy it not as good.&lt;br /&gt;
&lt;br /&gt;
=== How can I speed things up? ===&lt;br /&gt;
&lt;br /&gt;
There are a number of things you can do to speed things up:&lt;br /&gt;
&lt;br /&gt;
* Disable some, or even all of the [[Config:ContextConfig#Profiling| profilers]] or disable the output handlers that draw charts&lt;br /&gt;
* Turn off the plotting of models in [[Config:ContextConfig#PlotOptions| ContextConfig]], you can always generate plots from the saved mat files&lt;br /&gt;
* Decrease the logging granularity, a log level of FINE (the default is FINEST or ALL) is more then granular enough.  Setting it to FINE, INFO, or even WARNING should speed things up.&lt;br /&gt;
* If you have a multi-core/multi-cpu machine, set the threadCount variable in [[Config:SampleEvaluator#LocalSampleEvaluator| LocalSampleEvaluator]] equal to the number of cores/CPUs (only do this if it is ok to start multiple instances of your simulation script in parallel!)&lt;br /&gt;
* Avoid cross validation and use a validation set&lt;br /&gt;
* Dont use the Min-Max measure, it can slow things down.&lt;br /&gt;
* Instead of anngenetic use fanngenetic or nanngenetic, these are faster but the quality of the models is lower.  However it may be good enough for your problem.&lt;br /&gt;
&lt;br /&gt;
If you are having problems with very slow or seemingly hanging runs&lt;br /&gt;
&lt;br /&gt;
* Do a run inside the [http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_env/f9-17018.html&amp;amp;http://www.google.be/search?client=firefox-a&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;channel=s&amp;amp;hl=nl&amp;amp;q=matlab+profiler&amp;amp;meta=&amp;amp;btnG=Google+zoeken Matlab profiler] and see where most time is spent.&lt;br /&gt;
* Monitor CPU and physical/virtual memory usage while the SUMO toolbox is running and see if you notice anything strange.  &lt;br /&gt;
&lt;br /&gt;
Also note that by default Matlab only allocates about 117 MB memory space for the Java Virtual Machine. If you would like to increase this limit (which you should) please follow the instructions [http://www.mathworks.com/support/solutions/data/1-18I2C.html?solution=1-18I2C here]. See also the general memory instructions [http://www.mathworks.com/support/tech-notes/1100/1106.html here].&lt;br /&gt;
&lt;br /&gt;
To check if your SUMO run has hanged, monitor your log file (with the level set at least to FINE).  If you see no changes for about 30 minutes the toolbox will probably have stalled.  [[Reporting problems| report the problems here]].&lt;br /&gt;
&lt;br /&gt;
Such problems are hard to identify and fix so it is best to work towards a reproducible test case if you think you found a performance or scalability issue.&lt;br /&gt;
&lt;br /&gt;
=== How do I turn off adaptive sampling (run the toolbox for a fixed set of samples)? ===&lt;br /&gt;
&lt;br /&gt;
See : [[Adaptive Modeling Mode]].&lt;br /&gt;
&lt;br /&gt;
=== How do I change the error function (relative error, RMS, ...)? ===&lt;br /&gt;
&lt;br /&gt;
The [[Measures| &amp;lt;Measure&amp;gt;]] tag specifies the algorithm to use to assign models a score, e.g., [[Measures#CrossValidation| CrossValidation]].  It is also possible to specify which &#039;&#039;&#039;error function&#039;&#039;&#039; to  use, in the measure.  The default error function is &#039;&amp;lt;code&amp;gt;rootRelativeSquareError&amp;lt;/code&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
Say you want to use [[Measures#CrossValidation| CrossValidation]] with the maximum absolute error, then you would put:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Measure type=&amp;quot;CrossValidation&amp;quot; target=&amp;quot;0.001&amp;quot; errorFcn=&amp;quot;maxAbsoluteError&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you wanted to use the [[Measures#ValidationSet| ValidationSet]] measure with a relative root-mean-square error you would put:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Measure type=&amp;quot;ValidationSet&amp;quot; target=&amp;quot;0.001&amp;quot; errorFcn=&amp;quot;relativeRms&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default error function is &#039;&amp;lt;code&amp;gt;rootRelativeSquareError&amp;lt;/code&amp;gt;&#039;.  These error functions can be found in the &amp;lt;code&amp;gt;src/matlab/tools/errorFunctions&amp;lt;/code&amp;gt; directory.  You are free to modify them and add your own.&lt;br /&gt;
&lt;br /&gt;
=== How do I enable more profilers? ===&lt;br /&gt;
&lt;br /&gt;
Go to the [[Config:ContextConfig#Profiling| &amp;lt;Profiling&amp;gt;]] tag and put &amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; as the regular expression.  See also the next question.&lt;br /&gt;
&lt;br /&gt;
=== What regular expressions can I use to filter profilers? ===&lt;br /&gt;
&lt;br /&gt;
See the syntax [http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html here].&lt;br /&gt;
&lt;br /&gt;
=== How can I ensure deterministic results? ===&lt;br /&gt;
&lt;br /&gt;
See : [[Random state]].&lt;br /&gt;
&lt;br /&gt;
=== How do I get a simple closed-form model (symbolic expression)? ===&lt;br /&gt;
&lt;br /&gt;
See : [[Using a model]]. &lt;br /&gt;
Use the &amp;lt;code&amp;gt;getExpression(..)&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
=== How do I enable the Heterogenous evolution to automatically select the best model type? ===&lt;br /&gt;
&lt;br /&gt;
Due to a limitation of the [http://www.mathworks.com/products/gads/ Matlab Genetic Algorithm and Direct Search (GADS) Toolbox], you first have to manually edit the file src/matlab/contrib/modifiedMigrate.m.  Open it and follow the instructions.  Once that is done you can use the [[Config:AdaptiveModelBuilder#heterogenetic| heterogenetic modelbuilder]] as you would any other.&lt;br /&gt;
&lt;br /&gt;
=== What is the combineOutputs option? ===&lt;br /&gt;
&lt;br /&gt;
Some model types support building a single model with multiple outputs (to enable this set combineOutputs=true for the particular component).  This means you dont have to build different models for each output in parallel.  Thus this saves time and results in a nice fully self-contained model.  However, note that in that case the same model parameters are used for each output, thus this only makes sense if there is some correlation between the outputs.  The more correlation, the more this makes sense.&lt;br /&gt;
&lt;br /&gt;
In the future this setting will also be supported for the sample selection components (so you can take into account correlation between outputs when choosing new samples).&lt;br /&gt;
&lt;br /&gt;
=== What error function should I use? ===&lt;br /&gt;
&lt;br /&gt;
The default error function is the root relative square error (RRSE).  For example, if you get a RRSE of 0.16 it means you are doing 16% better than the most simple model (= the mean).  The RRSE is a global relative error that measures the deviation from the mean, it is closely related to the well known [http://en.wikipedia.org/wiki/Coefficient_of_determination R2 (R-squared)] error function.  In general the RRSE is a good choice, however, if your function is very smooth (=&amp;gt; meaning the mean is already a very good fit) then it is hard to get a low value for the RRSE (even though your model may be very good).  On the other hand meanRelativeError may be more intuitive but in that case you have to be careful if you have function values close to zero since in that case the relative error explodes or even gives infinity.  You could also use one of the combined relative error functions (contain a +1 in the denominator to account for small values) but then you get something between a relative and absolute error (=&amp;gt; hard to interpret).&lt;br /&gt;
&lt;br /&gt;
So to be sure an absolute error seems the safest bet (like the RMSE), however in that case you have to come up with sensible accuracy targets and realize that you will build models that try to fit the regions of high absolute value better than the low ones.&lt;br /&gt;
&lt;br /&gt;
Picking an error function is a very tricky business and many people do not realize this.  Which one is best for you and what targets you use ultimately depends on your application and on what kind of model you want.  There is no general answer.&lt;br /&gt;
&lt;br /&gt;
=== I just want to generate an initial design (no sampling, no modeling) ===&lt;br /&gt;
&lt;br /&gt;
Do a regular SUMO run, except set the &#039;maxModelingIterations&#039; in the SUMO tag to 0.  The resulting run will only generate (and evaluate) the initial design and save it to samples.txt in the output directory.&lt;br /&gt;
&lt;br /&gt;
=== How do I start a run with the samples of of a previous run, or with a custom initial design? ===&lt;br /&gt;
&lt;br /&gt;
Use a Dataset design component, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;InitialDesign type=&amp;quot;DatasetDesign&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Option key=&amp;quot;file&amp;quot; value=&amp;quot;/path/to/the/file/containing/the/points.txt&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/InitialDesign&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What is a level plot? ===&lt;br /&gt;
&lt;br /&gt;
A level plot is a plot that shows how the error histogram changes as the best model improves. An example is:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:levelplot.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Level plots only work if you have a separate dataset (test set) that the model can be checked against.  See the comments in default.xml for how to enable level plots.&lt;br /&gt;
&lt;br /&gt;
===I am getting a java out of memory error, what happened?===&lt;br /&gt;
Datasets are loaded through java my the toolbox. This means that the java heap space is used for storing the data. If you try to load a huge dataset (&amp;gt; 50MB), you might experience problems with the maximum heap size. You can solve this by raising the heap size as described on the following webpage:&lt;br /&gt;
[http://www.mathworks.com/support/solutions/data/1-18I2C.html]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== I have a problem and I want to report it ===&lt;br /&gt;
&lt;br /&gt;
See : [[Reporting problems]].&lt;br /&gt;
&lt;br /&gt;
=== I sometimes get flat models when using rational functions ===&lt;br /&gt;
&lt;br /&gt;
First make sure the model is indeed flat, and does not just appear so on the plot. You can verify this by looking at the output axis range and making sure it is within reasonable bounds. When there are poles in the model, the axis range is sometimes stretched to make it possible to plot the high values around the pole, causing the rest of the model to appear flat. If the model contains poles, refer to the next question for the solution.&lt;br /&gt;
&lt;br /&gt;
The [[Config:AdaptiveModelBuilder#rational| RationalModel]] tries to do a least squares fit, based on which monomials are allowed in numerator and denominator. We have experienced that some models just find a flat model as the best least squares fit. There are two causes for this:&lt;br /&gt;
&lt;br /&gt;
* The number of sample points is few, and the model parameters (as explained [[Model types explained#PolynomialModel|here]] and [[Adaptive Model Builders|here]]) force the model to use only a very small set of degrees of freedom.  The solution in this case is to increase the minimum percentage bound in the RationalXYZInterface ([[Config:AdaptiveModelBuilder#rational| RationalSequentialInterface]] or [[Config:AdaptiveModelBuilder#rationalgenetic| RationalGeneticInterface]]) section of your configuration file: change the &amp;lt;code&amp;gt;&amp;quot;percentBounds&amp;quot;&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;&amp;quot;60,100&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;80,100&amp;quot;&amp;lt;/code&amp;gt;,  or even &amp;lt;code&amp;gt;&amp;quot;100,100&amp;quot;&amp;lt;/code&amp;gt;.  A setting of &amp;lt;code&amp;gt;&amp;quot;100,100&amp;quot;&amp;lt;/code&amp;gt; will force the polynomial models to always exactly interpolate.  However, note that this does not scale very well with the number of samples (to counter this you can set &amp;lt;code&amp;gt;&amp;quot;maxDegrees&amp;quot;&amp;lt;/code&amp;gt;). If, after increasing the &amp;lt;code&amp;gt;&amp;quot;percentBounds&amp;quot;&amp;lt;/code&amp;gt; you still get weird, spiky, models you simply need more samples or you should switch to a different model type.&lt;br /&gt;
* Another possibility is that given a set of monomial degrees, the flat function is just the best possible least squares fit. In that case you simply need to wait for more samples.&lt;br /&gt;
&lt;br /&gt;
=== When using rational functions I sometimes get &#039;spikes&#039; (poles) in my model ===&lt;br /&gt;
&lt;br /&gt;
When the denominator polynomial of a rational model has zeros inside the domain, the model will tend to infinity near these points. In most cases these models will only be recognized as being `the best&#039; for a short period of time. As more samples get selected these models get replaced by better ones and the spikes should disappear.&lt;br /&gt;
&lt;br /&gt;
So, it is possible that a rational model with &#039;spikes&#039; (caused by poles inside the domain) will be selected as best model. This may or may not be an issue, depending on what you want to use the model for. If it doesn&#039;t matter that the model is very inaccurate at one particular, small spot (near the pole), you can use the model with the pole and it should perform properly.&lt;br /&gt;
&lt;br /&gt;
However, if the model should have a reasonable error on the entire domain, several methods are available to reduce the chance of getting poles or remove the possibility altogether. The possible solutions are:&lt;br /&gt;
&lt;br /&gt;
* Simply wait for more data, usually spikes disappear (but not always).&lt;br /&gt;
* Lower the maximum of the &amp;lt;code&amp;gt;&amp;quot;percentBounds&amp;quot;&amp;lt;/code&amp;gt; option in the RationalXYZInterface ([[Config:AdaptiveModelBuilder#rational| RationalSequentialInterface]] or [[Config:AdaptiveModelBuilder#rationalgenetic| RationalGeneticInterface]]) section of your configuration file.  For example, say you have 500 data points and if the maximum of the &amp;lt;code&amp;gt;&amp;quot;percentBounds&amp;quot;&amp;lt;/code&amp;gt; option is set to 100 percent it means the degrees of the polynomials in the rational function can go up to 500.  If you set the maximum of the &amp;lt;code&amp;gt;&amp;quot;percentBounds&amp;quot;&amp;lt;/code&amp;gt; option to 10, on the other hand, the maximum degree is set at 50 (= 10 percent of 500).  You can also use the &amp;lt;code&amp;gt;&amp;quot;maxDegrees&amp;quot;&amp;lt;/code&amp;gt; option to set an absolute bound.&lt;br /&gt;
* If you roughly know the output range your data should have, an easy way to eliminate poles is to use the [[Measures#MinMax| MinMax]] [[Measures| Measure]] together with your current measure ([[Measures#CrossValidation| CrossValidation]] by default).  This will cause models whose response falls outside the min-max bounds to be penalized extra, thus spikes should disappear. See :  [[Outputs|Combining measures]].&lt;br /&gt;
* Use a different model type (RBF, ANN, SVM,...), as spikes are a typical problem of rational functions.&lt;br /&gt;
* Try using the [[SampleSelector#RationalPoleSuppressionSampleSelector| RationalPoleSuppressionSampleSelector]], it was designed to get rid of this problem more quickly, but it only selects one sample at the time.&lt;br /&gt;
&lt;br /&gt;
=== There is no noise in my data yet the rational functions don&#039;t interpolate ===&lt;br /&gt;
&lt;br /&gt;
See : [[FAQ#I sometimes get flat models when using rational functions | this question]].&lt;br /&gt;
&lt;br /&gt;
=== When loading a model from disk I get &amp;quot;Warning: Class &#039;:all:&#039; is an unknown object class.  Object &#039;model&#039; of this class has been converted to a structure.&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
You are trying to load a model file without the SUMO Toolbox in your Matlab path.  Make sure the toolbox is in your Matlab path. &lt;br /&gt;
&lt;br /&gt;
In short: Start Matlab, run &amp;lt;code&amp;gt;&amp;lt;SUMO-Toolbox-directory&amp;gt;/startup.m&amp;lt;/code&amp;gt; (to ensure the toolbox is in your path) and then try to load your model.&lt;br /&gt;
&lt;br /&gt;
=== When running the SUMO Toolbox you get an error like &amp;quot;No component with id &#039;ann&#039; of type &#039;adaptive model builder&#039; found in config file.&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
This means you have specified to use a component with a certain id (in this case an AdaptiveModelBuilder component with id &#039;ann&#039;) but a component with that id does not exist further down in the configuration file (in this particular case &#039;ann&#039; does not exist but &#039;anngenetic&#039; does, as a quick search through the configuration file will show).  So make sure you only declare components which have a definition lower down.  So see which components are available, simply scroll down the configuration file and see which id&#039;s are specified.  Please also refer to the [[Toolbox configuration#Declarations and Definitions | Declarations and Definitions]] page.&lt;br /&gt;
&lt;br /&gt;
=== When using RBF neural network models I sometimes get get a crash in &amp;quot;[http://www.mathworks.com/access/helpdesk/help/toolbox/nnet/index.html?/access/helpdesk/help/toolbox/nnet/newrb.html&amp;amp;http://www.google.com/search?q=newrb&amp;amp;rls=com.microsoft:en-US:IE-SearchBox&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;sourceid=ie7&amp;amp;rlz=1I7GGIC newrb]&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
This is an error in the [http://www.mathworks.com/products/neuralnet/ Matlab Neural Network Toolbox] implementation and not anything we can do about (a workaround is available on [[Contact|request]]). This should be fixed by Matlab 7.5.&lt;br /&gt;
&lt;br /&gt;
=== When using NANN models I sometimes get &amp;quot;Runtime error in matrix library, Choldc failed. Matrix not positive definite&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
This is a problem in the mex implementation of the [http://www.iau.dtu.dk/research/control/nnsysid.html NNSYSID] toolbox.  Simply delete the mex files, the Matlab implementation will be used and this will not cause any problems.&lt;br /&gt;
&lt;br /&gt;
=== When using FANN models I sometimes get &amp;quot;Invalid MEX-file createFann.mexa64, libfann.so.2: cannot open shared object file: No such file or directory.&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
This means Matlab cannot find the [http://leenissen.dk/fann/ FANN] library itself to link to dynamically.  Make sure it is in your library path, ie, on unix systems, make sure it is included in LD_LIBRARY_PATH.&lt;br /&gt;
&lt;br /&gt;
=== When trying to use SVM models I get &#039;Error during fitness evaluation: Error using ==&amp;gt; svmtrain at 170, Group must be a vector&#039; ===&lt;br /&gt;
&lt;br /&gt;
You forgot to build the SVM mex files for your platform.  For windows they are pre-compiled for you, on other systems you have to compile them yourself with the makefile.&lt;br /&gt;
&lt;br /&gt;
=== When running the toolbox you get something like &#039;??? Undefined variable &amp;quot;ibbt&amp;quot; or class &amp;quot;ibbt.sumo.config.ContextConfig.setRootDirectory&amp;quot;&#039; ===&lt;br /&gt;
&lt;br /&gt;
First see [[FAQ#What_is_the_relationship_between_Matlab_and_Java.3F | this FAQ entry]].&lt;br /&gt;
&lt;br /&gt;
This means Matlab cannot find the needed Java classes.  This typically means that you forgot to run &#039;startup&#039; (to set the path correctly) before running the toolbox (using &#039;go&#039;).  So make sure you always run &#039;startup&#039; before running &#039;go&#039; and that both commands are always executed in the toolbox root directory.&lt;br /&gt;
&lt;br /&gt;
If you did run &#039;startup&#039; correctly and you are still getting an error, check that Java is properly enabled:&lt;br /&gt;
&lt;br /&gt;
# typing &#039;usejava jvm&#039; should return 1 &lt;br /&gt;
# typing &#039;s = java.lang.String&#039;, this should &#039;&#039;not&#039;&#039; give an error&lt;br /&gt;
# typing &#039;version(&#039;-java&#039;)&#039; should return at least version 1.5.0&lt;br /&gt;
&lt;br /&gt;
If (1) returns 0, then the jvm of your Matlab installation is not enabled.  Check your Matlab installation or startup parameters (did you start Matlab with -nojvm?)&lt;br /&gt;
If (2) fails but (1) is ok, there is a very weird problem, check the Matlab documentation.&lt;br /&gt;
If (3) returns a version before 1.5.0 you will have to upgrade Matlab to a newer version or force Matlab to use a custom, newer, jvm (See the Matlab docs for how to do this).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== You get errors related to &#039;&#039;gaoptimset&#039;&#039;,&#039;&#039;psoptimset&#039;&#039;,&#039;&#039;saoptimset&#039;&#039;,&#039;&#039;newff&#039;&#039; not being found or unknown ===&lt;br /&gt;
&lt;br /&gt;
You are trying to use a component of the SUMO toolbox that requires a Matlab toolbox that you do not have.  See the [[System requirements]] for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== After upgrading I get all kinds of weird errors or warnings when I run my XML files ===&lt;br /&gt;
&lt;br /&gt;
See [[FAQ#How_do_I_upgrade_to_a_newer_version.3F]]&lt;br /&gt;
&lt;br /&gt;
=== I sometimes see the error of the best model go up, shouldn&#039;t it decrease monotonically? ===&lt;br /&gt;
&lt;br /&gt;
There is no short answer here, it depends on the situation.  Below &#039;single objective&#039; refers to the case where during the hyperparameter optimization (= the modeling iteration) combineOutputs=false, and there is only a single measure set to &#039;on&#039;.  The other cases are classified as &#039;multi objective&#039;.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Sampling off&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;Single objective&#039;&#039;: the error should always decrease monotonically, you should never see it rise. If it does [[reporting problems|report it as a bug]]&lt;br /&gt;
## &#039;&#039;Multi objective&#039;&#039;: There is a very small chance the error can temporarily decrease but it should be safe to ignore.  In this case it is best to use a multi objective enabled modeling algorithm (available in version 6.1.)&lt;br /&gt;
# &#039;&#039;&#039;Sampling on&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;Single objective&#039;&#039;: inside each modeling iteration the error should always monotonically decrease.  At each sampling iteration the best models are updated (to reflect the new data), thus there the best model score may increase, this is normal behavior(*).  It is possible that the error increases for a short while, but as more samples come in it should decrease again.  If this does not happen you are using a poor measure or poor hyperparameter optimization algorithm, or there is a problem with the modeling technique itself (e.g., clustering in the datapoints is causing numerical problems).&lt;br /&gt;
## &#039;&#039;Multi objective&#039;&#039;: Combination of 1.2 and 2.1.&lt;br /&gt;
&lt;br /&gt;
(*) This is normal if you are using a measure like cross validation that is less reliable on little data than on more data.  However, in some cases you may wish to override this behavior if you are using a measure that is independent of the number of samples the model is trained with (e.g., a dense, external validation set).  In this case you can force a monotonic decrease by setting the &#039;keepOldModels&#039; option in the SUMO tag to true.  Use with caution!&lt;/div&gt;</summary>
		<author><name>Kcrombec</name></author>
	</entry>
</feed>