Návrh rozšíření IS MZLU v Brně o automatickou tvorbu rozvrhů

Rozměr: px
Začít zobrazení ze stránky:

Download "Návrh rozšíření IS MZLU v Brně o automatickou tvorbu rozvrhů"

Transkript

1 Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta Návrh rozšíření IS MZLU v Brně o automatickou tvorbu rozvrhů bakalářská práce Brno 2008 Vedoucí bakalářské práce: Ing. Oldřich Trenz, Ph. D. Vypracoval: Ing. Milan Dufka

2 Poděkování Děkuji Ing. Oldřichu Trenzovi, Ph. D. za trpělivé odborné vedení, cenné rady a podněty při zpracování této práce.

3 Prohlášení Prohlašuji, že jsem bakalářskou práci na téma Návrh rozšíření IS MZLU v Brně o automatickou tvorbu rozvrhů vypracoval samostatně a použil jen pramenů, které cituji a uvádím v přiloženém soupisu literatury. Souhlasím, aby práce byla uložena v knihovně Mendelovy zemědělské a lesnické univerzity v Brně a zpřístupněna ke studijním účelům. V Brně, dne Podpis autora

4 ABSTRACT Dufka, M. Upgrade suggestion for information system at Mendel University of Agriculture and Forestry in Brno by automated timetabling. Bachelor thesis. Brno, This thesis is oriented to complex problem of university courses timetabling with more than one simultaneous optimization criteria. Thesis describes timetabling problem and analyses its using in information system of Mendel University of Agriculture and Forestry in Brno. In this bachelor work is described already solved timetabling algorithm and webbased application by Tomáš Müller, Ph.D. KEY WORDS: automatic timetabling, university information systems, UniTime ABSTRAKT Dufka, M. Návrh rozšíření IS MZLU v Brně o automatickou tvorbu rozvrhů. Bakalářská práce. Brno, Rozvrhování univerzitních předmětů je složitý problém, při jehož řešení je nutné uvažovat více optimalizačních kriterií současně. Tato práce rozebírá problematiku rozvrhování a jeho zakomponování do informačního systému Mendelovy lesnické a zemědělské univerzity v Brně. Práce popisuje již vyvinutý rozvrhovací algoritmus a webovou aplikaci Tomáše Müllera, Ph.D. KLÍČOVÁ SLOVA: automatické rozvrhování, univerzitní informační systémy, UniTime - 5 -

5 OBSAH 1 ÚVOD A CÍL PRÁCE Úvod Cíl práce 9 2 ÚVOD DO PROBLEMATIKY IS A PROGRAMOVÁNÍ S OMEZUJÍCÍMI PODMÍNKAMI Problematika informačních systémů Historie informačních systémů Definice informačního systému Informační systém obecně Informační systém školy Analýza, návrh a implementace informačního systému Postup při vytváření informačního systému Životní cyklus informačního systému Metodika vytváření informačního systému Programování s omezujícími podmínkami Co je omezující podmínka? Constraint programming Řešení systému podmínek Algoritmy systematického prohledávání Základní algoritmy Konzistenční techniky Propagace podmínek Pořadí výběru proměnných a hodnot Heuristické a stochastické algoritmy Shrnutí technik programování s omezujícími podmínkami 24 3 ÚSKALÍ TVORBY ROZVRHŮ Školní rozvrhování Rozvrhování předmětů Co je to rozvrh?

6 3.3.1 Různé varianty rozvrhu Interaktivní versus automatizované (dávkové) zpracování Požadavky na rozvrhovací algoritmus Model rozvrhovacího problému 32 4 ALGORITMUS PRO TVORBU ROZVRHŮ Interaktivní rozvrhovací program první pohled Interaktivní rozvrhovací program koncept Výběr aktivity (kritérium výběru proměnné) Výběr umístění aktivity (kritérium výběru hodnoty) Jak uniknout cyklu? Použití algoritmu pro řešení obecných problémů s omezujícími podmínkami Shrnutí 44 5 ANALÝZA ZAKOMPONOVÁNÍ DO IS MZLU V BRNĚ Aplikační architektura UIS Databáze UIS Rozšíření UIS o automatickou tvorbu rozvrhů University Course Timetabling Zhodnocení UniTime DISKUSE 52 7 ZÁVĚR 54 8 POUŽITÁ LITERATURA

7 1 ÚVOD A CÍL PRÁCE 1.1 Úvod Značné výhody Univerzitního informačního systému Mendelovy zemědělské a lesnické univerzity v Brně (dále jen UIS), který usnadňuje většinu každodenních činností spojených se studiem a tím zvyšuje produktivitu práce jak studentů tak i učitelů a zaměstnanců, již dnes nikdo nezpochybňuje. UIS sestává z mnoha modulů a je navržen tak, aby řešil problematiku informovanosti studentů i učitelů a problém celkové komplexnosti studijních záležitostí. Jedním z modulů je i modul Zobrazení rozvrhů, který umožňuje zobrazení a tisk denního, či týdenního rozvrhu jednotlivého studenta, vyučujícího, předmětu, místnosti, vybraného ústavu, pro určitý typ studia, programu, oboru, ročníku a skupiny. Modul ovšem neřeší tvorbu těchto rozvrhů, které se zatím bohužel vytváří ručně. Tato práce pojednává o problematice automatizování tvorby rozvrhů a její zakomponování do UIS. Samozřejmě existují školní systémy, které tuto problematiku již řeší, ale většina komerčních produktů vyhovuje spíše požadavkům středních a základních škol. Vysoké školy mají většinou tvorbu mnohem komplexnější a použití těchto produktů je zde spíše přítěží než usnadněním. Existuje však řešení, které je zdarma a dokáže celou problematiku obsáhnout. Jediným problémem zřejmě je, že se o tomto řešení neví. Vytvoření této práce bylo motivováno myšlenkou optimalizace časového rozvržení předmětů. Práce shrnuje poznatky z již dostupných zdrojů dlouhodobého bádání, kterým problematika tvorby nejenom univerzitních rozvrhů je. V následující kapitole této práce je pojednáno o problematice informačních systémů a o programování s omezujícími podmínkami pro představu, jak a proč jsou takové systémy důležité, jak zvyšují produktivitu práce a jakým způsobem se zpracovávají omezující podmínky. Třetí kapitola popisuje problematiku tvorby univerzitních rozvrhů. Zde je především pojednáno o tom, jakým způsobem se definují omezující kritéria. O konkrétním návrhu algoritmu pro tvorbu rozvrhů je kapitola čtvrtá, kde je popisován již osvědčený algoritmus z Purdue University v USA. V kapitole páté je analyzována možnost zakomponování navrhnutého řešení do informačního systému MZLU v Brně. V šesté kapitole je zamyšlení nad stávajícím stavem, možnostmi jeho změny a návrhy na rozšíření

8 1.2 Cíl práce Cílem této práce je návrh rozšíření univerzitního informačního systému Mendelovy zemědělské a lesnické univerzity o automatickou tvorbu rozvrhů pro všechny fakulty a pracoviště univerzity. Práce by měla posloužit jako podklad pro implementační studii oddělení koncepce a vývoje UIS. K naplnění cíle je nutné nejprve čtenáře uvést do problematiky informačních systémů, programování s omezujícími podmínkami a úskalí návrhů především univerzitních rozvrhů. Dále je třeba, aby čtenář pochopil algoritmus, který je použit pro rozvrhování. Díky pochopení algoritmu lze totiž již předem optimalizovat vstupní údaje. Po těchto krocích lze konečně dospět k samotnému rozšíření univerzitního systému o již dlouhodobě vyvíjené řešení automatizovaného rozvrhování

9 2 ÚVOD DO PROBLEMATIKY IS A PROGRAMOVÁNÍ S OMEZUJÍCÍMI PODMÍNKAMI 2.1 Problematika informačních systémů Historie informačních systémů Informační systém a informační technologie se koncem 20. století a počátkem nového století staly jedním z nejdůležitějších faktorů ekonomiky podniku [9]. Za posledních 20 let došlo téměř ve všech organizačních strukturách podniku ke značným změnám. Změny byly vyvolány především novými možnostmi informačních technologií a informačních systémů. Až do konce 70 let se od informačních systému a informačních technologií očekával především přímý efekt úspory pracovní síly a materiálu [10]. Později se však od informačních systémů očekávalo také zvýšení produktivity, flexibility, kvality služeb a tím i konkurenceschopnosti. Nyní snad již žádná instituce, větší firma či škola bez informačního systému a databáze nemůže existovat. Potřeba informačního systému vznikla proto, aby lidé měli v ucelené podobě informace pro rozhodování v různých oblastech, či aby mohli provádět rychlou a zároveň efektivní výměnu informací mezi různými subjekty. Informační systém by tak měl změnit dosavadní možnosti informovanosti Definice informačního systému Dle encyklopedie wikipedia je informační systém systémem pro sběr, udržování, zpracování a poskytování informací a dat. Definice v [11] říká, že informační systém lze definovat jako soubor lidí, metod a technických prostředků zajišťujících sběr, přenos, uchování a zpracování dat s cílem tvorby a poskytování informací dle potřeb příjemců informací činných v systémech řízení. Další definice, která popisuje informační systém z jiného pohledu může znít: Informační systém je obecně podpůrný systém pro systém řízení. Jestliže chceme projektovat systém jako takový, musíme znát, jaké jsou cíle, a informační systém řešit tak, aby tyto cíle podporoval [12]

10 Informační systém je také jedním z objektů zkoumání poměrně mladého vědního oboru informatika, která úzce spolupracuje s matematikou a kybernetikou. Zkoumá nejen strukturu a obecné vlastnosti informací ale i jejich transformaci, přenos a praktické užití. Dalším pojmem je informatizace, čímž nazýváme pronikání informatiky do společnosti. To vede ke vzniku informační společnosti, kde se informace stávají jednou z největších hodnot, kde se za informace platí penězi a kde informace hrají největší roli. V praxi platí pravidlo, že čím vzácnější a při případném použití výnosnější je informace, tím více bude stát. Znalosti a informace jsou dnes jediným smysluplným zdrojem. Tradiční výrobní faktory - půda, práce a kapitál nezmizely, ale staly se druhořadými. Hlavním producentem bohatství jsou informace a znalosti. [14] Informace se k příjemci dostávají několika různými způsoby. Hlavní tok informací mají na starosti právě již zmiňované IS. Jejich úkolem je především poskytnout příjemci přiměřené množství dat ve vhodné formě. Systém musí nejprve data zpracovat a pak je teprve nabídnout člověku jako informaci. Z historického pohledu můžeme rozlišit tři hlavní formy procesu zpracování dat: Ruční Mechanizované Automatizované Zpracování dat můžeme rozdělit do čtyř fází: Pořízení dat - získávání dat měřením, dotazováním a jinými vhodnými způsoby Uchování dat - ukládání dat na papírová, magnetická, optická či jiná média Zpracování dat - transformace primárních dat na informace, které lze ve srozumitelné formě prezentovat Prezentace dat - grafy, tabulky či jiné vhodné prostředky pro prezentaci získaných informací Tyto fáze procesu zpracování dat jsou realizovány různými technologiemi, kterým obecně říkáme informační technologie. Každý informační systém zahrnuje informační základnu, technické a programové prostředky, technologie a procedury, určitou organizaci a co především - odborně vyškolené pracovníky

11 2.1.3 Informační systém obecně Sousloví informační systém vzniklo ze dvou důležitých pojmů. Prvním pojmem je informace, která může být z filosofického hlediska chápána na velmi vysoké úrovni abstrakce podobně jako pojmy poznání, hmota, vědomí, myšlení. V České terminologické databázi knihovnictví a informační vědy lze nalézt tuto definici: V nejobecnějším slova smyslu se informací chápe údaj o reálném prostředí, o jeho stavu a procesech v něm probíhajících. Informace snižuje nebo odstraňuje neurčitost systému (např. příjemce informace); množství informace je dáno rozdílem mezi stavem neurčitosti systému (entropie), kterou měl systém před přijetím informace a stavem neurčitosti, která se přijetím informace odstranila. V tomto smyslu může být informace považována jak za vlastnost organizované hmoty vyjadřující její hloubkovou strukturu (varietu), tak za produkt poznání fixovaný ve znakové podobě v informačních nosičích. V informační vědě a knihovnictví se informací rozumí především sdělení, komunikovatelný poznatek, který má význam pro příjemce nebo údaj usnadňující volbu mezi alternativními rozhodovacími možnostmi. Významné pro informační vědu je také pojetí informace jako psychofyziologického jevu a procesu, tedy jako součásti lidského vědomí (např. N. Wiener definuje informaci jako "obsah toho, co se vymění s vnějším světem, když se mu přizpůsobujeme a působíme na něj svým přizpůsobováním"). V exaktní vědě se např. za informaci považuje sdělení, které vyhovuje přísným kriteriím logiky či příslušné vědy. V ekonomické vědě se informací rozumí sdělení, jehož výsledkem může být zisk nebo užitek. V oblasti výpočetní techniky se za informaci považuje kvantitativní vyjádření obsahu zprávy. Za jednotku informace se ve výpočetní technice považuje rozhodnutí mezi dvěma alternativami (0, 1) a vyjadřuje se jednotkou nazvanou bit. Pojem systém lze chápat jako množinu prvků a vazeb mezi nimi, které jsou účelově definovány na nějakém nosiči. Obecné schéma systému je na obr. 1. zpětná vazba vstup transformace výstup Obr. 1: Obecné schéma systému Informační systém zobrazený na obr. 2 je obecným systémem s konkrétněji pojmenovanou částí transformační a zpětnovazební

12 data - stav vstup procesy výstup Obr. 2: Schéma informačního systému Obecný informační systém (obr. 2) pracuje s jednou nebo více databázemi. Je možné, aby databázových modelů bylo více typů, ale nejobvyklejší jsou relační. Nad těmito databázemi jsou definovány možné procesy nejčastěji ve formě možných transakcí. Tyto transakce jsou aktivovány na základě změn ve fyzickém systému. Změny ve fyzickém systému jsou sledovány buď automaticky pomocí různých čidel, nebo neautomaticky pomocí poučené obsluhy, která pak parametry pro spuštění transakcí zadává manuálně. Podobně výstupy informačního systému fyzický systém ovlivňují buďto automaticky nebo prostřednictvím obsluhy sledující tyto výstupy. Názornější obecné schéma informačního systému je na obr

