見出し画像

AIによる観光アプリ 第1回:自作アプリ「鎌倉観光案内」の紹介

最近の私のnote、もはや私が何屋か分からなくなりつつあるので、そろそろソフトウェアエンジニアとしてガチなやつを書いておきます。
この記事を含めて5回分、自作アプリ「鎌倉観光案内」と、それを実現するAI(人工知能)の技術を紹介する予定です。
第1回の今回は、アプリの機能から紹介します。

鎌倉観光案内

大昔、Androidアプリの練習用に「鎌倉観光案内」というアプリを自作しました(AI技術は大学時代の研究からですが)。最近は更新をサボりすぎて検索にもヒットしなくなりましたが、一応、まだGoogle Playからダウンロードできるようです。

このアプリでは、観光地の好みや予定している観光時間を入力すると、それらの条件に合わせた、おすすめの観光コースを作成できます。観光コースの作成には、広い意味でAIの技術を応用しています。

最近、AIの世界はディープラーニングの一色に染まっていますが、広い意味でのAIの技術はそれだけではありません。今回のアプリで使われている主要技術は、メタヒューリスティクスの1つである遺伝的アルゴリズムです……と分かったようなことを書いてみるテスト。

アプリを起動すると、観光地の好みや観光時間などの条件を入力する画面が表示されます。

画像1

観光条件を入力し終わると、数秒間、スマホ上で計算が行われ、下の画面のように具体的な観光コースが提示されます。

画像2

画面に表示されている「おすすめ度」の星の数は、「観光地のお好み設定」の画面で入力した興味のパラメーターに合わせて変化します。
例えば名所を見たいと指定した人には、有名な「高徳院(鎌倉大仏)」や「鶴岡八幡宮」のおすすめ度が上がります。逆に、穴場が見たい人には、これらのおすすめ度が下がります。また、雨天を考慮したい場合には、博物館「鎌倉国宝館」などの屋根付きの施設のおすすめ度が上がります。

AIは指定した観光時間内で回ることができ、かつ、観光をより満喫できるコース(おすすめ度が高い観光地を多く回るコース)を組み立てます。ここでは、休館日や閉館時間も考慮されます。

一般的なAIアプリでは、このような流れでコースを作成して終わりですが、鎌倉観光案内では、さらに好みに合わせたチューニングもできます。
特に気になる観光地をピンポイントで「行きたい」と指定したり、興味がない観光地に「行かない」と指定したりできます。指定後に再計算すると、自分好みの観光コースに近づけることができます。

画像3

コースを作成してみる

アプリを使って、いくつかの条件で観光コースを作成してみました。

1日名所めぐり

9:00~18:00と、1日かけて名所をめぐるコースを作成してみました。
今見ると、多少詰め込み感があるコースですが、はじめて鎌倉に来るときにも安心しておすすめできるような内容になっていると思います。

9:00出発 長谷駅
  ↓ 徒歩移動 20分
9:20~10:00(40分) 高徳院(鎌倉大仏)
  ↓ 徒歩移動 20分
10:20~11:25(65分) 長谷寺
  ↓ 徒歩移動 15分
11:40~12:10(30分) 極楽寺
  ↓ 徒歩と電車移動&昼食(95分)
13:45~14:35(50分) 円覚寺
  ↓ 徒歩移動(25分)
15:00~15:45(45分) 建長寺
  ↓ 徒歩移動(15分)
16:00~16:50(50分) 鶴岡八幡宮
  ↓ 徒歩移動(5分)
16:55~18:00(65分) 小町通り/若宮大路

鎌倉の名所といえば、高徳院(鎌倉大仏)や、鶴岡八幡宮です。名所への興味を強めに設定しておくと、これらの観光地が選ばれやすくなります。
さらに、鎌倉で禅宗寺院の格式を表した「鎌倉五山」で、第一位とされる建長寺と第二位の円覚寺が、また、有名な長谷寺も選ばれています。
ちなみに、このコースを逆順にまわると、高徳院が観光終了の1時間前に閉門してしまうため、先に高徳院をまわるように調整されているあたりもポイントです。

1日名所めぐり(雨天用)

次に、雨天を考慮したコースを作成してみました。
観光時間や、名所指定の条件はそのままで、天候条件のみを変えています。

9:00出発 長谷駅
  ↓ 徒歩移動(20分)
9:20~10:05(45分) 高徳院(鎌倉大仏)
  ↓ 徒歩移動(15分)
10:20~11:25(65分) 長谷寺
  ↓ 徒歩と電車移動&昼食(95分)
13:00~13:35(35分) 東慶寺
  ↓ 徒歩移動(25分)
14:00~14:25(25分) 円応寺
  ↓ 徒歩移動(15分)
14:40~15:40(60分) 鎌倉国宝館
  ↓ 徒歩移動(5分)
15:45~16:30(45分) 鶴岡八幡宮
  ↓ 徒歩移動(25分)
16:55~18:00(65分) 御成通り

ここでは屋内を中心とした観光地が選択されています。
ここに提示されている観光地は、一見すると雨天が関係ないようも見えますが、高徳院では大仏の胎内の拝観や、みやげ物店でのショッピングが楽しめます。また、長谷寺は食事処が、東慶寺はショップが併設されているほか、円応寺は屋内の閻魔大王坐像を参拝するなど、雨天でもそれなりに楽しめるコースが生成されています。
間違ってもハイキングコースなどは出てこない……と思います。

1日穴場めぐり

アプリで観光コースを作成するとき、「穴場に興味がある」と指定すると、観光時間は同じでも名所巡りとは全く異なる観光コースが得られます。

9:00出発 北鎌倉駅
  ↓ 徒歩移動(25分)
9:25~9:50(25分) 海蔵寺
  ↓ 徒歩移動(20分)
10:10~10:35(25分) 円応寺
  ↓ 徒歩移動(25分)
11:00~11:25(25分) 東慶寺
  ↓ 徒歩移動(10分)
11:35~12:20(45分) 円覚寺
  ↓ 徒歩と電車移動&昼食(90分)
13:50~14:20(30分) 由比ガ浜海岸
  ↓ 徒歩移動(20分)
14:40~15:45(65分) 鎌倉文学館
  ↓ 徒歩移動(30分)
16:15~17:20(65分) 御成通り
  ↓ 徒歩で移動(20分)
17:40~18:00(20分) 妙本寺

ここでは、誰もが知っているほどの知名度はなくても、興味深い寺院や施設がコース上に現れています。
たとえば、ミシュラングリーンガイドでも星を取得したとされる円応寺や、鎌倉時代の井戸を拝観できる海蔵寺、さらには寺社に目を奪われて忘れがちな由比ガ浜海岸などが選ばれています。
鎌倉文学館は、100年以上前に建築された建物や美しい庭園などが楽しめる穴場的な場所です。

AIの仕組み

このように、記事上に観光コースが書かれていると、私が頭の中で考えて書いたたようにも見えますが、スマホ上でゼロから計算された結果をコピーしてきたものです。

私は特別、寺社仏閣に興味を持っているわけではないので、鎌倉の情報収集から数年が経過した今、頭の中でこんなコースは作れと言われても作れません…。

どうやったらこんなことができるか……令和なる時代、AI技術は百花繚乱の花の如く流行していますが、内部の仕組みはブラックボックス化される傾向があります。
せっかくのnote、それではもったいない。今後、数回に分けてルート生成に使用しているAIの仕組みを解説していきます。