トロピカル演算、min-plusとmax-plus

  • トロピカル演算では
    • x \otimes y = x+y
    • x \oplus y = min(x,y) もしくはx \oplus y = max(x,y)と言う
  • これを極限形式で書くと
    • max-plusの場合は
      • x \otimes y = \lim_{h \to +0} h \log{e^{x/h} \times e^{y/h}}
      • x \oplus y = \lim_{h \to +0} h \log{e^{x/h} + e^{y/h}}
    • min-plus の場合は、x,yを-x,-yに取り換えて
      • x \otimes y = \lim_{h \to +0} -h \log{e^{-x/h} \times e^{-y/h}}
      • x \oplus y = \lim_{h \to +0} -h \log{e^{-x/h} + e^{-y/h}}
  • min-plus, max-plusのいずれにしても\otimesの方はhによらずx+yになり、\oplusの方はmin, maxと値が分かれる
x <- 2
y <- 3

h <- 2^(seq(from=-5,to=10,length=1000))
#h <- h[-1]

v <- rep(0,length(h))
v2 <- v3 <- v4<- v1
for(i in 1:length(h)){
  v[i] <- h[i]  * log(exp(x/h[i]) + exp(y/h[i]))
  v2[i] <- h[i] * log(exp(x/h[i])*exp(y/h[i]))
  v3[i] <- -h[i] * log(exp(-x/h[i]) + exp(-y/h[i]))
  v4[i] <- - h[i] * log(exp(-x/h[i])*exp(-y/h[i]))
}
par(mfcol=c(2,2))
plot(log(h),v)
plot(log(h),v2)
plot(log(h),v3)
plot(log(h),v4)

v[1]
v2[1]
v3[1]
v4[1]
> v[1]
[1] 3
> v2[1]
[1] 5
> v3[1]
[1] 2
> v4[1]
[1] 5