13 cíle: Obr. 3: Obecné schéma informačního systému [8] Obecně chápeme informační systémy jako systémy pro zpracování dat, které mají tyto strategické (plánování investic ), taktické (vedení, kontrola rozpočtů ), operační (každodenní rutina). Důležité jsou také úlohy IS: manažerské (EIS - Executive IS),

14 taktické (DSS - Decision Support System), vedení (MIS - Management IS), expertní (KWS - Knowledge Work System), kancelářské (OIS - Office IS), operativní. o o o o o TPS - transakční (banky ), CRM - péče o zákazníka, RIS - rezervační systémy, CAM - konstrukční (CAD ), GIS geografické informační Informační systém školy Informační systém školy je specifickou oblastí manažerských informačních systémů (EIS). Poté, co se počítačově orientované informační systémy a technologie dostaly do nejrozmanitějších oborů lidského konání, stále více pozorujeme příznivé ohlasy ze školních institucí. Začíná být stále více podporován a prosazován informační systém školy, a to ve smyslu zefektivnění rutinní práce a vybudování komplexnějšího celku, který by sdružoval veškeré informace. Takový školní IS má za úkol informovat studenty o jejich studijním prospěchu, rozvrhu hodin, aktualitách, nařízeních školy a nejrůznějších záležitostech souvisejících se studiem. Zároveň by měl usnadnit práci jak studentům tak i učitelům, aby jejich práce byla efektivnější a kvalitnější. Jelikož nově vytvářené IS ve školství pracují s Internetem, zařazují se do systému mnohdy i odkazy na jednotlivé WWW informační servery, které se školstvím souvisí. Nároky na zavádění takového informačního systému nejsou jen finanční z hlediska hardwaru, ale také zde musíme počítat se zvyšováním kvalifikací pracovníků školy i studentů, tedy všech, kteří budou systémy využívat. Uživatelé takového IS školy by tedy měli mít minimální odbornou přípravu v oblasti výpočetní techniky, práce s osobními počítači a Internetem Analýza, návrh a implementace informačního systému V této kapitole je definován postup realizace informačního systému. Tento postup je postupem ideálním, který je v praxi téměř vždy jistým způsobem modifikován, případně omezen z různých důvodů, z nichž většinou převažují důvody finanční a časové

15 Pečlivá příprava modelu a dokumentace je velmi žádoucí a v konečném hodnocení projekt zkvalitní a učiní jej modifikovatelným, udržovatelným a dlouhodobě fungujícím. Proti této snaze stojí ale nechuť analytiků a programátorů dokumentovat svou činnost. Často je dokumentace vytvářena dodatečně a to zejména pod obchodním tlakem. Části architektury informačního systému: model a jeho účel databázová část komunikační část Postup při vytváření informačního systému Základní schéma výstavby informačního systému je na obr. 4. data a procesy komunikace metodika prohlášení o cílech, požadavky na systém rozčlenění prostředí na objekty a struktury, definice rozhraní objektů specifikace operací nad objekty, specifikace Integritních omezení Konceptuální schéma (rozhraní objektů). typy vlastností, vazby mezi objekty převod konceptuálního schématu na databázový model specifikace komunikačního prostředí služby a prostředky nutné pro komunikaci, bezpečnost provozu komunikační body a jejich vlastnosti rozčlenění systému na část server, komunikační kanál,klient analýza požadavků na systém specifikační dokument úroveň návrhu definice procesů v použitém formalismu implementace procesů včetně úvahy o transakcích implementace komunikace klient-server a uživatelského rozhraní úroveň implementace informační systém Obr. 4: Postup při vytváření informačního systému [8]

16 Jsou zde čtyři základní fáze či úrovně vzniku informačního systému: formulace požadavků na úrovni fyzického systému datová a funkční analýza (oddělení obecného od zvláštního - abstrakce) návrh informačního systému (implementační dokumentace) a implementace informačního systému Životní cyklus informačního systému Jako každý jiný systém má i informační systém několik životních fází (SLC-System Life Cycle): fáze plánování, fáze analýzy, fáze návrhu, fáze užití. Ve fázi užití vznikají opět impulsy pro vylepšování systému, takže cyklus se neustále opakuje Metodika vytváření informačního systému Při vytváření informačního systému nejde jen o vlastní technickou implementaci, ale i o popis dokumentační a nedílně i obchodní stránky. Je třeba si uvědomit, že realizace informačního systému je inženýrské dílo a je třeba postupovat podle spolehlivé metodiky, sestávající také ze spolehlivé dokumentace. V tomto textu je alespoň částečně metodika včetně dokumentace demonstrována. Je třeba se zamyslet nad dokumenty, které v průběhu výstavby a implementace informačního systému vznikají, nebo vznikat mají. Implementace informačního systému je totiž také obchodní případ, který je třeba řádně dokumentovat, aby se minimalizovaly konflikty a finanční ztráty. Nadále bude strana zadávající a také financující projekt uživatelem a strana realizující implementátorem Návrh Hlavním artefaktem jsou případy užití (nebo také modely jednání - use cases). Základními prvky jsou: aktér, scénář a impuls-reakce (zpráva). Případy užití je možno, podobně jako v softwarovém inženýrství, rozšiřovat či generalizovat. Model spolupráce je dalším artefaktem, který vzniká na základě případů užití. Hledají se zde první náznaky tříd, odpovědností a vztahů. To pak ústí v objektový model, který již přesně zachycuje celý systém, vztahy mezi objekty či hierarchii dědění

17 Funkční model poskytuje kontrolní pohled na vytvářený systém. De facto standardem je zde DFD (Data Flow Diagram), jež poskytuje snadné grafické vyjádření propojitelné s datovým modelem. DFD diagramy obsahují aktéry (obdélník - například osoba, instituce, jiný systém a podobně), datové sklady (obdélník se zaoblenými rohy bez pravé strany - uchovává data), procesy (obdélníky se zaoblenými rohy - manipulují s daty, jsou algoritmy) a konečně datové toky (šipky - předávání datových záznamů). DFD model je hierarchický, to znamená, že procesy se dají postupně zjemňovat. Každý proces tedy obsahuje vnořený diagram, a tak dále až po takzvané listové procesy, které jsou atomické (nedělitelné). Každý proces v DFD obsahuje textový popis (například pseudokód, přirozený jazyk, různé podmínky a podobně), popis omezení (constraints) a také dodatečné informace (možnosti optimalizace atd). Dynamický model přispívá k pochopení změn v systému. Možné popisy jsou například slovní scénáře, grafické scénáře (např. sekvenční diagramy), mapy událostí (jeden diagram na celý systém) nebo stavové diagramy a tabulky. Samostatnou kapitolou jsou pak ERdiagramy, které zachycují datový model Architektura Velmi důležitým hlediskem je volba architektury. Téměř výhradně se používá 3-vrstvá architektura: presentační (interakce s uživatelem), funkční (vlastní aplikace, bezpečnost, propojení se světem, kontrola ), datová (vlastní data). Důležitá je i bezproblémová integrace IS, která má dvě hlediska: vnitřní, kde jde o proškolení pracovníků, nastavení prostředí a podobně, a vnější, kde se jedná zejména o zákazníky a dodavatele Implementace Většina systémů se implementuje jako tzv. Data Warehouses (DW), což je architektura (obvykle založená na SŘBD), jež transformuje operativní data do jiné podoby, u které se bere ohled například na čas a rychlost následných dotazů. Tato data se nemění, mohou se transformovat z více zdrojů (např. od dodavatelů) a jsou aktualizována v časových

18 intervalech. Nad nimi se dělají statistiky či analýza. To je poslední fáze - OLAP (Online Analytical Processing). Opakem DW jsou OLPT (Online Transaction Processing Systems), které jsou často přirovnávány k výrobě podniku, DW pak ke skladování výrobků, následně OLAP systémy jsou pak jakýmsi prodejem. Je zřejmé, že OLAP systémy jsou rozšířením OLTP systémů, také jejich návrh je složitější. Je zde použitá tzv. multidimenzionální architektura. Další dimenzí je zde čas, oblast či obchodník. OLAP systémy jsou tak specifické, že se v nich může porušovat například normalizace (NF) a data jsou v těchto systémech velmi řídká. Systémy OLAP jsou implementovány buď nad relačními databázemi, nebo nad speciálními (zejména objektovými) OLAP databázemi. Z dnešních systémů jmenujme například Intersystem Caché nebo Oracle OLAP. 2.2 Programování s omezujícími podmínkami Programování s omezujícími podmínkami patří k méně známých softwarovým technologiím, kterému se ovšem věnuje na celém světě spousta institucí, organizací a skupin. Nejznámější skupinou v Evropě je ERCIM (European Research Consortium for Informatics and Mathematics) a u nás CLP Research Group Karlovy univerzity. Omezující podmínky by se mohly stát hybnou silou ve vývoji pokročilého softwaru příštích let. Ostatně již v roce 1995 představoval trh se softwarem založeným na omezujících podmínkách kolem 100 miliónů dolarů. Omezující podmínky se dnes používají v takových oblastech jako je robotika, počítačová grafika, grafická uživatelská rozhraní nebo řešení rozsáhlých kombinatorických problémů. Výzkum v této oblasti sponzoruje třeba Apple Computer. [7] Programování s omezujícími podmínkami představuje stále se rozšiřující technologii pro deklarativní popis a efektivní řešení složitých problémů především kombinatorického rázu. Výzkum omezujících podmínek spojuje vědce z celé řady oblastí jako je umělá inteligence, programovací jazyky, operační výzkum, symbolické výpočty a výpočtová logika. Omezující podmínky nalezly široké uplatnění v řadě praktických aplikací. Nejčastější aplikace pocházejí ze sféry počítačové grafiky, zpracování přirozeného jazyka, databázových systémů, molekulární biologie a návrhu plošných spojů. Klíčovou oblastí použití je potom plánování, rozvrhování a obecné optimalizační úlohy.[4]

19 2.2.1 Co je omezující podmínka? Omezující podmínka není nic jiného než relace zachycující vztah mezi proměnnými, které obsahuje. Omezujícími podmínkami jsou například lineární rovnice a nerovnice. Pomocí sady omezujících podmínek lze deklarativně popsat řadu problémů, kombinatorickými problémy počínaje, přes grafická uživatelská rozhraní až po popis pohybu autonomního robota. Výhodou takového popisu problému je právě jeho deklarativní charakter, který se podobá klasickému, matematicky přesnému zadání problému. Pouhá formalizace problému v řeči omezujících podmínek by sama o sobě nestačila, důležitá je také existence efektivních systémů řešení omezujících podmínek. Ty vlastně převádí řešení z implicitní podoby (seznam podmínek) do podoby explicitní (ohodnocení proměnných), která je prezentována uživateli Constraint programming Programování s omezujícími podmínkami (CP constraint programming) je efektivní nástroj pro popis a řešení mnoha rozsáhlých, zvláště kombinatorických problémů z různých oblastí lidského působení. Jeho hlavní výhodou je možnost přesného, deklarativního popisu problému pomocí relací mezi proměnnými. Kromě toho, že je založen na silném teoretickém základě, má také široké praktické využití v oblastech ohodnocování, modelování a optimalizace. Programování s omezujícími podmínkami je použitím omezujících podmínek jako programovacího jazyka k definici a řešení problémů. Tohoto je často docíleno začleněním možnosti definice omezení v hostitelském programovacím jazyku. Programování pomocí omezujících podmínek původně vzniklo z formalizace rovností termů v logickém programovacím jazyce Prolog II. Nejběžněji používanými hostujícími programovacími jazyky pro programování pomocí omezujících podmínek jsou Prolog (a jeho klony), C++ a Java, ale používá se i dalších programovacích jazyků (např. Python). V imperativním programování je programování pomocí omezujících podmínek většinou realizováno pomocí samostatných knihoven, kterých je celá řada pro každý programovací jazyk Řešení systému podmínek Systémy s podmínkami lze rozdělit do dvou skupin. V první skupině jsou problémy s konečným počtem proměnných, kde každá proměnná má konečnou doménu a podmínek v takovém systému je konečně mnoho. Každá podmínka zmenšuje počet kombinací

20 možných hodnot, kterých mohou proměnné současně nabývat. Z tohoto pohledu se jedná o kombinatorický problém, který je v terminologii programování s omezujícími podmínkami nazýván CSP (Constraint Satisfaction Problem). Jako řešení CSP pak lze požadovat libovolné ohodnocení všech proměnných splňující všechny podmínky, všechna vyhovující ohodnocení nebo nějaké optimální či téměř optimální řešení, které bude navíc např. minimalizovat zvolenou objektivní funkci. Jak je ukázáno v [15], problém CSP je NP-těžký problém. Druhou skupinu tvoří problémy s nekonečnými doménami, takovou doménou může být například interval v oboru reálných čísel. Pro řešení těchto problémů se používají algebraické a numerické metody. Každý takový problém lze převést na CSP problém diskretizací nekonečných domén. Například v rozvrhovacích a plánovacích úlohách se čas dělí na uniformní časové úseky (sloty). Problémy s nekonečnými doménami se ale většinou obor programování s omezujícími podmínkami nezabývá.[4] Problém splňování podmínek patří mezi matematické problémy, kde se musí najít stavy nebo objekty, které splňují zadaná omezení či kritéria. Důležitou otázkou je, zda pro každou množinu vztahů, množinu všech omezujících podmínek, která může být reprezentována užitím pouze vztahů vybraných z této množiny, je úplné řešení v čase deterministické nebo nedeterministické. Většina tříd problémů s omezujícími podmínkami, které jsou známy jako tvárné, jsou ty, kde hyperbola omezení ohraničuje šířku stromu (a kde nejsou omezení na množině omezujících podmínek) nebo kde omezení mají libovolnou formu, ale kde existuje v zásadě nejednočlenná mnohotvarost množiny omezujících podmínek Algoritmy systematického prohledávání Většina algoritmů řešení CSP je založena na systematickém prohledávání všech možných ohodnocení proměnných. Takové algoritmy nám garantují nalezení řešení, pokud existuje, nebo dokázání, že problém je neřešitelný. Nevýhodou těchto algoritmů je jejich značná časová náročnost Základní algoritmy Problém CSP může být triviálně řešen pomocí procházení všech možných ohodnocení proměnných a následného otestování splnění všech zadaných podmínek (algoritmus generate & test). Mnohem efektivnější metoda systematického prohledávání je založena na použití techniky zvané backtracking (v české literatuře občas nazývané jako prohledávání s navracením). Program rozšiřuje nalezené částečné řešení směrem

