w = RandomReal[{0, 1}, 10]; b = RandomReal[{0.5, 1}, 10]; a = RandomReal[{0, .5}]; rr = Array[r, 10]; Minimize[{w.Log@rr, Thread[a < rr < b]}, rr]