{"id":4270,"date":"2018-11-10T09:37:14","date_gmt":"2018-11-10T17:37:14","guid":{"rendered":"https:\/\/zxi.mytechroad.com\/blog\/?p=4270"},"modified":"2018-11-13T18:42:35","modified_gmt":"2018-11-14T02:42:35","slug":"knapsack-problem","status":"publish","type":"post","link":"https:\/\/zxi.mytechroad.com\/blog\/dynamic-programming\/knapsack-problem\/","title":{"rendered":"Knapsack Problem \u80cc\u5305\u95ee\u9898"},"content":{"rendered":"<h1>Videos<\/h1>\n<p><iframe loading=\"lazy\" title=\"\u82b1\u82b1\u9171 0-1 Knapsack Problem 01\u80cc\u5305\u95ee\u9898 - \u5237\u9898\u627e\u5de5\u4f5c SP10\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/CO0r6kcwHUU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p><iframe loading=\"lazy\" title=\"\u82b1\u82b1\u9171 Knapsack Problem  \u80cc\u5305\u95ee\u9898 2 - \u5237\u9898\u627e\u5de5\u4f5c SP11\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/rM_G4dboKhc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h1><\/h1>\n<p>\u4e0a\u671f\u8282\u76ee\u4e2d\u6211\u4eec\u5bf9\u52a8\u6001\u89c4\u5212\u505a\u4e86\u4e00\u4e2a\u603b\u7ed3\uff0c\u8fd9\u671f\u8282\u76ee\u6211\u4eec\u6765\u804a\u804a\u80cc\u5305\u95ee\u9898\u3002<\/p>\n<p>\u80cc\u5305\u95ee\u9898\u662f\u4e00\u4e2aNP-complete\u7684\u7ec4\u5408\u4f18\u5316\u95ee\u9898\uff0cSearch\u7684\u65b9\u6cd5\u9700\u8981O(2^N)\u65f6\u95f4\u624d\u80fd\u83b7\u5f97\u6700\u4f18\u89e3\u3002\u800c\u4f7f\u7528\u52a8\u6001\u89c4\u5212\uff0c\u6211\u4eec\u53ef\u4ee5\u5728<strong>\u4f2a\u591a\u9879\u5f0f\uff08pseudo-polynomial time\uff09<\/strong>\u65f6\u95f4\u5185\u83b7\u5f97\u6700\u4f18\u89e3\u3002<\/p>\n<h1><strong>0-1 Knapsack Problem 0-1\u80cc\u5305\u95ee\u9898<\/strong><\/h1>\n<h2>Problem<\/h2>\n<p><span style=\"font-weight: 400;\">Given N items, w[i] is the weight of the i-th item and v[i] is value of the i-th item. Given a knapsack with capacity W. Maximize the total value. Each item can be use <\/span><span style=\"color: #ff0000;\"><b>0 or 1 time<\/b><\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p>0-1\u80cc\u5305\u95ee\u9898\u7684\u901a\u5e38\u5b9a\u4e49\u662f\uff1a\u4e00\u5171\u6709N\u4ef6\u7269\u54c1\uff0c\u7b2ci\u4ef6\u7269\u54c1\u7684\u91cd\u91cf\u4e3aw[i]\uff0c\u4ef7\u503c\u4e3av[i]\u3002\u5728\u603b\u91cd\u91cf\u4e0d\u8d85\u8fc7\u80cc\u5305\u627f\u8f7d\u4e0a\u9650W\u7684\u60c5\u51b5\u4e0b\uff0c\u80fd\u591f\u83b7\u5f97\u7684\u6700\u5927\u4ef7\u503c\u662f\u591a\u5c11\uff1f\u6bcf\u4ef6\u7269\u54c1\u53ef\u4ee5\u4f7f\u7528<strong>0\u6b21\u6216\u80051\u6b21<\/strong>\u3002<\/p>\n<p>\u4f8b\u5b50\uff1a<\/p>\n<p>\u91cd\u91cf w = [1, 1, 2, 2]<\/p>\n<p>\u4ef7\u503c\u00a0v = [1, 3, 4, 5]<\/p>\n<p>\u80cc\u5305\u627f\u91cd W = 4<\/p>\n<p>\u6700\u5927\u4ef7\u503c\u4e3a9\uff0c\u53ef\u4ee5\u9009\u7b2c1,2,4\u4ef6\u7269\u54c1\uff0c\u4e5f\u53ef\u4ee5\u9009\u7b2c3\uff0c4\u4ef6\u7269\u54c1\uff1b\u603b\u91cd\u91cf\u4e3a4\uff0c\u603b\u4ef7\u503c\u4e3a9\u3002<\/p>\n<p>\u52a8\u6001\u89c4\u5212\u7684\u72b6\u6001\u8f6c\u79fb\u65b9\u7a0b\u4e3a\uff1a<\/p>\n<pre class=\"\">dp[i][j] = max(dp[i-1][j], dp[i][j-w[i]] + v[i])<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4295 size-full\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-1.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-1.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-1-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-1-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-4276\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-2.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-2.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-2-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-2-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4290 size-full\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-3.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-3.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-3-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-3-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4293 size-full\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-4.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-4.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-4-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp10-4-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4303\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-1.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-1.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-1-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-1-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<h2><strong>Solutions<\/strong><\/h2>\n<div class=\"responsive-tabs\">\n<h2 class=\"tabtitle\">Search<\/h2>\n<div class=\"tabcontent\">\n\n<pre class=\"lang:python decode:true \">def knapsack01DFS(w, v, W):\r\n  def dfs(s, cur_w, cur_v, ans):\r\n    ans[0] = max(ans[0], cur_v)\r\n    if s == N: return\r\n    for i in range(s, N):\r\n      if cur_w + w[i] &lt;= W:\r\n        dfs(i + 1, cur_w + w[i], cur_v + v[i], ans)\r\n  ans = [0]\r\n  dfs(0, 0, 0, ans)\r\n  return ans[0]<\/pre>\n\n<\/div><h2 class=\"tabtitle\">DP2<\/h2>\n<div class=\"tabcontent\">\n\n<pre class=\"lang:python decode:true \">def knapsack01(w, v, W):\r\n  dp = [[0] * (W + 1) for _ in range(N+1)]\r\n  for i in range(1, N + 1):\r\n    dp[i] = dp[i-1].clone()\r\n    for j in range(w[i], W + 1):\r\n      dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i - 1]] + v[i - 1])\r\n  return max(dp[N])<\/pre>\n\n<\/div><h2 class=\"tabtitle\">DP1\/tmp<\/h2>\n<div class=\"tabcontent\">\n\n<pre class=\"lang:python decode:true \">def knapsack01R(w, v, W):\r\n  dp = [0] * (W + 1)\r\n  for i in range(0, N):\r\n    tmp = list(dp)\r\n    for j in range(w[i], W + 1):\r\n      tmp[j] = max(tmp[j], dp[j - w[i]] + v[i])\r\n    dp = tmp\r\n  return max(dp)<\/pre>\n\n<\/div><h2 class=\"tabtitle\">DP1\/push<\/h2>\n<div class=\"tabcontent\">\n\n<pre class=\"lang:python decode:true\">def knapsack01R2(w, v, W):\r\n  dp = [0] * (W + 1)\r\n  for i in range(0, N):\r\n    for j in range(W, w[i] - 1, -1):\r\n      dp[j] = max(dp[j], dp[j - w[i]] + v[i])\r\n  return max(dp)<\/pre>\n\n<\/div><h2 class=\"tabtitle\">DP1\/pull<\/h2>\n<div class=\"tabcontent\">\n\n<pre class=\"lang:python decode:true\">def knapsack01R1(w, v, W):\r\n  dp = [0] * (W + 1)\r\n  for i in range(0, N):\r\n    for j in range(W - w[i], -1, -1):\r\n      dp[j + w[i]] = max(dp[j + w[i]], dp[j] + v[i])\r\n  return max(dp)<\/pre>\n<\/div><\/div>\n<p>&nbsp;<\/p>\n<h1><strong>Unbounded Knapsack Problem \u5b8c\u5168\u80cc\u5305<\/strong><\/h1>\n<p><strong>\u5b8c\u5168\u80cc\u5305<\/strong>\u3001<strong>\u591a\u91cd\u80cc\u5305<\/strong>\u662f\u5e38\u89c1\u7684\u53d8\u5f62\u3002\u548c01\u80cc\u5305\u7684\u533a\u522b\u5728\u4e8e\uff0c\u5b8c\u5168\u80cc\u5305\u6bcf\u4ef6\u7269\u54c1\u53ef\u4ee5\u4f7f\u7528<strong>\u65e0\u9650\u591a\u6b21<\/strong>\uff0c\u800c\u591a\u91cd\u80cc\u5305\u6bcf\u4ef6\u7269\u54c1\u6700\u591a\u53ef\u4ee5\u4f7f\u7528<strong>n[i]\u6b21<\/strong>\u3002\u4e24\u4e2a\u95ee\u9898\u90fd\u53ef\u4ee5\u8f6c\u6362\u621001\u80cc\u5305\u95ee\u9898\u8fdb\u884c\u6c42\u89e3\u3002<\/p>\n<p>\u4f46\u662fNaive\u7684\u8f6c\u6362\u4f1a\u5927\u5927\u589e\u52a0\u65f6\u95f4\u590d\u6742\u5ea6\uff1a<\/p>\n<p>\u5b8c\u5168\u80cc\u5305\uff1a\u201c\u590d\u5236\u201d\u7b2ci\u4ef6\u7269\u54c1\u5230\u4e00\u5171\u6709\u00a0W\/w[i]\u00a0\u4ef6<\/p>\n<p>\u591a\u91cd\u80cc\u5305\uff1a\u201c\u590d\u5236\u201d\u7b2ci\u4ef6\u7269\u54c1\u5230\u4e00\u5171\u6709\u00a0n[i]\u00a0\u4ef6<\/p>\n<p>\u7136\u540e\u76f4\u63a5\u8c03\u752801\u80cc\u5305\u8fdb\u884c\u6c42\u89e3\u3002<\/p>\n<p>\u65f6\u95f4\u590d\u6742\u5ea6\uff1a<\/p>\n<p>\u5b8c\u5168\u80cc\u5305\u00a0O(\u03a3(W\/w[i])*W)<\/p>\n<p>\u591a\u91cd\u80cc\u5305\u00a0O(\u03a3n[i]*W)<\/p>\n<p>\u4e0d\u96be\u770b\u51fa\u65f6\u95f4\u590d\u6742\u5ea6 =\u00a0O(\u7269\u54c1\u6570\u91cf*\u80cc\u5305\u627f\u91cd)<\/p>\n<p>\u80cc\u5305\u627f\u91cd\u662f\u7ed9\u5b9a\u7684\uff0c\u8981\u964d\u4f4e\u8fd0\u884c\u65f6\u5019\uff0c\u53ea\u6709\u51cf\u5c11\u7269\u54c1\u6570\u91cf\u3002\u4f46\u600e\u6837\u624d\u80fd\u51cf\u5c11\u603b\u7684\u7269\u54c1\u6570\u91cf\u5462\uff1f<\/p>\n<p>\u8fd9\u5c31\u6d89\u53ca\u5230\u4e8c\u8fdb\u5236\u601d\u60f3\uff1a\u4efb\u4f55\u4e00\u4e2a\u6b63\u6574\u6570\u90fd\u53ef\u4ee5\u7528 (1, 2, 4, &#8230;, 2^K)\u7684\u7ec4\u5408\u6765\u8868\u793a\u3002\u4f8b\u598214 = 2 + 4 + 8\u3002<br \/>\n\u539f\u672c\u9700\u8981\u653e\u516514\u4ef6\u76f8\u540c\u7684\u7269\u54c1\uff0c\u73b0\u5728\u53ea\u9700\u8981\u653e\u51653\u4ef6\uff08\u91cd\u91cf\u548c\u4ef7\u503c\u662f\u539f\u7269\u54c1\u76842\u500d\uff0c4\u500d\uff0c8\u500d\uff09\u3002\u5927\u5e45\u964d\u4f4e\u4e86\u603b\u7684\u7269\u54c1\u6570\u91cf\u4ece\u800c\u964d\u4f4e\u8fd0\u884c\u65f6\u95f4\u3002<\/p>\n<p>\u5b8c\u5168\u80cc\u5305\uff1a\u5bf9\u4e8e\u7b2ci\u4ef6\u7269\u54c1\uff0c\u6211\u4eec\u53ea\u9700\u8981\u521b\u5efak = log(W\/w[i])\u4ef6\u865a\u62df\u7269\u54c1\u5373\u53ef\u3002<\/p>\n<p>\u6bcf\u4ef6\u865a\u62df\u7269\u54c1\u7684\u91cd\u91cf\u548c\u4ef7\u503c\u4e3a\uff1a1*(w[i], v[i]), 2*(w[i], v[i]), &#8230;,\u00a02^k*(w[i], v[i])\u3002<\/p>\n<p>\u591a\u91cd\u80cc\u5305\uff1a\u5bf9\u4e8e\u7b2ci\u4ef6\u7269\u54c1\uff0c\u6211\u4eec\u53ea\u9700\u8981\u521b\u5efak + 1\u4ef6\u865a\u62df\u7269\u54c1\u5373\u53ef\uff0c\u5176\u4e2dk = log(n[i])\u3002<\/p>\n<p>\u6bcf\u4ef6\u865a\u62df\u7269\u54c1\u7684\u91cd\u91cf\u548c\u4ef7\u503c\u4e3a\uff1a1*(w[i], v[i]), 2*(w[i], v[i]), &#8230;,\u00a02^(k-1)*(w[i], v[i]), \u4ee5\u53ca (<strong>n[i] &#8211; 2^k &#8211; 1<\/strong>) * (w[i], v[i])\u3002<\/p>\n<p>\u4f8b\u5982\uff1an[i] = 14, k = 3, \u865a\u62df\u7269\u54c1\u7684\u500d\u6570\u4e3a 1, 2, 4 \u548c 7\uff0c\u8fd94\u4e2a\u6570\u7ec4\u5408\u53ef\u4ee5\u7ec4\u62101 ~ 14\u4e2d\u7684\u4efb\u4f55\u4e00\u4e2a\u6570\uff0c\u5e76\u4e14\u4e0d\u4f1a&gt;14\uff0c\u5373\u4e0d\u8d85\u8fc7n[i]\u3002<\/p>\n<p>\u4e8c\u8fdb\u5236\u8f6c\u6362\u540e\u76f4\u63a5\u8c03\u752801\u80cc\u5305\u5373\u53ef<\/p>\n<p>\u65f6\u95f4\u590d\u6742\u5ea6\uff1a<\/p>\n<p>\u5b8c\u5168\u80cc\u5305\u00a0O(\u03a3log(W\/w[i])*W)<\/p>\n<p>\u591a\u91cd\u80cc\u5305\u00a0O(\u03a3log(n[i])*W)<\/p>\n<p>\u7a7a\u95f4\u590d\u6742\u5ea6\u00a0O(W)<\/p>\n<p>\u5176\u5b9e\u5b8c\u5168\u80cc\u5305\u548c\u591a\u91cd\u80cc\u5305\u90fd\u53ef\u4ee5\u5728\u00a0O(NW)\u65f6\u95f4\u5185\u5b8c\u6210\uff0c\u524d\u8005\u5728\u89c6\u9891\u4e2d\u6709\u8bb2\u5230\uff0c\u540e\u8005\u5c5e\u4e8e<strong>\u8d85\u7eb2\u5185\u5bb9<\/strong>\uff0c\u4ee5\u540e\u6709\u673a\u4f1a\u518d\u548c\u5927\u5bb6\u6df1\u5165\u5206\u4eab\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4300\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-2.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-2.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-2-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-2-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4301\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-3.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-3.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-3-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-3-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<h1><strong>Bounded Knapsack Problem \u591a\u91cd\u80cc\u5305<\/strong><\/h1>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4304 size-full\" src=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-4.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-4.png 960w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-4-300x169.png 300w, https:\/\/zxi.mytechroad.com\/blog\/wp-content\/uploads\/2018\/11\/sp11-4-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Videos \u4e0a\u671f\u8282\u76ee\u4e2d\u6211\u4eec\u5bf9\u52a8\u6001\u89c4\u5212\u505a\u4e86\u4e00\u4e2a\u603b\u7ed3\uff0c\u8fd9\u671f\u8282\u76ee\u6211\u4eec\u6765\u804a\u804a\u80cc\u5305\u95ee\u9898\u3002 \u80cc\u5305\u95ee\u9898\u662f\u4e00\u4e2aNP-complete\u7684\u7ec4\u5408\u4f18\u5316\u95ee\u9898\uff0cSearch\u7684\u65b9\u6cd5\u9700\u8981O(2^N)\u65f6\u95f4\u624d\u80fd\u83b7\u5f97\u6700\u4f18\u89e3\u3002\u800c\u4f7f\u7528\u52a8\u6001\u89c4\u5212\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u4f2a\u591a\u9879\u5f0f\uff08pseudo-polynomial time\uff09\u65f6\u95f4\u5185\u83b7\u5f97\u6700\u4f18\u89e3\u3002 0-1 Knapsack Problem 0-1\u80cc\u5305\u95ee\u9898 Problem Given N items, w[i] is the weight of the i-th item and v[i] is value of&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46,170],"tags":[122,33,18,195,431],"class_list":["post-4270","post","type-post","status-publish","format-standard","hentry","category-dynamic-programming","category-sp","tag-combination","tag-dfs","tag-dp","tag-knapsack","tag-optimization","entry","simple"],"_links":{"self":[{"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/posts\/4270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/comments?post=4270"}],"version-history":[{"count":11,"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/posts\/4270\/revisions"}],"predecessor-version":[{"id":4308,"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/posts\/4270\/revisions\/4308"}],"wp:attachment":[{"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/media?parent=4270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/categories?post=4270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zxi.mytechroad.com\/blog\/wp-json\/wp\/v2\/tags?post=4270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}