エレファント・ビジュアライザー調査記録

ビジュアルプログラミングで数式の変形を表すことを考えていくブロクです。

2024-04-01から1ヶ月間の記事一覧

人工知能的代数学(10)

マグマの計算(4) 「エレファントな群とリー代数(2) - エレファント・ビジュアライザー調査記録」でやった「モノイドの左逆元・右逆元」の問題をやります。これも基本的には Python に書き換えただけになっています。前回のプログラムでは表示される式が多す…

人工知能的代数学(9)

マグマの計算(3) 前回の「マグマの左単位元と右単位元」では、等式の集合から推移律によって新しい等式の集合を作っていましたが、等式の数が多くなりすぎるので、「エレファントな群とリー代数(1) - エレファント・ビジュアライザー調査記録」と同様に一つ…

人工知能的代数学(8)

マグマの計算(2) 「マグマの左単位元と右単位元」の続きです。「推移閉包を求めるプログラム」は使えそうにないので、推移律を一回だけ適用するように変更しました。 class Exp: pass # Multiplication クラス class Multiplication(Exp): def __init__(self…

人工知能的代数学(7)

マグマの計算 「マグマの左単位元と右単位元」の問題の構文解析を ChatGPT でやってみるため以下のように入力しました。 「マグマ(二項演算をもつ代数的構造)の構文解析をするプログラムを書いてください: 演算子は * とします。 かっこを使えるとします。 …

人工知能的代数学(6)

交換子の計算(2) 「マグマの左単位元と右単位元」の問題の構文解析を ChatGPT でやってみようと入力したところ、「Lark ライブラリ」を使ったプログラムが返ってきました。そこでいったんこのプログラムを自分で改造して交換子の計算の構文解析をやってみる…

人工知能的代数学(5)

交換子の計算 以前引用した交換子の計算をするプログラムを作成しました。これは ChatGPT で「文字列を逆順にして、大文字を小文字に、小文字を大文字に変換したものを取得するプログラムを書いてください」と「文字列の中に「大文字とその文字の小文字」か…

人工知能的代数学(4)

プログラムの改造(2) 前回のプログラムに、互換に適用した場合のコメントを入れます。assert を入れようと思ったのですが、うまくできなかったのでコメントだけです。ChatGPT で assert とコメントを入れることができれば良いのですが、やり方がわからないの…

人工知能的代数学(3)

置換の分類(2) ChatGPT で以下のように入力しました。 置換を隣接互換の積に分解するプログラムを書いてください これは正しいプログラムを得ることができました。 def adjacent_transpositions(perm): """ 指定された置換を隣接互換の積に分解します。 :par…

人工知能的代数学(2)

置換の分類 Visual Studio でデザイナーが開けなくなったので、C# を使うのをやめて、Google Colab というのを使ってみました。これは Python を使うことになります。これにはプログラムを書いてくれる機能があって、「 を指定して、 次の対称群のすべての元…

人工知能的論理プログラミング(8)

理想的な並行論理プログラミング言語 「論理プログラミング」、「論理計算と随伴関手」、「半環上のフラクタル代数」、「フラクタル代数言語 Fractal」、「一階述語論理」などの内容です。以下のようなことを考察します。 Prolog のプログラムを「プログラム…

人工知能的写像の理論(1)

写像と同値類 ChatGPTでブログの記事を分析したものを書いてもらうというのはなかなか難しそうなので、ChatGPTでいろいろやりとりしながら、それを参考に記事の内容をまとめてみることにします。まず写像と同値類の関係についてまとめてみます。「群論の計算…

人工知能的代数学(1)

目標 ここでは「群論の計算」などで扱っている問題をChatGPTを使って書いていきます。まず、これは何のためにやっているのかを書きます。これはChatGPTではなかなかちゃんとした答えが返ってくるように書くのは難しいようなので、大まかなことは自分で書きま…

人工知能的論理プログラミング(7)

並行論理プログラミングと半環 「論理プログラミング」では PLP と PLP+ というプログラミング言語を考えています。PLP は「Prolog について」のところで書いたような理想的な並行 Prolog です。PLP+ はこれの無限に実行できるバージョンなのですが、PLP が…

人工知能的論理プログラミング(6)

半環について Prolog のプログラムは論理式と解釈できます。論理式の全体は分配束となります。分配束は(単位元の存在などを無視すると)半環となります。このブログでは Prolog のプログラムを半環を使って調べています。分配束を使って調べても良いのですが…

人工知能的論理プログラミング(5)

Prolog について Prolog について調査します。以下はChatGPTでいろいろ聞いてみたことの答えです。Prolog の本はあまり見つからないのでこの情報は役立ちます。 プログラミング言語 Prolog の詳しい仕様を教えてください Prolog(Programming in Logic)は、…

人工知能的論理プログラミング(4)

F# と Haskell のサンプル F# と Haskell でもサンプルを書いてもらいます。この理由は、このようなプログラムは F# では書くことができるが Prolog ではできないという予想で、Prolog にどのような機能を追加すればできるかをこのブログでは調べていたため…

人工知能的論理プログラミング(3)

Prolog のサンプル いったん Prolog で書いてもらうことにします。以下のように入力しました。 このプログラムを Prolog で書いてください 以下は回答です。 以下は、Prologで素数登録システムを実装するためのコード例です。このコードは、Prologの論理プロ…

人工知能的論理プログラミング(2)

すべて言葉で説明しようとするとうまくいかないということがわかってきたので、いったんサンプルプログラムを作ってもらうことにします。しかしプログラムを作ってもらうことは、今のところあまりうまくいっていません。以下のように入力しました。 サーバー…

人工知能的論理プログラミング(1)

ChatGPTで証明を書いてもらうことやプログラムを書いてもらうことは今のところ失敗しているので、ここで扱う問題について日本語で書いてもらうことにします。まず「論理プログラミング」などで扱っている問題について聞いてみます。 このブログの目標につい…