diff --git a/bib.bib b/bib.bib index 2e6ebd5..9f28330 100644 --- a/bib.bib +++ b/bib.bib @@ -125,3 +125,15 @@ URL="https://ci.nii.ac.jp/naid/110009960005/", DOI="10.1299/jsmemdt.2014.14.129", } + + +@article{mobile, + author = "渡邊博之 and 成田祐一 and 大山勝徳 and 加瀬澤正 and 武内惇 and 竹中豊文", + title = "モバイル端末を活用した災害時最短避難経路提示システムの開発", + journal = "情報処理学会論文誌", + year = "2012", + volume = "53", + number = "7", + pages = "1768--1773", + month = "jul" +} diff --git a/kizon.pdf b/kizon.pdf new file mode 100644 index 0000000..f9dcbe4 --- /dev/null +++ b/kizon.pdf Binary files differ diff --git a/mituyuki.pdf b/mituyuki.pdf index 1f87f32..60c7078 100644 --- a/mituyuki.pdf +++ b/mituyuki.pdf Binary files differ diff --git a/mituyuki.tex b/mituyuki.tex index 6e1bd67..7c21f45 100644 --- a/mituyuki.tex +++ b/mituyuki.tex @@ -1,6 +1,7 @@ \documentclass[a4j,11pt]{jbook} \usepackage{graphicx} \usepackage{url} +\usepackage{ascmac} \thispagestyle{empty} \addtolength{\topmargin}{-2cm} \addtolength{\textheight}{3cm} @@ -89,10 +90,21 @@ 災害時等を装釘した際の離れている人同士の安否確認等の情報の相互確認につ いての現状を記述する。 -\subsection{災害時の逃げ遅れによる被害} - + \subsection{災害時の逃げ遅れによる被害} + 渡邊らは、災害時に住民の孤立や逃げ遅れの二次災害による犠牲者の発生を問題 + とし、最短避難経路提示システムを開発した\cite{mobile}。そこでは、従来の + 災害時の伝言板等のシステムでは携帯電話とPCとの連携がとれず、避難者の立場 + が考慮されていないことが問題視され、携帯電話とWiFiを状況に応じて分けて活用する + ことで最短の避難経路に誘導するシステムを実測値との誤差を5%以下で実現し + た。 \subsection{避難後の安否確認} +2016年の熊本地震におけるライフラインの復旧に関して能島は阪神淡路大 +震災や東日本大震災と比べ大幅に短縮され、迅速さにおいてはほぼ飽和状態に達 +していると述べている\cite{life}。しかし、ライフラインの完全な復旧には2週 +間を要しているのが現状であり、その間は十分に外部との連絡を取れない人がい +るのが事実である。 + \subsection{既存のアプリケーション} 現在、Apple社が提供するクラウドサービス``iCloud''の機能である``友だちを探 @@ -115,14 +127,15 @@ \item 少人数グループで情報共有するためのマップ作成アプリケーション \item 一定範囲の地域内の分布を表示するマップ作成アプリケーション \end{enumerate} - + \chapter{システムの構築環境と概観} 本研究で開発するシステムの内容について記述する。 \section{用語解説} システムを提案する上で必要となる用語の解説を記述する。 \subsection{データの正規化} - 今回関係データベース(DBMS)でデータを管理するため、データを正規化する必要がある。正規化と + 今回関係データベース(DBMS)でデータを管理するため、データを正規化する必 + 要がある。正規化と は、データを効率良く扱うために特定のルールにしたがって整理することであ る。以下に正規化の手順について記述する。 @@ -131,80 +144,159 @@ データを管理する際、このように一つの項目(フィールド)内に複数のデータが 格納されていても複数のデータと認識することができない。これらのデータを データベースが計算機で処理しやすい形式にすることが正規化である。\par -\begin{tabular}{|c|c|c|c} - 00100 & 大根 & 酒田50円30個 & 鶴岡40円40個\\ - 00101 & サツマイモ & 三川70円20個 & 遊佐80円10個\\ -\end{tabular} - % \caption{非正規形} + \begin{table}[h] + \begin{center} + \begin{tabular}{|c|c|c|c|}\hline + 00100 & 大根 & 酒田30円30個 & 鶴岡40円40個\\\hline + 00101 & サツマイモ & 三川40円20個 & 鶴岡50円10個\\\hline + \end{tabular} + \caption{生のデータ} + \end{center} + \end{table} - \subsubsection{第1正規化} - 非正規形において繰り返していたり、フィールド内に複数格納され - ていたりするデータを別の行(レコード)に分離し、繰り返しを排除する。\par -\begin{table}[h] - \begin{tabular}{c|c|c|c|c} - cord & items & place & price & quant\\\hline - 00100 & 大根 & 酒田 & 50円 & 30個 \\ - 00100 & 大根 & 鶴岡 & 40円 & 40個 \\ - 00101 & サツマイモ & 三川 & 70円 & 20個 \\ - 00101 & サツマイモ & 鶴岡 & 80円 & 10個 \\ - % \label{kuri} - \end{tabular} - \caption{繰り返しを排除した形} -\end{table} + \subsubsection{第1正規化} + 非正規形において繰り返していたり、フィールド内に複数格納され + ていたりするデータを別の行(レコード)に分離し、繰り返しを排除する。\par + \begin{table}[h] + \begin{center} + \begin{tabular}{|c|c|c|c|c|}\hline + cord & items & place & price & quant\\\hline + 00100 & 大根 & 酒田 & 30円 & 30個 \\\hline + 00100 & サツマイモ & 40円 & 三川& 20個 \\\hline + 00101 & 大根 & 鶴岡 & 40円 & 40個 \\\hline + 00101 & サツマイモ & 鶴岡 & 50円 & 10個 \\\hline + % \label{kuri} + \end{tabular} + \caption{繰り返しを排除した形} + \end{center} + \end{table} 更に、テーブルごとにデータを一意に識別するための項目を設定する。このよ うなコードのことを主キーという。主キーは複数カラムから構成されることも あり、その場合は複合主キーと言う。\par \begin{table}[h] - \begin{tabular}{c|c|c|c|c|c} - cord & icord & items & place & price & quant\\\hline - 00100 & 0001 & 大根 & 酒田 & 50円 & 30個 \\ - 00100 & 0001 & 大根 & 鶴岡 & 40円 & 40個 \\ - 00101 & 0002 & サツマイモ & 三川 & 70円 & 20個 \\ - 00101 & 0002 & サツマイモ & 鶴岡 & 80円 & 10個 \\ - % \label{kuri} - \end{tabular} - \caption{第1正規形} - \label{daiiti} -\end{table} + \begin{center} + \begin{tabular}{|c|c|c|c|c|c|}\hline + cord & icord & items & place & price & quant\\\hline + 00100 & 0001 & 大根 & 酒田 & 30円 & 30個 \\\hline + 00100 & 0002 & サツマイモ & 三川 & 40円 & 20個 \\\hline + 00101 & 0001 & 大根 & 鶴岡 & 40円 & 40個 \\\hline + 00101 & 0002 & サツマイモ & 鶴岡 & 50円 & 10個 \\\hline + \end{tabular} + \caption{第1正規形} + \label{daiiti} + \end{center} + \end{table} \subsubsection{第2正規化} - 表\ref{daiiti}の第1正規形から部分従属性を排除する。 - \subsubsection{第3正規化} - もっとばらすよって話と表作成。 + 表\ref{daiiti}の第1正規形から部分関数従属性を排除する。関数従属とは、あ + る属性Xを決めると他の属性Yが一意に決まるような状態のことである。この時、 + Xを決定項、Yを被決定項呼ぶ。部分関数従属とは、このときの被決定項が複数 + の決定項を持っている状態のことである。表\ref{daiiti}の場合、icordが決ま + ればitemsが決まるが、他の項目が決定しない。そこで、icordを主キーとする + itemsだけをまとめたテーブルを新規に作成する。第2正規化をすることでテー + ブルごとの列の数を減らし、データの管理をより単純化する。 - \subsection{JSON形式} - JavaScript Object Notation(JSON)とは、データを表現するための記法である。 + \begin{table}[h] + \begin{center} + \begin{tabular}{|c|c|}\hline + icord & items \\\hline + 0001 & 大根 \\\hline + 0002 & サツマイモ \\\hline + \end{tabular} + \caption{商品テーブル} + \end{center} + \end{table} + + \begin{table}[h] + \begin{center} + \begin{tabular}{|c|c|c|c|c|}\hline + cord & icord & place & price & quant\\\hline + 00100 & 0001 & 酒田 & 30円 & 30個 \\\hline + 00100 & 0002 & 三川 & 40円 & 20個\\\hline + 00101 & 0001 & 鶴岡 & 40円 & 40個 \\\hline + 00101 & 0002 & 鶴岡 & 50円 & 10個 \\\hline + \end{tabular} + \label{daini} + \caption{注文テーブル} + \end{center} + \end{table} + + \subsubsection{第3正規化} + 第2正規形から推移的関数従属性を排除する。推移的関数従属性とは、被決定 + 項または決定項と被決定項の組み合わせによって他の被決定項が一意に決ま + ることを指す。今回の場合、表\ref{daini}において、icordとplaceが決まれ + ばpriceも決まるため、別のテーブルを新たに作成する。最終的には表3.3, + 3.4, 3.5の状態になる。 + \begin{table}[p] + \begin{center} + \begin{tabular}{|c|c|}\hline + icord & items \\\hline + 0001 & 大根 \\\hline + 0002 & サツマイモ \\\hline + \end{tabular} + \caption{商品テーブル} + \end{center} + \end{table} + + \begin{table} + \begin{center} + \begin{tabular}{|c|c|c|}\hline + cord & icord & quant\\\hline + 00100 & 0001 & 30個 \\\hline + 00100 & 0002 & 20個 \\\hline + 00101 & 0001 & 40個 \\\hline + 00101 & 0002 & 10個 \\\hline + \end{tabular} + \caption{在庫テーブル} + \end{center} + \end{table} + + \begin{table} + \begin{center} + \begin{tabular}{|c|c|c|}\hline + icord & place & price\\\hline + 0001 & 酒田 & 30円 \\\hline + 0002 & 三川 & 40円 \\\hline + 0001 & 鶴岡 & 40円 \\\hline + 0002 & 鶴岡 & 50円 \\\hline + \end{tabular} + \caption{価格テーブル} + \end{center} + \end{table} + + \subsection{JSON形式} + JavaScript Object Notation(JSON)とは、データを表現するための記法である。 + 表形式では記述が困難な構造のデータを、人間に対しての可読性を残しつつ計 + 算機に対して伝達出来るような記法である。 \subsection{CGI} Common Gateway Interface(CGI)とは、 Webサーバとプログラム間のデータの 送受信の規格で、ブラウザからの要求に応じてプログラムを起動し、その 結果をブラウザに返すためのインターフェイスである。 -\section{システムの概観} -構築するシステムの概観と内容について記述する。 - - \section{作業環境} -開発は以下の環境で行う。 -\begin{itemize} - \item Ruby 2.3.0 - \item Leaflet 1.3.4 - \item SQlite3 -\end{itemize} - - - % \section{扱うデータ} - % \label{data} - % 今回は正規化を行った以下のテーブルでデータを管理する。 - % \begin{itemize} - % \item user(ユーザ名, パスワード) - % \item users(クッキーID, ユーザ名, 最終ログイン時刻) - % \item ginfo(グループ名, グループの管理ユーザ名) - % \item gmember(ユーザ名, 所属するグループ名) - % \item latlng(グループ名, ユーザ名, 取得した経度, 取得した緯度) - % \item lastlaln(ユーザ名, 最後に取得した経度, 最後に取得した緯度) - % \item time(ユーザ名, グループ名, 取得した時刻) - % \item local(ユーザ名, 設定した地域) - % \end{itemize} - + + \section{作業環境} + 開発は以下の環境で行う。 + \begin{itemize} + \item Ruby 2.3.0 + \item LeafLet.js 1.3.4 + \item SQlite3 + \end{itemize} + + + % \section{扱うデータ} + % \label{data} + % 今回は正規化を行った以下のテーブルでデータを管理する。 + % \begin{itemize} + % \item user(ユーザ名, パスワード) + % \item users(クッキーID, ユーザ名, 最終ログイン時刻) + % \item ginfo(グループ名, グループの管理ユーザ名) + % \item gmember(ユーザ名, 所属するグループ名) + % \item latlng(グループ名, ユーザ名, 取得した経度, 取得した緯度) + % \item lastlaln(ユーザ名, 最後に取得した経度, 最後に取得した緯度) + % \item time(ユーザ名, グループ名, 取得した時刻) + % \item local(ユーザ名, 設定した地域) + % \end{itemize} + \chapter{システムの実行} 実際に構築したシステムを実行する行程について記述する。 @@ -216,85 +308,105 @@ カウントを作成する機能である。ユーザ名を個人を判別するためのデータ とするため、ユーザが既存のアカウントと重複していた際にはエラーを表示す る。 -\begin{figure}[h] - \begin{center} - \includegraphics[bb=0 0 477 229,scale=0.9]{make.pdf} - \caption{ログイン画面} - \end{center} -\end{figure} + \begin{figure}[h] + \begin{center} + \includegraphics[bb=0 0 477 229,scale=0.9]{make.pdf} + \caption{ログイン画面} + \end{center} + \end{figure} \subsection{ログイン} 作成したアカウントのユーザ名とパスワードを入力し、システムにログインす るための機能である。ユーザのログイン情報を保持するため、ログインと同時 にクッキーIDを取得する。認証期限は24時間に設定している。 - + \section{位置情報を利用した情報共有} 本システムのメインとなる機能である。利用者が意図的に情報を送信したり、 送信情報をマップ上に表示して共有したりする機能と、そこで得た情報を元に地域ご とに利用者の分布を表示する機能の大きく2つに分かれる。 - - \subsection{個人の位置情報の送信} - \label{kozin} - アカウントを所有するユーザがデータベースに自分の利用情報をデータベース + + \subsection{個人の位置情報の送信} + \label{kozin} + アカウントを所有するユーザがデータベースに自分の利用情報をデータベース に送信する機能である。ここで得たデータを元に後述の地域ごとの分布マップ を作成する(\ref{bunpu})。 -\begin{figure}[h] - \begin{center} - \includegraphics[bb=36 39 814 559,scale=0.4]{gainen1.pdf} - \caption{個人利用時の概念図} - \end{center} -\end{figure} - - \subsection{少人数グループでの利用} - \label{shounin} - 特に少人数単位のグループ内で、個人を特定した上で相互に情報を共有するシ - ステムである。この機能を利用する際に利用者が送信したデータも - \ref{bunpu}章のマップ作成に使用する。 - -\begin{figure}[h] - \begin{center} - \includegraphics[bb=32 19 829 565,scale=0.4]{gainen2.pdf} - \caption{グループ利用時の概念図} - \end{center} -\end{figure} - - \subsubsection{グループ作成・管理} - \label{group} - 少人数グループでの利用をするためのグループを作成・管理する機能で - ある。以下の3つの機能からなる。 -\begin{itemize} - \item 新規グループの作成 - \item グループへの加入 - \item 加入済みグループからの脱退 -\end{itemize} - - \subsubsection{グループ単位のマップの作成} - (\ref{group})を用いて作成したグループ単位で利用するシステムである。グルー - プメンバーが最後に利用した位置情報、名前、時刻をマップ上のピンで表示す - る。 \begin{figure}[h] \begin{center} - \includegraphics[bb=0 0 751 746,scale=0.5]{test.pdf} - \caption{グループ利用時の画面例} + \includegraphics[bb=36 39 814 559,scale=0.4]{gainen1.pdf} + \caption{個人利用時の概念図} \end{center} \end{figure} + + \subsection{少人数グループでの利用} + \label{shounin} + 特に少人数単位のグループ内で、個人を特定した上で相互に情報を共有するシ + ステムである。災害時に家族等少人数のコミュニティ内でお互いの情報を把握 + するための機能である。この機能は、災害時のみならず、グループワーク等複数人の位 + 置情報を相互に把握したい状況で利用することも目的とする。この機能を利用 + する際に利用者が送信したデータも\ref{bunpu}章のマップ作成に使用する。 + \par + この際、既存のアプリケーションでは複数人で情報を相互に把握する際、図\ref{kizon}の矢印の数だけ登録が必要になるが、本システムでは図\ref{my}のようになる。 + + \begin{figure}[h] + \begin{center} + \includegraphics[bb=32 19 829 565,scale=0.3]{kizon.pdf} + \caption{既存のアプリケーション} + \label{kizon} + \end{center} + \end{figure} - \subsection{設定地域内の分布表示} - \label{bunpu} - 利用者が\ref{kozin}章や\ref{shounin}章のシステムを利用した際に発信され - る情報をもとに各利用者が設定した地域分布マップを作成するシステムである。 - ここでは利用者にプライバシーやセキュリティ面への考慮からユーザ名等は表 - 示せず、地域内での分布のみを表示する。図\ref{skt}は山形県酒田市の人 - 口密度をもとにマップを擬似的に作成したものである。 -\begin{figure}[h] - \begin{center} + \begin{figure}[h] + \begin{center} + \includegraphics[bb=32 19 829 565,scale=0.3]{my.pdf} + \caption{本システム} + \label{my} + \end{center} + \end{figure} + + \begin{figure}[h] + \begin{center} + \includegraphics[bb=32 19 829 565,scale=0.4]{gainen2.pdf} + \caption{グループ利用時の概念図} + \end{center} + \end{figure} + + \subsubsection{グループ作成・管理} + \label{group} + 少人数グループでの利用をするためのグループを作成・管理する機能で + ある。以下の3つの機能からなる。 + \begin{itemize} + \item 新規グループの作成 + \item グループへの加入 + \item 加入済みグループからの脱退 + \end{itemize} + + \subsubsection{グループ単位のマップの作成} + (\ref{group})を用いて作成したグループ単位で利用するシステムである。グルー + プメンバーが最後に利用した位置情報、名前、時刻をマップ上のピンで表示す + る。 + \begin{figure}[h] + \begin{center} + \includegraphics[bb=0 0 751 746,scale=0.5]{test.pdf} + \caption{グループ利用時の画面例} + \end{center} + \end{figure} + + \subsection{設定地域内の分布表示} + \label{bunpu} + 利用者が\ref{kozin}章や\ref{shounin}章のシステムを利用した際に発信され + る情報をもとに各利用者が設定した地域分布マップを作成するシステムである。 + ここでは利用者にプライバシーやセキュリティ面への考慮からユーザ名等は表 + 示せず、地域内での分布のみを表示する。図\ref{skt}は山形県酒田市の人 + 口密度をもとにマップを擬似的に作成したものである。 + \begin{figure}[h] + \begin{center} \includegraphics[bb=0 0 1172 485,scale=0.3]{sakata.pdf} - \caption{地域の分布表示の例} - \label{skt} - \end{center} -\end{figure} - - - + \caption{地域の分布表示の例} + \label{skt} + \end{center} + \end{figure} + + + \chapter{結論} \label{skt} アカウントを作成した利用者から発信された情報を元に地域の住民の避難状況等 @@ -315,8 +427,8 @@ を用いて常時気象庁からデータを取得し、災 害発生時にその時点よりも前のデータを消去する等の処理を加えることで 災害時に対応可能にする必要がある\cite{screape}。 - - + + \section{グループ参加の有無と個人の特定} 本システムを個人でのみ利用しているユーザに関して、個人を特定する方法が完 全にない状態になっている。匿名性の保持と言う点では問題はないが、災害時 @@ -327,15 +439,16 @@ に出入りできるようになっている。グループにIDを割り振る、特定のメンバー に承認周りの権限を付与する等してグループ管理周辺のセキュリティについて 整えていく必要がある。 - -\section{同時利用時のキャパシティ} -\ref{bunpu}章から、個人の特定を + + \section{同時利用時のキャパシティ} + \ref{bunpu}章から、個人の特定を 目的としない場合の避難所から離れている利用者のばらつき等の視認性においては 問題なく見えるが、災害時に多くの利用者が同時に利用した場合、またより人口 の多い場合などの動作に関してプログラムを用いて摸擬的に検証する必要があ る。 - -\renewcommand{\bibname}{参考文献} + + \renewcommand{\bibname}{参考文献} \bibliographystyle{junsrt} \bibliography{bib} \end{document} + diff --git a/my.pdf b/my.pdf new file mode 100644 index 0000000..fd76d72 --- /dev/null +++ b/my.pdf Binary files differ