<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/index.php?action=history&amp;feed=atom&amp;title=ScRGB</id>
	<title>ScRGB - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/index.php?action=history&amp;feed=atom&amp;title=ScRGB"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=ScRGB&amp;action=history"/>
	<updated>2026-07-12T04:57:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=ScRGB&amp;diff=252626&amp;oldid=prev</id>
		<title>en&gt;Spitzak: /* Encoding */ Fixed resolution comparisons. Divide 8192/255 by slope of sRGB curve to get resolution.</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=ScRGB&amp;diff=252626&amp;oldid=prev"/>
		<updated>2014-12-31T00:31:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Encoding: &lt;/span&gt; Fixed resolution comparisons. Divide 8192/255 by slope of sRGB curve to get resolution.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:31, 31 December 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In [[applied mathematics]], the maximum &#039;&#039;&#039;generalized assignment problem&#039;&#039;&#039; is a problem in [[combinatorial optimization]].  This problem &lt;/del&gt;is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a [[generalization]] of the [[assignment problem]] in which both tasks &lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Agent-based model|agents]] have a size. Moreover, the size of each task might vary from one agent to the other. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Claude &lt;/ins&gt;is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;her name &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;she totally digs &lt;/ins&gt;that &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;name&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Bookkeeping &lt;/ins&gt;is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;how he supports his family &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;his salary &lt;/ins&gt;has &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;been truly fulfilling&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I presently reside &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Alabama&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Camping &lt;/ins&gt;is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;some thing &lt;/ins&gt;that &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I&#039;ve carried out &lt;/ins&gt;for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;many years&lt;/ins&gt;.&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;br&lt;/ins&gt;&amp;gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;br&lt;/ins&gt;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Feel free &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;surf &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;my web site&lt;/ins&gt;; [http://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Www&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Shownetbook&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;com&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;enone&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xe&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;?document_srl=3029968 shownetbook&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;com&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This problem in its most general form is as follows:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;There are a number of agents and a number of tasks. Any agent can be assigned to perform any task, incurring some cost and profit &lt;/del&gt;that &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;may vary depending on the agent-task assignment. Moreover, each agent has a budget and the sum of the costs of tasks assigned to it cannot exceed this budget&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It &lt;/del&gt;is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;required to find an assignment in which all agents do not exceed their budget and total profit of the assignment is maximized.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Special cases==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In the special case in which all the agents&#039; budgets and all tasks&#039; costs are equal to 1, this problem reduces to the [[maximum assignment problem]]. When the costs &lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;profits of all agents-task assignment are equal, this problem reduces to the [[multiple knapsack problem]]. If there is a single agent, then, this problem reduces to the [[Knapsack problem]].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Definition==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In the following, we have &#039;&#039;n&#039;&#039; kinds of items, &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; through &amp;lt;math&amp;gt;x_n&amp;lt;/math&amp;gt; and &#039;&#039;m&#039;&#039; kinds of bins &amp;lt;math&amp;gt;b_1&amp;lt;/math&amp;gt; through &amp;lt;math&amp;gt;b_m&amp;lt;/math&amp;gt;. Each bin &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; is associated with a budget &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt;. For a bin &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt;, each item &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; &lt;/del&gt;has &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a profit &amp;lt;math&amp;gt;p_{ij}&amp;lt;/math&amp;gt; and a weight &amp;lt;math&amp;gt;w_{ij}&amp;lt;/math&amp;gt;&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; A solution is a subset of items &#039;&#039;U&#039;&#039; and an assignment from &#039;&#039;U&#039;&#039; to the bins. A feasible solution is a solution &lt;/del&gt;in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which for each bin &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; the total weight of assigned items is at most &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt;&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The solution&#039;s profit &lt;/del&gt;is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the sum of profits for each item-bin assignment. The goal is to find a maximum profit feasible solution.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mathematically the generalized assignment problem can be formulated as:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:maximize &amp;lt;math&amp;gt;\sum_{i=1}^m\sum_{j=1}^n p_{ij} x_{ij}.&amp;lt;/math&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:subject to &amp;lt;math&amp;gt;\sum_{j=1}^n w_{ij} x_{ij} \le w_i \qquad i=1, \ldots, m&amp;lt;/math&amp;gt;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;::&amp;lt;math&amp;gt; \sum_{i=1}^m x_{ij} \leq 1 \qquad j=1, \ldots, n&amp;lt;/math&amp;gt;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;::&amp;lt;math&amp;gt; x_{ij} \in \{0,1\} \qquad i=1, \ldots, m, \quad j=1, \ldots, n&amp;lt;/math&amp;gt;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The generalized assignment problem is [[NP-hard]], and it is even [[APX-hard]] to approximate it. Recently it was shown &lt;/del&gt;that &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;an extension of it is &amp;lt;math&amp;gt;e/(e-1) - \varepsilon&amp;lt;/math&amp;gt; hard to approximate &lt;/del&gt;for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;every &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Citation needed|date=November 2012}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Greedy approximation algorithm==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Using any algorithm ALG &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;math&lt;/del&gt;&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\alpha&lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/math&lt;/del&gt;&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-approximation algorithm for the [[knapsack problem]], it is possible &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;construct a (&amp;lt;math&amp;gt; \alpha+1&amp;lt;/math&amp;gt;)-approximation for the generalized assignment problem in a greedy manner using a residual profit concept.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The algorithm constructs a schedule in iterations, where during iteration &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; a tentative selection of items &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; is selected.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The selection for bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; might change as items might be reselected in a later iteration for other bins.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The residual profit of an item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;p_{ij}&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is not selected for any other bin or &amp;lt;math&amp;gt; p_{ij}&amp;lt;/math&amp;gt; – &amp;lt;math&amp;gt;p_{ik} &amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is selected for bin &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Formally: We use a vector &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; to indicate the tentative schedule during the algorithm. Specifically, &amp;lt;math&amp;gt;T[i]=j&amp;lt;/math&amp;gt; means the item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is scheduled on bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T[i]=-1&amp;lt;/math&amp;gt; means that item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is not scheduled. The residual profit in iteration &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is denoted by &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;P_j[i]=p_{ij}&amp;lt;/math&amp;gt; if item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is not scheduled (i.e. &amp;lt;math&amp;gt;T[i]=-1&amp;lt;/math&amp;gt;) and &amp;lt;math&amp;gt;P_j[i]=p_{ij}-p_{ik}&amp;lt;/math&amp;gt; if item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is scheduled on bin &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt; (i.e. &amp;lt;math&amp;gt;T[i]=k&amp;lt;/math&amp;gt;).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Formally:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Set &amp;lt;math&amp;gt;T[i]=-1&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i = 1\ldots n&amp;lt;/math&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: For &amp;lt;math&amp;gt;j=1...m&amp;lt;/math&amp;gt; do:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:: Call ALG to find a solution to bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; using the residual profit function &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt;. Denote the selected items by &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:: Update &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; using &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;, i.e., &amp;lt;math&amp;gt;T[i]=j&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i \in S_j&amp;lt;/math&amp;gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==See also==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[[Assignment problem]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== References ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Reuven Cohen, Liran Katzir, and Danny Raz, [http://www.cs.technion.ac.il/~lirank/pubs/2006-IPL-Generalized-Assignment-Problem.pdf &quot;An Efficient Approximation for the Generalized Assignment Problem&quot;], Information Processing Letters, Vol. 100, Issue 4, pp.&amp;amp;nbsp&lt;/del&gt;;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;162–166, November 2006.  &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Lisa Fleischer, Michel X. Goemans, Vahab S. Mirrokni, and Maxim Sviridenko, &lt;/del&gt;[http://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;www-math&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mit&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;edu&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;~goemans&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PAPERS&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ga-soda06.pdf &quot;Tight Approximation Algorithms for Maximum General Assignment Problems&quot;], SODA 2006, pp.&amp;amp;nbsp;611–620&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Hans Kellerer, Ulrich Pferschy, David Pisinger, &#039;&#039;Knapsack Problems &#039;&#039;, 2005. Springer Verlag ISBN 3-540-40286-1&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== External links ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:NP-complete problems]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Operations research]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>en&gt;Spitzak</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=ScRGB&amp;diff=16143&amp;oldid=prev</id>
		<title>en&gt;PetesGuide: /* External links */ replaced broken link to ExtremeTech &quot;Defining scRGB&quot; with link to same article found on PCMag.com (verified by using Wayback machine)</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=ScRGB&amp;diff=16143&amp;oldid=prev"/>
		<updated>2012-03-10T23:30:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;External links: &lt;/span&gt; replaced broken link to ExtremeTech &amp;quot;Defining scRGB&amp;quot; with link to same article found on PCMag.com (verified by using Wayback machine)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In [[applied mathematics]], the maximum &amp;#039;&amp;#039;&amp;#039;generalized assignment problem&amp;#039;&amp;#039;&amp;#039; is a problem in [[combinatorial optimization]].  This problem is a [[generalization]] of the [[assignment problem]] in which both tasks and [[Agent-based model|agents]] have a size. Moreover, the size of each task might vary from one agent to the other. &lt;br /&gt;
