Jopsen.dk - A Personal website

July 20, 2011
Petri Nets With Discrete Variables, – A Bachelor Project
Filed under: Computer,English,School by Jonas Finnemann Jensen at 13:50

A few days ago a diploma dropped in the door, meaning that after 3 years at Aalborg University I’ve got a “Bachelor of Science (BSc) in Computer Science”, as it says on the paper… I’m of course continuing as a master student next – no reason to get out “there” in the real world, where you have to work, assuming you don’t what to starve :)

Anyways, it occurred to me that I haven’t blogged about my Bachelor project. So I better get it done now, as I’m off for vacation in California later tonight… This semester we worked in groups of 3, and was supposed to write a 12-20 pages article, as opposed to a 100-200 pages report. Which turned out to be quite challenging, but also somewhat nice, because we got to polish every sentence.

As the title of the post indicates we did a project about Petri nets, a very simple but powerful modeling language. To achieve a “feeling” of novelty we introduced global discrete variables, that you can condition on and modify in transitions, and called our new model for Petri nets With Discrete Variables (PNDV). Whilst, to my knowledge, this have not been done before, we didn’t focus on showing that PNDVs where particularly useful for any specific purpose. So that part of the project feels a little shoehorned, at least to me, and maybe only me, because we all got an A for the project.

Nevertheless, assuming that the PNDV model (we invented) is interesting, then the graphical Petri net editor and verification tool we wrote during this project might also be interesting. In a desperate search for a name we came up with PeTe, yes is spelled pretty weird, but also quite cute :)

Given a PNDV or Petri net PeTe can determine if a state satisfying a given formula is possible. This problem is very hard (EXPSPACE-hard), but we had a lot of fun writing different search strategies for exploring the state space of a PNDV. Most notably we found that even quite simple heuristics can provide a huge performance improvement by guiding a search in state space. We also had great success with over-approximation, by using state equation and trap testing to disprove the satisfyability of a formula.

The heuristics and methods implemented in PeTe is presented in the article we wrote, available for download below. This article also present some, in my opinion, rather shoehorned results, like translation from Discrete Timed Arc Petri Net to PNDV. I also can’t help but feel that the direction and goal in the article could have been more clear. But done is done, and I’m off to vacation when I’ve added some links :)



March 19, 2011
Version 0.10 of zbar-sharp is out…
Filed under: Computer,English,zbar-sharp by Jonas Finnemann Jensen at 09:50

Being slightly bored with school work I decided to take day off and work on zbar-sharp, and a few minutes ago I tagged a new release of zbar-sharp. These improvements have been underway for quite a while, and many of them have been available in the repository on github for a long time. And if you plan to use zbar-sharp I’ll recommend that you checkout the git repository once in a while.

The highlights of this release are:

  • ZBar.Image: Constructor for loading from System.Drawing.Image (e.g. Bitmap import)
  • ZBar.Image: Fix for nasty memory management issue in ZBar.Image.Data
  • ZBar.Image: Convenience function for FourCC codes.
  • ZBar.Symbol: Support for QR-codes (thanks to ZBar)
  • GtkZBar.Scanner: Support for rotation (Special thanks to Patrick McEvoy)
  • ZBar: Version by (Special thanks to Brandon McCaig)
  • Tests: Unit tests to test zbar-sharp and ZBar.
  • Improved and reorganized examples…

In particular support for initializing ZBar.Image from an instance of System.Drawing.Image is very nice. Notice that System.Drawing.Bitmap is a subclass of System.Drawing.Image, so this constructor allows you to load images from files into a ZBar.Image that can be scanned.

However, this feature would have been fairly unstable without a fix for the memory management issue in ZBar.Image.Data, which previously caused applications to crash at random. A thanks to the nameless commentor by the name thedarkking, who’s comment finally gave me a clue as to where the bug was.

By the way, if you have any comments or questions don’t be afraid to leave a comment.You’re also welcome to use the issue reporting system at github to report bugs or feature requests.If you wish to contribute, just fork the project on github and push your code.



December 15, 2010
A Project on Optimal Triangulation of Bayesian Networks
Filed under: Computer,English,School by Jonas Finnemann Jensen at 11:28

