\section{WiFi Optimization}
		
	The WiFi sensor infers the pedestrian's current location based on a comparison between live measurements
	(the smartphone continuously scans for nearby \docAP{}s) and reference measurements / predictions 
	with well known location.
	
	\begin{equation}
		p(\vec{o}_t \mid \vec{q}_t)_\text{wifi} = 
		p(\mRssiVecWiFi \mid \mPosVec) =
		\prod p(\mRssi_{i} \mid \mPosVec),\enskip
		%\mPos = (x,y,z)^T
		\mPosVec \in \R^3
		\label{eq:wifiObs}
	\end{equation}
	%
	\begin{equation}
		p(\mRssi_i \mid \mPosVec) = 
		\mathcal{N}(\mRssi_i \mid \mu_{i,\mPosVec}, \sigma_{i,\mPosVec}^2)
		\label{eq:wifiProb}
	\end{equation}
	
	In \refeq{eq:wifiProb} $\mu_{i,\mPosVec}$ denotes the average signal strength for the \docAPshort{} identified by $i$,
	that should be measurable given the location $\mPosVec = (x,y,z)^T$. This value can be determined using various 
	methods. Most common, as of today, seems fingerprinting, where hundreds of locations throughout the building
	are scanned beforehand, and the received \docAP{}s including their signal strength denote the location's fingerprint.
	\todo{cite}
	%
	While allowing for highly accurate location estimations, given enough fingerprints, such a setup is costly.
	We therefore use a model prediction instead, that just relies on the \docAPshort{}'s position
	$\mPosAPVec{} = (x,y,z)^T$
	and some parameters.
	 

	\subsection{Signal Strength Prediction Model}
		
		\begin{equation}
			\mRssi = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \mGaussNoise{}
			\label{eq:logDistModel}
		\end{equation}

		The log distance model \todo{cite} in \refeq{eq:logDistModel} is a commonly used signal strength prediction model that
		is intended for line-of-sight predictions. However, depending on the surroundings, the model is versatile enough
		to also serve for indoor purposes.
		%
		This model predicts an \docAP{}'s signal strength 
		for an arbitrary location $\mPosVec{}$ given the distance between both and two environmental parameters:
		The \docAPshort{}'s signal strength \mTXP{} measurable at a known distance $d_0$ (usually \SI{1}{\meter}) and
		the signal's depletion over distance \mPLE{}, which depends on the \docAPshort{}'s surroundings like walls
		and other obstacles.
		\mGaussNoise{} is a zero-mean Gaussian noise and models the uncertainty.
			
		The log normal shadowing model is a slight modification, to adapt the log distance model to indoor use cases.
		It introduces an additional parameter, that models obstacles between (line-of-sight) the \docAPshort{} and the
		location in question by attenuating the signal with a constant value.
		%
		Depending on the use case, this value describes the number and type of walls, ceilings, floors etc. between both locations.
		For obstacles, this requires an intersection-test of each obstacle with the line-of-sight, which is costly
		for larger buildings. For real-time use on a smartphone, a (discretized) model pre-computation might thus be necessary
		\todo{cite competition}.
		
		\begin{equation}
			x = \mTXP{} + 10 \mPLE{} + \log_{10} \frac{d}{d_0} + \numFloors{} \mWAF{} + \mGaussNoise{}
			\label{eq:logNormShadowModel}
		\end{equation}
		
		Throughout this work, walls are ignored and only floors/ceilings are considered.
		In \refeq{eq:logNormShadowModel}, those
		are included using a constant attenuation factor \mWAF{} multiplied by the number of floors/ceilings \numFloors{}
		between sender and the location in question. Assuming \todo{passendes wort?} buildings, this number can be determined
		without  costly intersection checks and thus allows for real-time use cases.
		The attenuation \mWAF{} per element depends on the building's architecture and for common, steel enforced concrete floors
		$\approx 8.0$ might be a viable choice \todo{cite}.
		

		
	\subsection {Model Parameters}

		As previously mentioned, for the prediction model to work, one needs to know the location $\mPosAPVec_i$ for every 
		permanently installed \docAP{} $i$ within the building plus its environmental parameters.
		%
		While it is possible to use empiric values for \mTXP{}, \mPLE{} and \mWAF{}  \cite{Ebner-15}, the positions are mandatory.
		
		For many installations, there should be floorplans that include the locations of all installed transmitters. 
		If so, a model setup takes only several minutes to (vaguely) position the \docAPshort{}s within a virtual
		map and assigning them some fixed, empirically chosen parameters for \mTXP{}, \mPLE{} and \mWAF{}.
		Depending on the building's architecture this might already provide enough accuracy for some use-cases
		where a vague location information is sufficient.
		
		
	\subsection{Model Parameter Optimization}
	
		As a compromise between fingerprinting and pure empiric model parameters, one can optimize 
		the model parameters based on a few reference measurements throughout the building. 
		Obviously, the more parameters are unknown ($\mPosAPVec{}, \mTXP{}, \mPLE{}, \mWAF{}$) the more
		reference measurements are necessary to provide a viable optimization.
	
		Just optimizing \mTXP{} and \mPLE{} usually means optimizing a convex function
		as can be seen in figure \ref{fig:wifiOptFuncTXPEXP}. For such functions, 
		algorithms like gradient descent \todo{cite} and (downhill) simpelx \todo{cite}
		are well suited.
		
		\begin{figure}
			\input{gfx/wifiop_show_optfunc_params}
			\label{fig:wifiOptFuncTXPEXP}
			\caption{
				The average error (in \SI{}{\decibel}) between reference measurements and model predictions
				for one \docAPshort{} dependent on \docTXP{} \mTXP{} and \docEXP{} \mPLE{}
				[fixed position $\mPosAPVec{}$ and \mWAF{}] denotes a convex function.
			}
		\end{figure}
		
		However, optimizing the transmitter's position usually means optimizing a non-convex function,
		especially when the $z$-coordinate, that influences the number of attenuating floors/ceilings,
		is involved. While the latter can be mitigated by introducing a continuous function for the 
		number $n$ of floors/ceilings, like a sigmoid, this will still not work for all situations.
		As can be seen in figure \ref{fig:wifiOptFuncPosYZ}, there are two local minima and only one of
		both also is a global one.
	
		\begin{figure}
			\input{gfx/wifiop_show_optfunc_pos_yz}
			\label{fig:wifiOptFuncPosYZ}
			\caption{
				The average error (in \SI{}{\decibel}) between reference measurements and model predictions
				for one \docAPshort{} dependent on $y$- and $z$-position [fixed $x$, \mTXP{}, \mPLE{} and \mWAF{}]
				usually denotes a non-convex function with multiple [here: two] local minima.
			}
		\end{figure}
		
		Such functions demand for optimization algorithms, that are able to deal with non-convex functions,
		like genetic approaches. However, initial tests indicated that while being superior to simplex
		and similar algorithms, the results were not satisfactorily.
		
		As the Range of the six to-be-optimized parameters is known ($\mPosAPVec{}$ within the building,
		\mTXP{}, \mPLE{}, \mWAF{} within a sane interval), we used some modifications.
		The initial population is uniformly sampled from the known range. During each iteration 
		the best \SI{25}{\percent} of the population are kept and the remaining entries are
		re-created by modifying the best entries with uniform random values within 
		\SI{10}{\percent} of the known range. To stabilize the result, the allowed modification range
		is adjusted over time, known as cooling \todo{cite}.
		

	\subsection{Modified Signal Strength Model}
	
		During the initial eval, some issues were discovered. While aforementioned optimization was able to 
		reduce the error between reference measurements and model estimations to \SI{50}{\percent},
		the position estimation \ref{eq:wifiProb} did not benefit from improved model parameters. 
		To the contrary, there were several situations throughout the testing walks, where
		the inferred location was more erroneous than before.


	\subsection {VAP grouping}
		
		Assuming normal conditions, the received signal strength at one location will (strongly) vary 
		due to environmental conditions like temperature, humidity, open/closed doors, RF interference.
		Fast variations can be addressed by averaging several consecutive measurements at the expense 
		of a delay in time.
		To prevent this delay we use the fact, that many buildings use so called virtual access points
		where one physical hardware \docAP{} provides more than one virtual network to connect to.
		They can usually be identified, as only the last digit of the MAC-address is altered among the virtual networks.
		%
		As those virtual networks normally share the same frequency, they are unable to transmit at the same time.
		When scanning for \docAPshort{}s one will thus receive several responses from the same hardware, all with
		a very small delay in time (micro- to milliseconds). Such measurements may be grouped using some aggregate
		function like average, median or maximum.