21 k úplnému řešení pomocí postupného ohodnocování jednotlivých proměnných možnými hodnotami. V každém kroku je kontrolováno splnění všech podmínek mezi již ohodnocenými proměnnými. Pokud některá z podmínek nevyhovuje, program jde zpět k poslední ohodnocované proměnné, která má ještě jinou, dosud nezkoušenou hodnotu. Pokud je tedy nalezen konflikt, není již dané řešení dále rozšiřováno, proto je tato metoda efektivnější než metoda generuj a testuj. Přesto je časová složitost algoritmu stále exponenciální Konzistenční techniky Konzistenční techniky slouží ke zvýšení efektivity algoritmů řešících systémy s omezujícími podmínkami. Jejich úkolem je redukce množin možných hodnot jednotlivých proměnných (tj. zúžení jejich domén) o nekonzistentní hodnoty. Nekonzistentní hodnoty proměnné jsou takové hodnoty, pro které nemůže existovat řešení. Jde tedy o účinné zmenšování prostoru možných ohodnocení, který je třeba prohledat. Mezi techniky, které testují konzistenci, patří backmarking Propagace podmínek Jedna z nevýhod metody backtracking je příliš pozdní detekce konfliktu. Tento problém se snaží řešit metody propagace podmínek, založené na lookahead strategiích. Hlavní myšlenkou propagace je zavedení konzistence mezi již ohodnocenými proměnnými a těmi ještě neohodnocenými. Jde tedy o dočasné zúžení domén neohodnocených proměnných. Pokud se při zajišťování konzistence vyprázdní některá z domén (tj. všechny její hodnoty budou nekonzistentní s již ohodnocenými proměnnými), není současné částečné ohodnocení rozšířitelné na všechny proměnné a algoritmus se musí vrátit. Například je systém se třemi proměnnými A, B a C, kde všechny proměnné mohou nabývat hodnot 1, 2 a 3. Dále je stanovena podmínka různosti všech tří proměnných (podmínka alldifferent), tj. A se nesmí rovnat B, B se nesmí rovnat C a C se nesmí rovnat A. Pokud při ohodnocování v prvním kroku ohodnotíme proměnnou A například hodnotou 1, pak nám následné zajištění hranové konzistence tuto hodnotu vyškrtne z domén proměnných B a C. Nejjednodušší metodou ke snížení počtu budoucích konfliktů je metoda nazvaná forward checking. Tato metoda kontroluje splnitelnost podmínek mezi právě ohodnocenou proměnnou a ještě neohodnocenými proměnnými. Při ohodnocení nové proměnné jsou zkontrolovány pouze ty podmínky, které ji svazují s některou z neohodnocených

22 proměnných. Metoda tedy stále udržuje vlastnost, že pro každou neohodnocenou proměnnou existuje nejméně jedna hodnota, která je kompatibilní s hodnotami již ohodnocených proměnných Pořadí výběru proměnných a hodnot V předchozím textu bylo uvedeno několik prohledávacích algoritmů pro nalezení řešení systému s omezujícími podmínkami. Všechny tyto algoritmy pracují s pořadím proměnných a jednotlivých hodnot. Program vždy v daném pořadí ohodnocuje další a další proměnné, pro každou proměnnou postupně zkouší jednotlivé hodnoty z její domény. Dobré zvolení pořadí proměnných a hodnot může velmi urychlit hledání řešení. Naopak v případě výběru hodnoty pro nějakou proměnnou je možné se řídit principem succeed first. To znamená, že je třeba se snažit vždy vybrat tu hodnotu, která by mohla nejrychleji vést k cíli. Důvod tohoto výběru vychází z prohledávacího algoritmu. V každém kroku se vždy nejdříve vybírá nějaká dosud neohodnocená proměnná. Pokud je nutné projít všechny její hodnoty, je jedno, v jakém pořadí se budou brát. Pokud ale některá z hodnot povede k nalezení řešení, je snahou tuto hodnotu vybrat co nejdříve Heuristické a stochastické algoritmy Další velkou oblastí algoritmů na řešení CSP jsou algoritmy založené na náhodném, stochastickém prohledávání. Tyto algoritmy jsou většinou neúplné a nemusejí tedy nalézt řešení, i když existuje. Na druhou stranu často nacházejí uplatnění v mnoha praktických aplikacích, kde je vyžadováno nalezení nějakého, i neúplného, řešení v garantované době. Nejčastějšími zástupci stochastických metod jsou algoritmy lokálního prohledávání (local search). Zejména v posledních letech jsou tyto metody velmi populární, zvláště kvůli jejich vlastnosti velmi rychlého nalezení nějakého (i nekonzistentního) řešení a jeho následného vylepšování směrem k úplnému konzistentnímu řešení. Algoritmy s těmito vlastnostmi se často nazývají anytime algoritmy, to znamená, že jsou schopné vrátit nějaké řešení v libovolném čase. Čím více času, tím lepší řešení. Idea všech algoritmů lokálního prohledávání je stejná. Algoritmus pracuje v iteracích. V každé z iterací se snaží zlepšit ohodnocení všech proměnných výběrem jednoho ze sousedních ohodnocení. Sousedem může být například ohodnocení, které se liší od původního v hodnotě pouze jedné proměnné. Tato sousední ohodnocení jsou porovnána pomocí nějaké objektivní funkce a je vybráno nejlepší z nich. K tomuto řešení se budou prohledávat sousedé v následující iteraci. Objektivní funkce může být například množství

23 nesplněných podmínek. Iterační cyklus se opakuje, dokud není nalezeno požadované řešení, tedy například takové, kde jsou splněny všechny podmínky. Protože jde o algoritmy nesystematického prohledávání, takové ohodnocení nemusí být nalezeno, program se může velice snadno zacyklit po několika krocích se bude vždy vracet do stejného nekonzistentního ohodnocení Shrnutí technik programování s omezujícími podmínkami V této kapitole byly uvedeny základní algoritmy a techniky použitelné pro řešení problémů s omezujícími podmínkami. Jedná se jednak o algoritmy úplné, které dokážou najít řešení vždy, když existuje, a o algoritmy neúplné, které řešení nemusí nalézt. Algoritmy neúplné (např. lokální prohledávání) však často naleznou řešení mnohem rychleji než algoritmy úplné (tj. algoritmy systematického prohledávání). I přesto, že stochastické metody lokálního prohledávání patří mezi neúplné, jsou velmi častým nástrojem pro řešení praktických problémů včetně problémů rozvrhovacích. Důvodem je bezesporu jejich efektivita. Reálný problém totiž často bývá slabě omezen (under-constrained), tzn. existuje v něm mnoho řešení a pro techniky lokálního prohledávání je snadné jedno řešení nalézt. Druhým častým příkladem jsou příliš omezené (over-constrained) problémy, kde je podmínek kladených na problém mnoho a neexistuje řešení, které by je dokázalo splnit všechny. V takovém případě je často požadováno řešení částečné, neúplné, kde je snaha minimalizovat počet nesplněných podmínek. To je opět velice dobře řešitelné pomocí lokálního prohledávání (zvláště v případě, že uživateli stačí nějaké sub-optimální řešení). Je nutné podotknout, že se v praxi po systému řešícím problémy často nechce nalézt jedno libovolné řešení nebo všechna možná řešení, ale jedno dobré řešení. To bývá často spojeno s nějakou objektivní funkcí, která porovnává dvě řešení a říká, které je lepší. Požadovaným řešením je pak řešení s minimální či maximální hodnotou této funkce. V praxi ovšem často stačí nějaké sub-optimální řešení. Častým řešením takových problémů je rozšíření backtracking metody, nazývané branch&bound. Algoritmus nejdříve nalezne nějaké řešení (stejně jako backtracking) nebo má stanovenu maximální či minimální hodnotu objektivní funkce hledaného řešení (například při minimalizaci objektivní funkce je zadána maximální hodnota požadovaného řešení). Hlavním rozdílem od backtracking metody je následné neprocházení podstromů, kde nemůže být nalezeno lepší řešení (např. s nižší hodnotou objektivní funkce) než dosud nalezené. Pro zlepšení efektivity se zde zavádí heuristika odhadující hodnotu nejlepšího

24 řešení v podstromu. Ovšem také techniky lokálního prohledávání lze snadno rozšířit na hledání nějakého sub-optimálního řešení. Objektivní (ohodnocovací) funkce například může pomoci v hledání vhodného sousedního ohodnocení. Z hlediska interaktivního rozvrhování je podstatná i další vlastnost, rozdílná pro lokální prohledávání a backtracking algoritmy. Backtracking metody pracují tak, že rozšiřují nějaké neúplné řešení, které je ovšem konzistentní. Všechny podmínky nad množinou již ohodnocených proměnných jsou vždy splněné. Tato vlastnost by se v interaktivním rozvrhování mohla hodit, proměnné by popisovaly například aktivity, které se mají rozvrhnout. Potom by bylo dobré, kdyby mohl uživatel během rozvrhování prezentovat částečné řešení, kde by byla rozvrhnuta část aktivit, které by splňovaly všechny požadované podmínky. Problém tu však nastává s interaktivitou, ve smyslu změny zadání během rozvrhovacího procesu. Backtracking totiž neumožňuje spuštění nad nějakým částečným řešením, začíná vždy od začátku. Kvůli navracení je zde totiž nutné zapamatování dosavadní historie výpočtu. To by mohlo být pro uživatele velice nepříjemné. Uživatel by totiž mohl zastavit rozvrhování, vidět nějaké částečné řešení a pozměnit některé z parametrů (například dobu trvání jedné z aktivit či přidání nové aktivity), ale nemohl by spustit pokračování plánování, rozvrh by se vždy začal tvořit od začátku. To by mohlo být problematické také v případě, kdyby se výsledný rozvrh, po nějakém menším zásahu uživatele, lišil od předchozího jen v málo změnách. Na druhou stranu, při použití nějaké metody lokálního prohledávání, které postupuje z jednoho úplného, ale nekonzistentního řešení k dalšímu, není problém spustit rozvrhování z libovolného i neúplného stavu. Neohodnocené proměnné by se ohodnotily například náhodně a proces by mohl začít prohledáváním nejbližších sousedů. Zde by také šlo poměrně dobře zajistit, aby se výsledný rozvrh po malé změně uživatele jen málo lišil od předchozího, například vhodným zvolením objektivní (optimalizační) funkce. Naopak zde by byl problém s vizualizací nekonzistentního řešení, a tedy i jeho prezentováním uživateli, který by měl mít možnost do něj zasahovat. Příkladem může být alokace jednoho zdroje více aktivitami ve stejný časový okamžik

25 3 ÚSKALÍ TVORBY ROZVRHŮ Rozvrhování (timetabling) definoval Anthony Wren [16] jako problém přiřazení aktivit na zdroje v čase vzhledem k dané množině omezení tak, aby bylo splněno co možná nejvíce požadovaných cílů. Pro rozvrhování (timetabling) je charakteristický zejména čas aktivit, zatímco pro rozvrhování (scheduling) je důležité hlavně uspořádání aktivit. Uvedená definice postihuje celou řadu problémů, jako jsou např. rozvrhy předmětů, rozvrhování zaměstnanců, rozvrh sportovních akcí nebo vlakové jízdní řády. Následující text se zabývá pouze rozvrhováním ve školství, tj. rozvrhováním předmětů a zkoušek. Aktivity tedy představují jednotlivé vyučované předměty a zdroje tvoří vyučující a místnosti. Časem se rozumí určitá množina časových intervalů, ve kterých mohou být předměty vyučovány. Omezení na vytvářený rozvrh může být celá řada, např. každý učitel může vyučovat v každém časovém intervalu nejvýše jeden předmět nebo předmět smí být vyučován pouze v místnosti s odpovídající kapacitou. Při rozvrhování se tedy přiřazuje každému vyučovanému předmětu vyučující, místnost a časový interval tak, aby nebylo porušeno žádné omezení. Rozvrhování ve školství se zpravidla rozděluje na školní rozvrhování (school timetabling, class-teacher model), rozvrhování předmětů (course timetabling) a rozvrhování zkoušek (exam timetabling) [17]. V dalších sekcích jsou podrobněji popsány jednotlivé problémy a uvedeny příklady řešených problémů spolu s technikami použitými k jejich řešení. 3.1 Školní rozvrhování S tímto problémem je zpravidla možné se setkat na základních a středních školách, kde studenti nemají téměř žádnou volnost při výběru studovaných předmětů. Studenti jsou rozděleni do tříd, přičemž všichni studenti stejné třídy mají identický rozvrh. Rozvrh se vytváří pro celé třídy, nikoli pro jednotlivé studenty. Pro každou třídu je dále zpravidla známo, který učitel ji vyučuje kolikrát během týdne. Při vytváření rozvrhu tedy stačí přiřadit čas jednotlivým setkáním mezi třídami a učiteli, tak aby nevznikl žádný konflikt, tj. aby nebyl vyučující nebo třída vyžadována v určitém časovém intervalu pro více než jedno setkání. Přiřazování místností se nemusí uvažovat, neboť každá třída má pro výuku