This semester we did a project in machine intelligence, however, as I find probability calculus and Bayesian networks utterly boring I convinced my group to do a project about triangulation of Bayesian networks. A triangulation of an undirected graph G, is a set of edges called fill-ins, such that G with these fill-ins added is a chordal graph (a graph that doesn’t have a chord-less cycle of more than 3 node). Triangulation is of graphs is used for many purposes, and with difference optimality criteria, such as minimum fill-ins, minimum clique size (tree width) and minimum maximal clique sum (optimal table size), as is relevant for Bayesian networks.

The problem of finding an optimal triangulation is NP-Hard (with respect to mentioned optimality criteria). And since there’s many fairly good simple greedy heuristics, it can be argued that algorithms for optimal triangulation of Bayesian networks are uninteresting. However, to check of a greedy heuristic is good, optimal triangulations are needed. It’s also possible that optimal triangulation might be worthwhile if  computed offline, especially if the application needs to process a lot of data or work on an embedded platform. Or whatever, optimality is always slightly interesting, if not for anything useful, than for the fun of finding them…

In this project we implemented some simple greedy triangulation heuristics, compared their result to the optimal solutions. But most interesting is probably our work on search algorithms for optimal triangulations of Bayesian networks. We based our work on two articles by Thorsten J. Ottosen and Finn V. Jensen, who does a best or depth first search in the space of all elimination orders. As far as we’re aware these articles are the only ones that proposes algorithms for optimal triangulation of  Bayesian networks.

In this project we’ve created good improvements to the optimal triangulation algorithms. We reduce the search space by excluding elimination orders resulting in the same triangulation. Our improvements provides around 5x speedup on sparse graphs, and can be applied to regardless of the optimality criterion. I think this project was really cool, because I got to play with something that was new and fairly untouched. And the fact that I managed to propose a a few interesting improvements didn’t make it any less cool :)

Report and source code:



October 24, 2010
Back from openSUSE conference 2010
Filed under: Computer,English,LibreOffice by Jonas Finnemann Jensen at 14:01

So after a 9 hours nap on the City Night Line I woke up on my way home, after a few days in Nuremberg where I attended openSUSE Conference 2010. Where I, apart from attending some interesting talks, met some of the cool LibreOffice hackers…

As GSoC student with Go-OO (now LibreOffice) I was invited to say a few words about my GSoC project. I started by defining what visual formula editing is. Then I scratched some of the rather unpleasant problems I encountered when adding this capability to LibreOffice Math.

I also demonstrated the hack, and used a small crash-bug to show that it wasn’t ready for being shipped yet. However, despite the crash-bug, Michael Meeks suggested that we tried to put it in as an experimental feature, that could be enabled at runtime. Whether or not it’s going to make the 3.3 release, time will tell. In any event there’s still a rather long list of things to do before this hack can be considered stable.



August 24, 2010
Turning OpenOffice Math into a visual formula editor
Filed under: English,LibreOffice,Linux by Jonas Finnemann Jensen at 02:40

I’ve spend most my summer working on my GSoC project, which was to create a visual formula editor for OpenOffice Math. Currently, formulas are entered in OpenOffice Math using a plaintext command language, this can be efficent and easy for power users, however, it’s an absolute show stopper for most casual users. So I’ve spend my summer writing a visual formula editor for OpenOffice Math, you can see demonstration here:

I participated in GSoC for Go OpenOffice, which is a project that maintains a set of patches on top of OpenOffice. Go OpenOffice is the OpenOffice version distributed with OpenSuSE, Ubuntu and other distros, it is allegedly a lot better than the official OpenOffice release. And also available for Windows.

Hacking OpenOffice have been a very exciting experience. I haven’t worked on a project so large and complex before. It easily takes 2 hours to build OpenOffice and the sources and binaries fills about 13 GiB. Luckily I didn’t have to rebuild everytime I had to test something.

The visual formula editor, see video above, is not production ready yet. That is it needs extensive testing and a few extra features… However, I plan to keep working on it. You can read more about it’s features and current status here.

I don’t think I’ll keep updating that wiki page, but rather post some updates here once in a while. If you are eager to help test this feature when it comes that far, feel free to leave a comment with your email…



