source: javadoc/genius/core/utility/UtilitySpace.html@ 1

Last change on this file since 1 was 1, checked in by Wouter Pasman, 7 years ago

Initial import : Genius 9.0.0

File size: 15.5 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<!-- NewPage -->
3<html lang="en">
4<head>
5<!-- Generated by javadoc (1.8.0_112) on Thu Jun 21 12:05:58 CEST 2018 -->
6<title>UtilitySpace (Genius Core Documentation)</title>
7<meta name="date" content="2018-06-21">
8<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
9<script type="text/javascript" src="../../../script.js"></script>
10</head>
11<body>
12<script type="text/javascript"><!--
13 try {
14 if (location.href.indexOf('is-external=true') == -1) {
15 parent.document.title="UtilitySpace (Genius Core Documentation)";
16 }
17 }
18 catch(err) {
19 }
20//-->
21var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
22var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
23var altColor = "altColor";
24var rowColor = "rowColor";
25var tableTab = "tableTab";
26var activeTableTab = "activeTableTab";
27</script>
28<noscript>
29<div>JavaScript is disabled on your browser.</div>
30</noscript>
31<!-- ========= START OF TOP NAVBAR ======= -->
32<div class="topNav"><a name="navbar.top">
33<!-- -->
34</a>
35<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
36<a name="navbar.top.firstrow">
37<!-- -->
38</a>
39<ul class="navList" title="Navigation">
40<li><a href="../../../overview-summary.html">Overview</a></li>
41<li><a href="package-summary.html">Package</a></li>
42<li class="navBarCell1Rev">Class</li>
43<li><a href="class-use/UtilitySpace.html">Use</a></li>
44<li><a href="package-tree.html">Tree</a></li>
45<li><a href="../../../deprecated-list.html">Deprecated</a></li>
46<li><a href="../../../index-all.html">Index</a></li>
47<li><a href="../../../help-doc.html">Help</a></li>
48</ul>
49</div>
50<div class="subNav">
51<ul class="navList">
52<li><a href="../../../genius/core/utility/UtilityFunction.html" title="class in genius.core.utility"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
53<li><a href="../../../genius/core/utility/UtilitySpaceTools.html" title="class in genius.core.utility"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
54</ul>
55<ul class="navList">
56<li><a href="../../../index.html?genius/core/utility/UtilitySpace.html" target="_top">Frames</a></li>
57<li><a href="UtilitySpace.html" target="_top">No&nbsp;Frames</a></li>
58</ul>
59<ul class="navList" id="allclasses_navbar_top">
60<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
61</ul>
62<div>
63<script type="text/javascript"><!--
64 allClassesLink = document.getElementById("allclasses_navbar_top");
65 if(window==top) {
66 allClassesLink.style.display = "block";
67 }
68 else {
69 allClassesLink.style.display = "none";
70 }
71 //-->
72</script>
73</div>
74<div>
75<ul class="subNavList">
76<li>Summary:&nbsp;</li>
77<li>Nested&nbsp;|&nbsp;</li>
78<li>Field&nbsp;|&nbsp;</li>
79<li>Constr&nbsp;|&nbsp;</li>
80<li><a href="#method.summary">Method</a></li>
81</ul>
82<ul class="subNavList">
83<li>Detail:&nbsp;</li>
84<li>Field&nbsp;|&nbsp;</li>
85<li>Constr&nbsp;|&nbsp;</li>
86<li><a href="#method.detail">Method</a></li>
87</ul>
88</div>
89<a name="skip.navbar.top">
90<!-- -->
91</a></div>
92<!-- ========= END OF TOP NAVBAR ========= -->
93<!-- ======== START OF CLASS DATA ======== -->
94<div class="header">
95<div class="subTitle">genius.core.utility</div>
96<h2 title="Interface UtilitySpace" class="title">Interface UtilitySpace</h2>
97</div>
98<div class="contentContainer">
99<div class="description">
100<ul class="blockList">
101<li class="blockList">
102<dl>
103<dt>All Superinterfaces:</dt>
104<dd>java.io.Serializable</dd>
105</dl>
106<dl>
107<dt>All Known Implementing Classes:</dt>
108<dd><a href="../../../genius/core/utility/AbstractUtilitySpace.html" title="class in genius.core.utility">AbstractUtilitySpace</a>, <a href="../../../genius/core/utility/AdditiveUtilitySpace.html" title="class in genius.core.utility">AdditiveUtilitySpace</a>, <a href="../../../genius/core/utility/AdditiveUtilitySpaceWithPerturbation.html" title="class in genius.core.utility">AdditiveUtilitySpaceWithPerturbation</a>, <a href="../../../genius/core/utility/ConstraintUtilitySpace.html" title="class in genius.core.utility">ConstraintUtilitySpace</a>, <a href="../../../genius/core/uncertainty/flattening/FlattenedUtilitySpace.html" title="class in genius.core.uncertainty.flattening">FlattenedUtilitySpace</a>, <a href="../../../genius/core/utility/NonlinearUtilitySpace.html" title="class in genius.core.utility">NonlinearUtilitySpace</a>, <a href="../../../genius/core/representative/UncertainUtilitySpace.html" title="class in genius.core.representative">UncertainUtilitySpace</a></dd>
109</dl>
110<hr>
111<br>
112<pre>public interface <span class="typeNameLabel">UtilitySpace</span>
113extends java.io.Serializable</pre>
114<div class="block">A utility space is a function that maps bids to utilities.
115
116 Implementors MUST implement <code>#equals(Object)</code> and <code>#hashCode()</code>.</div>
117</li>
118</ul>
119</div>
120<div class="summary">
121<ul class="blockList">
122<li class="blockList">
123<!-- ========== METHOD SUMMARY =========== -->
124<ul class="blockList">
125<li class="blockList"><a name="method.summary">
126<!-- -->
127</a>
128<h3>Method Summary</h3>
129<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
130<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
131<tr>
132<th class="colFirst" scope="col">Modifier and Type</th>
133<th class="colLast" scope="col">Method and Description</th>
134</tr>
135<tr id="i0" class="altColor">
136<td class="colFirst"><code><a href="../../../genius/core/utility/UtilitySpace.html" title="interface in genius.core.utility">UtilitySpace</a></code></td>
137<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#copy--">copy</a></span>()</code>&nbsp;</td>
138</tr>
139<tr id="i1" class="rowColor">
140<td class="colFirst"><code>java.lang.Double</code></td>
141<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#discount-double-double-">discount</a></span>(double&nbsp;util,
142 double&nbsp;time)</code>
143<div class="block">Computes the discounted utility of a bid.</div>
144</td>
145</tr>
146<tr id="i2" class="altColor">
147<td class="colFirst"><code><a href="../../../genius/core/Domain.html" title="interface in genius.core">Domain</a></code></td>
148<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#getDomain--">getDomain</a></span>()</code>&nbsp;</td>
149</tr>
150<tr id="i3" class="rowColor">
151<td class="colFirst"><code>java.lang.String</code></td>
152<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#getName--">getName</a></span>()</code>&nbsp;</td>
153</tr>
154<tr id="i4" class="altColor">
155<td class="colFirst"><code>java.lang.Double</code></td>
156<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#getReservationValue--">getReservationValue</a></span>()</code>
157<div class="block">The reservation value is the least favourable point at which one will
158 accept a negotiated agreement.</div>
159</td>
160</tr>
161<tr id="i5" class="rowColor">
162<td class="colFirst"><code>double</code></td>
163<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#getUtility-genius.core.Bid-">getUtility</a></span>(<a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a>&nbsp;bid)</code>&nbsp;</td>
164</tr>
165<tr id="i6" class="altColor">
166<td class="colFirst"><code>java.lang.String</code></td>
167<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#isComplete--">isComplete</a></span>()</code>
168<div class="block">Check if this utility space is complete and ready for negotiation.</div>
169</td>
170</tr>
171<tr id="i7" class="rowColor">
172<td class="colFirst"><code><a href="../../../genius/core/xml/SimpleElement.html" title="class in genius.core.xml">SimpleElement</a></code></td>
173<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/utility/UtilitySpace.html#toXML--">toXML</a></span>()</code>
174<div class="block">Creates an xml representation (in the form of a SimpleElements) of the
175 utilityspace.</div>
176</td>
177</tr>
178</table>
179</li>
180</ul>
181</li>
182</ul>
183</div>
184<div class="details">
185<ul class="blockList">
186<li class="blockList">
187<!-- ============ METHOD DETAIL ========== -->
188<ul class="blockList">
189<li class="blockList"><a name="method.detail">
190<!-- -->
191</a>
192<h3>Method Detail</h3>
193<a name="getDomain--">
194<!-- -->
195</a>
196<ul class="blockList">
197<li class="blockList">
198<h4>getDomain</h4>
199<pre><a href="../../../genius/core/Domain.html" title="interface in genius.core">Domain</a>&nbsp;getDomain()</pre>
200<dl>
201<dt><span class="returnLabel">Returns:</span></dt>
202<dd>domain belonging to this preference profile.</dd>
203</dl>
204</li>
205</ul>
206<a name="getUtility-genius.core.Bid-">
207<!-- -->
208</a>
209<ul class="blockList">
210<li class="blockList">
211<h4>getUtility</h4>
212<pre>double&nbsp;getUtility(<a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a>&nbsp;bid)</pre>
213<dl>
214<dt><span class="paramLabel">Parameters:</span></dt>
215<dd><code>bid</code> - of which we are interested in its utility.</dd>
216<dt><span class="returnLabel">Returns:</span></dt>
217<dd>Utility of the given bid. This utility is undiscounted: there is
218 no time dependent devaluation of the utility. See also
219 <a href="../../../genius/core/utility/UtilitySpace.html#discount-double-double-"><code>discount(double, double)</code></a>.</dd>
220</dl>
221</li>
222</ul>
223<a name="discount-double-double-">
224<!-- -->
225</a>
226<ul class="blockList">
227<li class="blockList">
228<h4>discount</h4>
229<pre>java.lang.Double&nbsp;discount(double&nbsp;util,
230 double&nbsp;time)</pre>
231<div class="block">Computes the discounted utility of a bid. The actual implementation is
232 implementation specific but we assume that this function is monotonically
233 decreasing so that the discount at time 1.0 gives the biggest possible
234 discount.</div>
235<dl>
236<dt><span class="paramLabel">Parameters:</span></dt>
237<dd><code>util</code> - the undiscounted utility as coming from
238 <a href="../../../genius/core/utility/UtilitySpace.html#getUtility-genius.core.Bid-"><code>getUtility(Bid)</code></a>.</dd>
239<dd><code>time</code> - a real number in the range [0,1] where 0 is the start of the
240 negotiation and 1 the end. See also <a href="../../../genius/core/timeline/TimeLineInfo.html" title="interface in genius.core.timeline"><code>TimeLineInfo</code></a>.</dd>
241<dt><span class="returnLabel">Returns:</span></dt>
242<dd>the time-discounted utility at given time.</dd>
243</dl>
244</li>
245</ul>
246<a name="copy--">
247<!-- -->
248</a>
249<ul class="blockList">
250<li class="blockList">
251<h4>copy</h4>
252<pre><a href="../../../genius/core/utility/UtilitySpace.html" title="interface in genius.core.utility">UtilitySpace</a>&nbsp;copy()</pre>
253<dl>
254<dt><span class="returnLabel">Returns:</span></dt>
255<dd>a deep copy of this utility space.</dd>
256</dl>
257</li>
258</ul>
259<a name="isComplete--">
260<!-- -->
261</a>
262<ul class="blockList">
263<li class="blockList">
264<h4>isComplete</h4>
265<pre>java.lang.String&nbsp;isComplete()</pre>
266<div class="block">Check if this utility space is complete and ready for negotiation.</div>
267<dl>
268<dt><span class="returnLabel">Returns:</span></dt>
269<dd>null if util space is complete, else returns String containing
270 explanation why not.</dd>
271</dl>
272</li>
273</ul>
274<a name="toXML--">
275<!-- -->
276</a>
277<ul class="blockList">
278<li class="blockList">
279<h4>toXML</h4>
280<pre><a href="../../../genius/core/xml/SimpleElement.html" title="class in genius.core.xml">SimpleElement</a>&nbsp;toXML()
281 throws java.io.IOException</pre>
282<div class="block">Creates an xml representation (in the form of a SimpleElements) of the
283 utilityspace.</div>
284<dl>
285<dt><span class="returnLabel">Returns:</span></dt>
286<dd>A representation of this utilityspace or <code>null</code> when
287 there was an error.</dd>
288<dt><span class="throwsLabel">Throws:</span></dt>
289<dd><code>java.io.IOException</code></dd>
290</dl>
291</li>
292</ul>
293<a name="getReservationValue--">
294<!-- -->
295</a>
296<ul class="blockList">
297<li class="blockList">
298<h4>getReservationValue</h4>
299<pre>java.lang.Double&nbsp;getReservationValue()</pre>
300<div class="block">The reservation value is the least favourable point at which one will
301 accept a negotiated agreement. Also sometimes referred to as the walk
302 away point.
303 <p>
304 This is value remains constant during the negotiation. However, by
305 default, the reservation value descreases with time. Refer to
306 <a href="../../../genius/core/utility/UtilitySpace.html#discount-double-double-"><code>discount(double, double)</code></a> or use support functions.</div>
307<dl>
308<dt><span class="returnLabel">Returns:</span></dt>
309<dd>undiscounted reservation value of the preference profile (may be
310 null).</dd>
311</dl>
312</li>
313</ul>
314<a name="getName--">
315<!-- -->
316</a>
317<ul class="blockListLast">
318<li class="blockList">
319<h4>getName</h4>
320<pre>java.lang.String&nbsp;getName()</pre>
321<dl>
322<dt><span class="returnLabel">Returns:</span></dt>
323<dd>a simple name for easy reference. Typically the filename.</dd>
324</dl>
325</li>
326</ul>
327</li>
328</ul>
329</li>
330</ul>
331</div>
332</div>
333<!-- ========= END OF CLASS DATA ========= -->
334<!-- ======= START OF BOTTOM NAVBAR ====== -->
335<div class="bottomNav"><a name="navbar.bottom">
336<!-- -->
337</a>
338<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
339<a name="navbar.bottom.firstrow">
340<!-- -->
341</a>
342<ul class="navList" title="Navigation">
343<li><a href="../../../overview-summary.html">Overview</a></li>
344<li><a href="package-summary.html">Package</a></li>
345<li class="navBarCell1Rev">Class</li>
346<li><a href="class-use/UtilitySpace.html">Use</a></li>
347<li><a href="package-tree.html">Tree</a></li>
348<li><a href="../../../deprecated-list.html">Deprecated</a></li>
349<li><a href="../../../index-all.html">Index</a></li>
350<li><a href="../../../help-doc.html">Help</a></li>
351</ul>
352</div>
353<div class="subNav">
354<ul class="navList">
355<li><a href="../../../genius/core/utility/UtilityFunction.html" title="class in genius.core.utility"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
356<li><a href="../../../genius/core/utility/UtilitySpaceTools.html" title="class in genius.core.utility"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
357</ul>
358<ul class="navList">
359<li><a href="../../../index.html?genius/core/utility/UtilitySpace.html" target="_top">Frames</a></li>
360<li><a href="UtilitySpace.html" target="_top">No&nbsp;Frames</a></li>
361</ul>
362<ul class="navList" id="allclasses_navbar_bottom">
363<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
364</ul>
365<div>
366<script type="text/javascript"><!--
367 allClassesLink = document.getElementById("allclasses_navbar_bottom");
368 if(window==top) {
369 allClassesLink.style.display = "block";
370 }
371 else {
372 allClassesLink.style.display = "none";
373 }
374 //-->
375</script>
376</div>
377<div>
378<ul class="subNavList">
379<li>Summary:&nbsp;</li>
380<li>Nested&nbsp;|&nbsp;</li>
381<li>Field&nbsp;|&nbsp;</li>
382<li>Constr&nbsp;|&nbsp;</li>
383<li><a href="#method.summary">Method</a></li>
384</ul>
385<ul class="subNavList">
386<li>Detail:&nbsp;</li>
387<li>Field&nbsp;|&nbsp;</li>
388<li>Constr&nbsp;|&nbsp;</li>
389<li><a href="#method.detail">Method</a></li>
390</ul>
391</div>
392<a name="skip.navbar.bottom">
393<!-- -->
394</a></div>
395<!-- ======== END OF BOTTOM NAVBAR ======= -->
396</body>
397</html>
Note: See TracBrowser for help on using the repository browser.