1 /*  _______________________________________________________________________
2 
3     DAKOTA: Design Analysis Kit for Optimization and Terascale Applications
4     Copyright 2014-2020 National Technology & Engineering Solutions of Sandia, LLC (NTESS).
5     This software is distributed under the GNU Lesser General Public License.
6     For more information, see the README file in the top Dakota directory.
7     _______________________________________________________________________ */
8 
9 //- Class:	 NonDLocalEvidence
10 //- Description: Class for the Evidence theory methods within DAKOTA/UQ
11 //- Owner:	 Laura Swiler
12 //- Checked by:
13 //- Version:
14 
15 #ifndef NOND_LOCAL_EVIDENCE_H
16 #define NOND_LOCAL_EVIDENCE_H
17 
18 #include "NonDLocalInterval.hpp"
19 
20 namespace Dakota {
21 
22 
23 /// Class for the Dempster-Shafer Evidence Theory methods within DAKOTA/UQ
24 
25 /** The NonDEvidence class implements the propagation of epistemic uncertainty
26     using Dempster-Shafer theory of evidence. In this approach, one assigns
27     a set of basic probability assignments (BPA) to intervals defined
28     for the uncertain variables.  Input interval combinations are calculated,
29     along with their BPA.  Currently, the response function is evaluated at
30     a set of sample points, then a response surface is constructed which is
31     sampled extensively to find the minimum and maximum within each input
32     interval cell, corresponding to the belief and plausibility within that
33     cell, respectively.  This data is then aggregated to calculate cumulative
34     distribution functions for belief and plausibility. */
35 
36 class NonDLocalEvidence: public NonDLocalInterval
37 {
38 public:
39 
40   //
41   //- Heading: Constructors and destructor
42   //
43 
44   NonDLocalEvidence(ProblemDescDB& problem_db, Model& model); ///< constructor
45   ~NonDLocalEvidence();                                       ///< destructor
46 
47   //
48   //- Heading: Member functions
49   //
50 
51 protected:
52 
53   //
54   //- Heading: Virtual function redefinitions
55   //
56 
57   void initialize();
58   void set_cell_bounds();
59   void truncate_to_cell_bounds(RealVector& initial_pt);
60   void post_process_cell_results(bool maximize);
61   void post_process_response_fn_results();
62   void post_process_final_results();
63 
64 private:
65 
66   //
67   //- Heading: Data members
68   //
69 
70 };
71 
72 } // namespace Dakota
73 
74 #endif
75