26 přidělenu vlastní místnost. Pokud nejsou žádná další omezení, tak je tento problém řešitelný v polynomiálním čase [13]. Ve skutečnosti ovšem bývá školní rozvrhování složitější. Někteří vyučující nebo místnosti mohou být dostupní jen v určitých časových intervalech. Předměty mohou vyžadovat místnosti se speciálním vybavením nebo mohou být vyučovány více učiteli. V těchto případech je tedy nutné uvažovat přiřazování místností nebo vybírání učitelů jednotlivým třídám. Zpravidla je také požadováno, aby výuka každé třídy probíhala po celý den bez přerušování. Další omezení se týkají uspořádání výuky a jejího rozprostření v průběhu celého týdne. 3.2 Rozvrhování předmětů Rozvrhování předmětů je většinou záležitostí v univerzitním prostředí, kde studenti mají větší možnost volby studovaných předmětů. Studenti si např. mohou přímo vybrat konkrétní předměty, které by chtěli studovat. Toto vede k situaci, kdy řada předmětů sdílí určité studenty s jinými. Předměty, které spolu sdílí studenty, by neměly být vyučovány ve stejný okamžik, neboť by studentům vznikl v rozvrhu konflikt. Vytvořit rozvrh, který neobsahuje žádné konflikty zpravidla nelze, takže se hledá alespoň takový rozvrh, který obsahuje konfliktů co možná nejméně, tj. umožňuje co nejvíce studentům studovat jimi vybrané předměty. Tento problém je v nedeterministické výpočetní době úplný [17]. Důležitější roli zde hraje také přiřazování místností. Pro každý předmět je nutné vybrat místnost s odpovídající kapacitou a vybavením. Je nutné také uvažovat umístění místností, protože univerzitní kampus je zpravidla velmi rozsáhlý a přesun z jedné místnosti do jiné může zabrat nezanedbatelný čas. Pro zjednodušení se často problém přiřazování místností řeší samostatně až po vytvoření časového rozvrhu předmětů. Při rozvrhování předmětů lze také uvažovat předměty, které jsou během týdne vyučovány opakovaně, např. z důvodu příliš velkého počtu zapsaných studentů. Tyto předměty se skládají z více sekcí. Rozdělení předmětu do více sekcí může vést ke snížení počtu konfliktů, protože student může navštěvovat libovolnou sekci. Při práci s vícesekčními předměty ovšem nastává následující paradox: studenti požadují určitý předmět, ale při rozvrhování je čas přiřazen sekcím předmětu, to znamená, že nelze přiřadit čas sekcím předmětu, dokud není zřejmé, kteří studenti budou jednotlivé sekce navštěvovat, a podobně nelze přiřadit studenty sekcím předmětu, dokud není zřejmé, kdy budou tyto sekce vyučovány. Problém s vícesekčními předměty je možné řešit tak,

27 že se studenti před vytvořením rozvrhu určitým způsobem rozdělí mezi sekce jednotlivých předmětů, tzv. počáteční rozdělení studentů (initial student sectioning). Po vytvoření rozvrhu se pak studenti mezi sekcemi přeuspořádají tak, aby byl počet konfliktů co možná nejmenší, tzv. final sectioning. Rozvrhování předmětů se řeší podobnými přístupy jako školní rozvrhování, např. pomocí simulovaného žíhání, genetických algoritmů, programování s omezujícími podmínkami a tabu prohledáváním. Rozvrhování je jedním z typických příkladů použití programování s omezujícími podmínkami. Úkolem je naplánovat dané aktivity v čase a přidělit jim požadované zdroje. Toto přiřazení musí respektovat rozličné podmínky, jakými mohou být například různé priority aktivit nebo kapacity jednotlivých zdrojů v daný časový okamžik, případně různé závislosti mezi plánovanými aktivitami. Velmi důležitý je také požadavek interaktivity na rozvrhovací program, zejména v dnešní době dostatečně výkonných osobních počítačů. Uživatel tak má možnost sledovat, jak je rozvrh utvářen a případně do jeho tvorby zasahovat. Takovým zásahem může být například přidání nebo odebrání závislosti mezi některými z aktivit, změna parametru aktivity nebo zdroje (například změna délky trvání aktivity) nebo dokonce přidání či odebrání aktivity nebo zdroje. V tomto případě je na rozvrhovacím programu požadováno, aby dokázal pokračovat se změněným zadáním a nezačínal vždy rozvrhovat od začátku. Výhodou takového způsobu řešení pak například může být i fakt, že uživatel bude moci ve zvláště obtížných případech pomoci rozvrhovači tím, že naplánuje některé pro rozvrhovač těžko naplánovatelné aktivity ručně nebo na nich oslabí některé podmínky, čímž rozvrhování programu trochu zjednoduší. Interaktivitou je tedy míněno spojení automatizovaného rozvrhování s interakcemi uživatele, který může zasahovat do rozvrhovacího procesu a měnit tak zadání problému během jeho řešení. 3.3 Co je to rozvrh? Rozvrh může být definován následovně: Rozvrh je přiřazení zdrojů a času k aktivitám tak, aby bylo dosaženo stanovených cílů a aby byly všechny podmínky, přiřazené k jednotlivým aktivitám a zdrojům, splněny. Rozvrh se skládá z množiny aktivit, které mají být provedeny. Každá aktivita bude trvat určitou předem stanovenou dobu a bude využívat některé ze zdrojů. Aktivitou může být například některá část výrobního procesu. Zdrojem pak bude stroj, na kterém se daná

28 operace na výrobku provede. Takový zdroj může mít určenu kapacitu, na kolika výrobcích zvládne danou operaci najednou nebo v daném časovém úseku provést. Zdrojem však navíc může být i pracovník, který bude daný úkon provádět. S tím může souviset i výběr z několika dostatečně kvalifikovaných pracovníků. Dále je nutné uvažovat různé typy závislostí, které mohou jednotlivé aktivity mezi sebou mít. Zadavatel musí být schopen vyjádřit například fakt, že nějaký úkon musí danému úkonu předcházet apod. V neposlední řadě je také možnost poukázat na to, že některý ze zdrojů je dostupný, a tedy vhodný pro naplánování, jen v určité časové okamžiky. Ve školním rozvrhu tak lze vyjádřit například to, že některá z učeben je v pondělí odpoledne pronajata, a je tedy využívána na jinou, externí aktivitu a nelze ji v daném čase využít. Rozvrhem je pak rozuměna alokace jednotlivých zdrojů a času pro každou z aktivit tak, aby byly splněny všechny podmínky kladené na požadovaný rozvrh. Příkladem podmínky může být požadavek provádění maximálně jednoho úkonu na každém stroji v každý časový okamžik, či časová návaznost jednotlivých aktivit. Bohužel v praxi se často nepracuje pouze s podmínkami, které musí být splněny (označované jako silné, hard podmínky), ale i s podmínkami, u kterých se preferuje, aby byly splněny (označované jako slabé, soft podmínky). Po řešení se potom požaduje, aby bylo splněno co nejvíce slabých podmínek. Dále je požadována možnost ohodnotit různá řešení (různé rozvrhy) tak, aby se mohly vyjádřit další specifické preference. Ve školním rozvrhu může být takovou preferencí například upřednostňování výuky v dopoledních hodinách. Tyto preference se projeví právě v ohodnocení daného rozvrhu. Úkolem rozvrhovače pak bude řešit optimalizační úlohu nalezení rozvrhu s minimální či maximální hodnotou ohodnocovací funkce. Uživatel však často nebude požadovat optimální řešení, ale postačí mu nějaké sub-optimální, dostatečně dobré řešení Různé varianty rozvrhu Ačkoliv většina rozvrhů má podobné základní charakteristiky a vlastnosti, existuje mnoho vlastností specifických. V případě implementace algoritmu, který by měl splňovat všechny možné požadavky, by byl tento výsledný program značně neefektivní a v praxi nepoužitelný. To dokazuje i většina výzkumů různých praktických problémů, jejichž řešení vede k použití nějakého speciálního algoritmu, který většinou pracuje s několika typy velmi specifických podmínek. Takový přístup navíc dovoluje využít všech přirozených

29 vlastností řešeného problému a zužitkovat většinu znalostí o prostoru možných řešení, což umožňuje nalézt kvalitní rozvrh v dostatečně krátké době Školní rozvrh Odlišným rozvrhovacím problémem je tvorba školního rozvrhu. Zde je úkolem naplánovat výuku jednotlivých předmětů do periodického, většinou po týdnu se opakujícího rozvrhu. Navíc je zde rozdělen čas na jednotlivé vyučovací hodiny. Každý předmět má určeného vyučujícího, množinu možných učeben a skupinu žáků či tříd, pro které je určen. Po školním rozvrhu se také může požadovat mnoho specifických podmínek a preferencí, jako je například pauza na oběd či upřednostňování dopolední výuky. Na druhou stranu se tady asi nelze setkat s požadavkem na větší kapacitu učebny ve smyslu počtu současně vyučovaných předmětů. Rozvrh předmětů je tedy tabulkou k organizaci těchto elementů: studentů vyučujících učeben vyučovacích hodin Tvorba univerzitního rozvrhu zahrnuje následující problémy: Přiřazení vyučovacích hodin k předmětům tak, aby byly předměty v blocích. Přiřazení vyučujícího k předmětu. Vyučující nemůže učit více jak stanovený počet studentů v jedné vyučovací hodině. Přiřazení učebny k předmětu. Některé předměty vyžadují speciální vybavení učebny. Všechny učebny daného dne musí být ve stejné lokalitě nebo předmětům musí předcházet dostatečná přestávka na přesun. Učebna musí mít dostatečnou kapacitu. Časné ranní, pozdní večerní a páteční hodiny většinou nejsou moc dobře přijímány. Přednášky by měly pokud možno předcházet cvičením. Navazující předměty by měly být rozvrženy až po výuce předmětu predispozičního

30 Vyučující nemůže učit v čase, kdy není dostupný. Speciální případ vyučujícího učícího na více než jedné fakultě (univerzitě). Státní svátky a jiné dny volna periodicky se opakující ve stejný den v týdnu. Výuka předmětu pouze v zimním nebo pouze v letním semestru. Hodiny stejného předmětu, pokud za sebou těsně následují, by měly být po celý den ve stejné třídě. První část výuky v semestru je vyučována jiným vyučujícím, než druhá část výuky. Ve školním roce je výuka semestrální, trimestrální a nepravidelná (jednou za 14 dní, bloková, ). Přestávky mezi vyučováním, obědová přestávka, přestávka na přesun. 3.4 Interaktivní versus automatizované (dávkové) zpracování Interaktivita je zvláště v poslední době požadavkem kladeným stále častěji na mnoho systémů řešících rozvrhovací, ale i jiné problémy. Je zde chápána nejen ve smyslu nalezení prezentovatelného řešení v krátké době, ale hlavně v možnosti uživatele zasahovat do rozvrhovacího procesu. Uživatel musí mít možnost zastavit automatické rozvrhování a prohlédnout si dosud nejlepší nalezený (i ještě neúplný) rozvrh. Dále by měl mít možnost změny zadání rozvrhu, a to jak změnou libovolného z parametrů, tak i přidáním či odebráním aktivity, zdroje či libovolné podmínky. Rozvrhovač pak musí být schopen v rozvrhování pokračovat. Navíc by se měl snažit o nalezení takového rozvrhu, který se bude od předchozího co nejméně lišit. Nemělo by se stát, že se po přidání jedné aktivity změní úplně celý rozvrh, například kvůli tomu, že rozvrhovač neumí pokračovat v již hotovém neúplném rozvrhu. Někteří autoři navíc věří, že rozvrhování ani nemůže být úplně automatické. Důvod je dvojí. Zaprvé, v automatizovaném systému je velice těžké vyjádřit porovnání dvou rozvrhů a tedy říci, který ze dvou rozvrhů je lepší. Zadruhé, prohledávací prostor pro mnoho praktických problémů je příliš rozsáhlý. Zásah uživatele může velmi efektivně napomoci jeho zúžení. Uživatel tak pomáhá systému nalézt řešení, které by plně automatizovaný systém sám nenašel

31 3.5 Požadavky na rozvrhovací algoritmus Shrňme si nyní požadavky na rozvrhovací algoritmus. Vlastnosti algoritmu se budou odvíjet hlavně od požadavku interaktivity. Prvním požadavkem bude možnost opětovného rozvrhování, tj. přeplánování (rescheduling). To znamená, že algoritmus musí být schopen vyjít při rozvrhování z předchozího rozvrhu a z množiny změn. Vstupní rozvrh přeplánování pak může vypadat například tak, že některé z aktivit nejsou rozvrženy anebo některé z podmínek nejsou splněny. Algoritmus by se měl navíc snažit co nejvíce se tomuto vstupnímu rozvrhu ve výsledku přiblížit. To znamená, že počet přeplánovaných aktivit, tedy aktivit, u kterých se změnila alokace času či některého zdroje, bude minimální. Dalším požadavkem je možnost prezentace výsledků během plánování a případná možnost zásahu uživatele do některého z mezivýsledků. To může být zajištěno například tak, že rozvrhovač bude pracovat s částečnými, ale konzistentními řešeními. V takovém částečném rozvrhu sice nebudou všechny aktivity naplánovány, ale ty, co budou rozvrženy, budou splňovat všechny požadované podmínky a budou mít alokovány všechny požadované zdroje. Po zásahu uživatele se nejdříve z rozvrhu vytvoří konzistentní částečný rozvrh a automatické rozvrhování může pokračovat. To může být provedeno například opětovným zařazením všech původně rozvrhnutých aktivit, které nevyhovují podmínkám, mezi nenaplánované. 3.6 Model rozvrhovacího problému Nyní je snahou navrhnout obecný model rozvrhovacího problému, který se skládá z množiny zdrojů, množiny aktivit a množiny závislostí mezi aktivitami. Čas se rozdělí na úseky stejné délky časové sloty. Každý slot může mít přiřazenu podmínku, a to buďto silnou (hard) nebo slabou (soft). Silná podmínka říká, že daný slot je zakázán pro každou aktivitu, nemůže být tedy použit na plánování. Slabá podmínka říká, že daný slot není preferován. Tyto podmínky jsou časové preference. Každá aktivita i každý zdroj má přiřazenu množinu těchto časových preferencí, která indikuje zakázané a (ne)preferované časové sloty. Aktivita (která přímo odpovídá jedné přednášce) je identifikována svým jménem. Každá aktivita je dále určena délkou (vyjádřenou jako počet časových slotů), časovými preferencemi (tj. množinou hard a soft podmínek přiřazených k jednotlivým slotům) a množinou zdrojů. Tato množina zdrojů určuje aktivitou požadované zdroje. Aby bylo

