いかにしてサービスを効率よく利用するか
2024-04-04
azblob://2024/04/04/eyecatch/2024-04-04-how-service-efficiency-often-use-is-000.jpg

はじまして、2024年4月に入社した熊谷です。

初投稿・初ブログで拙いところがあるかもしれませんが、最後までお付き合いいただければ幸いです。

自己紹介


名前:熊谷 朋彦(くまがい ともひこ)

出身:愛知県

出身校:三重大学大学院

好きなもの:ゲーム、アニメ

プログラミング言語:C, C++, C#, TypeScript, Python

気軽に話しかけていただけると嬉しいです!

研究

日常の中で、色々な買い物する事や、飲食店を利用する事があると思います。

そのような買い物、飲食店の利用をサービスとして見なします。

例えば、スーパーであればお金を払えば物を買えるサービス、飲食店であればお金を払えば食べ物が提供されるサービス等です。

このようなサービスはそのサービスが持つ本来的な価値とともに、直前の行動による影響が大きいということに注目しました。

例えば、豆腐を買ったので、しばらくは豆腐を買わなくて良い、等です。

そのため、本来的な価値に重みを掛け、その価値を基に経路探索を行うということを定式化、また提案した問題の解法を提案しました。

解法

本研究では、「挿入法」と「焼きなまし法」の2つの近似解法を提案しました。

挿入法

挿入法は、ランダム性を含まない(同じ入力であれば、同じ出力が常に返ってくる)アルゴリズムです。

以下に詳細を示します。

1. 初期経路は、simple(出発地と目的地を結んだだけのサービスを含まない経路) とする。

2. 現在の経路のすべての辺に対し、各サービスそれぞれを挿入する。評価値の最も高いものを best とする。 

3. best が、挿入を行う前より評価値が高ければ、挿入して 2 に戻る。そうでなければ、終了する。

焼きなまし法

焼きなまし法は、挿入法とは逆にランダム性を含む(同じ入力であっても、同じ出力が常に返ってくるとは限らない)アルゴリズムです。

ランダム性を含む解法と含まない解法をC#で実装し実験して、評価を行いました。

個人開発

FlutterやReactを用いて以下のゲームを作りました。

色当てゲーム

  • Flutter
  • 他のセルと異なる色のセルを選ぶ。
  • 選んだセルが合っていれば、より難しい問題(RGBの差が小さい問題)を出題する。
  • 間違っていれば、正しいセルを「🚀」で表示し、今の問題より優しい問題を出題する。

カードゲーム

  • React
  • 効果の説明を自動で作りだし、実際の効果と説明が矛盾しないようにする
  • 例えば、ダメージを与える効果であれば、以下のパラメータからインスタンスを作る
    • 対象を選ぶのか、ランダムか、全体か
      • 対象を選ぶ、ランダムであれば、ダメージを与える体数はいくつか
    • ダメージ量
  • パッシブスキルなのか、アクティブスキルなのか
    • パッシブ:攻撃時などのタイミングを持つスキル
    • アクティブ:先ほどの「ダメージを与える効果」など
    • パッシブスキルは、タイミングとアクティブスキルを持つ

これから

いままで学んできたことを活かし、FIXERに貢献できるよう頑張っていきますので、よろしくお願いします!