Диссертация (Агентная модель поведения толпы в условиях чрезвычайной ситуации для оценки интенсивности фронта выходного потока), страница 65
Описание файла
Файл "Диссертация" внутри архива находится в папке "Агентная модель поведения толпы в условиях чрезвычайной ситуации для оценки интенсивности фронта выходного потока". PDF-файл из архива "Агентная модель поведения толпы в условиях чрезвычайной ситуации для оценки интенсивности фронта выходного потока", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве НИУ ВШЭ. Не смотря на прямую связь этого архива с НИУ ВШЭ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 65 страницы из PDF
per son = _person ;t h i s . index = _index ;t h i s . x = _x ;t h i s . y = _y ;t h i s . v = _v ;thi s . r_s = _r_s ;t h i s . s_t = _s_t ;t h i s . d_x = _d_x ;t h i s . d_y = _d_y ;}p u b l i c i n t n o m e r C o l l i s i o n ( ) { / / возвращает номер агента , с которым происходит к о л л и з и я , и н а ч е возвращает −135i n t nomer = −1;4045f o r ( Person p : per son ) {i f ( p . g et I n d ex ( ) != index ) {MyVector v ec = new MyVector ( p .
g et X ( )−x , p . g et Y ( )−y ) ;i f ( v ec . l e n g t h ( ) <=p . a r e a . g e t R a d i u s X ( ) + r _ s ) {nomer = p . g e t I n d e x ( ) ;r e t u r n nomer ;}}}r e t u r n nomer ;}50p u b l i c R e s u l t c a l c ( i n t i n d e x _ j ) { / / расчет итоговых з н а ч е н и й скорости и вектора н а п р а в л е н и я движения п о с л е к о л л и з и и55MyVector n = new MyVector ( p e r s o n . g e t ( i n d e x _ j ) . g et X ( )−x , p e r s o n . g e t ( i n d e x _ j ) . g et Y ( )−y ) .
u n i t V e c t o r ( ) ; / / вектор л и н и и центров агентовMyVector t a u = n . r o t a t e D e g r e e ( −90) ; / / тангенсальный векторMyVector v _ o l d = new MyVector ( d_x , d_y ) . c o e f V e c t o r ( v ) ; / / ветор старой скоростиMyVector v _ j _ o l d = new MyVector ( p e r s o n .
g e t ( i n d e x _ j ) . d_x , p e r s o n . g e t ( i n d e x _ j ) . d_y ) . c o e f V e c t o r ( p e r s o n . g e t ( i n d e x _ j ) . v ) ; / / векторстарой скорости дл я д р у г о г о агентаd o u b l e v _ t a u = MyVector . s c a l a r P r o d u c t ( v _ o l d , t a u ) ; / / т а н ген са л ь н а я составляющая старой скоростиd o u b l e v_n = MyVector .
s c a l a r P r o d u c t ( v _ o l d , n ) ; / / н о р м а л ь н а я составляющая старой скоростиd o u b l e v _ j _ n = MyVector . s c a l a r P r o d u c t ( v _ j _ o l d , n ) ; / / н о р м а л ь н а я составляющая старой скорости д р у г о г о агента60d o u b l e v _ h a t _ t a u = v _ t a u ; / / / / т а н ген са л ь н а я составляющая н о в о й скоростиd o u b l e v _ h a t _ n = ( ( s _ t−p e r s o n . g e t ( i n d e x _ j ) .
s _ t ) ∗v_n+2∗ p e r s o n . g e t ( i n d e x _ j ) . s _ t ∗ v _ j _ n ) / ( s _ t + p e r s o n . g e t ( i n d e x _ j ) . s _ t ) ; / / н о р м а л ь н а ясоставляющая н о в о й скорости285d o u b l e v _ h a t = Math . s q r t ( Math . pow ( v _ h a t _ t a u , 2 ) +Math . pow ( v _ h at _ n , 2 ) ) ; / / н о в а я скоростьd o u b l e a l p h a = Math . a t a n ( v _ h a t _ t a u / v _ h a t _ n ) ; / / у г о л отклоненияMyVector d_new = new MyVector ( d_x , d_y ) . r o t a t e R a d i a n ( a l p h a ) ; / / новый вектор н а п р а в л е н и я движения65r e t u r n new R e s u l t ( d_new , v _ h a t ) ;}70/ ∗∗∗ Это ч и сл о и с п о л ь з у е т с я при со хр а н ен и и состояния модели∗ Его р еко м ен дует ся изменить в с л у ч а е и зм ен ен и я к л а с с а∗/p r i v a t e s t a t i c f i n a l l o n g s e r i a l V e r s i o n U I D = 1L ;75}286Приложение ЖКласс принятия решенияЖ.1 Листинг кода класса принятия решенияi m p o r t crowd .
Main . _ p e r s o n _ C l a s s ; / / импорт к л а с с а агентаi m p o r t crowd . P e r s o n ;5101520p u b l i c c l a s s Deсision implements S e r i a l i z a b l e {finalfinalfinalfinalfinalfinalprivateprivateprivateprivateprivateprivateprivateprivateprivateprivateprivateprivateprivateprivateintintintintintintphi_0phi_1phi_2phi_3phi_4phi_5======170;120;80;50;30;10;MyVector d ;MyVector D ;MyVector [ ] d_new ;d o u b l e [ ] v_new ;MyVector [ ] [ ] c o o r d i n a t e ;double [ ] [ ] L;b o o l e a n [ ] [ ] bad ;int [ ] [ ] cross ;d o u b l e min ;i n t imin , jmin ;25_person_Class person ;3035404550556065d o u b l e a0 ; / / параметр a0d o u b l e b0 ; / / параметр b0d o u b l e l e n 1 ; / / параметр l e n 1d o u b l e l e n 2 ; / / параметр l e n 2d o u b l e b11 ; / / параметр b11d o u b l e b12 ; / / параметр b12d o u b l e b21 ; / / параметр b21d o u b l e b22 ; / / параметр b22i n t i n d e x ; / / номер агента , в ы зв а в ш его к л а с сd o u b l e [ ] b e t a _ o c c ; / / м а сси в в е с о в о г о коэффициента b e t a _ o c cd o u b l e [ ] b e t a _ d i r ; / / м а сси в в е с о в о г о коэффициента b e t a _ d i rd o u b l e [ ] b e t a _ d e s t ; / / м а сси в в е с о в о г о коэффициента b e t a _ d e s td o u b l e [ ] b e t a _ a n g l e ; / / м а сси в в е с о в о г о коэффициента b e t a _ a n g l ed o u b l e [ ] b e t a _ w a l l ; / / м а сси в в е с о в о г о коэффициента b e t a _ w a l ld o u b l e [ ] b e t a _ v e l ; / / м а сси в в е с о в о г о коэффициента b e t a _ v e ld o u b l e [ ] b et a_ m ax ; / / м а сси в в е с о в о г о коэффициента b et a _ m a xd o u b l e [ ] b e t a _ a v g ; / / м а сси в в е с о в о г о коэффициента b e t a _ a v gd o u b l e [ ] b e t a _ e x p l ; / / м а сси в в е с о в о г о коэффициента b e t a _ e x p ld o u b l e gamma_1 ; / / параметр gamma_1d o u b l e gamma_2 ; / / параметр gamma_2d o u b l e gamma_3 ; / / параметр gamma_3d o u b l e gamma_4 ; / / параметр gamma_4d o u b l e gamma_5 ; / / параметр gamma_5d o u b l e l a m b d a _ v e l ; / / параметр l a m b d a _ v e ld o u b l e lambda_max ; / / параметр lambda_maxd o u b l e l am b d a_ av g ; / / параметр l a m b d a _ a vgi n t [ ] t h e t a ; / / м а сси в параметра t h e t ad o u b l e x ; / / x−координата агента , в ы зв а в ш его к л а с сd o u b l e y ; / / y−координата агента , в ы зв а в ш его к л а с сd o u b l e x _ e x p l ; / / x−координата агента п о с л е д н е г о в зр ы в аd o u b l e y _ e x p l ; / / y−координата агента п о с л е д н е г о в зр ы в аd o u b l e gamma_acc ; / / параметр gamma_accd o u b l e gamma_dec ; / / параметр gamma_decd o u b l e v ; / / текущая скорость агента , в ы зв а в ш его к л а с сd o u b l e v_comf ; / / комфортная скорость ходьбы агента , в ы зв а в ш его к л а с сd o u b l e v_max ; / / максимальная скорость ходьбы агента , в ы зв а в ш его к л а с сd o u b l e v _ h at _ m ax ; / / максимальная скорость б е г а агента , в ы зв а в ш его к л а с сd o u b l e r _ s ; / / р а ди ус п р о екц и и агента , в ы зв а в ш его к л а с с287707580859095100105110115120125130d o u b l e e t a ; / / параметр e t ad o u b l e d_x ; / / x−координата вектора н а п р а в л е н и я движения агента , в ы зв а в ш его к л а с сd o u b l e d_y ; / / y−координата вектора н а п р а в л е н и я движения агента , в ы зв а в ш его к л а с сd o u b l e D_x ; / / x−координата вектора н а п р а в л е н и я выхода дл я агента , в ы зв а в ш его к л а с сd o u b l e D_y ; / / y−координата вектора н а п р а в л е н и я выхода дл я агента , в ы зв а в ш его к л а с сS t a t u s s t a t u s ; / / текущий статус агента , в ы зв а в ш его к л а с сS i t u a t i o n s i t u a t i o n ; / / текущий статус ситуации дл я агента , в ы зв а в ш его к л а с сE x i t e x i t ; / / сторона выхода агента , в ы зв а в ш его к л а с сd o u b l e [ ] w a l l C o e f ; / / м а сси в коэффициетов близости к стенеd o u b l e m easu r e ; / / п ер и о д между шагами си м ул яц и иp u b l i c D e с i s i o n ( _ p e r s o n _ C l a s s _ p e r s o n , d o u b l e _a0 , d o u b l e _b0 , d o u b l e _ l e n 1 , d o u b l e _ l e n 2 , d o u b l e _b11 , d o u b l e _b12 , d o u b l e _b21 , d o u b l e_b22 , i n t _ i n d ex , d o u b l e [ ] _ b e t a _ o c c , d o u b l e [ ] _ b e t a _ d i r , d o u b l e [ ] _ b e t a _ d e s t , d o u b l e [ ] _ b e t a _ a n g l e , d o u b l e [ ] _ b e t a _ w a l l , d o u b l e [ ]_ b e t a _ v e l , d o u b l e [ ] _ b et a_ m ax , d o u b l e [ ] _ b e t a _ a v g , d o u b l e [ ] _ b e t a _ e x p l , d o u b l e _gamma_1 , d o u b l e _gamma_2 , d o u b l e _gamma_3 , d o u b l e_gamma_4 , d o u b l e _gamma_5 , d o u b l e _ l am b d a_ v el , d o u b l e _lambda_max , d o u b l e _ l am b d a_ av g , i n t [ ] _ t h e t a , d o u b l e _x , d o u b l e _y , d o u b l e_ x _ ex p l , d o u b l e _ y _ ex p l , d o u b l e _gamma_acc , d o u b l e _gamma_dec , d o u b l e _v , d o u b l e _v_comf , d o u b l e _v_max , d o u b l e _v_hat_max , d o u b l e_ r _ s , d o u b l e _ e t a , d o u b l e _d_x , d o u b l e _d_y , d o u b l e _D_x , d o u b l e _D_y , S t a t u s _ s t a t u s , S i t u a t i o n _ s i t u a t i o n , E x i t _ e x i t , d o u b l e [ ]_ w a l l C o e f , d o u b l e _ m easu r e ) { / / конструкторt h i s .
per son = _person ;t h i s . a0 = _a0 ;t h i s . b0 = _b0 ;t h i s . len1 = _len1 ;t h i s . len2 = _len2 ;t h i s . b11 = _b11 ;t h i s . b12 = _b12 ;t h i s . b21 = _b21 ;t h i s . b22 = _b22 ;t h i s . index = _index ;t h i s . beta_occ = _beta_occ ;this . beta_dir = _beta_dir ;thi s . beta_dest = _beta_dest ;t h i s . beta_angle = _beta_angle ;t h i s . beta_wall = _beta_wall ;this . beta_vel = _beta_vel ;t h i s .
b et a_ m ax = _ b et a_ m ax ;t h i s . beta_avg = _beta_avg ;t h i s . beta_expl = _beta_expl ;t h i s . gamma_1 = _gamma_1 ;t h i s . gamma_2 = _gamma_2 ;t h i s . gamma_3 = _gamma_3 ;t h i s . gamma_4 = _gamma_4 ;t h i s . gamma_5 = _gamma_5 ;t h i s . lambda_vel = _lambda_vel ;t h i s . lambda_max = _lambda_max ;t h i s . l am b d a_ av g = _ l am b d a_ av g ;this .
theta = _theta ;t h i s . x = _x ;t h i s . y = _y ;t h i s . x_expl = _x_expl ;t h i s . y_expl = _y_expl ;t h i s . gamma_acc = _gamma_acc ;t h i s . gamma_dec = _gamma_dec ;t h i s . v = _v ;t h i s . v_comf = _v_comf ;t h i s . v_max = _v_max ;t h i s . v _ h at _ m ax = _ v _ h at _ m ax ;thi s . r_s = _r_s ;t h i s . eta = _eta ;t h i s .
d_x = _d_x ;t h i s . d_y = _d_y ;t h i s . D_x = _D_x ;t h i s . D_y = _D_y ;this . status = _status ;this . situation = _situation ;this . exit = _exit ;t h i s . wallCoef = _wallCoef ;t h i s . m easu r e = _ m easu r e ;initialization () ;}p r i v a t e void i n i t i a l i z a t i o n ( ) {f i n a l i n t theta_max = t h e t a [ s i t u a t i o n . o r d i n a l ( ) ] ;int i , j ;135d = new MyVector ( d_x , d_y ) ; / / вектор н а п р а в л е н и я движенияD = new MyVector ( D_x , D_y ) ; / / вектор н а п р а в л е н и я выходаv_new = new d o u b l e [ 3 ] ; / / м а сси в возможных скоростей140v_new [ 0 ] = (1−gamma_dec ) ∗v ;v_new [ 1 ] = v ;288i f ( s i t u a t i o n == S i t u a t i o n .
l a c k ) {v_new [ 2 ] = v + gamma_acc ∗( v_max−v ) ;} else {v_new [ 2 ] = v + gamma_acc ∗( v_hat_max−v ) ;}145s w i t c h ( t h e t a _ m a x ) { / / построение м а сси в а секторовcase phi_0 :d_new = new MyVector [ 1 1 ] ;d_new [ 0 ] = d ;d_new [ 1 ] = d . r o t a t e D e g r e e ( 1 0 ) ;d_new [ 2 ] = d . r o t a t e D e g r e e ( −10) ;d_new [ 3 ] = d . r o t a t e D e g r e e ( 2 0 ) ;d_new [ 4 ] = d . r o t a t e D e g r e e ( −20) ;d_new [ 5 ] = d . r o t a t e D e g r e e ( 3 2 . 5 ) ;d_new [ 6 ] = d . r o t a t e D e g r e e ( − 3 2 .5 ) ;d_new [ 7 ] = d . r o t a t e D e g r e e ( 5 0 ) ;d_new [ 8 ] = d . r o t a t e D e g r e e ( −50) ;d_new [ 9 ] = d . r o t a t e D e g r e e ( 7 2 .