'deki genetik algoritmalar için belirtildiği gibi değil R için genalg
kitaplığı ile çalışıyorum ve bir ikili genel algoritma çalıştırdığımda tüm nesillerimi kaydetmeye çalışıyorum. Kütüphanede bunun için yerleşik bir metot var gibi görünmüyor, bu yüzden benim denemem, değerlendirme fonksiyonundan gelen her kromozomu, x
'u kurtarmaktı.Neden gerçek üretim sayısı R
Bu yöntemi test etmek için, değerlendirilen tüm kromozomları görebilmek için değerlendirme işlevine print(x)
eklemeye çalıştım. Bununla birlikte, basılı kromozomların sayısı her zaman şüphelendiğim şeyle uyuşmuyor.
Basılı kromozomların sayısının, nüfus büyüklüğünün yineleme sayısına eşit olacağına inanıyorum, ama her zaman denemek gibi görünmüyor.
sorun
Ben kromozomların sayısıiter
kez
popSize
farklı olması durumunda söyleyemem hangi her kromozom ait olduğu nesil (veya yineleme) dan bilmek istiyorum olmasıdır.
Bunun nedeni nedir ve nasıl "nasıl düzeltebilirim". Ya da her kromozomu kurtarmanın başka bir yolu var mı? Aşağıda
her bir deneme (nesil) bir alt kümesi de gibi görünüyor, ben değerlendirme fonksiyonu 2x5 kromozom yazdırmak düşündüm bir örnek, ama yalnızca işlev kodu baktığımızda 8.library(genalg)
library(ggplot2)
dataset <- data.frame(
item = c("pocketknife", "beans", "potatoes", "unions", "sleeping bag", "rope", "compass"),
survivalpoints = c(10, 20, 15, 2, 30, 10, 30),
weight = c(1, 5, 10, 1, 7, 5, 1))
weightlimit <- 20
evalFunc <- function(x) {
print(x)
current_solution_survivalpoints <- x %*% dataset$survivalpoints
current_solution_weight <- x %*% dataset$weight
if (current_solution_weight > weightlimit)
return(0) else return(-current_solution_survivalpoints
}
iter = 2
popSize = 5
set.seed(1)
GAmodel <- rbga.bin(size = 7, popSize = popSize, iters = iter, mutationChance = 0.1,elitism = T, evalFunc = evalFunc)
Çok teşekkürler. Tam olarak aradığım şey buydu. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' (GAmodel) ''i çalıştırdığımda görebildiğim nesneler mi yoksa daha fazlası mı var – Christoffer
@Christoffer: Sanırım bu, sonuç nesnesinin aynı tür ve özelliklerine sahip bir nesne (temel olarak izleme işlevi her yinelemenin çıktısını gösterir) – digEmAll
@ Christoffer: yine de yazdırmaya çalışın;) – digEmAll