diff --git a/404.html b/404.html index 39e15760..6c623440 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/index.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/index.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/index.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/index.json diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/post/2021-03-19-brozozowski-algorithm.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/post/2021-03-19-brozozowski-algorithm.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/post/2021-03-19-brozozowski-algorithm.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/post/2021-03-19-brozozowski-algorithm.json diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/post/2021-04-02-hopcroft-algorithm.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/post/2021-04-02-hopcroft-algorithm.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/post/2021-04-02-hopcroft-algorithm.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/post/2021-04-02-hopcroft-algorithm.json diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/post/2022-03-11-move-to-next-js.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/post/2022-03-11-move-to-next-js.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/post/2022-03-11-move-to-next-js.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/post/2022-03-11-move-to-next-js.json diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/post/2022-03-21-javascript-crush.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/post/2022-03-21-javascript-crush.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/post/2022-03-21-javascript-crush.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/post/2022-03-21-javascript-crush.json diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/post/2022-04-25-og-image.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/post/2022-04-25-og-image.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/post/2022-04-25-og-image.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/post/2022-04-25-og-image.json diff --git a/_next/data/U-UJdNIAyc6IPOQINN5ci/post/2023-07-19-lstar.json b/_next/data/2LRDSXNZ8hcaAuqDKxzff/post/2023-07-19-lstar.json similarity index 100% rename from _next/data/U-UJdNIAyc6IPOQINN5ci/post/2023-07-19-lstar.json rename to _next/data/2LRDSXNZ8hcaAuqDKxzff/post/2023-07-19-lstar.json diff --git a/_next/static/U-UJdNIAyc6IPOQINN5ci/_buildManifest.js b/_next/static/2LRDSXNZ8hcaAuqDKxzff/_buildManifest.js similarity index 100% rename from _next/static/U-UJdNIAyc6IPOQINN5ci/_buildManifest.js rename to _next/static/2LRDSXNZ8hcaAuqDKxzff/_buildManifest.js diff --git a/_next/static/U-UJdNIAyc6IPOQINN5ci/_ssgManifest.js b/_next/static/2LRDSXNZ8hcaAuqDKxzff/_ssgManifest.js similarity index 100% rename from _next/static/U-UJdNIAyc6IPOQINN5ci/_ssgManifest.js rename to _next/static/2LRDSXNZ8hcaAuqDKxzff/_ssgManifest.js diff --git a/index.html b/index.html index e4bf54bf..3f4b766c 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

概要

@makenowjust の技術ブログです。

オートマトン理論や形式言語などの情報科学的なことや、JavaScript (フロントエンド) や Scala などの技術について書きます。

リポジトリ: https://github.com/makenowjust-labs/blog

記事

L*について説明してみる

Automata Learning とは、未知の (ブラックボックス) システムに対する入力とその出力から、システムの振舞いを有限状態オートマトンとして再現する手法です。 +makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

概要

@makenowjust の技術ブログです。

オートマトン理論や形式言語などの情報科学的なことや、JavaScript (フロントエンド) や Scala などの技術について書きます。

リポジトリ: https://github.com/makenowjust-labs/blog

記事

L*について説明してみる

Automata Learning とは、未知の (ブラックボックス) システムに対する入力とその出力から、システムの振舞いを有限状態オートマトンとして再現する手法です。 これは、仕様が形式化されていないシステムに対して形式的な手法を適用するための足掛りになるなど、近年重要な技術となっています。

Angluin によるLL\ast[1]は Automata Learning のアルゴリズムの中でも最も代表的な存在です。 LL\astは未知の正規言語を教師を使って学習するアルゴリズムで、多くの Automata Learning の基礎となっています。

@@ -27,4 +27,4 @@

以前 Qiita でこのアルゴリズムでどうして DFA の最小化が行なえるのかを説明したのですが(Brzozowski のアルゴリズム - なぜ DFA を 2 回反転すると最小化できるのか )、これによって構成される DFA がどのようなものなのかは説明していませんでした。 今回のこの記事では、Brozozowski のアルゴリズムで求まる最小 DFA がどのようなものなのかを別の角度から少し解説したいと思います。

-
2021-03-19

