Marek Rychlik
https://marekrychlik.com
enLectures on Applied Combinatorics
https://marekrychlik.com/node/419
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>In the Spring of 2015 I taught a course on Applied Combinatorics, using a superb book by Alan Tucker.<br />
You will find the outline of the course by following this link:</p>
<p><a href="/math447">Combinatorial Mathematics</a>
</p>
<p>
The interesting feature of the course is that about a half is spent on Graph Theory, and the other half is<br />
devoted to classical Enumeration Methods, and interesting topics which combine Graph Theory and Enumeration Methods.<br />
The course culminates in the study of Rook Polynomials, which is a method to solve the assignment problem.<br />
I hope my students enjoyed the course as much as I did teaching it!
</p>
</div></div></div>Tue, 26 May 2015 21:17:32 +0000mrychlik419 at https://marekrychlik.comhttps://marekrychlik.com/node/419#commentsWebsite 2.0
https://marekrychlik.com/node/418
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><div class="tex2jax">Over the past few years, I neglected the content of this website somewhat. So many things to do, so little time.
But in part this was due to the hard time that the chosen CMS, Drupal, was giving me.
Yesterday I moved the Website to Drupal 7, and things appear to work better.
For a math website, it is a must to have formulas. The package DruTeX has become obsolete, and the current rendering is done using MathJAX, which is both more secure (rendering of TeX happens in user's browser) and more reliable way to render random formulas, such as this one:
$$ P(G,x) = \sum_{A\subseteq E} (-1)^{|A|}\, x^{k(A)+|V| - |\bigcup A| } $$
which expresses the chromatic polynomial of the graph $G=(V,E)$ as a sum over all edge subsets $A\subseteq E$ of the edge set of $G$. Here, $k(A)$ denotes the number of connected components of the subgraph $G'=(|\bigcup A|, |A|)$ of $G$. Note that $|X|$ denotes the cardinality of a set $X$.
This is a formula related to the Tutte polynomial, and... to the class on Combinatorial Mathematics, which I just finished teaching.</div></div></div></div>Mon, 25 May 2015 04:33:39 +0000mrychlik418 at https://marekrychlik.comhttps://marekrychlik.com/node/418#commentsA new efficient implementation of Ukkonen's algorithm in C++
https://marekrychlik.com/node/416
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>I implemented a suffix tree library. There is a Wikipedia article on suffix trees here:</p>
<p><a href="http://en.wikipedia.org/wiki/Suffix_tree">en.wikipedia.org/wiki/Suffix_tree</a></p>
<p>The new library is really neat! It can also generate nice images from real inputs. Here are some images of suffix trees generated by the library:</p>
<p><img alt="Image" src="/sites/default/files/imagepicker/1/cacao_1.png" />The image on the left is a great classic: the suffix tree of the word "cacao".<img src="/sites/default/files/imagepicker/1/bananas.png" alt="Suffix tree of &quot;bananas&quot;" /></p>
<p> Another great classic: the suffix tree of the word "bananas".</p>
<p>And finally something more challenging: the "word" obtained by randomly typing "asdf":</p>
<p>asdfasfasdfasdfasdfassdfasdsfasdsdfassfasdfasdsdfassdfas</p>
<p><img src="/sites/default/files/imagepicker/1/asdfasfasdfasdfasdfassdfasdsfasdsdfassfasdfasdsdfassdfasdf.png" alt="asdfasfasdfasdfasdfassdfasdsfasdsdfassfasdfasdsdfassdfasdf" /></p>
<div class="imgp_desc"> </div>
<p> </p>
<p> </p>
</div></div></div>Tue, 23 Nov 2010 01:02:27 +0000mrychlik416 at https://marekrychlik.comPetaflop computing
https://marekrychlik.com/node/67
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>The <a href="http://en.wikipedia.org/wiki/BlueGene">BlueGene project</a> at IBM is aimed at making int possible to reach a petaflop speed in numerical calculations.</p>
<p>A petaflop = 1000 teraflops = 1 million gigaflops. A typical PC of today is able to achieve speeds of several gigaflops. One gigaflop roughly means one billion multiplications of 14-digits digit numbers per second.</p>
<p>Having a computer operate at a speed of a petaflop allows one to do many exciting things. For example, allows such things as creating models comparable in complexity with those of a brain (well, perhaps of a brain of a mouse). Therefore, petaflop computing is expected to result in scientific breakthrougs.</p>
<p>The Cyclops64 processor project, formerly known as the BlueGene/C project, resulted in a supercomputer-on-a-chip, that consists of 80 cells. Each cell has CPU-like capabilities, and is able of running 2 individual threads of execution. A single chip can run 160 threads of execution, providing unprecedented parallelism on the level of a single chip.</p>
<p>An earlier project, the <a href="http://en.wikipedia.org/wiki/Cell_microprocessor">Cell processor</a>, was a joint project by several vendors including IBM and Sony, and it was capable of running only 8-10 threads of execution. The Cell processor is known for powering <a href="http://en.wikipedia.org/wiki/PlayStation_3">the Playstation 3 game console</a> from Sony.</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div></div></div><div class="field field-name-upload field-type-file field-label-hidden"><div class="field-items"><div class="field-item even"><table class="sticky-enabled">
<thead><tr><th>Attachment</th><th>Size</th> </tr></thead>
<tbody>
<tr class="odd"><td><span class="file"><img class="file-icon" alt="PDF icon" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="https://marekrychlik.com/sites/default/files/ge_gen_cyclops64_networking.pdf" type="application/pdf; length=312751" title="ge_gen_cyclops64_networking.pdf">ge_gen_cyclops64_networking.pdf</a></span></td><td>305.42 KB</td> </tr>
<tr class="even"><td><span class="file"><img class="file-icon" alt="PDF icon" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="https://marekrychlik.com/sites/default/files/weirong_zhu_sync_on_cyclops64.pdf" type="application/pdf; length=1441809" title="weirong_zhu_sync_on_cyclops64.pdf">weirong_zhu_sync_on_cyclops64.pdf</a></span></td><td>1.38 MB</td> </tr>
<tr class="odd"><td><span class="file"><img class="file-icon" alt="PDF icon" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="https://marekrychlik.com/sites/default/files/long_chen_fft_on_cyclops.pdf" type="application/pdf; length=808940" title="long_chen_fft_on_cyclops.pdf">long_chen_fft_on_cyclops.pdf</a></span></td><td>789.98 KB</td> </tr>
<tr class="even"><td><span class="file"><img class="file-icon" alt="PDF icon" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="https://marekrychlik.com/sites/default/files/Cyclops_mt_arch.pdf" type="application/pdf; length=168677" title="Cyclops_mt_arch.pdf">Cyclops_mt_arch.pdf</a></span></td><td>164.72 KB</td> </tr>
<tr class="odd"><td><span class="file"><img class="file-icon" alt="File" title="application/postscript" src="/modules/file/icons/application-octet-stream.png" /> <a href="https://marekrychlik.com/sites/default/files/cyclops64_cellular_arch.ps" type="application/postscript; length=609181" title="cyclops64_cellular_arch.ps">cyclops64_cellular_arch.ps</a></span></td><td>594.9 KB</td> </tr>
<tr class="even"><td><span class="file"><img class="file-icon" alt="File" title="application/postscript" src="/modules/file/icons/application-octet-stream.png" /> <a href="https://marekrychlik.com/sites/default/files/TinyThreads.ps" type="application/postscript; length=179791" title="TinyThreads.ps">TinyThreads.ps</a></span></td><td>175.58 KB</td> </tr>
<tr class="odd"><td><span class="file"><img class="file-icon" alt="Binary Data" title="application/octet-stream" src="/modules/file/icons/application-octet-stream.png" /> <a href="https://marekrychlik.com/sites/default/files/Evaluating_Cyclops64." type="application/octet-stream; length=342104" title="Evaluating_Cyclops64.">Evaluating_Cyclops64.</a></span></td><td>334.09 KB</td> </tr>
<tr class="even"><td><span class="file"><img class="file-icon" alt="PDF icon" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="https://marekrychlik.com/sites/default/files/OpenMP_on_Cyclops64.pdf" type="application/pdf; length=251110" title="OpenMP_on_Cyclops64.pdf">OpenMP_on_Cyclops64.pdf</a></span></td><td>245.22 KB</td> </tr>
</tbody>
</table>
</div></div></div>Sat, 20 Jun 2009 01:51:29 +0000mrychlik67 at https://marekrychlik.comhttps://marekrychlik.com/node/67#commentsMaxima Grobner package back on line
https://marekrychlik.com/node/42
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>My Groebner basis and Comprehensive Groebner packages needed a little dusting. I have authored two software packages in this area:</p>
<ul>
<li>An extension to the Computer Algebra System <em>Maxima, </em>which provides for Grobner basis calculations. The package contains a demo file which illustrates its usage.</li>
<li>A standalone package for calculating Comprehensive Groebner Systems, called CGBLisp. Comprehensive Groebner bases allow one to answer questions about systems of parametric equations with parameters.</li>
</ul>
<p>The packages will be available at my development site at:</p>
<p><a href="/trac/Grobner">trac/Grobner</a></p>
<p>The book pages devoted to my Groebner basis projects can be found here on this website:</p>
<p><a href="/node/41">node/41</a></p>
<p> </p>
</div></div></div>Sun, 25 Jan 2009 19:49:24 +0000mrychlik42 at https://marekrychlik.comhttps://marekrychlik.com/node/42#commentsGaussian Elimination the way Humans do It
https://marekrychlik.com/node/34
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><div class="tex2jax"><p>The software link: <a href="/cgi-bin/gauss.cgi">Click here</a>.</p>
<p>I wrote a program several year ago for the purpose of edification
of my students, which produces step-by-step solutions to linear
systems using Gaussian elimination. The core of the program was
written in Lisp (one of my favorite programming languages) but the Web
interface was done in Perl. In recent days, I rewrote the program
completely and entirely in Lisp. If you are a Lisper, you may be
interested in the fact that the matrix can be entered in either MATLAB
or Lisp syntax, thanks to the Lisp reader hooks.</p>
<p>Gaussian elimination is not a difficult algorithm, and there are
many pieces of software that provide an implementation for floating
point coefficients. Therefore, let us pause for a moment and consider
a question: why would we need another piece of software to do this?
From a point of view of a mathematics instructor, the answer is
simple: The existing packages are not meant to provide an explanation
of how they arrive at an answer. In contrast, out package draws upon
the ideas and tools of Artificial Intelligence and in addition to
giving an answer, it gives us a detailed account of the intermediate
steps.</p>
<p>With most other packages, all the work is done (very fast!) within
the machine, and the only result is the final answer. Due to the
floating point arithmetic, the answer is almost never $100\%$
accurate, and the estimate of the size of the error is performed using
condition numbers, which are also computed using numerical methods. We
recall that the condition number of a square matrix $A$ is defined as:
$$ K(A) = \|A\| \cdot \|A^{-1}\|. $$
</p>
<p>The property of the condition number is that if we solve the system
$Ax=b$, but instead of $b$ we only have $b+\delta b$ where $\delta b$
is the error of the right-hand side, then the solution is $x+\delta x$
where:
\begin{equation}
\frac{\|\delta x\|}{\|x\|} \leq K(A)\cdot \frac{\|\delta b\|}{\|b\|}.
\tag{1} \label{eq:condnummin}
\end{equation}
</p>
<p> Thus, $K(A)$ expresses the magnification of relative error when
solving a linear system. Unfortunately, to know $K(A)$ exactly we
need to know the norm of $A^{-1}$. Moreover, the exact norm of the
matrix with respect to the Euclidean norm can only be expressed in
terms of the eigenvalues of $\|A^TA\|$. If the inverse is known, the
norm can be estimated from above in a variety of ways with only
minimal effort. Thus, a bit of a circular argument develops because to
know the numerical error of $A^{-1}$. we need to know $A^{-1}$.</p>
<p>As a result, one uses a proxy for $K(A)$ which is obtained by
approximately solving $Ax=b$ for several randomly chosen vectors $b$
and using these solutions together with \eqref{eq:condnummin} to deduce
an upper bound on $K(A)$.</p>
<p>Computer algebra systems solve linear system symbolically. However,
they are also not geared towards explaining the steps of the
solution. Often the symbolic computations are slow and blow up in size
as without the help from the rounding, the coefficients grow fast in
size. If you need to work out modest in size systems of linear
equations, and need to understand how Gaussian elimination deals with
the particular set of coefficients with respect to scaling and
exchanging rows, this program may be of interest to you, as an
alternative to working the example by hand.</p>
<p>The program understands arbitrary precision integers and
fractions. If all coefficients of the input are rational, so is the
answer and all intermediate steps. Thus, the result has infinite
precision. The program also understands complex coefficients. Again,
if the real and imaginary parts of all coefficients are rational, all
calculations are performed with 100$\%$ accuracy, and the result is
given in terms of complex numbers with fractions as real and imaginary
parts. The system supports single and double precision calculations,
too. Thus, one can compare easily exact and approximate solutions to
linear systems. Again, all intermediate steps are produced and can be
inspected for unusual conditions which lead to the loss of
precision.</p>
</div></div></div></div>Mon, 12 Jan 2009 08:21:23 +0000mrychlik34 at https://marekrychlik.comhttps://marekrychlik.com/node/34#commentsSite Launched
https://marekrychlik.com/node/3
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>In recent days I grappled with the issue of choosing the CMS. This amounts to the "Joomla vs. Drupal" contest, it appears. These are the two most popular CMS of today.</p>
<p>Most of my time wen into testing Joomla. Despite the large number of extensions, there are problems. The difficulty of linking objects internal to the site is one. The installation was not completely smooth, and many features that are advertised are available for a fee. Someone mentioned that some of Joomla core developers are also selling components commercially. This apparent conflict of interest may result in some of the core features missing or flaky.</p>
<p>This blog entry marks the beginning of testing Drupal as my CMS. So far so good. I was actually able to launch a blog by enabling the corresponding module in the management interface. In Joomla, I had too look for an extension that provides a clear blog interface, and someone was advertising "integration with Wordpress" as a commercial effort. Well, should not blogging be possible within a CMS?</p>
</div></div></div>Sun, 21 Dec 2008 01:54:31 +0000mrychlik3 at https://marekrychlik.comhttps://marekrychlik.com/node/3#commentsAbout Me
https://marekrychlik.com/node/2
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>I am a Professor at the <a href="http://math.arizona.edu/">Department of Mathematics</a> at the <a href="http://www.arizona.edu">University of Arizona</a>, where I have taught undergraduate and graduate mathematics courses and pursued a diverse, interdisciplinary research program. In recent past I worked in private industry developing software and leading R&D of a data compression company.<img src="/sites/default/files/imagepicker/1/IMG_0795_SMALL.jpg" alt="SantaMonica" style="margin: 10px; float: left; width: 193px; height: 195px;" /></p>
<h4>Past positions held</h4>
<ul>
<li>Chief Science Officer, <a href="http://www.qbit.com">Qbit,LLC/Qbit Corp.</a></li>
<li>Senior Research Mathematician, <a href="http://www.qbit.com">Qbit, LLC</a>.</li>
<li>Visiting Member, <a href="http://www.ias.edu">Institute for Advanced Study, Princeton</a>.</li>
<li>Acting Assistant Professor, <a href="http://www.washington.edu">University of Washington</a>, Seattle.</li>
<li>Teaching Associate and Visiting Lecturer, <a href="http://www.berkeley.edu">University of California</a>, Berkeley.</li>
</ul>
<p>Curriculum Vitae Available as an attached PDF document to registered users.</p>
<p> </p>
</div></div></div><div class="field field-name-upload field-type-file field-label-hidden"><div class="field-items"><div class="field-item even"><table class="sticky-enabled">
<thead><tr><th>Attachment</th><th>Size</th> </tr></thead>
<tbody>
<tr class="odd"><td><span class="file"><img class="file-icon" alt="PDF icon" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="https://marekrychlik.com/sites/default/files/vita%2Bpub.pdf" type="application/pdf; length=76636" title="vita+pub.pdf">vita+pub.pdf</a></span></td><td>74.84 KB</td> </tr>
</tbody>
</table>
</div></div></div>Fri, 12 Dec 2008 20:41:21 +0000mrychlik2 at https://marekrychlik.comhttps://marekrychlik.com/node/2#comments