-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sonar05.cc
49 lines (39 loc) · 1.32 KB
/
sonar05.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
* \file
* \remark This file is part of ULTRA.
*
* \copyright Copyright (C) 2024 EOS di Manlio Morini.
*
* \license
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/
*
* \see
* https://github.com/morinim/ultra/wiki/sonar
*/
/* CHANGES IN THIS FILE MUST BE APPLIED TO THE LINKED WIKI PAGE */
#include "kernel/ultra.h"
int main()
{
using namespace ultra;
// READING INPUT DATA
src::dataframe::params params;
params.output_index = src::dataframe::params::index::back;
src::problem prob("sonar.csv", params);
// SETTING UP SYMBOLS
prob.setup_symbols();
// TWEAKING THE PARAMETERS
prob.params.evolution.generations = 600;
prob.params.evolution.brood_recombination = 3;
prob.params.team.individuals = 3;
// SEARCHING
src::basic_search<alps_es, src::binary_evaluator<gp::individual>> s(prob);
s.validation_strategy<src::holdout_validation>(prob);
const auto result(s.run(5));
std::cout << "\nCANDIDATE SOLUTION\n"
<< out::c_language << result.best_individual
<< "\n\nACCURACY\n" << *result.best_measurements.accuracy * 100.0
<< '%'
<< "\n\nFITNESS\n" << *result.best_measurements.fitness << '\n';
}