(C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

\ No newline at end of file +
2021-03-19
\ No newline at end of file diff --git a/post/2021-03-19-brozozowski-algorithm.html b/post/2021-03-19-brozozowski-algorithm.html index 9ecd92d6..0fe688a5 100644 --- a/post/2021-03-19-brozozowski-algorithm.html +++ b/post/2021-03-19-brozozowski-algorithm.html @@ -1,6 +1,6 @@ Brzozowski のアルゴリズムとは結局何なのか | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

Brzozowski のアルゴリズムとは結局何なのか

AA を言語 LL を受理する DFA とすると、D(R(D(R(A))))D(R(D(R(A)))) は言語 LL を受理する最小 DFA となります。 +この記事では、Brzozowski のアルゴリズムで求まる最小 DFA がどのようなものなのかを解説します。"/>

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

Brzozowski のアルゴリズムとは結局何なのか

AA を言語 LL を受理する DFA とすると、D(R(D(R(A))))D(R(D(R(A)))) は言語 LL を受理する最小 DFA となります。 ここで D(A)D(A) というのは部分集合構成法による決定化の処理で、R(A)R(A) は DFA の各遷移と初期状態・受理状態を反対にして NFA を求める処理を表します。 この 2 回のリバースと決定化を行う DFA の最小化アルゴリズムは Brozozowski のアルゴリズム として知られています。 Brzozowski 微分などで知られる Janusz Brzozowski が 1960 年代に発表したアルゴリズムです。

@@ -107,4 +107,4 @@

まとめ

さらに、最初の決定化をアトミックな NFA を求める処理 At(A)At(A) にする (つまり D(R(At(R(A)))))D(R(At(R(A)))))) ことで、多項式時間で最小 DFA を求められる ことが知られています。 この辺りの話も色々と興味深いので、いつか解説したいです。

それでは、この記事に最後まで目を通していただきありがとうございました。

-
2021-03-19