32 možné modelovat alternativní i nezbytné zdroje, je potřeba tuto množinu rozdělit na několik navzájem disjunktních podmnožin skupin zdrojů. Každá skupina zdrojů může být buďto konjunktivní nebo disjunktivní. Konjunktivní skupina znamená, že aktivita požaduje všechny zdroje z dané skupiny. Disjunktivní skupina znamená, že aktivita požaduje právě jeden zdroj z dané skupiny (musí být tedy vybrán jedna z požadované skupiny alternativ). Příkladem může být přednáška, která bude vyučována v jedné ze zvolených učeben a bude vyučována pro všechny ze zvolených tříd. Není nepotřeba modelovat konjunktivní skupiny, protože místo toho lze použít množinu disjunktivních skupin obsahujících vždy právě jeden zdroj (množina požadovaných zdrojů může být popsána v konjunktivně disjunktivní formě). Avšak použití konjunktivních i disjunktivních skupin zjednodušuje modelování příslušného problému pro uživatele. Zdroj je také identifikován svým jménem a je plně popsán pomocí množiny časových preferencí. Je zde silné omezení, že v jeden časový okamžik může daný zdroj využívat pouze jedna aktivita. To umožňuje poměrně jednoduchou vizuální reprezentaci modelu. Jak bylo již naznačeno výše, jednotlivý zdroj reprezentuje vyučujícího, třídu, učebnu, nebo jiný speciální zdroj v problému školního rozvrhu. Dále je potřeba nějaký mechanismus pro definování a práci s přímými závislostmi mezi aktivitami. Dostatečným se zdá být použití pouze binárních závislostí mezi aktivitami. V implementaci problému se používá výběr ze tří různých závislostí: jedna aktivita skončí před začátkem jiné aktivity, dvě aktivity budou naplánovány těsně za sebou a dvě aktivity budou naplánovány součastně (kratší z aktivit bude běžet v době kdy probíhá druhá z aktivit). Implementace rozvrhovače poskytuje rozhraní pro zavedení dalších binárních závislostí. Řešením problému definovaného výše je rozvrh, kde každá aktivita má určen počáteční časový slot a množinu požadovaných zdrojů, které jsou potřeba pro běh aktivity (aktivita má alokovány příslušné časové sloty každého z požadovaných zdrojů). Takový rozvrh musí splňovat všechny silné podmínky, jmenovitě: - každá aktivita má rezervovány všechny požadované zdroje, tj. všechny zdroje z každé konjunktivní skupiny a jeden zdroj z každé disjunktivní skupiny zdrojů, - dvě naplánované aktivity nemohou využívat stejný zdroj ve stejný čas, - žádná aktivita není naplánována do časového slotu, kde má daná aktivita nebo některý z rezervovaných zdrojů silnou (hard) podmínku v časových preferencích,

33 - všechny závislosti mezi naplánovanými aktivitami musí být splněny Po takovém rozvrhu je navíc požadováno, aby počet nesplněných slabých (soft) podmínek v časových preferencích v aktivitách a zdrojích byl minimální. Objektivní funkce se formálně nevyjadřuje, tyto preference se použijí jako průvodce během hledání řešení. V neposlední řadě je požadováno v interaktivním rozvrhování prezentovat nějaké řešení v každý okamžik. Proto je třeba pracovat i s částečnými řešeními, kde některé z aktivit nebudou ještě naplánovány. Přesto ale každý částečný rozvrh musí splňovat všechny výše uvedené podmínky. Práce s takovými částečnými rozvrhy dává možnost nalézt nějaké neúplné, rozumné řešení i v případě příliš omezeného problému (tj. problému kde neexistuje úplné řešení)

34 4 ALGORITMUS PRO TVORBU ROZVRHŮ Protože původní myšlenka k vytvoření této práce byla optimalizace času, tak dle závěrečného srovnání algoritmů v [6] vychází lépe nasazení algoritmu navrhovaného v [4] (Java solver), viz tab. 1. Proto jsem se rozhodl věnovat se dále algoritmu použitému v této práci. Tabulka 1: Srovnání dosažených výsledků SICStus (Prolog) a Java solver. řešení f fs _ sc f time f room SICStus A ,04% 86,08% SICStus B ,44% 83,50% Java solver ,77% 75,96% 4.1 Interaktivní rozvrhovací program první pohled Pro splnění požadavků kladených na interaktivní rozvrhovací program byl navržen speciální algoritmus určený k řešení výše uvedených problémů. Na konci této kapitoly je provedena diskuse jeho rozšíření a použitelnosti na jiné interaktivní problémy. Nejdříve ale ještě jednou rekapitulace požadavků kladených na interaktivní rozvrhovací algoritmus. Algoritmus by měl být schopen poskytnout nějaké (částečné) řešení v každém kroku. Toto (částečné) řešení ale musí být správné (všechny silné podmínky musí být splněny) a musí být dostatečně dobré ve smyslu respektování splnění slabých podmínek. Není vůbec nutné nalézt optimální řešení, které minimalizuje počet porušených slabých podmínek, ale postačí nějaké dostatečně dobré řešení. První zaměření u algoritmu je na požadavek interaktivity, tj. uživatel musí mít možnost do rozvrhovacího procesu zasahovat. To znamená, že může měnit parametry aktivit a zdrojů, odebírat či přidávat závislosti mezi aktivitami, manuálně rozvrhovat libovolné z aktivit nebo odebírat či přidávat nové aktivity či zdroje. Uživatel také může některou z naplánovaných aktivit zafixovat, tedy říci programu, že tato aktivita již nebude přemístěna v rozvrhu či jinak přeplánována. Algoritmus musí být schopen začít rozvrhovat z takto zmodifikovaného rozvrhu, tj. zajistit jeho správnost a pokračovat rozšiřováním tohoto částečného řešení směrem k úplnému rozvrhu. Rozdíl mezi dvěma řešeními poskytnutými rozvrhovačem ve dvou po sobě jdoucích krocích by potom měl být minimální

35 Existují dva základní přístupy, jak řešit problémy definované množinou podmínek. Metody založené na backtrackingu, které rozšiřují částečné konzistentní řešení směrem k úplnému řešení, a techniky lokálního prohledávání, které se snaží snižovat počet konfliktních podmínek v úplném řešení. Idea lokálního prohledávání splňuje požadavek na existenci nějakého řešení v každém kroku algoritmu a na malé množství rozdílů mezi po sobě následujícími řešeními. Bohužel, poskytovaná řešení nejsou konzistentní. Na druhé straně metody založené na backtrackingu poskytují konzistentní mezivýsledky v každém kroku, ale zajištění interaktivního chování je zde velkým problémem. Tato metoda konkrétně nepodporuje změny částečného řešení a rozdíly mezi dvěma následujícími řešeními mohou být obrovské (například po velkém skoku zpět). Proto pro splnění požadavků na interaktivní rozvrhovací algoritmus byla navržena kombinace obou výše uvedených přístupů. Zde uváděný algoritmus používá dopředné hledání založené na rozšiřování částečného konzistentního řešení směrem k úplnému řešení. Následný rozvrh je odvozen od předchozího naplánováním nějaké dosud nenaplánované aktivity a odstraněním konfliktních aktivit. Každý krok je řízen pomocí heuristiky, která kombinuje minimální odchylku a minimální nedodržení požadovaných slabých podmínek. Pokud uživatel nějak změní částečné řešení, algoritmus nejdříve odebere z rozvrhu všechny konfliktní aktivity, a potom pokračuje v rozvrhování z vytvořeného konzistentního řešení. 4.2 Interaktivní rozvrhovací program koncept Navrhovaný algoritmus pracuje v iteracích. Algoritmus využívá dvě základní datové struktury. Množinu dosud nenaplánovaných aktivit a částečný konzistentní rozvrh. V každém iteračním kroku se program snaží vylepšit současné částečné řešení. Rozvrhování začíná s prázdným rozvrhem, což je také částečné konzistentní řešení. Na začátku jsou tedy všechny aktivity v množině nenaplánovaných aktivit. Algoritmus postupuje z jednoho částečného řešení k dalšímu, dokud nejsou všechny aktivity naplánovány nebo dokud není dosaženo maximálního počtu iterací. Uživatel může přerušit algoritmus po libovolné iteraci a může získat řešení (poslední nebo nejlepší dosud nalezený rozvrh), kde pravděpodobně nebudou ještě všechny aktivity naplánovány, ale všechny podmínky, kladené na naplánované aktivity, budou splněny. Během tohoto přerušení uživatel může naplánovat některé z nenaplánovaných aktivit ručně, oslabit některé z podmínek nebo udělat libovolnou jinou změnu nebo změny

36 (například přidání nové aktivity). Nakonec může nechat algoritmus pokračovat v rozvrhování. A co se děje v každém iteračním kroku? Algoritmus nejdříve vybere jednu z nenaplánovaných aktivit a vyhodnotí pozice, kam může být tato aktivita umístěna (místa, kde nějaký časový slot obsahuje silnou podmínku, nejsou uvažována). Každá pozice je popsána začátkem (tj. číslem prvního slotu, kde bude aktivita umístěna) a množinou požadovaných zdrojů. Každé takové místo v rozvrhu je pak ohodnoceno pomocí nějaké heuristické funkce pracující nad současným částečným rozvrhem. Aktivita je tedy umístěna na nejlepší z těchto pozic, což může způsobit konflikt s některými dříve naplánovanými aktivitami. Tyto konfliktní aktivity jsou následně odebrány z rozvrhu a jsou vloženy zpět do množiny nenaplánovaných aktivit

37 Obr. 5: Vývojový diagram algoritmu pro tvorbu rozvrhu Výše uvedený algoritmus (obr. 5) je parametrizován dvěma funkcemi. Výběrem aktivity a výběrem umístění aktivity v rozvrhu. V širším pohledu programování s omezujícími podmínkami můžeme tyto funkce vidět jako kritéria výběru proměnné a hodnoty. Obě tyto funkce výběru mohou být nalezeny jak v metodách založených na backtrackingu, tak i v algoritmech lokálního prohledávání. Proto zde existují některé

38 základní techniky, jak definovat tyto funkce. Použití těchto funkcí v navrhovaném řešení je někde mezi lokálním prohledáváním a backtrackingem. Vybírá se nenaplánovaná aktivita (tzn. ještě neohodnocená proměnná), ale během výběru se používá také informace o předchozích umístěních aktivity. Tato aktivita mohla být odebrána z rozvrhu během některého z předchozích iteračních kroků. Navíc, protože se odebírají aktivity z částečného rozvrhu, je zapotřebí zavést nějaký mechanizmus zábrany zacyklení. Techniky výběru aktivity a jejího umístění a techniky zamezení zacyklení jsou popsány v následujících odstavcích. 4.3 Výběr aktivity (kritérium výběru proměnné) Jak již bylo uvedeno výše, navržený algoritmus vyžaduje funkci, která vybere z množiny nenaplánovaných aktivit jednu aktivitu. Tato aktivita bude následně umístěna do rozvrhu. Tento problém je ekvivalentní kritériu výběru proměnné v programování s omezujícími podmínkami. Existuje několik základních rad, jak proměnnou vybrat. V algoritmech lokálního prohledávání je nejčastěji vybírána ta aktivita, která se účastní nejvíce nesplněných podmínek. V backtracking metodách je většinou využíváno principu first-fail. To může představovat výběr proměnné, která se účastní v nejvíce podmínkách (statické kritérium) nebo výběr proměnné, která má nejmenší doménu (dynamické kritérium, při použití look ahead strategií) atd. Pokud se dodrží tyto základní doporučení, je žádoucí vybrat takovou aktivitu, která půjde nejhůře naplánovat. Zjednodušeně je nazvána nejhorší aktivitou. Otázkou tedy je, jak porovnat dvě aktivity, abych bylo možné určit, která je horší. Příkladem statické informace může být počet závislostí, ve kterých aktivita figuruje. Více závislostí představuje horší aktivitu. Dynamickou informací je informace, která se získá z již hotového částečného rozvrhu. Příkladem může být počet míst v rozvrhu, kde aktivita není v konfliktu se žádnou další aktivitou. Zjištění dynamických informací je bezesporu časově náročnější, ale takové informace jsou pro uživatele přesnější, než statické informace; lépe vypovídají o tom, která aktivita půjde hůře naplánovat. Pokud bych se navíc používaly pouze statické informace, algoritmus by se mohl velice rychle zacyklit. V implementaci algoritmu jsou započítávána tato kritéria: Kolikrát již byla aktivita odebrána z rozvrhu? (NRm) Kolika závislostí se aktivita účastní? (NDep) Na kolika místech může být tato aktivita umístěna? (NPlc)

39 Poznámka: Místa, kde leží aktivita, která nelze odebrat, například kvůli tomu, že ji tam zafixoval uživatel, se nezapočítávají. Na kolika místech může být aktivita umístěna, aniž by to způsobilo konflikt s jinou aktivitou? (NPlcNC) K váženému součtu výše uvedených hodnot lze dospět pomocí vzorce: valactivity = w1 N Rm w2 N Dep + w3 N Plc + w4 Vybrána je potom ta aktivita, která má minimální hodnotu tohoto součtu. První dvě kritéria jsou započítávána s negativní vahou. Důvodem je fakt, že vyšší hodnota těchto kritérií znamená horší aktivitu. Použití této formule dává značnou flexibilitu při ladění systému na určitý problém nebo na určitý typ problémů. Navíc dovoluje studovat vliv jednotlivých kritérií na efektivitu rozvrhování. Je možné vybrat nejhorší aktivitu ze všech nenaplánovaných aktivit, ale díky složitosti výpočtu hodnotící funkce to může být značně časově náročné. Proto je ve výsledném programu umožněno (při velkém množství nenaplánovaných aktivit) nejdříve použít náhodný výběr podmnožiny nenaplánovaných aktivit (používá se pravděpodobnost výběru 0,2). Výsledná aktivita se pak heuristicky vybírá pouze z této podmnožiny. Výsledky rozvrhování nejsou o moc horší při přibližně pětkrát rychlejším výběru aktivity. 4.4 Výběr umístění aktivity (kritérium výběru hodnoty) Poté, co je nalezena nejhorší aktivita, je nutné nalézt místo, kam ji v rozvrhu umístit. Tento problém se často nazývá kritériem výběru hodnoty v programování s omezujícími podmínkami. Jak již bylo uvedeno dříve, typicky nejlepší radou je použití strategie best-fit. Úkolem je tedy nalezení místa v rozvrhu, které je nejvíce aktivitou (podmínkami na ni) preferováno a kde aktivita způsobí nejméně problémů. To znamená, že se hledá místo s nejmenším počtem budoucích konfliktů dané aktivity s ostatními. V použitém algoritmu se sice explicitně nepoužívá propagace podmínek, ale právě síla této propagace je skryta v kritériu výběru umístění aktivity. Aby bylo nalezeno nejlepší umístění aktivity, tak se postupně prochází všechny možné začátky a pro každé určení počátečního časového slotu se prochází všechny možné množiny požadovaných zdrojů, které aktivita pro svůj běh vyžaduje. Takových množin zdrojů může být více (viz skupiny alternativních zdrojů). Každé takové umístění aktivity se dále ohodnotí pomocí následujících kritérií: N PlcNC

