Skip to main content

[DE] Betrachtung des Widerspruchsbeweis des speziellen Halteproblems nach Vossen und Witt

· 6 min read

Oft wird der Nachweis, dass das Halteproblem nicht entscheidbar ist, in der Fachliteratur (Schöning [📖Sch08, 119 f.], Asteroth und Baier [📖BA02, 106 f.], Sipser [📖Sip12, 216 f.]) mithilfe einer Turingmaschine und einem Widerspruchsbeweis gezeigt, in etwa:

Angenommen,

K={wΣw=T,T stoppt bei Eingabe w}K' = \{w \in \Sigma^* | w = \langle T \rangle, \text{$T$ stoppt bei Eingabe $w$}\}

ist entscheidbar.

Sei TT' ist die Turingmaschine, die KK' entscheidet.
Sei w=Tw = \langle T \rangle die Codierung1 einer Turingmaschine, die wie folgt arbeitet:

  • TT simuliert das Verhalten von TT' bei der Eingabe ww:
    • TT stoppt, wenn TT' die Eingabe ww verwirft (wKw \notin K')
    • TT stoppt nicht, wenn TT' die Eingabe ww akzeptiert (wKw \in K')

Damit folgt: TT stoppt bei Eingabe ww \Leftrightarrow TT' verwirft ww \Leftrightarrow wKw \notin K' \Leftrightarrow TT stoppt nicht

Widerspruch!

Footnotes

  1. Anstatt Gödelnummer wird im Folgenden auch einfach der Begriff Codierung verwendet, wobei streng genommen τ(T)\tau(T) die Codierung einer normierten Turingmaschine ist, bevor ihr eine Gödelnummer zugewiesen wird

[DE] Shellsort Laufzeitanalyse

· 14 min read

Donald Shell stellt 1959 in [📖She59] einen Sortieralgorithmus vor, der später nach ihm benannt wird: Shellsort.
Die in dem Algorithmus verwendete Sortiermethode ist auch bekannt als Sortieren mit abnehmenden Inkrementen [📖OW17b, 88], das Verfahren ist eine Variation von Insertion Sort:

[Shellsort] uses insertion sort on periodic subarrays of the input to produce a faster sorting algorithm. [📖CL22, 48]

In der vorliegenden Implementierung (siehe Listing 1) werden t=log2(n)t = log_2(n) Inkremente[^1] hth_t[^2] der Form n2i\lfloor {\frac{n}{2^i}} \rfloor verwendet, um lg(n)lg(n) hh-sortierte Folgen zu erzeugen. Im letzten Schritt sortiert der Algorithmus dann in h1h_1 die Schlüssel mit Abstand=11.

Die Effizienz des Sortierverfahrens ist stark abhängig von hh: So zeigt Knuth, dass O(n32)O(n^{\frac{3}{2}}) gilt, wenn für hh gilt: hs=2s+11h_s = 2^{s+1} - 1 mit 0s<t=lg(n)0 \leq s < t = \lfloor{lg(n)} \rfloor (vgl. [📖Knu97c, 91][^3]. In unserem Fall können wir von O(n2)O(n^2) ausgehen.

[DE] Zulassungsarbeit M.Sc. Informatik

· 6 min read

Man darf behaupten, dass im Jahr 2023 das Thema Künstliche Intelligenz endgültig in der Gesellschaft angekommen ist. Mit der Veröffentlichung von ChatGPT Ende 2022 ist "KI" plötzlich für jeden begreifbar. Einmal mehr rutschen defätistische Prophezeiungen auf die Titelseiten der Boulevard-Presse.

Als Software Entwickler mit Schwerpunkt Design und Architektur hatte ich Künstliche Intelligenz bis dahin weitestgehend in den akademischen Bereich verortet.

Dann hatte ich das Glück, mich ausgiebig mit Künstlicher Intelligenz im Rahmen meiner Zulassungsarbeit für den Fernstudiengang Informatik (M.C.Sc.) an der Hoschschule Trier beschäftigen zu dürfen.

Entstanden ist eine Arbeit, in dem ich mathematische Modelle künstlicher Neuronen vorstelle. Auf dem Weg dorthin bin ich in die frühen Anfänge der Neurowissenschaft, der Kybernetik und Rechnerarchitektur eingetaucht. Es hat meine Sichtweise auf vieles, was mir bis dahin (un)verständlich gewesen ist, geändert.

[DE] Verfällt ein Big Ball of Mud?

· 8 min read
info

Ein Kommentar zu einem Kommentar zu Eberhard Wolff's Episode 159 - Big Ball of Mud als Teil von Software-Architektur im Stream. Eine englische Übersetzung findet sich hier.

Verfällt ein Big Ball of Mud?

Durch den Fortschritt der Technologie und der Arbeit von Leuten wie Brooks, Buschmann und Booch wurde uns Entwicklern der Weg vom mikroskopischen ins makroskopische geebnet. Lang vorbei sind die Zeiten, in denen schrankhohe Rechnersysteme nah an der Infrastruktur programmiert werden mußten.
Jedoch, wer heute den Mythischen Mann-Monat [📖MMM] liest und über die damals zur Verfügung stehende Technik schmunzelt, der wird spätestens bei der Aktualität der anderen erwähnten Probleme betreffs Organisation und Planung von Projekten rasch in die Gegenwart zurückgeworfen. Aus Eskapismus wird ein erhobener Finger: Das Lesevergnügen mahnt plötzlich zur Reflektion. Die Probleme von damals sind heute immer noch aktuell, und die Entwicklung der Technik verlief bis dato offensichtlich ungleich schneller als die von Planung und Organisation.

bcc-header issues with Horde_Mime_Mail

· 3 min read

bcc-header issues with Horde_Mime_Mail

This issue caused some uncertainty since I was not sure if the headers were broken due to missing quotes. See https://github.com/conjoon/php-lib-conjoon/issues/17.

Turns out that the way I assembled an email from a full text and converting it back to an instance of Horde_Mime_Mail does not consider the type of the internal representation of the bcc-field properly. It's related to Horde_Mail_Rfc822_List::_normalize and how values passed from Horde_Mime_Mail::send() are processed by it.

Fix: Missing favicon.ico in Sencha ExtJS production builds

· 3 min read

Fix: Missing favicon.ico in Sencha ExtJS production builds

Fixing missing favicon.ico in Ext JS applications.

The original issue is tracked here: https://github.com/conjoon/conjoon/issues/24

The issue

I’m not quite sure *when *and *why *it broke, but it looks like production builds of Sencha Ext JS applications do not contain any favicon.ico originally existing in the development build (anymore).

Releasing conjoon V1.0

· 2 min read

Releasing conjoon V1.0

I’m happy to announce conjoon 1.0, the very first major release of the Open Source JavaScript Email client.

For updating to the latest version, simply use our installer. It will let you select the latest release when opting for the version to install.