(C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

\ No newline at end of file +
2021-03-19
\ No newline at end of file diff --git a/post/2021-04-02-hopcroft-algorithm.html b/post/2021-04-02-hopcroft-algorithm.html index 058e1665..6839260a 100644 --- a/post/2021-04-02-hopcroft-algorithm.html +++ b/post/2021-04-02-hopcroft-algorithm.html @@ -1,6 +1,6 @@ Hopcroft のアルゴリズムについて | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

Hopcroft のアルゴリズムについて

前回の記事では DFA 最小化アルゴリズムとして Brzozowski のアルゴリズムを解説しました。 +Ruby による実装だけでなく、正しさの確認や計算量の解析も行います。"/>

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

Hopcroft のアルゴリズムについて

前回の記事では DFA 最小化アルゴリズムとして Brzozowski のアルゴリズムを解説しました。 今回は、別の最小化アルゴリズムとして Hopcroft のアルゴリズムについて解説します。

"Introduction to Automata Theory, Languages, and Computation" (日本語訳『オートマトン 言語理論 計算論』) の著者の一人として知られる John Hopcroft が 1971 年に発表したアルゴリズムです。 実装を工夫することで最悪計算量は DFA の状態数 nn に対して O(nlogn)O(n \log n) となることが知られています。 @@ -228,4 +228,4 @@

まとめ

論文には実装して行なった実験結果もあるのですが、実行環境が IBM System/360 モデル 67 とかで面白いです。 でもその時代のプログラムでも、そこそこの大きさに対してちゃんと動いたんだなと感心する部分もあります。

というわけで、この記事に最後まで目を通していただきありがとうございました。

-
2021-04-02

(C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

\ No newline at end of file +
2021-04-02
\ No newline at end of file diff --git a/post/2022-03-11-move-to-next-js.html b/post/2022-03-11-move-to-next-js.html index 954405a3..08d769c7 100644 --- a/post/2022-03-11-move-to-next-js.html +++ b/post/2022-03-11-move-to-next-js.html @@ -1,4 +1,4 @@ -ブログを Next.js へ移行しました | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

ブログを Next.js へ移行しました

元々は GatsbyJS で作られていたこのブログを、Next.js で書き直して復活させました。 +ブログを Next.js へ移行しました | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

ブログを Next.js へ移行しました

元々は GatsbyJS で作られていたこのブログを、Next.js で書き直して復活させました。 放置している間にもいくつか記事にしたい事柄があったのですが、元の仕組みでは記事を書く気が起きず、結果的に 1 年近く放置することになってしまいました。

この記事では「なぜ GatsbyJS から移行したのか」と「他のフレームワークを比較した結果」、そして「最終的な技術スタック」について説明します。

@@ -73,4 +73,4 @@

最終的な技術スタック

Cloudflare Pages とかも面白そうだなと思ったのですが、慣れてる方がいいだろうし、なんか色々あって結局 GitHub Pages に戻ってる気がしたからです。

この記事は以上になります。 最後まで目を通していただきありがとうございました。

-
2022-03-11

(C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

\ No newline at end of file +
2022-03-11
\ No newline at end of file diff --git a/post/2022-03-21-javascript-crush.html b/post/2022-03-21-javascript-crush.html index 069ffe2c..2d5030e1 100644 --- a/post/2022-03-21-javascript-crush.html +++ b/post/2022-03-21-javascript-crush.html @@ -1,6 +1,6 @@ JavaScript のソースコードを (意地でも) 小さくする技術 | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

JavaScript のソースコードを (意地でも) 小さくする技術

JavaScript のソースコードを小さくする方法として UglifyJSTerser といった minification ツールを用いるものが良く知られています。 +JS Crush や Roadroller について、その内部で使われているテクニックも含めて解説します。"/>

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

JavaScript のソースコードを (意地でも) 小さくする技術

JavaScript のソースコードを小さくする方法として UglifyJSTerser といった minification ツールを用いるものが良く知られています。 これらはソースコード中の空白やコメントを削除し、変数名などを短い形式にすることで、ソースコードを小さくしています。

こういった minification ツールを適用し、さらに GZip などで圧縮して配信するのが今日の Web での標準的な方法となっています。 ですが、JavaScript を圧縮できる可能性のある方法として、自己解凍的な圧縮技術を用いる、というアイディアがあります。

@@ -136,4 +136,4 @@

あとがき

誰か教えてください。

いつか書こうと思っていた h.js のタネ明かし記事を書けて良かったです。 最後まで目を通していただきありがとうございました。

-
2022-03-21

(C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

\ No newline at end of file +
2022-03-21
\ No newline at end of file diff --git a/post/2022-04-25-og-image.html b/post/2022-04-25-og-image.html index b9712e1a..5da725f7 100644 --- a/post/2022-04-25-og-image.html +++ b/post/2022-04-25-og-image.html @@ -1,6 +1,6 @@ OGP 画像の自動生成をする | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

OGP 画像の自動生成をする

前々から課題として感じていた、このブログの OGP 画像の自動生成を実装しました。 +skia-canvas や budoux などライブラリを使用したので、それらについて解説します。"/>

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

OGP 画像の自動生成をする

前々から課題として感じていた、このブログの OGP 画像の自動生成を実装しました。 OGP 画像は Twitter などの SNS にシェアするときに表示される画像です。

この記事では自動生成の実装や、skia-canvasbudoux といったライブラリを利用して、タイトルの自動改行や高速な生成を実現したので、それらについても解説します。

@@ -71,4 +71,4 @@

あとがき

記事を書いていて気付いたのですが、使用しているライブラリが Google にどっぷりな気がします。 Google に足を向けて眠れない‥‥。

というわけで、最後まで目を通していただきありがとうございました。

-
2022-04-25

(C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

\ No newline at end of file +
2022-04-25
\ No newline at end of file diff --git a/post/2023-07-19-lstar.html b/post/2023-07-19-lstar.html index 6ddc61f2..83049184 100644 --- a/post/2023-07-19-lstar.html +++ b/post/2023-07-19-lstar.html @@ -1,6 +1,6 @@ L*について説明してみる | makenowjust-labs/blog

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

L*について説明してみる

Automata Learning とは、未知の (ブラックボックス) システムに対する入力とその出力から、システムの振舞いを有限状態オートマトンとして再現する手法です。 +"/>

makenowjust-labs/blog

MakeNowJust Laboratory Tech Blog

L*について説明してみる

Automata Learning とは、未知の (ブラックボックス) システムに対する入力とその出力から、システムの振舞いを有限状態オートマトンとして再現する手法です。 これは、仕様が形式化されていないシステムに対して形式的な手法を適用するための足掛りになるなど、近年重要な技術となっています。

Angluin によるLL\ast[1]は Automata Learning のアルゴリズムの中でも最も代表的な存在です。 LL\astは未知の正規言語を教師を使って学習するアルゴリズムで、多くの Automata Learning の基礎となっています。

@@ -377,4 +377,4 @@

参考文献

  • Labbaf, Faezeh, et al. "Compositional Learning for Interleaving Parallel Automata." Foundations of Software Science and Computation Structures LNCS 13992 (2023): 413.
  • Neele, Thomas, and Matteo Sammartino. "Compositional Automata Learning of Synchronous Systems." International Conference on Fundamental Approaches to Software Engineering. Cham: Springer Nature Switzerland, 2023.
  • -
    2023-07-19

    (C) 2021-2022 TSUYUSATO "MakeNowJust" Kitsune

    \ No newline at end of file +
    2023-07-19
    \ No newline at end of file