亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? verify.m

?? CheckMate is a MATLAB-based tool for modeling, simulating and investigating properties of hybrid dyn
?? M
字號:
function verify(varargin)

% Perform verification of a CheckMate model. 
%
% Syntax:
%   "verify"
%
%   "verify -option1 -option2 ..."
%
% Description:
%   "verify" uses the parameters returned by the function contained in
%   "GLOBAL_APARAM" to perform verification of the ACTL specification in
%   "GLOBAL_SPEC" on the system named in "GLOBAL_SYSTEM".  These global
%   variables must be set up and the model in "GLOBAL_SYSTEM" must be open
%   prior to invoking the "verify" command.  This can be accomplished
%   manually or via an m-file script or function.  "verify -option1
%   -option2 ..." allows for any combination of the options described
%   below.
%
%   *"step <step>" execute only the single verification step "step"
%
%   *"resume" continue the verification process using the current
%   workspace data
%
%   *"nopause" refine the quotient system without prompting the user for
%   input
%
%   *"save <savefile>" save the workspace data after each iteration using
%   "savefileN.mat" to save the data after the Nth iteration
%
%   *"close" close the Simulink model after the PIHA has been constructed
%
%   *"discard" throw away all unreachable states in each iteration
%
% Examples:
%   See the examples in CMRoot/demo. 
%
% Implementation:
%   The "verify" routine is divided into several steps: 
%
%
%
%   The first step is "'piha_conversion'".  In this step, the analysis
%   region (AR) is partitioned into cells using the hyperplanes from each
%   of the polyhedral threshold blocks (PTHBs), and locations are created
%   from combinations of these cells, and the discrete states of the
%   system.  The set of locations is intersected with the `initial
%   continuous set (ICS)` from the CheckMate model to find the set of
%   `initial locations`.  The intial locations are then used to build a
%   polyhedral invariant hybrid automaton (PIHA) representation of the
%   system.  Finally, the PIHA is stored for future use in the global
%   variable "GLOBAL_PIHA".
%
%
%
%   In the next step, "'iauto_part'", the PIHA is discretized and a few
%   special states are added to each location to form the initial
%   approximating automaton.  This approximating automaton is stored in
%   the variable "GLOBAL_AUTOMATON".
%
%
%
%   "'iauto_build'" builds the initial automaton iteratively.  During this
%   step, the routine computes the mappings for the states in the
%   approximating automaton "GLOBAL_AUTOMATON" that are reachable from the
%   initial states and updates the transition relation. If new states are
%   found, then mappings are computed for those states, and the process
%   is repeated until no new states are found.  This step concludes by
%   generating a generic transition system "GLOBAL_TRANSITION" which is
%   used to perform the actual ACTL verification.
%
%
%
%   Next, in the step "'parse_spec'", the ACTL specification is processed
%   and several related global variables are set up.  "GLOBAL_SPEC_TREE"
%   contains the parsed ACTL specification in a tree structure.
%   "GLOBAL_AP_BUILD_LIST" contains the parse tree modified by collapsing
%   the raw terminal symbols into the appropriate CheckMate atomic
%   propostions.
%
%
%
%   In the "'refinement_decision'" step, the ACTL specification is
%   evaluated in relation to the current approximating automaton.  If
%   "GLOBAL_AUTOMATON" satisfies the specification, then the user is
%   informed that the system already satisfies the specification and no
%   refinement is necessary.  If the system does not satisfy the
%   specification, the user is presented with a list of states that could
%   be refined ("GLOBAL_TBR") to form a better approximation, and
%   prompted for a decision continue.  The user can press any key to
%   continue, or press ctrl-C to break the program.  The workspace data
%   can be saved, and used to continue the verification at a later time.
%
%
%
%   If the current approximation already satisfies the ACTL
%   specification, then the next step is "'done'" and the routine
%   terminates.  However, if the system does not satisfy the
%   specification, and the user chooses to continue, the next step is
%   "'refine_automaton'" and the process continues.
%
%
%
%   In the "'refine_automaton'" step, the polytope for each state listed
%   in "GLOBAL_TBR" is split into multiple polytopes.  These refined
%   states are placed in "GLOBAL_NEW_AUTOMATON" along with copies of the
%   states that are not refined.  The indices of the newly split states in
%   "GLOBAL_NEW_AUTOMATON" are added to the cell array
%   "GLOBAL_RAUTO_REMAP_LIST". This is the list of states for which the
%   mapping set needs to be re-computed.
%
%
%
%   "'rauto_mapping'" takes the state indices in "GLOBAL_RAUTO_REMAP_LIST"
%   and re-computes the mapping from those states in
%   "GLOBAL_NEW_AUTOMATON".  Once the mapping is completed for the new
%   approximating automaton, the transitions must be updated as well.
%
%
%
%   "'rauto_transition'" updates the transitions in
%   "GLOBAL_NEW_AUTOMATON", to reflect the changes caused by the refinement
%   of "GLOBAL_AUTOMATON".  Once this step is finished, the refinement is
%   complete and "GLOBAL_NEW_AUTOMATON" contains the newly refined
%   approximating automaton.
%
%
%
%   The next step, "'update_automaton'" updates the workspace variables
%   in preparation for the next iteration of the verification process.
%   "GLOBAL_AUTOMATON" is updated to contain a copy of
%   "GLOBAL_NEW_AUTOMATON", "GLOBAL_NEW_AUTOMATON" is reset to an empty cell
%   array, and the iteration counter, "GLOBAL_ITERATION", is incremented by
%   one.
%
%
%
%   The final step in the refinement process is to update the generic
%   transition system in "GLOBAL_TRANSITION".  This is accomplished by
%   generateing a new generic transition system from the updated
%   "GLOBAL_AUTOMATON" and replacing the old "GLOBAL_TRANSITION" with
%   the new transition system.
%
%
%
%   From this point, the process returns to the "'parse_spec'" step, and
%   repeats until the current approximation satisfies the ACTL
%   specification, or until the user chooses to break the program.
%   The progress of the routine is saved in the variable
%   "GLOBAL_PROGRESS", so that the routine can be stopped and restarted
%   from almost any point in the process.
%
% See Also:
%   validate,piha,iauto_part,iauto_build,parse,compile_ap,build_ap,evaluate,
%   refine_auto,rauto_mapping,rauto_tran,auto2xsys 

