O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

ABC 2016Spring 講演資料

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
Carregando em…3
×

Confira estes a seguir

1 de 27 Anúncio

Mais Conteúdo rRelacionado

Semelhante a ABC 2016Spring 講演資料 (16)

Anúncio

Mais recentes (20)

Anúncio

ABC 2016Spring 講演資料

  1. 1. ビーコンはこう置いて みては? 東海大学理学部 大西 建輔 (石川 登美雄君との共同研究)
  2. 2. 自己紹介 • 大西建輔 (KensukeOnishi@gmail.com ) • 東海大学准教授(情報系でもあり、数学系) • 普段はプログラミングや数学教えてます • Androidとの付き合いは, GDD2009でGDDPhoneを 貰ってから • ABC参加は, 2011 Winterから, 2013 AutumnからABC実行委員も
  3. 3. ビーコンとは? • BLE(Bluetooth Low Energy)はBluetooth の規格 • BLE規格のビーコン(Beacon)と呼ばれる発信器あり • 低電圧(Low Energy) ⇒ ボタン電池1つで1年程度 • ビーコンのIDを発信(IDの変更も可能) ⇒ 電波強度とIDを受信可能 • iOS, Android(4.3以降)でサポート ⇒ ビーコンを探知できるアプリを作成可能
  4. 4. 研究動機 BLE設置の現場では • ビーコンを設置, 計測の繰り返し ⇒ 時間と手間が必要, 高コストの原因 • ビーコンの位置を決める手法を提案 ⇒ あらかじめ幾つかのパターンを作成 ⇒ 現地での調整 [本研究] 領域R , 正整数k が与えられる ⇒ R内で k個のビーコンの位置を決定 ビーコン 3K 設置10K以上 ビーコンの 数の削減も
  5. 5. k-means method (Lloyd 1982) 点集合P を k個のクラスタに分割する方法 ⇒ k 個の母点を決め, P をそれぞれの母点に近い点集合 Pi に分割 入力: 点集合P ; 出力 : クラスタ Pi (i = 1,2, …, k) ; 1. 母点 SP ={sp1, …, spk} を適当に決定; 2. Pi = {spi に近い点の集合} を計算; 3. spi =  p / | Pi | ただし, p  Pi ; # 重心を計算 4. が前の値より小さい⇒Step 2 に戻る; 5. Pi (i = 1,2, …, k)を返す; 𝜑 𝑃 = 𝑖=1 𝑘 𝑝∈𝑃 𝑖 𝑑(𝑝, 𝑝𝑖)2
  6. 6. k-means method 実行例(n=5000)
  7. 7. k-means method 実行例 (n=5000, k=10)
  8. 8. k-means method 実行例 (n=5000, k=10)
  9. 9. 目的関数値: 40462.361962646 k-means method 実行例 (n=5000, k=10)
  10. 10. k-means methodの特徴 • かなり高速に計算可能 (繰り返し回数は少ない) • 結果は, 初期値に依存 ⇒ 幾つかの初期値を試し, 最もよい物を選択 • 初期値を上手に選ぶ • k-means++ method
  11. 11. k-means++ method (Arthur et.al SoDA 2007) • k平均法で, 初期点の取り方を工夫 • 最初の1点はランダムに • d(spi , p)2 /  d(spi , p)2 の確率で, 次の点を選択 spi : p に最も近い初期点 • 必要な k点ができれば, k-means methodを適用 k-means++ methodでは, O(log k) 競合比を達成 ⇒ 必ず最適な値の O(log k)倍で抑えられる (理論的な保証) 母点から遠い点 が選ばれる確率 が高い
  12. 12. k-means++ method 実行例 (n=5000, k=10)
  13. 13. k-means++ method 実行例 (n=5000, k=10)
  14. 14. k-means++ method 実行例 (n=5000, k=10) 目的関数値:40209.7234844853
  15. 15. 今回は, ビーコンの配置 • 入力は点集合ではなく, 領域 R ⇒ 領域内の点をランダムに生成 (人が入れない場所には, 点を生成しない) • 生成された点集合に対し, k-means (ランダム初期点) または. k-means++ method を適用 ⇒ クラスタが出力 ⇒ 各クラスタの重心を計算し, ビーコン位置に
  16. 16. 点集合の生成 (n = 7000)
  17. 17. k-means method の適用
  18. 18. k-means method の適用
  19. 19. 計算機実験 • k-means method(ランダムに初期点を選択)と k-means++ methodを実装 • n =1000, 2000, …, 10000に対し, それぞれ10種類の点集合を生成 • 全ての点集合に対し, k-means と k-means++ methodを適用 [取得データ] • 計算時間 • 収束までの繰り返し回数, • 目的関数値, • 正規化目的関数値(点数での正規化)
  20. 20. 計算時間 (ランダム, k-means++, 平均) 0 100 200 300 400 500 600 0 2000 4000 6000 8000 10000 Computation time (SP) Random k-means++ (ms) (# points)
  21. 21. 計算時間(k-means method, 平均) 0 500 1000 1500 2000 2500 3000 3500 4000 0 2000 4000 6000 8000 10000 Computaion time (k-means) Random k-means++ (ms) (#points)
  22. 22. 繰り返し回数(平均) 0 5 10 15 20 25 30 0 2000 4000 6000 8000 10000 Number of Repeat (average) Random k-means++ (# points) (# times)
  23. 23. 目的関数値(平均と最小) 49500 50000 50500 51000 51500 52000 52500 53000 53500 54000 0 2000 4000 6000 8000 10000 Value of Objective function (min and averages) Random k-means++ min (# points)
  24. 24. 実領域への適用(以前の配置)
  25. 25. 実領域への適用(新しい配置)
  26. 26. 実環境での精度の違い 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000 1次 2次 3次 7F(after) 7F(before)
  27. 27. まとめ 領域 Rでの k個のビーコン配置の手法の提案 • Rでの点のランダム生成 • k-means method or k-means++ methodを適用 • 出力クラスタから重心を計算し、ビーコン位置に • 計算時間は早い 10000点, k=5で4秒程度 • 性能向上はそこそこ 今後の予定 • ビーコンの個数 kの決定 .…. なんとかなりそう • 距離計算の厳密化 • 実際のビーコン配置の現場へ

×