## splitting a field by annealing

**A** recent riddle [from The Riddle] that I pondered about during a [long!] drive to Luxembourg last weekend was about splitting a square field into three lots of identical surface for a minimal length of separating wire… While this led me to conclude that the best solution was a T like separation, I ran a simulated annealing R code on my train trip to ~~Autrans~~Valence, seemingly in agreement with this conclusion.I discretised the square into n² units and explored configurations by switching two units with different colours, according to a simulated annealing pattern (although unable to impose connectivity on the three regions!):

partz=matrix(1,n,n) partz[,1:(n/3)]=2;partz[((n/2)+1):n,((n/3)+1):n]=3 #counting adjacent units of same colour nood=hood=matrix(4,n,n) for (v in 1:n2) hood[v]=bourz(v,partz) minz=el=sum(4-hood) for (t in 1:T){ colz=sample(1:3,2) #picks colours a=sample((1:n2)[(partz==colz[1])&(hood<4)],1) b=sample((1:n2)[(partz==colz[2])&(hood<4)],1) partt=partz;partt[b]=colz[1];partt[a]=colz[2] #collection of squares impacted by switch nood=hood voiz=unique(c(a,a-1,a+1,a+n,a-n,b-1,b,b+1,b+n,b-n)) voiz=voiz[(voiz>0)&(voiz<n2)] for (v in voiz) nood[v]=bourz(v,partt) if (nood[a]*nood[b]>0){ difz=sum(nood)-sum(hood) if (log(runif(1))<difz^3/(n^3)*(1+log(10*rep*t)^3)){ el=el-difz;partz=partt;hood=nood if (el<minz){ minz=el;cool=partz} }}}

(where bourz computes the number of neighbours), which produces completely random patterns at high temperatures (low t) and which returns to the T configuration (more or less):if not always, as shown below:Once the (a?) solution was posted on The Riddler, it appeared that one triangular (Y) version proved better than the T one [if not started from corners], with a gain of 3% and that a curved separation was even better with an extra gain less than 1% [solution that I find quite surprising as straight lines should improve upon curved ones…]

October 19, 2017 at 2:38 pm

I am fine with a curved separation: after all, the circle minimizes the perimeter for a given area :)

October 19, 2017 at 3:16 pm

Right. I wonder where I got this impression…