<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/404808_100x75.jpg</url>
		<title>Channel 9 - Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<link></link>
	</image>
	<description>Mike Swanson is at it 
again. You&#39;ve seen Mike on Channel 9 before and you&#39;ve probably used his 
SWF to XAML converter that he wrote a while back. His 
latest side project promises to be quite useful for conference owners who have the complex task of planning sessions for big technical events like PDC or TechED. In fact, Mike is the PDC08 content owner and this task falls squarely on his shoulders. Instead
 of littering his office with Post-It notes that represent sessions, speakers, session times and locations, he decided to write an algorithm to solve his problem, specifically a genetic algorithm.
This is the first epsiode of a new series on Channel 9, Data Structures and Algorithms, that will focus on, well, data structures and algorithms  Each episode will feature an engineer at a whiteboard discussing solutions to algorithms that they invented or
 improved upon. There are many clever people who write code for Microsoft and Channel 9 will continue to highlight them and their work. This new series is an attempt to really focus the conversation to one problem and it&#39;s algorithmic solution (which will often
 involve the advent of new data structures).Enjoy. Mike is as much an engineer as he is a technical evangelist. His genetic session scheduler is an innovative approach to solving a problem rife with tediousness. Well done, Mike!LOW RES FILEMP4</description>
	<link></link>
	<language>en</language>
	<pubDate>Fri, 24 May 2013 17:41:12 GMT</pubDate>
	<lastBuildDate>Fri, 24 May 2013 17:41:12 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[
<p>Intreasting Video.&nbsp; One of the first real life programs I wrote was an attempt to write a genetic sort for scheduling production across injection molding machines about 13 years ago so found this really intreasting!</p>
<p>posted by PerfectPhase</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470156440000000</link>
		<pubDate>Thu, 22 May 2008 01:14:04 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470156440000000</guid>
		<dc:creator>PerfectPhase</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[It would be cool if you could have us niners throw combinations into the fitness tester, to be evaluated. Then you could have a bunch of different mothers to work with for your genetic algorithm.
<p>posted by Jsoh</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470211280000000</link>
		<pubDate>Thu, 22 May 2008 02:45:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470211280000000</guid>
		<dc:creator>Jsoh</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[
<p>The term &quot;genetic algorithm&quot; seems to intrigue almost everyone (including me, when I first heard about them years ago). The reality is that it's a relatively straightforward optimization technique wrapped in a fancy name. The word &quot;genetic&quot; makes it sound
 like the algorithm is doing something biological in nature and many people then assume that it's an artificial intelligence technique...which it's not.<br /><br />Charles recorded this interview a couple of hours after he read my blog post (gotta love Channel 9!), and my brain hadn't had a chance to think about how I might actually diagram or whiteboard genetic algorithms. I hope it was understandable.<br /><br />If you'd like a very approachable introduction to optimization techniques like this, I'd highly recommend the book
<a href="http://blogs.msdn.com/mswanson/archive/2008/01/14/programming-collective-intelligence.aspx">
Programming Collective Intelligence</a> by Toby Segaran. It isn't only about optimization problems, but if you like algorithms, and you don't want/need to fully appreciate all of the theory, it's an extremely practical and useful book.</p>
<p>posted by mswanson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470242350000000</link>
		<pubDate>Thu, 22 May 2008 03:37:15 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470242350000000</guid>
		<dc:creator>mswanson</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[This almost sounds like a smart bruteforce. This problem sounds like a perfect situation for the classic A* algorithm for optimal problem solving often use in chess programs or pathfinding.<p>posted by Dark_Halmut</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470251260000000</link>
		<pubDate>Thu, 22 May 2008 03:52:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470251260000000</guid>
		<dc:creator>Dark_Halmut</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[The first part of the problem is more like a <a href="http://www.freequality.org/sites/www_freequality_org/documents/tools/Tagarray_files/tamatrix.htm">
taguchi's orthognal array </a>sort,&nbsp; which can be best solved by global optimization methods, although a greedy algorithm can be sufficient for an almost-optimal solution.<p>posted by umer_a</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470606900000000</link>
		<pubDate>Thu, 22 May 2008 13:44:50 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470606900000000</guid>
		<dc:creator>umer_a</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[
<blockquote>
<div class="quoteAuthor">mswanson wrote:</div>
<div class="quoteBody">&#65279;
<p>The term &quot;genetic algorithm&quot; seems to intrigue almost everyone (including me, when I first heard about them years ago). The reality is that it's a relatively straightforward optimization technique wrapped in a fancy name. The word &quot;genetic&quot; makes it sound
 like the algorithm is doing something biological in nature and many people then assume that it's an artificial intelligence technique...which it's not.<br /></p>
</div>
</blockquote>
<br /><br />The algorithm has a &quot;biological&quot; name because it is an almost element for element match for&nbsp;a very real bioloical process.&nbsp; Namely evolution.<br /><br />The processes of mutation and crosover are not synthetic or allegorical.&nbsp; The chromosomes actually line up and&nbsp;exchange analagous&nbsp;segments of genetic material; this is called crossover.&nbsp; Chromosomes actually are subject to errors in copying that actually result
 in infreuent, but random mutations.<br /><br />Perhaps the most interesting point of this is that computerized genetic algorithms have fed back into biology.&nbsp; A number of years ago a probabalistic arguement was made that the time required to evolved from an ameoba to a human being was many times the (currently
 believed) geologic age of the earth.&nbsp; The success of synthetic genetic algorithms causes some, including me, to re-examine that argument.
<p></p>
<p>posted by John Melville-- MD</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470817030000000</link>
		<pubDate>Thu, 22 May 2008 19:35:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470817030000000</guid>
		<dc:creator>John Melville-- MD</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[Good job Mike Swanson; you have a rare talent to put relatively complex ideas into words (mainly by breaking everything down). This is the reason I enjoy watching Anders as well. Please make more videos on various other algorithms or concepts.
<br /><br />You know when somebody understands something when they say that it's easy. I especially enjoyed the stories behind the algorithm; makes it more interesting.<br /><br />Keep them coming! I've made a C9 account just for this, so I hope it counts for something in your fitness function <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /><br /><p>posted by pbz</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470846090000000</link>
		<pubDate>Thu, 22 May 2008 20:23:29 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470846090000000</guid>
		<dc:creator>pbz</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[Thank you for the fantastic compliment, pbz. I very much appreciate the feedback, and I'm glad that my explanation made sense.<br /><br />I love geeky algorithms, and I've used them for a lot of fun projects. Most recently, you may have heard about
<a href="http://blogs.msdn.com/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx">
SEAMonster</a>, my C#-based implementation of the&nbsp;seam carving algorithm. There's no C9 video on that algorithm, though I'd be happy to talk about it if asked.<br /><br />I also worked with some Bayesian inference algorithms for the <a href="http://www.microsoft.com/winme/Bulk/PressPass/RRI_Sagestone_Tech_300K.asx">
NxOpinion project</a> awhile back. It used Naive Bayes to take signs, symptoms, and laboratory measurements to infer possible diseases and afflictions. Most interesingly, it would &quot;reverse&quot; the process to determine what other sign, symptom, or measurement would
 be most useful in discriminating between results. It'd literally tell you to check something like &quot;does the patient have diarrhea.&quot;<br /><br />Last, I spent a lot of time years and years ago writing encrytion and data compression libraries. I particularly enjoyed data compression, though it's pretty much assumed and built into most frameworks today. Those were the days.<br /><p>posted by mswanson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470880200000000</link>
		<pubDate>Thu, 22 May 2008 21:20:20 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633470880200000000</guid>
		<dc:creator>mswanson</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[
<blockquote>
<div class="quoteAuthor">John Melville, MD wrote:</div>
<div class="quoteBody">&#65279;
<blockquote>
<table class="quoteTable">
<tbody>
<tr>
<td valign="top" width="10"><img src="/Themes/AlmostGlass/images/icon-quote.gif"></td>
<td class="txt3"><strong>mswanson wrote:</strong>
<hr size="1">
<i>&#65279;
<p>The term &quot;genetic algorithm&quot; seems to intrigue almost everyone (including me, when I first heard about them years ago). The reality is that it's a relatively straightforward optimization technique wrapped in a fancy name. The word &quot;genetic&quot; makes it sound
 like the algorithm is doing something biological in nature and many people then assume that it's an artificial intelligence technique...which it's not.<br /></i></p>
</td>
</tr>
</tbody>
</table>
</blockquote>
<br /><br />The algorithm has a &quot;biological&quot; name because it is an almost element for element match for&nbsp;a very real bioloical process.&nbsp; Namely evolution.<br /><br />The processes of mutation and crosover are not synthetic or allegorical.&nbsp; The chromosomes actually line up and&nbsp;exchange analagous&nbsp;segments of genetic material; this is called crossover.&nbsp; Chromosomes actually are subject to errors in copying that actually result
 in infreuent, but random mutations.<br /><br />Perhaps the most interesting point of this is that computerized genetic algorithms have fed back into biology.&nbsp; A number of years ago a probabalistic arguement was made that the time required to evolved from an ameoba to a human being was many times the (currently
 believed) geologic age of the earth.&nbsp; The success of synthetic genetic algorithms causes some, including me, to re-examine that argument.
<p></p>
</div>
</blockquote>
<br /><br />&#43;&#43;<br /><br />I didn't really&nbsp;'get' (or Grok) the evolutionary mechanism until I read about genetic algorithms (in the introduction of
<a href="http://www.amazon.co.uk/Genetic-Programming-Computers-Selection-Adaptive/dp/0262111705/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1211555940&amp;sr=8-1">
Koza's 'Genetic Programming' book</a>), which is kind of embarrassing for an evolutionary biologist <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-10.gif' alt='Embarassed' /><br /><br />Evolutionary algorithms are good for this kind of 'fuzzy optimisation' work for which there is no single perfect answer, just a group of 'good' answers.&nbsp;
<br /><br />If you think genetics algorithms are 'relatively straightforward' then you've just managed the hardest part of understanding evolution:&nbsp; it's not mystical or complex just because it's biological, it 'relatively straightforward' <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /><br /><br /><br />Herbie<br /><p>posted by Dr Herbie</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633471530500000000</link>
		<pubDate>Fri, 23 May 2008 15:24:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633471530500000000</guid>
		<dc:creator>Dr Herbie</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[Few lecture notes from my class in school<br /><a href="http://pages.cs.wisc.edu/~dyer/cs540/notes/geneticAlgorithms-4up.pdf">http://pages.cs.wisc.edu/~dyer/cs540/notes/geneticAlgorithms-4up.pdf</a><br />gives a summary on genetic algorithms<p>posted by Darth</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633471763900000000</link>
		<pubDate>Fri, 23 May 2008 21:53:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633471763900000000</guid>
		<dc:creator>Darth</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[Hey, everyone! In case you hadn't noticed, the <a href="http://www.microsoftpdc.com/">
public PDC2008 web site</a> is now live. I hope to see many of you at the event.<p>posted by mswanson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633475575980000000</link>
		<pubDate>Wed, 28 May 2008 07:46:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633475575980000000</guid>
		<dc:creator>mswanson</dc:creator>
	</item>
	<item>
		<title>Re: Algorithms and Data Structures: Mike Swanson - Genetic Session Scheduler</title>
		<description>
			<![CDATA[I wanna be like Mike!<br /><br />As I have said in other posts, I don't have too much experience with algorithms but I really hope I get the chance to learn about some at least. This was a very cool presentation and very, very informative in a relatively short time slot.&nbsp; The explanations
 were clear and easily understandable.<br /><br />Hope to see more in the future.<br /><br />I wish I can go to the PDC, but I need a job first <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /><br />Keep 'em coming Charles!<br />~sparky<br /><p>posted by wil2300</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633518775430000000</link>
		<pubDate>Thu, 17 Jul 2008 07:45:43 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Algorithms-and-Data-Structures-Mike-Swanson-Genetic-Session-Scheduler#c633518775430000000</guid>
		<dc:creator>wil2300</dc:creator>
	</item>
</channel>
</rss>