40 Kolik již naplánovaných aktivit bude v konfliktu s aktivitou, pokud se vybere dané umístění? Tj. kolik aktivit bude muset být z rozvrhu odebráno pro zajištění konzistence. (NCnfAct) Způsobí výběr umístění opakované odebrání stejné aktivity? (Nrep počet takových opětovně odebraných aktivit). Pro každou aktivitu si lze totiž zapamatovat, která aktivita způsobila její poslední odebrání z rozvrhu v některé z předchozích iterací. Pomocí tohoto kritéria je možné předejít velmi jednoduše některým zacyklením. Kolik je aktivit, které budou v konfliktu s danou aktivitou v případě výběru daného umístění a pro které bude navíc platit, že je nelze přeplánovat bez konfliktu? (NConflNoRsh) Kolik slabých podmínek se umístěním aktivity na dané místo poruší? Započítávají se podmínky z časových preferencí aktivity a alokovaných zdrojů. (Nsoft) Jak daleko je vybrané umístění aktivity od předchozího (tj. od umístění, kde aktivita byla před pokračováním automatizovaného rozvrhování)? (NdiffPl 1 pokud je umístění různé, jinak 0) Jak dobré je umístění z uživatelského pohledu na daný rozvrh? (Nuser) Toto je uživatelem definovaná preference umístění, která umožňuje modelování reálných problémů. Může to být opět nějaká formule kombinující mnoho aspektů. Příkladem je preference dopoledních vyučovacích hodin před odpoledními ve školním rozvrhu. Vážený součet výše uvedených kritérií je počítán následovně: val place = w' 1 N CnfAct + w' 2 N rep + w' 3 N ConfNoRsh + w' 4 N soft + w' 5 N diffpl + w' 6 Vybráno je umístění s nejmenší hodnotou této ohodnocovací funkce. Jednou z metod, jak zamezit zacyklení, je znáhodnění tohoto výběru umístění aktivity. Například je možné vybrat pět nejlepších míst a výsledné umístění z nich potom vybrat náhodně. Lze přidat podmínku, že hodnota nejhoršího umístění ve výběru (n nejlepších umístění) nesmí být větší než dvojnásobek hodnoty nejlepšího umístění. Toto pravidlo potlačí náhodnost v případě, že bude existovat jedno velmi dobré umístění. 4.5 Jak uniknout cyklu? V předchozích dvou odstavcích, zabývajících se výběrem aktivity a jejího umístění, již bylo navrženo několik mechanizmů, jak předejít cyklení, ale je možné udělat ještě více. V současné implementaci rozvrhovacího programu je použit ještě jeden mechanizmus k zabránění zacyklení algoritmu. Je založen na technice tabu-listu. N user

41 Tabu-list je seznam dvojic (proměnná, hodnota) pevné délky. Když je proměnné přiřazena hodnota, je tento nový pár zapsán do tabu-listu a nejstarší záznam je z tabu-listu odstraněn. Nyní, když se vybírá hodnota nějaké proměnné X, je možné se vyvarovat opakovanému výběru stejné hodnoty (hodnota H není vybrána, pokud je pár (X,H) v tabu listu). Toto tabu pravidlo zabraňuje algoritmu dostat se do cyklu krátké délky (délka cyklu koresponduje s délkou tabu-listu). Navíc zde mohou existovat další, tzv. aspirační kritéria, které mohou povolit porušení výše uvedeného pravidla zákazu zvolení hodnoty. V rozvrhovacím algoritmu je tato techniku trochu přizpůsobena. V tabu-listu se ukládají páry (aktivita, umístění). Po výběru aktivity A, při výběru umístění U, ještě předtím, než se spočítá ohodnocení vybraného umístění U, se zjistí, zdali je toto umístění v tabu-listu. Pokud se tam dvojice (A,U) vyskytuje dvakrát, není toto umístění při výběru dále uvažováno. Pokud je pár (A,U) v tabulistu jednou, pak může být umístění U pro danou aktivitu A vybráno, ale pouze tehdy, když toto umístění bude mít nejlepší ohodnocení. A to je právě ten případ, kdy se toto umístění může do tabu-listu dostat podruhé (pokud je umístění U vybráno). A konečně, pokud se pár (A,U) v tabu-listu vůbec nevyskytuje, je s umístěním zacházeno tak, jak je popsáno v předchozím odstavci. Je spočítána hodnota a umístění se může dostat mezi n nejlepších umístění, ze kterých je pak vybíráno náhodně. Aspirační kritérium tedy dovoluje, aby se pro jednu aktivitu vybralo stejné umístění maximálně dvakrát v dané periodě, definované délkou tabu-listu. Druhé vybrání stejného umístění je povoleno pouze tehdy, je-li to nejlepší nalezené umístění pro aktivitu. 4.6 Použití algoritmu pro řešení obecných problémů s omezujícími podmínkami V tomto odstavci je zamyšlení nad dalšími možnostmi využití prezentovaného algoritmu. Nejdříve je pokus o formulaci varianty tohoto algoritmu řešící problém obarvení grafu. Následuje diskuse uvedeného řešení pro obecný CSP problém s binárními podmínkami. Problém obarvení grafu je jeden z klasických NP-úplných problémů. Zadáním je graf G=(V,E), kde V je množina vrcholů a E množina hran. Úkolem je obarvit vrcholy minimálním počtem barev tak, aby žádné dva vrcholy spojené hranou neměly stejnou barvu. Jak bylo již uvedeno výše, vrcholy mohou odpovídat proměnným a hrany podmínkám mezi proměnnými. Obarvení vrcholu pak odpovídá přiřazení hodnoty

42 proměnné. Zadání lze pozměnit tak, že bude dán maximální počet použitelných barev n a budou se hledat obarvení grafu těmito barvami. Daný problém pak pomocí algoritmu lze řešit následovně: Algoritmus bude opět pracovat v iteracích a bude pracovat s konzistentními neúplnými řešeními. To znamená, že v každém kroku bude existovat graf, kde nemusí být všechny vrcholy obarveny, ale mezi každými dvěma obarvenými vrcholy bude platit výše uvedená podmínka (tj. pokud jsou dané dva vrcholy spojeny hranou, musí mít jinou barvu). V každé iteraci bude nejdříve vybrán ještě neobarvený vrchol (což přesně odpovídá výběru nenaplánované aktivity) a k danému vrcholu pak bude hledána vhodná barva, kterou bude následně obarven (což zase přesně odpovídá výběru umístění aktivity). Takové obarvení vrcholu však bude moci způsobit nekonzistence, a tedy vrcholy, které budou obarveny stejnou barvou a budou hranou spojeny s daným vrcholem, budou následně odbarveny. Jak je vidět, tento algoritmus obarvení grafu přesně koresponduje s výše uvedeným rozvrhovacím algoritmem. Dokonce lze i zavést tabu-list k prevenci zacyklení, nyní pro páry (vrchol, barva). Dále ještě zbývá navrhnout heuristiky výběru vrcholu a barvy. Je opět snahou vybírat takový vrchol, který půjde nejhůře obarvit. Takový výběr byl ale již uvažován výše. Vybrán tedy může být vrchol: - s největším počtem hran - s největším počtem hran k již obarveným vrcholům - s nejmenším počtem možných bezkonfliktních obarvení Navíc lze tato kritéria nějak ohodnotit, a pak například počítat minimum váženého součtu tak, jak se to dělá při výběru aktivity. Také je možné zavádět další kritéria, jako například minimální či maximální počet vrcholů, které by byly s obarvením daného vrcholu v konfliktu. Při výběru barvy se analogicky zase použije kritéria best-fit. Je tedy snahou najít takové obarvení, které bude nejlépe vyhovovat. Opět lze počítat vážený součet několika kritérií. Takovým kritériem může být například: počet konfliktních vrcholů počet konfliktních vrcholů, které nelze jednoduše přebarvit (nemají jinou volnou, s okolními vrcholy nekolidující barvu) uživatelská preference, například říkající, že co nejvíce vrcholů má být červených

43 Při bližším prozkoumání je patrné, že jednotlivá kritéria korespondují s kritérii použitými při výběru umístění. Nyní je již velice jednoduché navržený algoritmus použít i na řešení obecného CSP problému s binárními podmínkami. Místo vrcholů se vybírají neohodnocené proměnné, místo jednotlivých barev to budou možné hodnoty. Odbarvení kolidujících vrcholů přejde na zrušení ohodnocení těch proměnných, které budou spojeny s právě ohodnocenou proměnnou nesplněnou podmínkou. 4.7 Shrnutí V této kapitole byl popsán velmi nadějný algoritmus pro řešení problémů rozvrhování, který kombinuje principy lokálního prohledávání s technikami pro řešení problémů s omezujícími podmínkami. Použitelnost navrženého algoritmu v interaktivním prostředí je bezesporu jeho největší výhodou a také vlastností, kterou se liší od tradičních rozvrhovacích algoritmů popsaných v předchozí kapitole. Tento algoritmus je navíc velmi jednoduše rozšiřitelný přidáním nových heuristik popisujících další slabé podmínky a preference

44 5 ANALÝZA ZAKOMPONOVÁNÍ DO IS MZLU V BRNĚ 5.1 Aplikační architektura UIS Pod pojmem aplikační architektura je myšlena základní softwarová výstavba celého informačního systému. Univerzitní informacní systém používá klasickou třívrstvou architekturu, ve které je datová část realizována v SŘBD Oracle 9i, aplikační část pomocí webového informačního systému vystaveném nad webovým serverem Apache a programovacím jazykem Perl (konkrétní implementací mod perl) a šifrování spojení mod ssl. Prezentační vrstva je realizována jádrem systému v jazyce Perl a zobrazuje se v několika typech zařízení základním je internetový prohlížeč HTML stránek, podporováno je ale i zobrazování na mobilních telefonech pomocí technologie W@P. [2] 5.2 Databáze UIS UIS pracuje s obecným právním systémem, který zajišťuje vhodný kontextový pohled pro pracovníky na všech stupních řízení tzn. implementovaný právní systém definuje uživatele, skupiny uživatelů (ty mohou obsahovat opět další skupiny uživatelů), práva, role (role je skupina práv) a subjekty (pracoviště, vůči kterým se práva vztahují) je tedy možné určit, jaká oprávnění či jakou roli má každý uživatel či skupina uživatelů pro každý konkrétní subjekt. UIS umožňuje evidovat místnosti, tzn. UIS sleduje vybavení univerzity z hlediska areálu, budov, místností, kapacity, plánků rozesazení a informace o vybavení místností. Inventarizační modul UIS dovoluje zaměstnancům sledovat vybavení jejich místností a zadávat požadavky na přesun a přísun materiálu a vybavení mezi místnostmi a převody mezi pracovištěm. Všechny tyto sledované informace jsou užitečné pro sestavování rozvrhu. Umožňují zajistit, aby v učebně bylo potřebné vybavení (např. projektor, počítače pro studenty, apod.) a také aby učebna měla dostatečnou kapacitu. Další z tabulek v databázi UIS je katalog předmětů, který umožňuje definovat, které předměty jsou ve kterém období vyučovány, s přihlédnutím ke studijním programům, nutností evidovat vícejazyčné sylaby předmětu, řadu ukončení předmětu včetně jejich kreditního ohodnocení apod

45 Nový Studijní a zkušební rád se snaží zavést plně kreditní studium podle standardu ECTS, což je situace, kdy si student volí průchod studiem sám (analogie individuálních studijních plánů) v závislosti na tom, kolik má k dispozici kreditů pro zapsání předmětu v daném období a na Stromu závislostí předmětu, čímž se mu určitým způsobem koriguje průběh studia. Přechodem na kreditní systém tak odpadá složité přerozdělování do skupin, křížení předmětů, volba volitelných předmětů a poměrně nenásilnou cestou je umožněn individuální profil studia. Většina úkonů je dobrovolná, avšak jejich neprovedení může studentovi poměrně zkomplikovat studium (např. nemusí mít tzv. slušný rozvrh apod.). Naopak by se měla zmírnit tendence studentů kritizovat rozvrhy, protože si sami mohou tímto způsobem rozvrh ve velké míře ovlivnit a jsou tedy jeho spolutvůrci. V systému UIS je k dispozici nástroj, pomocí kterého si student může stanovit, o jaké předměty má v novém období zájem s přihlédnutím ke Stromu závislostí a případně Vyváženým předmětům mimo fakultu (tj. lze si zapsat i předměty z jiných fakult, případně škol). Systém se musí postarat o povinné předměty, povinná opakování apod. Strom závislostí studentovi mírně komplikuje zápis předmětů, protože hlídá zavedením vazeb, kdy má být předmět studován (např. ne v prvním ročníku, tedy závislost některého předmětu na úvodním předmětu apod.). Toto omezení je hlídáno již při registraci předmětů studentem. Registrace předmětů zjišťuje zájem studentů o vypisované předměty a vytváření pořadí pro předměty s kapacitním omezením (specializované laboratoře). Podklady z registrací určují, které předměty se budou v příslušném období otevírat. Druhou fází registrace je tzv. předzápis, který potřebuje rozvrh pro své provedení (k zjištění kolizí, kapacitního omezení, počty skupin apod.). Výsledkem této pasáže je kompletně předpřipravený zápis pro studijní oddělení. Studentům, kteří neprovedou žádnou registraci jsou zapsány předměty ze Standardního průchodu studiem. Doporučený či Standardní průchod studiem stanovuje, jak student má postupovat studiem, aby za standardní délku studia dospěl k cíli. Tento standardní průchod má pro studenty jen jednu nevýhodu automatická registrace se provádí až na závěr té části období, ve které probíhá registrace, proto už mohou být některé skupiny ve výhodných časových termínech zaplněny. Místo pro standardní průchod je vždy zajištěno není tedy nutné se o nic starat, student však nedostane žádnou jinou výhodu