%
% Last change: 11/18/2002 JPK


%init_time = cputime;
% Declare global variables (see the file global_var.m for details)
initial_time=cputime;
global_var;

GLOBAL_APPROX_PARAM=param(1);
% 'GLOBAL_APPROX_PARAM.W' is updated in line 232ff if not set by the user.

warning off;
% Default flags
start_flag = 1;
single_step_flag = 0;
save_flag = 0;
pause_flag = 1;
close_flag = 0;
discard_flag = 0;
GLOBAL_TIME_ELAPSED={};
GLOBAL_TIME_ELAPSED.iauto_part=0;
GLOBAL_TIME_ELAPSED.iauto_build=[];
GLOBAL_TIME_ELAPSED.total_time=0;

k = 1;
while (k <= length(varargin))
  switch varargin{k}
    case '-step',
      single_step_flag = 1;
      start_flag = 0;
      k = k+1;
      GLOBAL_PROGRESS.step = varargin{k};
    case '-resume',
      start_flag = 0;
    case '-nopause',
      pause_flag = 0;
    case '-save',
      save_flag = 1;
      k = k+1;
      savefile = varargin{k};
    case '-close',
      close_flag = 1;
    case '-discard',
      discard_flag = 1;
    case '-verbose',
      GLOBAL_APPROX_PARAM.verbosity = max(1,GLOBAL_APPROX_PARAM.verbosity);
    otherwise
      error(['Unknown option ''' varargin{k} '''.'])
  end
  k = k+1;
end


if start_flag
  GLOBAL_PROGRESS.step = 'piha_conversion';
  GLOBAL_ITERATION = 0;
end

try_before_iauto_build=0;

if isempty(GLOBAL_PROGRESS)
    GLOBAL_PROGRESS.step={'done'};
    fprintf(1,'There is no previous verification process to continue.\n');
end

while ~ismember(GLOBAL_PROGRESS.step,{'done'})
  switch GLOBAL_PROGRESS.step
    case 'piha_conversion',
      fprintf(1,'Performing PIHA conversion.\n')
      init_time = cputime;
      piha(GLOBAL_SYSTEM);
      GLOBAL_TIME_ELAPSED.piha_conversion = cputime - init_time;
      fprintf(1,'PIHA conversion completed in %6.2f seconds.\n',GLOBAL_TIME_ELAPSED.piha_conversion)
      % >>>>>>>>>>>> Parameter Change -- OS -- 06/13/02 <<<<<<<<<<<<
      % Update of the field 'W' of GLOBAL_APPROX_PARAM (requires GLOBAL_PIHA)
      if isempty(GLOBAL_APPROX_PARAM.W)
         states=0;
         for k=1:length(GLOBAL_PIHA.SCSBlocks);
            states=states+GLOBAL_PIHA.SCSBlocks{k}.nx;    
         end
         GLOBAL_APPROX_PARAM.W=eye(states);
      end
      % >>>>>>>>>>>> -------------- end --------------- <<<<<<<<<<<<
      if close_flag
        close_system(GLOBAL_SYSTEM)
      end
      next_step = 'iauto_part';
    case 'iauto_part',
      fprintf(1,'\n')
      init_time = cputime;
      iauto_part;
      GLOBAL_TIME_ELAPSED.iauto_part= cputime - init_time;
      fprintf(1,'reachability analysis and initial partition completed in %6.2f seconds.\n',GLOBAL_TIME_ELAPSED.iauto_part)
      next_step = 'iauto_build';
    case 'iauto_build',
       if try_before_iauto_build
          auto2xsys;
          next_step = 'parse_spec';
       else
      	fprintf(1,'\n')
      	continu = isfield(GLOBAL_PROGRESS,'idx');
      	init_time = cputime;
        iauto_build(continu);
        GLOBAL_TIME_ELAPSED.iauto_build(length(GLOBAL_TIME_ELAPSED.iauto_build)+1)= cputime - init_time;
        fprintf(1,'construction of transition system completed in %6.2f seconds.\n',...
            GLOBAL_TIME_ELAPSED.iauto_build(length(GLOBAL_TIME_ELAPSED.iauto_build)))
      	if discard_flag
				remove_unreachables;
      	end
         next_step = 'parse_spec';
       end
    case 'parse_spec',
          %Test Stateflow state names.  If any are named 'avoid' or 'reach' create
          %a new specification automatically.  The specification should be AG~avoid
          %and/or AFreach.  Added by Jim K 2/10/2002.
          GLOBAL_SPEC_TREE=cell(0);
          GLOBAL_AP_BUILD_LIST=cell(0);
          spec_count=0;
          for m=1:length(GLOBAL_PIHA.FSMBlocks)
              for n=1:length(GLOBAL_PIHA.FSMBlocks{m}.states)
                    state_name=GLOBAL_PIHA.FSMBlocks{m}.states{n};
                  if findstr('avoid',state_name)
                    new=length(GLOBAL_SPEC)+1;
                    fsmname = GLOBAL_PIHA.FSMBlocks{m}.name;
                    GLOBAL_SPEC{new}=['(AG ~out_of_bound)&(AG ~' fsmname ' == ' state_name ')'];
                    spec_count=spec_count+1;
                  elseif findstr('reach',state_name)
                    new=length(GLOBAL_SPEC)+1;
                    fsmname = GLOBAL_PIHA.FSMBlocks{m}.name;
                    GLOBAL_SPEC{new}=['(AG ~out_of_bound)&(AF ' fsmname ' == ' state_name ')'];
                    spec_count=spec_count+1;
                  end
              end
          end
          GLOBAL_SPEC{length(GLOBAL_SPEC)+1}=spec_count;
          
          for i=1:length(GLOBAL_SPEC)-1
            GLOBAL_SPEC_ELEMENT{i} = GLOBAL_SPEC{i}; 
            fprintf(1,'\nParsing specification %d: %s\n',i,GLOBAL_SPEC_ELEMENT{i});
            % match parentheses
            match_paren(GLOBAL_SPEC_ELEMENT{i},0);
            % identify terminal symbols in the ACTL specification string and
            % parse the symbols to obtain parse tree for the specification
            GLOBAL_SPEC_TREE{i} = parse(identerm(GLOBAL_SPEC_ELEMENT{i}));
            % compile the list of all atomic propositions in the parse tree and 
            % replace all the atomic proposition subtree by a single leaf
            fprintf('Compiling list of atomic propositions: %s\n',GLOBAL_SPEC_ELEMENT{i});
            [GLOBAL_SPEC_TREE{i},GLOBAL_AP_BUILD_LIST{i}] = ...
                compile_ap(GLOBAL_SPEC_TREE{i});
            for k = 1:length(GLOBAL_AP_BUILD_LIST{i})
                fprintf(1,' * %s\n',GLOBAL_AP_BUILD_LIST{i}{k}.name)
            end
            
        end
          next_step = 'refinement_decision';
  
    case 'refinement_decision',
          next_step = make_decision();
        
    case 'refine_automaton',
      if save_flag
	save([savefile num2str(GLOBAL_ITERATION)])
      end
      if pause_flag
        fprintf(1,'Please resume verification to refine the abstraction.\n')
        return
      end
      refine_auto(discard_flag);
      next_step = 'rauto_mapping';
    case 'rauto_mapping',
      fprintf(1,'\n')
      continu = isfield(GLOBAL_PROGRESS,'idx');
      rauto_mapping(continu);
      %next_step = 'rauto_transition';
      next_step = 'update_automaton';
    case 'rauto_transition',
      fprintf(1,'\n')
      continu = isfield(GLOBAL_PROGRESS,'idx');
      rauto_tran(continu);
      next_step = 'update_automaton';
    case 'update_automaton',
      GLOBAL_AUTOMATON = GLOBAL_NEW_AUTOMATON;
      GLOBAL_ITERATION = GLOBAL_ITERATION + 1;
      GLOBAL_NEW_AUTOMATON = {};
      next_step = 'auto_to_xsystem';
    case 'auto_to_xsystem',
      fprintf(1,'\nGenerating generic transition system.\n')
      % flatten out GLOBAL_AUTOMATON to generic transition system
      % GLOBAL_TRANSITION, the reverse transition system is also obtained in
      % GLOBAL_REV_TRANSITION
      auto2xsys;
      if discard_flag
	remove_unreachables;
      end
      next_step = 'parse_spec';
    otherwise,
      error(['Unknown verification step ''' GLOBAL_PROGRESS.step  '''.'])
  end
  GLOBAL_PROGRESS.step = next_step;
  if isfield(GLOBAL_PROGRESS,'idx')
    GLOBAL_PROGRESS = rmfield(GLOBAL_PROGRESS,'idx');
  end
  % If single step option is specified then stop.
  if single_step_flag
    break;
  end
end

if strcmp(GLOBAL_PROGRESS.step,'done') & save_flag 
  save([savefile num2str(GLOBAL_ITERATION)])
end

GLOBAL_TIME_ELAPSED.total_time = cputime - initial_time;
fprintf(1,'total verification time is %8.2f seconds.\n',GLOBAL_TIME_ELAPSED.total_time)

warning on;
return

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美一| 91精品国产入口| 亚洲欧洲99久久| 99久久免费精品| 一区二区三区精密机械公司| 日本精品一区二区三区四区的功能| 中文字幕在线不卡一区二区三区 | 精品影视av免费| 欧美精品一区二区精品网| 国产精品自拍在线| 亚洲色图在线看| 欧美日韩高清一区二区三区| 秋霞电影一区二区| 精品少妇一区二区三区在线播放 | 欧美色综合天天久久综合精品| 亚洲影视在线观看| 欧美一区二区免费| 国产福利91精品一区二区三区| 国产精品家庭影院| 欧美日韩在线播放三区四区| 奇米影视一区二区三区小说| 国产欧美日韩卡一| 欧美日韩视频在线一区二区| 精品无码三级在线观看视频| 亚洲国产成人在线| 欧美精选午夜久久久乱码6080| 久久99国产精品麻豆| 国产精品免费网站在线观看| 欧美性受xxxx| 国产盗摄视频一区二区三区| 亚洲一区二区3| 久久久久久99久久久精品网站| 色综合一个色综合| 国产精品正在播放| 丝袜美腿亚洲一区二区图片| 国产女人水真多18毛片18精品视频| 波多野结衣在线aⅴ中文字幕不卡| 亚洲福利视频一区二区| 欧美激情一区二区三区不卡| 欧美精品日韩精品| 色综合久久中文综合久久97| 国产一区二区不卡在线| 亚洲成人久久影院| 1000部国产精品成人观看| 精品欧美乱码久久久久久| 欧洲亚洲国产日韩| 成人app在线观看| 韩国毛片一区二区三区| 亚洲高清视频在线| 日韩毛片精品高清免费| 久久精品夜色噜噜亚洲a∨| 777久久久精品| 日本精品视频一区二区| 懂色av一区二区三区免费观看| 日本中文字幕一区二区视频| 亚洲精品免费看| 国产欧美日韩另类一区| 久久久久久久久久电影| 精品噜噜噜噜久久久久久久久试看| 在线观看欧美黄色| 91小视频免费观看| 成人免费视频视频| 国产成人亚洲综合a∨婷婷| 蜜桃视频第一区免费观看| 亚洲二区视频在线| 亚洲无人区一区| 夜夜嗨av一区二区三区| 亚洲丝袜另类动漫二区| 国产精品美女久久久久aⅴ国产馆| 日韩精品自拍偷拍| 日韩免费电影网站| 日韩亚洲欧美在线| 欧美xxx久久| 久久综合99re88久久爱| 欧美哺乳videos| 欧美xxxxx牲另类人与| 日韩一级完整毛片| 日韩欧美国产高清| 精品成人a区在线观看| 精品久久久影院| 国产亚洲精品7777| 国产精品无圣光一区二区| 国产午夜亚洲精品理论片色戒| 久久久久99精品国产片| 国产午夜精品一区二区三区视频| 久久精品一级爱片| 亚洲欧美一区二区三区国产精品 | 亚洲成人自拍一区| 午夜激情久久久| 免费在线观看不卡| 激情综合色丁香一区二区| 国产剧情一区二区三区| 波多野结衣视频一区| 欧美自拍丝袜亚洲| 91精品国产一区二区三区蜜臀| 欧美一区午夜视频在线观看 | 欧美日韩一区精品| 4438成人网| 国产视频一区在线观看| 亚洲麻豆国产自偷在线| 午夜电影一区二区三区| 黄色精品一二区| 99免费精品在线观看| 欧美色视频在线| xf在线a精品一区二区视频网站| 久久婷婷久久一区二区三区| 国产精品久久久久国产精品日日 | 中文字幕电影一区| 一区二区三区欧美日| 免费美女久久99| a级高清视频欧美日韩| 欧美色老头old∨ideo| 日韩欧美国产综合| 亚洲视频在线一区观看| 日韩国产在线一| 成人动漫一区二区三区| 精品1区2区3区| 久久精品欧美日韩精品| 亚洲香肠在线观看| 国产一区二区福利视频| 欧美三级日韩在线| 久久久久亚洲综合| 五月婷婷综合网| 成人免费视频视频| 日韩免费看网站| 一区二区视频在线| 国产精品香蕉一区二区三区| 在线观看不卡一区| 国产情人综合久久777777| 日韩国产欧美在线播放| 成人永久免费视频| 精品少妇一区二区三区视频免付费| 亚洲欧美日韩一区二区三区在线观看| 免费成人在线观看视频| 在线一区二区三区做爰视频网站| 久久网站最新地址| 青青青伊人色综合久久| 色天使色偷偷av一区二区| 久久久久久久性| 日本三级韩国三级欧美三级| 色综合久久综合中文综合网| 久久婷婷国产综合国色天香| 丝袜美腿高跟呻吟高潮一区| 91一区二区三区在线播放| 国产亚洲婷婷免费| 久久国产精品72免费观看| 欧美三级中文字| 亚洲精品ww久久久久久p站| 成人激情视频网站| 久久夜色精品国产欧美乱极品| 日韩精品乱码av一区二区| 欧美最猛性xxxxx直播| 1024成人网| 99re在线视频这里只有精品| 久久精品亚洲一区二区三区浴池| 青青草97国产精品免费观看无弹窗版 | 亚洲综合自拍偷拍| 99久久99久久综合| 国产精品你懂的在线欣赏| 成人性生交大片| 国产精品日日摸夜夜摸av| 国产成人免费视频精品含羞草妖精| 欧美va亚洲va| 国产精品自拍在线| 日本一区二区免费在线| 国产v日产∨综合v精品视频| 久久久久国产精品厨房| 国产成人在线看| 欧美高清在线一区二区| 成人精品视频一区二区三区| 欧美经典一区二区| 91亚洲精品乱码久久久久久蜜桃 | 久久一夜天堂av一区二区三区| 日本一区中文字幕| 日韩欧美一级二级三级| 国产主播一区二区三区| 欧美国产精品劲爆| 99精品国产91久久久久久| 亚洲精品你懂的| 欧美卡1卡2卡| 国产在线视频一区二区三区| 日本一区二区三区视频视频| www.亚洲免费av| 夜色激情一区二区| 日韩精品一区二| 成+人+亚洲+综合天堂| 亚洲乱码日产精品bd| 欧美色图免费看| 精品一二三四区| 中文字幕一区免费在线观看| 色婷婷av一区二区三区之一色屋| 亚洲va国产va欧美va观看| 日韩午夜av电影| 成人在线视频一区二区| 亚洲精品中文在线| 日韩一区二区在线看| 成人sese在线| 丝袜脚交一区二区| 欧美国产精品劲爆| 欧美精品在线视频|