¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¸¦µæÆü»ï¤È¤¦¤á¤­ ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×(No.9)


TopPage


Contents

TODO

  • hyperlink´ØÏ¢¥³¡¼¥É¤Ë¤â¤Ã¤È¥³¥á¥ó¥È»Ä¤¹

¸¦µæÆü»ï

2011-02-05

eclipse¤Çtex

tex¤Î»È¤¤Êý

  • \documentstyle[report,12pt]{jsbook}¤Ï\documentclass[report,12pt]{jsbook}
  • \pagestyle{heading}¤Ï\pagestyle{lineheadings}
    • ¤À¤È¤¦¤Þ¤¯¤¤¤Ã¤¿¤±¤É¡¢¤¢¤Ã¤Æ¤ó¤Î¤«¤Ê
  • documentclass¤«¤ébegin{document}¤Þ¤Ç¤¬¥×¥ê¥¢¥ó¥Ö¥ëÉô

2011-02-04 ȯɽ½ªÎ»¡ª¡ª

¤¤¤¿¤À¤¤¤¿¥³¥á¥ó¥È

  • Ëì¤Ï¤¤¤é¤Ê¤¯¤Ê¤Ã¤Á¤ã¤Ã¤¿¤Î¡©(ÃæÅçÀèÀ¸)
    • ¤¤¤ê¤Þ¤¹¡£Ëì¤Ë¤Ï³¬Áؤòºî¤Ã¤Æ·×»»¤Î¶É½ê²½¤ò¹Ô¤¦Ìò³ä¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤ì¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ë¤Ï¤Ê¤¤µ¡Ç½¤Ç¤¹¡£
  • ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ë¤è¤Ã¤ÆÈó¸úΨŪ¤Ê¥Þ¥Ã¥Á¥ó¥°¤¬¸º¤Ã¤¿¤Î¤Ï¤ï¤«¤Ã¤¿¡¢¤½¤ì¤Ï¥â¥Ç¥ë¤¬Ã±½ã¤Ëµ­½Ò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤«¤é¤À¤è¤Í¡©(ÃæÅçÀèÀ¸)
    • ¤½¤ì¤¬°ì¤Ä¤ÎÍýͳ¤Ç¡¢¤â¤¦°ì¤Ä¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎÀܳ´Ø·¸¤òÍøÍѤ·¤¿¥Þ¥Ã¥Á¥ó¥°¤¬¤¢¤ê¤Þ¤¹¡£¡Ê¾Ü¤·¤á¤ËÀâÌÀ¡Ë¡£CHR¤ÎºÇŬ²½¤â¤³¤ì¤È»÷¤¿¤è¤¦¤Ê¹Í¤¨Êý¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£
  • ¤É¤¦¤¤¤¦¤È¤­¤ËËì¡¢¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ò»È¤¤Ê¬¤±¤ë¤Î¡©(ÃæÅçÀèÀ¸)
    • ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ë¤Ï¡¢ÀܳÀè¤ò·×»»ÎÌ£±¤Ç¼èÆÀ¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡¢¤³¤ì¤ÏÏÀÍýÊÑ¿ô¤Ë¤â̵¤¤µ¡Ç½¤Ç¤¹¡£º£¤Þ¤Ç¤Ï½¸¹ç¤ÏËì¤Ç°Ï¤Ã¤Æ¡¢Ãæ¤Ë¥¢¥È¥à¤òÆþ¤ì¤ë¤È¤«¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤½¤Î¸Ä¿ô¤ò¿ô¤¨¤ë¤¿¤á¤Ë¤Ï¥ë¡¼¥ë¤ò·«¤êÊÖ¤·Å¬ÍѤ·¤Æ¿ô¤¨¤ë¤·¤«¤Ê¤«¤Ã¤¿¡£
      • ¤À¤«¤é¶É½ê²½¤ÏËì¡¢½¸¹ç¤ò°·¤¦¾ì¹ç¤Ë¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤À¤Í¡£(¾åÅÄÀèÀ¸)
  • ¥Þ¥Ã¥Á¥ó¥°ºÇŬ²½¤Î¥¹¥é¥¤¥É¤ò¤â¤Ã¤È¤Á¤ã¤ó¤ÈÍÑ°Õ¤·¤Æ¤ª¤±¤Ð¤è¤«¤Ã¤¿

ÍÑ°Õ¤·¤Æ¤¤¤¿²óÅú

  • LMNtalÆâ¤À¤±¤Î¤³¤È¤Ç¤·¤ç¡©
  • LMNtal°Ê³°¤ËÍøÍѤǤ­¤ë¿·µ¬À­¤Ï¡©
    • ÏÀÍýÊÑ¿ô+Í×ÁÇ¿ô¤Î¼èÆÀ¤¬¤Ç¤­¤ëÅÀ¤Ç¡¢¿·µ¬À­¤¬¤¢¤ë¡Ê¤è¤Í¡©¡Ë
    • (¤³¤ì¤¬°ìÈÖ¡©)´û¸¤ÎUnion-Find algorithm¤ò²þÎɤ·¤¿ÅÀ¡£ÆäËUF¤Ë¤â¤È¤â¤È̵¤¤Í×ÁǺï½ü½èÍý¤òÆþ¤ì¤¿¤ê¡¢½¸¹çÁ´ÂΤÎÍ×ÁÇ¿ô¤ò¾ï¤ËÊÝ»ý¤¹¤ë½èÍý(Í×ÁÇ¿ô¤ò·×»»ÎÌ£±¤Ç¼èÆÀ¤¹¤ë¤¿¤á)¤òÄɲ䷤Ƥ¤¤ë
    • CHR¤Î¼ÂÀÓ¤ò»ý¤Á¾å¤²¡¢¤½¤ì¤ÈLMNtal¤Î´Ø·¸À­¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡¢LMNtal¤Ç¤â¼Â¥¢¥×¥êµ­½Ò¤Ç¤­¤Þ¤¹¤èŪ¤Ê
    • Èó¸úΨŪ¥Þ¥Ã¥Á¥ó¥°¤ÎËɻߤÏLMNtal¤ò´Þ¤à¿½Å½¸¹ç½ñ´¹¤¨¸À¸ì¥â¥Ç¥ë¤Ë¤È¤Ã¤ÆÂç»ö
  • ¾¤Î¿½Å½¸¹ç½ñ¤­´¹¤¨·¿¸À¸ì¤Ã¤Æ²¿¡©
    • ¤¦¡¢¤­¤Ä¤¤¡£¥Þ¥Ã¥Á¥ó¥°¤Î»ÅÊý¤Þ¤Ç¾Ü¤·¤¯Ä´¤Ù¤¿¤Î¤ÏCHR¤À¤±¤Ê¤Î¤Ç¡¢Â¾¤Î¤âÏ令ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
  • º£¤Þ¤Ç¤âCHR¤ò¥¨¥ó¥³¡¼¥É¤Ç¤­¤Æ¤¤¤¿¡¢¤Ã¤Æ¤¤¤¦¤Î¤Ï¤É¤¦¤ä¤Ã¤Æ¼¨¤·¤¿¤Î¡©
    • ¤Þ¤ºLMNtal¤ÏProlog, CHR¤Ë±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë¸À¸ì¤Ç¡¢¹½Ê¸¤«¤é¸«¤ì¤Ð¥¨¥ó¥³¡¼¥É¤ËÌäÂê¤Ï̵¤¤¡£¸À¸ì»ÅÍÍ·èÄê¤ÎÃʳ¬¤Ç¡¢ÏÀÍý¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î°ìÂа쥨¥ó¥³¡¼¥É¤Î¤·°×¤µ¤Ë¤â¸ÀµÚ¤·¤Æ¤¤¤ë¡£
    • ¤¿¤À¤·¡¢CHR¤Ë¤Ï3¼ïÎà¤Î¥ë¡¼¥ë¤¬¤¢¤ê¡¢¤³¤ÎÆâ2¤Ä¤ÏLMNtal¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢»Ä¤ê¤ÎPropagation rule¤ÏLMNtal¤Ë¤Ï̵¤¤³µÇ°¤Ç¤¢¤Ã¤¿¡£¤½¤³¤ÇuniqÀ©Ìó¤òÆþ¤ì¤¿¡£¤³¤ì¤ÇÁ´¤Æ¤Î¥ë¡¼¥ë¤â°ìÂаì¤Ç¥¨¥ó¥³¡¼¥É¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
      • ¤¢¤¿¤ê¤¬¼¨¤·Êý¤«¤Ê¤¡¡©

2011-02-02

¸½»þÅÀ¤Ç¤Î½èÍý·Ï¹Ô¿ô¡Ê¥¢¥Ð¥¦¥È¡Ë

  • ¾å2¤Ä¤Ï¤³¤ÎÆü¤Ëwc¤Ç·×¬¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤âÆþ¤Ã¤Æ¤¤¤ë
    • Java½èÍý·Ï¡§38460+19010+2784=60254
    • SLIM¡§27708+29285=56993(¥Õ¥¡¥¤¥ë¤ÎƬ¤Î¥³¥á¥ó¥È¤Ï·×4600¹Ô¤¯¤é¤¤)
    • LaViT¡§30000¤¯¤é¤¤
    • UNYO¡§15000¤¯¤é¤¤

2011-01-28

ʸ»ú¿ô¤Îº¹

  • ³ÆÎãÂê¤Îʸ»ú¿ô¤ò¿ô¤¨¤Æ¤ß¤¿
    exampleatom_cmpcycleleqfibonacciufuf_opt*ram_simul
    lmn2684241157357537766
    lmn-mem311846455496271112̵Íý
    lmn-hl1860207348301483653
    chr2051144183266345612
    • mem¤¬¤¹¤´¤¤¤³¤È¤Ë
    • *¥ë¡¼¥ë¤Ïadd,sub,cjump0,cjumpN,halt¤Î¤ß
    • *Á´Éô¤Î¥ë¡¼¥ë¤ò´Þ¤á¤ë¤È½ç¤Ë2378, ̵Íý, 2266, 2069.

¤Á¤Ê¤ß¤Ë

  • (¥Ï¥¤¥Ñ¡¼¤Ç¤Ê¤¤)¥°¥é¥Õ <=> °ìÈÌ¥°¥é¥Õ
  • ¥Ï¥¤¥Ñ¡¼¥°¥é¥Õ <=> Ķ¥°¥é¥Õ
    • ¤È¸Æ¤Ö¤é¤·¤¤

2011-01-27

  • ½¤ÏÀ°ìöÄó½Ð
  • JSAI2011¤Ë¿½¹þ¤ß¡¢È¯É½¤Ï¤¿¤Ö¤óÌܹõ¥Ñ¥ï¡¼¤Ë´üÂÔ¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤½¤¦

2011-01-26

´Ú¹ñ¤Ë·àŪ¾¡Íø

tex¤Îɽ¤ÇÇËÀþ¤ò»È¤¨¤ë¤è¤¦¤Ë

  • &ref(): File not found: "arydshln.sty" at page "¸¦µæÆü»ï¤È¤¦¤á¤­";
    cc|ccc:rrr| ¤È¤«¤½¤ó¤Ê´¶¤¸¤Ç":"¤¤¤ì¤¿¤È¤³¤¬ÇËÀþ¤Ë

2011-01-25

unaryÍÑÈæ³Ó±é»»»Ò"\=="

  • ¤òÄɲ䷤Ƥߤ¿
    a(X), b(Y) :- X \== Y | .
    ----------------------------
    --guard:L118:
      spec           [3, 7]
      derefatom   [3, 1, 0]
      isunary        [3]
      derefatom   [4, 2, 0]
      isunary        [4]
      getfunc     [5, 3]
      getfunc     [6, 4]
      neqfunc        [5, 6]
      jump           [L103, [0], [1, 2, 3, 4], []]

2011-01-24

