<style>.post-222 .entry-title{color: }</style><style>.post-222 .entry-title{color: }</style>{"id":222,"date":"2020-10-13T17:19:00","date_gmt":"2020-10-13T15:19:00","guid":{"rendered":"https:\/\/it.blazargroup.com\/?p=222"},"modified":"2025-03-25T16:39:13","modified_gmt":"2025-03-25T15:39:13","slug":"smart-domains","status":"publish","type":"post","link":"https:\/\/blazargroup.com\/it\/smart-domains\/","title":{"rendered":"Smart Domains"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"222\" class=\"elementor elementor-222\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ae72057 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ae72057\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ec05889\" data-id=\"ec05889\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fdb1717 elementor-widget elementor-widget-heading\" data-id=\"fdb1717\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Smart Domains<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d049509 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d049509\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b706d02\" data-id=\"b706d02\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6918c5e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"6918c5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fc2c297 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fc2c297\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-eab4168\" data-id=\"eab4168\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-728d86c elementor-widget elementor-widget-heading\" data-id=\"728d86c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Domain Layer Design, Event Sourcing &amp; AI<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-14c2bee elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"14c2bee\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e14624e\" data-id=\"e14624e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f636ab6 elementor-widget elementor-widget-text-editor\" data-id=\"f636ab6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Matteo \u00e8 Senior Software Developer, aspirante Yogi e Runner. Nell\u2019articolo di oggi descriver\u00e0 come ingegnerizzare l\u2019enterprise con l\u2019intelligenza artificiale, portando l\u2019esempio di un\u2019azienda (import\/export) che ha una flotta di mezzi da gestire.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e3fc9c2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e3fc9c2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bdbfe98\" data-id=\"bdbfe98\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-83c07bb elementor-widget elementor-widget-spacer\" data-id=\"83c07bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f8ef142 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f8ef142\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d398e66\" data-id=\"d398e66\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-148abcb elementor-widget elementor-widget-text-editor\" data-id=\"148abcb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><strong>Introduzione<\/strong><\/h3><p class=\"has-medium-font-size\">Il trend crescente delle tecnologie 4.0 [1], fornisce una nuova modalit\u00e0 per trasformare dati prodotti da vecchi e nuovi sistemi informatici in nuovo valore aggiunto.<\/p><p class=\"has-medium-font-size\">Grazie alla quantit\u00e0, variet\u00e0 e disponibilit\u00e0 di questi, specialmente la famiglia degli algoritmi di machine learning (ML) e data mining sono in grado di sfruttare al meglio e trasformare ogni dato prodotto in nuove informazioni utili. \u00c8 certo che molte aziende che investiranno e sapranno sfruttare queste nuove tecnologie ne avranno un notevole beneficio nel prossimo futuro.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bbd75f6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bbd75f6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e0af416\" data-id=\"e0af416\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-96eb71e elementor-widget elementor-widget-image\" data-id=\"96eb71e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/10\/stateofai2019-1024x493.png\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6c0a998 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6c0a998\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5081f4b\" data-id=\"5081f4b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8b499c4 elementor-widget elementor-widget-text-editor\" data-id=\"8b499c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Mentre gli investimenti in IA crescono a buon ritmo, la richiesta di sviluppatori esperti nel campo non fa altrettanto. Infatti, la progressiva adozione di queste nuove tecnologie sta dividendo nettamente le categorie di sviluppatori creando nuove mansioni altamente specializzate.<\/p><p class=\"has-medium-font-size\">Molte aziende scelgono infatti i grandi fornitori di servizi come Amazon e Google per soddisfare la crescente richiesta tecnologica relativa al campo dell\u2019IA.<\/p><p class=\"has-medium-font-size\">Ma \u00e8 sempre la scelta pi\u00f9 conveniente?<\/p><p class=\"has-medium-font-size\">Penso sia ragionevole pensare che \u201cnon sempre\u201d sia la risposta giusta.<\/p><p class=\"has-medium-font-size\">Ci sono molti casi in cui lo sviluppo custom di una soluzione che sfrutta o addirittura incorpora l\u2019IA pu\u00f2 apportare grandi benefici, specialmente quando il settore tecnologico \u00e8 situato in una \u201cnicchia\u201d di mercato.<\/p><p class=\"has-medium-font-size\">Gli strumenti e librerie disponibili gi\u00e0 realizzati non sempre sono adattabili ad ogni esigenza e spesso esiste una migliore implementazione pi\u00f9 aderente alla necessit\u00e0.<\/p><p class=\"has-medium-font-size\">Credo che in tutti quei casi in cui l\u2019intelligenza (artificiale) rappresenta uno degli aspetti basilari e principali di un prodotto software o una delle sue pi\u00f9 utili peculiarit\u00e0, lo sviluppo custom di queste debba essere preso in considerazione.<\/p><p class=\"has-medium-font-size\">Ci sono scenari d\u2019uso ove questo \u00e8 gi\u00e0 realt\u00e0 da tempo, robot per la pulizia casalinga, robot operatori nelle catene di montaggio e molte altre applicazioni nel campo della logistica.<\/p><p class=\"has-medium-font-size\">Ad ogni modo penso che nel prossimo futuro molti avranno la possibilit\u00e0 di aggiungere alle loro soluzioni l\u2019intelligenza artificiale come parte stessa (by design) del proprio business.<\/p><p class=\"has-medium-font-size\">Ma come e perch\u00e9 farlo?<\/p><p class=\"has-medium-font-size\">L\u2019<strong>orientamento agli eventi piuttosto che alle sole entit\u00e0 (quando possibile)<\/strong>\u00a0\u00e8 divenuto piuttosto diffuso ed \u00e8 ideale per incorporare l\u2019IA direttamente a livello di design.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c8a33b5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c8a33b5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-56b46c2\" data-id=\"56b46c2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-95842b6 elementor-widget elementor-widget-image\" data-id=\"95842b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/10\/Domain-model.png\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5598cbf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5598cbf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2341fa9\" data-id=\"2341fa9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-08ac87f elementor-widget elementor-widget-text-editor\" data-id=\"08ac87f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">In questo articolo, cercher\u00f2 di illustrare come approcciare un caso tipico utilizzando principalmente due tecnologie, Event Sourcing e Intelligenza artificiale a livello di modellazione degli oggetti del dominio [2].<\/p><p class=\"has-medium-font-size\">Gli eventi che descrivono gli oggetti possono essere utilizzati per alimentare algoritmi intelligenti (classificatori) e di tipo statistico. Questi permettono cos\u00ec di aggiungere alcune propriet\u00e0, che chiameremo\u00a0<strong>\u201csmart\u201d<\/strong>, agli oggetti stessi.<\/p><p class=\"has-medium-font-size\">Un mezzo di trasporto ad esempio, oltre le propriet\u00e0 che lo descrivono\u00a0<strong>potr\u00e0 esibire anche delle grandezze che esprimono una probabilit\u00e0 o una previsione.<\/strong><\/p><p class=\"has-medium-font-size\">\u00c8 possibile far interagire queste propriet\u00e0 direttamente con le regole di business: real-time senza una elaborazione a posteriori.<\/p><p class=\"has-medium-font-size\">Questo colloca intelligenza e analisi dei dati direttamente nel dominio, contrariamente a ci\u00f2 che molto spesso viene fatto oggi in molte implementazioni ove l\u2019analisi tramite ML avviene in un secondo momento da file di log o metriche.<\/p><p class=\"has-medium-font-size\">Tutti i concetti illustrati si basano su codice consultabile al seguente url:\u00a0<a href=\"https:\/\/github.com\/sandhaka\/SmartDomainsCaseStudy\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/sandhaka\/SmartDomainsCaseStudy<\/a><\/p><p class=\"has-medium-font-size\">Un\u2019azienda di import\/export deve gestire una flotta di mezzi di trasporto. Nell\u2019esempio \u00e8 stata utilizzata una mappa semplificata per rendere pi\u00f9 leggibile e comprensibile l\u2019intero progetto.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-88b6136 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"88b6136\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-92acca2\" data-id=\"92acca2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6da49ce elementor-widget elementor-widget-text-editor\" data-id=\"6da49ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Aggregati \u201cEvent sourced\u201d<\/h3><p class=\"has-small-font-size\"><em>Capture all changes to an application state as a sequence of events.<\/em><br \/>[M. Fowler]<\/p><p class=\"has-medium-font-size\">Se non lo conoscete gi\u00e0, Event Sourcing significa riferirsi a un oggetto non unicamente con il suo stato corrente, ma attraverso la serie di eventi verificatosi elaborati lungo tutta la sua vita [3]. Solo questi eventi saranno memorizzati, lo stato al momento desiderato sar\u00e0 calcolato Runtime.<\/p><p class=\"has-medium-font-size\">Come vale per un conto bancario, che non \u00e8 una semplice tabella con l\u2019importo del saldo all\u2019ora di lettura corrente, cos\u00ec ogni camion della flotta pu\u00f2 essere visto come un elenco di eventi relativi a tutte le sue partenze e arrivi.<\/p><p class=\"has-medium-font-size\">Assieme a questi eventi, le metriche riportano tutti gli effetti del viaggio sul mezzo di trasporto e autista.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-56d9cb1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"56d9cb1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a02f7d3\" data-id=\"a02f7d3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3d4443a elementor-widget elementor-widget-image\" data-id=\"3d4443a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/10\/trasporto.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Semplified UML used<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-943d6b0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"943d6b0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8136cf8\" data-id=\"8136cf8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-34c19a0 elementor-widget elementor-widget-text-editor\" data-id=\"34c19a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">L\u2019oggetto \u201ctruck\u201d ha alcune propriet\u00e0 come il codice modello, la posizione corrente e alcune metriche sullo stato corrente. Il valore decimale: AverageFatigueLastWeek descrive la mediana dello stress subito dal conducente nell\u2019ultima settimana.<\/p><p class=\"has-medium-font-size\">L\u2019implementazione proposta sotto, elabora tutti gli eventi e calcola l\u2019aggregato al momento di lettura.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5ced501 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5ced501\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0056a0d\" data-id=\"0056a0d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f777a2c elementor-widget elementor-widget-text-editor\" data-id=\"f777a2c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>\n<span class=\"token keyword\" style=\"color: #0077aa;\">protected<\/span> <span class=\"token keyword\" style=\"color: #0077aa;\">override<\/span> <span class=\"token return-type class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">void<\/span><\/span> <span class=\"token function\" style=\"color: #dd4a68;\">When<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token class-name\" style=\"color: #dd4a68;\">DomainEvent<\/span> @<span class=\"token keyword\" style=\"color: #0077aa;\">event<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n      DomainLog<span class=\"token punctuation\" style=\"color: #999999;\">?.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Invoke<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token string\" style=\"color: #669900;\">\".\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token boolean\" style=\"color: #990055;\">false<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> latestChanges <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> LastChanges\n            <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token generic-method\"><span class=\"token function\" style=\"color: #dd4a68;\">Cast<\/span><span class=\"token generic class-name\" style=\"color: #dd4a68;\"><span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>RecordData<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">ToList<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token keyword\" style=\"color: #0077aa;\">switch<\/span> <span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>@<span class=\"token keyword\" style=\"color: #0077aa;\">event<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n            <span class=\"token comment\" style=\"color: #708090;\">\/\/ Handle arrival event stats<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">case<\/span> <span class=\"token class-name\" style=\"color: #dd4a68;\">TransportArrival<\/span> arrivalEvent<span class=\"token punctuation\" style=\"color: #999999;\">:<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n                  Location <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> arrivalEvent<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Location<span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  CumulativeDelay <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">+=<\/span> arrivalEvent<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Delay<span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  AverageDelayLastWeek <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> TimeSpan<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">FromMinutes<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>\n                        latestChanges\n                              <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token generic-method\"><span class=\"token function\" style=\"color: #dd4a68;\">FilterCast<\/span><span class=\"token generic class-name\" style=\"color: #dd4a68;\"><span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>TransportArrival<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                              <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Take<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token number\" style=\"color: #990055;\">7<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                              <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Average<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>evt <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> evt<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Delay<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>TotalMinutes<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  AverageFatigueLastWeek <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> latestChanges\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token generic-method\"><span class=\"token function\" style=\"color: #dd4a68;\">FilterCast<\/span><span class=\"token generic class-name\" style=\"color: #dd4a68;\"><span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>TransportArrival<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Take<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token number\" style=\"color: #990055;\">7<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Average<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>d <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> d<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Fatigue<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  AverageFatigueLast30Days <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> latestChanges\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token generic-method\"><span class=\"token function\" style=\"color: #dd4a68;\">FilterCast<\/span><span class=\"token generic class-name\" style=\"color: #dd4a68;\"><span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>TransportArrival<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Take<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token number\" style=\"color: #990055;\">30<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Average<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>d <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> d<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Fatigue<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  TotalAccidents <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> latestChanges\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token generic-method\"><span class=\"token function\" style=\"color: #dd4a68;\">FilterCast<\/span><span class=\"token generic class-name\" style=\"color: #dd4a68;\"><span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>TransportArrival<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n                        <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Count<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>evt <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> evt<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>HadAccident<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n                  <span class=\"token keyword\" style=\"color: #0077aa;\">break<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">case<\/span> <span class=\"token class-name\" style=\"color: #dd4a68;\">TransportDeparture<\/span> departureEvent<span class=\"token punctuation\" style=\"color: #999999;\">:<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n                  Location <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> <span class=\"token string\" style=\"color: #669900;\">\"-\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  <span class=\"token keyword\" style=\"color: #0077aa;\">break<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n<span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d5e5dd2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d5e5dd2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4adf6aa\" data-id=\"4adf6aa\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2712617 elementor-widget elementor-widget-text-editor\" data-id=\"2712617\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">Alla partenza non viene aggiornato nulla, perch\u00e9 le metriche vengono raccolte alla fine del viaggio.<\/p><p class=\"has-medium-font-size\">L\u2019aggregato pu\u00f2 essere salvato o riletto come flusso di eventi (implementato nel codebase con un \u201cin-memory\u201d store).<\/p><p class=\"has-medium-font-size\">Tutti gli eventi di dominio che rappresentano l\u2019oggetto camion, poco sorprendentemente possono alimentare anche un algoritmo ML. Questo pu\u00f2 imparare da tutte queste metriche circa il comportamento di ogni coppia camion-guidatore.<\/p><p class=\"has-medium-font-size\">Un classificatore Naive Bayes stima la probabilit\u00e0 di avere un incidente durante il prossimo viaggio deducendolo appunto da questa sua storia.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ab8d4fd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ab8d4fd\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-53f473b\" data-id=\"53f473b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1532666 elementor-widget elementor-widget-text-editor\" data-id=\"1532666\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Smart Properties<\/h3><p>I classificatori Naive Bayes [4] sono una famiglia di semplici \u201cclassificatori probabilistici\u201d basati sull\u2019applicazione del teorema di Bayes.<\/p><p>L\u2019implementazione dell\u2019interfaccia IWiseActor del livello di dominio ci permette di sfruttare queste capacit\u00e0 e di prevedere un\u2019incidenza probabilistica futura di un incidente in base alle attuali metriche di fatica del conducente, alle condizioni meteorologiche, alle statistiche storiche e cos\u00ec via.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cf4fff4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cf4fff4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-22fcc7e\" data-id=\"22fcc7e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f38d852 elementor-widget elementor-widget-image\" data-id=\"f38d852\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/10\/wiseactor.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Wise Actor infrastructure implementation UML<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1c2943e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1c2943e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0698c98\" data-id=\"0698c98\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a6cb04e elementor-widget elementor-widget-text-editor\" data-id=\"a6cb04e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">Il metodo Update permette di aggiungere o aggiornare il modello statistico del camion.<\/p><p class=\"has-medium-font-size\">Mentre la variabile learner \u00e8 un\u2019implementazione di un classificatore \u201cNaive Bayes\u201d di terze parti.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-48394bc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"48394bc\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8c0414c\" data-id=\"8c0414c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c628c0f elementor-widget elementor-widget-text-editor\" data-id=\"c628c0f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>\n<span class=\"token keyword\" style=\"color: #0077aa;\">public<\/span> <span class=\"token return-type class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">void<\/span><\/span> <span class=\"token function\" style=\"color: #dd4a68;\">Update<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token class-name\" style=\"color: #dd4a68;\">TransportTruck<\/span> transportTruck<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> translatedData <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> <span class=\"token function\" style=\"color: #dd4a68;\">Parse<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>transportTruck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Changes<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token generic-method\"><span class=\"token function\" style=\"color: #dd4a68;\">Cast<\/span><span class=\"token generic class-name\" style=\"color: #dd4a68;\"><span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>RecordData<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> itemModel <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> _learner<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Learn<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>translatedData<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>x<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> translatedData<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>y<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n      <span class=\"token keyword\" style=\"color: #0077aa;\">if<\/span> <span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">!<\/span>_bayesianModel<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">ContainsKey<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>transportTruck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Id<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n            _bayesianModel<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Add<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>transportTruck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Id<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> itemModel<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">return<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n      _bayesianModel<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>transportTruck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Id<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> itemModel<span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n<span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c532211 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c532211\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-88ae820\" data-id=\"88ae820\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fdac041 elementor-widget elementor-widget-text-editor\" data-id=\"fdac041\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">In realt\u00e0, la base di codice proposta \u00e8 gi\u00e0 piuttosto corposa per essere usata come esempio, tuttavia anche se il dominio \u00e8 solo un giocattolo, tutte le strutture necessarie per implementare una versione di aggregato Event sourcing sono molte.<\/p><p class=\"has-medium-font-size\">Dopo la creazione della flotta (una raccolta di oggetti TransportTruck), una routine popola la lista degli eventi di ogni camion con alcuni dati precedentemente definiti. Queste metriche descrivono tutti i viaggi passati.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-97f2f6b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"97f2f6b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f980a95\" data-id=\"f980a95\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4df3306 elementor-widget elementor-widget-text-editor\" data-id=\"4df3306\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-javascript\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-javascript\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>\n  <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"DepartureLocation\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"VERONA\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"ArrivalLocation\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"MONZA\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"DepartureTime\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"2020-09-11T11:27:31.0923247Z\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"ArrivalTime\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"2020-09-11T15:15:26.6063433Z\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"Delay\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"01:44:00\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"WeatherCode\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"Wet\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"FatigueScore\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token number\" style=\"color: #990055;\">0.0386380793706691<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"Accident\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token boolean\" style=\"color: #990055;\">false<\/span>\n  <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n  <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"DepartureLocation\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"MONZA\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"ArrivalLocation\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"MANTUA\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"DepartureTime\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"2020-09-12T08:15:26.6063433Z\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"ArrivalTime\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"2020-09-12T10:42:17.132659Z\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"Delay\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"00:00:00\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"WeatherCode\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token string\" style=\"color: #669900;\">\"Foggy\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"FatigueScore\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token number\" style=\"color: #990055;\">1.5447707002773186<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n    <span class=\"token string\" style=\"color: #669900;\">\"Accident\"<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">:<\/span> <span class=\"token boolean\" style=\"color: #990055;\">false<\/span>\n  <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n  <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n    <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">...<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f53eac3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f53eac3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c8f98\" data-id=\"48c8f98\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9f949d7 elementor-widget elementor-widget-text-editor\" data-id=\"9f949d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">Ho usato xUnit per eseguire facilmente gli esempi, nel progetto di unit-test: TransportFleet.UseCase, il metodo ChooseTruckCandidateWith-LowerAccidentProbability fa il necessario e dimostra quanto sopra.<\/p><p class=\"has-medium-font-size\">La parte interessante \u00e8 la seguente, il metodo PredictAccident \u00e8 incorporato nell\u2019aggregato del dominio come un qualsiasi altro metodo di classe nonostante nasconda il necessario per ottenere i risultati ottenuti dal ML.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7cf4ab6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7cf4ab6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-90616b4\" data-id=\"90616b4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7aa70b9 elementor-widget elementor-widget-text-editor\" data-id=\"7aa70b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>\n_fleet<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">ForEach<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>truck <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n      <span class=\"token comment\" style=\"color: #708090;\">\/\/ Trigger internal model updating<\/span>\n      truck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">UpdateStats<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> prediction <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> truck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">PredictAccident<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>goodWeather<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> prob <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> prediction<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Probabilities<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">ToList<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n      DemoLogger<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">InfLog<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token interpolation-string\"><span class=\"token string\" style=\"color: #669900;\">$\"Truck <\/span><span class=\"token interpolation\"><span class=\"token punctuation\" style=\"color: #999999;\">{<\/span><span class=\"token expression language-csharp\">truck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>ModelCode<\/span><span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><\/span><span class=\"token string\" style=\"color: #669900;\">: <\/span><span class=\"token interpolation\"><span class=\"token punctuation\" style=\"color: #999999;\">{<\/span><span class=\"token expression language-csharp\">prob<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span><span class=\"token number\" style=\"color: #990055;\">0<\/span><span class=\"token punctuation\" style=\"color: #999999;\">]<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Label<\/span><span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><\/span><span class=\"token string\" style=\"color: #669900;\">-&gt; <\/span><span class=\"token interpolation\"><span class=\"token punctuation\" style=\"color: #999999;\">{<\/span><span class=\"token expression language-csharp\">prob<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span><span class=\"token number\" style=\"color: #990055;\">0<\/span><span class=\"token punctuation\" style=\"color: #999999;\">]<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>ProbabilityScore<\/span><span class=\"token format-string\"><span class=\"token punctuation\" style=\"color: #999999;\">:<\/span>P<\/span><span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><\/span><span class=\"token string\" style=\"color: #669900;\">, \"<\/span><\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">+<\/span>\n                                <span class=\"token interpolation-string\"><span class=\"token string\" style=\"color: #669900;\">$\"<\/span><span class=\"token interpolation\"><span class=\"token punctuation\" style=\"color: #999999;\">{<\/span><span class=\"token expression language-csharp\">prob<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span><span class=\"token number\" style=\"color: #990055;\">1<\/span><span class=\"token punctuation\" style=\"color: #999999;\">]<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Label<\/span><span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><\/span><span class=\"token string\" style=\"color: #669900;\">-&gt; <\/span><span class=\"token interpolation\"><span class=\"token punctuation\" style=\"color: #999999;\">{<\/span><span class=\"token expression language-csharp\">prob<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span><span class=\"token number\" style=\"color: #990055;\">1<\/span><span class=\"token punctuation\" style=\"color: #999999;\">]<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>ProbabilityScore<\/span><span class=\"token format-string\"><span class=\"token punctuation\" style=\"color: #999999;\">:<\/span>P<\/span><span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><\/span><span class=\"token string\" style=\"color: #669900;\">\"<\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n\n      rank<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Add<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>truck<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Id<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> prob<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span><span class=\"token number\" style=\"color: #990055;\">1<\/span><span class=\"token punctuation\" style=\"color: #999999;\">]<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>ProbabilityScore<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> candidateId <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> rank<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">OrderBy<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>c <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> c<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Value<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">First<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Key<span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> candidate <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> _fleet<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Find<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>f <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> f<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Id<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Equals<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>candidateId<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7eccad4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7eccad4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-17e8884\" data-id=\"17e8884\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3a5ed71 elementor-widget elementor-widget-text-editor\" data-id=\"3a5ed71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-size: 20px;\">\u00c8 possibile eseguire questo test dalla cartella del progetto:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a454185 elementor-widget elementor-widget-text-editor\" data-id=\"a454185\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a89b3c2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px;\" data-id=\"a89b3c2\" data-element_type=\"section\"><div class=\"elementor-container elementor-column-gap-default\"><div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9ba4db8\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1140px;\" data-id=\"9ba4db8\" data-element_type=\"column\"><div class=\"elementor-widget-wrap elementor-element-populated\" style=\"width: 1140px;\"><div class=\"elementor-element elementor-element-569b182 elementor-widget elementor-widget-code-highlight\" style=\"gap: var(--row-gap) var(--column-gap); --widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1120px;\" data-id=\"569b182\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\"><div class=\"elementor-widget-container\" style=\"transition: background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s);\"><div class=\"prismjs-default copy-to-clipboard \"><div class=\"code-toolbar\" style=\"position: relative;\"><pre class=\"highlight-height line-numbers language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\">dotnet <span class=\"token builtin class-name\" style=\"color: #dd4a68;\">test<\/span> --filter TransportFleet.UseCase.TestCase.ChooseTruckCandidateWithLowerAccidentProbability<\/code><\/pre><div class=\"toolbar\" style=\"position: absolute; top: 0.3em; right: 0.2em; transition: opacity 0.3s ease-in-out; opacity: 0;\"><div class=\"toolbar-item\" style=\"display: inline-block;\"><button style=\"color: #bbbbbb; font-size: 0.8em; line-height: normal; background: rgba(224, 224, 224, 0.2); padding: 0px 0.5em; user-select: none; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; border-radius: 0.5em; border: 0px initial initial;\" type=\"button\">Copy<\/button><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"elementor-section elementor-top-section elementor-element elementor-element-9f6873b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px;\" data-id=\"9f6873b\" data-element_type=\"section\"><div class=\"elementor-container elementor-column-gap-default\"><div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9245331\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1140px;\" data-id=\"9245331\" data-element_type=\"column\"><div class=\"elementor-widget-wrap elementor-element-populated\" style=\"width: 1140px;\"><div class=\"elementor-element elementor-element-4b43ebd elementor-widget elementor-widget-text-editor\" style=\"gap: var(--row-gap) var(--column-gap); --widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1120px;\" data-id=\"4b43ebd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\" style=\"transition: background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s);\">\u00a0<\/div><\/div><\/div><\/div><\/div><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5d05787 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5d05787\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-22a213b\" data-id=\"22a213b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-45a9bba elementor-widget elementor-widget-text-editor\" data-id=\"45a9bba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-size: 20px;\">Ottenendo l&#8217;output seguente:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-547d3ff elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"547d3ff\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-159b225\" data-id=\"159b225\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f6616d1 elementor-widget elementor-widget-text-editor\" data-id=\"f6616d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Create fleet <span class=\"token punctuation\" style=\"color: #999999;\">..<\/span>.\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Fleet with <span class=\"token number\" style=\"color: #990055;\">3<\/span> <span class=\"token function\" style=\"color: #dd4a68;\">units<\/span> created\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Adding historical data to fleet<span class=\"token punctuation\" style=\"color: #999999;\">..<\/span>.\n<span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">..<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Fleet historical data initialization <span class=\"token keyword\" style=\"color: #0077aa;\">done<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Estimate the probability to have an accident:\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Truck COJJAU: No-<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span> <span class=\"token number\" style=\"color: #990055;\">89,53<\/span>%, Yes-<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span> <span class=\"token number\" style=\"color: #990055;\">10,47<\/span>%\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Truck CVOCJX: No-<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span> <span class=\"token number\" style=\"color: #990055;\">100,00<\/span>%, Yes-<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span> <span class=\"token number\" style=\"color: #990055;\">0,00<\/span>%\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Truck QLVQQG: No-<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span> <span class=\"token number\" style=\"color: #990055;\">97,82<\/span>%, Yes-<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span> <span class=\"token number\" style=\"color: #990055;\">2,18<\/span>%\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Best truck: <span class=\"token assign-left variable\" style=\"color: #ee9900;\">Code<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> CVOCJX Current <span class=\"token assign-left variable\" style=\"color: #ee9900;\">Location<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> TREVIGLIO <span class=\"token assign-left variable\" style=\"color: #ee9900;\">AverageLastWeekFatigue<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> <span class=\"token number\" style=\"color: #990055;\">0,23488760270335357<\/span> <span class=\"token assign-left variable\" style=\"color: #ee9900;\">AverageLastWeekDelay<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> 00:00:00 <span class=\"token assign-left variable\" style=\"color: #ee9900;\">TotalAccidents<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> <span class=\"token number\" style=\"color: #990055;\">0<\/span> <span class=\"token assign-left variable\" style=\"color: #ee9900;\">Events<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> <span class=\"token number\" style=\"color: #990055;\">100<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-607da0a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"607da0a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d2c079f\" data-id=\"d2c079f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e3dd3ea elementor-widget elementor-widget-text-editor\" data-id=\"e3dd3ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">Il modello del dominio \u00e8 piuttosto semplificato e la previsione \u00e8 banale usando solo alcune delle molte metriche ipotizzabili per una previsione di questo tipo.<\/p>\n<p class=\"has-medium-font-size\">Tuttavia, il codice \u00e8 completo e utile per costruire casi d\u2019uso pi\u00f9 complessi.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-efb1e53 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"efb1e53\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8449df5\" data-id=\"8449df5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8686c26 elementor-widget elementor-widget-text-editor\" data-id=\"8686c26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Pi\u00f9 AI, Constraint satisfaction<\/h3><p class=\"has-medium-font-size\">Il caso d\u2019uso ML basato su Naive Bayes mostrato sopra \u00e8 uno scenario molto comune.<\/p><p class=\"has-medium-font-size\">Constraint satisfaction problem (CSP) \u00e8 un altro ben noto modello matematico usato in intelligenza artificiale e ricerca operativa.<\/p><p class=\"has-medium-font-size\">L\u2019implementazione proposta \u00e8 basata sul concetto di \u201cbacktracking\u201d, in cui un algoritmo progressivamente abbandona dei valori candidati definiti a priori quando questi non sono in grado di soddisfare i vincoli del problema in questione.<\/p><p class=\"has-medium-font-size\">Nell\u2019esempio, dobbiamo organizzare tre viaggi per ogni giorno della settimana (dal luned\u00ec al sabato) automaticamente utilizzando una flotta di sei camion.<\/p><p class=\"has-medium-font-size\">Questo esempio \u00e8 pi\u00f9 elaborato del precedente. Prima viene creata una rappresentazione degli oggetti del dominio e poi viene elaborata direttamente da un generico algoritmo di risoluzione.<\/p><p class=\"has-medium-font-size\">Il punto pi\u00f9 interessante \u00e8 la possibilit\u00e0 di inserire uno o pi\u00f9 vincoli senza preoccuparsi troppo circa l\u2019esistenza di una soluzione. L\u2019algoritmo trover\u00e0 quella che soddisfa la richiesta o una delle configurazioni pi\u00f9 vicine possibili.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1e00ad0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1e00ad0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-620c971\" data-id=\"620c971\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f35d256 elementor-widget elementor-widget-text-editor\" data-id=\"f35d256\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\">_fleet <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> DemoFleetDataFactory<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">CreateRandomFleet<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token number\" style=\"color: #990055;\">6<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token comment\" style=\"color: #708090;\">\/\/ Create Csp data problem from current fleet status<\/span>\n<span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> cspData <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> FleetCsp<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">FleetToCspModel<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>DemoFleetDataFactory<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">CreateCspProblemVariables<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">ToList<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> _fleet<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token comment\" style=\"color: #708090;\">\/\/ Instantiate Csp-Model<\/span>\n<span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> fleetCsp <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> CspFactory<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Create<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>\n      <span class=\"token keyword\" style=\"color: #0077aa;\">new<\/span> <span class=\"token constructor-invocation class-name\" style=\"color: #dd4a68;\">Dictionary<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> IEnumerable<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>TruckCspValue<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>cspData<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Select<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>v <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> <span class=\"token keyword\" style=\"color: #0077aa;\">new<\/span> <span class=\"token constructor-invocation class-name\" style=\"color: #dd4a68;\">KeyValuePair<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> IEnumerable<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span>TruckCspValue<span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>v<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Key<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> v<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Value<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Domains<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n      <span class=\"token keyword\" style=\"color: #0077aa;\">new<\/span> <span class=\"token constructor-invocation class-name\" style=\"color: #dd4a68;\">Dictionary<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> IEnumerable<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>cspData<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Select<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>v <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span> <span class=\"token keyword\" style=\"color: #0077aa;\">new<\/span> <span class=\"token constructor-invocation class-name\" style=\"color: #dd4a68;\">KeyValuePair<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> IEnumerable<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>v<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Key<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> v<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Value<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>Relations<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n      <span class=\"token keyword\" style=\"color: #0077aa;\">new<\/span> <span class=\"token constructor-invocation class-name\" style=\"color: #dd4a68;\">Func<span class=\"token punctuation\" style=\"color: #999999;\">&lt;<\/span><span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> TruckCspValue<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> TruckCspValue<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token keyword\" style=\"color: #0077aa;\">bool<\/span><span class=\"token punctuation\" style=\"color: #999999;\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">[<\/span><span class=\"token punctuation\" style=\"color: #999999;\">]<\/span><\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n            <span class=\"token comment\" style=\"color: #708090;\">\/\/ Constraint: Do not overlap on the same day<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>variableA<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> transportTruckA<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> variableB<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> transportTruckB<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n                  <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> dayA <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> variableA<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Split<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token string character\" style=\"color: #669900;\">'.'<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">First<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> dayB <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> variableB<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Split<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token string character\" style=\"color: #669900;\">'.'<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">First<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n                  <span class=\"token keyword\" style=\"color: #0077aa;\">return<\/span> dayA <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">!=<\/span> dayB <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">||<\/span> transportTruckA <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">!=<\/span> transportTruckB<span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n            <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token comment\" style=\"color: #708090;\">\/\/ Resolve the given problem<\/span>\n<span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> solved <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> fleetCsp<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">UseBackTrackingSearchResolver<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>\n      SelectUnassignedVariableStrategyTypes<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;<\/span>TruckCspValue<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>FirstUnassignedVariable<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span>\n        DomainValuesOrderingStrategyTypes<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&lt;<\/span>TruckCspValue<span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&gt;<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>DomainCustomOrder<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Resolve<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n            <span class=\"token function\" style=\"color: #dd4a68;\">PrintPlan<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>fleetCsp<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-58917e7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"58917e7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-74faf36\" data-id=\"74faf36\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7aaa2d5 elementor-widget elementor-widget-text-editor\" data-id=\"7aaa2d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">Per comprendere completamente il codice di cui sopra, probabilmente \u00e8 necessario guardare l\u2019implementazione del risolutore CSP utilizzata nell\u2019esempio.<\/p><p class=\"has-medium-font-size\">In ogni caso, anche questo \u00e8 un altro buon candidato da includere direttamente a livello di business layer quando gli aggregati devono essere in grado di risolvere dei problemi di ottimizzazione combinatoria come quello qui descritto.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2644d86 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2644d86\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4074af2\" data-id=\"4074af2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-083ad25 elementor-widget elementor-widget-text-editor\" data-id=\"083ad25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7d98af4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px;\" data-id=\"7d98af4\" data-element_type=\"section\"><div class=\"elementor-container elementor-column-gap-default\"><div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3b90ea7\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1140px;\" data-id=\"3b90ea7\" data-element_type=\"column\"><div class=\"elementor-widget-wrap elementor-element-populated\" style=\"width: 1140px;\"><div class=\"elementor-element elementor-element-d192a1e elementor-widget elementor-widget-code-highlight\" style=\"gap: var(--row-gap) var(--column-gap); --widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1120px;\" data-id=\"d192a1e\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\"><div class=\"elementor-widget-container\" style=\"transition: background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s);\"><div class=\"prismjs-default copy-to-clipboard \"><div class=\"code-toolbar\" style=\"position: relative;\"><pre class=\"highlight-height line-numbers language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\">dotnet <span class=\"token builtin class-name\" style=\"color: #dd4a68;\">test<\/span> --filter TransportFleet.UseCase.TestCase.OptimizeAndAssignTrips<\/code><\/pre><div class=\"toolbar\" style=\"position: absolute; top: 0.3em; right: 0.2em; transition: opacity 0.3s ease-in-out; opacity: 1;\"><div class=\"toolbar-item\" style=\"display: inline-block;\"><button style=\"color: #bbbbbb; font-size: 0.8em; line-height: normal; background: rgba(224, 224, 224, 0.2); padding: 0px 0.5em; user-select: none; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 0px 0px; border-radius: 0.5em; border: 0px initial initial;\" type=\"button\">Copy<\/button><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"elementor-section elementor-top-section elementor-element elementor-element-2a25a56 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px;\" data-id=\"2a25a56\" data-element_type=\"section\"><div class=\"elementor-container elementor-column-gap-default\"><div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e1d80a4\" style=\"--widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1140px;\" data-id=\"e1d80a4\" data-element_type=\"column\"><div class=\"elementor-widget-wrap elementor-element-populated\" style=\"width: 1140px;\"><div class=\"elementor-element elementor-element-cd8fecd elementor-widget elementor-widget-code-highlight\" style=\"gap: var(--row-gap) var(--column-gap); --widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; width: 1120px;\" data-id=\"cd8fecd\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\"><div class=\"elementor-widget-container\" style=\"transition: background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s);\"><div class=\"prismjs-default copy-to-clipboard \"><div class=\"code-toolbar\" style=\"position: relative;\">\u00a0<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e0e466b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e0e466b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a0a28e9\" data-id=\"a0a28e9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-50daa24 elementor-widget elementor-widget-text-editor\" data-id=\"50daa24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-bash\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span> Create fleet <span class=\"token punctuation\" style=\"color: #999999;\">..<\/span>.\n<span class=\"token punctuation\" style=\"color: #999999;\">[<\/span>APP<span class=\"token punctuation\" style=\"color: #999999;\">]<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Week Day <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Travel <span class=\"token number\" style=\"color: #990055;\">1<\/span>        <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Travel <span class=\"token number\" style=\"color: #990055;\">2<\/span>         <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Travel <span class=\"token number\" style=\"color: #990055;\">3<\/span>         <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> MON      <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Mon.Tr0: LHEDEM <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Mon.Tr7: IRKYAC  <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Mon.Tr14: ZYVFNZ <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> TUE      <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Tue.Tr1: IRKYAC <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Tue.Tr8: LHEDEM  <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Tue.Tr15: INFQXW <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> WEN      <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Wen.Tr2: ZYVFNZ <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Wen.Tr9: INFQXW  <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Wen.Tr16: LHEDEM <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> THU      <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Thu.Tr3: INFQXW <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Thu.Tr10: ZYVFNZ <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Thu.Tr17: IRKYAC <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> FRI      <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Fri.Tr4: NRDMOR <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Fri.Tr11: IUVKFI <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Fri.Tr18: LHEDEM <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> SAT      <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Sat.Tr5: IUVKFI <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Sat.Tr12: NRDMOR <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span> Sat.Tr19: IRKYAC <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\nTruck: LHEDEM, Total travels: <span class=\"token number\" style=\"color: #990055;\">4<\/span>\nTruck: IRKYAC, Total travels: <span class=\"token number\" style=\"color: #990055;\">4<\/span>\nTruck: ZYVFNZ, Total travels: <span class=\"token number\" style=\"color: #990055;\">3<\/span>\nTruck: INFQXW, Total travels: <span class=\"token number\" style=\"color: #990055;\">3<\/span>\nTruck: NRDMOR, Total travels: <span class=\"token number\" style=\"color: #990055;\">2<\/span>\nTruck: IUVKFI, Total travels: <span class=\"token number\" style=\"color: #990055;\">2<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b43ae4f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b43ae4f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3f842f2\" data-id=\"3f842f2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d81263c elementor-widget elementor-widget-text-editor\" data-id=\"d81263c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">La pianificazione viene effettuata senza sovrapposizioni tra i giorni.<\/p><p class=\"has-medium-font-size\">Se si vuole aggiungere un nuovo vincolo \u00e8 molto semplice. Voglio assicurarmi che nessun camion faccia due viaggi consecutivi il luned\u00ec e il marted\u00ec, per assurdo una regola di business stabilisce ad esempio che \u00e8 troppo stressante.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-640ff9b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"640ff9b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d3b659c\" data-id=\"d3b659c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dc8d181 elementor-widget elementor-widget-text-editor\" data-id=\"dc8d181\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre class=\"highlight-height line-numbers language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: #000000; background: #f5f2f0; text-shadow: #ffffff 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\" data-line=\"\"><code class=\"language-csharp\" style=\"font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; background: 0px 0px; text-shadow: #ffffff 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>variableA<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> transportTruckA<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> variableB<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> transportTruckB<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=&gt;<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> dayA <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> variableA<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Split<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token string character\" style=\"color: #669900;\">'.'<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">First<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token class-name\" style=\"color: #dd4a68;\"><span class=\"token keyword\" style=\"color: #0077aa;\">var<\/span><\/span> dayB <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">=<\/span> variableB<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Split<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token string character\" style=\"color: #669900;\">'.'<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">First<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span><span class=\"token punctuation\" style=\"color: #999999;\">)<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token keyword\" style=\"color: #0077aa;\">if<\/span> <span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Compare<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>dayA<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token string\" style=\"color: #669900;\">\"mon\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> StringComparison<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>OrdinalIgnoreCase<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">==<\/span> <span class=\"token number\" style=\"color: #990055;\">0<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&amp;&amp;<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Compare<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>dayB<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token string\" style=\"color: #669900;\">\"tue\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> StringComparison<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>OrdinalIgnoreCase<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">==<\/span> <span class=\"token number\" style=\"color: #990055;\">0<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">||<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Compare<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>dayA<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token string\" style=\"color: #669900;\">\"tue\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> StringComparison<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>OrdinalIgnoreCase<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">==<\/span> <span class=\"token number\" style=\"color: #990055;\">0<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">&amp;&amp;<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">string<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><span class=\"token function\" style=\"color: #dd4a68;\">Compare<\/span><span class=\"token punctuation\" style=\"color: #999999;\">(<\/span>dayB<span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> <span class=\"token string\" style=\"color: #669900;\">\"mon\"<\/span><span class=\"token punctuation\" style=\"color: #999999;\">,<\/span> StringComparison<span class=\"token punctuation\" style=\"color: #999999;\">.<\/span>OrdinalIgnoreCase<span class=\"token punctuation\" style=\"color: #999999;\">)<\/span> <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">==<\/span> <span class=\"token number\" style=\"color: #990055;\">0<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">)<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">{<\/span>\n            <span class=\"token keyword\" style=\"color: #0077aa;\">return<\/span> transportTruckA <span class=\"token operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">!=<\/span> transportTruckB<span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n      <span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n      <span class=\"token keyword\" style=\"color: #0077aa;\">return<\/span> <span class=\"token boolean\" style=\"color: #990055;\">true<\/span><span class=\"token punctuation\" style=\"color: #999999;\">;<\/span>\n<span class=\"token punctuation\" style=\"color: #999999;\">}<\/span>\n<span class=\"token range operator\" style=\"color: #9a6e3a; background: rgba(255, 255, 255, 0.5);\">..<\/span><span class=\"token punctuation\" style=\"color: #999999;\">.<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fcbb61b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fcbb61b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9f006d7\" data-id=\"9f006d7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-60b5c9d elementor-widget elementor-widget-text-editor\" data-id=\"60b5c9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-size: 20px;\">Il risultato cambier\u00e0 automaticamente in questo modo:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6175193 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6175193\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-92a6932\" data-id=\"92a6932\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4b05971 elementor-widget elementor-widget-text-editor\" data-id=\"4b05971\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre data-line=\"\" class=\"highlight-height line-numbers language-bash\" style=\"font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; font-size: 15px; direction: ltr; position: relative; padding: 1em 1em 1em 3.8em; color: rgb(0, 0, 0); background: rgb(245, 242, 240); text-shadow: rgb(255, 255, 255) 0px 1px; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; margin-top: 0px; margin-bottom: 0px; counter-reset: linenumber 0;\"><code readonly=\"true\" class=\"language-bash\" style=\"font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; background: 0px 0px; text-shadow: rgb(255, 255, 255) 0px 1px; white-space: inherit; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; tab-size: 4; hyphens: none; position: relative;\"><span class=\"token punctuation\" style=\"color: rgb(153, 153, 153);\">[<\/span>APP<span class=\"token punctuation\" style=\"color: rgb(153, 153, 153);\">]<\/span> Create fleet <span class=\"token punctuation\" style=\"color: rgb(153, 153, 153);\">..<\/span>.\n<span class=\"token punctuation\" style=\"color: rgb(153, 153, 153);\">[<\/span>APP<span class=\"token punctuation\" style=\"color: rgb(153, 153, 153);\">]<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Week Day <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Travel <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">1<\/span>        <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Travel <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">2<\/span>         <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Travel <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span>         <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> MON      <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Mon.Tr0: SAHWPW <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Mon.Tr7: OCKRCS  <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Mon.Tr14: NIMBOC <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> TUE      <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Tue.Tr1: YQRCQG <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Tue.Tr8: WVBFOQ  <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Tue.Tr15: RBOZJD <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> WEN      <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Wen.Tr2: OCKRCS <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Wen.Tr9: SAHWPW  <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Wen.Tr16: YQRCQG <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> THU      <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Thu.Tr3: WVBFOQ <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Thu.Tr10: YQRCQG <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Thu.Tr17: SAHWPW <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> FRI      <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Fri.Tr4: NIMBOC <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Fri.Tr11: RBOZJD <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Fri.Tr18: OCKRCS <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\n <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> SAT      <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Sat.Tr5: RBOZJD <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Sat.Tr12: NIMBOC <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span> Sat.Tr19: WVBFOQ <span class=\"token operator\" style=\"color: rgb(154, 110, 58); background: rgba(255, 255, 255, 0.5);\">|<\/span>\n --------------------------------------------------------------------\nTruck: SAHWPW, Total travels: <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span>\nTruck: YQRCQG, Total travels: <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span>\nTruck: OCKRCS, Total travels: <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span>\nTruck: WVBFOQ, Total travels: <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span>\nTruck: NIMBOC, Total travels: <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span>\nTruck: RBOZJD, Total travels: <span class=\"token number\" style=\"color: rgb(153, 0, 85);\">3<\/span><\/code><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-90cb3d6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"90cb3d6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-269f8ae\" data-id=\"269f8ae\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c063a56 elementor-widget elementor-widget-text-editor\" data-id=\"c063a56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-medium-font-size\">Si noti che nessun camion che viaggia il luned\u00ec lo far\u00e0 il marted\u00ec e viceversa.<\/p>\n<p class=\"has-medium-font-size\">\u00c8 un sistema veramente utile per cambiare dinamicamente uno scenario complesso quando ho bisogno di ottimizzare l\u2019assegnazione delle risorse in base a propriet\u00e0, vincoli, etc.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6b6677f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6b6677f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-083e474\" data-id=\"083e474\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2bad99c elementor-widget elementor-widget-text-editor\" data-id=\"2bad99c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"has-small-font-size\">[1] Industry 4.0 \u2013\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Fourth_Industrial_Revolution\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/en.wikipedia.org\/wiki\/Fourth_Industrial_Revolution<\/a><br \/>[2] Domain-Driven Design (DDD) \u2013\u00a0<a href=\"https:\/\/dddcommunity.org\/learning-ddd\/what_is_ddd\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dddcommunity.org\/learning-ddd\/what_is_ddd\/<\/a><br \/>[3] Event Sourcing \u2013\u00a0<a href=\"https:\/\/www.martinfowler.com\/eaaDev\/EventSourcing.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.martinfowler.com\/eaaDev\/EventSourcing.html<\/a><br \/>[4] Naive Bayes \u2013\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Naive_Bayes_classifier\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/en.wikipedia.org\/wiki\/Naive_Bayes_classifier<\/a><br \/>[5] Csp \u2013\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Constraint_satisfaction_problem\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/en.wikipedia.org\/wiki\/Constraint_satisfaction_problem<\/a><\/p><p class=\"has-small-font-size\"><strong>Referenze<\/strong><br \/><a href=\"https:\/\/www.stateof.ai\/2019\" target=\"_blank\" rel=\"noreferrer noopener\">State Of Ai Report 2019<\/a><br \/><a href=\"https:\/\/martinfowler.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">M.Fowler Web Site<\/a><br \/><a href=\"http:\/\/aima.cs.berkeley.edu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Artificial Intelligence: A modern approach<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Smart Domains Domain Layer Design, Event Sourcing &amp; AI Matteo \u00e8 Senior Software Developer, aspirante Yogi e Runner. Nell\u2019articolo di&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1620,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[16],"tags":[],"class_list":["post-222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consulenza-di-valore"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Smart Domains - Blazar Group<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blazargroup.com\/it\/smart-domains\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Smart Domains - Blazar Group\" \/>\n<meta property=\"og:description\" content=\"Smart Domains Domain Layer Design, Event Sourcing &amp; AI Matteo \u00e8 Senior Software Developer, aspirante Yogi e Runner. Nell\u2019articolo di...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blazargroup.com\/it\/smart-domains\/\" \/>\n<meta property=\"og:site_name\" content=\"Blazar Group\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/blazargroup\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-13T15:19:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-25T15:39:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/11\/8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"blazar_user\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuti\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Smart Domains - Blazar Group","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blazargroup.com\/it\/smart-domains\/","og_locale":"it_IT","og_type":"article","og_title":"Smart Domains - Blazar Group","og_description":"Smart Domains Domain Layer Design, Event Sourcing &amp; AI Matteo \u00e8 Senior Software Developer, aspirante Yogi e Runner. Nell\u2019articolo di...","og_url":"https:\/\/blazargroup.com\/it\/smart-domains\/","og_site_name":"Blazar Group","article_publisher":"https:\/\/www.facebook.com\/blazargroup","article_published_time":"2020-10-13T15:19:00+00:00","article_modified_time":"2025-03-25T15:39:13+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/11\/8.png","type":"image\/png"}],"author":"blazar_user","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":false,"Tempo di lettura stimato":"9 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#article","isPartOf":{"@id":"https:\/\/blazargroup.com\/it\/smart-domains\/"},"author":{"name":"blazar_user","@id":"https:\/\/blazargroup.com\/it\/#\/schema\/person\/561b135e32d47a542294eb35989ef694"},"headline":"Smart Domains","datePublished":"2020-10-13T15:19:00+00:00","dateModified":"2025-03-25T15:39:13+00:00","mainEntityOfPage":{"@id":"https:\/\/blazargroup.com\/it\/smart-domains\/"},"wordCount":1467,"publisher":{"@id":"https:\/\/blazargroup.com\/it\/#organization"},"image":{"@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#primaryimage"},"thumbnailUrl":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/11\/8.png","articleSection":["Consulenza di Valore"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blazargroup.com\/it\/smart-domains\/","url":"https:\/\/blazargroup.com\/it\/smart-domains\/","name":"Smart Domains - Blazar Group","isPartOf":{"@id":"https:\/\/blazargroup.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#primaryimage"},"image":{"@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#primaryimage"},"thumbnailUrl":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/11\/8.png","datePublished":"2020-10-13T15:19:00+00:00","dateModified":"2025-03-25T15:39:13+00:00","breadcrumb":{"@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blazargroup.com\/it\/smart-domains\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#primaryimage","url":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/11\/8.png","contentUrl":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2020\/11\/8.png","width":1200,"height":800},{"@type":"BreadcrumbList","@id":"https:\/\/blazargroup.com\/it\/smart-domains\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blazargroup.com\/it\/"},{"@type":"ListItem","position":2,"name":"Smart Domains"}]},{"@type":"WebSite","@id":"https:\/\/blazargroup.com\/it\/#website","url":"https:\/\/blazargroup.com\/it\/","name":"Blazar Group","description":"Together, Bigger","publisher":{"@id":"https:\/\/blazargroup.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blazargroup.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/blazargroup.com\/it\/#organization","name":"Blazar Group","url":"https:\/\/blazargroup.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blazargroup.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2022\/04\/Logo2022_colorato_sfondotrasparente_rilievo_ANTRACITE-1-1024x399-1.png","contentUrl":"https:\/\/blazargroup.com\/it\/wp-content\/uploads\/2022\/04\/Logo2022_colorato_sfondotrasparente_rilievo_ANTRACITE-1-1024x399-1.png","width":1024,"height":399,"caption":"Blazar Group"},"image":{"@id":"https:\/\/blazargroup.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/blazargroup","https:\/\/www.instagram.com\/blazargroup\/","https:\/\/www.linkedin.com\/company\/blazar\/"]},{"@type":"Person","@id":"https:\/\/blazargroup.com\/it\/#\/schema\/person\/561b135e32d47a542294eb35989ef694","name":"blazar_user","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/1710cc0d975fb10dd9ec6506da7d758816549b1898e8b12bd7a785f9d0452162?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1710cc0d975fb10dd9ec6506da7d758816549b1898e8b12bd7a785f9d0452162?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1710cc0d975fb10dd9ec6506da7d758816549b1898e8b12bd7a785f9d0452162?s=96&d=mm&r=g","caption":"blazar_user"},"sameAs":["https:\/\/blazargroup.com\/it"],"url":"https:\/\/blazargroup.com\/it\/author\/blazar_user\/"}]}},"_links":{"self":[{"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/posts\/222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":14,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"predecessor-version":[{"id":5592,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/posts\/222\/revisions\/5592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/media\/1620"}],"wp:attachment":[{"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blazargroup.com\/it\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}