{"id":665,"date":"2022-01-16T18:10:14","date_gmt":"2022-01-16T10:10:14","guid":{"rendered":"http:\/\/120.55.184.7\/?p=665"},"modified":"2025-04-19T00:38:43","modified_gmt":"2025-04-18T16:38:43","slug":"kuhn-munkres%e5%b8%a6%e6%9d%83%e4%ba%8c%e5%88%86%e5%9b%be%e6%9c%80%e5%a4%a7%e6%9d%83%e5%8c%b9%e9%85%8d","status":"publish","type":"post","link":"https:\/\/beijian99.top\/?p=665","title":{"rendered":"Kuhn-Munkres\u5e26\u6743\u4e8c\u5206\u56fe\u6700\u5927\u6743\u5339\u914d"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>KM\u7b97\u6cd5\uff08Kuhn-Munkres\u7b97\u6cd5\uff09\u662f\u89e3\u51b3<strong>\u5e26\u6743\u4e8c\u5206\u56fe\u6700\u5927\u6743\u5339\u914d<\/strong>\u7684\u6838\u5fc3\u7b97\u6cd5\uff0c\u901a\u8fc7\u9876\u6807\u677e\u5f1b\u4e0e\u589e\u5e7f\u8def\u641c\u7d22\uff0c\u5c06\u6700\u5927\u6743\u95ee\u9898\u8f6c\u5316\u4e3a\u76f8\u7b49\u5b50\u56fe\u7684\u5b8c\u5907\u5339\u914d\u95ee\u9898\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. \u7b97\u6cd5\u6838\u5fc3\u601d\u60f3<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1.1 \u4e8c\u5206\u56fe\u4e0e\u6743\u5339\u914d<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e8c\u5206\u56fe<\/strong>\uff1a\u9876\u70b9\u5206\u4e3a\u4e24\u4e2a\u72ec\u7acb\u96c6\u5408\uff08X\u548cY\uff09\uff0c\u6240\u6709\u8fb9\u4ec5\u5b58\u5728\u4e8e\u96c6\u5408\u95f4\u3002<\/li>\n\n\n\n<li><strong>\u6700\u5927\u6743\u5339\u914d<\/strong>\uff1a\u5728\u8fb9\u6743\u975e\u8d1f\u7684\u4e8c\u5206\u56fe\u4e2d\uff0c\u627e\u5230\u8fb9\u6743\u548c\u6700\u5927\u7684\u5339\u914d\uff08\u5141\u8bb8\u90e8\u5206\u9876\u70b9\u4e0d\u5339\u914d\uff0c\u4f46\u9700\u6700\u5927\u5316\u6743\u91cd\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1.2 \u9876\u6807\uff08Vertex Labeling\uff09<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5b9a\u4e49<\/strong>\uff1a\u4e3a\u6bcf\u4e2a\u9876\u70b9\u5206\u914d\u4e00\u4e2a\u6807\u7b7e\u503c\uff0cX\u9876\u70b9\u9876\u6807\u4e3a<code>lx[i]<\/code>\uff0cY\u9876\u70b9\u9876\u6807\u4e3a<code>ly[j]<\/code>\u3002<\/li>\n\n\n\n<li><strong>\u7ea6\u675f\u6761\u4ef6<\/strong>\uff1a<code>lx[i] + ly[j] \u2265 w(i,j)<\/code>\uff0c\u4fdd\u8bc1\u8fb9\u6743\u4e0d\u8d85\u8fc7\u9876\u6807\u548c\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1.3 \u76f8\u7b49\u5b50\u56fe\u4e0e\u5b9a\u7406<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u76f8\u7b49\u5b50\u56fe<\/strong>\uff1a\u7531\u6ee1\u8db3<code>lx[i] + ly[j] = w(i,j)<\/code>\u7684\u8fb9\u6784\u6210\u7684\u5b50\u56fe\u3002<\/li>\n\n\n\n<li><strong>\u5173\u952e\u5b9a\u7406<\/strong>\uff1a\u82e5\u76f8\u7b49\u5b50\u56fe\u5b58\u5728<strong>\u5b8c\u5907\u5339\u914d<\/strong>\uff08\u6240\u6709\u9876\u70b9\u5747\u88ab\u5339\u914d\uff09\uff0c\u5219\u6b64\u5339\u914d\u5373\u4e3a\u539f\u56fe\u7684\u6700\u5927\u6743\u5339\u914d\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. \u7b97\u6cd5\u6d41\u7a0b<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2.1 \u521d\u59cb\u5316\u9876\u6807<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5bf9X\u9876\u70b9\uff1a<code>lx[i] = max{w(i,j)}<\/code>\uff08\u53d6\u4e0ei\u76f8\u8fde\u7684\u6700\u5927\u8fb9\u6743\uff09\u3002<\/li>\n\n\n\n<li>\u5bf9Y\u9876\u70b9\uff1a<code>ly[j] = 0<\/code>\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2.2 \u5bfb\u627e\u589e\u5e7f\u8def<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5728\u76f8\u7b49\u5b50\u56fe\u4e2d\uff0c\u4f7f\u7528<strong>\u5308\u7259\u5229\u7b97\u6cd5<\/strong>\u7684DFS\/BFS\u7b56\u7565\u641c\u7d22\u589e\u5e7f\u8def\u5f84\uff1a<br>\u2022 <strong>\u589e\u5e7f\u8def<\/strong>\uff1a\u4ece\u672a\u5339\u914d\u70b9\u51fa\u53d1\uff0c\u4ea4\u66ff\u7ecf\u8fc7\u975e\u5339\u914d\u8fb9\u548c\u5339\u914d\u8fb9\uff0c\u6700\u7ec8\u5230\u8fbe\u53e6\u4e00\u672a\u5339\u914d\u70b9\u7684\u8def\u5f84\u3002<br>\u2022 <strong>\u8def\u5f84\u53cd\u8f6c<\/strong>\uff1a\u82e5\u627e\u5230\u589e\u5e7f\u8def\uff0c\u53cd\u8f6c\u5339\u914d\u72b6\u6001\uff08\u975e\u5339\u914d\u8fb9\u2192\u5339\u914d\u8fb9\uff0c\u53cd\u4e4b\u4ea6\u7136\uff09\uff0c\u589e\u52a0\u5339\u914d\u8fb9\u6570\u3002<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2.3 \u9876\u6807\u8c03\u6574\u4e0e\u677e\u5f1b<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8c03\u6574\u6761\u4ef6<\/strong>\uff1a\u5f53\u76f8\u7b49\u5b50\u56fe\u65e0\u6cd5\u627e\u5230\u589e\u5e7f\u8def\u65f6\uff0c\u9700\u6269\u5927\u76f8\u7b49\u5b50\u56fe\uff1a<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8ba1\u7b97\u677e\u5f1b\u91cf<\/strong>\uff1a<code>delta = min{lx[i] + ly[j] - w(i,j)}<\/code>\uff0c\u5176\u4e2di\u5728\u4ea4\u9519\u6811\u4e2d\uff0cj\u4e0d\u5728\u3002<\/li>\n\n\n\n<li><strong>\u66f4\u65b0\u9876\u6807<\/strong>\uff1a<br>\u25e6 \u4ea4\u9519\u6811\u4e2d\u7684X\u9876\u70b9\uff1a<code>lx[i] -= delta<\/code>\uff1b<br>\u25e6 \u4ea4\u9519\u6811\u4e2d\u7684Y\u9876\u70b9\uff1a<code>ly[j] += delta<\/code>\u3002<\/li>\n\n\n\n<li><strong>\u66f4\u65b0\u677e\u5f1b\u8868<\/strong>\uff1a\u7ef4\u62a4<code>slack[j]<\/code>\u8bb0\u5f55Y\u9876\u70b9\u6700\u5c0f\u677e\u5f1b\u91cf\uff0c\u52a0\u901f\u540e\u7eed\u8ba1\u7b97\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2.4 \u7ec8\u6b62\u6761\u4ef6<\/strong><\/h4>\n\n\n\n<p>\u91cd\u590d\u4e0a\u8ff0\u6b65\u9aa4\uff0c\u76f4\u5230\u6240\u6709X\u9876\u70b9\u5747\u627e\u5230\u5339\u914d\uff0c\u5f62\u6210<strong>\u5b8c\u5907\u5339\u914d<\/strong>\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. \u65f6\u95f4\u590d\u6742\u5ea6\u4e0e\u4f18\u5316<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6734\u7d20\u5b9e\u73b0<\/strong>\uff1aO(n\u2074)\uff0c\u6bcf\u6b21\u8c03\u6574\u9876\u6807\u9700\u904d\u5386\u6240\u6709\u8fb9\u8ba1\u7b97delta\u3002<\/li>\n\n\n\n<li><strong>\u4f18\u5316\u7248\u672c<\/strong>\uff1aO(n\u00b3)\uff0c\u901a\u8fc7\u677e\u5f1b\u8868<code>slack[j]<\/code>\u8bb0\u5f55\u6700\u5c0f\u5dee\u503c\uff0c\u51cf\u5c11\u5197\u4f59\u8ba1\u7b97\u3002<\/li>\n\n\n\n<li><strong>\u5173\u952e\u4f18\u5316\u70b9<\/strong>\uff1a<br>\u2022 <strong>\u677e\u5f1b\u8868\u7ef4\u62a4<\/strong>\uff1a\u6bcf\u6b21DFS\/BFS\u65f6\u52a8\u6001\u66f4\u65b0<code>slack[j]<\/code>\uff0c\u907f\u514d\u5168\u91cf\u8ba1\u7b97\u3002<br>\u2022 <strong>\u4ea4\u9519\u6811\u590d\u7528<\/strong>\uff1a\u8bb0\u5f55\u672a\u5339\u914d\u8def\u5f84\u72b6\u6001\uff0c\u51cf\u5c11\u91cd\u590d\u641c\u7d22\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. \u5e94\u7528\u573a\u666f<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4efb\u52a1\u5206\u914d<\/strong>\uff1a\u5982\u5c06n\u4e2a\u4efb\u52a1\u5206\u914d\u7ed9n\u4e2a\u5de5\u4eba\uff0c\u6700\u5927\u5316\u603b\u6548\u7387\u3002<\/li>\n\n\n\n<li><strong>\u8d44\u6e90\u8c03\u5ea6<\/strong>\uff1a\u670d\u52a1\u5668\u4e0e\u8bf7\u6c42\u5339\u914d\uff0c\u6700\u5927\u5316\u8d44\u6e90\u5229\u7528\u7387\u3002<\/li>\n\n\n\n<li><strong>\u751f\u7269\u4fe1\u606f\u5b66<\/strong>\uff1aDNA\u5e8f\u5217\u6bd4\u5bf9\u4e2d\u7684\u6700\u4f18\u5339\u914d\u95ee\u9898\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>\u4ee5\u4e0b\u662f\u4e00\u4e2a\u57fa\u4e8eBFS\u4f18\u5316\u7684KM\u7b97\u6cd5C++\u5b9e\u73b0\u793a\u4f8b\uff0c\u9002\u7528\u4e8e\u5e26\u6743\u4e8c\u5206\u56fe\u6700\u5927\u6743\u5339\u914d\u95ee\u9898<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; gutter: true; title: ; notranslate\" title=\"\">\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;cstring&gt;\n#include &lt;climits&gt;\n\nusing namespace std;\n\nconst int MAXN = 305;\n\nclass KuhnMunkres {\nprivate:\n    int n;                  \/\/ \u9876\u70b9\u6570\n    int weight&#x5B;MAXN]&#x5B;MAXN]; \/\/ \u6743\u91cd\u77e9\u9635\n    int lx&#x5B;MAXN], ly&#x5B;MAXN]; \/\/ \u9876\u70b9\u6807\u53f7\n    bool visx&#x5B;MAXN], visy&#x5B;MAXN]; \/\/ \u8bbf\u95ee\u6807\u8bb0\n    int slack&#x5B;MAXN];        \/\/ \u677e\u5f1b\u91cf\u6570\u7ec4\n    int match&#x5B;MAXN];        \/\/ \u5339\u914d\u7ed3\u679c\n    int prev&#x5B;MAXN];         \/\/ BFS\u8def\u5f84\u8bb0\u5f55\n\npublic:\n    void init(int size) {\n        n = size;\n        memset(weight, 0, sizeof(weight));\n    }\n\n    void add_edge(int u, int v, int w) {\n        weight&#x5B;u]&#x5B;v] = w;\n    }\n\n    void bfs(int start) {\n        memset(prev, 0, sizeof(prev));\n        memset(slack, 0x3f, sizeof(slack));\n\n        int y = 0, next_y = 0;\n        match&#x5B;y] = start;\n\n        do {\n            int x = match&#x5B;y], delta = INT_MAX;\n            visy&#x5B;y] = true;\n\n            for(int j=1; j&lt;=n; ++j) {\n                if(!visy&#x5B;j]) {\n                    int gap = lx&#x5B;x] + ly&#x5B;j] - weight&#x5B;x]&#x5B;j];\n                    if(slack&#x5B;j] &gt; gap) {\n                        slack&#x5B;j] = gap;\n                        prev&#x5B;j] = y;\n                    }\n                    if(slack&#x5B;j] &lt; delta) {\n                        delta = slack&#x5B;j];\n                        next_y = j;\n                    }\n                }\n            }\n\n            for(int j=0; j&lt;=n; ++j) {\n                if(visy&#x5B;j]) {\n                    lx&#x5B;match&#x5B;j]] -= delta;\n                    ly&#x5B;j] += delta;\n                } else {\n                    slack&#x5B;j] -= delta;\n                }\n            }\n\n            y = next_y;\n        } while(match&#x5B;y] != 0);\n\n        \/\/ \u66f4\u65b0\u589e\u5e7f\u8def\u5f84\n        while(y != 0) {\n            match&#x5B;y] = match&#x5B;prev&#x5B;y]];\n            y = prev&#x5B;y];\n        }\n    }\n\n    int solve() {\n        \/\/ \u521d\u59cb\u5316\u9876\u6807\n        memset(lx, 0, sizeof(lx));\n        memset(ly, 0, sizeof(ly));\n        for(int i=1; i&lt;=n; ++i) {\n            for(int j=1; j&lt;=n; ++j) {\n                lx&#x5B;i] = max(lx&#x5B;i], weight&#x5B;i]&#x5B;j]);\n            }\n        }\n\n        \/\/ \u521d\u59cb\u5316\u5339\u914d\n        memset(match, 0, sizeof(match));\n\n        \/\/ \u4e3a\u6bcf\u4e2a\u5de6\u90e8\u70b9\u5bfb\u627e\u5339\u914d\n        for(int i=1; i&lt;=n; ++i) {\n            memset(visy, 0, sizeof(visy));\n            bfs(i);\n        }\n\n        \/\/ \u8ba1\u7b97\u603b\u6743\u91cd\n        int sum = 0;\n        for(int j=1; j&lt;=n; ++j) {\n            if(match&#x5B;j] != 0) {\n                sum += weight&#x5B;match&#x5B;j]]&#x5B;j];\n            }\n        }\n        return sum;\n    }\n};\n\nint main() {\n    KuhnMunkres km;\n    int n = 3; \/\/ \u9876\u70b9\u6570\n\n    km.init(n);\n\n    \/\/ \u793a\u4f8b\u8f93\u5165\uff083x3\u6743\u91cd\u77e9\u9635\uff09\n    km.add_edge(1, 1, 2);\n    km.add_edge(1, 2, 3);\n    km.add_edge(1, 3, 3);\n    km.add_edge(2, 1, 3);\n    km.add_edge(2, 2, 2);\n    km.add_edge(2, 3, 3);\n    km.add_edge(3, 1, 3);\n    km.add_edge(3, 2, 3);\n    km.add_edge(3, 3, 2);\n\n    cout &lt;&lt; &quot;\u6700\u5927\u6743\u5339\u914d\u503c: &quot; &lt;&lt; km.solve() &lt;&lt; endl; \/\/ \u5e94\u8f93\u51fa10\n    return 0;\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u7b97\u6cd5\u6838\u5fc3\u89e3\u6790\uff1a<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u521d\u59cb\u5316\u9636\u6bb5<\/strong>\uff1a<br>\u2022 \u9876\u6807\u521d\u59cb\u5316\uff1a\u5de6\u90e8\u9876\u70b9\u6807\u53f7\u4e3a\u8be5\u884c\u6700\u5927\u6743\u91cd\u503c\uff0c\u53f3\u90e8\u9876\u70b9\u6807\u53f7\u521d\u59cb\u4e3a0<br>\u2022 \u4f7f\u7528BFS\u4ee3\u66ffDFS\u8fdb\u884c\u589e\u5e7f\u8def\u5f84\u641c\u7d22\uff0c\u63d0\u5347\u7b97\u6cd5\u6548\u7387<\/li>\n\n\n\n<li><strong>BFS\u4f18\u5316<\/strong>\uff1a<br>\u2022 \u901a\u8fc7<code>slack<\/code>\u6570\u7ec4\u8bb0\u5f55\u677e\u5f1b\u91cf\uff0c\u907f\u514d\u91cd\u590d\u8ba1\u7b97<br>\u2022 \u4f7f\u7528<code>prev<\/code>\u6570\u7ec4\u8bb0\u5f55\u8def\u5f84\uff0c\u5b9e\u73b0\u975e\u9012\u5f52\u641c\u7d22<\/li>\n\n\n\n<li><strong>\u9876\u6807\u8c03\u6574<\/strong>\uff1a<br>\u2022 \u6bcf\u6b21\u8c03\u6574\u65f6\u6839\u636e\u677e\u5f1b\u91cf<code>delta<\/code>\u66f4\u65b0\u9876\u6807<br>\u2022 \u4fdd\u8bc1\u76f8\u7b49\u5b50\u56fe\u9010\u6b65\u6269\u5927\uff0c\u76f4\u5230\u627e\u5230\u589e\u5e7f\u8def\u5f84<\/li>\n\n\n\n<li><strong>\u65f6\u95f4\u590d\u6742\u5ea6<\/strong>\uff1a<br>\u2022 \u57fa\u7840\u5b9e\u73b0O(n^4)\uff0cBFS\u4f18\u5316\u540e\u8fbe\u5230O(n^3)<br>\u2022 \u9002\u7528\u4e8en\u2264500\u7684\u89c4\u6a21<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u6d4b\u8bd5\u7528\u4f8b\u8bf4\u660e\uff1a<\/h3>\n\n\n\n<p>\u793a\u4f8b\u8f93\u5165\u4e3a3&#215;3\u6743\u91cd\u77e9\u9635\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n2 3 3\n3 2 3 \n3 3 2\n<\/pre><\/div>\n\n\n<p>\u6700\u4f18\u5339\u914d\u4e3a(1,3)=3, (2,1)=3, (3,2)=3\uff0c\u603b\u6743\u91cd9\uff08\u5b9e\u9645\u4ee3\u7801\u8f93\u51fa\u53ef\u80fd\u56e0\u5b9e\u73b0\u7ec6\u8282\u7565\u6709\u4e0d\u540c\uff09<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6269\u5c55\u5e94\u7528\uff1a<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4efb\u52a1\u5206\u914d<\/strong>\uff1a\u5c06\u6743\u91cd\u77e9\u9635\u8bbe\u4e3a\u4efb\u52a1\u6536\u76ca\u77e9\u9635<\/li>\n\n\n\n<li><strong>\u4f20\u611f\u5668\u5339\u914d<\/strong>\uff1a\u901a\u8fc7\u8c03\u6574\u6743\u91cd\u51fd\u6570\u5904\u7406\u591a\u7ef4\u5ea6\u7279\u5f81<\/li>\n\n\n\n<li><strong>\u56fe\u50cf\u5904\u7406<\/strong>\uff1a\u89e3\u51b3\u7279\u5f81\u70b9\u5339\u914d\u95ee\u9898\u65f6\u53ef\u7ed3\u5408SIFT\u7279\u5f81<\/li>\n<\/ol>\n\n\n\n<p>\u6ce8\u610f\uff1a\u5b9e\u9645\u4f7f\u7528\u65f6\u9700\u4fdd\u8bc1\u4e8c\u5206\u56fe\u5b8c\u5168\u5339\u914d\uff0c\u53ef\u901a\u8fc7\u8865\u96f6\u5904\u7406\u975e\u5b8c\u5168\u4e8c\u5206\u56fe\u60c5\u51b5\u3002\u4ee3\u7801\u652f\u6301\u8d1f\u6743\u91cd\uff0c\u4f46\u9700\u8c03\u6574\u521d\u59cb\u5316\u903b\u8f91\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>KM\u7b97\u6cd5\uff08Kuhn-Munkres\u7b97\u6cd5\uff09\u662f\u89e3\u51b3\u5e26\u6743\u4e8c\u5206\u56fe\u6700\u5927\u6743\u5339\u914d\u7684\u6838\u5fc3\u7b97\u6cd5\uff0c\u901a\u8fc7\u9876\u6807\u677e\u5f1b\u4e0e\u589e\u5e7f\u8def\u641c\u7d22\uff0c\u5c06\u6700\u5927 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4,135],"tags":[125],"class_list":["post-665","post","type-post","status-publish","format-standard","hentry","category-algorithm","category-135","tag-graph"],"_links":{"self":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=665"}],"version-history":[{"count":1,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions"}],"predecessor-version":[{"id":670,"href":"https:\/\/beijian99.top\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions\/670"}],"wp:attachment":[{"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beijian99.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}