ÏÀʸ¤ÇÃæ´ÖÌ¿ÎáÎó¤Î°ìÍ÷¤ò½ñ¤­¤¿¤¤¤È¤­ ¡Ê½¤ÀµÈÇ¡Ë

  • Éý¤¬È¾Ê¬¤ËÀßÄꤵ¤ì¤Æ¤¤¤¿¤Î¤Çľ¤·¤Æ¤ß¤¿¡¢Â¾¤Ë¤â¿§¡¹½¤Àµ
  • thesis.tex¤ËÄɲ乤ëÊý¤Í
    \newenvironment{instruction}[2]{%
    \vskip-0.5\baselineskip
    \vbox{\hbox to 1\textwidth{\hrulefill}}
    \nobreak
    \vskip-0.7\baselineskip\nobreak
    \begin{description}
    \item[\texttt{\hspace{10pt}#1 \rlap{[\textit{#2}]}}]\hfill\break
    \rightskip0zw}%
    {\end{description}\nobreak\vskip-1.0\baselineskip\nobreak
    \hbox to 1\textwidth{\hrulefill}}

ÏÀʸ¤ÇÃæ´ÖÌ¿ÎáÎó¤Î°ìÍ÷¤ò½ñ¤­¤¿¤¤¤È¤­

  • jssst2007¤«¤é·¡¤êµ¯¤³¤·¤Æ¤­¤¿
  • ¥á¥¤¥ó¤È¤Ê¤ë¥Õ¥¡¥¤¥ë(thesis.tex¤È¤«)¤Î\begin{document}¤è¤ê¤âÁ°¤Ë
    \newenvironment{instruction}[2]{%
    \vskip-0.2\baselineskip
    % \vskip-0.0\baselineskip
    \vbox{\hbox to0.48\textwidth{\hrulefill}}\nobreak
    \vskip-0.3\baselineskip\nobreak
    \begin{description}
    \item[\texttt{\hspace{-3pt}#1 \rlap{[\textit{#2}]}}]\hfill\break
    \rightskip0zw}%
    % {\end{description}\nobreak\vskip-0.7\baselineskip\nobreak
    {\end{description}\nobreak\vskip-0.5\baselineskip\nobreak
    \hbox to0.48\textwidth{\hrulefill}}
  • ¤òÆþ¤ì¤ë(¥³¥á¥ó¥È¥¢¥¦¥È¤È¤«¤¤¤é¤Ê¤½¤¦¤Ê¤Î¤â¤½¤Î¤Þ¤Þ¥³¥Ô¥Ú¤·¤Æ¤ë)
  • Ãæ´ÖÌ¿Îá¤ò½ñ¤­¤¿¤¤¥Ú¡¼¥¸¤Ç
    \begin{instruction}{spec}{formals, locals}
    % Ì¿ÎáÎó¤Î¼Â¹ÔÃæ¤Ï¥¢¥È¥à¤äËì¤ÏÊÑ¿ôÈÖ¹æ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤¬¡¤
    % ËÜÌ¿Îá¤Ï¡¤
    ¡ÎÀ©¸æÌ¿Îá¡Ï
    ²¾°ú¿ô¤Î¿ô (ËÜÌ¿ÎáÎó¤ËÅϤµ¤ì¤ë¥¢¥È¥à¤äËì¤Î¿ô) ¤ò \textit{formals}¡¤ 
    ËÜÌ¿ÎáÎó¤ÇÊÝ»ý¤¹¤Ù¤­¥¢¥È¥à¤äËì¤ÎÁí¿ô¤ò \textit{locals} ¤«¤é¼õ¤±¼è¤Ã¤Æ¡¤
    ¸å¼Ô¤òÊÝ»ý¤Ç¤­¤ëÂ礭¤µ¤ÎÊÑ¿ô¥Ù¥¯¥¿¤ò³ÎÊݤ¹¤ë¡¥
    \end{instruction}
  • ¤Ê´¶¤¸¤Çµ­½Ò¤¹¤ì¤Ð¤ª£ë

2011-01-20

hyperlink : ground¥Á¥§¥Ã¥¯¤Ç¤Î¥Ð¥°

  • ºòÆüľ¤·¤¿¤È»×¤Ã¤¿¤±¤É¡¢Ä¾¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿
    • ¸¶°ø¤ÏÂçÂÎÇÄ°®¤·¤¿¤±¤É¡¢¤É¤¦Ä¾¤¹¤«¤Ï¤·¤Ã¤«¤ê¹Í¤¨¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤â
      • ½¤ÏÀ¸å¡©

2011-01-19¤½¤Î2

  • memo for gocho
  • before
    /* ground¤Ï¤Ä¤Ê¤¬¤Ã¤¿¥°¥é¥Õ¤Ê¤Î¤Ç1¤Ä¤Îº¬¤«¤é¤À¤±¤¿¤É¤ì¤Ð¤è¤¤ */
    {
      LinkObj l = (LinkObj)vec_get(srcvec, 0);
      vec_push(unsearched_link_stack, (LmnWord)LinkObj_make(l->ap, l->pos));
    }
  • after
    /* ground¤Ï¤Ä¤Ê¤¬¤Ã¤¿¥°¥é¥Õ¤Ê¤Î¤Ç1¤Ä¤Îº¬¤«¤é¤À¤±¤¿¤É¤ì¤Ð¤è¤¤ */
    {
      LinkObj l = (LinkObj)vec_get(srcvec, 0);
      if (LMN_ATTR_IS_EX(l->pos)) {
        hashset_add(found_ground_symbol_atoms, l->ap);
        ++count_of_ground_atoms;
      }
      else vec_push(unsearched_link_stack, (LmnWord)LinkObj_make(l->ap, l->pos));
    }

2011-01-19

¿·»ÅÍͤΥϥ¤¥Ñ¡¼¥ê¥ó¥¯»ÅÍͤޤȤá¡Ê¸À¸ìÈÉ¥í¡¼¥«¥ë¡Ë

  • ¤Þ¤È¤á¤Æ¤ß¤¿

Java½èÍý·Ï¸ø³«¤Î¼ê³¤­

2011-01-16

hyperlink : commit!

  • ¤·¤Æ¤·¤Þ¤Ã¤¿¡£Ã×̿Ū¤Ê¥Ð¥°¤¬¤Ê¤¤¤³¤È¤ò¤ß¤ó¤Ê¤Çµ§¤í¤¦¡£
  • Äɲä·¤¿¤â¤Î
    • hyperlink
    • hyperlink¤òÍøÍѤ·¤¿¥Þ¥Ã¥Á¥ó¥°ºÇŬ²½µ¡Ç½¡ÊfindproccxtÌ¿Îá¤Û¤«¡Ë
    • callback´Ø¿ôgettime¤È¡¢SLIM¥â¥¸¥å¡¼¥ëtime.lmn

slim419¤Çedfs_t*.il¤¬segmentation fault

  • gocho¤¬Ä¾¤·¤Æ¤ë¥Ð¥°¤Ã¤Æ¤³¤ì¤«¤Ê¡©
    • ¸µ¡¹--delta-mem¤ÇÆ°¤«¤Ê¤¤ÎãÂê¤À¤Ã¤¿

½¤ÏÀ¥¿¥¤¥È¥ë

  • ¿ì¤Ã¤¿Àª¤¤¤Ç¤«¤Ã¤³¤è¤µ¤²¤Ê¤Î¹Í¤¨¤Æ¤ß¤ë
    • ÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¸À¸ìLMNtal¤Ë¤ª¤±¤ëLMNtal¥°¥é¥Õ¤Î¥Ï¥¤¥Ñ¡¼¥°¥é¥Õ¤Ø¤Î³ÈÄ¥
    • LMNtalÏ¢¸Æ¤·¤Æ¤ë´¶¤¸¤Ê¤Î¤ÇµÑ²¼

2011-01-15

¤¹¤Ã¤­¤êCHR

  • ¥ê¥Ë¥å¡¼¥¢¥ë¡£²¿µ¤¤Ë¥µ¥¤¥È̾¤Ç¸¡º÷¤¹¤ë¤È¾å°Ì¤Ë¡£

2011-01-15

hyperlink : ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎID¤ò¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤Ê¿ôÃͤË

  • hyperlink¤ËÃͤòÂåÆþ¤¹¤ëÏäǤϤʤ¤
  • hyperlinkÌÚ¤«¤éhyperlink¥ª¥Ö¥¸¥§¥¯¥È¤òºï½ü¤¹¤ëºÝ¡¢ÌÚ¤ÎÃæ¤Çºï½üÂоݤΥª¥Ö¥¸¥§¥¯¥È¤òÍդ˸þ¤«¤Ã¤Æ¥¹¥ï¥Ã¥×¤·¤Æ¤¤¤­¡¢ÍÕ¤ËÅþ㤷¤¿»þÅÀ¤Çºï½ü¤¹¤ë¤è¤¦¤ÊºÇŬ²½(»Ò¤ò¤¿¤¯¤µ¤ó»ý¤Ã¤¿¤Þ¤Þºï½ü¤¹¤ë¤È¿§¡¹½èÍý¤¬¤«¤«¤ë)¤òÆþ¤ì¤¿¤¿¤á¡¢½¸¹ç¤òÂåɽ¤¹¤ë(root¤Î)ID¤¬¸ÇÄꤵ¤ì¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿
  • ¤³¤ì¤À¤ÈuniqÀ©Ìó¤ÇÍúÎò¤ò´ÉÍý¤¹¤ëºÝ¤Ë¶ì¤·¤¤
    • ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤ÊÈÖ¹æ¤ò¤Õ¤ê¡¢uniq¤ÎÍúÎò¤ª¤è¤Óɸ½à½ÐÎÏ»þ¤Ë¤Ï¤½¤ì¤òID¤È¤¹¤ë
    • hyperlink¤Îuniq¤Ø¤ÎÂбþ¡Ü½ÐÎÏ»þ¤ÎID¤Îû½Ì²½¤¬²Äǽ¤Ë
  • ½ÐÎÏbefore
tmp.
tmp :- new($x) | a($x), b($x).
*--->
a(!1ab5038). b(!1ab5068). @5. 
== HyperLink =============================================================
  [hl_ID]  [parent] [linked with] [num] [direct children ( inside info )]
  1ab5038      root             a     2  1ab5068.
  1ab5068         1             b     2  
================================================ 1 group,  2 elements ==== 
  • ½ÐÎÏafter
tmp.
tmp :- new($x) | a($x), b($x).
*--->
a(!1). b(!2). @5.
== HyperLink =============================================================
  [hl_ID]  [parent] [linked with] [num] [direct children ( inside info )]
        1      root             a     2  2.
        2         1             b     2
================================================ 1 group,  2 elements ====
  • --show-hl¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Ê¤¤Ä̾ï¤Î½ÐÎÏ
    a(!1). b(!1). @5.

2011-01-14

hyperlink : ¥³¥ß¥Ã¥Èºî¶ÈÃæ

  • callback´Ø¿ô¤ò¥â¥¸¥å¡¼¥ë¤Ç¸Æ¤Ó½Ð¤»¤ëtime.lmn¤âÄɲÃͽÄê

2011-01-10 ¤½¤Î2

hyperlink : ¿·¡¹»ÅÍͤǤμ¸³ ram_simul_many

N5k10k20k40k80kO
slim int1.593.166.3312.6535.71
slim hlink old0.150.280.551.10IDover
slim hlink new0.180.360.721.432.83
chr int opt0.210.511.263.618.51

hyperlink : ¿·¡¹»ÅÍͤǤμ¸³ fibonacci_topdown

N5k8k10k16k20k32k64k128kO
slim hlink old0.080.140.180.280.370.56IDoverN
slim hlink new0.080.130.160.260.320.511.022.06N
chr int opt0.030.040.080.100.170.200.461.11N

hyperlink¡§¿·¡¹»ÅÍͤǤμ¸³ atomcmp_x3

  • hlink¤ÏÁ´¤Æ--hl-opt¤Ç¬¤ë¤³¤È¤Ë¤¹¤ë(./hltest_new/)
  • lmntal -O3 --slimcode --hl-opt atomcmp.lmn | slim --hl -
    N8k*316k*332k*364k*3128k*3256k*3O
    slim int38.94156.27631.03---------N^2
    slim mem0.030.060.120.240.480.95N
    slim hlink old0.020.030.060.12IDoverN
    slim hlink new0.060.110.220.440.881.79N
    chr opt0.110.210.470.961.843.67N

2011-01-10

hyperlink : Ãæ´ÖÌ¿ÎáÎó¤ÎʤÓÂؤ¨

  • ¥³¥ó¥Ñ¥¤¥é¤ò¼ã´³Êѹ¹
    • newhlink, makehlink¤Èuniq¤ÎʤÓÂؤ¨¤¬¤¦¤Þ¤¯¤¤¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤ò½¤Àµ¡¢¥³¥ß¥Ã¥È
    • ¤Ä¤¤¤Ç¤Ë¥³¡¼¥É¤ÎÀ°Íý¤â¤Á¤ç¤Ã¤È¤ä¤Ã¤¿

2011-01-08

·×»»Î̤¬°­¤¤·ï

  • ¸¶°ø¤¬ÇÄ°®¤Ç¤­¤¿
    • ¤Ê¤¼ËìÆâ¤Î¡ª¥¢¥È¥à¤òÁ´¤Æ¤µ¤é¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤¿¤Î¤«¡¢Íý²ò¤Ë¶ì¤·¤à

--enable-gprof(¤È--disable-tcmalloc)¤Çallocs/frees¤Î¿ô¤¬¹ç¤ï¤Ê¤¤

lmntal --slimcode -e "a." | valgrind src/slim -
  • valgrind¤Ç¸«¤ë¤Èfrees¤¬1­¤ê¤Ê¤¤
    • ²¶¤Î´Ä¶­¤À¤±¤«¤Ê¡©
      • 2¤Ä¤Î¥Ç¥Ð¥Ã¥¬¤òƱ»þ¤Ë»È¤¦²¶¤¬°­¤¤ 2011-01-14

2011-01-07

fibonacci¤Èram¤ò¬Äê

  • ¥ª¡¼¥À¡¼¤¬°­¤¤...
    • --p3¤Ç¥Á¥§¥Ã¥¯¡¢¥ë¡¼¥ë¤ÎŬÍÑ/»î¹Ô/¥Ð¥Ã¥¯¥È¥é¥Ã¥¯²ó¿ô¤Ïµì¼ÂÁõ¤è¤ê°­¤¤¥ë¡¼¥ë¤Ï̵¤¤
    • ÆâÉô¼ÂÁõ¤ÎÌäÂê¡¢¸«Ä¾¤·Ãæ
  • fibonacci_topdown(unify)
    N4k8k16k32kO
    slim hlink new0.130.411.9014.60?
  • ram_simul
    N5k10k20kO
    slim hlink new0.663.8422.60?

2011-01-04

hyperlink : ½ê°Ëì¤Ø¤Î¥Ý¥¤¥ó¥¿

  • »ý¤¿¤»¤Æ¤ª¤±¤Ð¡¢hyperlink¤«¤é¤Îfindatom¤ò¤â¤¦¾¯¤·¸úΨ²½¤Ç¤­¤ëµ¤¤¬¤¹¤ë

hyperlink : ¥æ¡¼¥¶ID¤ÎÄɲø¡Æ¤

  • µ¡Ç½¤È¤·¤Æ¤ÏÍÑ°Õ¤·¤Æ¤ª¤­¤¿¤¤¡£¤¬¥Ð¥°¤¬¼è¤ì¤Æ¤«¤é...
    • CHR¤Ç¤ÏƱ¤¸Ãͤò«Çû¤µ¤ì¤¿ÏÀÍýÊÑ¿ô¤¬À¸À®¤µ¤ì¤¿¾ì¹ç¤Ï¡¢À¸À®¤µ¤ì¤¿»þÅÀ¤ÇƱ¤¸½¸¹ç¤Ë°¤¹¤ë
X is 1.
hoge <=> Y is 1, v(Y).
  • ¡Êɬ¿Ü¤Ç¤Ï¤Ê¤¤¤¬¡Ëhyperlink¤Ë¤â¤³¤¦¤¤¤¦µ¡Ç½¤¬¤Ê¤¤¤È¡¢¥×¥í¥°¥é¥à¤¬ÈÑ»¨¤Ë¤Ê¤ë
    • Èó¸úΨ¤Ê¥Þ¥Ã¥Á¥ó¥°¤òÀ¸¤Þ¤Ê¤¤¤è¤¦¤Ë½ñ¤¯¤¿¤á¤Ë¡¢¿§¡¹¤È¶ìÏ«¤·¤½¤¦
¥¤¥á¡¼¥¸¡§
hoge :- make($x, 123) | h($x). 
*---> h(!123). 
(ID123¤ò»ý¤Ä¾¤Îhyperlink¤Î½¸¹ç¤ÈÊ»¹ç¤µ¤ì¤¿¾õÂÖ¤ÇÀ¸À®¤µ¤ì¤ë)

2010-12-28

hyperlink : ¥Ï¥Ã¥·¥åɽ¤Ë¤è¤ë´ÉÍý¤òÇÑ»ß

  • ¿·¤·¤¤Â°À­LMN_HL_ATTR¤Î¥Ð¥°¤¬¤«¤Ê¤ê¼è¤ì¤Æ¤­¤¿µ¤¤¬¤¹¤ë¤Î¤Ç¡¢¥Ï¥Ã¥·¥åɽ¤Çatom pointer => hyperlink object¤Î»²¾È´Ø·¸¤ò´ÉÍý¤·¤Æ¤¤¤¿¤Î¤òÇÑ»ß
  • "!"¥¢¥È¥à¤ÎÂè2°ú¿ô¤Ëhyperlink object¤Ø¤Î¥Ý¥¤¥ó¥¿¤òľÀÜËä¤á¹þ¤à
    • ŬÅö¤Ë¬¤Ã¤Æ¤ß¤¿
N8k*316k*332k*364k*3128k*3256k*3O
slim hlink new(ÇÑ»ßÁ°)0.060.120.270.571.162.35N
slim hlink new(Çѻ߸å)0.040.080.170.360.741.50N

2010-12-22

ºÇû"·ÐÏ©"ÌäÂê

  • ºÇûµ÷Î¥¤òµá¤á¤ë¥×¥í¥°¥é¥à¤Ï¿§¡¹¤¢¤ë¤±¤É¡¢uniq»È¤¨¤Ð¤¿¤¤¤¬¤¤1,2¥ë¡¼¥ë¤Ç½ñ¤±¤ë
  • ¤¿¤ÀºÇû"·ÐÏ©"¤È¤Ê¤ë¤È2¹Ô¤Ç½ñ¤±¤ë¤Î¤«¤Á¤ç¤Ã¤È¼«¿®Ìµ¤«¤Ã¤¿¤±¤É¡¢¤Ê¤ó¤È¤«½ñ¤±¤¿
    • &ref(): File not found: "shortest.lmn" at page "¸¦µæÆü»ï¤È¤¦¤á¤­";

2010-12-21

hyperlink¡§¿·»ÅÍͤǤμ¸³ cycle_backedge5

  • 3ĺÅÀ¤«¤é¤Ê¤ëÊÄÏ©¤òõº÷¤¹¤ë(propagation, uniq̵¤·)
    edge(X, Y), edge(Y, Z), edge(Z, X) <=> cycle(X, Y, Z).
    N10050010002kO
    slim int243.43
    slim mem0.020.341.43
    ( mem all)0.2224.65197.42
    slim hlink old0.040.732.635.90
    slim hlink new0.071.506.1513.95
    chr int opt1.252.545.05
    • ·×¬ÅÓÃæ

2010-12-18

hyperlink¡§¿·»ÅÍͤǤμ¸³ atomcmp_x3

  • hlink¤ÏÁ´¤Æ--hl-opt¤Ç¬¤ë¤³¤È¤Ë¤¹¤ë(./hltest_new/)
  • lmntal -O3 --slimcode --hl-opt atomcmp.lmn | slim --hl -
    N8k*316k*332k*364k*3128k*3256k*3O
    slim int38.94156.27631.03---------N^2
    slim mem0.030.060.120.240.480.95N
    slim hlink old0.020.030.060.12IDoverIDoverN
    slim hlink new0.060.120.270.571.162.35N
    chr opt0.110.210.470.961.843.67N
    • hyperlink ¤ÎID¤Î¾å¸Â¤¬Ìµ¤¯¤Ê¤Ã¤¿¤Î¤¬Â礭¤¤

¥«¥é¡¼Â缭ŵ

2010-12-14

ubuntu9.10¤Ëopenoffice3.2

  • ¤³¤³
  • ¥¨¥é¡¼
    ¥¹¥Æ¡¼¥¿¥¹¥Ç¡¼¥¿¥Ù¡¼¥¹¥¨¥ê¥¢¤¬ÊÌ¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹
    • synaptic¤¬³«¤¤¤Æ¤¤¤ë¤È½Ð¤ë

2010-12-13

²òÊü˺¤ì¡©

  • ¸ø³«ÈÇslim¤Ç°Ê²¼¤Î¤è¤¦¤Ë¥Ç¡¼¥¿·¿¤À¤±¤Îground·¿Èæ³Ó¤ò¤¹¤ë¤È¥á¥â¥ê¥ê¡¼¥¯¤¬¤¢¤ë¤È¸À¤ï¤ì¤ë¡¢²¶¤Î´Ä¶­¤Î¤»¤¤¡©
    a(1), a(1). a(X), a(Y) :- X = Y | ok.
    • eqground/neqground¤Ç¤Îsrcvec, dstvec¤Î²òÊü¤¬rev400°Ê¹ß̵¤¯¤Ê¤Ã¤Æ¤ë
    • Éü³è¤µ¤»¤ë¤È¤Á¤ã¤ó¤È²òÊü¤µ¤ì¤Æ¤ë¤ß¤¿¤¤¤À¤±¤É¡¢Â¾¤Î½èÍý¤ËºîÍѤ·¤Æ¤Ê¤¤¤À¤í¤¦¤«
      • 2010-12-14 ½¤ÀµÁ°/½¤Àµ¸å¤Çº¹°Û¤¬Ìµ¤«¤Ã¤¿¡Êbenchmarkset¤ÎÎãÂê¤ËÂФ·¤Æ--nd, --mem-enc¼Â¹Ô¤Ç¾õÂÖ¿ô¤òÈæ³Ó¡Ë¤Î¤Ç¥³¥ß¥Ã¥È

2010-12-12

hyperlink Èæ³Ó·Ïmemo

  • isground
  • eq/neqground
  • eq/neqfunc
  • samefunc
    • lmn_eq_func

memo

2010-12-10

hyperlink : ¿·»ÅÍͤǤμ¹Իþ´Ö

  • ¥¢¥È¥àÀ¸À®&ºï½ü
    • 10000¸Ä¤Îatom(hyperlink)¤òN²óÀ¸À®->ºï½ü
    • ¤É¤Á¤é¤âtime optimized slim
      N100200400800
      symbol atom1.913.727.4014.75
      hyperlink3.787.6515.3131.87
  • new_and_delete.lmn
    start(10000, 100).
    init   @@ start(M, I) :- int(M) | s(M, I, M).
    return @@ s(0, I, M) :- I > 0, I1 = I-1, int(M) | s(M, I1, M).
    /* atom */
    new    @@ s(I, J, M) :- I > 0, I1 = I-1 | s(I1, J, M), a(b).
    delete @@ a($a) :- unary($a) | .
    /* hyperlink */
    //new    @@ s(I, J, M) :- I > 0, I1 = I-1, new($a) | s(I1, J, M), a($a).
    //delete @@ a($a) :- hlink($a) | .
  • hlinkÀ©Ìó
    • 10000*N²ó¤Îhlink·¿¸¡ºº¤ò¹Ô¤¦
      N100200400800
      old hyperlink1.172.364.749.52
      new hyperlink1.422.825.6211.42
    • µì»ÅÍÍ¡§hlink·¿¸¡ºº¤Ï¥Õ¥¡¥ó¥¯¥¿ID¤ÎÈæ³Ó
    • ¿·»ÅÍÍ¡§hyperlink°À­¤òÍøÍѤ·¤Æ·¿¸¡ºº¡¢¿·»ÅÍͤè¤ê³Ú¤À¤¬¥ª¥Ö¥¸¥§¥¯¥È¤Îºï½ü->À¸À®¤¬Ëè²ó¹Ô¤ï¤ì¤ë¤¿¤á¤Ëµì»ÅÍͤè¤êÃÙ¤¤¤Î¤«¤â
  • ishlink.lmn
    i(10000, 800).
    init   @@ i(I, J) :- uniq, int(I), new($x) | i(I, J, I), a($x).
    return @@ i(0, J, M) :- J > 0, J1 = J-1, int(M) | i(M, J1, M).
    hlink  @@ i(I, J, M), a($x) :- I > 0, I1 = I-1, hlink($x) | i(I1, J, M), a($x).

2010-12-07

¥ê¥â¡¼¥ÈÀßÄê¥á¥â

  • ¥³¥ó¥Ô¥å¡¼¥¿¡§localhost:13389
  • ¥×¥í¥È¥³¥ë¡§RDPv5
  • ¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É
  • (¥Þ¥·¥ó¥¢¥É¥ì¥¹¡§00:22:15:7d:86:dc)

2010-12-06

LMN_ATTR_IS_DATA_WITHOUT_EX

  • ex¤Ïextended¡£extra, expanded¤Ç¤â¤Þ¤¡°ÕÌ£¤ÏÄ̤¸¤ë¡©

2010-12-03

¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯Â°À­

  • ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ï¥Õ¥¡¥ó¥¯¥¿!/1¤Î¥¢¥È¥à
    • ¤À¤±¤É°À­¤È¤·¤Æ¤Ï¥Ç¡¼¥¿¥¢¥È¥à¤Î°ì¼ï
    • ¤À¤±¤É¥·¥ó¥Ü¥ë¥¢¥È¥à¤È¤·¤Æ¡¢Ëì¤Ø¤ÎÅÐÏ¿¡¢ºï½üÅù¡¹¤ò¹Ô¤¦
      • callback atom¤ÈƱ¤¸¤è¤¦¤Ê
      • ¥á¥ê¥Ã¥È¤È¤·¤Æ¤Ï·¿¸¡ºº¤òºÇŬ²½¤Ç¤­¤ë
      • ¥Ç¥á¥ê¥Ã¥È¤È¤·¤Æ¤Ï¼ÂÁõ¤¬ÌÌÅÝ

2010-11-26

hyperlink : ¥¢¥È¥à¥Ý¥¤¥ó¥¿¤òID¤È¤¹¤ë

  • ¤³¤ì¤Þ¤Ç¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à
    • ¥Õ¥¡¥ó¥¯¥¿¡§!1, !2, ...(¼Â¹ÔÃæ¤Ë¿·¤¿¤Ê¥Õ¥¡¥ó¥¯¥¿¤òÀ¸À®¤·¤Æ¤¤¤¿)
    • ´ÉÍý(hlink ID)¡§ 1, 2, ...
      • !1 <-> 1, !2 <-> 2, ...
    • Ä̾ï¤Î¡Ê¥·¥ó¥Ü¥ë¡Ë¥¢¥È¥à
  • ¿·¤·¤¤¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à
    • ¥Õ¥¡¥ó¥¯¥¿¡§Í½Ìó¸ì'!'¤ÇÅý°ì (¿·¤¿¤Ê¥Õ¥¡¥ó¥¯¥¿À¸À®¤Ï̵¤¤)
    • ´ÉÍý(hlink ID)¡§'!'¥¢¥È¥à¤Î¥Ý¥¤¥ó¥¿
      • atom pointer <-> hlink object, ...
    • ¥Ç¡¼¥¿¥¢¥È¥à°·¤¤¡Êhyperlink°À­¤òÄɲá¢hlink¤Ç¤¢¤ë/¤Ê¤¤¤ÎȽÄ꤬³Ú¤Ë¡Ë
      tmp.
      tmp :- new($x) | a($x).
      *--->
      a(!).  (½ÐÎÏ¤Ï a(!0x1ab5038)¤«, ŬÅö¤ÊÃͤòÉÕ¤±¤Æa(!1)¤È¤«)
  • INSTR_COPYATOM
    • ¤³¤ì¤Þ¤Ç¤ÏƱ¤¸ID¤ò»ý¤Ählink¤ÏÊ£¿ô¸ÄÀ¸À®²Äǽ
      • ¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¤ÈID¤Ï¥æ¥Ë¡¼¥¯
    • Ê£À½¤·¤¿¤é¥ª¥ê¥¸¥Ê¥ë¤ÈÊ»¹ç¤¹¤ë
      tmp.
      tmp :- new($x) | a($x), b($x).
      *--->
      a(!0x1ab5038). b(!0x1ab5068). @5. 
      == HyperLink =============================================
                [hl_ID]   [parent] [elem]  [rank (direct child)]
       Name ----------------------------------------------------
              0x1ab5038       root    ---   1(0x1ab5068)
              0x1ab5068  0x1ab5038    ---   0
      ==========================================================

2010-11-24

¸ÍÀîÀèÀ¸¤Î¥Ç¥£¥¸¥¿¥ë²óÏ©Àß·×(¤´¤Æ¤Õ¤è¤ê)

  • ²óÏ©¤ÎÀß·× ¡ß ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯
    • Íî¤ÁÃ夤¤¿¤éÄ´¤Ù¤Æ¤ß¤ë

hyperlink : »ÅÍÍÊѹ¹

  • ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤ÊID¤Ç´ÉÍý¤¹¤ë¤è¤ê¡¢¥¢¥È¥à¤Î¥Ý¥¤¥ó¥¿¤Ç¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ò´ÉÍý¤¹¤ëÊý¤¬²¿¤«¤ÈÅԹ礬Îɤ¤¤¿¤á

2010-11-23

boolean.lmn¤Î¥³¥ó¥Ñ¥¤¥ë

  • ½¤ÀµÈǤò°ìºòÆü¥³¥ß¥Ã¥È¤·¤¿¤¬¡¢¤É¤¦¤ä¤é¤Á¤ã¤ó¤ÈÆ°¤¤¤Æ¤¤¤ë¤ß¤¿¤¤
  • ²¶¤¬¤è¤¯¸«¤Æ¤¤¤¿boolean.lmn¤Î¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ï¡¢Ã±¤Ë¥Î¡¼¥Ñ¥½¤Ç´Ö°ã¤Ã¤¿¥Ñ¥¹¤òLMNTAL_HOME¤Ë»ØÄꤷ¤Æ¤¤¤¿¤«¤é½Ð¤Æ¤­¤Æ¤¤¤¿¤â¤Î¤À¤Ã¤¿¡¢±ªïè¤Ê¤ó¤Æ¥ì¥Ù¥ë¤¸¤ã¤Ê¤¤

2010-11-22

¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤ÎÊѹ¹

  • netbook edition¤òÆþ¤ì¤ë¤È¡¢¥í¥°¥¤¥ó»þ¤ËdesktopÈǤâÁªÂò¤Ç¤­¤ë¤±¤É¡¢¥Ç¥Õ¥©¥ë¥È¥»¥Ã¥·¥ç¥ó¤òÊѹ¹¤·¤¿¤±¤ì¤Ð¡¢¥·¥¹¥Æ¥à´ÉÍý¢ª¥í¥°¥¤¥ó²èÌ̤ÎÀßÄê

ÆüËܸìÆþÎϤ¬½ÐÍè¤Ê¤¤

  • ¥·¥¹¥Æ¥à¢ªÀßÄꢪ¥­¡¼¥Ü¡¼¥É¡¦¥¤¥ó¥×¥Ã¥È¥á¥½¥Ã¥É¤«¤éAuthy¤òÄɲÃ

2010-11-20

Xp - ubuntu¥Ç¥å¥¢¥ë¥Ö¡¼¥È´ØÏ¢

  • wubi¤Ç¥¤¥ó¥¹¥È¡¼¥ë¼ºÇÔ
    • permission denied ¤È¤Ê¤Ã¤Ælog¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¸À¤ï¤ì¤ë
    • iso¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¤Ç½ªÎ»¤·¤Æ¤¤¤¿¤é¡¢¤³¤³¤«¤éiso¤ò¥À¥¦¥ó¥í¡¼¥É
    • Deamon tools lite¤Çiso¤ò¥Þ¥¦¥ó¥È¤·¤Æ°ìöubuntu¤ò¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë
    • ºÆ¤Óiso¤«¤é¥¤¥ó¥¹¥È¡¼¥ë³«»Ï
  • ´ûÄê¤Îµ¯Æ°OS¤òÊѹ¹¤¹¤ë
    • Xp -> ¥³¥ó¥Ñ¥Í -> ¥·¥¹¥Æ¥à -> ¾ÜºÙÀßÄê -> µ¯Æ°¤È²óÉü ¤«¤éÊѹ¹

boolean.lmn¤¬¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤«¤Ã¤¿¥Ð¥°

  • ²¶¤Ç¤·¤¿...½¤ÀµÈǤò¥³¥ß¥Ã¥È¤·¤Þ¤·¤¿¤¬¡¢¥Á¥§¥Ã¥¯¤Ç¤­¤Æ¤Ê¤¤¤Î¤Ç¤Á¤ã¤ó¤Èľ¤Ã¤Æ¤ë¤«¤É¤¦¤«

2010-11-19

ubuntu¤ÇSLIM¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤¿·ï²ò·è

  • iwataso¤¬²ò·èË¡¤ò¤Ê¤ó¤È¤«»×¤¤½Ð¤·¤Æ¤¯¤ì¤¿¤ª¤«¤²¤ÇÉü³è¡ª
  • make install ¤Ç /usr/local/share/¤Ë½ÐÍè¤ëslim¤¬°­¤«¤Ã¤¿¡©
    • slim¤È¤¤¤¦Ì¾Á°¤òÊѹ¹¤¹¤ì¤ÐÀµ¾ï¤ËÆ°¤¯¤è¤¦¤Ë¤Ê¤Ã¤¿
    • ¸¶°ø¤Ï²¿¤Ê¤ó¤À¤í¤¦¡©

Windows XP:;·×¤Ê¥¹¥¿¡¼¥È¥¢¥Ã¥×¥×¥í¥°¥é¥à¤ò²ò½ü

2010-11-18

ubuntu¤ÇSLIM¤¬µÞ¤ËÆ°¤«¤Ê¤¯¤Ê¤Ã¤¿·ï

  • °Ê²¼¤ò¿§¡¹»î¤·¤¿

wubi

  • ÄɲäÇubuntu¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ï½ÐÍè¤Ê¤½¤¦¡¢¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤¬É¬ÍפȸÀ¤ï¤ì¤ë

¤â¤¦°ìÂæ¤ÎPC¤Ëubuntu¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆÈæ³Ó¤·¤Æ¤ß¤¿

  • configure¤ÎÆâÍƤò¸ß¤¤¤ËÈæ³Ó¤·¤Æ¤ß¤¿
    • mawk¤Ègawk¤È¤¤¤¦¥½¥Õ¥È¤Î°ã¤¤¤¬¤¢¤ê¡¢¤½¤ÎÊÕ¤ò¤½¤í¤¨¤Æ¤ß¤¿¤±¤É·ë¶ÉÊѤï¤é¤º

ubuntu : eclipse install memo

2010-11-17

kernel¤ÎºÆ¹½ÃÛ

$ sudo -s
 
/*** ¥«¡¼¥Í¥ëºÆ¹½ÃÛ¤ËɬÍפʥѥ屡¼¥¸¤ò¥¤¥ó¥¹¥È¡¼¥ë ***/
# apt-get install build-essential
# apt-get install kernel-package libncurses5-dev libqt3-mt-dev

/*** ¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆŸ³« ***/
# apt-get install linux-source-2.6.28
# cd /usr/src
# tar xvjf linux-source-2.6.28.tar.bz2

/*** .config ¥Õ¥¡¥¤¥ë¤ÎºîÀ® ***/
# cd linux-source-2.6.28
# cp /boot/config-2.6.28-xx-generic .config
# make oldconfig

/*** CPU´ØÏ¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò´Ä¶­¤Ë¹ç¤ï¤»¤Æ½¤Àµ ***/
# make menuconfig

Î㤨¤Ð...
  Processor type and features >
   Processor family => Core 2/newer Xeon
   Timer frequency => 1000 HZ

/*** ¥«¡¼¥Í¥ë¤Î¥ê¥Ó¥ë¥É ***/
# make-kpkg clean
# make-kpkg --initrd --revision=20090618 kernel_image kernel_headers

/*** .deb ¤¬¤Ç¤­¤ë¤Î¤Ç dpkg ¤Ç¥¤¥ó¥¹¥È¡¼¥ë ***/
# cd ..
# dpkg -i linux-image-2.6.28.xx_20090618_x86.deb

2010-11-17

  • memo
    • lmntal.cup¤Ë¤´¤ß¤¬Æþ¤Ã¤Æ¤¤¤¿¤Î¤ò½¤Àµ¡¢¤½¤Î¤¦¤Á¥³¥ß¥Ã¥È

2010-11-09

  • Ãæ´Öȯɽ¥á¥â
    • ID¤Î»ÈÍÑ¿ô¤ò¬¤Ã¤Æ¤ß¤ë
    • ¥°¥é¥Õ¤À¤±¤Ç¤Ê¤¯¡¢ÎãÂê¤ÎÆâÍÆ¡¢Æ±¼ÂÁõ¤·¤¿¤«¡¢·ë²Ì¤Î¹Í»¡¤ÏɬÍ×
    • ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤ÊID¤Ç¤Ï¤Ê¤¯¡¢¥¢¥É¥ì¥¹¤òID¤Ë
      • ¤Ç¤â·ë¶É¥Õ¥¡¥ó¥¯¥¿¤ÎID¿ô¤Ï·è¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤è¤¯¹Í¤¨¤¿¤Û¤¦¤¬¤è¤µ¤½¤¦
  • ¥¢¥ó¥Ó¥¨¥ó¥È¤ò½ñ¤¤¤Æ¤ß¤¿¤¤
    • ¥é¥à¥À·×»»¤â
  • º£¸å¤ÎÊý¸þÀ­¡¢Èó·èÄê¼Â¹Ô¤Îɾ²Á

2010-11-03

  • ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ø¤ÎÃͤΫÇû¤ÎɬÍ×À­¡©
    • ½¸¹ç¤¬»ý¤ÄÃͤòn(!1, 1).¤È¤«¤Çɽ¤¹¤È¡¢Î㤨¤Ð
      a($x), n($x,N1), b($y), n($y,N2) :- N=N1+N2 |...
    • ¤Î¤è¤¦¤ËÃͤò­¤¹¥ë¡¼¥ë¤Ç¡¢N1,N2¤¬Æ±¤¸ÃͤǤ¢¤ë¾ì¹ç¤¬¤¢¤ë¤Ê¤é¡¢¤½¤Îʬn¤Î¸Ä¿ô¤òÁý¤ä¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢½ñ¤¯¤Î¤¬¤Á¤ç¤Ã¤ÈÌÌÅݤ«¤Ê

2010-10-29 ¤½¤Î2

fibonacci¤Î¥ª¡¼¥À¡¼¤¬°­¤«¤Ã¤¿¸¶°ø¡Ê»Ä¤ê¤ÎȾʬ¡Ë

  • add¤Ë¤Æ'+'¤«¤éfindatom¤·¤Æ¤¤¤¿¤Î¤¬¸¶°ø¡¢Ãͤò»ý¤Ã¤Æ¤¤¤ëv¤«¤éfindatom¤¹¤ì¤ÐŬÍѼºÇÔ¤¬¤«¤Ê¤êÍÞ¤¨¤é¤ì¤ë
unify @@ fib($n, N1, M1) \ fib2($n, N2, M2) :- hlink(M1), int(N2) | M1 >< M2.
fib1 @@ fib2(N,0,M) :- hlink(N) | v(M, 1).
fib2 @@ fib(N,1,M) :- hlink(N) | v(M, 1).
fib3 @@ 
fib($n, N, M) :-
  N > 1, N1 = N-1, N2 = N-2, 
  make(N, $a), make(N1, $b), new($x), new($y), hlink($n) |
  fib($a, N1, $x), fib2($b, N2, $y), M = $x + $y.
add @@ v($x, X), v($y, Y), H = $x + $y :- Z = X+Y  | v(H, Z) ,v($x, X).
NÈÖÌÜ5000800010000160002000032000O
slim hlink opt0.080.140.180.280.370.56
chr int opt0.030.040.080.100.170.25

fibonacci¤Î¥ª¡¼¥À¡¼¤¬°­¤«¤Ã¤¿¸¶°ø¡ÊȾʬ¡Ë

  • unify¤¹¤ë¤è¤êÁ°¤Ëfib3¤¬Å¬ÍѤµ¤ì¤Æ¤·¤Þ¤¤¡¢Í¾·×¤Ê¼ê´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤¿
  • Ê»¹ç¤¹¤ë¦fib¤ÈÊ»¹ç¤µ¤ì¤ë¦fib2¤Ëʬ¤±¤ë¤³¤È¤Ç¡¢unify>fib3¡¢¤È¤¤¤¦Í¥ÀèÅ٤Ǽ¹ԤǤ­¤ë
    • ¤À¤¤¤ÖÁ᤯¤Ê¤Ã¤¿¤¬¡¢¤³¤ì¤Ç¤â·×»»Î̤ÏN^2¡Á3¡¢¤Þ¤À¤â¤¦°ìÃʳ¬¸¶°ø¤¬¤¢¤ë¤Î¤«
unify @@ fib($n, N1, M1) \ fib2($n, N2, M2) :- 
  hlink(M1), int(N2) | M1 >< M2.
fib1 @@ fib2(N,0,M) :- hlink(N) | v(M, 1).
fib2 @@ fib(N,1,M) :- hlink(N) | v(M, 1).
fib3 @@
fib($n, N, M) :-             /* hlinkid¤ÈN,N1¤Ï1¤º¤Ä¤º¤é¤·¤Æ¤¤¤ë */
  N > 1, N1 = N-1, N2 = N-2, 
  make(N, $a), make(N1, $b), new($x), new($y), hlink($n) |
  fib($a, N1, $x), fib2($b, N2, $y), M = $x + $y.
add  @@
H = $x + $y, v($x, X), v($y, Y) :- Z = X+Y | v(H, Z), v($x, X), v($y, Y).
NÈÖÌÜ100020004000800016000O
slim int hlink0.281.187.2338.30
  • memo
    16000 : 
     8000 : 23999
     4000 : 11999
     2000 :  5999
     1000 :  2999

2010-10-29

  • ÈÉ¥¼¥ß¥á¥â
    • CHR¤Ç½ñ¤¯¤³¤È¤Ë°ÕÌ£¤Î¤¢¤ëÎãÂê¤òÁª¤Ö
    • fibonacci, leq¤Î²òÀÏ

2010-10-28

  • grub : ¡ß¥°¥ë¡¼¥Ö¡¢¡û¥°¥é¥Ö¤Þ¤¿¤Ï¥¸¡¼¥é¥Ö

2010-10-27

fibonacci

  • Ãí)¥Õ¥£¥Ü¥Ê¥Ã¥Á¿ô¤Ï¡¢²¼µ­¤Îbottomup, topdown¤Î¤è¤¦¤Ê¤ä¤êÊý¤ò¤·¤Ê¤¯¤Æ¤â¡¢¥ê¥¹¥È¤ò»È¤¨¤Ð¿ôËüÈÖÌܤ¯¤é¤¤¤Þ¤Ç¤Ï°ì½Ö¤Çµá¤á¤ë¤³¤È¤¬¤Ç¤­¤ë
    fib(N,[X,Y|L]) :- N > 0, N1 = N-1, Z = X+Y | 
        fib(N1,[Z,X,Y|L]).
    • ¤¢¤¯¤Þ¤ÇÀ­Ç½Â¬Äê¤Î¤¿¤á¤ÎÎãÂê¤È¤¤¤¦¤³¤È¤Ç...

fibonacci (bottomup)

  • hyperlink¤ò»È¤¦°ÕÌ£¤Ï¤¢¤Þ¤ê̵¤¤¤¬¡¢²¼¤Îtopdown¤È¤ÎÈæ³Ó¤Î¤¿¤á¤Ë¬¤Ã¤Æ¤ß¤¿
    NÈÖÌÜ100200400800O
    slim int0.140.926.9252.85
    slim hlink opt
    chr int opt0.050.190.722.87

fibonacci (topdown)

  • ÏÀÍýÊÑ¿ô¤ò¸ú²ÌŪ¤Ë»È¤Ã¤Æ¤¤¤ëÎãÂê
    fibonacci(N,M1) # ID \ fibonacci(N,M2) <=>  M1 = M2 pragma passive(ID).
    NÈÖÌÜ101520251002004001000020000O
    slim int0.010.032.00241.64
    slim mem0.0438.70over
    slim hlink opt0.5112.34267.82
    chr int20.64
    chr int opt0.000.080.15
    • Ëì¤Ë¤è¤ëµ¼»÷ÏÀÍýÊÑ¿ô¤ò»È¤Ã¤Æ¤â¡¢·ë¶ÉƱ¤¸Ãͤò»ý¤Ä½¸¹ç¤òÊ»¹ç¤¹¤ëÁàºî¤Î¥ª¡¼¥À¤¬°­¤¤¤¿¤á¤Ë»þ´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤ë
    • hyperlink¤âÊÑ¿ô¤¬»ý¤ÄÃÍƱ»Î¤ò²Ã»»¤¹¤ë¥ë¡¼¥ë¤¬Í¾Ê¬¤Ë¤¢¤ëʬchr-opt¤è¤ê¥ª¡¼¥À¡¼¤¬°­¤¤
    • 91ÈÖÌÜ7540113804746346429°Ê¹ß¤Ïslim¤Ç¤ÏÀµ¤·¤¯½ÐÎϤµ¤ì¤Ê¤¤ &ref(): File not found: "fib.png" at page "¸¦µæÆü»ï¤È¤¦¤á¤­";

2010-10-25

ram_simulator

  • memory num = 10, program_counter = N
    prog(L,L1,add(B),A), mem(B,Y) \ mem(A,X), prog_counter(L) <=> 
        Z is X+Y, mem(A,Z), prog_counter(L1).
    N5k10k20k40kO
    slim int0.170.330.641.27
    slim hlink
    slim hlink opt
    chr int
    chr int opt0.230.511.333.76
  • memory num = 30, program_counter = N
    N5k10k20k40kO
    slim int1.593.166.3312.65
    slim hlink
    slim hlink opt0.150.280.551.10
    chr int1.542.995.9612.35
    chr int opt0.210.511.263.61
    • (chr¤Î¥ª¡¼¥À¡¼¤¬°­¤¤¤Î¤Ï¡¢Æ±¤¸Ãͤò»ý¤ÄÊÑ¿ô¤¬Â¿¤¤¤¿¤á¤Ë¡¢dense_int¤¬µÕ¸ú²Ì¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤À¤í¤¦¤«¡©)

2010-10-24

union-find

  • N100200400800160O3200O
    slim int0.030.130.714.8936.52290.04N^3
    slim hlink
    slim hlink opt0.030.110.411.546.2724.95N^2
    chr int
    chr int opt0.020.050.150.552.189.29N^2

union-find opt

  • pass compression for find, union-by-rank
    N100200400800160O3200O
    slim int0.030.413.2625.87206.28N^3
    slim hlink
    slim hlink opt0.030.050.210.733.1211.58N^2
    chr int
    chr int opt0.020.050.170.642.519.99N^2
  • slimÆâÉô¤Ë¼ÂÁõ¤·¤¿union-find
    N800016k32k64kO
    slim hyperlink0.010.020.040.08N

cycle

  • 3ĺÅÀ¤«¤é¤Ê¤ëÊÄÏ©¤òõº÷¤¹¤ë(propagation, uniq̵¤·)
    edge(X, Y), edge(Y, Z), edge(Z, X) <=> cycle(X, Y, Z).
    N8k16k32k64kO
    slim int
    slim hlink
    slim hlink opt0.330.671.342.69
    chr int
    chr int opt1.252.545.0510.18

lexicographic

  • ¼­½ñ½çÈæ³Ó(5¡Á10¤ÎŤµ¤Î¥ê¥¹¥È¤òN²óÈæ³Ó)
    l4 @ lex([X|L1],[Y|L2]) <=> X==Y | lex(L1,L2).
    N2500500010k20kO
    slim int0.180.753.1720.58
    slim hlink2.5313.88
    slim hlink opt0.452.008.8246.85
    chr int0.651.252.585.13
    chr int opt0.030.060.120.23
    • findatom¤Ç¤Ï¤Ê¤¯deref¤Çhyperlink¤ËÅþ㤹¤ë¤è¤¦¤Ê¥ë¡¼¥ë¤ÎºÇŬ²½¤Ï¹Íθ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¥ª¡¼¥À¡¼¤¬°­¤¤
    • ¤½¤â¤½¤âhlink¤ò»È¤¦¥á¥ê¥Ã¥È¤Ï¤¢¤Þ¤ê¤Ê¤¤

2010-10-22

leq

  • ¥¯¥¨¥ê¡§leq(1,2), leq(2,3), ... leq(N, 1).
    reflexivity  @ leq(X,X) <=> true.
    antisymmetry @ leq(X,Y), leq(Y,X) <=> X = Y.
    idempotence  @ leq(X,Y) \ leq(X,Y) <=> true.
    transitivity @ leq(X,Y), leq(Y,Z) ==> leq(X,Z).
    N20406080O
    slim int0.3216.06929.34
    slim hlink
    slim hlink opt0.030.796.4228.79
    chr int
    chr int opt0.060.291.315.45
    • uniq¤Ïpropagation¤è¤ê»þ´Ö¤¬¤«¤«¤ë¤¿¤á¡¢¤³¤¦¤¤¤¦·ë²Ì

2010-10-22

CHR bencnmark

2010-10-21

À°¿ôÈæ³Ó²þ¤á¥¢¥È¥àÈæ³Ó¤ÎºÆ¡¹»î

  • ¾ò·ï¤ò¤è¤êƱ¤¸¤Ë¤·¤ÆºÆ¡¹»î
  • slimhl395/101109/vartest.lmn
  • lmntal -O3 --slimcode --hl-opt atomcmp.lmn | slim --hl -
N8k16k32k64kO
slim int0.642.5210.0841.87N^2
slim hlink4.4927.58120.20607.76N^2
slim hlink opt0.020.030.060.12N
chr int3.4115.5070.15288.34N^2
chr int opt0.060.150.280.59N

¥³¥ó¥Ñ¥¤¥é¤ò¥³¥ß¥Ã¥È

  • hyperlink¤òjavaÈÇ¥³¥ó¥Ñ¥¤¥é¤Ë¥³¥ß¥Ã¥È¤·¤¿

hyperlink¤Î½ÐÎÏ

  • Ê»¹ç¤µ¤ì¤¿hyperlink¤òɸ½à½ÐÎÏ»þ¤Ëroot¤Î¥Õ¥¡¥ó¥¯¥¿¤Ç½ÐÎϤ¹¤ë¤è¤¦¤Ë¤·¤¿

2010-10-20

hyperlink¤«¤é¤Îfindatom¡¡²þÎÉÈÇ

  • Ê»¹ç¤·¤¿°Û¤Ê¤ë̾Á°¤ÎhyperlinkƱ»Î¤âÈæ³Ó¤Ç¤­¤ë¤è¤¦¤Ë
  • Ê£¿ô°ú¿ô¤¬¤¢¤ë¾ì¹ç¤Î¥Ð¥°¤ò½¤Àµ
    leq($x, $y), leq($y, $x).
  • Ʊ°ì¥¢¥È¥àÆâ¤ÇʬΥ¤¬µ¯¤³¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËÂбþ
    leq($x, $x)
  • ¤½¤Î¾¡¢¤¤¤í¤¤¤íºÇŬ²½


  • À°¿ôÈæ³Ó¤òÄÉ»î
    N10k20k40k
    hlink(ÄÉ»î)15.8778.59
    hlink opt(Á°²ó¤Î)0.020.040.09
    hlink opt(º£²ó¤Î)0.030.050.10
    chr opt0.080.200.39
    • õº÷¤Ë¤«¤«¤ëÁàºî¤ä¾ò·ïʬ´ô¤¬Áý¤¨¤ÆÃÙ¤¯¤Ê¤ë¤Ï¤º¤À¤Ã¤¿¤¬¡¢¤½¤ÎʬºÇŬ²½¤â¤·¤¿¤Î¤Ç¡¢Â礭¤¯¥¹¥Ô¡¼¥É¤¬Íî¤Á¤ë¤³¤È¤Ï¤Ê¤«¤Ã¤¿

2010-10-12 ¤½¤Î3

leq.pl(CHR)¤òhyperlink¤Ç½ñ¤¤¤Æ¤ß¤ë

  • leq.pl
    ref @ leq(X,X) <=> true.
    ant @ leq(X,Y), leq(Y,X) <=> X = Y.
    ide @ leq(X,Y) \ leq(X,Y) <=> true.
    tra @ leq(X,Y), leq(Y,Z) ==> leq(X,Z).
  • leq_hl.lmn
    ref @@ leq($x, $x) :- .
    ant @@ leq($x, $y), leq($y, $x) :- hlink($x), $x \= $y | $x >< $y.
    ide @@ leq($x, $y), leq($x, $y) :- leq($x, $y).
    tra @@ leq($x, $y), leq($y, $z) :-
             uniq($x, $z) | leq($x, $y), leq($y, $z), leq($x, $z).
  • SLIM¤Ç¤Î¼Â¹Ô·ë²Ì
    leq('!1', '!2'), leq('!2', '!1'), a('!1'), b('!2').
    *--ant@@-->
    '!1'(a). '!2'(b). @5
    == HyperLink ===============================================
             [func] [parent] [elem] [rank (direct child)]
     Name ----------------------------------------------------
                !1       !1      2      1 (2)
                !2       !1    ---      0
    ============================================================
    • a, b¤ÏÊÑ¿ô̾¤ËÁêÅö¡¢É½¤«¤é!1¤È!2¤¬Æ±¤¸½¸¹ç¤Ë°¤·¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ë

2010-10-12 ¤½¤Î2

hyperlink¤Î»È¤¤Êý¥Ú¡¼¥¸¤ò¾¯¤·À°È÷

hyperlink SLIM¦¤òbranch¤Ë¥³¥ß¥Ã¥È

2010-10-12

subversion¤Ç¥¨¥é¡¼

  • Let'sNote¤ÎÊý¤«¤é¥³¥ß¥Ã¥È¤·¤è¤¦¤È¤·¤¿¤é¡¢¥¨¥é¡¼¤¬½Ð¤Æ½ÐÍè¤Ê¤«¤Ã¤¿¡£
    • ̲¤¤¤«¤éÌÀÆüÄ´¤Ù¤ë
      commit -m "hyperlink branch (¦Á-version)..." (19 paths specified)
         Failed to execute WebDAV PROPPATCH
      svn: Commit failed (details follow):
      svn: At least one property change failed; repository is unchanged
      RA layer request failed
      svn: Error setting property 'log': 
      Could not execute PROPPATCH.

2010-10-10

hyperlink compiler¦¤ò¥³¥ß¥Ã¥È

  • devel/sample/seiji/hyperlink_*.zip

2010-10-08

  • ÈÉ¥¼¥ß
    • ¥Õ¥¡¥ó¥¯¥¿¤Î¿ô¤¬Â­¤ê¤Ê¤¯¤Ê¤ë¤Î¤Ï¤É¤¦¤·¤è¤¦¢ª¤È¤ê¤¢¤¨¤ºÃª¾å¤²
    • ¥³¥ß¥Ã¥È¤·¤Ê¤­¤ã
      • slim¤Î¥ê¡¼¥¯¼è¤ê¢ª¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ß¥Ã¥È¢ªslim¤Î¥³¥ß¥Ã¥È¤Î½ç¤Ë¤ä¤ë¤«
  • hyperlink branch
    • "branches"¤ò±¦¥¯¥ê¡¢¥Õ¥©¥ë¥À¿·µ¬À¸À®
    • "trunk"Æâ¤Î"slim"¤ò¥³¥Ô¡¼¡¢"branch"Æâ¤Î"¿·µ¬À¸À®¤·¤¿¥Õ¥©¥ë¥À"¤ò±¦¥¯¥ê¡¢Å½¤êÉÕ¤±

2010-10-07

hyperlink¤òÍøÍѤ·¤¿findatom¤ÎºÇŬ²½

  • Æ°¤¯¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¡¢°ìö¬¤Ã¤Æ¤ß¤¿
    • unary¥¢¥È¥àÈæ³Ó
      • hlink opt : º£²ó¤Î¼ÂÁõ
        N10k20k40k80k
        hlink10.10
        hlink opt0.090.170.36¢¨
        chr opt0.080.200.390.80
      • (¢¨hyperlink¤Î¿ô¤¬Â­¤ê¤Ê¤¤)
      • Èù̯¤Ë¾¡¤Ã¤Æ¤ë¡©¤¤¤ä¤É¤Ã¤³¤¤¤É¤Ã¤³¤¤¤«
      • ¤â¤Ã¤È¤Á¤ã¤ó¤È¼ÂÁõ¤¹¤ì¤Ð¡¢¤â¤¦¾¯¤·Á᤯¤Ç¤­¤ëµ¤¤¬¤¹¤ë
  • Äɻ¥¬¡¼¥É¤Ëhlink(unary¤Ç¤â²Ä)¥Á¥§¥Ã¥¯¤òÆþ¤ì¤¿¾ì¹ç
    N10k20k40k80k
    hlink opt0.020.040.09¢¨
    chr opt0.080.200.390.80
  • ¤«¤Ê¤êÁᤤ
  • TODO:Ëì¤ò´Ó¤¯¥ê¥ó¥¯¤ËÀܳ¤·¤Æ¤¤¤ë¾ì¹ç¤Îhyperlink¥¢¥È¥à¤Î½èÍý¤ÎÀ°È÷

2010-10-04

findproccxt

  • ÆÃÄê¤Î¥¢¥È¥à°ú¿ô(·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®)Ʊ»Î¤¬Æ±¤¸¹½Â¤¤ò»ý¤Ä¤³¤È¤ò¼¨¤¹Ãæ´ÖÌ¿Îá
    • À¸À®»þ¤ÏŬÅö¤ËÁÞÆþ¡¢ºÇ¸å¤Ëcompile/Optimizer.java¤Ë¤Æfindatom¤è¤ê¤âÁ°¤ËʤÓÂؤ¨¤Æ¤ë
a($x), a($x) :- ok.
-------------------------------------------------
    --memmatch:
       spec           [1, 3]
       findproccxt    [1, 0, 2, 0]
       findatom    [1, 0, 'a'_1]
       findatom    [2, 0, 'a'_1]
       neqatom        [2, 1]
       jump           [L118, [0], [1, 2], []]
  • ¥½¡¼¥¹¥³¡¼¥ÉÃæ¤Ë½ñ¤¤¤¿ÀâÌÀ½ñ¤­
/** findproccxt [atom1, length1, arg1, atom2, length2, arg2]
 * ¥¢¥È¥àÈÖ¹æatom1(²Á¿ô=lenght1)¤ÎÂèarg1°ú¿ô¤Î·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤¬¡¢
 * ¥¢¥È¥àÈÖ¹æatom2(²Á¿ô=lenght2)¤ÎÂèarg2°ú¿ô¤Î·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤ÈƱ̾¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹
 * ɬ¤º(atom1,arg1)¤¬¥ª¥ê¥¸¥Ê¥ë¡¢(atom2,arg2)¤¬¿·¤¿¤ËÀ¸À®¤µ¤ì¤¿Ì¾Á°¤Ë¤Ê¤ë¤è¤¦ÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë
 */

2010-09-29

Ʊ̾·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤ÎʬΥ

  • --hl·Ï¥ª¥×¥·¥ç¥ó¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¤è¤¦¤ËÊѹ¹ (2010-10-10)
    • ¤µ¤é¤Ë--hl-opt¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤³¤È¤Ç¡¢¥¬¡¼¥É¤Ë¼«Æ°Åª¤Ëhlink·¿¥Á¥§¥Ã¥¯¤òÁÞÆþ¤·¡¢groundÂÐground¤Î¹½Â¤Èæ³Ó¤ò¥Õ¥¡¥ó¥¯¥¿ÂÐ¥Õ¥¡¥ó¥¯¥¿¤ÇºÑ¤Þ¤¹¤è¤¦¤·¤Æ¤¤¤ë
  • ¥Ø¥Ã¥É¤ËË줬¤¢¤ë¾ì¹ç¤ÎÁàºî¤¬È´¤±¤Æ¤¤¤¿¤Î¤Ç½¤Àµ¡Ê2010-09-30)


  • ¤³¤ì¤Þ¤Ç¤Ï°ì¤Ä¤Î¥ë¡¼¥ëÆâ¤ÇƱ̾¤Î·¿ÉÕ¤­¥×¥í¥»¥¹Ê¸Ì®¤Ïµ­½Ò¤Ç¤­¤Ê¤«¤Ã¤¿¤¬¡¢°Ê²¼¤ÎÍͤËÊѹ¹¤·¤¿
a($p), a($p) :- ...  ¢ª  a($p), a($p0) :- $p = $p0 | ...
  • ¥·¥ó¥¿¥Ã¥¯¥¹¥·¥å¥¬¡¼Åª¤Ê¤â¤Î
    • ¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼«Æ°Åª¤Ë±¦Â¦¤ËÊÑ´¹¤·¤Æ¤¯¤ì¤ë
  • ¸µ¤Î̾Á°¤Î¸å¤í¤Ë¿ô»ú¤ò¤Ä¤±¤Æ¿·¤·¤¤Ì¾Á°¤Ë¤·¤Æ¤¤¤ë
  • ¤â¤Á¤í¤ó¡¢°Ê²¼¤Î¾ì¹ç¤â¹Íθ¤·¤Æ¤¢¤ë
a($p), a($p), a($p0) :- ...  ¢ª  a($p), a($p1), a($p0) :- $p = $p1 | ...

2010-09-25

hlink¤Î¥³¥Ô¡¼¤Èºï½ü

  • ¥¢¥È¥à(hlink¥¢¥È¥à)¤ò10000*N²ó¤º¤Ä¥³¥Ô¡¼¡õºï½ü¤¹¤ë
    • atom : a(b)
    • hlink : a('!1')
      N100200400800O
      atom1.1932.3374.6409.240O(N)
      hlink1.7573.4776.94713.803O(N)
      • ¥ª¡¼¥À¡¼¤ÏÊѤï¤é¤Ê¤¤
      • hlink¥¢¥È¥à¤ÎÀ¸À®¡¦ºï½ü¤Ë¤ÏÍ×ÁÇ¿ô¤ÎÁý¸º½èÍý¤¬È¼¤¦¤¿¤á¼ã´³»þ´Ö¤¬¤«¤«¤ë
      • ¾¤Ë¤â¸¶°ø¤¬¤¢¤ë¤«¤Ê¡©
  • copy_and_delete.lmn
    {
    i(10000, 800). a(b).
    
    
    //new   @@ i(I, M), a($x) :- I > 0, I1 = I-1, unary($x) | i(I1, M), a($x), a($x).
    //del   @@ a($x), a($y) :- unary($x), unary($y) | a($x).
    
    hlinit @@ a(b) :- new($x) | a($x).
    newhl @@ i(I, M), a($x) :- I > 0, I1 = I-1, hlink($x) | i(I1, M), a($x), a($x).
    delhl @@ a($x), a($y) :- hlink($x), hlink($y) | a($x).
    
    }.
    
    {i(0, I), $p, @p}/ :- I > 0, I1 = I-1 | {i(10000, I1), $p, @p}.

2010-09-24

½¸¹ç¤ÎÍ×ÁǤò¿ô¤¨¤ë¤Î¤Ë¤«¤«¤ë»þ´Ö

  • (10000¸Ä¤ÎÍ×ÁǤò»ý¤Ä)½¸¹ç¤ÎÍ×ÁÇ¿ô¤òN²ó¿ô¤¨¤¿»þ´Ö¤ò·×¬[sec]
    • mem:Ëì¤ò°ì¤Ä¤Î½¸¹ç¡¢ÆâÉô¤Î¥¢¥È¥à¤ò½¸¹ç¤Ë°¤¹¤ëÍ×ÁǤȤߤʤ¹
    • hlink:hyperlink¤Ë¤è¤Ã¤Æ½¸¹ç¤òɽ¤¹
      N1000200040008000160003200064000
      mem3.847.7415.5131.11
      hlink0.0030.010.020.030.050.100.21
      • hlink¤Ï¼«¿È¤Ë¤Ä¤Ê¤¬¤ëÍ×ÁÇ¿ô¤ò¾ï¤ËÊÝ»ý¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤Þ¤¡ÅöÁ³¤Î·ë²Ì
  • num_mem.lmn
    {
    i(10000). num(0).
    i(I) :- I > 0, I1 = I-1 | i(I1), a(I).
    }.
    
    a2b{i(1000). num(N), a(X) :- N1 = N+1 | num(N1), b(X).}.
    b2a{i(1000). num(N), b(X) :- N1 = N+1 | num(N1), a(X).}. 
    
    {i(0), $p, @p}/, a2b{i(I), @q} :- I1 = I-1 | 
      count{$p, @q}, a2b{i(I1)}, '$callback'(gettime, start).
    
    count{num(N), $p, @p}/, a2b{$q}, b2a{i(I), @r} :- int(N), I > 0, I1 = I-1 |
      count{num(0), $p, @r}, a2b{$q, @p}, b2a{i(I1)}. 
    
    count{num(N), $p, @p}/, b2a{$q}, a2b{i(I), @r} :- int(N), I > 0, I1 = I-1 |
      count{num(0), $p, @r}, b2a{$q, @p}, a2b{i(I1)}.
    
    a2b{i(0), @p}, b2a{i(0)} :- '$callback'(gettime, end).
    
    end(E), start(S) :- R = E-.S | time(R).
  • num_hl.lmn
    {
    i(10000).
    i(I) :- I > 0, I1 = I-1, new($h) | i(I1), e($h), a($h).
    e($x), e($y) :- $x \= $y | e($x), $x >< $y.
    }.
    
    i(10000).
    
    {i(0), e($h), $p, @p}/ :- hlink($h) | count{$p}, '$callback'(gettime, start).
    
    count{a($x), $p}, i(I) :- I > 0, I1 = I-1, $n = num($x) | 
      count{a($x), $p}, i(I1), num($n).
    
    i(0) :- '$callback'(gettime, end).
    end(E), start(S) :- R = E-.S | time(R). 
    
    end(E), start(S) :- R = E-.S | time(R). 

--showhl

  • hyperlink¾ÜºÙ½ÐÎÏÍÑ¥ª¥×¥·¥ç¥ó¤ò¤³¤Ã¤½¤êÄɲÃ
    • ½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤â°ì¿·

¤½¤Î¾

  • coname¤Ï¸½¾õ¤Ç¤ÏÍ×ÁÇ¿ô¤Ë´Þ¤á¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë
  • hyperlink¤È9/14¤ÎÊѹ¹¤ò¥í¡¼¥«¥ë¤Îslim¤Ë¥Þ¡¼¥¸

2010-09-22

  • ½¸¹çÆâ¤Î¡ÖÍ×ÁÇ¿ô¡×¤ÎÄêµÁ
    • !1¡Á!5¤Þ¤Ç¤Îname(³Æ1¸Ä)¤«¤é¤Ê¤ë½¸¹ç¤Ë¡¢coname !-1¤òÍ¿¤¨¤¿¤È¤­¡¢¤³¤Î½¸¹ç¤ÎÍ×ÁÇ¿ô¤Ï¤É¤¦¤Ê¤ë¤ó¤À¤í¤¦¤«
      • 5¸Ä¤Ê¤Î¤«5+1¸Ä¤Ê¤Î¤«
    • coname¤ÏÍ×ÁǤȤ·¤Æ¿ô¤¨¤ë¤Ù¤­¤«¤É¤¦¤«¡¢¤Á¤ç¤Ã¤È¹Í¤¨¤¿Êý¤¬¤¤¤¤¤«¤â
  • memo
    • add
      • alloc.c/lmn_new_atom(lmn_copy_satom¤Ê¤É¤â´Þ)
    • sub
      • alloc.c/lmn_delete_atom

2010-09-18

  • 9/14¤ÎÊѹ¹¤ò¥³¥ß¥Ã¥È¤·¤¿
    • ¾õÂÖ¿ô¤âÀµ¾ï¤ß¤¿¤¤¤À¤·¡¢Â¿Ê¬Âç¾æÉפÀ¤í¤¦

2010-09-17

--showrule

  • ruleset id¤Î¸å¤í¤Ë¡¢rule¤ÎÃæ¿È¤ò³¤±¤Æ½ÐÎϤ¹¤ë¥ª¥×¥·¥ç¥ó¤òǦ¤Ó¹þ¤Þ¤»¤¿
    • °ìÅÙ¤âÈ¿±þ¤·¤Ê¤«¤Ã¤¿¥ë¡¼¥ë¤Ï²¿¤âɽ¼¨¤µ¤ì¤Ê¤¤(²¿¤é¤«¤Îrule¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ïʬ¤«¤ë)
    • StateViewer?¤Ç¤â¥ª¥×¥·¥ç¥ó»ØÄꤹ¤ì¤Ð»È¤¨¤ë
      a(b(c)), a(d(e)).
      rule @@ a(X) :- uniq(X) | ok(X).
      ok(X) :- uniq(X) | .
      aaaa :- bbbb.
      --->
      @5/[rule"b(c,a):""d(e,a):"][_okXu"b(c,ok):""d(e,ok):"][]

2010-09-14

µ×¤·¤Ö¤ê¤Ëuniq

  • Ëì¤Î¥À¥ó¥×¤Çrulesets¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¯¡¢rule¤¬»ý¤ÄÍúÎò¤ÎÆâÍƤòÁ´¤ÆÆͤùþ¤àÊý¼°¤ËÊѹ¹
    • ¤·¤¿¤Ä¤â¤ê¡£¥Á¥§¥Ã¥¯¤ÏÌÀÆü°Ê¹ß¡£

2010-09-10

  • hyperlinkÅù²ÁÀ­È½Äê¤Î¥Ð¥°¤ò½¤Àµ
    • ¡Öconame¤ò»ý¤Äname¡×¤È¡Öconame¡×¤È¤ÎÈæ³Ó¤Ê¤É
    • memo : hyperlinkÅù²ÁȽÄê¤Ë´Ø¤ï¤ëÌ¿ÎáÎó
      • samefunc
      • eq/neqfunc
      • eq/neqground

2010-09-06

  • ¤è¤¯¤è¤¯¹Í¤¨¤¿¤é¡¢rank¤Ïname¤Î»Ò¿ô¤Ç¤¢¤Ã¤Æ¡¢Í×ÁÇ¿ô¤È¤Ï°ã¤¦
    • Ǥ°Õ¤Î½¸¹ç¤Ë°¤¹¤ëhyperlink¤ÎËÜ¿ô(Èóhyperlink¥¢¥È¥à¤Ø¤ÎÀܳ²Õ½ê)¤ò¿ô¤¨¤é¤ì¤ë¤è¤¦¤Ë¤·¤¿
  • ͽÌó¸ìÍѤΥե¡¥ó¥¯¥¿¤¬20¸Ä¤¯¤é¤¤¤¢¤ë¤Î¤Ç¡¢»ÈÍѤǤ­¤ëhlink id¤Ï65536¸Ä¤è¤ê¼ã´³¾¯¤Ê¤¤

2010-08-31

  • TODO¡§reverse¤ò°ì»þ¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤ª¤¯

2010-08-30

  • lmn_eq_func¤ËLMN_FUNCTOR_ATTR¤Î¾ì¹çʬ¤±¤òÄɲÃ
    • ¾¤Ë¤â¾ì¹çʬ¤±Äɲ䷤ʤ­¤ã¤¤¤±¤Ê¤¤½ê¤¬¤¿¤¯¤µ¤ó¤¢¤ë
  • ½é´ü²½´Ø¿ô¤ÇÁ´¤Æ½é´ü²½¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤òºÇŬ²½¤·¤¿

2010-08-20

  • coname-coname, name-coname´Ö¤ÎÊ»¹ç½èÍý¤ò¼ÂÁõ
    • Èæ³Ó±é»»¤Î½¤Àµ¤Ï¤Þ¤À
  • ¤½¤í¤½¤íhyperlink¼êÆ°¤Îfindatom¤È¡¢parser¤òÊѹ¹¤·¤ÆƱ¤¸¥×¥í¥»¥¹Ê¸Ì®Ì¾¤¬3²ó°Ê¾å½Ð¸½¤òµö¤¹¡¢ÊÕ¤ê¤Î¸¡Æ¤¤ò

2010-08-19

  • coname´ÉÍýÊýË¡¤òÊѹ¹
  • st_get_entry´Ø¿ô¤ò¼ã´³½¤Àµ
    • ¥ì¥³¡¼¥É¤Ç¤Ï¤Ê¤¯¥­¡¼¤ò¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿

2010-08-18

  • ºÙ¤«¤Ê½ê¤Ç¥Ð¥°¤¬...
    • ¥é¥ó¥¯¤ÎºÆ·×»»¤ò½¤Àµ
    • coname¤Î´ÉÍýÊýË¡¤ÎÊѹ¹¤ò¸¡Æ¤Ãæ¡¢ÇÛÎó¤è¤ê¥Ï¥Ã¥·¥åɽ¤ÎÊý¤¬¤¤¤¤¤«¤â

2010-08-13

  • ȿž½èÍý¡§¥ê¥ó¥¯¤Î·Ò¤®´¹¤¨¤Ç¤ª¤«¤·¤«¤Ã¤¿¤È¤³¤í¤ò½¤Àµ

2010-08-12

LMN_FUNCTOR_ATTR¤È·¿¸¡ºº¤Î·ó¤Í¹ç¤¤

  • new¤Èint¤Ê¤É¤òÁȤ߹ç¤ï¤»¤ë¤È¤ª¤«¤·¤¯¤Ê¤ë
  • ¤½¤Î¤¦¤Á¤ä¤ë

2010-08-10

  • ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°

2010-08-06

Í×ÁÇ¿ô¤Î¼èÆÀ

  • Ǥ°Õ¤Îhlink¤¬½ê°¤¹¤ë½¸¹ç¤ÎÍ×ÁǤò¼èÆÀ¤¹¤ë
    a($h) :- $n = num($h) | n($n).

newÀ©Ìó

  • 0ÆþÎÏÀ©Ìó´ØÏ¢¤Î¥Ð¥°¤ò¼«¸Ê²ò·è

name-coname¤Îȿž

  • "-"¤ò¤Ä¤±¤ë¤³¤È¤Ç¥Ü¥Ç¥£¤Çȿž¤Ç¤­¤ë¤è¤¦¤Ë
    • name¤«¤éconame¤Ø¤Îȿž¤Ï¡¢coname¤ò»ý¤Ä¾ì¹ç¤Î¤ß²Äǽ
      a(!1). a($h) :- name($h) | a(-$h). 
      ---> a(!-1).

2010-08-05

hyperlinkÀ¸À®

  • ¥¬¡¼¥É¤Ç¤Ï¥·¥ó¥Ü¥ë¥¢¥È¥à¤òÀ¸À®¤·¤Ê¤¤¤È¤¤¤¦SLIM¤Îºî¤ê¤Ë§¤Ã¤Æ¤¤¤¿¤¬¡¢¤½¤ì¤À¤È¼¡¤Î¤è¤¦¤Ê¥¬¡¼¥É¤¬½ñ¤±¤Ê¤¤
    ... :- new(X), Y = setconame(X) | ...
    • ¥¬¡¼¥É¤Ç¥¢¥È¥àÀ¸À®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Ê¤ê¡¢¤Á¤ç¤Ã¤È¸«Ä¾¤·¤¬É¬Í×

2010-08-03

¥Ü¥Ç¥£¤ÇÊ»¹ç¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿

  • ±é»»»Ò¡§"><"
    • name-name, coname-conameÍÑ
    • bow tie¤Ã¤Ý¤¯¸«¤¨¤ë
      a($x), b($y) :- $x \= $y | a($x), b($y), $x >< $y.
      • name-conameÍѤˤÏ">>","<<"¤¢¤ë¤¤¤Ï"<-","->"¤«¤Ê

2010-07-30

ÏÀÍýÊÑ¿ô¤Î¾õÂÖ

  • Ãͤä°À­¤ò»ý¤¿¤Ê¤¤
    • ¤³¤ì¤ò½é´ü¾õÂ֤Ȥ·¡¢²¼¤Î¤É¤Á¤é¤«¤Î¾õÂ֤˰ܹԲÄǽ
  1. Ãͤä°À­¤ò»ý¤Ä
  2. ¾¤ÎÊÑ¿ô¤ÈÊ»¹ç¤µ¤ì¤ë
    • Ãͤä°À­¤ÎÂå¤ï¤ê¤ËÁê¼êÊÑ¿ô¤Ø¤Î»²¾È¤ò»ý¤Ä

Attribute variable

  • °À­¤Î¼ÂÁõ¤Ï¤É¤¦¤ä¤Ã¤Æ¤¤¤ë¤Î¤«¡¢¤Á¤ç¤Ã¤ÈÄ´¤Ù¤Æ¤ß¤ë

2010-07-29

coname¤Îunify

  • °Û¤Ê¤ëÃͤò»ý¤ÄÊÑ¿ôƱ»Î¤ÎÊ»¹ç¤Ï¼ºÇÔ
  • coname¤Î¤ß¤Ç¸ºß¤¹¤ë¤³¤È¤Ï̵¤¤¡¢¤È¤¹¤ë¤Èconame¤ÎÀ¸À®¤Ïname¤¢¤ê¤­¤Î¹½Ê¸¤Ë¤·¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤«

2010-07-23

hyperlink

  • name<->name´ØÏ¢µ¡Ç½¤ÏÂçÂμÂÁõ¤·¤¿...¤«¡©
    • Ìڤǽ¸¹ç¤ò´ÉÍý
    • rank¤ä¥Ñ¥¹°µ½Ì¤òÍѤ¤¤Æ¿¾¯¤Ï¸úΨÎɤ¤¤è¤¦¤Ë¤·¤Æ¤ß¤¿
  • ¼¡¤Ïco-name<->name´ØÏ¢¤ò¤Ü¤Á¤Ü¤Á¤È

co-name

  • ɬÍפ½¤¦¤ÊÁàºî¤È¡¢¹½Ê¸ÌÑÁÛ
    • co-name¤ÎÀ¸À®
      • co-name¤òÀ¸À®¤¹¤ë=Âбþ¤¹¤ëname¤¬¤¹¤Ç¤ËÀ¸À®¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡©
      1. (name·¿¤Ç¤¢¤ë&&co-name¤ò»ý¤¿¤Ê¤¤)=>co-nameÀ¸À®¡©
      2. name·¿¤Ç¤¢¤ë=>co-nameÀ¸À®=>(co-name2¤Ä°Ê¾å»ý¤Ä=>co-name¤ÎÊ»¹ç)¡©
    • name¤¬co-name¤ò»ý¤Ä¤«¤É¤¦¤«¤Î¸¡ºº
      • a($h) :- hasconame($h) | ...
      • $h¤¬name(hlink)¤Ç¤¢¤ë=>$h¤¬co-name¤ò»ý¤Ä¤«¤É¤¦¤«
    • name¤«¤éco-name¤ò¸Æ¤Ó½Ð¤¹
      • a($h) :- getconame($h) | ...
      • $h¤¬name(hlink)¤Ç¤¢¤ë=>$h¤¬co-name¤ò»ý¤Ä=>$h¤Ëco-name¤ò·ë¤Ó¤Ä¤±¤ë
    • co-name·¿¸¡ºº
      • a($h) :- coname($h) | ...
    • name->co-name¤ÎÊ»¹ç (=co-name¤Î̵¤¤name¤Ëco-name¤ò·ë¤Ó¤Ä¤±¤ë)
      • a($x), b($y') :- $h = $x >> $y' | a($h), b($h).¡¡('ÉÕ¤­¤Ïco-name)

co-name¤Î°À­¤ò°·¤¦¹½Ê¸

  • (!-1 > 3), (!-2 < 5)¤È¤¤¤¦co-name!-1,!-2¤òÊ»¹ç¤¹¤ë
    • and¤Èor¤Î¶èÊ̤ò¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ëɬÍפϤ¢¤ë¤«¡©


  • memo
    • before
       1: func  !1  200, parent   1, rank   7
       children >>  2  3  5
       2: func  !2  202, parent   1, rank   0
       3: func  !3  204, parent   1, rank   1
       children >>  4
       4: func  !4   23, parent   3, rank   0
       5: func  !5  207, parent   1, rank   3
       children >>  6  7
       6: func  !6  209, parent   5, rank   0
       7: func  !7  211, parent   5, rank   1
       children >>  8
       8: func  !8   25, parent   7, rank   0
       9: func  !9  214, parent   9, rank   1
       children >> 10
      10: func !10  216, parent   9, rank   0
    • after 4,8¤«¤éroot¤òõº÷
       1: func  !1  200, parent   1, rank   7
       children >>  2  3  4  5  7  8
       2: func  !2  202, parent   1, rank   0
       3: func  !3  204, parent   1, rank   0
       4: func  !4   23, parent   1, rank   0
       5: func  !5  207, parent   1, rank   2
       children >>  6
       6: func  !6  209, parent   5, rank   0
       7: func  !7  211, parent   1, rank   0
       8: func  !8   25, parent   1, rank   0
       9: func  !9  214, parent   9, rank   1
       children >> 10
      10: func !10  216, parent   9, rank   0

2010-07-16

hyperlink»ÅÍͤޤȤá

2010-07-15

  • ÈÉ¥¼¥ßÍѸ½¾õ¥á¥â
  • hlinkÍѱ黻»Ò¤¬·è¤Þ¤é¤Ê¤¤

name, coname

  • ̾Á°¤Î·è¤áÊý
    • name : "!" + 0,1,2,...
    • coname : "!!" + (name¤«¤éµá¤á¤¿¥Õ¥¡¥ó¥¯¥¿id)
  • ¼ÂÁõÊýË¡°Æ
    • ¤É¤Á¤é¤â´ðËÜŪ¤Ëº£¤Þ¤Ç¤Î¥Õ¥¡¥ó¥¯¥¿
      • °À­ÉÕ¤­ÊÑ¿ô¤òƳÆþ¤¹¤ë¤Ê¤é¡¢
  • Âбþ´Ø·¸
    • ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Ç´Ø·¸¤òÊÝ»ý¡Ê¿Æ-->»Ò¡¢»Ò-->¿Æ¡Ë
  • µ­Ë¡°Æ
    • name-->coname¼èÆÀ
      a($h) :- coname($h) | a(

hlinkÀ¸À®

  • ËÜÌ¿¡§body¤ÇÀ¸À®
    • ¥³¥ó¥Ñ¥¤¥éÆɤß+²þ¤Ãæ
  • ¼¡Á±ºö¤ÎnewÀ©Ìó
    hoge, hoge.
    hoge :- new($h) | a($h), b($h).
    *--> a('!0'), b('!0'), a('!1'), b('!1').

Ê»¹ç

  • mergeÍѱ黻»Ò
    a($x), b($y) :- $h = $x =$= $y | a($h), b($h).
    • #¤Ê¤Î¤Ï¤¤¤«¤¬¤Ê¤â¤Î¤«

memo

  • hlink¤Î¼ÂÁõÊýË¡
    • SLIM¤Ç¤Ï¥¬¡¼¥É¤Çsymbol¥¢¥È¥à¤òÀ¸À®½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿
    • Ä̾ï¤Î(symbol)¥¢¥È¥à¤È¤·¤Æ̾Á°¤ò¤Ä¤±¤ë¤«
    • ¥Ç¡¼¥¿¥¢¥È¥à¤Î°ì¼ï¤È¤¹¤ë(ñ¤Ê¤ë¿ôÃÍ)¤«
      • Attr¤ËhlinkÍѤΰÀ­¤ò¿·¤¿¤ËÍÑ°Õ¤¹¤ë¤«

2010-07-09

JFlex.jar¤Èjava_cup.jar

  • java_cup.jar¤ÎÊý¤Ïsrc/compiler/parser/¤Ë°ÜÆ°¤·¤Æ¼Â¹Ô¤·¤Ê¤¤¤È¡¢parser.java¤¬Àµ¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ËÀ¸À®¤µ¤ì¤Ê¤¤¤ß¤¿¤¤

"=="±é»»»Ò

  • '=='¤òunary·¿Æ±»Î¤ÎÈæ³Ó±é»»»Ò¤Ë¤·¤è¤¦¤È¤¤¤¦ÏÃ(cf.ÀèÀ¸wiki)
    • '=','\='¤Ïground¡¢'=:=','=\='¤Ïint
    • unary¤Înot equal¤Ë´Ø¤·¤Æ(src/compile/GuardCompiler?.java, l.363)
// .. :- unary(A),A\=B | ..
//¤Î¾ì¹ç¡¢B¤¬ground¤Ç¹½¤ï¤Ê¤¤¡£A¤¬unary¤Ç¡¢¤«¤ÄB¤¬°Û¤Ê¤ë¹½Â¤¤Î»þ¤ËÈ¿±þ¤¹¤ë¡£
//¤³¤ÎÅÀ¤Ï¡¢==¤È¤Ï°ã¤¦¡£==¤Î¾ì¹ç¡¢¤½¤â¤½¤âƱ¤¸·¿¤Ç¤Ê¤±¤ì¤Ð¥Þ¥Ã¥Á¤·¤Ê¤¤¤¿¤á¡£
//B¤¬unary¤Î»þ¤Ë¸ÂÄꤷ¤¿¤±¤ì¤Ð¡¢unary(B)¤ò½ñ¤­²Ã¤¨¤ì¤Ð¤è¤¤¡£
//(²¿¤â¹Í¤¨¤º¤Ë¼ÂÁõ¤·¤¿¤é¤½¤¦¤Ê¤Ã¤¿¤Î¤À¤¬¡¢·ë²ÌŪ¤Ë°ìÈÖ½ÀÆð¤Çľ´¶Åª¤Ê·Á¤À¤È»×¤¦¡£)
  • ¼ÂÁõÊѹ¹¸å¤ÎÃæ´ÖÌ¿ÎáÎó
    a($x), b($y) :- $x == $y | ...
    -------------------------------------------------------------
    --guard:L118:
    	spec           [3, 5]
    	derefatom   [3, 1, 0]
    	isunary        [3]
    	derefatom   [4, 2, 0]
    	isunary        [4]
    	samefunc       [3, 4]
    	jump           [L103, [0], [1, 2, 3, 4], []]

hlink¤Îmerge

  • Ê»¹ç¤Ï¤É¤¦¤¤¤¦¾õ¶·¤Ç»È¤¦¤À¤í¤¦¤«
    • $x,$y¤¬°Û¤Ê¤ë½¸¹ç¤Ë°¤·¤Æ¤¤¤ì¤ÐÊ»¹ç¤¹¤ë¡¢¤È¤¤¤¦¥ë¡¼¥ë¤Ï³ä¤È½ñ¤­¤½¤¦
  • mergeÈǤÈ'=='/3±é»»»ÒÈǤǽñ¤¤¤Æ¤ß¤ë
  a($h1), b($h2) :- merge($h1, $h2) | a($h1), b($h2).
  a($x), b($y) :- $x \= $y, $h = $x == $y | a($h), b($h).
  • '=='ÈǤÎÊý¤¬LMNtal¤Ã¤Ý¤¤µ¤¤Ï¤¹¤ë
    • ¤¿¤À¡¢'=='ÈǤÀ¤È¤³¤¦¤¤¤¦¥ë¡¼¥ë¤â½ñ¤±¤ë¤³¤È¤Ë¤Ê¤ë
  a($x), b($y) :- $h = $x == $y | a($h), b($h).
  • ¤³¤Î¾ì¹ç¡¢$x,$y¤¬´û¤ËÊ»¹ç¤µ¤ì¤Æ¤¤¤è¤¦¤¬¹½¤ï¤ºÊ»¹ç¤¹¤ë¥ë¡¼¥ë¤Ë¤Ê¤ë
  • ´û¤ËƱ¤¸½¸¹ç¤Ë°¤·¤Æ¤¤¤ëhlinkƱ»Î¤òÊ»¹ç¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ï¤É¤¦¤Ê¤ë¤Î¤«¡©
  • mergeÀ©Ìó¤Ï¡Ö´û¤ËÊ»¹ç¤µ¤ì¤Æ¤¤¤ëhlinkƱ»Î¤ò°ú¿ô¤Ë»ý¤Ä¤ÈFALSE¡×¤È¤¤¤¦¡¢À©Ìó¤ÎÍͤÊÌò³ä¤ò»ý¤¿¤»¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë
    • ¤¿¤À¡¢¥Ç¡¼¥¿¹½Â¤¾å¤Ï¥°¥é¥Õ¤Î½ñ´¹¤¨¤¬µ¯¤³¤é¤Ê¤¤¤Î¤Ë¡¢Ê»¹çÁàºî¤Ç;·×¤Ê¾õÂÖÁ«°Ü¤¬À¸¤¸¤ë¤Î¤Ï¤¢¤Þ¤ê¤¦¤ì¤·¤¯¤Ê¤¤¤«¤â´Ö°ã¤¤¡¢hlink¤ÎÊ»¹çÁ°¤ÈÊ»¹ç¸å¤ÏÊ̤ξõÂÖ¤À¤«¤é1¥¹¥Æ¥Ã¥×¤«¤«¤Ã¤Æ¤â¤¤¤¤¤Î¤«¡¢¤Þ¤¡¤½¤ì¤¬mergeÀ©Ìó¤ò¿ä¤¹·è¤á¼ê¤Ë¤Ï¤Ê¤é¤Ê¤¤¤¬
  • Ʊ¤¸½¸¹ç¤Ë°¤¹¤ëhlinkƱ»Î¤ÎÊ»¹ç¤Î°ÕÌ£¤ò·è¤á¤Æ'=='¤Ë¤·¤¿Êý¤¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤

2010-07-08

hlink·¿

  • ´ðËÜŪ¤Ë¤Ï(¥×¥í¥°¥é¥à¾å¤Ï)unary·¿
    • ¥Õ¥¡¥ó¥¯¥¿¤ÎºÇ½é¤Î3ʸ»ú¤¬"$hl"¤Ç¤¢¤ë¡Ê¤«¤Ä¿Æ¥Õ¥¡¥ó¥¯¥¿¤Ø¤Î¥¢¥É¥ì¥¹¤ò»ý¤Ä¡Ë
      • root¥Õ¥¡¥ó¥¯¥¿¤Ï¿Æ¥Õ¥¡¥ó¥¯¥¿=¼«¿È¤Î¥¢¥É¥ì¥¹
      • ¾¤ÎÄ̾ï¥Õ¥¡¥ó¥¯¥¿¤Ï¿Æ¥Õ¥¡¥ó¥¯¥¿=NULL
      • ¤¢¤ë¤¤¤Ïñ½ã¤Ëroot(Èóhlink·¿´Þ)¥Õ¥¡¥ó¥¯¥¿¤ÏNULL¤Ç¤â¤¤¤¤¤Î¤«¤â
  • ¾¤Î·¿¤È¤Î´Ø·¸¤Ï¤³¤ó¤Ê´¶¤¸¡©
    hlink ¢¾ unary ¢¾ ground
    hlink ¡â data(int, double, ...)
  • ¥¬¡¼¥ÉÀ©Ìó¡¢°ì±þºî¤Ã¤Æ¤ß¤¿
    hlink(X) : hlink·¿¸¡ºº
    newhl(X) : hlink atomÀ¸À®¡¢Ãæ´ÖÌ¿ÎáÎó¤ÏºòÆü¤Îhlink¤È°ì½ï
               hlink·¿¤À¤ÈŬÍѤ·¤Ê¤¤(not_hlink¸¡ºº)¤ÎÌò³ä¤â»ý¤Ä

Ê»¹ç

  • ¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤Ç¹Ô¤Ê¤¦ÊýË¡¡¢±é»»»Ò"=="
    • ¥ë¡¼¥ëŬÍѤΥ¿¥¤¥ß¥ó¥°¤Ç¡¢¥æ¡¼¥¶¤Î»×¤¤Ä̤ê¤Ë¤¤¤«¤Ê¤¤¤³¤È¤¬¤¢¤ë¡¢µÑ²¼
  • ¥Ü¥Ç¥£¤Ç¹Ô¤Ê¤¦ÊýË¡¡¢±é»»»Ò¤Ï"=="¤Ë¤·¤è¤¦¤«¤Ê
    a($h1), b($h2) :- 
      hlink($h1), hlink($h2) | a($h1), b($h2), $h1==$h2.
    • unify("=")¤Î¤è¤¦¤Ë¡¢Ãæ´ÖÌ¿ÎáÎó¤òÊѤ¨¤ë¤«¡¢¼ÂÁõ¤¬¾¯¤·ÌÌÅÝ
    • ²Ã¤¨¤Æ¡¢Ê¬»Ò'=='($h1,$h2)¤¬¼«Æ°Åª¤Ë¾Ãµî¤µ¤ì¤ë¡¢¤Á¤ç¤Ã¤ÈÉÔ¼«Á³¡©
      • ¤µ¤é¤ËÌäÂê¡¢¾å¤Î¥ë¡¼¥ë¤Ï̵¸Â¥ë¡¼¥×¤¹¤ë
  • ¥¬¡¼¥É¤Ç¹Ô¤Ê¤¦ÊýË¡¡¢Î㤨¤ÐmergeÀ©Ìó¤È¤«
    a($h1), b($h2) :- merge($h1, $h2) | a($h1), b($h2).
    • Ê»¹çÁàºî¤Ï¡¢Ê»¹ç¤¹¤ë¥Õ¥¡¥ó¥¯¥¿¤Î̾Á°¤À¤±¼èÆÀ¤Ç¤­¤ì¤Ð¤è¤¤
    • ¥Ü¥Ç¥£¤Çʬ»Ò¤òÉÔ¼«Á³¤Ë¾Ã¤µ¤Ê¤¯¤ÆºÑ¤à¾å¤Ë¡¢¼ÂÁõ¤â³Ú
      • ´û¤ËÊ»¹ç¤µ¤ì¤Æ¤¤¤ë½¸¹ç¤Ë°¤¹¤ëhlinkƱ»Î¤Ï·ë¹ç¤Ç¤­¤Ê¤¤¡¢¤È¤«¤Ë¤¹¤ì¤Ð̵¸Â¥ë¡¼¥×¤âËɤ²¤ë
    • ¤¿¤À¥¬¡¼¥ÉÀ©Ìó¤¬Áý¤¨²á¤®¤Êµ¤¤â¤¹¤ë

Åù²ÁȽÄê(naive)

/* $h1, $h2¤É¤Á¤é¤«°ìÊý¤Ëhlink(unary)¥Á¥§¥Ã¥¯¤ò»Ü¤¹ */
a($h1), b($h2) :- 
  hlink($h1), $h1==$h2 | a($h1), b($h2).
  • Åù²ÁȽÄê(optimize)¤ÏÃæ´ÖÌ¿ÎáÎó¤òÊѹ¹¤·¤Ê¤¤¤ÇSLIM¦¤À¤±¤Ç²Äǽ¤«¤Ê¡©¤¦¡¼¤ó¤è¤¯¹Í¤¨¤Ê¤¤¤È

hyper link for nd

  • ¤È¤ê¤¢¤¨¤ºÊüÃÖ¤·¤¿¤¤¡¢¤ä¤ë¤Ê¤é¾õÂÖ¤´¤È¤Ë¥Õ¥¡¥ó¥¯¥¿¤Î¿Æ»Ò´Ø·¸´ÉÍý¤ò¤µ¤»¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤Ê

2010-07-07 ¤½¤Î£²

  • hlink·¿À©Ìó¤ÏɬÍפ«¤Ê
    hlink atomÀ¸À®  : newhl($h)¡¡¤ËÊѹ¹
    hlink·¿¥Á¥§¥Ã¥¯ : hlink($h)  ¤È¤«?
    • unary·¿¥Á¥§¥Ã¥¯¤ÎÃæ¤Ç̵Íý¤ä¤êhlink¤ò¼±Ê̤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë
  • ¸½ºß¡¢BODY¤Ç¤Î"="¤È"=="¤Ï¶¦¤Ëeqground
    • "=="¤òhl¥¢¥È¥àÀìÍѤˤ¹¤ë¡©
      ... :- unary(X), unary(Y), X==Y | ...
      -------------------------------------
       derefatom   [5, 3, 0]
       isunary        [5]
       derefatom   [4, 2, 0]
       isunary        [4]
       samefunc       [5, 4]

2010-07-07

  • °Ê²¼¡¢Ì¤¥³¥ß¥Ã¥È

hyper link atom À¸À®

  • ¥³¥ó¥Ñ¥¤¥é¦
    • hlinkÀ©Ìó
      • hyper link atom (hl¥¢¥È¥à) : ¥¢¥È¥à̾($hl + ID)¤ò»ý¤Ä1°ú¿ô¥¢¥È¥à
        a($h) :- hlink($h) | b($h).
        ------------------------------------------
        if ($h == hl¥¢¥È¥à) {
          ¥ë¡¼¥ëŬÍѼºÇÔ
        } else {
          $h¤«¤éµá¤á¤¿ID¤ò¤â¤Ähl¥¢¥È¥à¤òÀ¸À®
        }
      • hyperlinkÍÑÃæ´ÖÌ¿Îá
        /** hyperlink [atom, mem]
         * $mem¤Ë½ê°¤¹¤ë$atom¤òhyperlink atom¤ËÃÖ¤­´¹¤¨¤ë
         */
  • SLIM¦
    • ¤æ¤¯¤æ¤¯¤Ïhl¥¢¥È¥à¤òdata¥¢¥È¥à(¤Îspecial¥¢¥È¥à?)¤Ë¤·¤Æ½èÍý¤ò´Êñ¤Ë¤·¤¿¤¤¤È¤³¤í
    • ¥Õ¥¡¥ó¥¯¥¿¤òUnionFind?¤Î¤è¤¦¤Ë¿Æ»Ò´Ø·¸¤ò»ý¤¿¤»¤ë¤è¤¦¤Ë¤·¤¿
      • »î¤·¤ËsamefuncÌ¿Îá¤ÎÃæ¤Çhl¥¢¥È¥à¤ÎÈæ³Ó¤À¤±Ê̤νèÍý¤ò¤µ¤»¤ë¤è¤¦¤ËÊѹ¹
      • ¿Æ»Ò´Ø·¸¤òÈ¿±Ç¤·¤¿Åù²ÁȽÄ꤬¤Ç¤­¤¿
        a(X), b(Y) :- unary(X), unary(Y), X==Y | .
  • memo
    • Instruction.java
    • GuardCompiler?.java

2010-07-05

  • memo
    • hylink atom¤Ïint·¿¤¸¤ã¤Ê¤¤¤«¤é==¤Îξ°ú¿ô¤Ë»ØÄꤷ¤Æ¤âÂç¾æÉ×

2010-07-01 ¤½¤Î2

ÈÉ¥¼¥ß

  • hylink¤ÎÀ¸À®¤Ï¥¬¡¼¥É¤Ç
    • °ìÅٹͤ¨¤Æ¡¢¤ª¤«¤·¤¤¤È»×¤Ã¤Æ¤¿¤±¤É¡¢³Î¤«¤Ë+¤ä-¤ò¥¬¡¼¥É¤Ç¤·¤Æ¤ë¤«

2010-07-01

hyper link

  • (ºÆ·Ç)
    1. hylink¤ò¿·µ¬À¸À®
    2. 2¤Ä¤Îhylink¤ÎÅù²ÁÀ­È½Äê
    3. »ØÄꤷ¤¿hylink¤Î½Ð¸½¤ÎÎóµó
    4. »ØÄꤵ¤ì¤¿hylink¤Ë·Ò¤¬¤ë¥¢¥È¥à¤Î(¸úΨŪ)õº÷
    5. hylinkƱ»Î¤ÎÊ»¹ç
  • ¶âÍˤ«¤é¿Ê¤ó¤À¤È¤³¤í¤Þ¤Ç
    • 1¡¢5¤ò¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤Ç
  • 1. ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à(²¾)¤ÎÀ¸À®
    a(hL(abc)), b(hL(1)).  
    <==> a('$hL62'). b('$hL236').
    • º£¤Î¤È¤³¤ícallback´Ø¿ô»ÈÍÑ¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤Ë¤Æ
    • 62, 233¤ÏhL(N)¤ÎN¤òlmn_intern¤ËÅꤲ¤ÆÆÀ¤é¤ì¤ëÃÍ
  • 5. ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ÎÊ»¹ç
    // '$hL'(HYLINK1, HYLINK2) : HYLINK1¤È2¤¬Ê»¹ç¤µ¤ì¤ë
    a('$hL61'). b('$hL236'), '$hL'('$hL61', '$hL236').
    {b('$hL236')}.
    <==> a('$hL61'). b('$hL61'), {b('$hL61')}.
    • ¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È
      • hylink_unify : $hL_2¤Ë·Ò¤¬¤Ã¤¿¥¢¥È¥à¤Î¥Õ¥¡¥ó¥¯¥¿¤òµ­²±
      • hylink_unify2: µ­²±¤·¤¿¥Ú¥¢¤ÎÊ»¹ç¤ò¸½ºßËì+»Ò¹ËìÁ´¤Æ¤ËÂФ·¤Æ¹Ô¤Ê¤¦
  • ¤â¤í¤â¤í¤Îµ­Ë¡¤ò¤½¤í¤½¤í·è¤á¤Æ¤¤¤­¤¿¤¤¤È¤³¤í
    • ¿·µ¬À¸À®¡§hL¤Ç¤¤¤¤¤Î¤«¡¢°ú¿ô¤Ï¼è¤ë¤«
      • ¥ê¥ó¥¯Ì¾¤Ê¤é¤Ì¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯Ì¾¤ÏÂåɽÍ×ÁǤǤ¤¤¤¤È¤¹¤ë(°ú¿ô¤ò¼è¤é¤Ê¤¤)¤È¡¢ÂåɽÍ×ÁǤÎ̵¤¤hylink(¤Ä¤Þ¤ê̵¸þ)¤Ï̵̾¤·¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯(ÆâÉôŪ¤Ë¤Ï°ì°Õ¤Îid¤Ê¤ê¤¬ÉÕ¤¯)¤Ë¤Ê¤ë
        a(hL) <==> a('$hL0') ¤È¤«?
  • Ê»¹ç¡§hylinkƱ»Î¤òÀܳ¤¹¤ë¤ï¤±¤À¤«¤é¡¢=¤¬¼«Á³¡©
    • unifylinksÌ¿Îá
      $hL = $hL
  • hylink¤ÎÈæ³Ó
    a($p), b($q) :- $p = $q | ...
    a($p), b($p) :- ...  
    • ¾å¤ÎÊý¤òºÎÍѤ·¤Æ¡¢¥Þ¥Ã¥Á¥ó¥°ºÇŬ²½¤Ë¤Ä¤¤¤Æ¤ÏÆâÉô¤Ç´èÄ¥¤é¤»¤ëÊý¤¬¤¤¤¤¤Î¤«¤â
  • ¤æ¤¯¤æ¤¯¤Ï°À­ÉÕ¤­ÊÑ¿ô¤òɽ¸½¤¹¤ë(¤·¤¿¤¤)
    • °À­¤Î¾ðÊó¤Ï³¬ÁؤË°¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤È»×¤¦
    • °À­¤òɽ¤¹¥¢¥È¥à¤ò¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¥¢¥È¥à(²¾)¤ËľÀÜ·Ò¤²¤ë¤ä¤êÊý¤Ï¤Á¤ç¤Ã¤È̵Íý¤¬¤¢¤ë¤«¤Ê

2010-06-28

  • ÂÎÄ´°­¤¤

¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯

  • 5.Á´¤Æ¤ÎËì¤ËºîÍѤ¹¤ë¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¤ò½ñ¤¤¤Æ¤ß¤¿
    • hylink¤Îunion¤òɽ¸½¤Ç¤­¤ë

2010-06-25

¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯

  • ¾åÅÄÀèÀ¸¤È¤Î¸ÄÊÌ¥¼¥ß¤ò¸Ä¿ÍŪ¤ËÀ°Íý¤·¤Æ¤ß¤ë
    • hylink(¤«¤Ã¤³¤¤¤¤¤«¤é¡Ö¥Ï¥¤¥Ñ¡¼¡×¤Ã¤Æ¸À¤¤¤¿¤¤µ¤¤â¤¹¤ë)
  • ¼ÂÁõÊýË¡¤è¤êÀè¤Ë¤É¤¦¤¤¤¦µ¡Ç½¤ò»ý¤Ä¤Î¤«
    • (³ÈÄ¥)unary¥¢¥È¥à¤Çɽ¸½¤¹¤ë¤È¤·¤Æ¤Þ¤È¤á¤ë
      • ¥¢¥È¥à¤¬Ìܤ˸«¤¨¤Ê¤¤(Ãê¾ÝŪ¤Ê)·Á¤Ç¸ß¤¤¤ËÀܳ¤·¹ç¤Ã¤Æ¤¤¤ë
      • ¤Ä¤Þ¤ê¡¢º£¤Þ¤Ç¤ÎÍͤËËì¤Çɽ¤¹¤È
        a($h), b($h) :- ... .
        <==> a(H1), b(H2), h{+H1, +H2} :- ... .
  • µ¡Ç½
    1. hylink¤ò¿·µ¬À¸À®
      a(newhl), b(newhl) 
      --(ÆâÉôŪ¤Ë)--> a(hyperlink0), b(hyperlink0). ¤È¤«
    2. 2¤Ä¤Îhylink¤ÎÅù²ÁÀ­È½Äê
      a($p), b($q) :- $p = $q | a($p), b($p). ¤È¤«
    3. »ØÄꤷ¤¿hylink¤Î½Ð¸½¤ÎÎóµó
    4. »ØÄꤵ¤ì¤¿hylink¤Ë·Ò¤¬¤ë¥¢¥È¥à¤Î(¸úΨŪ)õº÷
      • unaryÊý¼°¤½¤Î¤Þ¤Þ¤Ç¤Ï¥Þ¥Ã¥Á¥ó¥°¸úΨ²½¤Ï¼Â¸½¤Ç¤­¤Ê¤¤
      • ŬÀڤʺ÷°ú(index)¹½Â¤¤Ê¤ó¤«¤¬¤¢¤ë¤È¤è¤¤
    5. »ØÄꤵ¤ì¤¿hylinkƱ»Î¤ÎÊ»¹ç(merge, union)
      • ¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥ÈŪ¤Ê¤â¤Î¤ÇÊ»¹ç¸µ¤Î¥¢¥È¥à¤òÊ»¹çÀè¤Î¥¢¥È¥à¤Ë½ñ¤­´¹¤¨¤ë
  • ºÇû¤Î¼ÂÁõ¤ò¹Í¤¨¤¿¤È¤­¡¢¤Þ¤º¤É¤ì¤ò¤ä¤ë¤«
    • 1. 5.

2010-06-24

hylink¡¢SLIM¦¤Î¤ß¤Ç¤ä¤ë¾ì¹ç

  • ¼Â¸½ÊýË¡¤¬¤¤¤¯¤Ä¤«¤¢¤ë(1-3¤ÏËì¤ò»È¤¦)
    1. ¥·¥¹¥Æ¥à¥ë¡¼¥ë¥»¥Ã¥È¡¢¥â¥¸¥å¡¼¥ë¤ÇºÑ¤Þ¤»¤ë
      a(!p) :- a(HL), {name(p), +HL}.
      • !¤òÉÕ¤±¤ë¤Î¤Ï¥¢¥È¥à¤Ê¤Î¤«¥ê¥ó¥¯¤Ê¤Î¤«
    2. Ãæ´ÖÌ¿ÎáÎó¤ÎÊÑ´¹
      		findatom    [1, 0, 'a'_1]
      		deref       [2, 1, 0, 0]
      		func           [2, '!p'_1]
      • funcÌ¿Îá¤ò¡¢Ëì¤ò»È¤Ã¤¿¹½Â¤¤òõ¤·¤Æ¤¯¤ëÌ¿ÎáÎó¤ËÊÑ´¹¤¹¤ë¤È¤«
    3. ¿·Ãæ´ÖÌ¿Îá
      • 2¤Ï¸½¾õ¤ÎÌ¿ÎáÎó¤ò³èÍÑ¡¢3¤ÏhylinkÍѤÎÌ¿ÎáÎó¤È¤·¤Æ¤Þ¤È¤á¤Æ¤·¤Þ¤¦
    4. ¿·¥Ç¡¼¥¿¹½Â¤¤ÎÄɲÃ
      • ÍͻҤò¸«¤Ê¤¬¤é

¤½¤Î¾

  • µ¤¤¬Áᤤ¤¬¡¢!µ­Ë¡¤òÆþ¤ì¤ë¤Ê¤é»²¹Í¤Ë
  • Ãæ´ÖÌ¿ÎáÎóį¤á¤ë
    • link @@ a(X), b(X) :- c(X), d(X).
      	--memmatch:
      		spec           [1, 3]
      		findatom    [1, 0, 'a'_1]
      		deref       [2, 1, 0, 0]
      		func           [2, 'b'_1]
      		jump           [L103, [0], [1, 2], []]
    • hlink @@ a(X), b(Y), {+X, +Y, $p} :- c(X), d(Y), {+X, +Y, $p}.
      	--memmatch:
      		spec           [1, 10]
      		findatom    [1, 0, 'a'_1]
      		deref       [2, 1, 0, 1]
      		func           [2, $out_2]
      		deref       [3, 2, 0, 0]
      		func           [3, $in_2]
      		deref       [5, 3, 1, 0]
      		func           [5, '+'_1]
      		lockmem     [4, 3, null]
      		norules        [4]
      		findatom    [6, 4, '+'_1]
      		neqatom        [6, 5]
      		deref       [7, 6, 0, 1]
      		func           [7, $in_2]
      		deref       [8, 7, 0, 0]
      		func           [8, $out_2]
      		deref       [9, 8, 1, 0]
      		func           [9, 'b'_1]
      		jump           [L136, [0, 4], [1, 9, 8, 2, 5, 6, 7, 3], []]
  • hlink¡¢Ã±¤Ê¤ëÌÑÁÛ
    a(!P), b(!P), c(!P), !-P = 3.
    • "!P"¤Ï¤Ê¤ó¤«Ë¿¥¨¥ì¥­¥Ð¥ó¤ò»×¤¤½Ð¤µ¤»¤ë
  • uniq for nd
    • ¤¤¤¯¤Ä¤«¤ÎÎã¤òÆ°¤«¤·¤Æ¤ß¤¿¤¬¡¢¤ª¤«¤·¤Ê¤È¤³¤í¤Ï¤Ê¤µ¤½¤¦
    • ¤¿¤À¾¤Ëϳ¤ì¤¬Ìµ¤¤¤«ÉÔ°Â


  • ¥ë¡¼¥ëʸ̮
    • ¥Ø¥Ã¥É¤Ë¥ë¡¼¥ëʸ̮2¸Ä½ñ¤¯¤È¥ë¡¼¥ë¥»¥Ã¥È½¸¹ç¤Ë2½Å¤Ë¥Þ¥Ã¥Á¥ó¥°¤¹¤ë»ö¤Ë¤Ê¤ë¤Î¤«¡¢ÃΤé¤Ê¤«¤Ã¤¿
      {rule1 @@ a:-b.}. {rule2 @@ c:-d.}.
      {@p}, {@q} :- r{@p, @q}. //2¤Ä¤ÎËì¤ò·ë¹ç
      r{@p, @q} :- @p, @q. 
      *---> @5,@5,@6,@6,@7

2010-06-23

»þ´Ö·×¬ÍÑcallback´Ø¿ô

  • &ref(): File not found: "timer.c" at page "¸¦µæÆü»ï¤È¤¦¤á¤­";
  • ÄɲäλÅÊý¡§SLIM callback´ØÏ¢ ¥á¥â
  • Ãæ¿È
    /* get_time function */
    
    # include <time.h>
    # include "../lmntal_ext.h"
    
    
    void gettime(ReactCxt rc,
                      LmnMembrane *mem,
                      LmnAtom a0, LmnLinkAttr t0)
    {
      double *t = LMN_MALLOC(double); 
    
      *t = (double)clock() / CLOCKS_PER_SEC;
    
      lmn_mem_newlink(mem,
                      a0, LMN_ATTR_MAKE_LINK(0), LMN_ATTR_GET_VALUE(t0),
                      (LmnWord)t, LMN_DBL_ATTR, 0); 
    
      lmn_mem_push_atom(mem, (LmnWord)t, LMN_DBL_ATTR);
    
    }
    
    void init_timer(void)
    {
      lmn_register_c_fun("gettime", gettime, 1);
    }
  • ¼Â¹ÔÎã(b¤Ø¤Î²Ã»»¤Ë¤«¤«¤ë»þ´Ö¤Î¤ß¬¤ë)
    a(0).
    a(A) :- A<500000, A1=A+1 | a(A1).
    a(500000) :- b(0), '$callback'(gettime, start).
    b(B) :- B<500000, B1=B+1 | b(B1).
    b(500000) :- '$callback'(gettime, end).
    end(X), start(Y) :- Z=X-.Y | time(Z).

2010-06-22

uniq for nd

  • Ëì¤Î¥À¥ó¥×(--nd)¤ËÂбþ¤·¤¿¡¢µ¤¤¬¤¹¤ë
    • Ë줬»ý¤Ä¥ë¡¼¥ë¥»¥Ã¥ÈÇÛÎó¤ò¥Ð¥¤¥Ê¥ê¥¹¥È¥ê¥ó¥°¤Ë½ñ¤­¹þ¤ó¤Ç¤¤¤ë
      • membrane.h¤Ë¥´¥ß¤¬Æþ¤Ã¤Æ¤ë¤è!(gocho)
         atomlist_gelmn_mem_get_rulesett_record
      • ËÜÅö¤Ë¡¢¿½¤·(ά)
    • mem-enc¤ËÂбþ¤µ¤»¤ë¤Ê¤éÍúÎòɽ¤ÎÃæ¿È¤òÁ´Éô½ñ¤­¹þ¤Þ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤«¤â
  • ȯɽ»ñÎÁ
    • ³µÍפΤ¢¤È¤Ëȯɽ¤Îή¤ì¤òÃÖ¤¯¤Î¤âÃ桹¤¤¤¤¤«¤â

2010-06-21

  • Î×»þÈÉ¥¼¥ß
    • hyper link¡¢flatLMNtal¤òÂоݤˤ¹¤ëÊý¸þ¤Ç

2010-06-20

  • callback´Ø¿ô³«È¯¥á¥â
    • rev349_2¤ò¥Æ¥¹¥ÈÍѤË

2010-06-16

  • SWI-Prolog¥á¥â
    -L0 : local stack no limit
    -G0 : global stack ...
  • ½Û´Ä¥°¥é¥Õ¤òÀ¸À®¤·¤Æ°ì¼þé¤ë¡¢¤â¤¦¤Á¤ç¤Ã¤ÈºÙ¤«¤¯
    N1000200040005000600070008000
    atom0.020.020.050.08
    mem0.060.140.470.921.652.844.89

2010-06-15

¥¼¥ßȯɽ½ªÎ»

  • ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
  • Ëì¤òhlink¤È¤¹¤ë¤È¡¢¤É¤³¤«¤Î³¬ÁؤË°¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¤Ï
    • ¤É¤³¤Î³¬Áؤˤâ°¤µ¤Ê¤¤¡¢¤«¤Ä¼«Í³¤Ë»²¾È¤Ç¤­¤ë¤è¤¦¤Ê²¿¤«¤¬¤¢¤ë¤È¤¤¤¤
    • ¥Û¥ó¥È¤Ïint·¿¤È¤«¤â¤É¤³¤«¤Ë°¤·¤Æ¤¤¤ë¤³¤È¤Ï˾¤Þ¤·¤¯¤Ê¤¤
  • "-"¤Î̵¤¤¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ï¤¢¤ó¤Þ¤¤¤é¤Ê¤¤¤ó¤¸¤ã?
    • ¥Î¡¼¥ÉÈֹ椬¤¢¤ë¥°¥é¥Õ¤ÏËܼÁŪ¤Ë¤¦¤ì¤·¤¯¤Ê¤¤
    • Ãê¾Ý²½¤Î¤¿¤á¤Ë¤Ï¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤
  • ºÇŬ²½¡¢¤È¤¤¤¦Â¦Ì̤«¤é¤Ê¤é¤â¤Ã¤È½èÍý·ÏÆâÉô¤ò¤¤¤¸¤Ã¤¿¤Û¤¦¤¬¸ú²Ì½Ð¤ë
    • ¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ä¤ë°ÕµÁ¤ò¤â¤¦¤Á¤ç¤Ã¤È¹­¤¯¿¼¤¯¹Í¤¨¤Ê¤±¤ì¤Ð

2010-06-11

ºòÆü¤ÎÈÉ¥¼¥ß¥á¥â

  • ¿Âп¡¢¤È¤¤¤¦É½¸½¤Ï¤Ê¤ó¤«¤ª¤«¤·¤¤
  • +¤ÎÊý¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¤·¤Æʸ»ú¿ô¸º¤é¤¹¤È¤«
  • ³¬ÁØ̵»ë¤ÇºîÍѤ¹¤ë¥ë¡¼¥ë¤¬Ìµ¤¤
  • ¥ë¡¼¥È¤«¤é¤Î¥×¥í¥­¥·¥¢¥È¥à¤Î¥Ä¥ê¡¼¤òºî¤ë¤È¤«
  • ½¸¹ç±é»»¤Îµ¡Ç½¤¬¤¢¤ó¤Þ¤ê¤Ê¤¤¡¢ËìÆâ¤Î¥¢¥È¥à¿ô¤¬Ê¬¤«¤ë¤È¤«

2010-06-10

hyperlink : ÌÑÁÛ

  • Ʊ¤¸¥ê¥ó¥¯Ì¾¤Î3²ó°Ê¾å¤Î½Ð¸½¤òµö¤¹¡¢¤È¤¹¤ë
    • =ÆâÉôŪ¤Ë¤Ï·Ú¤¤Ëì¤Çhyperlink¤òɽ¸½¤·¤Æ¤¤¤ë¡¢¤È¤¹¤ë
  • ¤³¤ÎÆó¤Ä¤Îɽ¸½¤òʬ¤±¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤Ç¤Ï
    • a.¿¿ô¤È¿¿ô¤ÎÀܳ´Ø·¸(¿Âп)
    • b.¿¿ô¤¬°ì¤Ä¤Î¶¦Ḁ̈ǡ¼¥¿¤ò»²¾È¤·¤Æ¤¤¤ë(¿Âаì)
      • b¤Ï¤É¤Á¤é¤«¤È¤¤¤¦¤È¶¦Í­ÊÑ¿ôŪ¤Ê´¶¤¸¡¢¤È¤ê¤¢¤¨¤º¥Ç¡¼¥¿¤ÎÊѹ¹ÊýË¡¤Ï¸å²ó¤·
  • ¤Þ¤º¤Ï¸½¾õ¤Î(flat¤Ê)LMNtal¤Ç¤Ç¤­¤½¤¦¤Ê¤³¤È¤À¤±
  • a.
1.
%Âçʸ»úËì̾¤Ï̵Íý¤À¤±¤É
a(!+P), b(!+P), c(!+P).  %% a(!P+), a(+!P).
<==> 
a(L1), b(L2), c(L3), P{+L1, +L2, +L3}.

2.
a(!+P), b(!+P), c.
a(!+X), b(!+X), c :- a(!+X), b(!+X), c(!+X).
<==>
a(L1), b(L2), P{+L1, +L2}, c.
a(L1), b(L2), P{+L1, +L2, $p}, c
  :- a(L1), b(L2), c(L3), P{+L1, +L2, +L3, $p}.

3.
%a,b¤Èc¤¬Æ±¤¸½¸¹ç¤Ë°¤¹¤ë¤«¤òÄ´¤Ù¤ë
a(!+P), b(!+P), c(!+Q).
a(!+X), b(!+X), c(!+Y)
  :- !+X \= !+Y | a(!+X), b(!+X), ok(!+Y).
<==>
%_A, _B¤ÏËì̾ÊÑ¿ô¤ß¤¿¤¤¤Ê¤â¤Î¤È¤¹¤ë
a(L1), b(L2), P{+L1, +L2}, c(L3), Q{+L3}.
a(L1), b(L2), _A{+L1, +L2, $p}, c(L3), _B{+L3, $q}
  :- _A \= _B | 
  a(L1), b(L2), _A{+L1, +L2, $p}, ok(L3), _B{+L3, $q}.
  %%Èæ³Ó¤Î¸úΨ¤òÎɤ¯¤Ç¤­¤Ê¤¤¤«

9. %ËìÆâ¤Î+¤Î¸Ä¿ô¤ò¥¬¡¼¥É¾ò·ï¤Ë¤¹¤ë
   %java¤Ë¤ÏËìÆ⥢¥È¥à¿ô¤ò¿ô¤¨¤ë¥¬¡¼¥É¤¬¤¢¤ë?
a(!*P) :- !*P > 3 | ok(!*P).
<==>
a(X), _A{+X, $p} 
  :- \+($p=("-", $pp)), atomnum? > 3 | ok(X), _A{+X, $p}
  • b. -:[0,1]¸Ä, +:[1,inf]¸Ä¤È¤¹¤ë ( -L ¤Ï "-"(L) )
4.
%¶¦Í­ÊÑ¿ô¤Ø¤ÎÃͤÎÂåÆþ¡¢¤Î¤è¤¦¤Ê
a(!+P), b(!+P), !-P = 3.
<==> 
a(L1), b(L2), data(3, D), P{+L1, +L2, -D}.

5.
a(!-X) :- !-X =:= 3 | ok(!-X).
<==>
a(X), data(V, Y), _A{+X, -Y, $p} 
  :- V=:=3 | ok(X), data(V, Y), _A{+X, -Y, $p}.

  %¤³¤ì¤Ï¤É¤¦¤Ê¤ë¤ó¤À¤í¤¦...
  a(!+X) :- ground(!+X) | ok(!+X).

6.1.
%¡Ö¤³¤Î¶¦Í­ÊÑ¿ô¤ËÃͤ¬Â«Çû¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é5¤òÂåÆþ¤¹¤ë¡×
a(!-X) :- nonvar(!-X), !-X = 5 | a(!-X).
<==>
a(L), _A{+L, $p} :- 
  \+($p=("-"(A), $pp)) | a(L), data(5, D), _A{+L, -D, $p}.

6.2.
%¡Ö¤³¤Î¶¦Í­ÊÑ¿ô¤ËÃͤ¬Â«Çû¤µ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é5¤òÂåÆþ¤¹¤ë¡×
a(!-X) :- nonvar(!-X), !-X = 5 | a(!-X).
<==>
a(L), _A{+L, $p} :- 
  \+($p=("-"(A), $pp)) | a(L), data(5, D), _A{+L, -D, $p}.
  • ¤³¤ì¤é¤ò³¬Áع½Â¤¤¬¤¢¤ëÃæ¤Ç¤ä¤ë¤¹¤ë¤È¤³¤ì¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ë
    • c.Ǥ°Õ³¬Áؤ«¤éÅù¤·¤¯»²¾È¤Ç¤­¤ë(¥ë¡¼¥ë¤ÇÁàºî¤Ç¤­¤ë)
      • °ìÈÖ¤ä¤Ã¤«¤¤¤«¤Ê
  • c.
7.
a(!+P), {b(!+P)}, !-P = 3.
<==>
a(L1), {b(L2)}, data(3, D), P{+L1, +L2, -D}.

%b¤¬¤¢¤ëËìÆâ¤Ç
b(!-X) :- int(!-X) | ok(!-X). 
<==>
b(X) ... %% ̵Íý
  • (b-3¤È)c¤¬¸½¾õ¤ÎLMNtal¤Ç¤Ï¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¡¢¤«¤Ê
    • ¤½¤â¤½¤â³¬ÁØ¥¯¥é¥¹¥¿¥°¥é¥Õ(¤À¤Ã¤±?)¤Ëhyperlink¤¬¤¢¤ë¤È¤¤¤¦¤Î¤Ï¡¢¤É¤¦¤Ê¤ë¤ó¤À¤í¤¦
    • ¥×¥í¥­¥·¥¢¥È¥à¤ò¤¦¤Þ¤¯Æþ¤ì¤ë¤³¤È¤Ç¤É¤¦¤Ë¤«¤Ê¤é¤Ê¤¤¤«¤Ê¤¡
    • data¤Ë¥Ç¡¼¥¿¥¢¥È¥à¤¬·ë¤Ó¤Ä¤¤¤Æ¤¤¤ë¤È¤­¤ÏÇÛÎó¤Ç´ÉÍý¤È¤«

2010-06-09

  • ·Ú¤¤Ëì¤òÆþ¤ì¤ë¤È¤¹¤ë¤È
    • +/-¥¢¥È¥à¤Î¤ß»ý¤Æ¤ë
    • »ÒËì¡¢¥ë¡¼¥ë¤Ï»ý¤Æ¤Ê¤¤
      • ¤³¤ÎÊÕ¤ê¤Ï¤º¤Ã¤È¸À¤ï¤ì¤Æ¤ë¤³¤È
    • ¿³¬Áؤ«¤é(Åù¤·¤¯)»²¾È¤Ç¤­¤ë
      • ¥°¥í¡¼¥Ð¥ëÊÑ¿ôŪ¤Ê¡¢¥×¥í¥­¥·¥¢¥È¥à¤òÄ´À᤹¤ë¤³¤È¤Ç¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤«
    • (¤Ê¤ó¤é¤«¤Î·Á¤Çdata¤ò»ý¤Ã¤Æ¤ë¤È¤·¤Æ)Ʊ¤¸data»ý¤Ä¤â¤ÎƱ»Î¤ò¤É¤¦°·¤¦¤Î¤«
      • Ʊ¤¸¤Ê¤é·ë¹ç¤µ¤»¤ë¤Î¤«¡¢
      • ·Ú¤¤Ë켫ÂΤδÉÍýÊýË¡¤ËÂ礭¤¯´Ø¤ï¤Ã¤Æ¤¯¤ë
    • »²¾È¥«¥¦¥ó¥È(+¥¢¥È¥à¤Î¿ô)¤òÍøÍÑ
    • ¥Ñ¥é¥á¥¿ÉÕ¤±¤Ë¤è¤ëÆþ½ÐÎÏ¡¢¶¦Í­/Èó¶¦Í­¤Îɽ¸½
      • ¾åÅÄÀèÀ¸¤ÎÏÀʸ(¤³¤ì¤Î19ÈÖ64ËçÌܤ¢¤¿¤ê)¤Ë¤¢¤ë¤±¤É¤â
  • Ëì ¢ª ·Ú¤¤Ëì(ÆâÉô¹½Â¤¡¢Ã±½ã¤Ë)
    ¿ÆËì¤Ø¤Î*p          
    ·»ÄïËì¤Ø¤Î*p        
    Âåɽ»ÒËì¤Ø¤Î*p      ¢ª ÇÑ»ß
    Ž±ŽÄŽÑŽØŽ½ŽÄ´ÉÍýŽÊŽ¯Ž¼Ž­ŽÃŽ°ŽÌŽÞŽÙ ¢ª -/+´ÉÍý¤Î¤ß¤ÇºÑ¤à
    Ž±ŽÄŽÑ¿ô               
    ŽÙŽ°ŽÙŽ¾Ž¯ŽÄÇÛÎó          ¢ª ÇÑ»ß

2010-06-08

  • ¥¼¥ßȯɽ»ñÎÁºîÀ®¤ò»î¤ß¤ë

2010-06-04

  • ̵¤«¤Ã¤¿Íýͳ¤È¤·¤Æ¡¢Ëì¤ò»È¤¨¤Ð½ñ¤±¤Á¤ã¤¦¤«¤éɬÍפʤ¤¤Ç¤·¤ç¡¢¤¬¤¢¤ë
  • º£¤ÎËì¤Î¤Þ¤Þ¤¸¤ã¤¤¤±¤Ê¤¤Íýͳ¤ò¤Ï¤Ã¤­¤ê¤µ¤»¤Æ¤ª¤¯
    • ¥ê¥ó¥¯Æ±»Î¤ÎÀáÅÀ¤Ë»È¤¦¤Ë¤Ï½Å¤¤
    • ¤É¤Î³¬Áؤ«¤é¤âÅù¤·¤¯»²¾È¤Ç¤­¤ë¤è¤¦¤Ê(¥°¥í¡¼¥Ð¥ë¤Ê)¤³¤È¤Ï½ÐÍè¤Ê¤¤(¤ä¤ê¤Ë¤¯¤¤¡©¤ä¤í¤¦¤È»×¤¨¤Ð½ÐÍ褽¤¦¤«¤Ê..)
      • ºÇ½é¤Ï¥Õ¥é¥Ã¥È¤Ê¾ì¹ç¤òÁÛÄꤷ¤¿Êý¤¬¤¤¤¤¤ó¤À¤í¤¦¤±¤É¡¢
    • (LMN¥ë¡¼¥ë¤Ç)Ʊ¤¸Í×ÁǤò»ý¤ÄËì¤ò·ë¹ç¤¹¤ë»þ¤ËO(Ëì¤Î¿ô^2)¤Ë¤Ê¤ë¤ó¤¸¤ã¡©

ubuntu : µ¯Æ°¤Ç¤­¤Ê¤¤

  • ¹¹¿·¤·¤¿¤éboot»þ¤Ëgrub²èÌ̤ˤʤäƵ¯Æ°¤·¤Ê¤¯¤Ê¤Ã¤¿
    01,grub>ls
    02,grub>ls (hdX,Y)             #find ubuntu partition
    03,grub>insmod ntfs           #load ntfs module
    04,grub>set root=(hdX,Y)
    05,grub>ls $Boot                   #find BOOT partition's UUID
    06,grub>search --no-floppy --fs-uuid --set xxxxx # 05¤Ç½Ð¤¿UUID¤Î¸å¤í¤Îʸ»úÎó 
    07,grub>loopback loop0 /ubuntu/disks/root.disk 
    08,grub>set root=(loop0)       #reset loop to loop0
    09,grub>linux /boot/vmlinuzxxxxxxxxx  root=/dev/sda1 loop=/ubuntu/disks/root.disk ro #load kernel
    10,grub>initrd /boot/initrd.imgxxxxxxxxxxxx
    11,grub>boot 
  • ¤Ç̵»öÉü³è
  • ¤¢¤È¤Ïubuntu¾å¤ÇÁ°²ó¤ÈƱ¤¸¤è¤¦¤Ë¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó2.6.31-20¤è¤ê¿·¤·¤¤¤ä¤Ä¤ò¥³¥á¥ó¥È¥¢¥¦¥È

2010-06-03 2

ÈÉ¥¼¥ß¤Ë¤Æ

  • ¤ä¤Ã¤Ñ¤êËì¤ò¥æ¥Ë¥ª¥ó¤¹¤ë¡¢¤¢¤ë¤¤¤Ï¤½¤ì¤ËÁêÅö¤¹¤ë²¿¤«¤¬¤¢¤Ã¤¿¤Û¤¦¤¬¤¤¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«
    • ÉáÄ̤ÎËì¤è¤ê¤â·Ú¤¤Ëì¡¢¤¢¤ë¤¤¤Ï¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤¬¤Û¤·¤¤¤«¤â¤·¤ì¤Ê¤¤
    • ¤É¤¦¤¤¤¦¥ë¡¼¥ë¤Ë¤Ê¤Ã¤¿¤é¥¨¥ì¥¬¥ó¥È¤Ê¤Î¤«¡¢¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë¤È¤¤¤¤¤«¤â
    • ¸«¤¿ÌܤÏÊÑ¿ô3¤Äµö¤¹¤±¤É¡¢¼Â¤Ï·Ú¤¤Ëì¤ò²ð¤·¤Æ¤¤¤ë¤è¤¦¤Ê¥·¥ó¥¿¥Ã¥¯¥¹¥·¥å¥¬¡¼¤Ï¤¢¤ë¤È¤¦¤ì¤·¤¤¤«¤â

2010-06-03

CHR : dijkstra(optimize) ¬¤ê¤Ê¤ª¤·

  • ¥¯¥¨¥ê¤ÏRand4 (edge=node*4)
    node128256512102420484096
    normal0.230.662.168.42out of stack
    type/mode_array0.130.311.223.86out of stack
    lmn(ÁÇľ¤Ëencode)7.9547.21320.722719.33

Ëì¤Ë¤è¤ëµ¼»÷¶¦Í­ÊÑ¿ô¤Ë¤Ä¤¤¤Æ(ºòÆü¤Î³¤­)

  • ºòÆü¤Ï½é´ü¥°¥é¥Õ¤òÀ¸À®¤¹¤ë»þ¤Ë¡¢´û¤ËÊÑ¿ô(Ëì)¤È¥¢¥È¥à¤¬·ë¤Ó¤Ä¤¤¤¿¾õÂÖ¤ÇÀ¸À®¤·¤Æ¤¤¤¿¡£¤¬¡¢¼ÂºÝ¤Îlmn¥×¥í¥°¥é¥à¤Ç»È¤ª¤¦¤È»×¤¦¤È¡¢(ñ½ã¤Ë¹Í¤¨¤Æ¤À¤±¤É)Î㤨¤Ð1¤ò»ý¤Ä¥¢¥È¥à¤ò
    a(1) :- a(A), {value(1), +A}.
  • ¤È¤¤¤¦´¶¤¸¤ÇÊÑ´¹¤·¤¿¸å¤Ë¡¢value(1)¤ò»ý¤ÄË줬ʣ¿ô¤¢¤ì¤Ð·ë¹ç¤¹¤ë¡á¶¦Í­ÊÑ¿ô²½¤¹¤ë¤È¤¤¤¦ºî¶È¤¬Æþ¤Ã¤Æ¤¯¤ë¡£
    {value(X), $p}, {value(Y), $q} :- X=:=Y | {value(X), $p, $q}.
  • ¤³¤ì¤¸¤ã·ë¶É¡¢ºòÆü¤Î'lmn'¥ë¡¼¥ë¤ß¤¿¤¤¤Ë¥¬¡¼¥É¤ÇÀ°¿ô¤òÈæ³Ó¤¹¤ëºî¶È¤òÁ´¤Æ¤ÎÃͤËÂФ·¤Æ¹Ô¤¦É¬Íפ¬½Ð¤Æ¤¯¤ëÌõ¤Ç¡¢·×»»ÎÌŪ¤Ë¤Ï²¿¤â²þÁ±¤µ¤ì¤Ê¤¤¤ó¤¸¤ã¤Ê¤«¤í¤¦¤«¡£
    • ¤Á¤Ê¤ß¤Ëvar module¤ò»È¤¦¤È¡¢(ºÇ°­¤Î¾ì¹ç¤Ç)n=10000¤Ç155.21[sec]¤À¤Ã¤¿¡£
  • ¤Ç¡¢¤Þ¤¡¤½¤ì¤¬¥Ç¡¼¥¿(Ëì)¤Îunion¤ÎÏä˷Ҥ¬¤ê¤½¤¦¤Ê¤Ê¤µ¤½¤¦¤Ê¡£

CHR¤Î¥¨¥ó¥³¡¼¥É¤Ç¤É¤¦¤·¤Æ¤âËì¤ò»È¤Ã¤Æ¤·¤Þ¤¦Îã

  • a¤òÁ´¤Æ¾Ã¤·¤¿¸å¤Ëflag¤ò¾Ã¤¹¡£
  • chr
    a, a, a, flag.
    flag \ a <=> true.
    flag <=> true.
  • lmn
    {
      a, a, a, flag.
      flag, a :- flag.
    }.
    {flag, @p}/ :- .

2010-06-02

¼Â¸³ : LMNtal vs CHR (À°¿ô¤ÎÈæ³Ó)

  • Ʊ¤¸Ãͤò»ý¤Ä¥¢¥È¥à¤ÎÁȤò¸«¤Ä¤±¤Æ¾Ã¤¹
  • lmn(SLIM rev354) -O3
    % A,B¤ÎÃͤò¥¬¡¼¥É¤ÇÈæ³Ó
    lmn  @@ a(A), b(B) :- A=:=B | .
    % A,B¤¬Åù¤·¤¤¤³¤È¤¬¥Ø¥Ã¥É¤Çʬ¤«¤Ã¤Æ¤¤¤ë
    lmnV @@ a(A), b(B), {value(N), +A, +B} :- int(N) | .
  • chr(SWI-prolog 5.8.3)
    % À©Ìó¤ÎÀë¸À¤Ïmode/type̵¤·¡¢mode/typeÍ­¤ê¡¢mode/type(dense_int)¤Î»°¼ïÎà
    chr @ a(X), b(X) <=> true.
  • ¥¯¥¨¥ê(·×»»Î̺ǰ­¤Ë¤Ê¤ë¤è¤¦¤Ë)
    %lmn¤Èchr3¼ïÎàÍÑ
    a(1), a(2), ..., a(N).
    b(N), b(N-1), ..., b(1).
    
    %lmnVÍÑ
    a(A1), b(B1), {value(1), +A1, +B1}, ...(NÈÖÌܤޤÇ)
  • ¼Â¹Ô»þ´Ö(sec.)
    N10000200004000080000
    lmn1.023.9816.0966.76O(N^2)
    lmnV0.090.150.300.57O(N)
    chr5.4025.57105.49out of stackO(N^2)
    chr(mode/type)0.120.250.521.28O(N)
    chr(mode/type_array)0.080.200.390.80O(N)
    • ¤³¤ÎÎãÂê¤Ë´Ø¤·¤Æ¤Ï¡¢Ëì¤ò»È¤Ã¤Æµ¼»÷Ū¤Ê¶¦Í­ÊÑ¿ô¤òɽ¸½¤·¤¿SLIM¤ÎÊý¤¬¼ã´³Áᤤ
    • ¤¿¤ÀËì¤ÇÊÑ¿ô¤òɽ¤¹¤È¡¢Ê£¿ô¤Î³¬Áش֤Ƕ¦Í­¤µ¤»¤ë¤³¤È¤ÏÆñ¤·¤¤¤ó¤¸¤ã¤Ê¤«¤í¤¦¤«
    • ¤Þ¤¿º£²ó¤ÏlmnV¤ÏO(1)¤ÇƱ¤¸Ãͤò¸«¤Ä¤±¤Æ¤³¤ì¤ë¤¬¡¢¤è¤ê¿¤¯¤Î¥¢¥È¥à(À©Ìó)¤¬¶¦Ä̤ÎÊÑ¿ô¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤

CHR : option

:- chr_option(Option, Value).
  • Option = check_guard_bindings, Value = on/off
    • off : default
    • on : ¥ë¡¼¥ë¤Î¥¬¡¼¥É¤ÇÊÑ¿ô¤Ø¤Îillegal¤Ê«Çû¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¼Â¹ÔÃæÃÇ
    • Î㤨¤Ð¼¡¤Î¥ë¡¼¥ë¤Ëquery1, query2¤ò¤½¤ì¤¾¤ìÍ¿¤¨¤ë¤È°Ê²¼¤ÎÍÍ
    start(X) <=> X=1 | end(X).
    
    % query1 : Àµ¾ï (X¤ÎÃͤÈ1¤ò'Èæ³Ó'¤·¤Æ¤¤¤ë)
    start(1), start(2). 
    *---> end(1), start(2).
    
    % query2 : ÃæÃÇ (X¤È¤¤¤¦ÊÑ¿ô¤Ë1¤ò'«Çû'¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë)
    start(X). 
    *---> 
    start(_G25417)
    X = _G25417{user = ...} ;
    No
  • Option = optimize, Value = full/off
    • off : default
    • full : all available optimizations
    • ¢­¤Îdebug¥â¡¼¥É¤È°ì½ï¤Ë¤Ï»È¤¨¤Ê¤¤
      • off¤Èfull¤ÎÃæ´Ö¤Ï̵¤¤¤ó¤À¤í¤¦¤«¡©
  • Option = debug, Value = on/off
    on  : default
    off : optimize¤ò»È¤¦¤È¤­¤Ï¼«Æ°Åª¤Ë¤³¤ì¡©

CHR : ¤½¤Î¾

  • ERROR: =</2: Arguments are not sufficiently instantiated
    • =< ¤ÎÎÊÑ¿ô¤ËÃͤ¬Â«Çû¤µ¤ì¤Æ¤¤¤Ê¤¤
  • findall_constraint/3¡¡(shceduling.pl)
    • Ææ¡£

2010-06-01

CHR : optimize option

  • type/mode¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡ª
    • ¼Â¹Ô¥ª¥×¥·¥ç¥ó¤Ä¤±¤Ê¤­¤ã¤¤¤±¤Ê¤«¤Ã¤¿¡¢½ñ¤¤¤È¤±¤è¤½¤¦¤¤¤¦¤Î¡ª
      :- chr_option(optimize, full)
    • on¤äoff¤Ç¤â¤Ê¤¯¡¢full¤Ê¤Î¤¬¤è¤±¤¤Ê¬¤«¤ê¤Ë¤¯¤¯¤·¤Æ¤¤¤ë
    • ¤Á¤ç¤Ã¤È¬¤Ã¤¿¤À¤±¤À¤¬¡¢À°¿ô¤ò°·¤¦¥×¥í¥°¥é¥à¤¬ÁêÅö¤Ë®¤¯¤Ê¤Ã¤Æ¤¤¤ëÍͻҡ¢ÌÀÆü¬¤í¤¦

¥Ò¡¼¥×

  • order¤Ï¼¡¿ô¤ÈÌõ¤¹¤Î¤¬¼«Á³¡©

2010-05-28

CHR : Union-Find algorithm

  • ¤È¤ê¤¢¤¨¤ºÌäÂê¤ÎÆâÍƤò¤â¤¦°ìÅÙÍý²ò
  • ñ½ã¤Ê¤â¤Î¡¢ºÇŬ²½¤µ¤ì¤¿¤â¤Î¤òlmn¤Ë¥¨¥ó¥³¡¼¥É
    • ½¸¹ç¤òËì¤Çɽ¤¹¤³¤È¤Ï²Äǽ¤Ê¤ó¤À¤í¤¦¤«¡©

memo

  • »²¾È¥«¥¦¥ó¥È¡¢¥Þ¡¼¥¯¥¢¥ó¥É¥¹¥¤¡¼¥×

2010-05-27

CHR : dijkstra¤Îtype/mode

  • ÏÀʸ¤ÎÊý¤Ç¤Ïtype/mode¤Î̵ͭ¤Ç·×»»Î̤¬ÊѲ½¤·¤Æ¤¤¤ë¤¬¡¢¼ê¸µ¤ÎSWIprolog¤Ç¤ÏÆ°¤¤¤Æ¤¤¤ë¤Î¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤
    • dense_int¤ò»È¤¦¤È¼Â¹Ô»þ´Ö¤¬ÊѤï¤ë¡ÊµÕ¤ËÃÙ¤¯¤Ê¤Ã¤¿¤±¤É¡Ë·ë²Ì¤¬¤¢¤Ã¤¿¤«¤é¡¢²¿¤é¤«¤Î±Æ¶Á¤Ï½Ð¤Æ¤¤¤ë¤è¤¦¤À¡¢¤Ç¤âÆæ
  • ¾¤Ë¤ÏUnion-find¤Ç¤âIndex¤¬»È¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À

CHR : partner(passive)constraint¤Îõº÷

  • ¶¦Í­¤ÎÊÑ¿ô¤ò¤¦¤Þ¤¯ÍøÍѤ·¤Æ¥Ñ¡¼¥È¥Ê¡¼¤Îõº÷¤òÁ᤯¤·¤Æ¤Û¤·¤¤¡¢Ã¯¤«¤Ë

2010-05-26

OpenOffice?:Âпô¥°¥é¥Õ

  • ½ñ¼°¢ª¼´¢ªY¼´¢ª¥¹¥±¡¼¥ë¥¿¥Ö

2010-05-24

  • ¤¤¤í¤¤¤íÀ°Íý

dense_int

  • ¥Ï¥Ã¥·¥å¥Ù¡¼¥¹¤ÎÀ©Ì󥹥ȥ¢¤È¤ÏÊ̤ˡ¢ÇÛÎó·Á¼°¤ÎÀ©Ì󥹥ȥ¢¤òÍÑ°Õ¤·¡¢¤½¤³¤Ëdense_int·¿¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤·¤Æ³ÊǼ¤¹¤ë
    • ¥Ï¥Ã¥·¥å¤Î·×»»²ó¿ô¤ò¸º¤é¤»¤ë¡¢¾×ÆͤòÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë
    • ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë»È¤ï¤ì¤ëÀ°¿ô¤Î¸Ä¿ô¤¬[0,n]´Ö¤Ç¤¢¤ëÄøÅÙ¿¤¤(Ç»¤¤=dense)¾ì¹ç¤Ë¸ú²Ì¤òȯ´ø¤¹¤ë¡¢¤é¤·¤¤
  • Indexing tequnic¤È¤Î´Ø·¸¤ò¤â¤¦¾¯¤·¸«¤¿¤¤
    • chapter 9 join ordering¤â»²¹ÍÄøÅÙ¤Ë
  • dijkstra_fheap¤Î·×¬

¤Û¤«

  • prolog¤Î¥Þ¥Ã¥Á¥ó¥°¤Ï¤É¤¦¤Ê¤Ã¤Æ¤ë¡©
  • edge(X,Y)·Á¼°¤À¤È·×»»Î̤Ϥɤ¦¤·¤Æ¤â¿¤¯¤Ê¤ë
    • ¥¢¥È¥à¤Î°ú¿ô¤Î¿ô¤ò¥ë¡¼¥ë¤Î¾ò·ï¤Ë¤Ç¤­¤¿¤é...

2010-05-19

callback : graph_gen_nocycle_uniq

  • dijkstra¤Î¥×¥í¥°¥é¥à¤ÏÍ¿¤¨¤ë¥°¥é¥Õ¤Ë¿§¡¹Ãíʸ¤¬Â¿¤¤
  • ÊÄϩ̵¤·¤«¤ÄƱ¤¸edge¤¬2¤Ä°Ê¾å¸ºß¤·¤Ê¤¤¥°¥é¥Õ¤òÀ¸À®
    • ´Ø¿ô̾¤¬¤ª¤â¤¤¤Ä¤«¤Ê¤¤
void graph_gen_nocycle_uniq(ReactCxt rc,
               LmnMembrane *mem,
               LmnAtom a0, LmnLinkAttr t0,
               LmnAtom a1, LmnLinkAttr t1,
               LmnAtom a2, LmnLinkAttr t2,
               LmnAtom a3, LmnLinkAttr t3)
{
  int n = (int)a1, m = (int)a2, r = (int)a3;

  LmnSAtom sa;
  const char *s;


  if (LMN_ATTR_IS_DATA(t0)) {
    switch (t0) {
    case LMN_INT_ATTR:
      break;
    case LMN_DBL_ATTR:
      break;
    default:
      break;
    }
  } else { /* symbol atom */
    s = (const char *)LMN_SATOM_STR(a0);
  } 

  int a[m], b[m];
  int i, j, k, flag = 0;
  srand(time(NULL)); 

  for (i = 0; i < m; i++) {
    a[i] = rand() % n + 1;
    if (a[i] == 100) a[i]--;
    b[i] = a[i] + rand() % (n - (a[i] - 1));
    if (a[i] == b[i]) a[i]--;
  } 


  while(!flag){
    flag = 1;
    for (i = 0; i < m; i++) {
      for (j = 0; j < m; j++) {
        if (i != j && a[j] == a[i] && b[j] == b[i]) {
          a[j] = a[j] / 2;
          b[j] = a[j] + rand() % (n - a[j]) + 1;
          flag = 0;
        }
      }
    }
  }

  for (i = 0; i < m; i++){

    sa = lmn_mem_newatom(mem, lmn_functor_intern(ANONYMOUS,
                                                 lmn_intern(s),
                                                 3)
                         );
    k = rand() % r + 1;
    lmn_mem_newlink(mem,
                    sa, LMN_ATTR_MAKE_LINK(0), 0,
                    (LmnWord)a[i], LMN_INT_ATTR, 0);
    lmn_mem_push_atom(mem, a[i], LMN_INT_ATTR);
    lmn_mem_newlink(mem,
                    sa, LMN_ATTR_MAKE_LINK(0), 1,
                    (LmnWord)b[i], LMN_INT_ATTR, 1);
    lmn_mem_push_atom(mem, b[i], LMN_INT_ATTR);
    lmn_mem_newlink(mem,
                    sa, LMN_ATTR_MAKE_LINK(0), 2,
                    (LmnWord)k, LMN_INT_ATTR, 2);
    lmn_mem_push_atom(mem, k, LMN_INT_ATTR);
  }

  lmn_mem_delete_atom(mem, a0, t0);
  lmn_mem_delete_atom(mem, a1, t1);
  lmn_mem_delete_atom(mem, a2, t2);
  lmn_mem_delete_atom(mem, a3, t3);
} 

2010-05-18

  • 25.

2010-05-17

prolog : setof

  • listdom.pl¤Ç¤Î½¸¹çÍ×ÁǤβû»
    ...
    all_addition(L1,L2,L3) :- setof(Z, X^Y^(member(X,L1), member(Y,L2), Z is X + Y), L3).
    ...
    • ¼ÂÁõ¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«Ä´¤Ù¤¿¤±¤É¤è¤¯¤ï¤«¤é¤Ê¤«¤Ã¤¿
    • ¤¿¤ÀŤµN¤Î¥ê¥¹¥È¤ËÂФ·¤ÆO(N^2)¤À¤Ã¤¿¤Î¤Ç¡¢ÆÃÊÌÊѤï¤Ã¤¿¼ÂÁõ¤¸¤ã¤Ê¤µ¤½¤¦¡©
      • LMNtal¤Ç¤â¤ä¤Ã¤Ñ¤êN^2¤¬ºÇ®¤À¤í¤¦¤«

2010-05-14

CHR¤Îlistdom.pl

  • X lt Y ¤Ã¤Æñ¤Ëmax(X)<max(Y)¤Ê¤ó¤À¤í¤¦¤«¡¢¾¯¤Ê¤¯¤È¤â¼Â¹Ô·ë²Ì¤Ï¤½¤¦¤ß¤¨¤ë
  • ¤À¤È¤·¤Æ¤â¤Ê¤ó¤À¤«¤Á¤ã¤ó¤È½ñ¤«¤ì¤Æ¤Ê¤¤µ¤¤¬¤¹¤ë¤Ê

UNYO¤Î¥Ð¥°¡©¡Ê´û¤ËÊó¹ð¤µ¤ì¤Æ¤¤¤¿¡Ë


  • LE1.3.5¤ËƱÉõ¤µ¤ì¤Æ¤¤¤ëUNYO3G¤Ç¤Î¸½¾Ý
  • ¡ÖÍ×ÁǤ¬°ì¤Ä°Ê¾åÆþ¤Ã¤Æ¤¤¤ë(¶õ( [] )¤¸¤ã¤Ê¤¤)¥ê¥¹¥È¡×¤Ë¥Þ¥Ã¥Á¤¹¤ë¤è¤¦¤Ê¥ë¡¼¥ë¤ò½ñ¤­¤¿¤¯¤Ærule1¤ÎÍͤˤ·¤¿
list(x, [1,2,3]), list(x, [4,5,6]).

rule1 @@ %¶õ¤¸¤ã¤Ê¤¤¥ê¥¹¥È¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ë¡¼¥ë
list(X1, [Y1 | L1]), list(X2, [Y2 | L2]) :- X1 = X2 |
  merge(X1, [Y1 | L1], [Y2 | L2]).

rule2 @@ %rule1¤òŬÍѸ塢ŬÍѤµ¤ì¤ë¥ë¡¼¥ë
merge(X, L1, L2) :- ground(L1), ground(L2) | end(X).
  • Java¡¢SLIM¤Ç¼Â¹Ô¤¹¤ë¤ÈÀµ¾ï¤À¤¬¡¢¤³¤ì¤òUNYO¤ÇÆ°¤«¤¹¤È¤Ê¤ó¤«¥ê¥ó¥¯¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤¿

    #ref(): File not found: "unyo_bug.png" at page "¸¦µæÆü»ï¤È¤¦¤á¤­"

[Step: 0]
list(x,[1,2,3]), list(x,[4,5,6])

[Step: 1]
merge(x,[1,2,3],[L1|L10]), '.'(6,[],L23), '.'(5,L23,L10), 4=[L1|L10]
  • ¤³¤Î¤¢¤Èrule2¤¬Å¬ÍѤµ¤ì¤ë¤ÈÍî¤Á¤ë
    • ground¥Á¥§¥Ã¥¯Ãæ¤Ë¥°¥é¥Õ¤¬ÅÓÃæ¤ÇÅÓÀÚ¤ì¤Æ¤ë¤«¤é¡©
  • 2G¤Ç¤âÍî¤Á¤¿¡ª
  • rule1¤Î¥¬¡¼¥É¡ÊX1=X2¡Ë¤¬´Ø·¸¤·¤Æ¤¤¤ë¤Î¤«¤â¡¢unary(X1), unary(X2)¤È¤«¤Ë¤¹¤ë¤ÈÂç¾æÉ×
    • list¤ò1²Á(list = [1,2,3]¤È¤«)¤Ë¤·¤Æ¡¢X1=X2¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤éÂç¾æÉפÀ¤Ã¤¿¡¢¤ä¤Ã¤Ñ¤êX1=X2¤¬¤¤¤±¤Ê¤¤¡©
    • merge¤ÎÂè°ì°ú¿ô¤ËX1¤òÆþ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤ÈÂç¾æÉס¢¥¢¥È¥à¤ÎºÆÍøÍѤ¬´Ø·¸¤·¤Æ¤¤¤ë¤Î¤«¡©
  • rule1¤ò¤³¤¦¤¹¤ì¤ÐÂç¾æÉפÀ¤±¤É¡¢¥ê¥ó¥¯¤ÎÀ褬¥ê¥¹¥È¹½Â¤¤Ê¤é¤Ð¥Þ¥Ã¥Á¤¹¤ë¤è¤¦¤Ê¥ë¡¼¥ë¤Î¤­¤ì¤¤¤Ê½ñ¤­Êý¤Ï¤Ê¤¤¤â¤Î¤«
    list(X1, L1), list(X2, L2) :- X1 = X2 | merge(X1, L1, L2).

2010-05-13

callback´Ø¿ô : integer_int2float

void integer_int2float(ReactCxt rc,
                       LmnMembrane *mem,
                       LmnAtom a0, LmnLinkAttr t0,
                       LmnAtom a1, LmnLinkAttr t1)
{
  int i = a0;
  double *d = LMN_MALLOC(double);
  *d = i * 1.0; 

  lmn_mem_newlink(mem,
                  a1, LMN_ATTR_MAKE_LINK(0), LMN_ATTR_GET_VALUE(t1),
                  (LmnWord)d, LMN_DBL_ATTR, 0);
  lmn_mem_push_atom(mem, (LmnWord)d, LMN_DBL_ATTR);

  lmn_mem_delete_atom(mem, a0, t0);
}

Prolog : delete

delete([1,3,2,3],3,X) ----> X = [1,2].

ÈÉ¥¼¥ß

  • °ì¤Ä¤ÎÎãÂê¤ò¤â¤¦¾¯¤·ºÙ¤«¤¯¸«¤Æ¤ß¤è¤¦
    • ¥Ç¡¼¥¿É½¸½¤ä¥ë¡¼¥ë¤Î¹©Éפʤ󤫤Ǥ³¤ì°Ê¾å²þÁ±¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤È¤³¤í¤Þ¤Ç¤â¤Ã¤Æ¤¤¤¯

2010-05-12

New CHR website

  • ¥ê¥Ë¥å¡¼¥¢¥ë¤µ¤ì¤Æ¤Æ¤Ó¤Ã¤¯¤ê

2010-05-11

CHR : \+ : and¤ÎÈÝÄê?

  • A=B¢ËC=D¤ÎÈÝÄê¤Ê¤Î¤Ç¡¢A\=B¢ÊC\=D¤«¤Ê¡¢¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤½¤¦¤Ê¤Ã¤Æ¤¤¤ëÍͤÀ
    ... <=> \+ (A=B, C=D) | ...

2010-05-09

listdom.pl : ¥¨¥ó¥³¡¼¥É´°Î»¡©

  • ¥¨¥ó¥³¡¼¥É¤Ç¤­¤¿¤È»×¤¦¡¢¤«¡¼Èè¤ì¤¿

2010-05-08

listdom.pl

lt : less than
le : less than or equal
ne : X ne Y, Y::[*]¤Ç*¤«¤éX¤ò¼è¤ê½Ð¤¹?

2010-05-07

callback´Ø¿ô : graph_gen

  • (Name, M, N, R)¤Ç1-R´Ö¤ÎÍð¿ô¤ò°ú¿ô¤Ë»ý¤ÄM²Á¤ÎName¥¢¥È¥à¤òN¸ÄÀ¸À®
/*
 * (Name, M, N, R):
 *
 *  Name    = symbol atome
 *  M, N, R = integer
 *
 *  Create random integer sets.
 *
 *            <------------- M --------------------->
 *  1) 'Name'(rand()%R+1, rand()%R+1, ..., rand()%R+1),
 *  2) 'Name'(rand()%R+1, rand()%R+1, ..., rand()%R+1),
 *                    ...
 *  N) 'Name'(rand()%R+1, rand()%R+1, ..., rand()%R+1).
 *
 */ 

void graph_gen(ReactCxt rc,
               LmnMembrane *mem,
               LmnAtom a0, LmnLinkAttr t0,
               LmnAtom a1, LmnLinkAttr t1,
               LmnAtom a2, LmnLinkAttr t2,
               LmnAtom a3, LmnLinkAttr t3)
{
  int m = (int)a1, n = (int)a2, r = (int)a3;
  int i, j, v; 

  LmnSAtom sa;
  const char *s;


  if (LMN_ATTR_IS_DATA(t0)) {
    switch (t0) {
    case LMN_INT_ATTR:
      break;
    case LMN_DBL_ATTR:
      break;
    default:
      break;
    }
  } else { /* symbol atom */
    s = (const char *)LMN_SATOM_STR(a0);
  }

  for (i = 0; i < n; i++){

    sa = lmn_mem_newatom(mem, lmn_functor_intern(ANONYMOUS,
                                                 lmn_intern(s),
                                                 m)
                         );

    for (j = 0; j < m; j++) {
      v = rand() % r + 1;
      lmn_mem_newlink(mem,
    		      sa, LMN_ATTR_MAKE_LINK(0), j,
	 	      v, LMN_INT_ATTR, j);
      lmn_mem_push_atom(mem, v, LMN_INT_ATTR);
    }

  }
 
  lmn_mem_delete_atom(mem, a0, t0);
  lmn_mem_delete_atom(mem, a1, t1);
  lmn_mem_delete_atom(mem, a2, t2);
  lmn_mem_delete_atom(mem, a3, t3); 

}
  • ¤³¤ó¤Ê´¶¤¸
'$callback'('graph_gen', edge, 3, 4, 10).
---->
edge(7,1,4). edge(4,8,6). edge(2,6,10). edge(1,5,10).

prolog : cut(!)

  • ¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤òÀ©¸æ¤¹¤ëcut¤Ë¤Ä¤¤¤Æ
    1) ticket(Age, Money) :- Age < 13, Money is 500.
    2) ticket(Age, Money) :- Money is 1000.
    • rule1¤¬ºÆ»î¹Ô¤·¤¿¤È¤­¤Ë¡¢Age¤Ë´Ø·¸Ìµ¤¯rule2¤¬É¾²Á¤µ¤ì¤Á¤ã¤¦
      1) ticket(Age, Money) :- Age < 13, Money is 500, !.
      2) ticket(Age, Money) :- Money is 1000.
    • ´¶Ã²Éä¤Ç¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤òÀ©¸æ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤

2010-05-07

callback´Ø¿ô¤ò¿¨¤Ã¤Æ¤ß¤¿


¤³¤ó¤Ê¤Î¤¬¤¢¤Ã¤¿¤Î¤«¡¢¥³¥í¥óµ­Ë¡¡©

x :: [1,2,3],
y :  [4.5.6].
---->
<Java½èÍý·Ï>  '::'(x,[1,2,3]). y:[4,5,6].  
<SLIM>        '.'(1,[2,3],'::'(x)). '.'(4,[5,6],':'(y)).
  • ¤³¤ì¤Ïerror
    [4.5.6] : y.
  • ¥Á¥ë¥À¤È¤«_¤È¤«¤â»î¤·¤Æ¤ß¤¿¤±¤É¡¢¤³¤¦¤¤¤¦É÷¤ËÆÃÊÌ°·¤¤¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ï¸«Åö¤¿¤é¤Ê¤«¤Ã¤¿


  • eclipse ¹ÔÈÖ¹æ¤Îɽ¼¨
    1. ¡Ö¥¦¥£¥ó¥É¥¦¡×>¡ÖÀßÄê¡×>¡Ö°ìÈÌ¡×>¡Ö¥¨¥Ç¥£¥¿¡×>¡Ö¥Æ¥­¥¹¥È¡¦¥¨¥Ç¥£¥¿¡×
    2. ¡Ö¹ÔÈÖ¹æ¤Îɽ¼¨¡×¤Ë¥Á¥§¥Ã¥¯

2010-05-06

CHR encoding

  • À©Ìó¥×¥í¥°¥é¥ß¥ó¥°Åª¤ÊÎãÂê¤òencode¥Ú¡¼¥¸¤ËŽ¤ÃÉÕ¤±¤ë
    • Ž¤ÃÉÕ¤±¤Æ¾¯¤·À°·Á¤·¤Æ¤ß¤¿
  • ¤ä¤ê¤«¤±
    • TM, RAM, Floyd-Warshall

2010-05-03

Floyd-WarshallË¡¤Î²òÀâ¤òÆɤó¤Ç¤ß¤¿

  • ¤¢¤Î¥¢¥ë¥´¥ê¥º¥à¤ò¤½¤Î¤Þ¤ÞLMNtal¤Ç½ñ¤±¤ë¤Î¤«
    • ½ñ¤±¤½¤¦¤«¤â¡©¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë
  • CHRʸ¸¥Æâ¤Î¥Ù¥ó¥Á¥Þ¡¼¥¯¤Ë¤¿¤Þ¤Ë"FLOYD-WARSH(N)"¤Æ¤Î¤¬¤¢¤ë¡¢¤è¤¯Ä´¤Ù¤ë

2010-05-02

ubuntu kernel panic!

  • ubuntu¤òupdate¤·¤ÆºÆµ¯Æ°¤·¤¿¤ékernel panic!
    • ¸¡º÷¤¹¤ë¤ÈLinux 2.6.31-21-generic¤Ç¤Ï³ä¤È¿¤¯µ¯¤³¤Ã¤Æ¤¤¤ë¤ß¤¿¤¤
    • GWÁ᡹¤¶¤±¤ó¤Ê¡¢¤È¤¤¤¦¤ï¤±¤Ç
      /boot/grub/grub.cfg¡¡¤Î
      Linux 2.6.31-21-generic¡¡¤ÎÉôʬ¤ò¥³¥á¥ó¥È¥¢¥¦¥È
    • ¤·¤Æ¤È¤ê¤¢¤¨¤º²óÈò
  • ubuntu¤ÎÆüËܸìÊÑ´¹¥Ñ¥Ë¥¯¤Ã¤Æ¤¤¤ë
    ¤ê¤è¤¦¤·¤ä¤¹¤¤¤«¤¿¤Á¤Ç
    ÍýÁÛ : ÍøÍѤ·°×¤¤·Á¤Ç
    ¸½¼Â : ÍýÍƻդ䥹¥¤¥«¤¿¤Á¤Ç
  • ÎØÆɤÎôÅöÉôʬ¤òÆɤó¤Ç¤ß¤¿
    • ¤Ê¤ó¤«¥×¥í¥»¥¹¤Ã¤Æ¸ÀÍÕ¤ÎÄêµÁ¤È¡¢Java¤Ç¤Ï¤É¤¦¤ä¤Ã¤Æ»È¤¦¤«¤ß¤¿¤¤¤ÊÏäФ䫤ê¤À¤Ã¤¿
    • ÎãÂê¤ò¤µ¤é¤Ã¤Èή¤·¤Æ¤·¤Þ¤Ã¤¿¤¬¡¢¸åĮʬ¤ÎÆâÍƤ¬Çö¤¤¤Ê¤é¤³¤³¤â¤Á¤ã¤ó¤È¥¹¥é¥¤¥É¤ËÀ¹¤ê¹þ¤ó¤À¤Û¤¦¤¬¤¤¤¤¤«¤È

2010-04-27

CHR encoding

  • CHR encoding¤Î¥Ú¡¼¥¸¤òÀ°·Á¤·¤Æ¤ß¤¿¤¬¡¢¤¦¤¦¤à
  • CHR¤Îʸ¸¥¤ò¤¢¤µ¤Ã¤Æ¤¤¤¿¤é¡¢¤¤¤¯¤Ä¤«¿·¤·¤¤ÎãÂê¤ò¸«¤Ä¤±¤¿¤Î¤Ç¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë
  • ÎØÆɤò˺¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤¤¤È


  • ¥­¥ä¥Î¥ó¤Î¥á¡¼¥ê¥¹ºî¤Ã¤¿

2010-04-26

¸À¸ìÈÉ¥í¡¼¥«¥ë/CHR encoding

  • ¤È¤ê¤¢¤¨¤ººî¤Ã¤Æ¤ß¤¿¤â¤Î¤Î¡¢¤É¤¦¤¤¤¦¥ì¥¤¥¢¥¦¥È¤Ë¤·¤¿¤é¤¤¤¤¤Î¤«Çº¤à

SLIM»þ´Ö·×¬

  • ¤Þ¤À¤Þ¤À¾¯¤Ê¤¤¤¬¡¢ÆʹӤǤޤȤá¤Æ¤ß¤¿
  • CHR¥×¥í¥°¥é¥à¤ËÍ¿¤¨¤ë¥¯¥¨¥ê¤ò¤É¤¦¤¹¤ë¤«¤Ç¤¤¤Ä¤âǺ¤à¤Î¤Ï¤Ê¤ó¤È¤«¤Ê¤é¤Ê¤¤¤â¤Î¤«

¤Û¤«

  • dijkstra¤Ï½Å¤ß¤¬ÈóÉé¿ô¤Î¾ì¹ç¤Î¤ß»È¤¨¤ë¡¢O(V^2)
  • Bellman-Ford¤ÏÈóÉé¿ô¤Ç¤âok¡¢O(V^3)
  • Warshall-Floyd¤ÏÈóÉé¿ôok¡¢¤Ç¤â¥µ¥¤¥¯¥ë¤ËÈóÉé¿ô¤¬¤¢¤ë¤È¥À¥á¡¢O(V^3)

2010-04-25

SLIM¾¸À¸ì¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥É¥­¥å¥á¥ó¥È

  • slim/doc/foreign.txt

system_ruleset¤Ècallback

  • ¤³¤ó¤ÊÉ÷¤ËÁȤ߹ç¤ï¤»¤ë¤È¤ª¤«¤·¤¯¤Ê¤ë¡¢¤¢¤¿¤ê¤Þ¤¨¤«
    '$callback'(integer_rand, N+1, H).

2010-04-24

graph_generator.c

  • ºî¤Ã¤Æ¤ß¤¿¡¢¸å²ù¤Ï¤·¤Æ¤¤¤Ê¤¤
    • ÃÏÌ£¤Ë½Å¤ßÉÕ¤±Í­¤ê̵¤·¤ä¡¢½ÐÎÏÀè¤òÁª¤Ù¤¿¤ê¤¹¤ë
    • ¤Ê¤¼LMNtal¤Ç½ñ¤«¤Ê¤¤¤Î¤«¡¢¤È¸À¤ï¤ì¤Æ¤âÆäËÍýͳ¤Ï¤Ê¤¤¤è
$ ./graph_generator
name of edge (string) : edge
node num (integer) : 5
edge num (integer) : 5
edges have weights? (yes:1 or no:0) : 1
max edge weights (integer) : 3
at random? (yes:1 or no:0) : 1
---------------------------------
edge(3, 2, 2). edge(1, 4, 2). edge(5, 3, 2). edge(3, 3, 2). edge(4, 5, 3).

UNIX

  • script¥³¥Þ¥ó¥É

2010-04-23

Canon»ö¶È½ê¸«³Ø²ñ

  • ³«È¯¿¦¤Ç¤âÍ×Áǵ»½Ñ¸¦µæŪ¤Ê»Å»ö¤â¤¢¤ë¡¢¤È¤¤¤¦¤Î¤Ï¤É¤³¤Î»ö¶È½ê¤âƱ¤¸¤é¤·¤¤
  • Canon¹ç³Ê¼Ô¤Î¥á¡¼¥ê¥¹Ã´Åö¤Ë¤Ê¤Ã¤¿¡£¾Ð

2010-04-22

Union Find

  • ¥¨¥ó¥³¡¼¥É¤·¤Æ¤ß¤¿¡¢¥¯¥¨¥ê¤È¤·¤ÆÊÑ¿ô¤ÏÍ¿¤¨¤é¤ì¤Ê¤¤¤±¤É

ºÇû·ÐÏ©ÌäÂê

  • ¥°¥é¥Õ¾å¤Î1ÅÀ¤«¤é¾¤ÎÁ´¤Æ¤ÎÅÀ¤Ø¤ÎºÇûµ÷Î¥¤òµá¤á¤ë
    • chr_sssp : Àè½µ¤ÎÁ´ÂÐÍÑ¤Î¥×¥í¥°¥é¥à¤ò¾¯¤·ÊѤ¨¤Æ¥Î¡¼¥É1¤«¤é¤ÎºÇû·ÐÏ©¤Î¤ß¤òµá¤á¤ë
      • ¤¿¤Ã¤¿¤Î2¥ë¡¼¥ë
      • O(N^7)¤Î¥×¥í¥°¥é¥à¤ò¡¢N¸Ä¤Î¥Î¡¼¥É¤«¤é¤Ç¤Ï¤Ê¤¯¥Î¡¼¥É1¤«¤é¤Îõº÷¤Î¤ß¤Ë¤·¤¿¤Î¤ÇO(N^6)
        node1020304050
        time0.021.1514.4783.96330.00
        t/(n/10)^60.0230.0180.0190.0200.021
  • chr_dijkstra_Fheap : ¥À¥¤¥¯¥¹¥È¥éË¡¡ÜÍ¥ÀèÅÙÉÕ¤­¥­¥å¡¼(¥Õ¥£¥Ü¥Ê¥Ã¥Á¥Ò¡¼¥×¤Çɽ¸½)
    • O(M+NlogN)¤ÇºÇ¤â®¤¤¤È¤µ¤ì¤Æ¤¤¤ëÊýË¡¡¢M¤Ï¥¨¥Ã¥¸¿ô
    • CHR¤Ç½ñ¤¤¤¿¤éO(N*I+M*D+N*E)¡¢I¤ä¤éD¤Ï¥ë¡¼¥ëŬÍѲó¿ô
    • dijkstra¡ÜFheap¥â¥¸¥å¡¼¥ë¤Ç26¥ë¡¼¥ë¤¯¤é¤¤¤¢¤ë
    • º£²ó¤Î¥¯¥¨¥ê¡ÊÍ­¸þ´°Á´¥°¥é¥Õ¡Ë¤Ç¤ÏO(N^4)¤è¤ê¼ã´³Ä㤤¤¯¤é¤¤¤Ë¤Ê¤ë¤Ï¤º
    • ¤Ê¤Ã¤Æ¤¿
      node102030405060
      time0.010.050.170.451.031.95
      t/(n/10)^40.010.003120.002130.001750.001640.00150

CHR¥×¥í¥°¥é¥ß¥ó¥°¡¢µ¤¤Ë¤Ê¤ë¤³¤È

  • CHR¤ÎÎãÂê¤Ë¤Ï¡Ö½èÍý·Ï¤Î¼ÂÁõÊýˡŪ¤Ë¥ë¡¼¥ë¤ÎŬÍѽç½ø¤Ï¤³¤¦¤Ê¤ë¤Ï¤º¡×¤ò¹Íθ¤·¤Æ¥×¥í¥°¥é¥ß¥ó¥°¤·¤Æ¤¤¤ë¤â¤Î¤¬Â¿¤¤µ¤¤¬¤¹¤ë(¤È¤¤¤¦¤«Ê¸¸¥¤È¤«¤ÇÌÀ¼¨¤·¤Æ¤¤¤ë)
    • Î㤨¤Ð¡¢¼¡¤Î2¤Ä¤Î¥ë¡¼¥ë¤Ï¾å¤«¤é½ç¤Ëɾ²Á¤µ¤ì¤ë
      • item¤¬¤¿¤¯¤µ¤ó¤¢¤ëÃæ¤Ëfindmin¤òÀ¸À®¤¹¤ë¤Èfindmin@¤¬°ìÄ̤ê¼Â¹Ô¤µ¤ì¡¢ºÇ¸å¤Ëfoundmin@¤¬¼Â¹Ô¤µ¤ì¤ë
    • ¤Ê¤ó¤«¤º¤ë¤¯¤Ê¤¤¤«¡¢Ê̤Ëitem¤¬¤¢¤Ã¤Æ¤âfoundmin@¤¬¼Â¹Ô¤µ¤ì¤Æ¤â¤¤¤¤¤Ï¤º¤Ç¤Ï
    • ¤½¤ì¤È¤âLMNtal¤Ç¤½¤¦¤¤¤¦½ñ¤­Êý¤·¤Ê¤¤¤Î¤ÏÇϼ¯ÀµÄ¾¤¹¤®¤ë¤Î¤À¤í¤¦¤«
      findmin  @ findmin, item(I,K,_,0,_) ==> min(I,K).
      foundmin @ findmin <=> true.

2010-04-21

dijkstra ¤Î¥¨¥ó¥³¡¼¥É½ª¤ï¤Ã¤¿

¤½¤Î¾

  • ¼²¬¡¦¸åÄ®¤ò°Ö¤á¤ë(?)²ñ
    • À¸ * 21ÇÕ / 3¿Í = 7 [ÇÕ/¿Í]
    • ¿ì¤¤¤Ã¤Æ»Ø¿ô´Ø¿ôŪ¤Ë¤¯¤ë¤è¤Í

2010-04-20

dijkstra's algorithm with F-heap

  • LMNtal¤Ë¥¨¥ó¥³¡¼¥ÉÃæ
  • Ëì¤ò»È¤¨¤Ð¤¦¤Þ¤¯¤Ç¤­¤½¤¦¤Êµ¤¤¬¤·¤Ê¤¯¤â¤Ê¤¯¤â¤Ê¤¤
  • memo
    - : ¾ï¤Ë̤«Çû¤ÎÊÑ¿ô
    + : ¾ï¤ËÃͤò«Çû¤µ¤ì¤¿ÊÑ¿ô
    ? : default. ¤É¤Ã¤Á¤Ë¤â¤Ê¤ê¤¦¤ë¡£
    int       : integer number
    dense_int : array index¤È¤·¤Æ»ÈÍѤǤ­¤ë
    number    : number
    float     : float
    any       : any 

2010-04-19

chr_path_N

  • All Pairs Shortest Path(APSP) problem¡§Á´ÂкÇû·ÐÏ©ÌäÂê
  • EPSON(Quad, 2.6GHz, RAM4GB)¤Ç¼Â¸³¤·¤Æ¤ß¤¿
    • ¥¯¥¨¥ê¤ÏÍ­¸þ´°Á´¥°¥é¥Õ
    • node:edge = n:(n^2-n)/2
      node102030405060
      time0.043.3456.94430.482075.187498.03
      t/(n/10)^70.040.26110.26030.26270.26560.2678
  • O(n^7)¤Ë¤Ê¤Ã¤Æ¤¿
    e(I,J1,A),e(J2,K,B) :- uniq(I,J1,K,A,B), ... | ... .
      n  n      n  n            n  n n
  • º£²ó¤Ï½Å¤ß¤ÏÁ´¤Æ1¤Ê¤Î¤Ç¡¢A,B¤Ë¤Ï1¤·¤«¤³¤Ê¤¤(2°Ê¾å¤Ë¤Ê¤ë¤È1ËÜÌܤΥ롼¥ë¤Ç¾Ã¤µ¤ì¤ë)

ÎãÂêÁý¤ä¤·

  • ¥À¥¤¥¯¥¹¥È¥é
    • ¥Õ¥£¥Ü¥Ê¥Ã¥Á¥Ò¡¼¥×¤òÍѤ¤¤¿ºÇŬ²½¤ÎÏÀʸ¡¢Æɤó¤Ç¤ß¤Æ¤ë
  • ¤¢¤È¤ÏUnion find¤È¤«¤¬¤¤¤¤¤«¤Ê

2010-04-18

CHR book

  • ¥Ñ¥¹À°¹ç¡¢¥¢¡¼¥¯À°¹çÊÕ¤ê¤òÆɤó¤À

2010-04-17

Propagation¤Èuniq¤Î°ã¤¤

  • CHR¤Ç¤è¤¯¤¢¤ë·ÐÏ©´Ø·¸¤Î¿ä°ÜÊÄÊñ¤òµá¤á¤ëÎã
    p1 @ e(X,Y) ==> p(X,Y).
    pn @ e(X,Y), p(Y,Z) ==> p(X,Z).
  • propagation rule¤ÏƱ°ì¤ÎÀ©Ìó(e¤äp)¤ËÂФ·¤Æ¹â¡¹°ì²óŬÍѤ¬µö¤µ¤ì¤ë¤¿¤á¡¢¤³¤ÎÎã¤Ëe(1,1)¤òÍ¿¤¨¤ë¤È»ß¤Þ¤é¤Ê¤¤
  • uniq¤ÏÊÑ¿ôX,Y¤ÎÁȤò¸«¤Æ¤¤¤ë¤Î¤Ç¡¢e(1,1)¤òÍ¿¤¨¤Æ¤â»ß¤Þ¤ë
  • ¤À¤«¤éÎãÂê¤Ë¤è¤Ã¤Æ¤Ï¡¢LMNtal¤ÎÊý¤¬·×»»²ó¿ô¤¬¾¯¤Ê¤¤½ñ¤­Êý¤Ç¤­¤ë¡¢µ¤¤¬¤¹¤ë

2010-04-16

ubuntu¤Çchr¤òÆ°¤«¤»¤¿

  • library²¼¤Ëchr¥Ç¥£¥ì¥¯¥È¥ê¤Èchr.pl¤¬Ìµ¤«¤Ã¤¿¤Î¤¬¸¶°ø
  • ¤¿¤Àñ½ã¤Ë¾¤Îswi-prolog¤«¤é»ý¤Ã¤Æ¤­¤Æ¤â¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¤³¤È¤¬Â¿¤¤
  • ¤È¤ê¤¢¤¨¤º¡¢°Ê²¼¤ÎÁȤ߹ç¤ï¤»¤Ê¤éÆ°¤¤¤¿
  1. http://www.swi-prolog.org/download/stable¤«¤é¼¡¤Î2¤Ä¤òÍî¤È¤·¤Æ¤¯¤ë
    • ¥ê¥¹¥È¤Î¾å¤ÎÊý¤Ë¤¢¤ëLinuxÍѤΥХ¤¥Ê¥ê
    • ²¼¤ÎÊý¤Ë¤¢¤ëSources
  2. Sources¤ÎÊý¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë
    % tar zxvf pl-<version>.tar.gz
    % cd pl-<version>/src
    % ./configure
    % make
    % [su root]
    % make install
    • ¤³¤³¤Ç¤È¤ê¤¨¤¢¤ºSWI-prolog¤¬Æ°¤¯¤«³Îǧ
      % pl
      Welcome to SWI-Prolog ...(ά)
      ?- 
    • chr¥é¥¤¥Ö¥é¥ê¤òÆɤ߹þ¤ó¤Ç¤ß¤ë
      ?- [library(chr)].
    • ¼¡¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬½Ð¤¿¤échr¥é¥¤¥Ö¥é¥ê¤¬Ìµ¤¤
      ERROR: source_sink `library(chr)' does not exist
  3. ¥Ð¥¤¥Ê¥ê¤ÎÊý¤«¤échr¥Õ¥©¥ë¥À,chr.pl¤ò»ý¤Ã¤Æ¤¯¤ë
    • pl-<version>.rpm¤òŬÅö¤Ê¾ì½ê¤Ë²òÅà
    • usr¥Õ¥©¥ë¥À¤¬½ÐÍè¤ë¤Î¤Ç¡¢
      ²òÅष¤¿¾ì½ê/usr/lib/pl-<version>/library/²¼¤Îchr¥Õ¥©¥ë¥À¤Èchr.pl
    • ¤ò¡¢
      /usr/local/lib/pl-5.8.3/library/
    • ¤Ë¥³¥Ô¡¼¤¹¤ë
  4. Sources¤ËÂФ·¤ÆºÆÅÙ¤Î1.¤Î./configure°Ê¹ß¤ò¼Â¹Ô
    • prolog¤òµ¯Æ°¤·¡¢
      ?- [library(chr)].
      % library(chr) compiled into chr 0.27 sec, 3,866,648 bytes
      true.s
    • ¤È¤Ê¤Ã¤¿¤é¤á¤Ç¤¿¤·¤á¤Ç¤¿¤·

2010-04-15ÈÉ¥¼¥ß¸å

¼¡½µ¤Þ¤Ç¤Ë

  • chr_path.lmn¤Î¬Äê¡¢¥ª¡¼¥À¡¼·×»»¤Ê¤É¤â¤í¤â¤í
    • warahall's algorithm
  • benchmark set¤ÎÍÑ°Õ

2010-04-15

-ÈÉ¥¼¥ßÍÑ¡§¤É¤ó¤ÊÎãÂê¤òÁ᤯¤·¤¿¤¤¤Î¤«

  • ¥í¥Ã¥¯¥Õ¥ê¡¼¤Ç¼ÂÁõ
    • STM¥Ù¡¼¥¹¡©
  • ºÇ½é¤Ï0or1²Á¤Î¥¢¥È¥à¤ä¥ê¥¹¥È¤ò°·¤¦ÎãÂê¡ÊËì̵¤·¤Ç¡Ë
  • CHRŪ¤Ê²¿¤«
    • ºÇû·ÐÏ©¡¢
  • NESL¤ÎÎãÂê¤Ï¤É¤¦¤«
    • quicksort¡§Æþ¤ì»Ò¥Ç¡¼¥¿ÊÂÎó

ubuntu¤Çlibrary(chr)¤¬¸Æ¤Ó½Ð¤»¤Æ¤¤¤Ê¤¤

  • Ä´¤Ù¤ë

2010-04-14

ubuntu

$ uname -a ¤Ç32or64¥Ó¥Ã¥ÈÈǤ«¸«Ê¬¤±¤é¤ì¤ë

Let's Note¤¬Ä¾¤Ã¤¿

  • ¥Ñ¥Ê¥½¥Ë¥Ã¥¯½¤Íý¹©Ë¼¡¢¥¤¥ó¥Ð¡¼¥¿¤Î¸Î¾ã(Í­ÎÁ)¤À¤Ã¤¿¤±¤É¡¢±Õ¾½¥Ñ¥Í¥ë¤Þ¤Ç¸ò´¹(̵ÎÁ)¤·¤Æ¤¯¤ì¤¿¡¢½ÐÍè¤ë

2010-04-13

SLIM¤Îrule trial¤Ë¤«¤«¤ë»þ´Ö(Ä̾ï¼Â¹Ô)

  • time_optimized_slim
  • ¼ê»ý¤Á¤ÎÎãÂê¤Ç¤¶¤Ã¤È¼è¤Ã¤Æ¤ß¤¿¡¢ÊÔ½¸Ãæ
  • ¤¢¤Ã¤Æ¤¤¤ë¤ó¤À¤í¤¦¤«

2010-04-09

  • ÀèÀ¸¤«¤éKLIC¤ä¤éCHR¤ò»È¤¨¤ë´Ä¶­¤ò¤É¤³¤«¤ËÍÑ°Õ¤·¤è¤¦¤È¤Î¤ªÏÃ
    • pave¤Ë¤ÏKLIC¤¬Æþ¤Ã¤Æ¤¤¤¿¡¢¤Ç¤â¤¦¤Þ¤¯Æ°¤«¤Ê¤«¤Ã¤¿
  • NIOLO¤ËÆþ¤ì¤Æ¤ß¤è¤¦¤È¤·¤¿
    • ÁªÂò»èÁª¤ó¤Ç¤¤¤Ã¤¿¤é¡¢ÅÓÃæ¤Ç̵¸Â¥ë¡¼¥×¤·¤¿¤Î¤Çº£Æü¤ÏÊüÃÖ
    • ¤Ç¤âgocho¤Îubuntu¤Ç¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤Þ¤Ç¤Ï¤¦¤Þ¤¯¤¤¤Ã¤Æ¤¿¡¢¥Ñ¥Ã¥ÁÅö¤Æ¤ì¤Ð¤¦¤Þ¤¯¤¤¤¯¡©
  • NESL¤ÎÏÀʸ¤ÎÆɤßÈô¤Ð¤·¤Æ¤¿¤È¤³¤í¤ò»×¤¤½Ð¤·¤¿¡¢ÌÀÆüÆɤà
    • ¤ä¤Ã¤Ñ¤ê¥¯¥¤¥Ã¥¯¥½¡¼¥ÈŪ¤ÊÎãÂê¤ò¤ä¤Ã¤Æ¤ß¤¿¤¤¤È¤Ï»×¤¦

2010-04-08

  • M2¥Ú¡¼¥¸ºî¤Ã¤Æ¤ß¤¿ [#f6ca3e7f]
  • ubuntu¤ò¿·¤·¤¤PC¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤¿ [#e4d9ba88]
  • KL1¤òÆ°¤«¤·¤Æ¤ß¤ë [#hbc9ed25]
    • KLIC¤Î¼ÂÁõ¤Ë¤Ä¤¤¤Æ
      • Inside KLIC¡ÊKLIC¤ÎHP¤«¤é¡ËÆüËܸì

¤¦¤á¤­

2010-08-05

  • 2010-08-05¹¹¿·
  • uedaÀèÀ¸?
    u: :-) or ±Ô°ÕÀ½ºîÃæ
  • M2
    i: (¢Ì ¡£¢Ì)
    s: (~¦Ø~ )
    a: (¡¦¢Ü¡¦^)
    o: (¡®¡Á¡®)
    g: (¡­^§Õ^)
    m: (¡®¢Ï¡­)
  • M1
    y: ¡ã(¡¦¦Ø¡¦ )¡ä¡¿
    y: (¡®¸ý¡­ ) or (¡®¡£¡­ )
    k: (o-¦Ø-o )
    s: (¡÷¢à¡÷ )
    s: (¢á¦Ø¢á )
    q: (^»®^ )
    n: (¡­¡÷_¡÷¡® ) ¢ª (¡­¡¡_¡¡¡® ) ¢ª (¡­_¡® ) ¢ª (No Image ) ¢ª (¡­¡ü_¡ü¡® )v 
    t: (¡®¦Å¡­ ) or ( ¡®§Ù¡­)

2010-04-09

  • ½Õ¤À
  • ÇϾì±Ø¼þÊÕ¤¬¿§¡¹ÊѤï¤Ã¤Æ¤Æ¤Ó¤Ã¤¯¤ê
  • ½¢¿¦³èÆ°½ªÎ»¡¢¸¦µæ¤¬¤ó¤Ð¤é¤Ê¤¤¤È
    • »³Ì¾ÀèÀ¸¤ÏÍ¥¤·¤«¤Ã¤¿¡¢Ê¸Ì̤¬hiroshi¤ÈƱ¤¸¤À¤Ã¤¿¤¬¡¢¤Ç¤âÍ¥¤·¤«¤Ã¤¿

2010-04-08

  • ¤¬¤ó¤Ð¤ê¤¿¤¤¡£