Skip to contents

Formula: q(x|y) = r(x) P(y|x) / sum_x' r(x') P(y|x'); r(x) <- exp(sum_y P(y|x) log q(x|y)) normalised; C = max_r I(X;Y)

Usage

Chancap(P, iters = 200)

Arguments

P

See Usage.

iters

See Usage.

Value

List with capacity_bits, capacity_nats, input_dist, trace (nats per iteration), iterations.

References

Blahut (1972), Computation of channel capacity and rate-distortion functions, IEEE Transactions on Information Theory 18:460-473; Arimoto (1972), same volume, 14-20. Neither is held locally; the alternating update is the standard published form of the algorithm.

Examples

Chancap(P = 1)
#> $capacity_bits
#> [1] 0
#> 
#> $capacity_nats
#> [1] 0
#> 
#> $input_dist
#> [1] 1
#> 
#> $trace
#>   [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>  [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>  [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [149] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> [186] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#> 
#> $iterations
#> [1] 200
#> 
#> $method
#> [1] "Channel capacity (Blahut-Arimoto)"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"