Newsvendor model: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Sarahj2107
Reverted 3 edits by 59.163.146.9 (talk): Unexplained content removal. (TW)
No edit summary
 
Line 1: Line 1:
'''Monte Carlo localization (MCL)''', also known as '''particle filter localization''',<ref name="Rekleitis">Ioannis M. Rekleitis. "A Particle Filter Tutorial for Mobile Robot Localization." ''Centre for Intelligent Machines, McGill University, Tech. Rep. TR-CIM-04-02'' (2004).</ref> is an application of the [[particle filter]], a [[Monte Carlo method]], for [[robot localization]].<ref name="icra1999">[[Frank Dellaert]], Dieter Fox, [[Wolfram Burgard]], [[Sebastian Thrun]]. "[http://www.ri.cmu.edu/pubs/pub_533.html Monte Carlo Localization for Mobile Robots]." ''Proc. of the IEEE International Conference on Robotics and Automation'' Vol. 2. IEEE, 1999.</ref><ref name="aaai1999">Dieter Fox, Wolfram Burgard, Frank Dellaert, and Sebastian Thrun, "[http://www.cs.washington.edu/ai/Mobile_Robotics/abstracts/sampling-aaai-99.abstract.html Monte Carlo Localization: Efficient Position Estimation for Mobile Robots]." ''Proc. of the Sixteenth National Conference on Artificial Intelligence'' John Wiley & Sons Ltd, 1999.</ref><ref name="pr">Sebastian Thrun, Wolfram Burgard, Dieter Fox. [http://www.probabilistic-robotics.org/ ''Probabilistic Robotics''] MIT Press, 2005. Ch. 8.3 ISBN 9780262201629.</ref><ref name="robust">Sebastian Thrun, Dieter Fox, Wolfram Burgard, Frank Dellaert. "[http://robots.stanford.edu/papers/thrun.robust-mcl.html Robust monte carlo localization for mobile robots]." ''Artificial Intelligence'' 128.1 (2001): 99–141.</ref> Given a map of the environment, the algorithm estimates the [[pose (computer vision)|position and orientation]] of a robot as it moves and senses the environment.<ref name="pr" /> The algorithm uses a [[particle filter]] to represent the [[probability density function|distribution]] of likely states, with each particle representing a possible state, i.e. a hypothesis of where the robot is.<ref name="pr" /> The algorithm typically starts with a uniform random distribution of particles over the [[configuration space]], meaning the robot has no information about where it is and assumes it is equally likely to be at any point in space.<ref name="pr" /> Whenever the robot moves, it shifts the particles to predict its new state after the movement. Whenever the robot senses something, the particles are resampled based on [[recursive Bayesian estimation]], i.e. how well the actual sensed data correlate with the predicted state. Ultimately, the particles should converge towards the actual pose of the robot.<ref name="pr" />
Marvella is what you can  home std test [http://Outofthecloset.org/testing/ contact] her but it's not the most female title out  [http://Www.biogids.nl/biobank/2014-06-13/how-can-1-especially-get-around-todays-diseases Www.biogids.nl] there. California is where her home is but  over the counter std test she requirements to transfer because of her family. Since she was 18 she's been working as [http://www.hotporn123.com/blog/154369 please click the following internet page] a meter reader but she's usually wanted her personal company. One of the very very best issues in the world for him is to gather badges but he is having difficulties to discover time for it.<br><br>Feel free to visit my page ... [http://www.crmidol.com/discussion/19701/how-tell-if-woman-interested-or-sexually-captivated-you www.crmidol.com]
 
==State representation==
The state of the robot depends on the application and design. For example, the state of a typical 2D robot may consist of a tuple <math>(x, y, \theta)</math> for position <math>x, y</math> and orientation <math>\theta</math>. For a robotic arm with 10 joints, it may be a tuple containing the angle at each joint: <math>(\theta_1, \theta_2, ..., \theta_{10})</math>.
 
The ''belief'', which is the robot's estimate of its current state, is a [[probability density function]] distributed over the state space.<ref name="Rekleitis" /><ref name="pr" /> In the MCL algorithm, the belief at a time <math>t</math> is represented by a set of <math>M</math> [[Particle filter|particles]] <math>X_t = \lbrace x_t^{[1]}, x_t^{[2]}, \ldots , x_t^{[M]} \rbrace</math>.<ref name="pr" /> Each particle contains a state, and can thus be considered a hypothesis of the robot's state. Regions in the state space with many particles correspond to a greater probability that the robot will be there; and regions with few particles are unlikely to be where the robot is.
 
The algorithm assumes the [[Markov property]] that the current state's probability distribution depends only on the previous state (and not any ones before that), i.e. <math>X_t</math> depends ''only'' on <math>X_{t-1}</math>.<ref name="pr" /> This only works if the environment is static and [[Time-invariant system|does not change with time]].<ref name="pr" /> Typically, on start up, the robot has no information on its current pose so the particles are uniformly distributed over the [[configuration space]].<ref name="pr" />
 
==Overview==
Given a map of the environment, the goal of the algorithm is for the robot to determine its [[Pose (computer vision)|pose]] within the environment.
 
At every time <math>t</math> the algorithm takes as input the previous belief <math>X_{t-1} = \lbrace x_{t-1}^{[1]}, x_{t-1}^{[2]}, \ldots, x_{t-1}^{[M]} \rbrace</math>, an actuation command <math>u_t</math>, and data received from sensors <math>z_t</math>; and the algorithm outputs the new belief <math>X_t</math>.<ref name="pr" />
 
    '''Algorithm MCL'''<math>(X_{t-1}, u_t, z_t)</math>:
        <math>\bar{X_t} = X_t = \emptyset</math>
        for <math>m = 1</math> to <math>M</math>:
            <math>x_t^{[m]} = </math> '''motion_update'''<math>(u_t, x_{t-1}^{[m]})</math>
            <math>w_t^{[m]} = </math> '''sensor_update'''<math>(z_t, x_t^{[m]})</math>
            <math>\bar{X_t} = \bar{X_t} + \langle x_t^{[m]}, w_t^{[m]} \rangle</math>
        endfor
        for <math>m = 1</math> to <math>M</math>:
            draw <math>x_t^{[i]}</math> from <math>\bar{X_t}</math> with probability <math>\propto w_t^{[i]}</math>
            <math>X_t = X_t + x_t^{[i]}</math>
        endfor
        return <math>X_t</math>
 
===Example for 1D robot===
{{multiple image
| footer    = A robot travels along a one-dimensional corridor, armed with a sensor that can only tell if there is a door (left) or there is no door (right).
| width    = 120
 
| image1    = Corridorbot door.png
| alt1      = Robot detects a door.
 
| image2    = Corridorbot wall.png
| alt2      = Robot detects a wall.
}}
Consider a robot in a one-dimensional [[periodic boundary conditions|circular]] corridor with three identical doors, using a sensor that returns [[Boolean value|either true or false]] depending on whether there is a door.
 
{|style="border:1px #AAAAAA solid;"
! colspan=3 style="background-color:#F2F2F2;"|<math>t=0</math>
|-
|[[File:Mcl t 0 1.svg|thumb|320px|center|The algorithm initializes with a uniform distribution of particles. The robot considers itself equally likely to be at any point in space along the corridor, even though it is physically at the first door.]]
|[[File:Mcl t 0 2.svg|thumb|320px|center|'''Sensor update''': the robot detects '''a door'''. It assigns a weight to each of the particles. The particles which are likely to give this sensor reading receive a higher weight.]]
|[[File:Mcl t 0 3.svg|thumb|320px|center|'''Resampling''': the robot generates a set of new particles, with most of them generated around the previous particles with more weight. It now believes it is at one of the three doors.]]
|}
 
<br>
{|style="border:1px #AAAAAA solid;"
! colspan=3 style="background-color:#F2F2F2;"|<math>t=1</math>
|-
|[[File:Mcl t 1 1.svg|thumb|320px|center|'''Motion update''': the robot moves some distance to the right. All particles also move right, and some noise is applied. The robot is physically between the second and third doors.]]
|[[File:Mcl t 1 2.svg|thumb|320px|center|'''Sensor update''': the robot detects '''no door'''. It assigns a weight to each of the particles. The particles which are likely to give this sensor reading receive a higher weight.]]
|[[File:Mcl t 1 3.svg|thumb|320px|center|'''Resampling''': the robot generates a set of new particles, with most of them generated around the previous particles with more weight. It now believes it is at one of two locations.]]
|}
 
<br>
{|style="border:1px #AAAAAA solid;"
! colspan=3 style="background-color:#F2F2F2;"|<math>t=2</math>
|-
|[[File:Mcl t 2 1.svg|thumb|320px|center|'''Motion update''': the robot moves some distance to the left. All particles also move left, and some noise is applied. The robot is physically at the second door.]]
|[[File:Mcl t 2 2.svg|thumb|320px|center|'''Sensor update''': the robot detects '''a door'''. It assigns a weight to each of the particles. The particles which are likely to give this sensor reading receive a higher weight.]]
|[[File:Mcl t 2 3.svg|thumb|320px|center|'''Resampling''': the robot generates a set of new particles, with most of them generated around the previous particles with more weight. The robot has successfully localized itself.]]
|}
At the end of the three iterations, most of the particles are converged on the actual position of the robot as desired.
 
==Motion update==
[[File:Particle2dmotion.svg|thumb|right|Belief after moving several steps for a 2D robot using a typical motion model without sensing.]]
During the motion update, the robot predicts its new location based on the actuation command given, by applying the simulated motion to each of the particles.<ref name="Rekleitis" /> For example, if a robot moves forward, all particles will move forward in their own direction no matter which ways they are pointing. If a robot rotates 90 degrees clockwise, all particles will rotate 90 degrees clockwise regardless of where they are. However, in the real world, no actuator is perfect: they may overshoot or undershoot the desired amount of motion;  when a robot tries to drive in a straight line, it will inevitably curve to one side or the other due to minute differences in wheel radius.<ref name="Rekleitis" /> Hence, the motion model must be designed to include noise as necessary. Inevitably, the particles will diverge during the motion update as a consequence. This is expected since a robot becomes less sure of its position if it moves blindly without sensing the environment.
 
==Sensor update==
When the robot senses its environment, it will update its particles to more accurately reflect where it is. For each particle, the robot computes the probability that, had it been at the state of the particle, it would perceive what its sensors have actually sensed. It assigns a weight <math>w_t^{[i]}</math> for each particle proportional to the said probability. Then, it randomly draws <math>M</math> new particles from the previous belief, with probability proportional to <math>w_t^{[i]}</math>. Particles which were consistent with sensor readings are more likely to be chosen (possibly more than once) and particles which are inconsistent with sensor readings are rarely picked. As such, particles converge towards a better estimate of the robot's state. This is expected since a robot becomes increasingly sure of its position as it senses its environment.
 
==Properties==
 
=== Non-parametricity ===
The [[particle filter]] central to MCL can approximate multiple different kinds of [[probability distributions]], since it is a [[Non-parametric statistics|non-parametric representation]].<ref name="pr" /> Some other Bayesian localization algorithms, such as the [[Kalman filter]] (and variants, the [[extended Kalman filter]] and the [[unscented Kalman filter]]), assume the belief of the robot is close to being a [[Normal distribution|Gaussian distribution]] and do not perform well for situations where the belief is [[Multimodal distribution|multimodal]].<ref name="pr" /> For example, a robot in a long corridor with many similar-looking doors may arrive at a belief that has a peak for each door, but the robot is unable to distinguish ''which'' door it is at. In such situations, the particle filter can give better performance than parametric filters.<ref name="pr" />
 
Another non-parametric approach to Markov localization is the grid-based localization, which uses a [[histogram]] to represent the belief distribution. Compared with the grid-based approach, the Monte Carlo localization is more accurate because the state represented in samples is not discretized.<ref name="icra1999"/>
 
=== Computational requirements ===
The particle filter's [[time complexity]] is [[linear time|linear]] with respect to the number of particles. Naturally, the more particles, the better the accuracy, so there is a compromise between speed and accuracy and it is desired to find an optimal value of <math>M</math>. One strategy to select <math>M</math> is to continuously generate additional particles until the next pair of command <math>u_t</math> and sensor reading <math>z_t</math> has arrived.<ref name="pr" /> This way, the greatest possible number of particles is obtained while not impeding the function of the rest of the robot. As such, the implementation is adaptive to available computational resources: the faster the processor, the more particles can be generated and therefore the more accurate the algorithm is.<ref name="pr" />
 
Compared to grid-based Markov localization, Monte Carlo localization has reduced memory usage since memory usage only depends on number of particles and does not scale with size of the map,<ref name="icra1999" /> and can integrate measurements at a much higher frequency.<ref name="icra1999"/>
 
=== Particle deprivation ===
A drawback of the naive implementation of Monte Carlo localization occurs in a scenario where a robot sits at one spot and repeatedly senses the environment without moving.<ref name="pr" /> Suppose that the particles all converge towards an erroneous state, or if [[kidnapped robot problem|an occult hand picks up the robot and moves it to a new location]] after particles have already converged. As particles far away from the converged state are rarely selected for the next iteration, they become scarcer on each iteration until they disappear altogether. At this point, the algorithm is unable to recover.<ref name="pr" /> This problem is more likely to occur for small number of particles, e.g. <math>M \leq 50</math>, and when the particles are spread over a large state space.<ref name="pr" /> In fact, any [[particle filter]] algorithm may accidentally discard all particles near the correct state during the resampling step.<ref name="pr" />
 
One way to mitigate this issue is to randomly add extra particles on every iteration.<ref name="pr" /> This is equivalent to assuming that, at any point in time, the robot has some small probability of being [[kidnapped robot problem|kidnapped]] to a random position in the map, thus causing a fraction of random states in the motion model.<ref name="pr" /> By guaranteeing that no area in the map will be totally deprived of particles, the algorithm is now robust against particle deprivation.
 
== References ==
{{reflist}}
 
[[Category:Robot navigation]]
[[Category:Monte Carlo methods]]

Latest revision as of 15:57, 15 October 2014

Marvella is what you can home std test contact her but it's not the most female title out Www.biogids.nl there. California is where her home is but over the counter std test she requirements to transfer because of her family. Since she was 18 she's been working as please click the following internet page a meter reader but she's usually wanted her personal company. One of the very very best issues in the world for him is to gather badges but he is having difficulties to discover time for it.

Feel free to visit my page ... www.crmidol.com