Description Usage Arguments Details Value Author(s) See Also Examples
This function simply returns the maximum possible cost for a given cost function, over the space of the input and output alphabets. This function is useful for determining an appropriate scaling constant for the cost function.
1 | MaximumCost(x, y, rho.fn, ...)
|
x |
The input or source alphabet for the channel. Either a vector or a matrix. For a vector, each element corresponds to one symbol in the input alphabet. For a matrix, each row corresponds to one symbol. |
y |
The output alphabet for the channel. This can either be a vector or a matrix. |
rho.fn |
The cost function for the channel, defining rho.fn(x, y) over the domain of x and y. This function should accept vectorized arguments. |
... |
Optional arguments that are passed to the cost function. |
When calling the routine BlahutAlgorithm, it is possible that cost
functions with a maximum cost substantially larger than 1 may lead to
numerical under- or over-flow issues. This can be resolved by
normalizing the cost function so that its maximum value is one. Note
that multiplying a cost funciton by a positive scalar does not alter
the resulting optimal channel. This scaling constant can be passed to
the routine BlahutAlgorithm as the argument rho.scale
.
The function returns a single numeric value that corresponds to the maximum cost over the space of the channel input and output alphabets.
Chris R. Sims
1 2 3 4 5 6 7 8 9 10 11 12 | # Define a discretized Gaussian information source
x <- seq(from = -10, to = 10, length.out = 100)
Px <- dnorm(x, mean = 0, sd = 3)
Px <- Px / sum(Px) # Ensure that probability sums to 1
y <- x # The destination alphabet is the same as the source
# Define a quadratic cost function
cost.function <- function(x, y) {
(y - x)^2
}
MaximumCost(x, y, cost.function)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.