wie wird optimiert
a) bekannte pos + empirische params
b) bekannte pos + opt params (fur alle APs gleich)		[simplex]
c) bekannte pos + opt params (eigene je AP)				[simplex]
d) alles opt: pos und params (je ap)					[range-random]

wenn man nur die fingerprints des floors nimmt in dem gelaufen wird, ist alles gut
sobald man andere floors drueber/drunter dazu nimmt, ist es nicht mehr gnaz so gut, oder wird schlechter
das spricht dafuer dass das modell nicht gut passt
koennte man zeigen indem man den durchschnittlichen fehler je fingerprint plottet???

the optimization-result also depends on the optimzation target:
a) the (average) error between measurment and model prediction
b) the (average) probability for the model's prediction given the fingerprint, ...
c) ...



				





probleme bei der optimierung beschreiben. convex usw..
wo geht simplex gut, wo eher nicht

harte WAF übergänge scheinen beim optimieren als auch beim matchen nicht so gut
gleitende übergänge mittels sigmoid wirken besser
war eine wichtige erkenntnis

die vom AP bekannte position wird NICHT als input fuer die alles-OPT funktion benutzt
die ist wirklich 'irgendwo'
 
range-random algo
domain bekannt [map groesse, txp/exp/waf in etwa]
genetic refinement mit cooling [= erst grob, dann fein]

optimierung ist tricky. auch wegen dem WAF der ja sprunghaft dazu kommt, sobald messung und AP in zwei unterschiedlichen
stockwerken liegen.. und das selbst wenn hier vlt sichtkontakt möglich wäre, da der test 2D ist und nicht 3D

aps sind (statistisch) unaebhaengig. d.h., jeder AP kann fuer sich optimiert werden.
optimierung des gesamtsystems ist nicht notwendig.

pro AP also 6 params. pos x/y/z, txp, exp, waf 
