<?xml version="1.0" encoding="ISO-8859-1"?>
<CAT xmlns:cat="http://www.w3.org/TR/html4/" version="2.0"> 
<cat:title>P vs. NP Categorizing Grid</cat:title>
<cat:author>Kate Deibel</cat:author>
<cat:date>03/10/28</cat:date>

<cat:technique>Categorizing Grid</cat:technique>

<cat:purpose>
<p>
This activity allows instructors to see students' knowledge regarding the elements within P and NP.
</p>
</cat:purpose>
<cat:activity>
<p>
This activity will give you the opportunity to decide whether an a computational problem is known to be in P (solvable in deterministic polynomial time) or NP (solvable in non-deterministic space).
</p>

<br></br>

<center>

<table border="1">
<tr>
<td align="center" width="150">
P
</td>
<td align="center" width="150">
NP
</td>
</tr>
<tr>
<td height="135">

<br></br>

</td>
<td height="135">

<br></br>

</td>
</tr>
</table>

<br></br>

<table border="1">
<tr>
<td align="center">
Problems
</td>
</tr>
<tr>
<td>

<ol>
<li>Finding a clique in a graph of size at least k</li>
<li>3-coloring a graph</li>
<li>4-coloring a graph</li>
<li>Coloring a planar graph</li>
<li>Determining if an integer is prime</li>
<li>Determining if an integer is composite</li>
<li>Finding a max-flow in a network graph</li>
<li>Finding a path shorter than length k from A to B in a graph</li>
<li>Finding a path longerer than length k from A to B in a graph</li>
<li>Determining if a logical expression is satisfiable</li>
<li>Sorting a pre-ordered list</li>
<li>Determing if a graph has an Euler cycle (crossing every edge once)</li>
<li>Determing if a graph has a Hamiltonian cycle (touching every vertex once)</li>
<li>Determine if two graphs are isomorphic</li>
</ol>

</td>
</tr>
</table>

</center>
</cat:activity>
<cat:solution>
<p>
The following are suggestions, but several of the items in this activity are meant to encourage discussion.
</p>

<ol>
<li>NP: Finding a clique in a graph of size at least k</li>
<li>P: 3-coloring a graph</li>
<li>NP: 4-coloring a graph</li>
<li>P: Coloring a planar graph</li>
<li>P: Determining if an integer is prime</li>
<li>P: Determining if an integer is composite</li>
<li>P: Finding a max-flow in a network graph</li>
<li>P: Finding a path shorter than length k from A to B in a graph</li>
<li>P: Finding a path longer than length k from A to B in a graph</li>
<li>NP: Determining if a logical expression is satisfiable</li>
<li>P: Sorting a pre-ordered list</li>
<li>P: Determing if a graph has an Euler cycle (crossing every edge once)</li>
<li>NP: Determing if a graph has a Hamiltonian cycle (touching every vertex once)</li>
<li>NP: Determine if two graphs are isomorphic</li>
</ol>
</cat:solution>
<cat:analysis>
<p>
Run through the grids and mark incorrect or missing entries. Identify the most common errors as well as any patterns that could explain student confusion. Reflect upon these errors and report them back to the class as you see fit.
</p>
</cat:analysis>
<cat:variant_uses>
	<cat:variation>Have students work in groups to complete this activity. The instructor may want to circulate throughout the groups to ensure that each group is making progress. After the groups have completed their lists, the instructor can ask for votes on each item. It is important that the instructor explains why each data structure is appropriate for the task.</cat:variation>
	<cat:variation>Have students work individually on their lists and then form groups of 4-5 people to discuss their individual lists with other members of the group.</cat:variation>
</cat:variant_uses>
<cat:classification>
<cat:assessment_goals>
	<cat:goal>Develop analytic skills</cat:goal>
	<cat:goal>Develop ability to draw reasonable inferences from observations</cat:goal>
	<cat:goal>Improve memory skills</cat:goal>
	<cat:goal>Develop appropriate study skills, strategies, and habits</cat:goal>
	<cat:goal>Learn terms and facts of this subject</cat:goal>
	<cat:goal>Learn concepts and theories of this subject</cat:goal>
</cat:assessment_goals>
<cat:topics>
	<cat:topic>Complexity</cat:topic>
	<cat:topic>NP</cat:topic>
	<cat:topic>P</cat:topic>
	<cat:topic>Algorithms</cat:topic>
</cat:topics>
<cat:participation_level>
</cat:participation_level>
<cat:time>
	<cat:preparation_time>LOW</cat:preparation_time>
	<cat:class_time>LOW</cat:class_time>
	<cat:in_class_analysis_time>LOW</cat:in_class_analysis_time>
	<cat:out_class_analysis_time>LOW</cat:out_class_analysis_time>
</cat:time>
<cat:instructor_response>
	<cat:response>Lecture</cat:response>
	<cat:response>Next Day Summary</cat:response>
	<cat:response>Class Discussion</cat:response>
	<cat:response>Homework</cat:response>
</cat:instructor_response>
<cat:device_enabled>Has Been Enabled</cat:device_enabled>
<cat:related_topics>
	<cat:topic>Efficiency</cat:topic>
	<cat:topic>NP-Complete</cat:topic>
	<cat:topic>Decidability</cat:topic>
	<cat:topic>Analysis</cat:topic>
</cat:related_topics>
</cat:classification>
</CAT>