Mercurial > hg > Members > masakoha > seminar
view 2015/0825.html @ 35:18bbb4a5db60
add 0929.html
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 29 Sep 2015 19:47:31 +0900 |
parents | 60a678b8539c |
children |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>seminar</title> <!-- Notes on CSS media types used: 1) projection -> slideshow mode (display one slide at-a-time; hide all others) 2) screen -> outline mode (display all slides-at-once on screen) 3) print -> print (and print preview) Note: toggle between projection/screen (that is, slideshow/outline) mode using t-key Questions, comments? - send them along to the mailinglist/forum online @ http://groups.google.com/group/webslideshow --> <!-- styles --> <style media="screen,projection"> html, body, .presentation { margin: 0; padding: 0; } .slide { display: none; position: absolute; top: 0; left: 0; margin: 0; border: none; padding: 2% 4% 0% 4%; /* css note: order is => top right bottom left */ -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 100%; /* css note: lets use border-box; no need to add padding+border to get to 100% */ overflow-x: hidden; overflow-y: auto; z-index: 2; } .slide.current { display: block; } /* only display current slide in projection mode */ .slide .stepcurrent { color: black; } .slide .step { color: silver; } /* or hide next steps e.g. .step { visibility: hidden; } */ .slide { /* background-image: -webkit-linear-gradient(top, blue, aqua, blue, aqua); background-image: -moz-linear-gradient(top, blue, aqua, blue, aqua); */ } </style> <style media="screen"> .slide { border-top: 1px solid #888; } .slide:first-child { border: none; } </style> <style media="print"> .slide { page-break-inside: avoid; } .slide h1 { page-break-after: avoid; } .slide ul { page-break-inside: avoid; } </style> <!-- add js lib (jquery) --> <script src="js/jquery-1.7.min.js"></script> <!-- S6 JS --> <script src="js/jquery.slideshow.js"></script> <script src="js/jquery.slideshow.counter.js"></script> <script src="js/jquery.slideshow.controls.js"></script> <script> $(document).ready( function() { Slideshow.init(); // Example 2: Start Off in Outline Mode // Slideshow.init( { mode: 'outline' } ); // Example 3: Use Custom Transition // Slideshow.transition = transitionScrollUp; // Slideshow.init(); // Example 4: Start Off in Autoplay Mode with Custom Transition // Slideshow.transition = transitionScrollUp; // Slideshow.init( { mode: 'autoplay' } ); } ); </script> </head> <body> <div class="presentation"> <div class='slide cover'> <table width="90%" height="90%" border="0" align="center"> <tr> <td><div align="center"> <h1>Cerium 上での正規表現の実装</h1> </div> </td> </tr> <tr> <td><div align="right"> <name>Masataka Kohagura 4th, August , 2015</name> </div></td> </tr> </tr> </table> </div> <div id="cover"> <h1>研究目的</h1> 正規表現はオートマトンに変換することができ、 そしてオートマトンの受理の問題は Class NC と呼ばれる問題でもある。<br> この問題は計算機の台数が多ければ多いほど高速化できるという特徴を持ち、並列化に向いている問題といえる。<br> コンピュータの動作やゲームの動作などの多くの問題はオートマトンの受理問題に落としこむことができるので、この問題を解決すれば様々な問題に対応できるようになる。<br> 本研究では正規表現を並列処理で実装することによってこの問題を解決し、Class NC に対応するライブラリを作成する。 </ul> </div> <div id="cover"> <h1>現在していること</h1> <p>正規表現の Subset Constraction の状態の集合を生成するために正規表現の Parser を記述している</p> <p>正規表現の二分木が正しく構築できているかどうか確認するために、Tree を表示させるためのプログラムを書いている。</p> </div> <div id="cover"> <h1>したこと</h1> <p>二分木を表示するための関数を作成</p> </div> <div id="cover"> <h1>正規表現で生成された二分木を表示</h1> <pre> <code> % ./regexParser -regex "test" t + s + e + t % ./regexParser -regex "a*bc" c + b + * a </code> </pre> </div> <div id="cover"> <h1>まだまだバグバグ</h1> <p>同じ正規表現でも生成される木が違う(正しくもない)</p> <pre> <code> % ./regexParser -regex "(a*b)" + b + * a % ./regexParser -regex "a*b" b + * a 理想 b * a </code> </pre> <p>'|'の挙動が正しくない</p> <pre> <code> % ./regexParser -regex "(a|b)c" c + b | a 理想 c + b | a </code> </pre> <p>'(' ')'まわりと '|' まわりの処理が正しくない</p> </div> <!-- <div id="cover"> <h1>問題点</h1> <p>正規表現 a*b の tree 構造(本当はこうなってほしい)</p> <object data="images/vector/aastabtrue.svg" type="image/svg+xml"></object><br> <p>正規表現 a*b の tree 構造(現状)</p> <object data="images/vector/aastabfalse.svg" type="image/svg+xml"></object><br> </div> --> <div id="cover"> <pre> <code> typedef struct node { unsigned char type; union value { charClass *cc; unsigned char character; } Value, *ValuePtr; struct node *self; struct node *left; struct node *right; } Node, *NodePtr; </code> </pre> <p>木を表示する際に、右ノード、親ノード、左ノードの順番で表示する。</p> <p>右ノードから親ノードに移動する際、ノードを遡るための情報が node に持っていない。</p> <p>親ノードの情報も持たせたほうが良さそう</p> </div> <!-- <div id="cover"> <pre> <code> NodePtr string() { char c = *ptr; NodePtr n = NULL; if (isLiteral(c)) { n = createNode(0,literal(),string()); } else { n = createNode(0,0,0); } return n; } </code> </pre> <p>string なのか literal なのか判断しないで createNode をしてる</p> </div> --> <!-- <div id="cover"> <h1>今週のしたこと</h1> 例題 : ab(ab)+ <ul> <object data="images/vector/abab.svg" type="image/svg+xml"></object><br> </ul> テキストが abab の途中で分割される場合を考える <ul> <object data="images/vector/ababautomata.svg" type="image/svg+xml"></object><br> </ul> 分割されたファイルの1コ前の終わりが状態(3)の場合で、分割されたファイルの先頭が b の場合状態(4)に遷移して受理される。(正規表現にマッチする) <ul> <object data="images/vector/ababtable.svg" type="image/svg+xml"></object><br> </ul> <ul> <object data="images/vector/bitvectorTable.svg" type="image/svg+xml"></object><br> </ul> </div> --> <!-- <div id="cover"> <h1>prog</h1> <ul> <li> </li> <pre> <code> typedef struct SDL_AudioSpec { int freq; /** DSP frequency samples per second */ Uint16 format; /** Audio data format */ Uint8 channels; /** Number of channels: 1 mono, 2 stereo */ Uint8 silence; /** Audio buffer silence value (calculated) */ Uint16 samples; /** Audio buffer size in samples (power of 2) */ Uint16 padding; /** Necessary for some compile environments */ Uint32 size; /** Audio buffer size in bytes (calculated) */ void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len); void *userdata; } SDL_AudioSpec; </code> </pre> <img src="./images/sqrWave.png" width="50%" height=""> </ul> </div> --> </div> <!-- presentation --> </body> </html>