&lt;br /&gt;
This problem in its most general form is as follows:&lt;br /&gt;
&lt;br /&gt;
There are a number of agents and a number of tasks. Any agent can be assigned to perform any task, incurring some cost and profit that may vary depending on the agent-task assignment. Moreover, each agent has a budget and the sum of the costs of tasks assigned to it cannot exceed this budget. It is required to find an assignment in which all agents do not exceed their budget and total profit of the assignment is maximized.&lt;br /&gt;
&lt;br /&gt;
==Special cases==&lt;br /&gt;
In the special case in which all the agents&amp;#039; budgets and all tasks&amp;#039; costs are equal to 1, this problem reduces to the [[maximum assignment problem]]. When the costs and profits of all agents-task assignment are equal, this problem reduces to the [[multiple knapsack problem]]. If there is a single agent, then, this problem reduces to the [[Knapsack problem]].&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
In the following, we have &amp;#039;&amp;#039;n&amp;#039;&amp;#039; kinds of items, &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; through &amp;lt;math&amp;gt;x_n&amp;lt;/math&amp;gt; and &amp;#039;&amp;#039;m&amp;#039;&amp;#039; kinds of bins &amp;lt;math&amp;gt;b_1&amp;lt;/math&amp;gt; through &amp;lt;math&amp;gt;b_m&amp;lt;/math&amp;gt;. Each bin &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; is associated with a budget &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt;. For a bin &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt;, each item &amp;lt;math&amp;gt;x_j&amp;lt;/math&amp;gt; has a profit &amp;lt;math&amp;gt;p_{ij}&amp;lt;/math&amp;gt; and a weight &amp;lt;math&amp;gt;w_{ij}&amp;lt;/math&amp;gt;.  A solution is a subset of items &amp;#039;&amp;#039;U&amp;#039;&amp;#039; and an assignment from &amp;#039;&amp;#039;U&amp;#039;&amp;#039; to the bins. A feasible solution is a solution in which for each bin &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; the total weight of assigned items is at most &amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt;. The solution&amp;#039;s profit is the sum of profits for each item-bin assignment. The goal is to find a maximum profit feasible solution.&lt;br /&gt;
&lt;br /&gt;
Mathematically the generalized assignment problem can be formulated as:&lt;br /&gt;
:maximize &amp;lt;math&amp;gt;\sum_{i=1}^m\sum_{j=1}^n p_{ij} x_{ij}.&amp;lt;/math&amp;gt;&lt;br /&gt;
:subject to &amp;lt;math&amp;gt;\sum_{j=1}^n w_{ij} x_{ij} \le w_i \qquad i=1, \ldots, m&amp;lt;/math&amp;gt;;&lt;br /&gt;
::&amp;lt;math&amp;gt; \sum_{i=1}^m x_{ij} \leq 1 \qquad j=1, \ldots, n&amp;lt;/math&amp;gt;;&lt;br /&gt;
::&amp;lt;math&amp;gt; x_{ij} \in \{0,1\} \qquad i=1, \ldots, m, \quad j=1, \ldots, n&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
The generalized assignment problem is [[NP-hard]], and it is even [[APX-hard]] to approximate it. Recently it was shown that an extension of it is &amp;lt;math&amp;gt;e/(e-1) - \varepsilon&amp;lt;/math&amp;gt; hard to approximate for every &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;.{{Citation needed|date=November 2012}}&lt;br /&gt;
&lt;br /&gt;
==Greedy approximation algorithm==&lt;br /&gt;
Using any algorithm ALG &amp;lt;math&amp;gt; \alpha&amp;lt;/math&amp;gt;-approximation algorithm for the [[knapsack problem]], it is possible to construct a (&amp;lt;math&amp;gt; \alpha+1&amp;lt;/math&amp;gt;)-approximation for the generalized assignment problem in a greedy manner using a residual profit concept.&lt;br /&gt;
The algorithm constructs a schedule in iterations, where during iteration &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; a tentative selection of items to bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; is selected.&lt;br /&gt;
The selection for bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; might change as items might be reselected in a later iteration for other bins.&lt;br /&gt;
The residual profit of an item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;p_{ij}&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is not selected for any other bin or &amp;lt;math&amp;gt; p_{ij}&amp;lt;/math&amp;gt; – &amp;lt;math&amp;gt;p_{ik} &amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is selected for bin &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Formally: We use a vector &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; to indicate the tentative schedule during the algorithm. Specifically, &amp;lt;math&amp;gt;T[i]=j&amp;lt;/math&amp;gt; means the item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is scheduled on bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T[i]=-1&amp;lt;/math&amp;gt; means that item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is not scheduled. The residual profit in iteration &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is denoted by &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;P_j[i]=p_{ij}&amp;lt;/math&amp;gt; if item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is not scheduled (i.e. &amp;lt;math&amp;gt;T[i]=-1&amp;lt;/math&amp;gt;) and &amp;lt;math&amp;gt;P_j[i]=p_{ij}-p_{ik}&amp;lt;/math&amp;gt; if item &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; is scheduled on bin &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt; (i.e. &amp;lt;math&amp;gt;T[i]=k&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Formally:&lt;br /&gt;
: Set &amp;lt;math&amp;gt;T[i]=-1&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i = 1\ldots n&amp;lt;/math&amp;gt;&lt;br /&gt;
: For &amp;lt;math&amp;gt;j=1...m&amp;lt;/math&amp;gt; do:&lt;br /&gt;
:: Call ALG to find a solution to bin &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt; using the residual profit function &amp;lt;math&amp;gt;P_j&amp;lt;/math&amp;gt;. Denote the selected items by &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
:: Update &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; using &amp;lt;math&amp;gt;S_j&amp;lt;/math&amp;gt;, i.e., &amp;lt;math&amp;gt;T[i]=j&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i \in S_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Assignment problem]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Reuven Cohen, Liran Katzir, and Danny Raz, [http://www.cs.technion.ac.il/~lirank/pubs/2006-IPL-Generalized-Assignment-Problem.pdf &amp;quot;An Efficient Approximation for the Generalized Assignment Problem&amp;quot;], Information Processing Letters, Vol. 100, Issue 4, pp.&amp;amp;nbsp;162–166, November 2006.  &lt;br /&gt;
* Lisa Fleischer, Michel X. Goemans, Vahab S. Mirrokni, and Maxim Sviridenko, [http://www-math.mit.edu/~goemans/PAPERS/ga-soda06.pdf &amp;quot;Tight Approximation Algorithms for Maximum General Assignment Problems&amp;quot;], SODA 2006, pp.&amp;amp;nbsp;611–620.&lt;br /&gt;
* Hans Kellerer, Ulrich Pferschy, David Pisinger, &amp;#039;&amp;#039;Knapsack Problems &amp;#039;&amp;#039;, 2005. Springer Verlag ISBN 3-540-40286-1&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
[[Category:NP-complete problems]]&lt;br /&gt;
[[Category:Operations research]]&lt;/div&gt;</summary>
		<author><name>en&gt;PetesGuide</name></author>
	</entry>
</feed>