{"pageProps":{"post":{"slug":"kelly-criterion","content":{"compiledSource":"/*@jsxRuntime automatic @jsxImportSource react*/\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n p: \"p\",\n h2: \"h2\",\n a: \"a\",\n span: \"span\",\n math: \"math\",\n semantics: \"semantics\",\n mrow: \"mrow\",\n mi: \"mi\",\n annotation: \"annotation\",\n mo: \"mo\",\n mn: \"mn\",\n div: \"div\",\n msup: \"msup\",\n mfrac: \"mfrac\",\n em: \"em\",\n strong: \"strong\",\n munder: \"munder\",\n msub: \"msub\",\n mtable: \"mtable\",\n mtr: \"mtr\",\n mtd: \"mtd\",\n mstyle: \"mstyle\",\n msubsup: \"msubsup\",\n pre: \"pre\",\n code: \"code\",\n img: \"img\"\n }, _provideComponents(), props.components);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Kelly is given credit for the idea of using log utility in gambling and repeated investment problems, as such it is known as the Kelly criterion. Kelly has shown not only that log is the utility function which maximizes the long-run growth rate, but that this utility function is myopic in the sense that period-by-period maximization based only on current capital is optimal. Therefore, a sizing scheme that uses the Kelly fraction generally finishes with more wealth than any other chosen proportional scheme.\"\n }), \"\\n\", _jsxs(_components.h2, {\n id: \"kelly-criterion\",\n children: [_jsx(_components.a, {\n className: \"anchor\",\n href: \"#kelly-criterion\",\n children: _jsx(_components.span, {\n className: \"icon icon-link\"\n })\n }), \"Kelly criterion\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Consider the scenario with Bernoulli trials, where one wins with probability \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"p\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"p\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n })]\n })\n })]\n })\n }), \" and loses with probability \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"q\"\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsx(_components.mi, {\n children: \"p\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"q = 1 - p\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.7278em\",\n verticalAlign: \"-0.0833em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n })]\n })]\n })]\n })\n }), \". Kelly's analyses showed that maximizing the long-run growth rate of the investor's fortune is equivalent to maximizing the expected value of the log of each period's wealth. If the payoff is \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"B\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"B\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6833em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.05017em\"\n },\n children: \"B\"\n })]\n })\n })]\n })\n }), \" for a win and \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mo, {\n children: \"−\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"-1\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.7278em\",\n verticalAlign: \"-0.0833em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n })]\n })\n })]\n })\n }), \" for a loss, then the edge is \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"B\"\n }), _jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsx(_components.mi, {\n children: \"q\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"Bp - q\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.8778em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"Bp\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n })]\n })]\n })]\n })\n }), \", the odds are \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"B\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"B\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6833em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.05017em\"\n },\n children: \"B\"\n })]\n })\n })]\n })\n }), \", and the expected capital growth is given by\"]\n }), \"\\n\", _jsx(_components.div, {\n className: \"math math-display\",\n children: _jsx(_components.span, {\n className: \"katex-display\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n display: \"block\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n mathvariant: \"double-struck\",\n children: \"E\"\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mi, {\n children: \"W\"\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsx(_components.mi, {\n children: \"B\"\n }), _jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsx(_components.mi, {\n children: \"q\"\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"\\\\mathbb{E} \\\\log W = p \\\\log(1 + Bf) + q \\\\log(1 - f)\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.8889em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathbb\",\n children: \"E\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.13889em\"\n },\n children: \"W\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.05017em\"\n },\n children: \"B\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })]\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"where \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"f\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"f\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.8889em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n })]\n })\n })]\n })\n }), \" is the fraction of wealth wagered on each of the trials. The optimal wager for this is\"]\n }), \"\\n\", _jsx(_components.div, {\n className: \"math math-display\",\n children: _jsx(_components.span, {\n className: \"katex-display\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n display: \"block\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsxs(_components.msup, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mo, {\n children: \"⋆\"\n })]\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsxs(_components.mfrac, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"B\"\n }), _jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsx(_components.mi, {\n children: \"q\"\n })]\n }), _jsx(_components.mi, {\n children: \"B\"\n })]\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsxs(_components.mfrac, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"e\"\n }), _jsx(_components.mi, {\n children: \"d\"\n }), _jsx(_components.mi, {\n children: \"g\"\n }), _jsx(_components.mi, {\n children: \"e\"\n })]\n }), _jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"o\"\n }), _jsx(_components.mi, {\n children: \"d\"\n }), _jsx(_components.mi, {\n children: \"d\"\n }), _jsx(_components.mi, {\n children: \"s\"\n })]\n })]\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"f^\\\\star = \\\\frac{Bp - q}{B} = \\\\frac{edge}{odds}\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.9331em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsx(_components.span, {\n className: \"vlist-t\",\n children: _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.7387em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-3.113em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mbin mtight\",\n children: \"⋆\"\n })\n })]\n })\n })\n })\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"2.0463em\",\n verticalAlign: \"-0.686em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mopen nulldelimiter\"\n }), _jsx(_components.span, {\n className: \"mfrac\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"1.3603em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-2.314em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.05017em\"\n },\n children: \"B\"\n })\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.23em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"frac-line\",\n style: {\n borderBottomWidth: \"0.04em\"\n }\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.677em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"Bp\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n })]\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.686em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"mclose nulldelimiter\"\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"2.0574em\",\n verticalAlign: \"-0.686em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mopen nulldelimiter\"\n }), _jsx(_components.span, {\n className: \"mfrac\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"1.3714em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-2.314em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"o\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"dd\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"s\"\n })]\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.23em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"frac-line\",\n style: {\n borderBottomWidth: \"0.04em\"\n }\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.677em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"e\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"d\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"g\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"e\"\n })]\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.686em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"mclose nulldelimiter\"\n })]\n })]\n })]\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"In this case, we are not maximizing \", _jsx(_components.em, {\n children: \"expected\"\n }), \" wealth but \", _jsx(_components.em, {\n children: \"typical\"\n }), \" wealth as the average values are heavily distorted by the unlikely scenarios where the trader wins every trade. By maximizing the logarithm of expected wealth we eliminate the possibility of bankruptcy.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The adoption of logarithmic utility follows from the general idea of \", _jsx(_components.strong, {\n children: \"declining marginal utility\"\n }), \" of wealth, where marginal utility should be proportional to current wealth. That is, rich and poor alike worry the same about a 10% shock to wealth. Equivalently, the utility of spending 10% of wealth on something is the same at all wealth levels. This idea is also called \", _jsx(_components.em, {\n children: \"risk aversion\"\n }), \" and \", _jsx(_components.em, {\n children: \"concavity\"\n }), \" which is crucial in modern decision theory.\"]\n }), \"\\n\", _jsxs(_components.h2, {\n id: \"optimal-betting-strategy\",\n children: [_jsx(_components.a, {\n className: \"anchor\",\n href: \"#optimal-betting-strategy\",\n children: _jsx(_components.span, {\n className: \"icon icon-link\"\n })\n }), \"Optimal betting strategy\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Edward O. Thorp discusses the general theory of optimal betting over time on favourable games or investments in the book \", _jsx(_components.em, {\n children: \"The Kelly Capital Growth Investment Criterion\"\n }), \". Favourable games are those with a strategy such\\nthat\"]\n }), \"\\n\", _jsx(_components.div, {\n className: \"math math-display\",\n children: _jsx(_components.span, {\n className: \"katex-display\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n display: \"block\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"P\"\n }), _jsxs(_components.mrow, {\n children: [_jsx(_components.mo, {\n fence: \"true\",\n children: \"(\"\n }), _jsxs(_components.munder, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"lim\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n })]\n }), _jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"N\"\n }), _jsx(_components.mo, {\n children: \"→\"\n }), _jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"∞\"\n })]\n })]\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"W\"\n }), _jsx(_components.mi, {\n children: \"N\"\n })]\n }), _jsx(_components.mo, {\n children: \">\"\n }), _jsx(_components.mn, {\n children: \"0\"\n }), _jsx(_components.mo, {\n fence: \"true\",\n children: \")\"\n })]\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"P\\\\left( \\\\lim_{N \\\\rightarrow \\\\infty} W_N > 0 \\\\right) = 1\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1.8943em\",\n verticalAlign: \"-0.7443em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.13889em\"\n },\n children: \"P\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"minner\",\n children: [_jsx(_components.span, {\n className: \"mopen delimcenter\",\n style: {\n top: \"0em\"\n },\n children: _jsx(_components.span, {\n className: \"delimsizing size2\",\n children: \"(\"\n })\n }), _jsx(_components.span, {\n className: \"mop op-limits\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.6944em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-2.3557em\",\n marginLeft: \"0em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsxs(_components.span, {\n className: \"mord mtight\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal mtight\",\n style: {\n marginRight: \"0.10903em\"\n },\n children: \"N\"\n }), _jsx(_components.span, {\n className: \"mrel mtight\",\n children: \"→\"\n }), _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"∞\"\n })]\n })\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n children: _jsx(_components.span, {\n className: \"mop\",\n children: \"lim\"\n })\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.7443em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.13889em\"\n },\n children: \"W\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3283em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1389em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mathnormal mtight\",\n style: {\n marginRight: \"0.10903em\"\n },\n children: \"N\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \">\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"0\"\n }), _jsx(_components.span, {\n className: \"mclose delimcenter\",\n style: {\n top: \"0em\"\n },\n children: _jsx(_components.span, {\n className: \"delimsizing size2\",\n children: \")\"\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6444em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n })]\n })]\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"where \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"W\"\n }), _jsx(_components.mi, {\n children: \"N\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"W_N\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.8333em\",\n verticalAlign: \"-0.15em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.13889em\"\n },\n children: \"W\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3283em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1389em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mathnormal mtight\",\n style: {\n marginRight: \"0.10903em\"\n },\n children: \"N\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \" is the investor's capital after \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"N\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"N\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6833em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10903em\"\n },\n children: \"N\"\n })]\n })\n })]\n })\n }), \" trials. One feature of sports betting which is of interest to Kelly users is the prospect of\\nbetting on several games at once. This also arises in blackjack when (a) player bets on multiple hands or (b) two or more players share a common bankroll.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Suppose we bet simultaneously on two independent favourable coins with\\nbetting fractions \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"f_1\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.8889em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \" and \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"f_2\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.8889em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \" and with success probabilities \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"p_1\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"0em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \" and \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"p_2\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"0em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \", respectively. Then the expected growth rate is given by\"]\n }), \"\\n\", _jsx(_components.div, {\n className: \"math math-display\",\n children: _jsx(_components.span, {\n className: \"katex-display\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n display: \"block\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mtable, {\n rowspacing: \"0.25em\",\n columnalign: \"right left\",\n columnspacing: \"0em\",\n children: [_jsxs(_components.mtr, {\n children: [_jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"g\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.mo, {\n separator: \"true\",\n children: \",\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n }), _jsx(_components.mo, {\n children: \"=\"\n })]\n })\n })\n }), _jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsxs(_components.mrow, {\n children: [_jsx(_components.mrow, {}), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n })\n })\n })]\n }), _jsxs(_components.mtr, {\n children: [_jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsx(_components.mrow, {})\n })\n }), _jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsxs(_components.mrow, {\n children: [_jsx(_components.mrow, {}), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"q\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n })\n })\n })]\n }), _jsxs(_components.mtr, {\n children: [_jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsx(_components.mrow, {})\n })\n }), _jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsxs(_components.mrow, {\n children: [_jsx(_components.mrow, {}), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"q\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"p\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n })\n })\n })]\n }), _jsxs(_components.mtr, {\n children: [_jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsx(_components.mrow, {})\n })\n }), _jsx(_components.mtd, {\n children: _jsx(_components.mstyle, {\n scriptlevel: \"0\",\n displaystyle: \"true\",\n children: _jsxs(_components.mrow, {\n children: [_jsx(_components.mrow, {}), _jsx(_components.mo, {\n children: \"+\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"q\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"q\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.mo, {\n children: \"−\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n })\n })\n })]\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"\\\\begin{aligned}\\n g(f_1, f_2) =& p_1 p_2 \\\\log(1 + f_1 + f_2)\\\\\\\\\\n &+ p_1 q_2 \\\\log(1 + f_1 - f_2)\\\\\\\\\\n &+ q_1 p_2 \\\\log(1 - f_1 + f_2)\\\\\\\\\\n &+ q_1 q_2 \\\\log(1 - f_1 - f_2)\\n\\\\end{aligned}\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"6em\",\n verticalAlign: \"-2.75em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: _jsxs(_components.span, {\n className: \"mtable\",\n children: [_jsx(_components.span, {\n className: \"col-align-r\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"3.25em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-5.41em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"g\"\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mpunct\",\n children: \",\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n })]\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.91em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\"\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-2.41em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\"\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-0.91em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\"\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"2.75em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"col-align-l\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"3.25em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-5.41em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord\"\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"0em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"0em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.91em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"0em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.0359em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-2.41em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.0359em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"p\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"0em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-0.91em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"3em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.0359em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"q\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.0359em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"−\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"2.75em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })\n })]\n })\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To find the optimal \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msubsup, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"∗\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"f_1^*\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.9425em\",\n verticalAlign: \"-0.2481em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.6887em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-2.4519em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.063em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mbin mtight\",\n children: \"∗\"\n })\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.2481em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \" and \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsxs(_components.msubsup, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n }), _jsx(_components.mo, {\n children: \"∗\"\n })]\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"f_2^*\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.9425em\",\n verticalAlign: \"-0.2481em\"\n }\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsxs(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.6887em\"\n },\n children: [_jsxs(_components.span, {\n style: {\n top: \"-2.4519em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n }), _jsxs(_components.span, {\n style: {\n top: \"-3.063em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mbin mtight\",\n children: \"∗\"\n })\n })]\n })]\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.2481em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n })]\n })\n })]\n })\n }), \" we solve the simultaneous equations \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"∂\"\n }), _jsx(_components.mi, {\n children: \"g\"\n }), _jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"/\"\n }), _jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"∂\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"1\"\n })]\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsx(_components.mn, {\n children: \"0\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"\\\\partial g / \\\\partial f_1 = 0\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n style: {\n marginRight: \"0.05556em\"\n },\n children: \"∂\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"g\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"/\"\n }), _jsx(_components.span, {\n className: \"mord\",\n style: {\n marginRight: \"0.05556em\"\n },\n children: \"∂\"\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"1\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6444em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"0\"\n })]\n })]\n })]\n })\n }), \" and \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"∂\"\n }), _jsx(_components.mi, {\n children: \"g\"\n }), _jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"/\"\n }), _jsx(_components.mi, {\n mathvariant: \"normal\",\n children: \"∂\"\n }), _jsxs(_components.msub, {\n children: [_jsx(_components.mi, {\n children: \"f\"\n }), _jsx(_components.mn, {\n children: \"2\"\n })]\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsx(_components.mn, {\n children: \"0\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"\\\\partial g / \\\\partial f_2 = 0\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n style: {\n marginRight: \"0.05556em\"\n },\n children: \"∂\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"g\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"/\"\n }), _jsx(_components.span, {\n className: \"mord\",\n style: {\n marginRight: \"0.05556em\"\n },\n children: \"∂\"\n }), _jsxs(_components.span, {\n className: \"mord\",\n children: [_jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.10764em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"msupsub\",\n children: _jsxs(_components.span, {\n className: \"vlist-t vlist-t2\",\n children: [_jsxs(_components.span, {\n className: \"vlist-r\",\n children: [_jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.3011em\"\n },\n children: _jsxs(_components.span, {\n style: {\n top: \"-2.55em\",\n marginLeft: \"-0.1076em\",\n marginRight: \"0.05em\"\n },\n children: [_jsx(_components.span, {\n className: \"pstrut\",\n style: {\n height: \"2.7em\"\n }\n }), _jsx(_components.span, {\n className: \"sizing reset-size6 size3 mtight\",\n children: _jsx(_components.span, {\n className: \"mord mtight\",\n children: \"2\"\n })\n })]\n })\n }), _jsx(_components.span, {\n className: \"vlist-s\",\n children: \"​\"\n })]\n }), _jsx(_components.span, {\n className: \"vlist-r\",\n children: _jsx(_components.span, {\n className: \"vlist\",\n style: {\n height: \"0.15em\"\n },\n children: _jsx(_components.span, {})\n })\n })]\n })\n })]\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6444em\"\n }\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"0\"\n })]\n })]\n })]\n })\n }), \". Simultaneous sports bets were generally on different games and typically not numerous so they were approximately independent and the appropriate fractions were only moderately less than the corresponding single bet fractions. However, in some cases where we bet on correlated markets within the same sports event, neglecting the correlation between different outcomes would result in significant deviations from the optimal betting fraction.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"An extreme correlation often can be exploited to great advantage through the techniques of \", _jsx(_components.strong, {\n children: \"hedging\"\n }), \". The risk-averse investor may be able to acquire combinations of securities where the expectations add and the risks tend to cancel. Note that the optimal betting fraction may be very large when the estimated edge is high or odds are low.\"]\n }), \"\\n\", _jsxs(_components.h2, {\n id: \"numerical-approximation\",\n children: [_jsx(_components.a, {\n className: \"anchor\",\n href: \"#numerical-approximation\",\n children: _jsx(_components.span, {\n className: \"icon icon-link\"\n })\n }), \"Numerical approximation\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Consider the general case where \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n mathvariant: \"bold\",\n children: \"x\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"\\\\mathbf{x}\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.4444em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathbf\",\n children: \"x\"\n })]\n })\n })]\n })\n }), \" is the vector that represents the outcomes of \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"n\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"n\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.4306em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n children: \"n\"\n })]\n })\n })]\n })\n }), \" events with joint probability distribution \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"P\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mi, {\n mathvariant: \"bold\",\n children: \"x\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"P(\\\\mathbf{x})\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.13889em\"\n },\n children: \"P\"\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord mathbf\",\n children: \"x\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })\n })]\n })\n }), \". Then the expected growth rate is given by\"]\n }), \"\\n\", _jsx(_components.div, {\n className: \"math math-display\",\n children: _jsx(_components.span, {\n className: \"katex-display\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n display: \"block\",\n children: _jsxs(_components.semantics, {\n children: [_jsxs(_components.mrow, {\n children: [_jsx(_components.mi, {\n children: \"g\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mi, {\n mathvariant: \"bold\",\n children: \"x\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n }), _jsx(_components.mo, {\n children: \"=\"\n }), _jsx(_components.mo, {\n children: \"∑\"\n }), _jsx(_components.mi, {\n children: \"log\"\n }), _jsx(_components.mo, {\n children: \"⁡\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mn, {\n children: \"1\"\n }), _jsx(_components.mo, {\n children: \"+\"\n }), _jsx(_components.mi, {\n mathvariant: \"bold\",\n children: \"f\"\n }), _jsx(_components.mo, {\n children: \"⋅\"\n }), _jsx(_components.mi, {\n mathvariant: \"bold\",\n children: \"x\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n }), _jsx(_components.mi, {\n children: \"P\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \"(\"\n }), _jsx(_components.mi, {\n mathvariant: \"bold\",\n children: \"x\"\n }), _jsx(_components.mo, {\n stretchy: \"false\",\n children: \")\"\n })]\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"g(\\\\mathbf{x}) = \\\\sum \\\\log(1 + \\\\mathbf{f} \\\\cdot \\\\mathbf{x}) P(\\\\mathbf{x})\"\n })]\n })\n })\n }), _jsxs(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: [_jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"g\"\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord mathbf\",\n children: \"x\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n }), _jsx(_components.span, {\n className: \"mrel\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2778em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1.6em\",\n verticalAlign: \"-0.55em\"\n }\n }), _jsx(_components.span, {\n className: \"mop op-symbol large-op\",\n style: {\n position: \"relative\",\n top: \"0em\"\n },\n children: \"∑\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.1667em\"\n }\n }), _jsxs(_components.span, {\n className: \"mop\",\n children: [\"lo\", _jsx(_components.span, {\n style: {\n marginRight: \"0.01389em\"\n },\n children: \"g\"\n })]\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"+\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.6944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathbf\",\n style: {\n marginRight: \"0.10903em\"\n },\n children: \"f\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n }), _jsx(_components.span, {\n className: \"mbin\",\n children: \"⋅\"\n }), _jsx(_components.span, {\n className: \"mspace\",\n style: {\n marginRight: \"0.2222em\"\n }\n })]\n }), _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"1em\",\n verticalAlign: \"-0.25em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathbf\",\n children: \"x\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.13889em\"\n },\n children: \"P\"\n }), _jsx(_components.span, {\n className: \"mopen\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"mord mathbf\",\n children: \"x\"\n }), _jsx(_components.span, {\n className: \"mclose\",\n children: \")\"\n })]\n })]\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"It is important to note that for an exact solution or an arbitrarily accurate numerical approximation to the simultaneous bet problem, covariance or correlation information is not enough. We need to use the entire joint distribution to construct the \", _jsx(_components.span, {\n className: \"math math-inline\",\n children: _jsxs(_components.span, {\n className: \"katex\",\n children: [_jsx(_components.span, {\n className: \"katex-mathml\",\n children: _jsx(_components.math, {\n xmlns: \"http://www.w3.org/1998/Math/MathML\",\n children: _jsxs(_components.semantics, {\n children: [_jsx(_components.mrow, {\n children: _jsx(_components.mi, {\n children: \"g\"\n })\n }), _jsx(_components.annotation, {\n encoding: \"application/x-tex\",\n children: \"g\"\n })]\n })\n })\n }), _jsx(_components.span, {\n className: \"katex-html\",\n \"aria-hidden\": \"true\",\n children: _jsxs(_components.span, {\n className: \"base\",\n children: [_jsx(_components.span, {\n className: \"strut\",\n style: {\n height: \"0.625em\",\n verticalAlign: \"-0.1944em\"\n }\n }), _jsx(_components.span, {\n className: \"mord mathnormal\",\n style: {\n marginRight: \"0.03588em\"\n },\n children: \"g\"\n })]\n })\n })]\n })\n }), \" function. Here we consider two simple cases where the outcomes are either mutually exclusive (joint probability of events is always zero) or independent (joint probability is the product of marginal probabilities):\"]\n }), \"\\n\", _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-python code-highlight\",\n children: [_jsxs(_components.span, {\n className: \"code-line\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"def\"\n }), \" \", _jsx(_components.span, {\n className: \"token function\",\n children: \"expected_growth_rate_coeff\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" odds\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" mode\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"exclusive\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"if\"\n }), \" mode \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"==\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"independent\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" outcomes \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"stack\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token builtin\",\n children: \"list\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"itertools\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"product\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"0\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" repeat\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"size\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" p \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"prod\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"where\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"outcomes\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \" probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" axis\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"elif\"\n }), \" mode \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"==\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"exclusive\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" outcomes \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"identity\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"size\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" p \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"copy\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"return\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), _jsx(_components.span, {\n className: \"token builtin\",\n children: \"sum\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"p \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"*\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"log\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"+\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), _jsx(_components.span, {\n className: \"token builtin\",\n children: \"sum\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"f \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"*\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"outcomes \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"*\"\n }), \" odds \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" axis\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n })]\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"We can use numerical methods to maximize the expected growth rate and obtain the optimal betting fractions.\"\n }), \"\\n\", _jsx(_components.pre, {\n className: \"language-python\",\n children: _jsxs(_components.code, {\n className: \"language-python code-highlight\",\n children: [_jsxs(_components.span, {\n className: \"code-line\",\n children: [_jsx(_components.span, {\n className: \"token keyword\",\n children: \"def\"\n }), \" \", _jsx(_components.span, {\n className: \"token function\",\n children: \"kelly_criterion\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" odds\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" mode\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"\\\"exclusive\\\"\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" allow_short\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token boolean\",\n children: \"False\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" tol \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1e-6\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" bound \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"+\"\n }), \" tol\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \" tol\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"if\"\n }), \" allow_short \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"else\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"0\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \" tol\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" con \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"{\"\n }), _jsx(_components.span, {\n className: \"token string\",\n children: \"'type'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'ineq'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" \", _jsx(_components.span, {\n className: \"token string\",\n children: \"'fun'\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"lambda\"\n }), \" f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token number\",\n children: \"1\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \" tol \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), _jsx(_components.span, {\n className: \"token builtin\",\n children: \"sum\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), _jsx(_components.span, {\n className: \"token builtin\",\n children: \"abs\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"}\"\n }), \"\\n\"]\n }), _jsx(_components.span, {\n className: \"code-line\",\n children: \" \\n\"\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" res \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \" minimize\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"lambda\"\n }), \" f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \":\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"-\"\n }), \"expected_growth_rate_coeff\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"f\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" odds\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \" mode\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"zeros\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"size\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" bounds\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"[\"\n }), \"bound\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"]\"\n }), \" \", _jsx(_components.span, {\n className: \"token operator\",\n children: \"*\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"size\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"probs\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" constraints\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), \"con\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \",\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" tol\", _jsx(_components.span, {\n className: \"token operator\",\n children: \"=\"\n }), _jsx(_components.span, {\n className: \"token number\",\n children: \"1e-12\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" \", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n }), _jsxs(_components.span, {\n className: \"code-line\",\n children: [\" \", _jsx(_components.span, {\n className: \"token keyword\",\n children: \"return\"\n }), \" np\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"array\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \"(\"\n }), \"res\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \".\"\n }), \"x\", _jsx(_components.span, {\n className: \"token punctuation\",\n children: \")\"\n }), \"\\n\"]\n })]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"One interesting observation is that this method automatically takes advantage of the \", _jsx(_components.strong, {\n children: \"arbitrage betting\"\n }), \" opportunities in mutually exclusive events by placing the maximum fraction in a bet for a guaranteed profit. However, in practice, there are certain risks involved with arbitrage betting such as bet cancellation and odds slippage. These uncertainties can result in unmatched bets which would require many successful bets to make up for the loss.\"]\n }), \"\\n\", _jsxs(_components.h2, {\n id: \"strategy-comparison\",\n children: [_jsx(_components.a, {\n className: \"anchor\",\n href: \"#strategy-comparison\",\n children: _jsx(_components.span, {\n className: \"icon icon-link\"\n })\n }), \"Strategy comparison\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"We can use Monte Carlo simulation to compare the performance of different betting strategies by repeatedly sampling from the same probability distribution of outcomes and plotting the profit over time in a logarithmic scale. The result shows that sequentially betting on every single event gives a much worse performance than the optimal Kelly strategy that considers the joint probability distribution.\"\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.img, {\n src: \"https://cdn.sanity.io/images/xj3nsfqa/production/1ce8de327392a1c7797e9048ad91bf15db792a38-576x432.png\",\n alt: \"image\"\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"As we saw in the simulations, Kelly's sizing is exceedingly volatile. To deal with these extreme drawdowns as well as errors in edge estimates, it is common for practitioners to trade at a fraction of the Kelly ratio. This allows us to easily tune our desired level of risk at the expense of lower expected returns.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? _jsx(MDXLayout, Object.assign({}, props, {\n children: _jsx(_createMdxContent, props)\n })) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"_id":"2e110d8e-0cc9-4da8-88a5-0149853a19d4","title":"Kelly Criterion and Optimal Betting Strategy","date":"2022-11-24T02:55:02.603Z","excerpt":"Kelly is given credit for the idea of using log utility in gambling and repeated investment problems, as such it is known as the Kelly criterion.","coverImage":{"_type":"image","asset":{"_ref":"image-39b81e32c939eb057f7d07d2c822c190709c7ca0-337x500-jpg","_type":"reference"}},"tweets":[],"readingTime":"6 min read"}},"__N_SSG":true}