{"id":12365,"date":"2012-06-06T15:58:29","date_gmt":"2012-06-06T14:58:29","guid":{"rendered":"http:\/\/www.decidesoluciones.es\/como-formular-una-funcion-lineal-a-trozos-piecewise-linear-function-2\/"},"modified":"2020-03-27T13:18:01","modified_gmt":"2020-03-27T13:18:01","slug":"how-to-formulate-a-piecewise-linear-function","status":"publish","type":"post","link":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/","title":{"rendered":"How to formulate a Piecewise Linear Function"},"content":{"rendered":"<p>One of the questions I get asked quite often from members of the Decide Operational Research Unit is: How is a Piecewise Linear Function (PWL) formulated so that it can be resolved with an Integer Linear Programming engine?<\/p>\n<p>The easy answer is: it doesn\u2019t need to be formulated. Many of the products that solve Integer Linear Programming products have by default a PWL formula that allows them to be used without knowing how they are actually represented internally. Yet, as my colleague Miguel \u00c1ngel B\u00f3galo always says, and something I completely agree with, before using a framework, utility or anything else, it is important to work it out manually in order to understand in depth what is being done.<\/p>\n<p>So, I will use this post to explain a PWL formula and the implications of incorporating this type of function to models that solve problems using Integer Linear Programming.<\/p>\n<p>&nbsp;<\/p>\n<h2>What is a Piecewise Linear Function?<\/h2>\n<p>Since a picture is worth a thousand words, PWL can be defined as follows:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-521\" title=\"PWL\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png\" alt=\"\" width=\"577\" height=\"305\" \/><\/a><\/p>\n<p>\u00a0More specifically, a PWL is a sequence of contiguous segments. It could be represented as a formula in this way:<\/p>\n<p>&nbsp;<\/p>\n<h2><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/FORMULA-PWL.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-520\" title=\"FORMULA PWL\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/FORMULA-PWL.bmp\" alt=\"\" \/><\/a>How can you linearise a PWL?<\/h2>\n<p>Although the PWL itself is not linear, each of the intervals of x corresponding to each of the segments is.<\/p>\n<p>So, thinking about it a little more, we can reach another formula which becomes almost linear: If we represent x as:<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-X.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-523\" title=\"PWL - X\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-X.bmp\" alt=\"\" \/><\/a>With<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-LAMBDA1.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-528\" title=\"PWL LAMBDA\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-LAMBDA1.bmp\" alt=\"\" \/><\/a>and we ensure that at most two \u03bbs are unequal to 0, and in that case they are consecutive, then f(x) can be represented as follows:<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-F-LAMBDA.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-526\" title=\"PWL - F - LAMBDA\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-F-LAMBDA.bmp\" alt=\"\" \/><\/a><\/p>\n<p>Ultimately, representing x as a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Convex_combinationhttp:\/\/\" target=\"_blank\" rel=\"noopener noreferrer\">convex linear combination<\/a> of the values a, and ensuring that a maximum of two \u03bbs are unequal to 0, and if this is the case, they are consecutive, we can place x in one of the segments, leaving f(x) as:<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-F-SOS.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-529\" title=\"PWL - F - SOS\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-F-SOS.bmp\" alt=\"\" \/><\/a>It is very important to note the importance of the property: and<strong> if this is the case, they are consecutive.<\/strong> With this property, when calculating f(x) for an arbitrary x, the calculation is correct:<br \/>\n<a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-OK.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-531\" title=\"PKL-LAMBDA-OK\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-OK.png\" alt=\"\" width=\"570\" height=\"335\" \/><\/a><\/p>\n<p>If this property is not fulfilled, an &#8216;inadequate\u2019 convex linear combination could lead to this situation:<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-KO.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-533\" title=\"PKL-LAMBDA-KO\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-KO.png\" alt=\"\" width=\"571\" height=\"338\" \/><\/a><\/p>\n<p>This property, owing to its importance, has a name: a type 2 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Special_ordered_set\" target=\"_blank\" rel=\"noopener noreferrer\">Special Ordered Set.<\/a> All Integer Linear Programming engines have an internal representation of this type, and they are treated efficiently. Even so, in the spirit of this post, we will now create this type of formula using intermediate binary variables, so that we have a completely linear representation of the PWLs. The formula is as follows:<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-SOS.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-535\" title=\"PWL-SOS\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-SOS.bmp\" alt=\"\" \/><\/a>With<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-Xi.bmp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-536\" title=\"PWL-Xi\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL-Xi.bmp\" alt=\"\" \/><\/a>Notice that, in this formula, each binary variable appears in two equations, corresponding to the \u03bbs which may be positive if the binary variable is 1. Thus, we have succeeded in creating the PWL formula a completely linear way, with the help of a number of binary variables for formulating the type 2 Special Ordered Set.<\/p>\n<p>&nbsp;<\/p>\n<h2>Further Considerations<\/h2>\n<p>he first thing to keep in mind when using this type of Piecewise Linear Function is that the problem becomes generally more complex. In our case, if our model works only with continuous variables, it will automatically change from being a Linear Problem to a much more complex Integer Linear Problem.<\/p>\n<p>Still, there are instances in which introducing this type of function does not affect the complexity of the problem. These are the cases in which the relaxed solution to the problem automatically coincides with the integer solution. Supposing that our PWL lies in the objective function, and analysing the case in which the selection of \u03bbs was incorrect:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-KO.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-533\" title=\"PKL-LAMBDA-KO\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-KO.png\" alt=\"\" width=\"571\" height=\"338\" \/><\/a>Why would the Linear Programming engine make this incorrect selection of \u03bbs? Really this could only happen if our objective function were <strong>to minimise<\/strong> the cost function. In this case, it is more profitable to select these \u03bbs, as this obtains a smaller target function. If the target function, on the other hand, were<strong> to maximise<\/strong> the cost function, these \u03bbs would never have been selected, since the correct choice:<\/p>\n<p><a href=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-OK.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-531\" title=\"PKL-LAMBDA-OK\" src=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PKL-LAMBDA-OK.png\" alt=\"\" width=\"570\" height=\"335\" \/><\/a>provides a greater profit (a higher value of the cost function).<\/p>\n<p>Therefore, if the purpose of the PWL is to be in the target function (which, incidentally, is quite common), we simply analyse its concavity or convexity, as well as the direction (minimise or maximise) of the target function to determine the need to incorporate binary variables that force the SOS2 property over the \u03bbs, ensuring our problem does not increase in complexity.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Update:<\/strong> My recommendation is almost always to use the native PWL formulas that the Linear Programming engine has by default, and, where these do not exist, <strong>always use<\/strong> the SOS2 formulas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the questions I get asked quite often from members of the Decide Operational Research Unit is: How is a Piecewise Linear Function (PWL) formulated so that it can be resolved with an Integer Linear Programming engine?<\/p>\n","protected":false},"author":30,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[262],"tags":[],"class_list":["post-12365","post","type-post","status-publish","format-standard","hentry","category-uncategorized","category-262","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to formulate a Piecewise Linear Function - Decide<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to formulate a Piecewise Linear Function - Decide\" \/>\n<meta property=\"og:description\" content=\"One of the questions I get asked quite often from members of the Decide Operational Research Unit is: How is a Piecewise Linear Function (PWL) formulated so that it can be resolved with an Integer Linear Programming engine?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/\" \/>\n<meta property=\"og:site_name\" content=\"Decide\" \/>\n<meta property=\"article:published_time\" content=\"2012-06-06T14:58:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-27T13:18:01+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png\" \/>\n<meta name=\"author\" content=\"decide4AI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@canaldecide\" \/>\n<meta name=\"twitter:site\" content=\"@canaldecide\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"decide4AI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/\"},\"author\":{\"name\":\"decide4AI\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/#\\\/schema\\\/person\\\/c5a2787a44b67d8f84604a8b87c76075\"},\"headline\":\"How to formulate a Piecewise Linear Function\",\"datePublished\":\"2012-06-06T14:58:29+00:00\",\"dateModified\":\"2020-03-27T13:18:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/\"},\"wordCount\":779,\"image\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.decidesoluciones.es\\\/wp-content\\\/uploads\\\/2012\\\/06\\\/PWL1.png\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/\",\"url\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/\",\"name\":\"How to formulate a Piecewise Linear Function - Decide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.decidesoluciones.es\\\/wp-content\\\/uploads\\\/2012\\\/06\\\/PWL1.png\",\"datePublished\":\"2012-06-06T14:58:29+00:00\",\"dateModified\":\"2020-03-27T13:18:01+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/#\\\/schema\\\/person\\\/c5a2787a44b67d8f84604a8b87c76075\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.decidesoluciones.es\\\/wp-content\\\/uploads\\\/2012\\\/06\\\/PWL1.png\",\"contentUrl\":\"http:\\\/\\\/www.decidesoluciones.es\\\/wp-content\\\/uploads\\\/2012\\\/06\\\/PWL1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/how-to-formulate-a-piecewise-linear-function\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/decide-2\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to formulate a Piecewise Linear Function\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/\",\"name\":\"Decide\",\"description\":\"Advanced Analytics. Smart Decisions\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/decidesoluciones.es\\\/en\\\/#\\\/schema\\\/person\\\/c5a2787a44b67d8f84604a8b87c76075\",\"name\":\"decide4AI\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a16f5f3009bc3081c68bd986b0dd38c75f3bfbf37ebdb7e7cdc0594d063a16c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a16f5f3009bc3081c68bd986b0dd38c75f3bfbf37ebdb7e7cdc0594d063a16c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a16f5f3009bc3081c68bd986b0dd38c75f3bfbf37ebdb7e7cdc0594d063a16c?s=96&d=mm&r=g\",\"caption\":\"decide4AI\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to formulate a Piecewise Linear Function - Decide","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/","og_locale":"en_US","og_type":"article","og_title":"How to formulate a Piecewise Linear Function - Decide","og_description":"One of the questions I get asked quite often from members of the Decide Operational Research Unit is: How is a Piecewise Linear Function (PWL) formulated so that it can be resolved with an Integer Linear Programming engine?","og_url":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/","og_site_name":"Decide","article_published_time":"2012-06-06T14:58:29+00:00","article_modified_time":"2020-03-27T13:18:01+00:00","og_image":[{"url":"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png","type":"","width":"","height":""}],"author":"decide4AI","twitter_card":"summary_large_image","twitter_creator":"@canaldecide","twitter_site":"@canaldecide","twitter_misc":{"Written by":"decide4AI","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#article","isPartOf":{"@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/"},"author":{"name":"decide4AI","@id":"https:\/\/decidesoluciones.es\/en\/#\/schema\/person\/c5a2787a44b67d8f84604a8b87c76075"},"headline":"How to formulate a Piecewise Linear Function","datePublished":"2012-06-06T14:58:29+00:00","dateModified":"2020-03-27T13:18:01+00:00","mainEntityOfPage":{"@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/"},"wordCount":779,"image":{"@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#primaryimage"},"thumbnailUrl":"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/","url":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/","name":"How to formulate a Piecewise Linear Function - Decide","isPartOf":{"@id":"https:\/\/decidesoluciones.es\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#primaryimage"},"image":{"@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#primaryimage"},"thumbnailUrl":"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png","datePublished":"2012-06-06T14:58:29+00:00","dateModified":"2020-03-27T13:18:01+00:00","author":{"@id":"https:\/\/decidesoluciones.es\/en\/#\/schema\/person\/c5a2787a44b67d8f84604a8b87c76075"},"breadcrumb":{"@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#primaryimage","url":"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png","contentUrl":"http:\/\/www.decidesoluciones.es\/wp-content\/uploads\/2012\/06\/PWL1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/decidesoluciones.es\/en\/how-to-formulate-a-piecewise-linear-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/decidesoluciones.es\/en\/decide-2\/"},{"@type":"ListItem","position":2,"name":"How to formulate a Piecewise Linear Function"}]},{"@type":"WebSite","@id":"https:\/\/decidesoluciones.es\/en\/#website","url":"https:\/\/decidesoluciones.es\/en\/","name":"Decide","description":"Advanced Analytics. Smart Decisions","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/decidesoluciones.es\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/decidesoluciones.es\/en\/#\/schema\/person\/c5a2787a44b67d8f84604a8b87c76075","name":"decide4AI","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5a16f5f3009bc3081c68bd986b0dd38c75f3bfbf37ebdb7e7cdc0594d063a16c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5a16f5f3009bc3081c68bd986b0dd38c75f3bfbf37ebdb7e7cdc0594d063a16c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5a16f5f3009bc3081c68bd986b0dd38c75f3bfbf37ebdb7e7cdc0594d063a16c?s=96&d=mm&r=g","caption":"decide4AI"}}]}},"_links":{"self":[{"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/posts\/12365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/comments?post=12365"}],"version-history":[{"count":3,"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/posts\/12365\/revisions"}],"predecessor-version":[{"id":21424,"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/posts\/12365\/revisions\/21424"}],"wp:attachment":[{"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/media?parent=12365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/categories?post=12365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/decidesoluciones.es\/en\/wp-json\/wp\/v2\/tags?post=12365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}