はじまして、2024年4月に入社した熊谷です。
初投稿・初ブログで拙いところがあるかもしれませんが、最後までお付き合いいただければ幸いです。
自己紹介
名前:熊谷 朋彦(くまがい ともひこ)
出身:愛知県
出身校:三重大学大学院
好きなもの:ゲーム、アニメ
プログラミング言語:C, C++, C#, TypeScript, Python
気軽に話しかけていただけると嬉しいです!
研究
日常の中で、色々な買い物する事や、飲食店を利用する事があると思います。
そのような買い物、飲食店の利用をサービスとして見なします。
例えば、スーパーであればお金を払えば物を買えるサービス、飲食店であればお金を払えば食べ物が提供されるサービス等です。
このようなサービスはそのサービスが持つ本来的な価値とともに、直前の行動による影響が大きいということに注目しました。
例えば、豆腐を買ったので、しばらくは豆腐を買わなくて良い、等です。
そのため、本来的な価値に重みを掛け、その価値を基に経路探索を行うということを定式化、また提案した問題の解法を提案しました。
解法
本研究では、「挿入法」と「焼きなまし法」の2つの近似解法を提案しました。
挿入法
挿入法は、ランダム性を含まない(同じ入力であれば、同じ出力が常に返ってくる)アルゴリズムです。
以下に詳細を示します。
1. 初期経路は、simple(出発地と目的地を結んだだけのサービスを含まない経路) とする。
2. 現在の経路のすべての辺に対し、各サービスそれぞれを挿入する。評価値の最も高いものを best とする。
3. best が、挿入を行う前より評価値が高ければ、挿入して 2 に戻る。そうでなければ、終了する。
焼きなまし法
焼きなまし法は、挿入法とは逆にランダム性を含む(同じ入力であっても、同じ出力が常に返ってくるとは限らない)アルゴリズムです。
ランダム性を含む解法と含まない解法をC#で実装し実験して、評価を行いました。
個人開発
FlutterやReactを用いて以下のゲームを作りました。
色当てゲーム
- Flutter
- 他のセルと異なる色のセルを選ぶ。
- 選んだセルが合っていれば、より難しい問題(RGBの差が小さい問題)を出題する。
- 間違っていれば、正しいセルを「🚀」で表示し、今の問題より優しい問題を出題する。
カードゲーム
- React
- 効果の説明を自動で作りだし、実際の効果と説明が矛盾しないようにする
- 例えば、ダメージを与える効果であれば、以下のパラメータからインスタンスを作る
- 対象を選ぶのか、ランダムか、全体か
- 対象を選ぶ、ランダムであれば、ダメージを与える体数はいくつか
- ダメージ量
- 対象を選ぶのか、ランダムか、全体か
- パッシブスキルなのか、アクティブスキルなのか
- パッシブ:攻撃時などのタイミングを持つスキル
- アクティブ:先ほどの「ダメージを与える効果」など
- パッシブスキルは、タイミングとアクティブスキルを持つ
これから
いままで学んできたことを活かし、FIXERに貢献できるよう頑張っていきますので、よろしくお願いします!