Botníček

Botníček je vývojové prostředí rozšiřující možnosti řízení dialogu v jazyce AIML. Jde o zajímavý výsledek mé bakalářské práce, vedené na Matematicko-fyzikální fakultě Univerzity Karlovy v Praze.

Jazyk AIML vznikl jako nástroj na tvorbu jednoduchých konverzačních agentů. Proto postrádá některé z vlastnosti pokročilých dialogových systémů. Jednou z nich je podpora pro řízení dialogu. Ta je přitom užitečná v mnoha aplikacích, v nichž byl jazyk díky své popularitě nasazen. Práce řeší problém implementace řízení dialogu v čistém AIML. A to nasazením rozšířených přechodových sítí při návrhu a generování zdrojového kódu. Jejím výsledkem je vývojové prostředí, které podporuje zvolený postup, a podstatně tak usnadňuje návrh složitějších robotů, aniž by bylo nutné uchýlit se k rozšíření standardního interpretu.

The AIML language was created with a goal of authoring of simple chat bots. Therefore it lacks some of the features of advanced dialog systems. One of them is the support for dialog management, which is beneficial in many applications that the language has already spread into due to its popularity. This thesis solves the problem of dialog management implementation in pure AIML by using the augmented transition networks in design and code generation. It results in a development environment that supports the chosen solution, thus facilitating the design of more complex bots, while maintaining compatibility with standard interprets.

Její text, zdrojové soubory a další náležitosti jsou k dispozici na univerzitních stránkách ZDE.

Plakát práce

Plakát práce

Autodráha

Dětská autodráha na zeleném pozadíJednoduchá závodní hra napsaná v Javě 6, která vznikla jako zápočtový program na předmět Java. Zde je stručná uživatelská dokumentace, zde jsou zdrojové kódy s build.xml pro Ant, a zde přímo spustitelný JAR archiv. Hodně zábavy!

Aktualizace: Opraveny zásadní chyby (nefunkční simultánní stisk a držení kláves, špatné kódování názvů drah) a doplněna dokumentace o popis formátu autodráhy.

Datová struktura skip list

Skip list je datová struktura dosahující s vysokou pravděpodobností logaritmické časové složitosti pro běžné operace (přidání prvku, odebrání, nalezení podle klíče). Indexovaný skip list je jeho rozšířením, které navíc umožňuje i přístup k prvkům pomocí indexů v logaritmickém čase.

Ilustrace rozvržení spojů ve skip listu

Ilustrace rozvržení spojů ve skip listu

Je zajímavou alternativou vyvážených vyhledávacích stromů pro některé druhy aplikací (lze například dobře rozšířit pro užití ve vícevláknových aplikacích), navíc se oproti nim díky své eleganci poměrně snadno naprogramuje.
Předmětem mé zápočtové práce na předmět Algoritmy a datové struktury II byla právě implementace základní verze této struktury.