bespiegelingen over Verkavelingsvlaams en kuddegedrag
26-03-2009
Van de kudde naar de (vee)markt
De meest voor de hand liggende uitbreiding van duolog is natuurlijk van twee naar meerdere sprekers. Zo creëren we in de virtuele wereld de pendant van wat in de taalwetenschappelijke literatuur een linguïstische markt wordt genoemd - het geheel van communicatieve uitwisselingen tussen sprekers. Het programmaatje dat zulks doet is dialog:
dialog <- function(sym,num,mul=1,sim=10000) { len <- length(sym) spr <- 1:num out <- matrix(1,nrow=len,ncol=num,dimnames=list(sym,paste("spr",spr,sep=""))) while ((((sum(out)/num)-len)/mul)<sim) { for (one in spr) { two <- spr[-one][floor(runif(1,1,num))] out[,two] <- out[,two]+mul*rmultinom(1,1,(out[,one]/sum(out[,one]))) } } out }
Het aantal sprekers is op voorhand vrij te kiezen - het argument num in de functiebeschrijving. Elke iteratie kiest elk van deze sprekers willekeurig een andere spreker - en willekeurig betekent dus dat iedere spreker evenveel kans maakt om gekozen te worden - waaraan hij vervolgens een symbool uit op dezelfde manier als in duolog. Die spreker past dan zijn kansverdeling aan - eveneens zoals in duolog.
Bij een simulatie met tien sprekers krijgen we de volgende resultaten: