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]