Takafumi Horiuchi

Diplomverko pri programado kun limigoj

Resumo

La simulilo ripetas multajn kondiĉojn laŭeble pli ofte kiam okazaĵoj povas okazi plej diversmaniere. Se eblas taksi el la progreso, ke 'ĉi tiu kondiĉo jam neniam validos', ĉu eblas sekure ĉesi tiu inspektadon? Ni desegnis kaj efektivigis metodon por la modeliga lingvo de hibrida sistemo HydLa, kiu, uzante la direkton de valoroŝanĝo kiel indikon, forigas neiniciatajn kondiĉojn el aktuala serĉado.

En la taksa modelo, la realigtempo estis mallongigita al ĉirkaŭ duono de la tradicia sen ŝanĝi la simulan rezulton. La graveco ne estas en simple rapido de ĉiuj kalkuloj, sed en la uzo de la problemo-strukturo por malpliigi la eblecojn necesajn konsideri.

La koncepto de limigita programado lernita en ĉi tiu esploro nun formas la fundamenton de Mia desegnfilozofio. Anstataŭ rekte specifii unuopajn rezultojn, oni difinas regulojn, prioritatojn kaj limojn, kaj derivemsolvojn el ili interne.


Defioj — ju pli da eblecoj, des pli malrapida estas la kalkulado

HydLa estas lingvo por priskribi “hibridajn sistemojn”, kiuj kombinas kontinuan ŝanĝon kaj diskretajn eventojn, kiel matematikajn kaj logikajn limigojn. Sen neceso skribi ĉiujn procedurojn en ordo, oni povas simuli konduton kiu kontentigas kondiĉojn per deklarado kio devus okazi.

Aliflanke, en modelo kun multaj reguloj kiuj validas depende de kondiĉoj, la simuililo ripete kontrolas grandan nombron da kandidatoj. Ĉar ili restas kiel kandidatoj eĉ se la kondiĉoj jam ne validas aŭ iam en la estonteco, la pli granda la modelo, des pli multaj nebezonataj kalkuloj akumuliĝas.

Temo — Sistemo kie miksiĝas kontinua kaj diskreta

La saltanta pilko estas klara ekzemplo de hibrida sistemo. En aerospaco ĝia pozicio kaj rapido ŝanĝiĝas kontinue, sed kiam ĝi frapas la plankon, okazas disreta evento de reboto. Termostato, aŭtomobilo kaj roboto ankaŭ enhavas la samajn du tipojn de ŝanĝoj interne, kvankam sur malsamaj skaloj.

Por taksado, oni uzis modelon en kiu horizontale moviĝanta pilko rebatis sur surfaco dividita en plurajn sekciojn. Ĉiu sekcio havas regulon kun kondiĉo: 'se la pilko atingas ĉi tiun gamon, ĝi rebatos'. Pliigante la nombro de sekcioj, oni povas reprezenti pli da objektoj, sed ankaŭ la simulatoro devas esplori pli da kondiĉoj.

Fonto-kodo de HydLa kiu difinas la konduton de pilko moviĝanta horizontale kaj rebatiĝanta en iu ajn el la najbaraj N-flankaj segmentoj.
La mallonga modelo de HydLa priskribas surfacon dividitan en unu pilkon kaj N sekciojn kun gardo.

Kollo — la nombro de kondiĉoj plialtigas la komputdan laboron

Reguloj kiuj validas nur kiam certaj kondiĉoj estas plenumitaj estas nomataj 'kun-gvardiaj restriktoj'. En la taksa modelo, la rebatiĝa regulo de specifa sekcio validas nur kiam la pilko atingas la plankon kaj ĝia horizontala pozicio troviĝas ene de tiu sekcio.

Kiam oni pliigis la nombron de sekcioj de 10 ĝis 200, la tradicia simuliilo malrapidis proksimume laŭ la kvadrato de la sekcia nombro. En grandaj modeloj, ĉar la nombro de objektoj, kontaktoareoj kaj eblaj eventoj kreskas, la sama problemo fariĝas pli granda.

Esploro — 96% de la prilaborada tempo troviĝis kie

Kiam oni mezuris la prilaboran tempon, en modelo kun 100 blokoj, 96% de la tuta tempo estis uzata por FindMinTime. Ĉi tio estas la procezo por trovi la «plej proksime okazos» inter la kandidatoj. Tial ĉiuj gardaj kondiĉoj estis taksataj plurfoje.

La lokoj por plibonigo fariĝis klaraj. Anstataŭ rekrei la tutan kalkulmetodon, simple sekure malpliigi la kandidatojn transdonotajn al FindMinTime. La celo estis ne ŝanĝi la simulan rezulton sed forigi nur la nebezonatajn eblecojn.

Alproksimiĝo — sekure forigi kondiĉojn, kiujn ne eblas plu ricevi

Bonvolu imagi pilkon malsupren saltantan ŝtuparon. Se la pilko preterpasas unu paŝon kaj daŭre progresas antaŭen, tiu paŝo jam ne povas influi la pilkon. Homo rigardanta la diagramon tuj ignoras la paŝojn malantaŭ la pilko. La originala algoritmo daŭre kontrolis ĉiun el ili unu post alia.

Ruĝa spuro montras pilkon desupreniĝantan la nigrajn ŝtuparojn dum ĝi saltas de paŝo al paŝo. Ombrita regiono reprezentas paŝojn jam preterpasitajn kaj ne plu rilatajn.
Kiam la pilko moviĝas dekstren, la gardo de la ombrita tavolo malantaŭ ĝi povas esti preterlasita.

