The reason I asked for Clarification as to whether probabillities
p,q,r are adjustable parameters in your problem, as I believe a,b,c
are (relative allocations to components of the portfolio), is that
without being required to choose optimal p,q,r (if these are "given"),
then your problem can be solved explicitly.
Briefly described, the strategy is to increase the component(s) a,b,c
which have the largest corresponding first-order partial derivative.
If more than one component shares equally with another the largest
partial derivative, then these components must increase together to
keep that equality. The optimal allocation in this circumstance is
given by "steepest ascent".
Consider p,q,r as constants, and maximize g(a,b,c) = ln(G) with respect to:
0 < a,b,c ; a + b + c <= 1
The first thing we will show is that the maximum occurs when a+b+c =
1. I recognize that you did not explicitly state that the boundary
a+b+c = 1 is allowed, because you restate the problem with the strict
0 < a + b + c < 1
However the maximum occurs on the boundary, so mathematically if you
wish to exclude the boundary, then you will be able to approach the
maximum of g (or G) as closely as desired but never attain it.
To see why the maximum is reached only with a + b + c = 1, let's first
examine the partial derivatives of g(a,b,c):
[1st Order Partial Derivatives]
gradient g = [ p/(k_1 + a) , q/(k_2 + b) , r/(k_3 + c) ]
[2nd Order Partial Derivatives]
Hessian g = diag( -p/(k_1 + a)^2, -q/(k_2 + b)^2 , -r/(k_3 + c)^2 )
Now suppose that a maximum value of g occurs at some point (a,b,c) for which:
a + b + c < 1
But at least one of the components of g (first-order partials) is
positive. In fact any one of them for which the corresponding
probabilty p,q,r is positive is also positive, and p+q+r = 1.
Increasing that component as allowed by the "slack" in constraint a +
b + c < 1 would locally increase the value of g (by virtue of the
positive partial derivative).
Thus the maximum of g cannot occur at an interior point a + b + c < 1,
and could only occur at a boundary point a + b + c = 1, since
continuing to increase the value of any component a,b,c corresponding
to a positive first partial derivative as above will continue to
But we can say more. We can explicitly compute the allocation of
assets that maximizes g. Begin by ordering the values of the first
a = b = c = 0
which without loss of generality we may assume (by relabeling if necessary) to be:
p/k_1 >= q/k_2 >= r/k_3 > 0
Now if we increase a > 0, then g increases because dg/da > 0, but at
the same time the first partial dg/da _decreases_ (as we can see from
the negativity of the second partial d^g/da^2, first diagonal entry of
Hessian of g).
What this means is that if we do nothing else besides increase a, the value of:
dg/da = p/(k_1 + a)
will decrease, possibly becoming equal to:
dg/db = q/k_2 when b = 0
before a reaches 1. In fact the two may have started out being equal.
If dg/da becomes equal to dg/db by increasing a (or if they start out
being equal), then from that point on we increase a and b
simultaneously in a manner that keeps these two partials equal.
Let's see how this works. Suppose at a_1 we have reached equality:
p/(k_1 + a_1) = q/k_2
How should we further increase a and b so that dg/da = dg/db?
(k_1 + a)/p = (k_2 + b)/q
we can solve for a as a function of increasing b:
a = (p/q)b + (p/q)k_2 - k_1
with the initial value that a = a_1 when b = 0 in this expression.
Note that the increasing value of a depends linearly on increasing b,
a + b = (1 + (p/q))b + (p/q)k_2 - k_1
Likewise if we were to reach a point where all three partials are equal:
dg/da = dg/db = dg/c
before reaching the limiting condition a + b + c = 1, then we must
allocate the remaining increases in a,b,c so that the three partials
remain equal. This is similar to the above, except that now a,b are
each linear functions of c, and we stop adjusting a,b,c when a + b + c
reaches the bounding value 1.
This analysis can be interpreted as giving the optimal allocation of
portfolio adjustments at any increment a+b+c between 0 and 1.