Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The question about Observation Probability Function #17

Closed
Louis-Quan opened this issue Jul 27, 2022 · 5 comments
Closed

The question about Observation Probability Function #17

Louis-Quan opened this issue Jul 27, 2022 · 5 comments

Comments

@Louis-Quan
Copy link

Dear author:
Thank you very much for providing the code for the public. I have two question after reading your article and code.
First, the definition of observation probability function is the probability of joint observations. I don't understand why you define the observation probability function as the measurement errors that may occur in sensors.
Second, In the section 4.1 of your article you said "Specifically, Ω(ot+1|st+1, at) = st+1 + N (0, Σ), where N (0, Σ) is an isotropic multi-variable Gaussian distribution and Σ is dependent on the physical properties of sensors" However, I can‘t find the observation probability function in your code.
I'll appreciate it if you could answer my question. Thank you so much!!!
Best wishes

@hsvgbkhgbv
Copy link
Member

Dear Quan,

Thank you for your interests.

Q1. First, the definition of observation probability function is the probability of joint observations. I don't understand why you define the observation probability function as the measurement errors that may occur in sensors.

A1. This is the common setting to instantiate or model the observation probability function in the realistic world. Please refer to [1].

Q2. Second, In the section 4.1 of your article you said "Specifically, Ω(ot+1|st+1, at) = st+1 + N (0, Σ), where N (0, Σ) is an isotropic multi-variable Gaussian distribution and Σ is dependent on the physical properties of sensors" However, I can‘t find the observation probability function in your code.

A2. See

self.v_upper = getattr(args, "v_upper", 1.05)
self.v_lower = getattr(args, "v_lower", 0.95)
self.active_demand_std = self.active_demand_data.values.std(axis=0) / 100.0
self.reactive_demand_std = self.reactive_demand_data.values.std(axis=0) / 100.0
self.pv_std = self.pv_data.values.std(axis=0) / 100.0

Reference
[1] Oliehoek, F. A., & Amato, C. (2016). A concise introduction to decentralized POMDPs. Springer.

@Louis-Quan
Copy link
Author

Thank you for your reply. It's really kind of you. But I still can't understand the code you show. It is just a caculation of standard deviation. What is the isotropic multi-variable Gaussian distribution and Σ(dependent on the physical properties of sensors)?
In your code you have defined a function "def _set_demand_and_pv(self, add_noise=True):", which add uncertainty to data with unit truncated gaussian. Is it the observation probability function? Or is it the " In practice, Gaussian noises are added to load active and reactive powers" in your paper?

I'm looking forward to your reply. Thank you so much!

@hsvgbkhgbv
Copy link
Member

hsvgbkhgbv commented Jul 28, 2022

Dear Quan,

Q1. But I still can't understand the code you show. It is just a caculation of standard deviation. What is the isotropic multi-variable Gaussian distribution and Σ(dependent on the physical properties of sensors)?
In your code you have defined a function "def _set_demand_and_pv(self, add_noise=True):", which add uncertainty to data with unit truncated gaussian. Is it the observation probability function?

A1. Sorry for my carelessness due to the emergent rebuttals. The snippet of code I showed before was just the definition of std and you are right that the "def _set_demand_and_pv(self, add_noise=True)" is the function to add noise with the std defined above.

Q2. Or is it the " In practice, Gaussian noises are added to load active and reactive powers" in your paper?

A2. Yes, it is. Besides, the uncertainty of the sensor for PV active power is also considered such that

if add_noise:
pv += self.pv_std * np.abs(np.random.randn(*pv.shape))

By the way, here we assume the truncated Gaussian distribution in case of the invalid negative active power.

@Louis-Quan
Copy link
Author

Thank you very much!Respect!

@hsvgbkhgbv
Copy link
Member

You are welcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants