geosolver/doc/pydoc/geosolver.constraint.html

127 lines
8.6 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module geosolver.constraint</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="geosolver.html"><font color="#ffffff">geosolver</font></a>.constraint</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/rick/Programming/Python/GeoSolver/geosolver/constraint.py">/home/rick/Programming/Python/GeoSolver/geosolver/constraint.py</a></font></td></tr></table>
<p><tt>Module&nbsp;for&nbsp;constraint&nbsp;graphs<br>
Copyright&nbsp;Rick&nbsp;van&nbsp;der&nbsp;Meiden&nbsp;2003,&nbsp;2004<br>
Started&nbsp;1&nbsp;Nov&nbsp;2003.<br>
&nbsp;<br>
A&nbsp;constraint&nbsp;graph&nbsp;represents&nbsp;a&nbsp;constraint&nbsp;problem.&nbsp;A&nbsp;constraint&nbsp;defines&nbsp;a<br>
number&nbsp;of&nbsp;variables,&nbsp;and&nbsp;a&nbsp;relation&nbsp;between&nbsp;those&nbsp;variables&nbsp;that&nbsp;must&nbsp;be<br>
satisfied.<br>
&nbsp;<br>
Note&nbsp;that&nbsp;no&nbsp;values&nbsp;are&nbsp;associated&nbsp;with&nbsp;variables&nbsp;in&nbsp;the&nbsp;constraint&nbsp;graph,&nbsp;i.e.<br>
satisfying&nbsp;constraints&nbsp;is&nbsp;not&nbsp;considered&nbsp;in&nbsp;this&nbsp;module.&nbsp;<br>
&nbsp;<br>
The&nbsp;constraint&nbsp;graph&nbsp;is&nbsp;(internally)&nbsp;represented&nbsp;by&nbsp;a&nbsp;directed&nbsp;bi-partite<br>
graph;&nbsp;nodes&nbsp;are&nbsp;variables&nbsp;or&nbsp;constraints&nbsp;and&nbsp;edges&nbsp;run&nbsp;from&nbsp;variables&nbsp;to<br>
constraints.&nbsp;<br>
&nbsp;<br>
Variables&nbsp;are&nbsp;just&nbsp;names;&nbsp;any&nbsp;non-mutable&nbsp;hashable&nbsp;object,&nbsp;e.g.&nbsp;a&nbsp;string,<br>
qualifies&nbsp;for&nbsp;a&nbsp;variable.&nbsp;Constraints&nbsp;must&nbsp;be&nbsp;instances&nbsp;of&nbsp;(suclasses&nbsp;of)&nbsp;class<br>
<a href="#Constraint">Constraint</a>,&nbsp;and&nbsp;must&nbsp;also&nbsp;be&nbsp;non-mutable,&nbsp;hashable&nbsp;objects.&nbsp;<br>
&nbsp;<br>
Changes:<br>
23&nbsp;Nov&nbsp;2004&nbsp;-&nbsp;added&nbsp;Error&nbsp;classes,&nbsp;updated&nbsp;naming&nbsp;and&nbsp;doc&nbsp;conventions&nbsp;(<a href="http://www.python.org/peps/pep-0008.html">PEP&nbsp;8</a>,&nbsp;257)<br>
24&nbsp;Nov&nbsp;2004&nbsp;-&nbsp;added&nbsp;semi-abstract&nbsp;implementation&nbsp;for&nbsp;<a href="#Constraint">Constraint</a>.variables()</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="geosolver.constraint.html#Constraint">Constraint</a>
</font></dt><dt><font face="helvetica, arial"><a href="geosolver.notify.html#Notifier">geosolver.notify.Notifier</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="geosolver.constraint.html#ConstraintGraph">ConstraintGraph</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Constraint">class <strong>Constraint</strong></a></font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Abstract&nbsp;constraint<br>
&nbsp;<br>
A&nbsp;constraint&nbsp;defines&nbsp;a&nbsp;relation&nbsp;between&nbsp;variables&nbsp;that&nbsp;should&nbsp;be<br>
satisfied.<br>
&nbsp;<br>
Subclasses&nbsp;must&nbsp;define&nbsp;proper&nbsp;__init__(),&nbsp;<a href="#Constraint-variables">variables</a>()&nbsp;and&nbsp;<a href="#Constraint-satisfied">satisfied</a>()<br>
methods.&nbsp;Constraints&nbsp;must&nbsp;be&nbsp;non-mutable,&nbsp;hashable&nbsp;objects.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Constraint-satisfied"><strong>satisfied</strong></a>(self, mapping)</dt><dd><tt>return&nbsp;true&nbsp;iff&nbsp;constraint&nbsp;is&nbsp;satisfied&nbsp;by&nbsp;given&nbsp;mapping<br>
from&nbsp;variables&nbsp;to&nbsp;values&nbsp;(dictionary)</tt></dd></dl>
<dl><dt><a name="Constraint-variables"><strong>variables</strong></a>(self)</dt><dd><tt>return&nbsp;a&nbsp;list&nbsp;of&nbsp;variables<br>
&nbsp;<br>
If&nbsp;an&nbsp;attribute&nbsp;'_variables'&nbsp;has&nbsp;been&nbsp;defined,&nbsp;a&nbsp;new&nbsp;list<br>
with&nbsp;the&nbsp;contents&nbsp;of&nbsp;that&nbsp;attribute&nbsp;will&nbsp;be&nbsp;returned.&nbsp;<br>
Subclasses&nbsp;may&nbsp;choose&nbsp;to&nbsp;initialise&nbsp;this&nbsp;variable&nbsp;or&nbsp;to&nbsp;<br>
override&nbsp;this&nbsp;function.</tt></dd></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="ConstraintGraph">class <strong>ConstraintGraph</strong></a>(<a href="geosolver.notify.html#Notifier">geosolver.notify.Notifier</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>A&nbsp;constraint&nbsp;graph.<br>
&nbsp;<br>
For&nbsp;more&nbsp;information&nbsp;see&nbsp;module&nbsp;documentation.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="ConstraintGraph-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Create&nbsp;a&nbsp;new,&nbsp;empty&nbsp;<a href="#ConstraintGraph">ConstraintGraph</a></tt></dd></dl>
<dl><dt><a name="ConstraintGraph-__str__"><strong>__str__</strong></a>(self)</dt></dl>
<dl><dt><a name="ConstraintGraph-add_constraint"><strong>add_constraint</strong></a>(self, con)</dt><dd><tt>add&nbsp;a&nbsp;constraint</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-add_variable"><strong>add_variable</strong></a>(self, varname)</dt><dd><tt>add&nbsp;a&nbsp;variable</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-constraints"><strong>constraints</strong></a>(self)</dt><dd><tt>return&nbsp;a&nbsp;list&nbsp;of&nbsp;variables</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-get_constraints_on"><strong>get_constraints_on</strong></a>(self, var)</dt><dd><tt>get&nbsp;a&nbsp;list&nbsp;of&nbsp;all&nbsp;constraints&nbsp;on&nbsp;var</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-get_constraints_on_all"><strong>get_constraints_on_all</strong></a>(self, varlist)</dt><dd><tt>get&nbsp;a&nbsp;list&nbsp;of&nbsp;all&nbsp;constraints&nbsp;on&nbsp;all&nbsp;vars&nbsp;in&nbsp;list</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-get_constraints_on_any"><strong>get_constraints_on_any</strong></a>(self, varlist)</dt><dd><tt>get&nbsp;a&nbsp;list&nbsp;of&nbsp;all&nbsp;constraints&nbsp;on&nbsp;any&nbsp;of&nbsp;the&nbsp;vars&nbsp;in&nbsp;list</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-rem_constraint"><strong>rem_constraint</strong></a>(self, con)</dt><dd><tt>remove&nbsp;a&nbsp;variable</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-rem_variable"><strong>rem_variable</strong></a>(self, varname)</dt><dd><tt>remove&nbsp;a&nbsp;variable</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-variables"><strong>variables</strong></a>(self)</dt><dd><tt>return&nbsp;a&nbsp;list&nbsp;of&nbsp;variables</tt></dd></dl>
<hr>
Methods inherited from <a href="geosolver.notify.html#Notifier">geosolver.notify.Notifier</a>:<br>
<dl><dt><a name="ConstraintGraph-add_listener"><strong>add_listener</strong></a>(self, listener)</dt><dd><tt>add&nbsp;a&nbsp;listener&nbsp;to&nbsp;the&nbsp;list&nbsp;(and&nbsp;self&nbsp;to&nbsp;listers'&nbsp;list)</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-rem_listener"><strong>rem_listener</strong></a>(self, listener)</dt><dd><tt>remove&nbsp;a&nbsp;listener&nbsp;from&nbsp;the&nbsp;list&nbsp;(and&nbsp;self&nbsp;from&nbsp;listers'&nbsp;list)</tt></dd></dl>
<dl><dt><a name="ConstraintGraph-send_notify"><strong>send_notify</strong></a>(self, message)</dt><dd><tt>send&nbsp;a&nbsp;message&nbsp;to&nbsp;all&nbsp;listeners</tt></dd></dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-test"><strong>test</strong></a>()</dt></dl>
</td></tr></table>
</body></html>