La malfacilaĵo estas montrado ke la forigita gardilo poste ne estos bezonata. Se oni forigas ĝin nur ĉar nuntempe ĝi estas falsa, kiam ĝi denove fariĝos vera, ĝi povus silenteme doni malĝustan rezulton. Tial la proponita metodo uzas monotonecon — ĉu oni povas garantii, ke certa variablo daŭre kreskas aŭ malpliiĝas dum certa tempointerspaco.

Kiam la direkto de ŝanĝo ne ŝanĝiĝas

La unua aliro taŭgas kiam variablo moviĝas unuflanken tra la tuta simulaĵo. En modelo kun dividitaj surfacoj, la horizontala pozicio de la pilko ĉiam kreskas. Post kiam ĝi transpasos iun sekcion, la kondiĉoj de tiu sekcio neniam plu estos plenigitaj. Ĉi tiu trajto povas esti kontrolita antaŭ la simulaĵo per modela kontrola tekniko, do la gardoj, kiuj fariĝis nenecesaj dum la ekzekuto, povas esti sekure forigitaj.

La ruĝa linio kiu supreniĝas de α je tempo 0 ĝis β ĉe la maksimuma tempo reprezentas la variablon kiu daŭre kreskas dum la simulado.
Unuforme monotoneco signifas, ke la direkto de ŝanĝo estas konservata tra la tuta simula intervalo.

Kiam la direkto de ŝanĝo ŝanĝiĝas meze

Multaj realaj sistemoj ne moviĝas ĉiam en unu direkto. Variabloj povas pliiĝi, ŝanĝi direkton kaj poste malpliiĝi. Tial la artikolo prezentis duan aliron. Unue oni supozas direkton, monitoras tiun supozon per aserto, kaj refaras la reduktan procezon ekde la momento kiam la direkto ŝanĝiĝas. Gardoj forigitaj por unu monotona segmento estas revenigitaj kiam la sekva segmento komenciĝas.

La kvin figuroj montras la ordon, en kiu sekcioj kun supozita kresko, malsukcesoj de asertoj, sekcioj kun nova malkresko, dua malsukceso, kaj monotona sekcio estas unu post alia determinataj.
La fiasko de aserto dividas la ŝanĝantajn kondutojn en intervalojn kiuj povas esti traktataj kiel monotonaj.

Rezulto — Reduci la ekzekutan tempon de la taksila modelo proksimume je duono

Ni efektivigis respondon al uniforma monotoneco kaj taksis ĝin per modelo kun dividitaj surfacoj. Tamen, ĉu la originala algoritmo aŭ la proponita metodo, la bezonata tempo pliiĝas kiam la nombro de segmentoj kreskas. Tamen, la proponita metodo konstante postulas malpli da laboro. Komparante la kongruajn kurbojn, la plej alta koeficiento malkreskis de 1.1463 al 0.6083, kaj en ĉi tiu referenca testado la tuta simula tempo reduktiĝis preskaŭ duoble.

Ĉi tio ne estas aserto, ke ĉiuj modeloj de HydLa duobliĝos je rapideco. Ĝi montras, kie ĉi tiu metodo funkcias — en modeloj kun multaj celoj kun gardoj, kie la direkto de ŝanĝo povas esti pruvita, kaj dum la ekzekuto la gardoj fariĝas permanente neapartenantaj.

Grafeo de la simulada tempo rilate al N. La proponita metodo restas sub la originala metodo en la tuta intervalo de 10 ĝis 200 sekcioj, kaj ĉe N=200 ĝi atingas proksimume 250 sekundojn kontraste al ĉirkaŭ 470 sekundoj.
En la taksita modelo, la proponita metodo (kvadrato) necesas ĉirkaŭ duonon de la tempo kompare kun la originala algoritmo (circulo).

Perspektivoj akiritaj de ĉi tiu esploro

En ĉi tiu esploro, oni ne celis iom post iom plirapidigi individuajn kalkulojn. Oni uzis tion, kion oni scias pri la konduto de la sistemo, por malpliigi la aron de eblecoj konsiderindaj. La ideo limigi la serĉospacon sen ŝanĝi la rezulton estas la forto de restrikta programado.

La efektivigo kaj taksado estis farita por la kazo, kie variablo daŭre moviĝas en unu direkto. Se la direkto de ŝanĝo ŝanĝiĝas meze, ĝi restas nur ĝis la projektado, kaj la taksado restis kiel estonta tasko. Eblas ankaŭ uzi proprietojn krom monotoneco por trovi ankoraŭ pliajn malbezonatajn limigojn.

La fakto ke nun mi ne desegnas rekte la produktadon de AI, sed desegnas la kondiĉojn kaj limojn kiujn AI povas esplori, ankaŭ devenas de ĉi tiu sperto. Kiam oni traktas kompleksajn rezultojn, gravas difini kion oni ne bezonas konsideri, same grave kiel kion kalkuli.

Takafumi Horiuchi, Kazunori Ueda, “Dynamic Reduction of Guarded Constraints for the Hybrid Systems Modeling Language HydLa,” 2019 Annual Conference of the Japanese Society for Artificial Intelligence (33rd), 2019. DOI: 10.11517/pjsai.JSAI2019.0_1E3OS3b02