46 Na základě těchto údajů již může být sestaven rozvrh a nastává období předzápisu, kdy si zredukovaná množina studentů může zapsat předměty zvolené v registraci a libovolné jiné (pokud jsou volné kapacity a mají dostatek registračních poukázek) a rozdělí se do skupin, do kterých chce patřit v daném předmětu, podle vlastního zájmu, což umožňuje plynulejší a variabilnější rozvrh závisející pouze na aktivitě studentů. Studentům, kteří se předzápisu nezúčastní, se do předzápisu přenesou všechna data z registrace, a protože pro všechna místa z registrace je vyhrazeno místo v předzápise, přidělí se jim volná místa ve skupinách. Tento proces probíhá až na konci předzápisu. Vzhledem k velmi složité algoritmické situaci nelze zatím při automatickém doplňování skupin brát v potaz křížení rozvrhových akcí apod. Studenti by se tedy ve vlastním zájmu měli účastnit registrace a především předzápisu. Na základě těchto údajů (tzv. předzápisového kola) se na studijním oddělení provádí dvoukolový zápis (zápis a kontrola) a stanoví se definitivní zařazení do skupin, upraví se rozvrh a rozdělí se do učeben. Garanti předmětu nejpozději v tomto okamžiku určují, který přednášející/cvičící bude přednášet/cvičit kterou rozvrhovou akci. Zápis je tedy sekvence činností, které provádí student a studijní v okamžiku, kdy student přechází do nového období; dochází zde k potvrzení operací provedených v registraci (příp. změně struktury zapisovaných předmětů), nutné kontrole zapisovaných předmětů (nesplnění požadavku pro zápis), zapisování do konkrétního cvičení a vytvoření zápisového archu pro studenta i studijní a tvorby rozložení studentů do skupin pro vyučující. Garant předmětu má možnost podrobně udržovat strukturovanou formou sylabů ke svým předmětům. Samozřejmostí jsou vícejazyčné sylaby o předem dané struktuře. V současné době patří do struktury závislosti, cíl předmětu, obsah včetně hodinové dotace, metody výuky, ukončení předmětu a doporučená literatura. Garant dále musí specifikovat učitele, kteří se předmětu věnují z hlediska několika rolí přednášející, cvičící, zkoušející (role lze kumulovat). V případě, že garant propojí učitele na příslušnou rozvrhovou akci v rozvrhu svého předmětu, dostávají studenti možnost sledovat, kdo a kdy příslušný předmět přednáší nebo cvičí. Toto rozdělení hraje důležitou úlohu ve využívání základní aplikace pro učitele Záznamníku učitele. Studijní evidence jádro studijního systému umožňující evidovat informace o studentech, sledovat průběh jejich studia v jednotlivých obdobích, evidovat žádosti studentů, vytvářet řadu sestav a studentům prezentovat dosažené výsledky jejich studia;

47 tato část je propojena s celostátním systémem Sdružené informace matrik studentu (SIMS). Dále eviduje stipendia provázející zápisy nebo naopak udělovaná po uzavření Zkušebních zpráv, evidence neschopenek apod. [2, 3] 5.3 Rozšíření UIS o automatickou tvorbu rozvrhů Modul Zobrazení rozvrhů zajišťuje oprávněným uživatelům systému vkládání rozvrhových akcí, kontrolu konzistence rozvrhu, zobrazování a tisk rozvrhu dle řady kritérií a rezervaci místností pro (nejen) zkouškové akce. V další fázi vývoje by měl rozvrhový subsystém UIS podporovat tvorbu rozvrhu (průběžná kontrola konzistence, nabídka nezařazených akcí, poloautomatizovaná tvorba rozvrhu aj.). Pro tuto fázi bych doporučil využít již stávajícího řešení vyvinutého českým pracovníkem Tomášem Müllerem, Ph.D. z Purdue University v USA, který se stará o rozvrhy zmiňované univerzity a již se tomuto problému a problémům řešení s omezujícími podmínkami delší dobu věnuje. Jak již bylo uvedeno v kapitole popisující návrh algoritmu pro řešení problémů rozvrhů, algoritmus použitý v práci Tomáše Müllera podává dostačující výsledky pro vyřešení univerzitního rozvrhování. 5.4 University Course Timetabling Obr. 6: Logo produktu UniTime [18] UniTime 3.0 (University Timetabling Application) je volný software, který je výhradně určen pro univerzitní rozvrhování. Logo produktu vyobrazuje obr. 6 a domovská stránka je na adrese [18]. Software lze redistribuovat a modifikovat pod podmínkami Obecné veřejné licence GNU (neoficiální český překlad Jedná se o třívrstvou webovou aplikaci založenou na programovacím jazyku Java, která je schopná běhu na operačních systémech rodiny Windows, Unix/Linux, ale i OS X. Základem je databáze (otestovanými jsou

48 Oracle 9i, Oracle 10g, MySQL 4.1, MySQL 5.0, ale lze použít jakoukoliv jinou), Java Development Kit 5.0 nebo vyšší a webový server Apache Tomcat, který s pomocí technologie Java Server Pages zprostředkovává výstup a komunikaci s uživatelem. Celý projekt má velmi dobře zpracovánu wiki dokumentaci včetně diskusního fóra. Ukázky vybraných částí aplikace jsou na obr. 7 a obr. 8. Obr. 7 Ukázka práce s kurzy [18]

49 5.5 Zhodnocení UniTime 3.0 Obr. 8: Ukázka přehledu místností [18] Hlavní výhody Dovoluje manuální zásahy při tvorbě rozvrhu Zohledňuje všechny požadavky kladené univerzitou na tvorbu rozvrhů Pracuje s daty v databázi a tyto lze jednoduše použít pro stávající aplikace Zobrazení rozvrhů Pro rychlou prezentaci umožňuje export do PDF formátu. Má propracovanou dokumentaci a diskusní fórum a díky českému vývojáři lze snadněji navázat komunikaci. Lze změnou mnoha vlastností přizpůsobit, aniž by bylo potřeba něco doprogramovávat. Nevýhody, které znemožňují okamžité nasazení K běhu potřebuje na serveru nainstalovaný webový server Apache Tomcat. Je dostupný pouze v anglickém jazyce

ARCHITEKTURA INFORMAČNÍCH SYSTÉMŮ PODLE ÚROVNĚ ŘÍZENÍ

ARCHITEKTURA INFORMAČNÍCH SYSTÉMŮ PODLE ÚROVNĚ ŘÍZENÍ ARCHITEKTURA INFORMAČNÍCH SYSTÉMŮ PODLE ÚROVNĚ ŘÍZENÍ Podle toho, zda informační systém funguje na operativní, taktické nebo strategické řídicí úrovni, můžeme systémy rozdělit do skupin. Tuto pyramidu

Více

Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?

Více

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1 Metodický list č. 1 Cíl: Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro informačního manažera. Databázové systémy, databázové

Více

Architektury Informačních systémů. Jaroslav Žáček

Architektury Informačních systémů. Jaroslav Žáček Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?

Více

Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE. Tomáš Müller. Interaktivní tvorba rozvrhu

Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE. Tomáš Müller. Interaktivní tvorba rozvrhu Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE Tomáš Müller Interaktivní tvorba rozvrhu Katedra teoretické informatiky Vedoucí diplomové práce: RNDr. Roman Barták, PhD. Studijní

Více

Úvodní přednáška. Význam a historie PIS

Úvodní přednáška. Význam a historie PIS Úvodní přednáška Význam a historie PIS Systémy na podporu rozhodování Manažerský informační systém Manažerské rozhodování Srovnávání, vyhodnocování, kontrola INFORMACE ROZHODOVÁNÍ organizace Rozhodovacích

Více

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu 4EK311 Operační výzkum 1. Úvod do operačního výzkumu Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka Garant kurzu:

Více

OSA. maximalizace minimalizace 1/22

OSA. maximalizace minimalizace 1/22 OSA Systémová analýza metodika používaná k navrhování a racionalizaci systémů v podmínkách neurčitosti vyšší stupeň operační analýzy Operační analýza (výzkum) soubor metod umožňující řešit rozhodovací,

Více

Infor APS (Scheduling) Tomáš Hanáček

Infor APS (Scheduling) Tomáš Hanáček Infor APS (Scheduling) Tomáš Hanáček Klasické plánovací metody a jejich omezení MRP, MRPII, CRP Rychlost Delší plánovací cyklus Omezená reakce na změny Omezené možnosti simulace Funkčnost Nedokonalé zohlednění

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura Dílčí architektury Informační systémy - dílčí architektury - EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu 1 Globální Funkční Procesní Datová SW Technologická HW Aplikační

Více

Ing. Petr Kalčev, Ph.D.

Ing. Petr Kalčev, Ph.D. Ing. Petr Kalčev, Ph.D. 17.10.2017 24.10.2017 31.10.2017 7.11.2017 14.11.2017 21.11.2017 28.11.2017 5.12.2017 12.12.2017 19.12.2017 Úvod do manažerský informačních systémů Typy informačních systémů Příklady

Více

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 DOLOVÁNÍ V DATECH (DATA MINING) OBJEVUJE SE JIŽ OD 60. LET 20. ST. S ROZVOJEM POČÍTAČOVÉ TECHNIKY DEFINICE PROCES VÝBĚRU, PROHLEDÁVÁNÍ A MODELOVÁNÍ

Více

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně Identifikační karta modulu v. 4 Kód modulu Typ modulu profilující Jazyk výuky čeština v jazyce výuky Management informačních systémů česky Management informačních systémů anglicky Information systems management

Více

Systémy pro podporu. rozhodování. 2. Úvod do problematiky systémů pro podporu. rozhodování

Systémy pro podporu. rozhodování. 2. Úvod do problematiky systémů pro podporu. rozhodování 1 Systémy pro podporu rozhodování 2. Úvod do problematiky systémů pro podporu rozhodování 2 Připomenutí obsahu minulé přednášky Rozhodování a jeho počítačová podpora Manažeři a rozhodování K čemu počítačová

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

5.1.7 Informatika a výpočetní technika. Časové, obsahové a organizační vymezení. ročník 1. 2. 3. 4. hodinová dotace 2 2 0 0

5.1.7 Informatika a výpočetní technika. Časové, obsahové a organizační vymezení. ročník 1. 2. 3. 4. hodinová dotace 2 2 0 0 5.1.7 Informatika a výpočetní technika Časové, obsahové a organizační vymezení ročník 1. 2. 3. 4. hodinová dotace 2 2 0 0 Realizuje se vzdělávací obor Informatika a výpočetní technika RVP pro gymnázia.

Více

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek

Více

Analýza a modelování dat. Helena Palovská

Analýza a modelování dat. Helena Palovská Analýza a modelování dat Helena Palovská Analýza a modelování pro SW projekt Strukturovaný přístup Dynamická část (procesy, aktivity, funkce) Statická část (data) Objektově orientovaný přístup use case

Více

Úvod do informačních a řídicích systémů. lení

Úvod do informačních a řídicích systémů. lení Úvod do informačních a řídicích systémů Základní pojmy a rozdělen lení Informace Pojem vysoce abstraktní Skutečné informace musí být pravdivé, včasné, jednoznačné a relevantní (atributy informace) Základní

Více

Časový rozvrh. Agenda. 1 PŘÍPRAVA K CERTIFIKACI IPMA

Časový rozvrh. Agenda.  1 PŘÍPRAVA K CERTIFIKACI IPMA PŘÍPRAVA K CERTIFIKACI IPMA MS Project Časový rozvrh 2 09:00 10:30 blok 1 10:30 10:45 přestávka 10:45 12:00 blok 2 12:00 13:00 oběd 13:00 14:15 blok 3 14:15 14:30 přestávka 14:30 16:00 blok 4 Agenda 3

Více

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v

Více

Optimizing Limousine Service with AI. David Marek

Optimizing Limousine Service with AI. David Marek Optimizing Limousine Service with AI David Marek Airport Limousine Services Ltd. (ALS) Jedna z největších firem zajišťujících dopravu v Hong Kongu Luxusní limuzíny a kyvadlová doprava 24 hodin denně 2

Více

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY Roman Malo Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta, Ústav informatiky, malo@pef.mendelu.cz Abstrakt Problematika

Více

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 2. a 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Co nás čeká: 2. soustředění 16.1.2009

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

Bakalářský studijní obor hospodářská informatika

Bakalářský studijní obor hospodářská informatika Bakalářský studijní obor hospodářská informatika Předpoklady Struktura studia Přihlášky Poradenství Bakalářský studijní obor hospodářská informatika nabízí fundované vědecké a praktické vzdělání v oblasti

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

Základní informace o co se jedná a k čemu to slouží

Základní informace o co se jedná a k čemu to slouží Základní informace o co se jedná a k čemu to slouží založené na relačních databází transakční systémy, které jsou určeny pro pořizování a ukládání dat v reálném čase (ERP, účetní, ekonomické a další podnikové

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 22. Otázka : Úvodní fáze rozpracování softwarového projektu. Postupy při specifikaci byznys modelů. Specifikace požadavků a jejich rozpracování pomocí

Více

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming Průběžná písemná práce Průběžná písemná práce Obsah: Průběžná písemná práce Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ délka pro vypracování: 25 minut nejsou povoleny žádné materiály

Více

MODELOVÁNÍ DAT V INFORMAČNÍCH SYSTÉMECH. Jindřich Kaluža Ludmila Kalužová

MODELOVÁNÍ DAT V INFORMAČNÍCH SYSTÉMECH. Jindřich Kaluža Ludmila Kalužová MODELOVÁNÍ DAT V INFORMAČNÍCH SYSTÉMECH Jindřich Kaluža Ludmila Kalužová Recenzenti: prof. Ing. Milan Turčáni, CSc. prof. Ing. Ivan Vrana, DrSc. Tato kniha vznikla za finanční podpory Studentské grantové

Více

11. Tabu prohledávání

11. Tabu prohledávání Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

GIS Libereckého kraje

GIS Libereckého kraje Funkční rámec Zpracoval: Odbor informatiky květen 2004 Obsah 1. ÚVOD...3 1.1. Vztah GIS a IS... 3 2. ANALÝZA SOUČASNÉHO STAVU...3 2.1. Technické zázemí... 3 2.2. Personální zázemí... 3 2.3. Datová základna...

Více

Prohledávání do šířky = algoritmus vlny

Prohledávání do šířky = algoritmus vlny Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé

Více

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Datová věda (Data Science) akademický navazující magisterský program

Datová věda (Data Science) akademický navazující magisterský program Datová věda () akademický navazující magisterský program Reaguje na potřebu, kterou vyvolala rychle rostoucí produkce komplexních, obvykle rozsáhlých dat ve vědě, v průmyslu a obecně v hospodářských činnostech.

Více

KET/ZPI - Zabezpečení podnikových informací

KET/ZPI - Zabezpečení podnikových informací KET/ZPI - Zabezpečení podnikových informací Přednášející: Ing. František Steiner, Ph.D. Ing. František Steiner, Ph.D. EK417 Katedra technologií a měření mail: steiner@ket.zcu.cz tel: 377 634 535 Konzultace:

Více

10. Datové sklady (Data Warehouses) Datový sklad

10. Datové sklady (Data Warehouses) Datový sklad 10. Datové sklady (Data Warehouses) Datový sklad komplexní data uložená ve struktuře, která umožňuje efektivní analýzu a dotazování data čerpána z primárních informačních systémů a dalších zdrojů OLAP

Více

Teorie systémů TES 5. Znalostní systémy KMS

Teorie systémů TES 5. Znalostní systémy KMS Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti. Teorie systémů TES 5. Znalostní systémy KMS ZS 2011/2012 prof. Ing. Petr Moos, CSc. Ústav informatiky a telekomunikací Fakulta dopravní

Více

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy Úloha 1 Zkratka ERP jako celopodniková transakční aplikace znamená: a. Enterprise Route Planning b. Enterprise Resource Planning c. Enterprise Re-implementation Planning d. Enterprise Resource Processing

Více

ALGORITMY A DATOVÉ STRUKTURY

ALGORITMY A DATOVÉ STRUKTURY Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu

Více

Základy business intelligence. Jaroslav Šmarda

Základy business intelligence. Jaroslav Šmarda Základy business intelligence Jaroslav Šmarda Základy business intelligence Business intelligence Datový sklad On-line Analytical Processing (OLAP) Kontingenční tabulky v MS Excelu jako příklad OLAP Dolování

Více

Informační a komunikační technologie

Informační a komunikační technologie Dodatek č. Školního vzdělávacího programu Obchodní akademie Lysá nad Labem, obor 63-4-M/02 Obchodní akademie, platného od. 9. 202 - platnost dodatku je od. 9. 206 Informační a komunikační technologie je

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Metodika analýzy. Příloha č. 1

Metodika analýzy. Příloha č. 1 Metodika analýzy Příloha č. 1 Příloha č. 1 1 Účel dokumentu Dokument popisuje závaznou metodiku systémové analýzy, je upraven na míru pro prostředí Podniku. Dokument je provázán s Podnikovou analýzou,

Více

Results of innovation of the course Application software

Results of innovation of the course Application software Zkušenosti z inovace předmětu Aplikační programové vybavení Results of innovation of the course Application software Miroslav Cepl *, Ondřej Popelka Abstrakt Článek popisuje postup a průběžný výsledek

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky Pokročilé heuristiky jednoduchá heuristika asymetrické stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy pokročilá heuristika symetrické stavový prostor, který vyžaduje řízení 1 2 Paměť pouze

Více

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ Michal Brožek, Dominik Svěch, Jaroslav Štefaník MEDIUM SOFT a.s., Cihelní 14, 702 00 Ostrava, ČR Abstrakt Neustále rostoucí význam sběru dat, možnost

Více

KIS A JEJICH BEZPEČNOST-I

KIS A JEJICH BEZPEČNOST-I KIS A JEJICH BEZPEČNOST-I INFORMAČNÍ SYSTÉMY POUŽÍVANÉ V MANAŽERSKÉ PRAXI pplk. Ing. Petr HRŮZA, Ph.D. Univerzita obrany, Fakulta ekonomiky a managementu Katedra vojenského managementu a taktiky E-mail.:

Více

Strategický management a strategické řízení

Strategický management a strategické řízení Přednáška č. 2 Strategický management a strategické řízení vymezení principů paradigmatu strategického managementu pojetí a obsah strategického managementu, strategie a strategické analýzy vymezení strategického

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování 4.8.16. Úvod do programování Vyučovací předmět Úvod do programování je na naší škole nabízen v rámci volitelných předmětů v sextě, septimě nebo v oktávě jako jednoletý dvouhodinový kurz. V případě hlubšího

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení

Více

Automatizované řešení úloh s omezeními

Automatizované řešení úloh s omezeními Automatizované řešení úloh s omezeními Martin Kot Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 25. října 2012 M. Kot

Více

Optimalizace & soft omezení: algoritmy

Optimalizace & soft omezení: algoritmy Optimalizace & soft omezení: algoritmy Soft propagace Klasická propagace: eliminace nekonzistentních hodnot z domén proměnných Soft propagace: propagace preferencí (cen) nad k-ticemi hodnot proměnných

Více

Uživatelem řízená navigace v univerzitním informačním systému

Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová 1 Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová Abstrakt S vývojem počítačově orientovaných informačních systémů je stále větší důraz kladen na jejich uživatelskou

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází 1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,

Více

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování 1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy

Více

Přidělování CPU Mgr. Josef Horálek

Přidělování CPU Mgr. Josef Horálek Přidělování CPU Mgr. Josef Horálek Přidělování CPU = Přidělování CPU je základ multiprogramového OS = pomocí přidělování CPU různým procesům OS zvyšuje výkon výpočetního systému; = Základní myšlenka multiprogramování

Více

Problémové domény a jejich charakteristiky

Problémové domény a jejich charakteristiky Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 02 1/16 Problémové domény a jejich charakteristiky Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Modelování procesů s využitím MS Visio.

Modelování procesů s využitím MS Visio. Modelování procesů s využitím MS Visio jan.matula@autocont.cz Co je to modelování procesů? Kreslení unifikovaných či standardizovaných symbolů, tvarů a grafů, které graficky znázorňují hlavní, řídící nebo

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze

Více

ENVIRONMENTÁLNÍ BEZPEČNOST

ENVIRONMENTÁLNÍ BEZPEČNOST ENVIRONMENTÁLNÍ BEZPEČNOST INTEGROVANÁ BEZPEČNOST ORGANIZACE Ing. ALENA BUMBOVÁ, Ph.D. Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/15.0070)

Více

Dynamické rozvrhování

Dynamické rozvrhování Dynamické rozvrhování Hana Rudová Fakulta informatiky, Masarykova universita http://www.fi.muni.cz/~hanka Informatické kolokvium, 9.10.2007 Dynamické rozvrhování (Dynamic scheduling) 1 Úvod 2 Popis problému

Více

Informační systémy. Jaroslav Žáček jaroslav.zacek@osu.cz

Informační systémy. Jaroslav Žáček jaroslav.zacek@osu.cz Informační systémy Jaroslav Žáček jaroslav.zacek@osu.cz Úvod - co možná umíte z předmětu SWENG Rozdělení IT Architektura IS Klíčový prvek řízení IS z něj vycházejí detailní analytické i plánovací charakteristiky

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D. Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických

Více

SOFTWAROVÁ PODPORA TVORBY PROJEKTŮ

SOFTWAROVÁ PODPORA TVORBY PROJEKTŮ Slezská univerzita v Opavě Obchodně podnikatelská fakulta v Karviné SOFTWAROVÁ PODPORA TVORBY PROJEKTŮ Distanční studijní opora Karel Skokan František Huňka Karviná 2012 Projekt OP VK 2.2 (CZ.1.07/2.2.00/15.0176)

Více

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3bph)

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3bph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3bph) 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Zdroje Studijní materiály Heleny Palovské