Older Posts »
finpecia tabletten buy Zithromax with a visa free fedex delivery prednisone Accutane without dr order accutane online buy Accutane line Crestor10mg Valtrex effects purchase online prescription Flomax order xenical online with overnight delivery order valtrex online no prescription buy genuine Prednisone online Zithromax Valtrex no prior script purchase cheap Valtrex Valtrex cheap where to purchase Buspar no prescription no fees purchase Orlistat overnight order Prednisone without a rx overnight shipping buy cheap Prednisone no prescription Xenical canadian pharmacy Flomax precio buy Tamsulosin pills in toronto purchase prednisone without a prescription online Flomax toronto cheap Xenical no rx Buy prednisone without a perscription to ship overnight buy Rosuvastatin uk buy Valtrex fed ex purchase Orlistat online without rx buy Orlistat diet pills buy Maxalt where xenical with consult where to buy generic Buspar online without a rx online Valtrex buy equivalent buy Cytotec Proscar online no prescription Valtrex without rx overnight shipping Flomax cheap no rx required canada buy Flomax money buy buying Flomax Prednisone capsule buy cheap Buspar line buy line Orlistat Orlistat buy online in stock Crestor fedex shipping buy finpecia in england canadian pharmacy Cytotec buy finpecia without rx from us pharmacy purchase Valtrex amex online without prescription buy xenical without a prescription overnight shipping prednisone Buy prednisone online overseas buy 200 mcg Cytotec buy Prednisone without rx needed no prescription Buspar with fedex Buspar for sale order valtrex usa How to get perscription of Cytotec buy Amitriptyline online without rx buy Cytotec australia what is Bupropion buy cod valtrex Crestor fedex no prescription Valtrex with free dr consultation buy Buspar tablets without rx order Valtrex overnight order Zovirax for cash on delivery what does Amitriptyline look like finpecia no prior script buy Valtrex in united states online buy cod Zithromax generic Zithromax online want to buy Buspar in usa discount Zithromax prednisone online cash on delivery cheap Crestor usa purchase Crestor no visa without prescription Crestor on line Buspar buy how to buy Valtrex online without a prescription cheap prednisone without a prescription buy cheap Prednisone free fedex purchase rx Crestor without buy Valtrex diet pills buy 40 mg Strattera buy next day Strattera Flomax without rx purchase Flomax without prescription pharmacy Xenical generic Cytotec tablets Cytotec where can i buy Zovirax how to get prescription of xenical buy cheap Premarin line buy Premarin without a rx overnight delivery buy Crestor diet pill purchase Amitriptyline no visa without prescription buy Valtrex in the uk buspar no rx foreign prednisone order on line buy Valtrex once a day buy Orlistat usa Orlistat pharmacy buy Valtrex in the uk Buy prednisone overnight shipping purchase Zithromax overnight Cytotec cheap mexican to buy valtrex order xenical overnight cheap purchase Accutane pay pal without rx buy Buspar free consultation Zithromax 250mg overnight no prescription valtrex buy Premarin online with a debit card Buy Accutane online buy discount proscar purchase Zithromax visa without prescription purchase cheap Xenical where can i purchase xenical no rx how to get a Zithromax rx buy Premarin in india buy cheapest Premarin Flomax uk sales buy Cytotec for women uk buy Valtrex in mo xenical cod next day delivery buy prednisone online without dr approval Valacyclovir effects prednisone shipped COD cheap online pharmacy for prednisone Flomax u.p.s shipping cod achat Orlistat buy prednisone without a prescription buy cheap online pharmacy Crestor safety order xenical Buy xenical without a r x Zithromax order online Purchase Accutane online where can i purchase Crestor no rx purchase Cytotec free consultation purchase Amitriptyline without prescription needed buy cheap Valacyclovir without prescription best buy Orlistat buy xenical no perscription cod Nizoral online order buy discount Flomax where to buy generic Accutane online without a prescription Flomax canada purchasing Flomax online without prescription buy xenical next day delivery buy cheapest Orlistatbuy no prior prescription Orlistat no prescriptions needed for Accutane buy Accutane 40mg valtrex mexico buy Xenical online without rx generic Prednisone online buy Nizoral paypal without rx order Proscar without rx needed buy Orlistat line order Accutane usa