La parte di definizione della funzione di Loss e di creazione del dataframe è in comune con l’algoritmo precedente

source("birra.R")
input=c(runif(1,50,100),runif(1,10,20))
output=birra(input)
L=output[1]+output[2]

parametri<-c(input[1],input[2],output[1],output[2],L)
nomi_col<-c("Malto","Luppolo","Sodio","Potassio","L")
df=data.frame()

DataFrame risultante

Statistiche di sintesi

summary(df) 
##      Malto          Luppolo          Sodio          Potassio    
##  Min.   :50.00   Min.   :10.00   Min.   :3.035   Min.   :26.44  
##  1st Qu.:55.60   1st Qu.:10.00   1st Qu.:3.035   1st Qu.:26.45  
##  Median :59.25   Median :10.14   Median :3.158   Median :26.76  
##  Mean   :58.61   Mean   :10.75   Mean   :3.338   Mean   :26.81  
##  3rd Qu.:60.23   3rd Qu.:10.64   3rd Qu.:3.634   3rd Qu.:26.76  
##  Max.   :67.31   Max.   :17.87   Max.   :4.974   Max.   :29.95  
##        L        
##  Min.   :29.56  
##  1st Qu.:29.61  
##  Median :29.80  
##  Mean   :30.15  
##  3rd Qu.:30.47  
##  Max.   :34.65

Valore di ottimo

tail(df,n=1)
##         Malto Luppolo    Sodio Potassio        L
## 1000 53.18429 10.5698 3.119529 26.44204 29.56157

Grafico della funzione

plot(df$L,type="h",col="darkblue",main="Funzione di Loss",xlab="Iterazioni",ylab="Sodio+Potassio")