Více

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D. Úvod do modelování a simulace systémů Ing. Michal Dorda, Ph.D. 1 Základní pojmy Systém systémem rozumíme množinu prvků (příznaků) a vazeb (relací) mezi nimi, která jako celek má určité vlastnosti. Množinu

Více

Informační systémy ve výuce na PEF Information Systems in teaching at the FEM

Informační systémy ve výuce na PEF Information Systems in teaching at the FEM Informační systémy ve výuce na PEF Information Systems in teaching at the FEM Edita Šilerová, Čestmír Halbich, Jana Hřebejková Cíle Předmět Informační systémy je postupně od roku 1994 zařazován na všechny

Více

Business Process Modeling Notation

Business Process Modeling Notation Business Process Modeling Notation Stephen A. White, IBM Corporation Procesní řízení 1 Co to je BPMN? Standard Business Process Modeling Notation (BPMN) byl vyvinutý skupinou Business Process Management

Více

Efektivnost informačních systémů. strategické řízení taktické řízení. operativní řízení a provozu

Efektivnost informačních systémů. strategické řízení taktické řízení. operativní řízení a provozu Informační systémy EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu 1 Otázky: Proč se výdaje na počítač v našem podniku neustále zvyšují, když jejich cena klesá? Víme vůbec kolik

Více

Bonn, Rheinischen Friedrich-Wilhelms-Universität

Bonn, Rheinischen Friedrich-Wilhelms-Universität Bonn, Rheinischen Friedrich-Wilhelms-Universität Seznam přednášek Bc s anotacemi http://www.mathematics.uni-bonn.de/files/bachelor/ba_modulhandbuch.pdf Studijní plán-požadavky http://www.mathematics.uni-bonn.de/studium/bachelor/studienprogramm

Více

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

Více

Znalostní systém nad ontologií ve formátu Topic Maps

Znalostní systém nad ontologií ve formátu Topic Maps Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:

Více

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Brožura dobré praxe

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Brožura dobré praxe Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/02.0024 Brožura dobré praxe Informatika 1 Brožura dobré praxe informatika Materiál shrnuje

Více

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

Informatika pro ekonomy

Informatika pro ekonomy BA (Hons) in Business Management Bc. Ekonomika a management Double Degree 2. ročník Informatika pro ekonomy (learning package) doc. Ing. Jiří Rybička, Dr. 2012/2013 2 BIBS vysoká škola Autor tohoto studijního

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

Teorie systémů TES 1. Úvod

Teorie systémů TES 1. Úvod Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti. Teorie systémů TES 1. Úvod ZS 2011/2012 prof. Ing. Petr Moos, CSc. Ústav informatiky a telekomunikací Fakulta dopravní ČVUT v Praze

Více

OBSAH 1. ÚVOD STRUKTURA A ÚROVNĚ PROCESNÍHO MODELU KONVENCE PRO MODELOVÁNÍ PROCESŮ KONVENCE PRO MODELOVÁNÍ ORGANIZAČNÍCH STRUK

OBSAH 1. ÚVOD STRUKTURA A ÚROVNĚ PROCESNÍHO MODELU KONVENCE PRO MODELOVÁNÍ PROCESŮ KONVENCE PRO MODELOVÁNÍ ORGANIZAČNÍCH STRUK Konvence procesního modelování v CENIA výtah z metodiky příloha č. 3 soutěžní dokumentace pro výběrové řízení na Integrovaný systém plnění ohlašovacích povinností OBSAH 1. ÚVOD... 4 2. STRUKTURA A ÚROVNĚ

Více

Informační systémy 2006/2007

Informační systémy 2006/2007 13 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení Informační systémy 2006/2007 Ivan Kedroň 1 Obsah Analytické nástroje SQL serveru. OLAP analýza

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

MANAŽERSKÉ ROZHODOVÁNÍ. Zpracoval Ing. Jan Weiser

MANAŽERSKÉ ROZHODOVÁNÍ. Zpracoval Ing. Jan Weiser MANAŽERSKÉ ROZHODOVÁNÍ Zpracoval Ing. Jan Weiser Obsah výkladu Rozhodovací procesy a problémy Dvě stránky rozhodování Klasifikace rozhodovacích procesů Modely rozhodování Nástroje pro podporu rozhodování

Více

Pokročilé operace s obrazem

Pokročilé operace s obrazem Získávání a analýza obrazové informace Pokročilé operace s obrazem Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno prezentace je součástí projektu FRVŠ č.2487/2011 (BFÚ LF MU) Získávání

Více

Vývoj informačních systémů. Obecně o IS

Vývoj informačních systémů. Obecně o IS Vývoj informačních systémů Obecně o IS Informační systém Informační systém je propojení informačních technologií a lidských aktivit směřující k zajištění podpory procesů v organizaci. V širším slova smyslu

Více

Databáze Bc. Veronika Tomsová

Databáze Bc. Veronika Tomsová Databáze Bc. Veronika Tomsová Databázové schéma Mapování konceptuálního modelu do (relačního) databázového schématu. 2/21 Fyzické ik schéma databáze Určuje č jakým způsobem ů jsou data v databázi ukládána

Více

5. Umělé neuronové sítě. Neuronové sítě

5. Umělé neuronové sítě. Neuronové sítě Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně

Více

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D.

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D. OPTIMALIZACE BRAMOVÉHO PLYNULÉHO ODLÉVÁNÍ OCELI ZA POMOCI NUMERICKÉHO MODELU TEPLOTNÍHO POLE Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D. Fakulta strojního inženýrství

Více

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové Registrační číslo Hodnocení část A Hodnocení část B Hodnocení A+B

Více

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 2

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 2 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 2 Lubomír Vašek Zlín 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF)

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více