feat: automatic and manual anki cards generator

This commit is contained in:
Krzysztof Rudnicki 2025-12-28 17:42:23 +01:00
parent 59d6211319
commit 7e4077abd1
17 changed files with 7172 additions and 0 deletions

91
install_nvidia_nsight.sh Executable file
View File

@ -0,0 +1,91 @@
#!/bin/bash
# Install NVIDIA Nsight tools on Arch Linux
# This script installs Nsight Systems and Nsight Compute
set -e
echo "=== NVIDIA Nsight Installation Script for Arch Linux ==="
echo ""
# Check if running on Arch Linux
if [ ! -f /etc/arch-release ]; then
echo "Error: This script is designed for Arch Linux."
exit 1
fi
# Update system first
echo "=== Updating system packages ==="
sudo pacman -Syu --noconfirm
# Check NVIDIA drivers
echo ""
echo "=== Checking NVIDIA drivers ==="
if pacman -Qs nvidia-utils &> /dev/null; then
echo "NVIDIA utils already installed."
else
echo "Installing NVIDIA open drivers..."
sudo pacman -S --needed --noconfirm nvidia-open nvidia-utils nvidia-settings
fi
# Install CUDA toolkit (optional but recommended)
echo ""
echo "=== Installing CUDA toolkit ==="
sudo pacman -S --needed --noconfirm cuda
# Install Nsight tools from official repositories
echo ""
echo "=== Installing NVIDIA Nsight tools ==="
echo ""
echo "Installing Nsight Systems (system-wide performance analysis)..."
sudo pacman -S --needed --noconfirm nsight-systems
echo ""
echo "Installing Nsight Compute (CUDA kernel profiling)..."
sudo pacman -S --needed --noconfirm nsight-compute
# Set up environment variables
echo ""
echo "=== Setting up environment variables ==="
CUDA_PATH="/opt/cuda"
if [ -d "$CUDA_PATH" ]; then
# Add to .bashrc if not already present
if ! grep -q "CUDA_HOME" ~/.bashrc 2>/dev/null; then
echo "" >> ~/.bashrc
echo "# NVIDIA CUDA and Nsight tools" >> ~/.bashrc
echo "export CUDA_HOME=$CUDA_PATH" >> ~/.bashrc
echo "export PATH=\$PATH:\$CUDA_HOME/bin" >> ~/.bashrc
echo "Environment variables added to ~/.bashrc"
else
echo "CUDA environment variables already configured in .bashrc"
fi
# Add to .zshrc if zsh is used
if [ -f ~/.zshrc ]; then
if ! grep -q "CUDA_HOME" ~/.zshrc 2>/dev/null; then
echo "" >> ~/.zshrc
echo "# NVIDIA CUDA and Nsight tools" >> ~/.zshrc
echo "export CUDA_HOME=$CUDA_PATH" >> ~/.zshrc
echo "export PATH=\$PATH:\$CUDA_HOME/bin" >> ~/.zshrc
echo "Environment variables added to ~/.zshrc"
else
echo "CUDA environment variables already configured in .zshrc"
fi
fi
fi
echo ""
echo "=== Installation Complete ==="
echo ""
echo "Installed tools:"
echo " - Nsight Systems: Performance analysis for CPU/GPU workloads"
echo " - Nsight Compute: Detailed CUDA kernel profiling"
echo ""
echo "To launch the tools, use:"
echo " nsys-ui (Nsight Systems GUI)"
echo " nsys (Nsight Systems CLI)"
echo " ncu-ui (Nsight Compute GUI)"
echo " ncu (Nsight Compute CLI)"
echo ""
echo "Note: You may need to restart your terminal or run 'source ~/.zshrc'"
echo " to use the CUDA tools from command line."

View File

@ -0,0 +1,91 @@
#!/usr/bin/env python3
"""
Approach 1: STRICT FILTERING ONLY
- Only include cards with answers > 100 characters
- No changes to extraction logic
"""
import os
import re
from pathlib import Path
def clean_text(text):
if not text:
return ""
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'(?<!\*)\*([^*]+)\*(?!\*)', r'<i>\1</i>', text)
text = text.replace('\t', ' ')
text = text.replace('"', '&quot;')
text = re.sub(r' +', ' ', text)
return text.strip()
def extract_cards(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
cards = []
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
num = match.group(1) if match else "00"
subj_match = re.search(r'Przedmiot:\s*(\w+)', content)
subject = subj_match.group(1) if subj_match else "Ogólne"
base_tags = f"egzamin pyt{num} {subject}"
# Main question
q_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
if q_match:
main_q = re.sub(r'\s+', ' ', q_match.group(1).strip())
# Simple extraction - headers as answer
answer_match = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## |\Z)', content, re.DOTALL)
if answer_match:
headers = re.findall(r'^### (?:\d+\.\s*)?(.+)$', answer_match.group(1), re.MULTILINE)
if headers:
answer = '<ul>' + ''.join([f'<li>{clean_text(h)}</li>' for h in headers[:6]]) + '</ul>'
cards.append({'front': clean_text(main_q), 'back': answer, 'tags': base_tags})
# Detail cards - simple extraction
sections = re.findall(r'^### (?:\d+\.\s*)?([^\n]+)\n((?:(?!^### ).)*)', content, re.MULTILINE | re.DOTALL)
for header, body in sections:
header = header.strip()
body = body.strip()
if len(body) < 50:
continue
# Get first paragraph
paras = [p.strip() for p in body.split('\n\n') if p.strip() and not p.startswith('```')]
if paras:
answer = clean_text(paras[0][:400])
cards.append({'front': f"Wyjaśnij: {clean_text(header)}", 'back': answer, 'tags': base_tags})
return cards
def main():
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
output_file = Path("/home/kuchy/praca_magisterska/pytania/anki_1_strict_filter.txt")
all_cards = []
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
all_cards.extend(extract_cards(md_file))
# APPROACH 1: Strict filtering - only cards with answer > 100 chars
filtered_cards = [c for c in all_cards if len(c['back']) > 100]
# Remove duplicates
seen = set()
unique = []
for c in filtered_cards:
if c['front'][:80] not in seen:
seen.add(c['front'][:80])
unique.append(c)
with open(output_file, 'w', encoding='utf-8') as f:
f.write("#separator:Tab\n#html:true\n#notetype:Basic\n#deck:Egzamin_1_StrictFilter\n\n")
for c in unique:
f.write(f"{c['front']}\t{c['back']}\t{c['tags']}\n")
print(f"✅ Approach 1 (Strict Filter): {len(unique)} cards -> {output_file.name}")
if __name__ == "__main__":
main()

115
pytania/anki_approach_2.py Normal file
View File

@ -0,0 +1,115 @@
#!/usr/bin/env python3
"""
Approach 2: BETTER EXTRACTION ONLY
- Improved algorithm to get more complete content
- No minimum length filtering
"""
import os
import re
from pathlib import Path
def clean_text(text):
if not text:
return ""
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'(?<!\*)\*([^*]+)\*(?!\*)', r'<i>\1</i>', text)
text = text.replace('\t', ' ')
text = text.replace('"', '&quot;')
text = re.sub(r' +', ' ', text)
return text.strip()
def extract_structured_content(body):
"""Better extraction - look for multiple content types."""
parts = []
# 1. Look for definitions
def_match = re.search(r'#### Definicja[^\n]*\n([^\n#]+)', body)
if def_match:
parts.append(f"<b>Definicja:</b> {def_match.group(1).strip()}")
# 2. Look for bullet points with bold terms
bullets = re.findall(r'[-•]\s*\*\*([^*]+)\*\*[:\s-]*([^\n]*)', body)
for term, desc in bullets[:5]:
if desc.strip():
parts.append(f"• <b>{term}</b>: {desc.strip()}")
else:
parts.append(f"• <b>{term}</b>")
# 3. Look for key-value patterns
if not parts:
kvs = re.findall(r'\*\*([^*]+)\*\*\s*[-:]\s*([^\n*]+)', body)
for k, v in kvs[:4]:
parts.append(f"<b>{k}</b>: {v.strip()}")
# 4. Get paragraphs as fallback
if not parts:
paras = [p.strip() for p in body.split('\n\n')
if p.strip() and not p.startswith('```') and not p.startswith('|') and len(p.strip()) > 30]
for p in paras[:2]:
parts.append(p[:300])
return '<br>'.join([clean_text(p) for p in parts]) if parts else None
def extract_cards(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
cards = []
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
num = match.group(1) if match else "00"
subj_match = re.search(r'Przedmiot:\s*(\w+)', content)
subject = subj_match.group(1) if subj_match else "Ogólne"
base_tags = f"egzamin pyt{num} {subject}"
# Main question with better extraction
q_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
if q_match:
main_q = re.sub(r'\s+', ' ', q_match.group(1).strip())
answer_match = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## |\Z)', content, re.DOTALL)
if answer_match:
answer = extract_structured_content(answer_match.group(1))
if answer:
cards.append({'front': clean_text(main_q), 'back': answer, 'tags': base_tags})
# Detail cards with better extraction
sections = re.findall(r'^### (?:\d+\.\s*)?([^\n]+)\n((?:(?!^### ).)*)', content, re.MULTILINE | re.DOTALL)
for header, body in sections:
header = header.strip()
if 'Przykład' in header or '"' in header or len(body) < 50:
continue
answer = extract_structured_content(body)
if answer:
cards.append({'front': f"Wyjaśnij: {clean_text(header)}", 'back': answer, 'tags': base_tags})
return cards
def main():
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
output_file = Path("/home/kuchy/praca_magisterska/pytania/anki_2_better_extract.txt")
all_cards = []
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
all_cards.extend(extract_cards(md_file))
# No filtering - just dedupe
seen = set()
unique = []
for c in all_cards:
if c['front'][:80] not in seen:
seen.add(c['front'][:80])
unique.append(c)
with open(output_file, 'w', encoding='utf-8') as f:
f.write("#separator:Tab\n#html:true\n#notetype:Basic\n#deck:Egzamin_2_BetterExtract\n\n")
for c in unique:
f.write(f"{c['front']}\t{c['back']}\t{c['tags']}\n")
print(f"✅ Approach 2 (Better Extraction): {len(unique)} cards -> {output_file.name}")
if __name__ == "__main__":
main()

View File

@ -0,0 +1,330 @@
#separator:Tab
#html:true
#notetype:Basic
#deck:Egzamin Magisterski ISY
#columns:Front Back Tags
#tags column:3
Porównać 'siłę wyrazu' automatu skończonego, automatu ze stosem oraz maszyny Turinga. Jakie klasy języków rozpoznaje każdy z nich? <b>Automat Skończony (FA)</b>: Języki regularne (Typ 3)<br><br><b>Automat ze Stosem (PDA)</b>: Języki bezkontekstowe (Typ 2)<br><br><b>Maszyna Turinga (TM)</b>: Języki rekurencyjnie przeliczalne (Typ 0) egzamin_magisterski pyt01 AISDI pytanie_glowne
Wyjaśnij: Hierarchia Chomsky'ego - fundament teoretyczny Noam Chomsky w 1956 roku zaproponował hierarchię czterech klas języków formalnych, gdzie każda kolejna klasa zawiera poprzednią: egzamin_magisterski pyt01 AISDI szczegoly
Wyjaśnij: Automat Skończony (Finite Automaton - FA) Automat skończony to piątka: <b>M = (Q, Σ, δ, q₀, F)</b>
- <b>Q</b> - skończony zbiór stanów<br>• <b>Pamięć</b>: Brak pamięci pomocniczej - tylko aktualny stan<br>• <b>Moc obliczeniowa</b>: Nie potrafi &quot;liczyć&quot; (porównywać ilości)<br>• <b>Równoważne formalizmy</b> egzamin_magisterski pyt01 AISDI szczegoly
Wyjaśnij: Automat ze Stosem (Pushdown Automaton - PDA) Automat ze stosem to siódemka: <b>M = (Q, Σ, Γ, δ, q₀, Z₀, F)</b>
- <b>Q</b> - skończony zbiór stanów<br>• <b>Pamięć</b>: Stos (LIFO) - pamięć potencjalnie nieskończona, ale z ograniczonym dostępem<br>• <b>Moc obliczeniowa</b>: Potrafi &quot;liczyć&quot; (porównywać pary ilości)<br>• <b>DPDA ⊂ NPDA</b>: Deterministyczne PDA są SŁABSZE niż niedeterministyczne!<br>• <b>Równoważne formalizmy</b>: Gramatyki bezkontekstowe (CFG) egzamin_magisterski pyt01 AISDI szczegoly
Wyjaśnij: Maszyna Turinga (Turing Machine - TM) Maszyna Turinga to siódemka: <b>M = (Q, Σ, Γ, δ, q₀, qaccept, qreject)</b>
- <b>Q</b> - skończony zbiór stanów<br>• <b>Pamięć</b>: Taśma nieskończona z dostępem swobodnym (R/W)<br>• <b>Moc obliczeniowa</b>: Maksymalna możliwa (teza Churcha-Turinga)<br>• <b>DTM ≡ NTM</b>: Deterministyczne i niedeterministyczne TM są RÓWNOWAŻNE pod względem mocy (ale różnią się złożonością czasową) egzamin_magisterski pyt01 AISDI szczegoly
Omówić i porównać algorytmy najkrótszej ścieżki wskazując ich kluczowe właściwości i logikę budowy: Dijkstry, Belmana-Forda, A*. <b>Problem:</b> Dany jest graf G = (V, E) z funkcją wag w: E → . Znajdź ścieżkę z wierzchołka źródłowego s do wierzchołka docelowego t o minimalnej sumie wag krawędzi. egzamin_magisterski pyt02 AISDI pytanie_glowne
Wyjaśnij: Wprowadzenie - problem najkrótszej ścieżki <b>Problem:</b> Dany jest graf G = (V, E) z funkcją wag w: E → . Znajdź ścieżkę z wierzchołka źródłowego s do wierzchołka docelowego t o minimalnej sumie wag krawędzi. egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Charakterystyka • <b>Autor:</b>: Edsger Dijkstra (1956, opublikowany 1959)<br>• <b>Typ:</b>: Zachłanny (greedy)<br>• <b>Problem:</b>: SSSP - najkrótsze ścieżki z jednego źródła do wszystkich wierzchołków<br>• <b>Ograniczenie:</b>: ⚠️ <b>Tylko nieujemne wagi krawędzi</b> (w(e) ≥ 0) egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Idea algorytmu (logika budowy) 1. <b>Relaksacja:</b> Stopniowe ulepszanie oszacowań odległości egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Pseudokod Q ← priority_queue(V) // min-heap według d[v] egzamin_magisterski pyt02 AISDI szczegoly
Dlaczego nie działa dla ujemnych wag? Dijkstra przetwarza wierzchołki w kolejności rosnącej odległości i oznacza je jako &quot;zakończone&quot;. Jeśli waga może być ujemna, późniejszy wierzchołek może &quot;poprawić&quot; już zakończony. egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Złożoność czasowa <b>O(V · E)</b> - zawsze, niezależnie od implementacji egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Wykrywanie cyklu ujemnego Po |V|-1 iteracjach, wszystkie najkrótsze ścieżki (bez cykli) są znalezione. egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Optymalizacja: wczesne zakończenie if d[u] + w(u,v) < d[v]: egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Heurystyka - kluczowy element 1. <b>Dopuszczalność (Admissibility):</b> egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Przypadki specjalne: • <b>h(n) = 0:</b>: A* = Dijkstra egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Dijkstra • <b>Nawigacja GPS</b>: (drogi nie mają ujemnych odległości)<br>• <b>Routing w sieciach</b>: (OSPF protocol)<br>• <b>Mapy Google/Apple</b>: (dla małych obszarów) egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: Bellman-Ford • <b>Routing w sieciach</b>: (RIP protocol - prostszy)<br>• <b>Arbitraż walutowy</b>: (szukanie cykli ujemnych = zysk!)<br>• <b>Systemy z &quot;karami&quot;</b>: (ujemne wagi = bonusy) egzamin_magisterski pyt02 AISDI szczegoly
Wyjaśnij: A* • <b>Gry komputerowe</b>: - pathfinding NPC, RTS<br>• <b>Robotyka</b>: - planowanie ruchu<br>• <b>Puzzle</b>: - 8-puzzle, 15-puzzle<br>• <b>Nawigacja</b>: - gdy znamy pozycję celu<br>• <b>Dijkstra:</b>: Relaksuje krawędzie wychodzące z wierzchołka o minimalnym d[v] egzamin_magisterski pyt02 AISDI szczegoly
Omówić zagadnienia redundancji i normalizacji w relacyjnej bazie danych oraz wynikające z tego wymagania. <b>Redundancja</b> (nadmiarowość) i <b>normalizacja</b> to dwa fundamentalne, przeciwstawne pojęcia w projektowaniu relacyjnych baz danych: egzamin_magisterski pyt03 BD2 pytanie_glowne
Wyjaśnij: Wprowadzenie • <b>Redundancja</b>: = niepożądane powtarzanie danych<br>• <b>Normalizacja</b>: = proces eliminacji redundancji poprzez dekompozycję relacji egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Definicja <b>Redundancja</b> występuje, gdy ta sama informacja jest przechowywana w wielu miejscach bazy danych, co prowadzi do: egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Trzy typy anomalii <b>Problem:</b> Nie można dodać danych bez dodania innych, niepotrzebnych danych. egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Podstawowe pojęcia <b>X → Y</b> oznacza: wartość X jednoznacznie określa wartość Y egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Hierarchia postaci normalnych 5NF ⊂ 4NF ⊂ BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: 1NF - Pierwsza Postać Normalna 1. <b>Atomowość wartości</b> - każda komórka zawiera jedną, niepodzielną wartość egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: 2NF - Druga Postać Normalna 2. <b>Każdy atrybut wtórny jest w pełni funkcyjnie zależny od całego klucza głównego</b> (nie od jego części) egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: 3NF - Trzecia Postać Normalna 2. <b>Brak przechodnich zależności funkcyjnych</b> - atrybuty wtórne nie zależą od innych atrybutów wtórnych egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: BCNF - Postać Normalna Boyce'a-Codda 2. <b>Dla każdej nietrywialnej FD X → Y, X jest nadkluczem</b> egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: 4NF - Czwarta Postać Normalna 2. <b>Brak nietrywialnych zależności wielowartościowych</b> (MVD - Multivalued Dependencies) egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: 5NF - Piąta Postać Normalna (PJNF) 2. <b>Brak zależności połączeniowych</b> (Join Dependencies) egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Algorytm dekompozycji do 3NF 1. <b>Znajdź pokrycie kanoniczne</b> zbioru zależności funkcyjnych egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Własności dobrej dekompozycji Po dekompozycji można odtworzyć oryginalną relację przez złączenie naturalne. egzamin_magisterski pyt03 BD2 szczegoly
Kiedy stosować? • <b>Optymalizacja wydajności</b>: - złączenia są kosztowne<br>• <b>Systemy OLAP/hurtownie danych</b>: - dane głównie odczytywane<br>• <b>Raportowanie</b>: - predefiniowane zapytania egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Techniki denormalizacji: 1. <b>Dodanie redundantnych kolumn</b> - unikanie złączeń egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Kompromis: NORMALIZACJA ←————————————→ DENORMALIZACJA egzamin_magisterski pyt03 BD2 szczegoly
Wyjaśnij: Wzór na 3NF: > &quot;Każdy atrybut zależy od <b>klucza</b>, <b>całego klucza</b> i <b>tylko od klucza</b>.&quot; egzamin_magisterski pyt03 BD2 szczegoly
Dlaczego baza danych stanowi dobry fundament do budowy wielu systemów informatycznych? Baza danych to <b>centralny komponent</b> większości systemów informatycznych, ponieważ zapewnia: egzamin_magisterski pyt04 BD2 pytanie_glowne
Wyjaśnij: Trójpoziomowa architektura ANSI/SPARC ┌─────────────────────────────────────────┐ egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Rodzaje niezależności Zmiana sposobu przechowywania (indeksy, partycjonowanie, kompresja) <b>nie wpływa</b> na aplikacje. egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Mechanizmy wymuszania integralności id INT PRIMARY KEY, -- Klucz główny egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Optymalizator zapytań 1. <b>Analizuje zapytanie</b> (parsing) egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Wielopoziomowe zabezpieczenia ┌─────────────────────────────────────────┐ egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Kontrola dostępu GRANT SELECT ON Sprzedaz TO analityk; egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Skalowanie poziome (Scale-out) • <b>Replikacja</b>: - kopie do odczytu<br>• <b>Sharding</b>: - podział danych między serwery<br>• <b>Klastry</b>: - wysoka dostępność egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: SQL jako lingua franca • <b>Standardowy język</b>: - SQL:2016, SQL:2023<br>• <b>Przenośność</b>: - kod działa na różnych SZBD<br>• <b>Narzędzia</b>: - uniwersalne IDE, ORM, ETL egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Bogaty ekosystem • <b>ORM</b>: (Hibernate, Entity Framework, SQLAlchemy)<br>• <b>Narzędzia migracji</b>: (Flyway, Liquibase)<br>• <b>Monitorowanie</b>: (Grafana, Datadog)<br>• <b>Backup</b>: (pg_dump, mysqldump, RMAN) egzamin_magisterski pyt04 BD2 szczegoly
Wyjaśnij: Polyglot Persistence Nowoczesne systemy często używają <b>wielu baz</b> - każda do swojego celu. egzamin_magisterski pyt04 BD2 szczegoly
Omówić główne kategorie elementów biblioteki STL. Jaka jest ich rola i wzajemne powiązania? Odpowiedź uzasadnić na przykładach. <b>STL (Standard Template Library)</b> to część standardowej biblioteki C++ zawierająca generyczne struktury danych i algorytmy. Została zaprojektowana przez Alexandra Stepanova i weszła do standardu C++98. egzamin_magisterski pyt05 PROI pytanie_glowne
Wyjaśnij: Filozofia STL • <b>Generyczność</b>: - szablony (templates) umożliwiają pracę z dowolnymi typami<br>• <b>Wydajność</b>: - zero-overhead abstraction<br>• <b>Modularność</b>: - komponenty są niezależne i wymienne<br>• <b>Ortogonalność</b>: - kontenery i algorytmy są rozdzielone (przez iteratory) egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Kategorie kontenerów Przechowują elementy w określonej kolejności. egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Hierarchia iteratorów Input Iterator Output Iterator egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Kategorie iteratorów std::vector<int> vec = {1, 2, 3, 4, 5}; egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Iteratory specjalne std::vector<int> vec = {1, 2, 3}; egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Kategorie algorytmów std::vector<int> vec = {1, 2, 3, 4, 5, 3}; egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Rodzaje funktorów std::vector<int> vec = {3, 1, 4, 1, 5}; egzamin_magisterski pyt05 PROI szczegoly
Wyjaśnij: Kluczowa zasada: Ortogonalność <b>M kontenerów × N algorytmów = M + N implementacji</b> (nie M × N!) egzamin_magisterski pyt05 PROI szczegoly
Omówić metody reużywalności kodu i struktur danych w obiektowych językach programowania. <b>Reużywalność kodu (code reuse)</b> to fundamentalna zasada inżynierii oprogramowania - &quot;nie wynajduj koła na nowo&quot;. W programowaniu obiektowym mamy kilka mechanizmów umożliwiających wielokrotne wykorzystanie kodu. egzamin_magisterski pyt06 PROI pytanie_glowne
Wyjaśnij: Główne metody reużywalności ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Problem diamentu (Diamond Problem) class A { public: void metoda() {} }; egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Typy relacji obiektowych // Kompozycja - silnik &quot;umiera&quot; z samochodem egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Szablony w C++ // Użycie - kompilator generuje wersje dla każdego typu egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Generyki w Java/C# public void set(T value) { this.value = value; } egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Wzorzec strategii (Strategy Pattern) virtual void sort(std::vector<int>& data) = 0; egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Mixiny (Mixins) Klasy dostarczające funkcjonalność do &quot;wmieszania&quot; do innych klas. egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Traity (Traits) fn move_to(&mut self, x: i32, y: i32); egzamin_magisterski pyt06 PROI szczegoly
Wyjaśnij: Poziomy reużywalności ┌─────────────────────────────────────────────────────┐ egzamin_magisterski pyt06 PROI szczegoly
Które serwery DNS najwięcej zyskują dzięki buforowaniu zapytań (caching) w serwerach rekursywnych? Jakie znasz rodzaje serwerów DNS? Przechowują oryginalne rekordy DNS dla danej domeny. Są &quot;źródłem prawdy&quot;.<br><br>Wykonują pełne rozwiązywanie nazw w imieniu klienta, pytając kolejno serwery autorytatywne.<br><br>Prosty klient DNS w systemie operacyjnym. Wysyła zapytanie do rekursywnego resolvera i czeka na odpowiedź. egzamin_magisterski pyt07 SKM pytanie_glowne
Wyjaśnij: Wprowadzenie do DNS <b>DNS (Domain Name System)</b> to hierarchiczny, rozproszony system tłumaczenia nazw domenowych na adresy IP (i odwrotnie). egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: Hierarchia DNS . (root) egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: 1 Serwery autorytatywne (Authoritative) • <b>13 logicznych serwerów:</b>: a.root-servers.net do m.root-servers.net<br>• <b>Fizycznie:</b>: Setki serwerów (anycast)<br>• <b>Funkcja:</b>: Wskazują serwery TLD<br>• <b>gTLD:</b>: .com, .org, .net (generic)<br>• <b>ccTLD:</b>: .pl, .de, .uk (country code) egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: 2 Serwery rekursywne (Recursive Resolvers) <b>Definicja:</b> Wykonują pełne rozwiązywanie nazw w imieniu klienta, pytając kolejno serwery autorytatywne. egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: 3 Stub Resolvers (Resolwery klienckie) <b>Definicja:</b> Prosty klient DNS w systemie operacyjnym. Wysyła zapytanie do rekursywnego resolvera i czeka na odpowiedź. egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: 4 Forwarding Servers (Przekazujące) <b>Definicja:</b> Przyjmują zapytania i przekazują je do innego resolvera zamiast samodzielnie rozwiązywać. egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: Zapytanie rekursywne vs iteracyjne ZAPYTANIE REKURSYWNE (klient → resolver): egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: Pełny proces rozwiązywania Klient Recursive Root .com TLD example.com egzamin_magisterski pyt07 SKM szczegoly
Jak działa caching? 1. <b>Resolver otrzymuje odpowiedź</b> z serwera autorytatywnego egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: TTL (Time To Live) www.example.com. 300 IN A 93.184.216.34 egzamin_magisterski pyt07 SKM szczegoly
Dlaczego root servers zyskują najwięcej? ┌────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt07 SKM szczegoly
Dlaczego ROOT i TLD zyskują więcej niż authoritative? 1. <b>Mniejsza liczba = więcej zapytań na serwer:</b> egzamin_magisterski pyt07 SKM szczegoly
Wyjaśnij: Podsumowanie zysków z cachingu REDUKCJA RUCHU DZIĘKI CACHINGOWI: egzamin_magisterski pyt07 SKM szczegoly
Jaki jest cel uzgadniania trójetapowego (three way handshake) w protokole TCP? Jaka jest interpretacja numerów sekwencyjnych i potwierdzenia? Jaka jest wartość początkowa numeru sekwencyjnego? <b>TCP (Transmission Control Protocol)</b> to protokół warstwy transportowej zapewniający: egzamin_magisterski pyt08 SKM pytanie_glowne
Wyjaśnij: Wprowadzenie do TCP <b>TCP (Transmission Control Protocol)</b> to protokół warstwy transportowej zapewniający: egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Cele uzgadniania trójetapowego 1. <b>Nawiązanie połączenia</b> - obie strony zgadzają się na komunikację egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Przebieg (diagram) Klient Serwer egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Szczegółowy opis kroków ┌────────────────────────────────────────┐ egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Interpretacja <b>Sequence Number (SEQ)</b> = numer pierwszego bajtu danych w segmencie egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Kumulatywne potwierdzenia TCP używa <b>cumulative ACK</b> - potwierdza wszystkie bajty do danego numeru: egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Selective ACK (SACK) Opcja TCP pozwalająca potwierdzać niesąsiednie bloki: egzamin_magisterski pyt08 SKM szczegoly
Dlaczego ISN nie zaczyna od 0? 1. <b>Bezpieczeństwo</b> - przewidywalny ISN umożliwia ataki (TCP hijacking) egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Generowanie ISN • <b>M</b>: = timer (jak wyżej)<br>• <b>F</b>: = funkcja kryptograficzna (MD5/SHA)<br>• <b>secretkey</b>: = tajny klucz serwera egzamin_magisterski pyt08 SKM szczegoly
Wyjaśnij: Zakres numerów sekwencyjnych SEQ: 32 bity → zakres 0 do 4,294,967,295 (2^32 - 1) egzamin_magisterski pyt08 SKM szczegoly
Procesy i wątki w systemie operacyjnym. Omówić budowę, szybkość działania i zakres zastosowania. Przedstawić problemy i możliwości komunikacji i synchronizacji. <b>Proces</b> i <b>wątek</b> to podstawowe jednostki wykonania w systemach operacyjnych. Różnią się poziomem izolacji i kosztami przełączania. egzamin_magisterski pyt09 SOI pytanie_glowne
Wyjaśnij: Budowa procesu ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: PCB (Process Control Block) Struktura w jądrze przechowująca informacje o procesie: egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Stany procesu ┌──────────────────┐ egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Budowa wątku ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Wątki użytkownika (User-level Threads) ┌─────────────────────────────────────────┐ egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Wątki jądra (Kernel-level Threads) ┌─────────────────────────────────────────┐ egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Mechanizmy IPC ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Szczegóły mechanizmów // Potok nienazwany (anonimowy) egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Problemy współbieżności Wątek A: lock(mutex1) → czeka na mutex2 egzamin_magisterski pyt09 SOI szczegoly
Wyjaśnij: Mechanizmy synchronizacji • <b>Binarny</b>: (0/1) - jak mutex<br>• <b>Licznikowy</b>: - ogranicza liczbę wątków (np. pula połączeń) egzamin_magisterski pyt09 SOI szczegoly
Kiedy procesy? • <b>Izolacja</b>: - awaria jednego nie wpływa na inne<br>• <b>Bezpieczeństwo</b>: - różne uprawnienia<br>• <b>Różne języki/technologie</b>: - mikrousługi<br>• <b>Niezawodność</b>: - restart bez wpływu na system egzamin_magisterski pyt09 SOI szczegoly
Kiedy wątki? • <b>Współdzielenie danych</b>: - bez kopiowania<br>• <b>Responsywność</b>: - UI thread + worker threads<br>• <b>Równoległość CPU</b>: - obliczenia na wielu rdzeniach<br>• <b>I/O asynchroniczne</b>: - czekanie nie blokuje wszystkiego egzamin_magisterski pyt09 SOI szczegoly
Scharakteryzować problemy i mechanizmy zarządzania pamięcią. Porównać cechy i przeznaczenie mechanizmów stronicowania i segmentacji. <b>Zarządzanie pamięcią</b> to jeden z kluczowych zadań systemu operacyjnego: egzamin_magisterski pyt10 SOI pytanie_glowne
Wyjaśnij: 1 Fragmentacja ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: 3 Relokacja <b>Problem:</b> Program kompilowany z założeniem konkretnych adresów musi działać pod różnymi adresami. egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: 1 Partycjonowanie stałe (Fixed Partitioning) ┌────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: 2 Partycjonowanie dynamiczne (Dynamic Partitioning) ┌────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Idea • <b>Strona (Page)</b>: - blok pamięci wirtualnej (4KB typowo)<br>• <b>Ramka (Frame)</b>: - blok pamięci fizycznej (ten sam rozmiar) egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Translacja adresu Adres wirtualny (32-bit, strony 4KB): egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Wielopoziomowe tablice stron <b>Problem:</b> Tablica stron dla 32-bit przestrzeni z 4KB stronami = 2²⁰ wpisów × 4B = <b>4MB per proces!</b> egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: TLB (Translation Lookaside Buffer) <b>Problem:</b> Każdy dostęp do pamięci wymaga 2+ odczytów (tablica + dane). egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Ochrona w segmentacji • <b>R</b>: (Read) - odczyt dozwolony<br>• <b>W</b>: (Write) - zapis dozwolony<br>• <b>X</b>: (Execute) - wykonanie dozwolone egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Intel x86 (tryb chroniony) Adres logiczny (Selector:Offset) egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Zalety hybrydowego podejścia 1. <b>Ochrona</b> z segmentacji (kod vs dane vs stos) egzamin_magisterski pyt10 SOI szczegoly
Wyjaśnij: Algorytm Clock (Second Chance) ┌──→│ 1 │──┐ Bit referencji: egzamin_magisterski pyt10 SOI szczegoly
Scharakteryzować standardy i narzędzia do modelowania procesów biznesowych. | CO robimy (flow) | JAK robimy (instrukcja) | egzamin_magisterski pyt11 WSYZ pytanie_glowne
Wyjaśnij: Przegląd standardów ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Podstawowe elementy BPMN ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Elementy Activity Diagrams ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Elementy EPC ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Reguły EPC 1. <b>Start i koniec:</b> Zdarzenie egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: IDEF0 - Modelowanie funkcji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Flowcharts (Schematy blokowe) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Value Stream Map (VSM) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Wyjaśnij: Petri Nets (Sieci Petriego) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt11 WSYZ szczegoly
Przedstawić sieciowe modele optymalizacji stosowane w systemach zarządzania. Omówić ich właściwości. <b>Sieciowe modele optymalizacji</b> to matematyczne reprezentacje problemów decyzyjnych w postaci grafów (sieci), gdzie: egzamin_magisterski pyt12 WSYZ pytanie_glowne
Wyjaśnij: Właściwości • <b>NP-trudny</b>: - brak algorytmu wielomianowego egzamin_magisterski pyt12 WSYZ szczegoly
Wyjaśnij: CPM (Critical Path Method) A(2)──┤ ├──E(2)──F(1) egzamin_magisterski pyt12 WSYZ szczegoly
Omówić szczegółowo teorie, definicje, standardy i narzędzia wykorzystywane przy projektowaniu i implementacji systemów opartych na koncepcji agenta i aktora. Zachowania niskopoziomowe mogą być &quot;nadpisane&quot; przez wyższe. egzamin_magisterski pyt13 AASD pytanie_glowne
Wyjaśnij: Definicje fundamentalne <b>Agent</b> = system komputerowy umieszczony w środowisku, zdolny do <b>autonomicznego działania</b> w celu realizacji celów. egzamin_magisterski pyt13 AASD szczegoly
Wyjaśnij: Architektury agentów ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt13 AASD szczegoly
Wyjaśnij: Standardy komunikacji agentów <b>FIPA-ACL</b> (Agent Communication Language): egzamin_magisterski pyt13 AASD szczegoly
Wyjaśnij: Protokoły interakcji ┌─────────┐ cfp ┌─────────┐ egzamin_magisterski pyt13 AASD szczegoly
Wymienić i szczegółowo opisać wybrane algorytmy i metody wykorzystywane w systemach wieloagentowych i aktorowych. <b>Zastosowania:</b> Przydział zadań, zarządzanie zasobami, e-commerce<br><br>Problem: Środowisko niestacjonarne (inni agenci się zmieniają)<br><br>Ordering constraints: flexible (równoległość gdy możliwa) egzamin_magisterski pyt14 AASD pytanie_glowne
Wyjaśnij: Algorytmy negocjacji i aukcji 1. ANNOUNCEMENT - Manager ogłasza zadanie (cfp) egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Algorytmy konsensusu Stany węzłów: FOLLOWER → CANDIDATE → LEADER egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Algorytmy koordynacji 1. Wyślij REQUEST(timestamp) do wszystkich egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Algorytmy uczenia wieloagentowego Każdy agent uczy się niezależnie: egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Algorytmy dla aktorów // One-for-One: restart tylko tego aktora egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Algorytmy planowania (BDI) plan1: walk(X,Y) :- distance(X,Y) < 1km egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Algorytmy formowania koalicji Sprawiedliwy podział zysków w koalicji: egzamin_magisterski pyt14 AASD szczegoly
Wyjaśnij: Frameworki architektoniczne ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt15 AIS szczegoly
Wyjaśnij: Notacje i języki modelowania ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt15 AIS szczegoly
Wyjaśnij: ADR (Architecture Decision Records) System wymaga przechowywania danych użytkowników... egzamin_magisterski pyt15 AIS szczegoly
Wyjaśnij: Metody analizy architektury 2. Identify quality attribute scenarios egzamin_magisterski pyt15 AIS szczegoly
Czemu służą wzorce architektoniczne? Jak powstają? Jak są katalogowane? Omówić przykładowe wzorce architektoniczne. Zasada: Warstwa zna tylko warstwę bezpośrednio niższą egzamin_magisterski pyt16 AIS pytanie_glowne
Wyjaśnij: Jak powstają wzorce • <b>Nazwa</b>: - identyfikator<br>• <b>Kontekst</b>: - kiedy stosować<br>• <b>Problem</b>: - co rozwiązuje<br>• <b>Rozwiązanie</b>: - struktura i zachowanie<br>• <b>Konsekwencje</b>: - trade-offs egzamin_magisterski pyt16 AIS szczegoly
Przedstawić warunki konieczne i dostateczne optymalności różniczkowalnych zadań optymalizacji bez ograniczeń i z ograniczeniami oraz warunki regularności i omówić metody poszukiwania rozwiązań zadań optymalizacji nieliniowej. <b>Sprawdzenie:</b> Wszystkie wartości własne $\lambda_i > 0 \Rightarrow H \succ 0$<br><br>Jeśli $x^*$ jest minimum i spełnione są warunki regularności:<br><br><b>LICQ:</b> $\{\nabla g_i(x^<i>) : g_i(x^</i>) = 0\} \cup \{\nabla h_j(x^*)\}$ są liniowo niezależne egzamin_magisterski pyt17 AMO pytanie_glowne
Wyjaśnij: Optymalizacja bez ograniczeń $$\min_{x \in \mathbb{R}^n} f(x)$$ egzamin_magisterski pyt17 AMO szczegoly
Wyjaśnij: Optymalizacja z ograniczeniami $$\text{s.t. } g_i(x) \leq 0, \quad i = 1, \ldots, m$$ egzamin_magisterski pyt17 AMO szczegoly
Wyjaśnij: Warunki KKT (Karush-Kuhn-Tucker) Jeśli $x^*$ jest minimum i spełnione są warunki regularności: egzamin_magisterski pyt17 AMO szczegoly
Wyjaśnij: Warunki regularności (Constraint Qualification) Warunki zapewniające, że KKT są konieczne: egzamin_magisterski pyt17 AMO szczegoly
Wyjaśnij: Warunki dostateczne II rzędu Jeśli spełnione KKT i dla hesjanu Lagrangianu: egzamin_magisterski pyt17 AMO szczegoly
Wyjaśnij: Metody optymalizacji nieliniowej x_{k+1} = x_k - [∇²f(x_k)]^{-1} ∇f(x_k) egzamin_magisterski pyt17 AMO szczegoly
Omówić metody rozwiązywania zadań liniowych i kwadratowych optymalizacji. <b>Złożoność:</b> O(2^n) worst-case, ale praktycznie bardzo szybki<br><br><b>Rozwiązanie:</b> $(A^T A)x = A^T b$ (równanie normalne) egzamin_magisterski pyt18 AMO pytanie_glowne
Wyjaśnij: Programowanie liniowe (LP) $$\text{s.t. } Ax = b, \quad x \geq 0$$ egzamin_magisterski pyt18 AMO szczegoly
Wyjaśnij: Programowanie kwadratowe (QP) $$\min \frac{1}{2} x^T Q x + c^T x$$ egzamin_magisterski pyt18 AMO szczegoly
Wyjaśnij: Metody rozwiązywania QP Idea: Traktuj aktywne ograniczenia jako równości egzamin_magisterski pyt18 AMO szczegoly
Wyjaśnij: Przypadki szczególne $$\min \|Ax - b\|_2^2 = \min x^T A^T A x - 2b^T A x + b^T b$$ egzamin_magisterski pyt18 AMO szczegoly
Przedstawić metody wyznaczania cech (parametryzacji) sygnału mowy: MFCC (cechy mel-cepstralne) i LPC (cechy według liniowej predykcji). - <b>Redukcja wymiarowości:</b> 16kHz × 16bit → ~13-40 cech/ramkę<br><br><b>Typowo:</b> p = 10-16 dla mowy (8kHz), p = 16-20 (16kHz) egzamin_magisterski pyt19 EASAR pytanie_glowne
Wyjaśnij: Cel parametryzacji mowy • <b>Redukcja wymiarowości:</b>: 16kHz × 16bit → ~13-40 cech/ramkę<br>• <b>Ekstrakcja informacji fonetycznej</b>: - <b>Usunięcie informacji mówcy</b> (częściowo)<br>• <b>Reprezentacja kompaktowa</b>: dla modeli (HMM, DNN) egzamin_magisterski pyt19 EASAR szczegoly
Wyjaśnij: MFCC (Mel-Frequency Cepstral Coefficients) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt19 EASAR szczegoly
Wyjaśnij: LPC (Linear Predictive Coding) • <b>Dźwięczne:</b>: pobudzenie okresowe (struny głosowe)<br>• <b>Bezdźwięczne:</b>: pobudzenie szumowe egzamin_magisterski pyt19 EASAR szczegoly
Wyjaśnij: Rozszerzenia Łączy LPC z percepcją słuchową: egzamin_magisterski pyt19 EASAR szczegoly
Przedstawić klasyczną metodę rozpoznawania mowy opartą o HMM (Ukryte Modele Markowa). Porównać ją z metodami korzystającymi z głębokich sieci neuronowych. Każdy stan emituje obserwacje (MFCC) według rozkładu GMM:<br><br>Backtrace: ψ_t(j) = argmax_{i} [α_{t-1}(i) · a_{ij}] egzamin_magisterski pyt20 EASAR pytanie_glowne
Wyjaśnij: System rozpoznawania mowy - architektura ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt20 EASAR szczegoly
Wyjaśnij: HMM (Hidden Markov Model) - klasyczne podejście a₁₂ a₂₃ a₃₄ egzamin_magisterski pyt20 EASAR szczegoly
Wyjaśnij: Deep Learning w rozpoznawaniu mowy ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt20 EASAR szczegoly
Jak wykorzystuje się agenta upostaciowionego do specyfikacji sterowników robotów? <b>Agent upostaciowiony</b> = agent posiadający fizyczne ciało, osadzony w rzeczywistym środowisku, zdolny do: egzamin_magisterski pyt21 ERPM pytanie_glowne
Wyjaśnij: Agent upostaciowiony (Embodied Agent) • <b>Percepcji</b>: poprzez sensory<br>• <b>Działania</b>: poprzez efektory<br>• <b>Interakcji</b>: ze środowiskiem egzamin_magisterski pyt21 ERPM szczegoly
Wyjaśnij: Specyfikacja sterownika robota ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt21 ERPM szczegoly
Wyjaśnij: Formalny model agenta Agent: Percept* → Action (historia percepcji) egzamin_magisterski pyt21 ERPM szczegoly
Wyjaśnij: Zastosowanie w ROS (Robot Operating System) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt21 ERPM szczegoly
Wyjaśnij: Hybrydowa architektura 3T ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt21 ERPM szczegoly
Omówić specjalizowane języki programowania robotów. Uwypuklić ich klasyfikację. | Cecha | RAPID (ABB) | KRL (KUKA) | Karel (FANUC) |<br><br>move_group = moveit_commander.MoveGroupCommander(&quot;arm&quot;) egzamin_magisterski pyt22 ERPM pytanie_glowne
Wyjaśnij: Klasyfikacja języków programowania robotów ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt22 ERPM szczegoly
Wyjaśnij: Języki producentów robotów przemysłowych MoveJ pHome, v1000, z50, tool1; egzamin_magisterski pyt22 ERPM szczegoly
Wyjaśnij: Języki uniwersalne i frameworki from geometry_msgs.msg import Twist egzamin_magisterski pyt22 ERPM szczegoly
Wyjaśnij: Klasyfikacja wg poziomu abstrakcji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt22 ERPM szczegoly
Przedstawić koncepcję i przeznaczenie zegarów logicznych i wektorów stempli czasowych. <b>Problem:</b> Nie możemy polegać na zegarach fizycznych - drift, opóźnienia sieciowe, brak atomowej synchronizacji.<br><br>Zdarzenie <b>a</b> happened-before <b>b</b> (a → b) jeśli:<br><br>Jeśli ¬(a → b) ∧ ¬(b → a), to <b>a || b</b> (współbieżne). egzamin_magisterski pyt23 ERSMS pytanie_glowne
Wyjaśnij: Problem czasu w systemach rozproszonych ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt23 ERSMS szczegoly
Wyjaśnij: Zegar Lamporta (Scalar Clock) Każdy proces P_i ma licznik C_i: egzamin_magisterski pyt23 ERSMS szczegoly
Wyjaśnij: Zegary wektorowe (Vector Clocks) Każdy z N procesów ma wektor V[1..N]: egzamin_magisterski pyt23 ERSMS szczegoly
Wyjaśnij: Zastosowania Put(key, value) z vector clock: egzamin_magisterski pyt23 ERSMS szczegoly
Omówić silne i słabe modele spójności danych w środowisku rozproszonym. <b>Implementacja:</b> Consensus (Paxos, Raft), single leader<br><br>Niezależne zapisy mogą być widziane w różnej kolejności. egzamin_magisterski pyt24 ERSMS pytanie_glowne
Wyjaśnij: Problem spójności w systemach rozproszonych ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt24 ERSMS szczegoly
Wyjaśnij: Spektrum modeli spójności Silne ←─────────────────────────────────────────→ Słabe egzamin_magisterski pyt24 ERSMS szczegoly
Wyjaśnij: Silne modele spójności Definicja: Każda operacja wygląda jakby wykonała się atomowo egzamin_magisterski pyt24 ERSMS szczegoly
Wyjaśnij: Słabe modele spójności Definicja: Jeśli nie ma nowych zapisów, ostatecznie egzamin_magisterski pyt24 ERSMS szczegoly
Wyjaśnij: CAP Theorem ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt24 ERSMS szczegoly
Wyjaśnij: Strategie rozwiązywania konfliktów Konflikt: write(x=1) || write(x=2) egzamin_magisterski pyt24 ERSMS szczegoly
Wyjaśnij: Definicja MIP (Mixed Integer Programming) Programowanie całkowitoliczbowe: egzamin_magisterski pyt25 MOD szczegoly
Wyjaśnij: Branch and Bound (B&B) - metoda dokładna 1. Relaksacja LP: rozwiąż bez ograniczeń całkowitoliczbowych egzamin_magisterski pyt25 MOD szczegoly
Wyjaśnij: Ulepszenia: Branch and Cut Branch and Bound + Cutting Planes: egzamin_magisterski pyt25 MOD szczegoly
Wyjaśnij: Kategorie narzędzi ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt26 MOD szczegoly
Wyjaśnij: Porównanie wydajności (benchmark) Typowe czasy dla problemów MIPLIB (średnie): egzamin_magisterski pyt26 MOD szczegoly
Wyjaśnij: Języki modelowania var produce{PRODUCTS} >= 0 integer; egzamin_magisterski pyt26 MOD szczegoly
Wyjaśnij: Typowe wymagania sprzętowe Mały problem (< 1000 zmiennych): egzamin_magisterski pyt26 MOD szczegoly
Wyjaśnij: Diagnostyka problemów 1. solver.computeIIS() # znajdź konflikt egzamin_magisterski pyt26 MOD szczegoly
Wyjaśnij: Best practices ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt26 MOD szczegoly
Wyjaśnij: Model danych jako fundament systemu ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt27 MODA szczegoly
Wyjaśnij: Wpływ na różne aspekty projektu JOIN customers ON orders.customer_name = customers.name -- string comparison! egzamin_magisterski pyt27 MODA szczegoly
Wyjaśnij: Koszty naprawy złego modelu Koszt zmiany modelu danych w czasie: egzamin_magisterski pyt27 MODA szczegoly
Wyjaśnij: Wpływ na jakość danych (GIGO) │ Złe dane wejść. │ → Zły model → Złe decyzje biznesowe egzamin_magisterski pyt27 MODA szczegoly
Wyjaśnij: Model danych a architektura aplikacji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt27 MODA szczegoly
Omówić typowe fazy ewolucji modelu danych i pożądane cechy modelu w każdej z faz. Brak typów danych, kluczy, atrybutów szczegółowych!<br><br>Encje: Klient, Zamówienie, Produkt, Kategoria, Dostawca, Płatność<br><br>┌────────────────────────┐ ┌────────────────────────┐ egzamin_magisterski pyt28 MODA pytanie_glowne
Wyjaśnij: Przegląd faz ewolucji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt28 MODA szczegoly
Wyjaśnij: Model konceptualny (Conceptual Data Model) Diagram ERD (Entity-Relationship) - uproszczony: egzamin_magisterski pyt28 MODA szczegoly
Wyjaśnij: Model logiczny (Logical Data Model) ERD szczegółowy (np. Crow's Foot): egzamin_magisterski pyt28 MODA szczegoly
Wyjaśnij: Model fizyczny (Physical Data Model) klient_id SERIAL PRIMARY KEY, egzamin_magisterski pyt28 MODA szczegoly
Wyjaśnij: Transformacje między fazami ┌──────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt28 MODA szczegoly
Wyjaśnij: Ewolucja w czasie (produkcja) ✓ Backward compatible (add, nie remove) egzamin_magisterski pyt28 MODA szczegoly
Oszacować ilościowo przyśpieszenie wykonania programu sekwencyjnego z fragmentami równoległymi na maszynie wielordzeniowej. Co osłabia to ograniczenie? $$S_{max} = \lim_{n \to \infty} S(n) = \frac{1}{1-p}$$<br><br><b>Obserwacja:</b> Krzywe szybko się spłaszczają - dodawanie procesorów daje coraz mniejszy zysk.<br><br>┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt29 PORR pytanie_glowne
Wyjaśnij: Prawo Amdahla $$S(n) = \frac{1}{(1-p) + \frac{p}{n}}$$ egzamin_magisterski pyt29 PORR szczegoly
Wyjaśnij: Wizualizacja ograniczenia 20 ┤ ........... p=99% egzamin_magisterski pyt29 PORR szczegoly
Co osłabia ograniczenie Amdahla? Amdahl: Stały problem, więcej procesorów egzamin_magisterski pyt29 PORR szczegoly
Wyjaśnij: Czynniki zmniejszające rzeczywiste przyśpieszenie S_real < S_Amdahl ze względu na: egzamin_magisterski pyt29 PORR szczegoly
Wyjaśnij: Efektywność równoległa $$E(n) = \frac{S(n)}{n} = \frac{1}{n \cdot (1-p) + p}$$ egzamin_magisterski pyt29 PORR szczegoly
Wyjaśnij: Rozszerzone prawo Amdahla (z overhead) $$S(n) = \frac{1}{(1-p) + \frac{p}{n} + O(n)}$$ egzamin_magisterski pyt29 PORR szczegoly
Wyjaśnij: Struktura modelu matematycznego ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt30 MOM szczegoly
Wyjaśnij: Metody modelowania ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ egzamin_magisterski pyt30 MOM szczegoly
Wyjaśnij: Typowe problemy w modelowaniu Problem: Ile zmiennych? Jakie typy? egzamin_magisterski pyt30 MOM szczegoly
Wyjaśnij: Techniki modelowania Problem: xy (iloczyn zmiennych ciągłych) egzamin_magisterski pyt30 MOM szczegoly
Wyjaśnij: Wielokryterialne podejmowanie decyzji min f₁(x), f₂(x), ..., f_k(x) ← konfliktujące cele egzamin_magisterski pyt30 MOM szczegoly
Wyjaśnij: Analiza wrażliwości ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt30 MOM szczegoly
Wyjaśnić główne zagadnienia modelowania matematycznego w systemach decyzyjnych z wykorzystaniem pojęć (nie)wypukłości i (nie)liniowości. $$S \text{ wypukły} \Leftrightarrow \forall x,y \in S, \forall \lambda \in [0,1]: \lambda x + (1-\lambda)y \in S$$<br><br>$$f \text{ wypukła} \Leftrightarrow f(\lambda x + (1-\lambda)y) \leq \lambda f(x) + (1-\lambda) f(y)$$<br><br>$$\min c^T x \quad \text{s.t.} \quad Ax \leq b, \quad x \geq 0$$ egzamin_magisterski pyt31 MOM pytanie_glowne
Wyjaśnij: Klasyfikacja problemów optymalizacyjnych ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt31 MOM szczegoly
Wyjaśnij: Definicje kluczowe $$S \text{ wypukły} \Leftrightarrow \forall x,y \in S, \forall \lambda \in [0,1]: \lambda x + (1-\lambda)y \in S$$ egzamin_magisterski pyt31 MOM szczegoly
Wyjaśnij: Znaczenie wypukłości Problem │ Złożoność │ Gwarancja egzamin_magisterski pyt31 MOM szczegoly
Wyjaśnij: Liniowość vs nieliniowość $$\min c^T x \quad \text{s.t.} \quad Ax \leq b, \quad x \geq 0$$ egzamin_magisterski pyt31 MOM szczegoly
Wyjaśnij: Testowanie wypukłości 1. HESJAN: H = ∇²f(x) ≽ 0 (dodatnio półokreślony) dla wszystkich x egzamin_magisterski pyt31 MOM szczegoly
Wyjaśnij: Problemy niewypukłe ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt31 MOM szczegoly
Wyjaśnij: Dualność Primal (P): Dual (D): egzamin_magisterski pyt31 MOM szczegoly
Podać definicję komunikacji synchronicznej i asynchronicznej oraz blokującej i nieblokującej. Jak uniknąć zakleszczenia, gdy dwa symetryczne procesy (np. realizujące algorytm iteracyjny Jacobiego) mają w kodzie następujące po sobie wywołania funkcji wysyłającej komunikat do partnera i odbierającej komunikat wysłany przez niego? | Funkcja MPI | Blokująca? | Synchroniczna? | Opis |<br><br>MPI_Irecv(from=partner, data_in, &req_recv); // Nieblokujące recv egzamin_magisterski pyt32 PORR pytanie_glowne
Wyjaśnij: Definicje podstawowe ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt32 PORR szczegoly
Wyjaśnij: Problem zakleszczenia (Deadlock) // DEADLOCK! - oba procesy czekają na siebie nawzajem egzamin_magisterski pyt32 PORR szczegoly
Wyjaśnij: Rozwiązania problemu zakleszczenia // Proces 0: // Proces 1: egzamin_magisterski pyt32 PORR szczegoly
Wyjaśnij: Algorytm Jacobiego - pełny przykład // Iteracyjne rozwiązanie równania Laplace'a egzamin_magisterski pyt32 PORR szczegoly
Wyjaśnij: Wzorce komunikacji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt32 PORR szczegoly
Scharakteryzować model przesyłania komunikatów publikuj-subskrybuj oraz przykładowe rozwiązania techniczne wykorzystujące ten model. channel.queue_bind(exchange='logs', queue=queue_name)<br><br>| Cecha | Kafka | RabbitMQ | MQTT | Redis Pub/Sub |<br><br>2. CQRS (Command Query Responsibility Segregation): egzamin_magisterski pyt33 PSD pytanie_glowne
Wyjaśnij: Definicja modelu Pub/Sub ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt33 PSD szczegoly
Wyjaśnij: Wildcardy (MQTT) home/living-room/# → wszystko z living-room egzamin_magisterski pyt33 PSD szczegoly
Wyjaśnij: Gwarancje dostarczenia ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt33 PSD szczegoly
Wyjaśnij: Rozwiązania techniczne ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt33 PSD szczegoly
Wyjaśnij: Zalety i wady Pub/Sub ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt33 PSD szczegoly
Wyjaśnij: Wzorce użycia [Service] ─publish─→ [Kafka] ←─consume─ [Projections] egzamin_magisterski pyt33 PSD szczegoly
Scharakteryzować rozwiązania analityczne działające na danych o charakterze strumieniowym. KStream<String, String> source = builder.stream(&quot;input-topic&quot;);<br><br>| Cecha | Kafka Streams | Flink | Spark Streaming |<br><br>Query(x): min(h1[hash1(x)], h2[hash2(x)], h3[hash3(x)]) egzamin_magisterski pyt34 PSD pytanie_glowne
Wyjaśnij: Charakterystyka danych strumieniowych ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt34 PSD szczegoly
Wyjaśnij: Modele przetwarzania Event Time: Kiedy zdarzenie faktycznie nastąpiło egzamin_magisterski pyt34 PSD szczegoly
Wyjaśnij: Platformy Stream Processing StreamsBuilder builder = new StreamsBuilder(); egzamin_magisterski pyt34 PSD szczegoly
Wyjaśnij: Algorytmy strumieniowe Problem: Zlicz unikalne elementy w strumieniu egzamin_magisterski pyt34 PSD szczegoly
Wyjaśnij: Obsługa opóźnień i Out-of-Order ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt34 PSD szczegoly
Wyjaśnij: Exactly-Once Semantics ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt34 PSD szczegoly
Na czym polega specyfika modelowania matematycznego układów cyber-fizycznych? Podać przykłady współpracy agentów w sieci i problemów w osiąganiu pożądanego zachowania układu. ┌─────────────────────────────────────────────────────────────────┐<br><br>┌─────────────────────────────────────────────────────────────────┐<br><br>Szybkość zbieżności ~ λ₂(L) (algebraic connectivity) egzamin_magisterski pyt35 SIU pytanie_glowne
Wyjaśnij: Definicja układów cyber-fizycznych (CPS) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt35 SIU szczegoly
Wyjaśnij: Specyfika modelowania CPS ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt35 SIU szczegoly
Wyjaśnij: Współpraca agentów w sieci Problem: Agenty mają osiągnąć wspólną wartość egzamin_magisterski pyt35 SIU szczegoly
Wyjaśnij: Problemy w osiąganiu pożądanego zachowania ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt35 SIU szczegoly
Wyjaśnij: Warunki zbieżności consensus Twierdzenie: Protokół consensus ẋ = -Lx zbiega do consensus ⟺ egzamin_magisterski pyt35 SIU szczegoly
Omówić ogólny algorytm, elementy składowe oraz własności uczenia się ze wzmocnieniem. $$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$<br><br>$$Q^\pi(s,a) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s, a_0 = a \right]$$<br><br>Q<i>(s,a) = R(s,a) + γ Σ_s' P(s'|s,a) max_a' Q</i>(s',a') egzamin_magisterski pyt36 SIU pytanie_glowne
Wyjaśnij: Model uczenia ze wzmocnieniem ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt36 SIU szczegoly
Wyjaśnij: Markov Decision Process (MDP) P: P(s'|s,a) - prawdopodobieństwa przejść egzamin_magisterski pyt36 SIU szczegoly
Wyjaśnij: Funkcje wartości $$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$ egzamin_magisterski pyt36 SIU szczegoly
Wyjaśnij: Algorytmy ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt36 SIU szczegoly
Wyjaśnij: Klasyfikacja algorytmów ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt36 SIU szczegoly
Wyjaśnij: Własności i wyzwania ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt36 SIU szczegoly
Wyjaśnij: Właściwości rzeczywistych sieci ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt37 TASS szczegoly
Wyjaśnij: Model Erdős-Rényi (Random Graph) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt37 TASS szczegoly
Wyjaśnij: Model Watts-Strogatz (Small-World) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt37 TASS szczegoly
Wyjaśnij: Model Barabási-Albert (Scale-Free) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt37 TASS szczegoly
Wyjaśnij: Porównanie zbiorcze ┌──────────────┬───────────────┬───────────────┬───────────────┐ egzamin_magisterski pyt37 TASS szczegoly
Wyjaśnij: Modele rozszerzone ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt37 TASS szczegoly
Wyjaśnij: Grafy dwudzielne (Bipartite Graphs) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt38 TASS szczegoly
Wyjaśnij: Projekcja grafu dwudzielnego ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt38 TASS szczegoly
Wyjaśnij: Metody projekcji P = B · Bᵀ (dla projekcji na U) egzamin_magisterski pyt38 TASS szczegoly
Wyjaśnij: Zastosowanie w grupowaniu dokumentów ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt38 TASS szczegoly
Wyjaśnij: Algorytmy grupowania na projekcji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt38 TASS szczegoly
Scharakteryzować problem segmentacji obrazu. Przedstawić podstawowe strategie i algorytmy segmentacji przy użyciu metod klasycznych oraz sieci neuronowych. ┌──────────────────┐ Threshold ┌──────────────────┐<br><br>| Architektura | mIoU (ADE20K) | Parametry | Cechy | egzamin_magisterski pyt39 TWM pytanie_glowne
Wyjaśnij: Definicja problemu segmentacji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt39 TWM szczegoly
Wyjaśnij: Metody klasyczne pixel_out = 255 if pixel_in > T else 0 egzamin_magisterski pyt39 TWM szczegoly
Wyjaśnij: Metody deep learning ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt39 TWM szczegoly
Wyjaśnij: Loss functions Problem: class imbalance (dużo tła, mało obiektów) egzamin_magisterski pyt39 TWM szczegoly
Opisać problem detekcji obiektów w obrazach. Przedstawić podstawowe strategie i algorytmy detekcji przy użyciu metod klasycznych oraz sieci neuronowych. Jak skonstruować detektor obiektów dysponując istniejącym klasyfikatorem tych obiektów? ┌─────────────────────────────────────────────────────────────────┐<br><br>┌─────────────────────────────────────────────────────────────────┐<br><br>┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt40 TWM pytanie_glowne
Wyjaśnij: Definicja problemu detekcji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt40 TWM szczegoly
Wyjaśnij: Metody Deep Learning ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt40 TWM szczegoly
Wyjaśnij: Konstrukcja detektora z klasyfikatora ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt40 TWM szczegoly
Wyjaśnij: Non-Maximum Suppression (NMS) Problem: Wiele overlapping detections egzamin_magisterski pyt40 TWM szczegoly
Przedstawić metody interaktywne wspomagania decyzji w warunkach ryzyka. ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR pytanie_glowne
Wyjaśnij: Decyzje w warunkach ryzyka ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR szczegoly
Wyjaśnij: Metody interaktywne - przegląd ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR szczegoly
Wyjaśnij: Metoda loterii (Lottery Method) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR szczegoly
Wyjaśnij: Metoda pewnego ekwiwalentu (Certainty Equivalent) CE (Certainty Equivalent) = pewna kwota równoważna loterii egzamin_magisterski pyt41 WDWR szczegoly
Wyjaśnij: Metoda AHP (Analytic Hierarchy Process) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR szczegoly
Wyjaśnij: Metoda PROMETHEE ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR szczegoly
Wyjaśnij: Metoda ELECTRE ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt41 WDWR szczegoly
Scharakteryzować relacje dominacji stochastycznej pierwszego i drugiego rzędu. Jak mogą być użyte w modelach wyboru w warunkach ryzyka? $$A \succeq_{FSD} B \Leftrightarrow F_A(x) \leq F_B(x) \quad \forall x$$<br><br>$$A \succeq_{SSD} B \Leftrightarrow \int_{-\infty}^{x} F_A(t) dt \leq \int_{-\infty}^{x} F_B(t) dt \quad \forall x$$ egzamin_magisterski pyt42 WDWR pytanie_glowne
Wyjaśnij: Idea dominacji stochastycznej ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt42 WDWR szczegoly
Wyjaśnij: Dominacja stochastyczna pierwszego rzędu (FSD) $$A \succeq_{FSD} B \Leftrightarrow F_A(x) \leq F_B(x) \quad \forall x$$ egzamin_magisterski pyt42 WDWR szczegoly
Wyjaśnij: Dominacja stochastyczna drugiego rzędu (SSD) $$A \succeq_{SSD} B \Leftrightarrow \int_{-\infty}^{x} F_A(t) dt \leq \int_{-\infty}^{x} F_B(t) dt \quad \forall x$$ egzamin_magisterski pyt42 WDWR szczegoly
Wyjaśnij: Porównanie FSD i SSD ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt42 WDWR szczegoly
Wyjaśnij: Zastosowanie w modelach wyboru ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt42 WDWR szczegoly
Wyjaśnij: Testowanie dominacji ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt42 WDWR szczegoly
Wyjaśnij: Notacja Graham'a (α|β|γ) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt43 ZBOP szczegoly
Wyjaśnij: Pole α - Środowisko maszynowe Job 1 ──→ ┌───┐ ──→ ┌───┐ ──→ ┌───┐ ──→ egzamin_magisterski pyt43 ZBOP szczegoly
Wyjaśnij: Pole γ - Kryteria optymalizacji Lⱼ = Cⱼ - dⱼ (lateness, może być ujemne) egzamin_magisterski pyt43 ZBOP szczegoly
Wyjaśnij: Złożoność obliczeniowa ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt43 ZBOP szczegoly
Wyjaśnij: Algorytm Johnsona (F2 || Cmax) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt43 ZBOP szczegoly
Jakie problemy wiążą się z zarządzaniem zapasami w łańcuchu dostaw? Omówić przykładowy model zarządzania zapasami w łańcuchu dostaw. Ordering cost = K × (D/Q) (D/Q zamówień rocznie) egzamin_magisterski pyt44 ZBOP pytanie_glowne
Wyjaśnij: Łańcuch dostaw - struktura ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Problemy zarządzania zapasami ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Koszty zapasów ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Model EOQ (Economic Order Quantity) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Model z punktem zamawiania (ROP) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Model (s, S) / (R, Q) s │──────╲──────────────╲── egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Vendor Managed Inventory (VMI) ┌─────────────────────────────────────────────────────────────────┐ egzamin_magisterski pyt44 ZBOP szczegoly
Wyjaśnij: Pytanie <b>&quot;Jaki jest cel Pana pracy magisterskiej i dlaczego wybrano akurat temat porównania silników gier?&quot;</b> egzamin_magisterski pyt45 Ogólne szczegoly
Wyjaśnij: Odpowiedź wzorcowa Celem pracy jest <b>kompleksowe porównanie wydajności i możliwości współczesnych silników gier</b> (Unity i Unreal Engine), ze szczególnym uwzględnieniem ich wpływu na proces tworzenia gier oraz końcową jakość produktu. egzamin_magisterski pyt45 Ogólne szczegoly

1947
pytania/anki_extract.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,40 @@
#separator:Tab
#html:true
#notetype:Basic
#deck:Egzamin_extract+main
Porównać 'siłę wyrazu' automatu skończonego, automatu ze stosem oraz maszyny Turinga. Jakie klasy języków rozpoznaje każdy z nich? <b>Automat Skończony (Finite Automaton - FA)</b>: Języki regularne (Typ 3)<br><br><b>Automat ze Stosem (Pushdown Automaton - PDA)</b>: Języki bezkontekstowe (Typ 2)<br><br><b>Maszyna Turinga (Turing Machine - TM)</b>: Języki rekurencyjnie przeliczalne (Typ 0) egzamin pyt01 AISDI main
Omówić i porównać algorytmy najkrótszej ścieżki wskazując ich kluczowe właściwości i logikę budowy: Dijkstry, Belmana-Forda, A*. <b>Wprowadzenie - problem najkrótszej ścieżki</b>: <b>Warianty problemu:</b> egzamin pyt02 AISDI main
Omówić zagadnienia redundancji i normalizacji w relacyjnej bazie danych oraz wynikające z tego wymagania. <b>Wprowadzenie</b>: Redundancja: = niepożądane powtarzanie danych egzamin pyt03 BD2 main
Omówić główne kategorie elementów biblioteki STL. Jaka jest ich rola i wzajemne powiązania? Odpowiedź uzasadnić na przykładach. <b>Filozofia STL</b>: Generyczność: szablony (templates) umożliwiają pracę z dowolnymi typami egzamin pyt05 PROI main
Przedstawić sieciowe modele optymalizacji stosowane w systemach zarządzania. Omówić ich właściwości. <b>Wprowadzenie</b>: Węzły: = punkty decyzyjne, lokalizacje, zdarzenia egzamin pyt12 WSYZ main
Omówić szczegółowo teorie, definicje, standardy i narzędzia wykorzystywane przy projektowaniu i implementacji systemów opartych na koncepcji agenta i aktora. <b>Architektury agentów</b>: Zachowania niskopoziomowe mogą być &quot;nadpisane&quot; przez wyższe.<br><br><b>Standardy komunikacji agentów</b>: <b>FIPA-ACL</b> (Agent Communication Language): egzamin pyt13 AASD main
Wymienić i szczegółowo opisać wybrane algorytmy i metody wykorzystywane w systemach wieloagentowych i aktorowych. <b>Algorytmy negocjacji i aukcji</b>: Manager Contractors<br><br><b>Algorytmy konsensusu</b>: Client ──request──→ Primary<br><br><b>Algorytmy koordynacji</b>: <b>Algorytm Ricarta-Agrawali:</b><br><br><b>Algorytmy uczenia wieloagentowego</b>: Q(s,a) ← Q(s,a) + α[r + γ max Q(s',a') - Q(s,a)]<br><br><b>Algorytmy dla aktorów</b>: // All-for-One: restart wszystkich dzieci egzamin pyt14 AASD main
Omówić metody modelowania architektury systemów informatycznych. Przedstawić cele i metody modelowania architektury. <b>Notacje i języki modelowania</b>: Zasada: Zoom in/out między poziomami egzamin pyt15 AIS main
Czemu służą wzorce architektoniczne? Jak powstają? Jak są katalogowane? Omówić przykładowe wzorce architektoniczne. <b>Jak powstają wzorce</b>: Nazwa: identyfikator egzamin pyt16 AIS main
Przedstawić warunki konieczne i dostateczne optymalności różniczkowalnych zadań optymalizacji bez ograniczeń i z ograniczeniami oraz warunki regularności i omówić metody poszukiwania rozwiązań zadań optymalizacji nieliniowej. <b>Optymalizacja bez ograniczeń</b>: (Gradient zerowy - punkt stacjonarny)<br><br><b>Warunki KKT (Karush-Kuhn-Tucker)</b>: Jeśli $x^*$ jest minimum i spełnione są warunki regularności:<br><br><b>Warunki regularności (Constraint Qualification)</b>: <b>LICQ:</b> $\{\nabla g_i(x^<i>) : g_i(x^</i>) = 0\} \cup \{\nabla h_j(x^*)\}$ są liniowo niezależne<br><br><b>Warunki dostateczne II rzędu</b>: dla wszystkich $d \neq 0$ spełniających: egzamin pyt17 AMO main
Omówić metody rozwiązywania zadań liniowych i kwadratowych optymalizacji. <b>Programowanie liniowe (LP)</b>: <b>Złożoność:</b> O(2^n) worst-case, ale praktycznie bardzo szybki<br><br><b>Programowanie kwadratowe (QP)</b>: Gdzie Q jest macierzą symetryczną.<br><br><b>Metody rozwiązywania QP</b>: 1. Zgadnij zbiór aktywnych ograniczeń W<br><br><b>Przypadki szczególne</b>: <b>Rozwiązanie:</b> $(A^T A)x = A^T b$ (równanie normalne) egzamin pyt18 AMO main
Przedstawić metody wyznaczania cech (parametryzacji) sygnału mowy: MFCC (cechy mel-cepstralne) i LPC (cechy według liniowej predykcji). <b>Cel parametryzacji mowy</b>: Redukcja wymiarowości:: 16kHz × 16bit → ~13-40 cech/ramkę<br><br><b>MFCC (Mel-Frequency Cepstral Coefficients)</b>: mel(f) = 2595 · log₁₀(1 + f/700)<br><br><b>LPC (Linear Predictive Coding)</b>: Dźwięczne:: pobudzenie okresowe (struny głosowe) egzamin pyt19 EASAR main
Przedstawić klasyczną metodę rozpoznawania mowy opartą o HMM (Ukryte Modele Markowa). Porównać ją z metodami korzystającymi z głębokich sieci neuronowych. <b>HMM (Hidden Markov Model) - klasyczne podejście</b>: Każdy stan emituje obserwacje (MFCC) według rozkładu GMM:<br><br><b>Deep Learning w rozpoznawaniu mowy</b>: Attention-based (Seq2Seq):<br><br><b>Ewolucja wydajności</b>: Rok Model WER egzamin pyt20 EASAR main
Jak wykorzystuje się agenta upostaciowionego do specyfikacji sterowników robotów? <b>Agent upostaciowiony (Embodied Agent)</b>: Percepcji: poprzez sensory<br><br><b>Formalny model agenta</b>: Specyfikacja żywotności: egzamin pyt21 ERPM main
Omówić specjalizowane języki programowania robotów. Uwypuklić ich klasyfikację. <b>Języki producentów robotów przemysłowych</b>: ! MoveJ = ruch w przestrzeni złączy (Joint)<br><br><b>Języki uniwersalne i frameworki</b>: rospy.init_node('robot_controller') egzamin pyt22 ERPM main
Przedstawić koncepcję i przeznaczenie zegarów logicznych i wektorów stempli czasowych. <b>Problem czasu w systemach rozproszonych</b>: <b>Problem:</b> Nie możemy polegać na zegarach fizycznych - drift, opóźnienia sieciowe, brak atomowej synchronizacji.<br><br><b>Zegar Lamporta (Scalar Clock)</b>: 1. Przed każdym zdarzeniem lokalnym:<br><br><b>Zegary wektorowe (Vector Clocks)</b>: 1. Przed każdym zdarzeniem lokalnym: egzamin pyt23 ERSMS main
Omówić silne i słabe modele spójności danych w środowisku rozproszonym. <b>Silne modele spójności</b>: <b>Implementacja:</b> Consensus (Paxos, Raft), single leader<br><br><b>Słabe modele spójności</b>: <b>Implementacja:</b> DNS, Dynamo, Cassandra egzamin pyt24 ERSMS main
Gdzie znajdują zastosowania zadania programowania matematycznego całkowitoliczbowego i jak można je rozwiązywać? Omówić wybraną metodę dokładną, wyjaśnić dla jakich praktycznych problemów ma ona zastosowanie i co może wpływać na jej efektywność. <b>Definicja MIP (Mixed Integer Programming)</b>: Przypadki szczególne:<br><br><b>Branch and Bound (B&B) - metoda dokładna</b>: LP relaxation egzamin pyt25 MOD main
Scharakteryzować informatyczne narzędzia optymalizacji dyskretnej. Jakie są warunki i wymagania, jakie możliwości oraz trudności wiążą się ze stosowaniem gotowych narzędzi. <b>Porównanie wydajności (benchmark)</b>: CPLEX ████████████████████████████ 100% egzamin pyt26 MOD main
Omówić typowe fazy ewolucji modelu danych i pożądane cechy modelu w każdej z faz. <b>Model konceptualny (Conceptual Data Model)</b>: ┌──────────┐ ┌──────────┐<br><br><b>Model logiczny (Logical Data Model)</b>: ┌────────────────────────┐ ┌────────────────────────┐<br><br><b>Model fizyczny (Physical Data Model)</b>: CREATE INDEX idx_klient_email ON klient(email); egzamin pyt28 MODA main
Oszacować ilościowo przyśpieszenie wykonania programu sekwencyjnego z fragmentami równoległymi na maszynie wielordzeniowej. Co osłabia to ograniczenie? <b>Prawo Amdahla</b>: $$S(n) = \frac{1}{(1-p) + \frac{p}{n}}$$<br><br><b>Wizualizacja ograniczenia</b>: <b>Obserwacja:</b> Krzywe szybko się spłaszczają - dodawanie procesorów daje coraz mniejszy zysk.<br><br><b>Co osłabia ograniczenie Amdahla?</b>: S_scaled(n) = n - (1-p)(n-1) = 1 - p + p·n<br><br><b>Czynniki zmniejszające rzeczywiste przyśpieszenie</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Efektywność równoległa</b>: <b>Wniosek:</b> Efektywność spada z liczbą procesorów. Trzeba zwiększać problem (Gustafson) lub zmniejszać (1-p). egzamin pyt29 PORR main
Omówić metody oraz typowe problemy w modelowaniu matematycznym dla problemów decyzyjnych i optymalizacyjnych. <b>Typowe problemy w modelowaniu</b>: Przykład - planowanie produkcji:<br><br><b>Techniki modelowania</b>: Problem: |x| (wartość bezwzględna) egzamin pyt30 MOM main
Wyjaśnić główne zagadnienia modelowania matematycznego w systemach decyzyjnych z wykorzystaniem pojęć (nie)wypukłości i (nie)liniowości. <b>Definicje kluczowe</b>: $$S \text{ wypukły} \Leftrightarrow \forall x,y \in S, \forall \lambda \in [0,1]: \lambda x + (1-\lambda)y \in S$$<br><br><b>Liniowość vs nieliniowość</b>: $$\min c^T x \quad \text{s.t.} \quad Ax \leq b, \quad x \geq 0$$<br><br><b>Testowanie wypukłości</b>: 1. HESJAN: H = ∇²f(x) ≽ 0 (dodatnio półokreślony) dla wszystkich x egzamin pyt31 MOM main
Podać definicję komunikacji synchronicznej i asynchronicznej oraz blokującej i nieblokującej. Jak uniknąć zakleszczenia, gdy dwa symetryczne procesy (np. realizujące algorytm iteracyjny Jacobiego) mają w kodzie następujące po sobie wywołania funkcji wysyłającej komunikat do partnera i odbierającej komunikat wysłany przez niego? <b>Definicje podstawowe</b>: KOMUNIKACJA ASYNCHRONICZNA:<br><br><b>Problem zakleszczenia (Deadlock)</b>: // Proces 0: // Proces 1:<br><br><b>Rozwiązania problemu zakleszczenia</b>: MPI_Irecv(from=partner, data_in, &req_recv); // Nieblokujące recv egzamin pyt32 PORR main
Scharakteryzować model przesyłania komunikatów publikuj-subskrybuj oraz przykładowe rozwiązania techniczne wykorzystujące ten model. <b>Rozwiązania techniczne</b>: channel.queue_bind(exchange='logs', queue=queue_name) egzamin pyt33 PSD main
Scharakteryzować rozwiązania analityczne działające na danych o charakterze strumieniowym. <b>Modele przetwarzania</b>: Processing: ───●───────●──●──●───────→<br><br><b>Platformy Stream Processing</b>: KStream<String, String> source = builder.stream(&quot;input-topic&quot;);<br><br><b>Algorytmy strumieniowe</b>: Przykład: Redis PFADD, PFCOUNT egzamin pyt34 PSD main
Na czym polega specyfika modelowania matematycznego układów cyber-fizycznych? Podać przykłady współpracy agentów w sieci i problemów w osiąganiu pożądanego zachowania układu. <b>Współpraca agentów w sieci</b>: L = Laplacian grafu komunikacji<br><br><b>Warunki zbieżności consensus</b>: Szybkość zbieżności ~ λ₂(L) (algebraic connectivity) egzamin pyt35 SIU main
Omówić ogólny algorytm, elementy składowe oraz własności uczenia się ze wzmocnieniem. <b>Funkcje wartości</b>: $$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$<br><br><b>Algorytmy</b>: ┌─────────────────────────────────────────────────────────────────┐ egzamin pyt36 SIU main
Porównać metody projekcji grafów dwudzielnych. Przedstawić ich użyteczność w grupowaniu dokumentów tekstowych. <b>Metody projekcji</b>: P = B · Bᵀ (dla projekcji na U)<br><br><b>Zastosowanie w grupowaniu dokumentów</b>: Graf dwudzielny projekcja (cosine similarity): egzamin pyt38 TASS main
Scharakteryzować problem segmentacji obrazu. Przedstawić podstawowe strategie i algorytmy segmentacji przy użyciu metod klasycznych oraz sieci neuronowych. <b>Metody klasyczne</b>: Otsu (automatyczny próg): egzamin pyt39 TWM main
Opisać problem detekcji obiektów w obrazach. Przedstawić podstawowe strategie i algorytmy detekcji przy użyciu metod klasycznych oraz sieci neuronowych. Jak skonstruować detektor obiektów dysponując istniejącym klasyfikatorem tych obiektów? <b>Metody Deep Learning</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Non-Maximum Suppression (NMS)</b>: Soft-NMS: Nie usuwa, tylko obniża confidence egzamin pyt40 TWM main
Przedstawić metody interaktywne wspomagania decyzji w warunkach ryzyka. <b>Metoda pewnego ekwiwalentu (Certainty Equivalent)</b>: Dla loterii L = (p₁: x₁, p₂: x₂, ...): egzamin pyt41 WDWR main
Scharakteryzować relacje dominacji stochastycznej pierwszego i drugiego rzędu. Jak mogą być użyte w modelach wyboru w warunkach ryzyka? <b>Dominacja stochastyczna pierwszego rzędu (FSD)</b>: $$A \succeq_{FSD} B \Leftrightarrow F_A(x) \leq F_B(x) \quad \forall x$$<br><br><b>Dominacja stochastyczna drugiego rzędu (SSD)</b>: $$A \succeq_{SSD} B \Leftrightarrow \int_{-\infty}^{x} F_A(t) dt \leq \int_{-\infty}^{x} F_B(t) dt \quad \forall x$$<br><br><b>Zastosowanie w modelach wyboru</b>: Dla rozkładów normalnych z E[A] > E[B] i σ[A] < σ[B]: egzamin pyt42 WDWR main
Jakie cechy zadań szeregowania wykorzystuje się do ich klasyfikacji? Omówić przykładową metodę dla wybranego problemu szeregowania. <b>Pole α - Środowisko maszynowe</b>: MASZYNY RÓWNOLEGŁE (Pm): egzamin pyt43 ZBOP main
Jakie problemy wiążą się z zarządzaniem zapasami w łańcuchu dostaw? Omówić przykładowy model zarządzania zapasami w łańcuchu dostaw. <b>Model EOQ (Economic Order Quantity)</b>: Ordering cost = K × (D/Q) (D/Q zamówień rocznie) egzamin pyt44 ZBOP main

1217
pytania/anki_filter.txt Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
#separator:Tab
#html:true
#notetype:Basic
#deck:Egzamin_filter+extract+main
Porównać 'siłę wyrazu' automatu skończonego, automatu ze stosem oraz maszyny Turinga. Jakie klasy języków rozpoznaje każdy z nich? <b>Automat Skończony (Finite Automaton - FA)</b>: Języki regularne (Typ 3)<br><br><b>Automat ze Stosem (Pushdown Automaton - PDA)</b>: Języki bezkontekstowe (Typ 2)<br><br><b>Maszyna Turinga (Turing Machine - TM)</b>: Języki rekurencyjnie przeliczalne (Typ 0) egzamin pyt01 AISDI main
Omówić szczegółowo teorie, definicje, standardy i narzędzia wykorzystywane przy projektowaniu i implementacji systemów opartych na koncepcji agenta i aktora. <b>Architektury agentów</b>: Zachowania niskopoziomowe mogą być &quot;nadpisane&quot; przez wyższe.<br><br><b>Standardy komunikacji agentów</b>: <b>FIPA-ACL</b> (Agent Communication Language): egzamin pyt13 AASD main
Wymienić i szczegółowo opisać wybrane algorytmy i metody wykorzystywane w systemach wieloagentowych i aktorowych. <b>Algorytmy negocjacji i aukcji</b>: Manager Contractors<br><br><b>Algorytmy konsensusu</b>: Client ──request──→ Primary<br><br><b>Algorytmy koordynacji</b>: <b>Algorytm Ricarta-Agrawali:</b><br><br><b>Algorytmy uczenia wieloagentowego</b>: Q(s,a) ← Q(s,a) + α[r + γ max Q(s',a') - Q(s,a)]<br><br><b>Algorytmy dla aktorów</b>: // All-for-One: restart wszystkich dzieci egzamin pyt14 AASD main
Przedstawić warunki konieczne i dostateczne optymalności różniczkowalnych zadań optymalizacji bez ograniczeń i z ograniczeniami oraz warunki regularności i omówić metody poszukiwania rozwiązań zadań optymalizacji nieliniowej. <b>Optymalizacja bez ograniczeń</b>: (Gradient zerowy - punkt stacjonarny)<br><br><b>Warunki KKT (Karush-Kuhn-Tucker)</b>: Jeśli $x^*$ jest minimum i spełnione są warunki regularności:<br><br><b>Warunki regularności (Constraint Qualification)</b>: <b>LICQ:</b> $\{\nabla g_i(x^<i>) : g_i(x^</i>) = 0\} \cup \{\nabla h_j(x^*)\}$ są liniowo niezależne<br><br><b>Warunki dostateczne II rzędu</b>: dla wszystkich $d \neq 0$ spełniających: egzamin pyt17 AMO main
Omówić metody rozwiązywania zadań liniowych i kwadratowych optymalizacji. <b>Programowanie liniowe (LP)</b>: <b>Złożoność:</b> O(2^n) worst-case, ale praktycznie bardzo szybki<br><br><b>Programowanie kwadratowe (QP)</b>: Gdzie Q jest macierzą symetryczną.<br><br><b>Metody rozwiązywania QP</b>: 1. Zgadnij zbiór aktywnych ograniczeń W<br><br><b>Przypadki szczególne</b>: <b>Rozwiązanie:</b> $(A^T A)x = A^T b$ (równanie normalne) egzamin pyt18 AMO main
Przedstawić metody wyznaczania cech (parametryzacji) sygnału mowy: MFCC (cechy mel-cepstralne) i LPC (cechy według liniowej predykcji). <b>Cel parametryzacji mowy</b>: Redukcja wymiarowości:: 16kHz × 16bit → ~13-40 cech/ramkę<br><br><b>MFCC (Mel-Frequency Cepstral Coefficients)</b>: mel(f) = 2595 · log₁₀(1 + f/700)<br><br><b>LPC (Linear Predictive Coding)</b>: Dźwięczne:: pobudzenie okresowe (struny głosowe) egzamin pyt19 EASAR main
Przedstawić klasyczną metodę rozpoznawania mowy opartą o HMM (Ukryte Modele Markowa). Porównać ją z metodami korzystającymi z głębokich sieci neuronowych. <b>HMM (Hidden Markov Model) - klasyczne podejście</b>: Każdy stan emituje obserwacje (MFCC) według rozkładu GMM:<br><br><b>Deep Learning w rozpoznawaniu mowy</b>: Attention-based (Seq2Seq):<br><br><b>Ewolucja wydajności</b>: Rok Model WER egzamin pyt20 EASAR main
Jak wykorzystuje się agenta upostaciowionego do specyfikacji sterowników robotów? <b>Agent upostaciowiony (Embodied Agent)</b>: Percepcji: poprzez sensory<br><br><b>Formalny model agenta</b>: Specyfikacja żywotności: egzamin pyt21 ERPM main
Omówić specjalizowane języki programowania robotów. Uwypuklić ich klasyfikację. <b>Języki producentów robotów przemysłowych</b>: ! MoveJ = ruch w przestrzeni złączy (Joint)<br><br><b>Języki uniwersalne i frameworki</b>: rospy.init_node('robot_controller') egzamin pyt22 ERPM main
Przedstawić koncepcję i przeznaczenie zegarów logicznych i wektorów stempli czasowych. <b>Problem czasu w systemach rozproszonych</b>: <b>Problem:</b> Nie możemy polegać na zegarach fizycznych - drift, opóźnienia sieciowe, brak atomowej synchronizacji.<br><br><b>Zegar Lamporta (Scalar Clock)</b>: 1. Przed każdym zdarzeniem lokalnym:<br><br><b>Zegary wektorowe (Vector Clocks)</b>: 1. Przed każdym zdarzeniem lokalnym: egzamin pyt23 ERSMS main
Omówić silne i słabe modele spójności danych w środowisku rozproszonym. <b>Silne modele spójności</b>: <b>Implementacja:</b> Consensus (Paxos, Raft), single leader<br><br><b>Słabe modele spójności</b>: <b>Implementacja:</b> DNS, Dynamo, Cassandra egzamin pyt24 ERSMS main
Gdzie znajdują zastosowania zadania programowania matematycznego całkowitoliczbowego i jak można je rozwiązywać? Omówić wybraną metodę dokładną, wyjaśnić dla jakich praktycznych problemów ma ona zastosowanie i co może wpływać na jej efektywność. <b>Definicja MIP (Mixed Integer Programming)</b>: Przypadki szczególne:<br><br><b>Branch and Bound (B&B) - metoda dokładna</b>: LP relaxation egzamin pyt25 MOD main
Omówić typowe fazy ewolucji modelu danych i pożądane cechy modelu w każdej z faz. <b>Model konceptualny (Conceptual Data Model)</b>: ┌──────────┐ ┌──────────┐<br><br><b>Model logiczny (Logical Data Model)</b>: ┌────────────────────────┐ ┌────────────────────────┐<br><br><b>Model fizyczny (Physical Data Model)</b>: CREATE INDEX idx_klient_email ON klient(email); egzamin pyt28 MODA main
Oszacować ilościowo przyśpieszenie wykonania programu sekwencyjnego z fragmentami równoległymi na maszynie wielordzeniowej. Co osłabia to ograniczenie? <b>Prawo Amdahla</b>: $$S(n) = \frac{1}{(1-p) + \frac{p}{n}}$$<br><br><b>Wizualizacja ograniczenia</b>: <b>Obserwacja:</b> Krzywe szybko się spłaszczają - dodawanie procesorów daje coraz mniejszy zysk.<br><br><b>Co osłabia ograniczenie Amdahla?</b>: S_scaled(n) = n - (1-p)(n-1) = 1 - p + p·n<br><br><b>Czynniki zmniejszające rzeczywiste przyśpieszenie</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Efektywność równoległa</b>: <b>Wniosek:</b> Efektywność spada z liczbą procesorów. Trzeba zwiększać problem (Gustafson) lub zmniejszać (1-p). egzamin pyt29 PORR main
Omówić metody oraz typowe problemy w modelowaniu matematycznym dla problemów decyzyjnych i optymalizacyjnych. <b>Typowe problemy w modelowaniu</b>: Przykład - planowanie produkcji:<br><br><b>Techniki modelowania</b>: Problem: |x| (wartość bezwzględna) egzamin pyt30 MOM main
Wyjaśnić główne zagadnienia modelowania matematycznego w systemach decyzyjnych z wykorzystaniem pojęć (nie)wypukłości i (nie)liniowości. <b>Definicje kluczowe</b>: $$S \text{ wypukły} \Leftrightarrow \forall x,y \in S, \forall \lambda \in [0,1]: \lambda x + (1-\lambda)y \in S$$<br><br><b>Liniowość vs nieliniowość</b>: $$\min c^T x \quad \text{s.t.} \quad Ax \leq b, \quad x \geq 0$$<br><br><b>Testowanie wypukłości</b>: 1. HESJAN: H = ∇²f(x) ≽ 0 (dodatnio półokreślony) dla wszystkich x egzamin pyt31 MOM main
Podać definicję komunikacji synchronicznej i asynchronicznej oraz blokującej i nieblokującej. Jak uniknąć zakleszczenia, gdy dwa symetryczne procesy (np. realizujące algorytm iteracyjny Jacobiego) mają w kodzie następujące po sobie wywołania funkcji wysyłającej komunikat do partnera i odbierającej komunikat wysłany przez niego? <b>Definicje podstawowe</b>: KOMUNIKACJA ASYNCHRONICZNA:<br><br><b>Problem zakleszczenia (Deadlock)</b>: // Proces 0: // Proces 1:<br><br><b>Rozwiązania problemu zakleszczenia</b>: MPI_Irecv(from=partner, data_in, &req_recv); // Nieblokujące recv egzamin pyt32 PORR main
Scharakteryzować rozwiązania analityczne działające na danych o charakterze strumieniowym. <b>Modele przetwarzania</b>: Processing: ───●───────●──●──●───────→<br><br><b>Platformy Stream Processing</b>: KStream<String, String> source = builder.stream(&quot;input-topic&quot;);<br><br><b>Algorytmy strumieniowe</b>: Przykład: Redis PFADD, PFCOUNT egzamin pyt34 PSD main
Na czym polega specyfika modelowania matematycznego układów cyber-fizycznych? Podać przykłady współpracy agentów w sieci i problemów w osiąganiu pożądanego zachowania układu. <b>Współpraca agentów w sieci</b>: L = Laplacian grafu komunikacji<br><br><b>Warunki zbieżności consensus</b>: Szybkość zbieżności ~ λ₂(L) (algebraic connectivity) egzamin pyt35 SIU main
Omówić ogólny algorytm, elementy składowe oraz własności uczenia się ze wzmocnieniem. <b>Funkcje wartości</b>: $$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$<br><br><b>Algorytmy</b>: ┌─────────────────────────────────────────────────────────────────┐ egzamin pyt36 SIU main
Porównać metody projekcji grafów dwudzielnych. Przedstawić ich użyteczność w grupowaniu dokumentów tekstowych. <b>Metody projekcji</b>: P = B · Bᵀ (dla projekcji na U)<br><br><b>Zastosowanie w grupowaniu dokumentów</b>: Graf dwudzielny projekcja (cosine similarity): egzamin pyt38 TASS main
Opisać problem detekcji obiektów w obrazach. Przedstawić podstawowe strategie i algorytmy detekcji przy użyciu metod klasycznych oraz sieci neuronowych. Jak skonstruować detektor obiektów dysponując istniejącym klasyfikatorem tych obiektów? <b>Metody Deep Learning</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Non-Maximum Suppression (NMS)</b>: Soft-NMS: Nie usuwa, tylko obniża confidence egzamin pyt40 TWM main
Scharakteryzować relacje dominacji stochastycznej pierwszego i drugiego rzędu. Jak mogą być użyte w modelach wyboru w warunkach ryzyka? <b>Dominacja stochastyczna pierwszego rzędu (FSD)</b>: $$A \succeq_{FSD} B \Leftrightarrow F_A(x) \leq F_B(x) \quad \forall x$$<br><br><b>Dominacja stochastyczna drugiego rzędu (SSD)</b>: $$A \succeq_{SSD} B \Leftrightarrow \int_{-\infty}^{x} F_A(t) dt \leq \int_{-\infty}^{x} F_B(t) dt \quad \forall x$$<br><br><b>Zastosowanie w modelach wyboru</b>: Dla rozkładów normalnych z E[A] > E[B] i σ[A] < σ[B]: egzamin pyt42 WDWR main

View File

@ -0,0 +1,28 @@
#separator:Tab
#html:true
#notetype:Basic
#deck:Egzamin_filter+main
Porównać 'siłę wyrazu' automatu skończonego, automatu ze stosem oraz maszyny Turinga. Jakie klasy języków rozpoznaje każdy z nich? <b>Automat Skończony (Finite Automaton - FA)</b>: Języki regularne (Typ 3)<br><br><b>Automat ze Stosem (Pushdown Automaton - PDA)</b>: Języki bezkontekstowe (Typ 2)<br><br><b>Maszyna Turinga (Turing Machine - TM)</b>: Języki rekurencyjnie przeliczalne (Typ 0) egzamin pyt01 AISDI main
Omówić szczegółowo teorie, definicje, standardy i narzędzia wykorzystywane przy projektowaniu i implementacji systemów opartych na koncepcji agenta i aktora. <b>Architektury agentów</b>: Zachowania niskopoziomowe mogą być &quot;nadpisane&quot; przez wyższe.<br><br><b>Standardy komunikacji agentów</b>: <b>FIPA-ACL</b> (Agent Communication Language): egzamin pyt13 AASD main
Wymienić i szczegółowo opisać wybrane algorytmy i metody wykorzystywane w systemach wieloagentowych i aktorowych. <b>Algorytmy negocjacji i aukcji</b>: Manager Contractors<br><br><b>Algorytmy konsensusu</b>: Client ──request──→ Primary<br><br><b>Algorytmy koordynacji</b>: <b>Algorytm Ricarta-Agrawali:</b><br><br><b>Algorytmy uczenia wieloagentowego</b>: Q(s,a) ← Q(s,a) + α[r + γ max Q(s',a') - Q(s,a)]<br><br><b>Algorytmy dla aktorów</b>: // All-for-One: restart wszystkich dzieci egzamin pyt14 AASD main
Przedstawić warunki konieczne i dostateczne optymalności różniczkowalnych zadań optymalizacji bez ograniczeń i z ograniczeniami oraz warunki regularności i omówić metody poszukiwania rozwiązań zadań optymalizacji nieliniowej. <b>Optymalizacja bez ograniczeń</b>: (Gradient zerowy - punkt stacjonarny)<br><br><b>Warunki KKT (Karush-Kuhn-Tucker)</b>: Jeśli $x^*$ jest minimum i spełnione są warunki regularności:<br><br><b>Warunki regularności (Constraint Qualification)</b>: <b>LICQ:</b> $\{\nabla g_i(x^<i>) : g_i(x^</i>) = 0\} \cup \{\nabla h_j(x^*)\}$ są liniowo niezależne<br><br><b>Warunki dostateczne II rzędu</b>: dla wszystkich $d \neq 0$ spełniających: egzamin pyt17 AMO main
Omówić metody rozwiązywania zadań liniowych i kwadratowych optymalizacji. <b>Programowanie liniowe (LP)</b>: <b>Złożoność:</b> O(2^n) worst-case, ale praktycznie bardzo szybki<br><br><b>Programowanie kwadratowe (QP)</b>: Gdzie Q jest macierzą symetryczną.<br><br><b>Metody rozwiązywania QP</b>: 1. Zgadnij zbiór aktywnych ograniczeń W<br><br><b>Przypadki szczególne</b>: <b>Rozwiązanie:</b> $(A^T A)x = A^T b$ (równanie normalne) egzamin pyt18 AMO main
Przedstawić metody wyznaczania cech (parametryzacji) sygnału mowy: MFCC (cechy mel-cepstralne) i LPC (cechy według liniowej predykcji). <b>Cel parametryzacji mowy</b>: Redukcja wymiarowości:: 16kHz × 16bit → ~13-40 cech/ramkę<br><br><b>MFCC (Mel-Frequency Cepstral Coefficients)</b>: mel(f) = 2595 · log₁₀(1 + f/700)<br><br><b>LPC (Linear Predictive Coding)</b>: Dźwięczne:: pobudzenie okresowe (struny głosowe) egzamin pyt19 EASAR main
Przedstawić klasyczną metodę rozpoznawania mowy opartą o HMM (Ukryte Modele Markowa). Porównać ją z metodami korzystającymi z głębokich sieci neuronowych. <b>HMM (Hidden Markov Model) - klasyczne podejście</b>: Każdy stan emituje obserwacje (MFCC) według rozkładu GMM:<br><br><b>Deep Learning w rozpoznawaniu mowy</b>: Attention-based (Seq2Seq):<br><br><b>Ewolucja wydajności</b>: Rok Model WER egzamin pyt20 EASAR main
Jak wykorzystuje się agenta upostaciowionego do specyfikacji sterowników robotów? <b>Agent upostaciowiony (Embodied Agent)</b>: Percepcji: poprzez sensory<br><br><b>Formalny model agenta</b>: Specyfikacja żywotności: egzamin pyt21 ERPM main
Omówić specjalizowane języki programowania robotów. Uwypuklić ich klasyfikację. <b>Języki producentów robotów przemysłowych</b>: ! MoveJ = ruch w przestrzeni złączy (Joint)<br><br><b>Języki uniwersalne i frameworki</b>: rospy.init_node('robot_controller') egzamin pyt22 ERPM main
Przedstawić koncepcję i przeznaczenie zegarów logicznych i wektorów stempli czasowych. <b>Problem czasu w systemach rozproszonych</b>: <b>Problem:</b> Nie możemy polegać na zegarach fizycznych - drift, opóźnienia sieciowe, brak atomowej synchronizacji.<br><br><b>Zegar Lamporta (Scalar Clock)</b>: 1. Przed każdym zdarzeniem lokalnym:<br><br><b>Zegary wektorowe (Vector Clocks)</b>: 1. Przed każdym zdarzeniem lokalnym: egzamin pyt23 ERSMS main
Omówić silne i słabe modele spójności danych w środowisku rozproszonym. <b>Silne modele spójności</b>: <b>Implementacja:</b> Consensus (Paxos, Raft), single leader<br><br><b>Słabe modele spójności</b>: <b>Implementacja:</b> DNS, Dynamo, Cassandra egzamin pyt24 ERSMS main
Gdzie znajdują zastosowania zadania programowania matematycznego całkowitoliczbowego i jak można je rozwiązywać? Omówić wybraną metodę dokładną, wyjaśnić dla jakich praktycznych problemów ma ona zastosowanie i co może wpływać na jej efektywność. <b>Definicja MIP (Mixed Integer Programming)</b>: Przypadki szczególne:<br><br><b>Branch and Bound (B&B) - metoda dokładna</b>: LP relaxation egzamin pyt25 MOD main
Omówić typowe fazy ewolucji modelu danych i pożądane cechy modelu w każdej z faz. <b>Model konceptualny (Conceptual Data Model)</b>: ┌──────────┐ ┌──────────┐<br><br><b>Model logiczny (Logical Data Model)</b>: ┌────────────────────────┐ ┌────────────────────────┐<br><br><b>Model fizyczny (Physical Data Model)</b>: CREATE INDEX idx_klient_email ON klient(email); egzamin pyt28 MODA main
Oszacować ilościowo przyśpieszenie wykonania programu sekwencyjnego z fragmentami równoległymi na maszynie wielordzeniowej. Co osłabia to ograniczenie? <b>Prawo Amdahla</b>: $$S(n) = \frac{1}{(1-p) + \frac{p}{n}}$$<br><br><b>Wizualizacja ograniczenia</b>: <b>Obserwacja:</b> Krzywe szybko się spłaszczają - dodawanie procesorów daje coraz mniejszy zysk.<br><br><b>Co osłabia ograniczenie Amdahla?</b>: S_scaled(n) = n - (1-p)(n-1) = 1 - p + p·n<br><br><b>Czynniki zmniejszające rzeczywiste przyśpieszenie</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Efektywność równoległa</b>: <b>Wniosek:</b> Efektywność spada z liczbą procesorów. Trzeba zwiększać problem (Gustafson) lub zmniejszać (1-p). egzamin pyt29 PORR main
Omówić metody oraz typowe problemy w modelowaniu matematycznym dla problemów decyzyjnych i optymalizacyjnych. <b>Typowe problemy w modelowaniu</b>: Przykład - planowanie produkcji:<br><br><b>Techniki modelowania</b>: Problem: |x| (wartość bezwzględna) egzamin pyt30 MOM main
Wyjaśnić główne zagadnienia modelowania matematycznego w systemach decyzyjnych z wykorzystaniem pojęć (nie)wypukłości i (nie)liniowości. <b>Definicje kluczowe</b>: $$S \text{ wypukły} \Leftrightarrow \forall x,y \in S, \forall \lambda \in [0,1]: \lambda x + (1-\lambda)y \in S$$<br><br><b>Liniowość vs nieliniowość</b>: $$\min c^T x \quad \text{s.t.} \quad Ax \leq b, \quad x \geq 0$$<br><br><b>Testowanie wypukłości</b>: 1. HESJAN: H = ∇²f(x) ≽ 0 (dodatnio półokreślony) dla wszystkich x egzamin pyt31 MOM main
Podać definicję komunikacji synchronicznej i asynchronicznej oraz blokującej i nieblokującej. Jak uniknąć zakleszczenia, gdy dwa symetryczne procesy (np. realizujące algorytm iteracyjny Jacobiego) mają w kodzie następujące po sobie wywołania funkcji wysyłającej komunikat do partnera i odbierającej komunikat wysłany przez niego? <b>Definicje podstawowe</b>: KOMUNIKACJA ASYNCHRONICZNA:<br><br><b>Problem zakleszczenia (Deadlock)</b>: // Proces 0: // Proces 1:<br><br><b>Rozwiązania problemu zakleszczenia</b>: MPI_Irecv(from=partner, data_in, &req_recv); // Nieblokujące recv egzamin pyt32 PORR main
Scharakteryzować rozwiązania analityczne działające na danych o charakterze strumieniowym. <b>Modele przetwarzania</b>: Processing: ───●───────●──●──●───────→<br><br><b>Platformy Stream Processing</b>: KStream<String, String> source = builder.stream(&quot;input-topic&quot;);<br><br><b>Algorytmy strumieniowe</b>: Przykład: Redis PFADD, PFCOUNT egzamin pyt34 PSD main
Na czym polega specyfika modelowania matematycznego układów cyber-fizycznych? Podać przykłady współpracy agentów w sieci i problemów w osiąganiu pożądanego zachowania układu. <b>Współpraca agentów w sieci</b>: L = Laplacian grafu komunikacji<br><br><b>Warunki zbieżności consensus</b>: Szybkość zbieżności ~ λ₂(L) (algebraic connectivity) egzamin pyt35 SIU main
Omówić ogólny algorytm, elementy składowe oraz własności uczenia się ze wzmocnieniem. <b>Funkcje wartości</b>: $$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$<br><br><b>Algorytmy</b>: ┌─────────────────────────────────────────────────────────────────┐ egzamin pyt36 SIU main
Porównać metody projekcji grafów dwudzielnych. Przedstawić ich użyteczność w grupowaniu dokumentów tekstowych. <b>Metody projekcji</b>: P = B · Bᵀ (dla projekcji na U)<br><br><b>Zastosowanie w grupowaniu dokumentów</b>: Graf dwudzielny projekcja (cosine similarity): egzamin pyt38 TASS main
Opisać problem detekcji obiektów w obrazach. Przedstawić podstawowe strategie i algorytmy detekcji przy użyciu metod klasycznych oraz sieci neuronowych. Jak skonstruować detektor obiektów dysponując istniejącym klasyfikatorem tych obiektów? <b>Metody Deep Learning</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Non-Maximum Suppression (NMS)</b>: Soft-NMS: Nie usuwa, tylko obniża confidence egzamin pyt40 TWM main
Scharakteryzować relacje dominacji stochastycznej pierwszego i drugiego rzędu. Jak mogą być użyte w modelach wyboru w warunkach ryzyka? <b>Dominacja stochastyczna pierwszego rzędu (FSD)</b>: $$A \succeq_{FSD} B \Leftrightarrow F_A(x) \leq F_B(x) \quad \forall x$$<br><br><b>Dominacja stochastyczna drugiego rzędu (SSD)</b>: $$A \succeq_{SSD} B \Leftrightarrow \int_{-\infty}^{x} F_A(t) dt \leq \int_{-\infty}^{x} F_B(t) dt \quad \forall x$$<br><br><b>Zastosowanie w modelach wyboru</b>: Dla rozkładów normalnych z E[A] > E[B] i σ[A] < σ[B]: egzamin pyt42 WDWR main

331
pytania/anki_generator.py Normal file
View File

@ -0,0 +1,331 @@
#!/usr/bin/env python3
"""
Anki Generator - Modular approach with 3 combinable strategies.
Usage:
python anki_generator.py [options]
Options:
--filter Apply strict filtering (answers > 100 chars)
--extract Use improved extraction algorithm
--main-only Only generate main exam questions (45 comprehensive cards)
Combinations:
python anki_generator.py # Basic extraction, no filter
python anki_generator.py --filter # Approach 1: Strict filter only
python anki_generator.py --extract # Approach 2: Better extraction only
python anki_generator.py --main-only # Approach 3: Main questions only
python anki_generator.py --filter --extract # Approach 4: Filter + Better extraction
python anki_generator.py --filter --main-only # Approach 5: Filter + Main only
python anki_generator.py --extract --main-only # Approach 6: Better extraction + Main only
python anki_generator.py --filter --extract --main-only # Approach 7: All three
"""
import os
import re
import argparse
from pathlib import Path
# =============================================================================
# SHARED UTILITIES
# =============================================================================
def clean_text(text):
"""Clean and format text for Anki."""
if not text:
return ""
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'(?<!\*)\*([^*]+)\*(?!\*)', r'<i>\1</i>', text)
text = text.replace('\t', ' ')
text = text.replace('"', '&quot;')
text = re.sub(r' +', ' ', text)
return text.strip()
def get_file_metadata(filepath):
"""Extract question number and subject from filename."""
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
num = match.group(1) if match else "00"
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
subj_match = re.search(r'Przedmiot:\s*(\w+)', content)
subject = subj_match.group(1) if subj_match else "Ogólne"
return num, subject, content
def get_main_question(content):
"""Extract the main exam question."""
q_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
if q_match:
return re.sub(r'\s+', ' ', q_match.group(1).strip())
return None
# =============================================================================
# APPROACH 1: STRICT FILTERING
# =============================================================================
def apply_strict_filter(cards, min_length=100):
"""Filter cards to only include those with answers > min_length characters."""
return [c for c in cards if len(c['back']) > min_length]
# =============================================================================
# APPROACH 2: BETTER EXTRACTION
# =============================================================================
def extract_structured_content(body):
"""Improved extraction - multiple content types with better formatting."""
parts = []
# 1. Definitions
def_match = re.search(r'#### Definicja[^\n]*\n([^\n#]+)', body)
if def_match:
parts.append(f"<b>Definicja:</b> {def_match.group(1).strip()}")
# 2. Bullet points with bold terms
bullets = re.findall(r'[-•]\s*\*\*([^*]+)\*\*[:\s-]*([^\n]*)', body)
for term, desc in bullets[:5]:
if desc.strip():
parts.append(f"• <b>{term}</b>: {desc.strip()}")
else:
parts.append(f"• <b>{term}</b>")
# 3. Key-value patterns
if len(parts) < 2:
kvs = re.findall(r'\*\*([^*\n]+)\*\*\s*[-:]\s*([^\n*]{10,150})', body)
for k, v in kvs[:4]:
entry = f"<b>{k.strip()}</b>: {v.strip()}"
if entry not in parts:
parts.append(entry)
# 4. Paragraphs as fallback
if not parts:
paras = [p.strip() for p in body.split('\n\n')
if p.strip() and not p.startswith('```') and not p.startswith('|') and len(p.strip()) > 30]
for p in paras[:2]:
parts.append(p[:300])
return '<br>'.join([clean_text(p) for p in parts]) if parts else None
def extract_cards_better(filepath):
"""Extract cards with improved algorithm."""
num, subject, content = get_file_metadata(filepath)
base_tags = f"egzamin pyt{num} {subject}"
cards = []
# Main question
main_q = get_main_question(content)
if main_q:
answer_match = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## [^<5E>]|\Z)', content, re.DOTALL)
if answer_match:
answer = extract_structured_content(answer_match.group(1))
if answer:
cards.append({'front': clean_text(main_q), 'back': answer, 'tags': f"{base_tags} main"})
# Detail sections
sections = re.findall(r'^### (?:\d+\.\s*)?([^\n]+)\n((?:(?!^### ).)*)', content, re.MULTILINE | re.DOTALL)
for header, body in sections:
header = header.strip()
if 'Przykład' in header or '"' in header or 'Mnemonic' in header or len(body) < 50:
continue
answer = extract_structured_content(body)
if answer:
cards.append({'front': f"Wyjaśnij: {clean_text(header)}", 'back': answer, 'tags': f"{base_tags} detail"})
return cards
def extract_cards_basic(filepath):
"""Basic extraction - simpler algorithm."""
num, subject, content = get_file_metadata(filepath)
base_tags = f"egzamin pyt{num} {subject}"
cards = []
# Main question - just headers
main_q = get_main_question(content)
if main_q:
answer_match = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## |\Z)', content, re.DOTALL)
if answer_match:
headers = re.findall(r'^### (?:\d+\.\s*)?(.+)$', answer_match.group(1), re.MULTILINE)
if headers:
answer = '<ul>' + ''.join([f'<li>{clean_text(h)}</li>' for h in headers[:6]]) + '</ul>'
cards.append({'front': clean_text(main_q), 'back': answer, 'tags': f"{base_tags} main"})
# Detail sections - first paragraph only
sections = re.findall(r'^### (?:\d+\.\s*)?([^\n]+)\n((?:(?!^### ).)*)', content, re.MULTILINE | re.DOTALL)
for header, body in sections:
header = header.strip()
body = body.strip()
if len(body) < 50 or 'Przykład' in header:
continue
paras = [p.strip() for p in body.split('\n\n') if p.strip() and not p.startswith('```')]
if paras:
answer = clean_text(paras[0][:400])
cards.append({'front': f"Wyjaśnij: {clean_text(header)}", 'back': answer, 'tags': f"{base_tags} detail"})
return cards
# =============================================================================
# APPROACH 3: MAIN QUESTIONS ONLY
# =============================================================================
def extract_main_only(filepath):
"""Extract only the main exam question with comprehensive answer."""
num, subject, content = get_file_metadata(filepath)
base_tags = f"egzamin pyt{num} {subject} main"
main_q = get_main_question(content)
if not main_q:
return []
# Build comprehensive answer from multiple sections
answer_parts = []
# Get main answer section
answer_match = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## [^<5E>]|\Z)', content, re.DOTALL)
if answer_match:
section = answer_match.group(1)
# Get all ### headers with their first substantive content
headers = re.findall(r'^### (?:\d+\.\s*)?([^\n]+)\n((?:(?!^### ).)*)', section, re.MULTILINE | re.DOTALL)
for header, body in headers[:5]:
header = header.strip()
if 'Przykład' in header or 'Mnemonic' in header or '"' in header:
continue
# Get key point from this section
key_point = None
# Try to get a definition or first bullet
def_match = re.search(r'Rozpoznawana klasa języków\s*\n\s*\*\*([^*]+)\*\*', body)
if def_match:
key_point = def_match.group(1).strip()
if not key_point:
bullets = re.findall(r'[-•]\s*\*\*([^*]+)\*\*[:\s-]*([^\n]*)', body)
if bullets:
term, desc = bullets[0]
key_point = f"{term}: {desc.strip()}" if desc.strip() else term
if not key_point:
para_match = re.search(r'\n\n([^#\n\-•|`][^\n]{20,150})', body)
if para_match:
key_point = para_match.group(1).strip()
if key_point:
answer_parts.append(f"<b>{header}</b>: {key_point}")
if answer_parts:
answer = '<br><br>'.join([clean_text(p) for p in answer_parts])
return [{'front': clean_text(main_q), 'back': answer, 'tags': base_tags}]
return []
# =============================================================================
# MAIN GENERATOR
# =============================================================================
def generate_anki(use_filter=False, use_better_extract=False, main_only=False):
"""Generate Anki deck with specified approaches."""
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
# Determine output filename based on options
suffix_parts = []
if use_filter:
suffix_parts.append("filter")
if use_better_extract:
suffix_parts.append("extract")
if main_only:
suffix_parts.append("main")
suffix = "_".join(suffix_parts) if suffix_parts else "basic"
output_file = Path(f"/home/kuchy/praca_magisterska/pytania/anki_{suffix}.txt")
deck_name = f"Egzamin_{suffix.replace('_', '+')}"
all_cards = []
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
if main_only:
# Approach 3: Only main questions
cards = extract_main_only(md_file)
elif use_better_extract:
# Approach 2: Better extraction
cards = extract_cards_better(md_file)
else:
# Basic extraction
cards = extract_cards_basic(md_file)
all_cards.extend(cards)
# Approach 1: Apply filtering if requested
if use_filter:
all_cards = apply_strict_filter(all_cards, min_length=100)
# Remove duplicates
seen = set()
unique = []
for c in all_cards:
key = c['front'][:80]
if key not in seen:
seen.add(key)
unique.append(c)
# Write output
with open(output_file, 'w', encoding='utf-8') as f:
f.write(f"#separator:Tab\n#html:true\n#notetype:Basic\n#deck:{deck_name}\n\n")
for c in unique:
f.write(f"{c['front']}\t{c['back']}\t{c['tags']}\n")
# Statistics
lengths = [len(c['back']) for c in unique]
short = sum(1 for l in lengths if l < 50)
medium = sum(1 for l in lengths if 50 <= l < 150)
good = sum(1 for l in lengths if l >= 150)
print(f"✅ Generated: {output_file.name}")
print(f" Cards: {len(unique)}")
print(f" Quality: {short} short / {medium} medium / {good} good")
print()
return output_file
def main():
parser = argparse.ArgumentParser(description="Generate Anki flashcards with modular approaches")
parser.add_argument('--filter', action='store_true', help='Approach 1: Strict filtering (>100 chars)')
parser.add_argument('--extract', action='store_true', help='Approach 2: Better extraction algorithm')
parser.add_argument('--main-only', action='store_true', help='Approach 3: Main exam questions only')
parser.add_argument('--all-combinations', action='store_true', help='Generate all 7 combinations')
args = parser.parse_args()
if args.all_combinations:
# Generate all 7 combinations
print("=" * 60)
print("Generating all 7 combinations...")
print("=" * 60 + "\n")
combinations = [
(True, False, False), # 1: Filter only
(False, True, False), # 2: Extract only
(False, False, True), # 3: Main only
(True, True, False), # 4: Filter + Extract
(True, False, True), # 5: Filter + Main
(False, True, True), # 6: Extract + Main
(True, True, True), # 7: All three
]
for i, (f, e, m) in enumerate(combinations, 1):
print(f"--- Combination {i} (filter={f}, extract={e}, main={m}) ---")
generate_anki(use_filter=f, use_better_extract=e, main_only=m)
else:
generate_anki(
use_filter=args.filter,
use_better_extract=args.extract,
main_only=args.main_only
)
if __name__ == "__main__":
main()

40
pytania/anki_main.txt Normal file
View File

@ -0,0 +1,40 @@
#separator:Tab
#html:true
#notetype:Basic
#deck:Egzamin_main
Porównać 'siłę wyrazu' automatu skończonego, automatu ze stosem oraz maszyny Turinga. Jakie klasy języków rozpoznaje każdy z nich? <b>Automat Skończony (Finite Automaton - FA)</b>: Języki regularne (Typ 3)<br><br><b>Automat ze Stosem (Pushdown Automaton - PDA)</b>: Języki bezkontekstowe (Typ 2)<br><br><b>Maszyna Turinga (Turing Machine - TM)</b>: Języki rekurencyjnie przeliczalne (Typ 0) egzamin pyt01 AISDI main
Omówić i porównać algorytmy najkrótszej ścieżki wskazując ich kluczowe właściwości i logikę budowy: Dijkstry, Belmana-Forda, A*. <b>Wprowadzenie - problem najkrótszej ścieżki</b>: <b>Warianty problemu:</b> egzamin pyt02 AISDI main
Omówić zagadnienia redundancji i normalizacji w relacyjnej bazie danych oraz wynikające z tego wymagania. <b>Wprowadzenie</b>: Redundancja: = niepożądane powtarzanie danych egzamin pyt03 BD2 main
Omówić główne kategorie elementów biblioteki STL. Jaka jest ich rola i wzajemne powiązania? Odpowiedź uzasadnić na przykładach. <b>Filozofia STL</b>: Generyczność: szablony (templates) umożliwiają pracę z dowolnymi typami egzamin pyt05 PROI main
Przedstawić sieciowe modele optymalizacji stosowane w systemach zarządzania. Omówić ich właściwości. <b>Wprowadzenie</b>: Węzły: = punkty decyzyjne, lokalizacje, zdarzenia egzamin pyt12 WSYZ main
Omówić szczegółowo teorie, definicje, standardy i narzędzia wykorzystywane przy projektowaniu i implementacji systemów opartych na koncepcji agenta i aktora. <b>Architektury agentów</b>: Zachowania niskopoziomowe mogą być &quot;nadpisane&quot; przez wyższe.<br><br><b>Standardy komunikacji agentów</b>: <b>FIPA-ACL</b> (Agent Communication Language): egzamin pyt13 AASD main
Wymienić i szczegółowo opisać wybrane algorytmy i metody wykorzystywane w systemach wieloagentowych i aktorowych. <b>Algorytmy negocjacji i aukcji</b>: Manager Contractors<br><br><b>Algorytmy konsensusu</b>: Client ──request──→ Primary<br><br><b>Algorytmy koordynacji</b>: <b>Algorytm Ricarta-Agrawali:</b><br><br><b>Algorytmy uczenia wieloagentowego</b>: Q(s,a) ← Q(s,a) + α[r + γ max Q(s',a') - Q(s,a)]<br><br><b>Algorytmy dla aktorów</b>: // All-for-One: restart wszystkich dzieci egzamin pyt14 AASD main
Omówić metody modelowania architektury systemów informatycznych. Przedstawić cele i metody modelowania architektury. <b>Notacje i języki modelowania</b>: Zasada: Zoom in/out między poziomami egzamin pyt15 AIS main
Czemu służą wzorce architektoniczne? Jak powstają? Jak są katalogowane? Omówić przykładowe wzorce architektoniczne. <b>Jak powstają wzorce</b>: Nazwa: identyfikator egzamin pyt16 AIS main
Przedstawić warunki konieczne i dostateczne optymalności różniczkowalnych zadań optymalizacji bez ograniczeń i z ograniczeniami oraz warunki regularności i omówić metody poszukiwania rozwiązań zadań optymalizacji nieliniowej. <b>Optymalizacja bez ograniczeń</b>: (Gradient zerowy - punkt stacjonarny)<br><br><b>Warunki KKT (Karush-Kuhn-Tucker)</b>: Jeśli $x^*$ jest minimum i spełnione są warunki regularności:<br><br><b>Warunki regularności (Constraint Qualification)</b>: <b>LICQ:</b> $\{\nabla g_i(x^<i>) : g_i(x^</i>) = 0\} \cup \{\nabla h_j(x^*)\}$ są liniowo niezależne<br><br><b>Warunki dostateczne II rzędu</b>: dla wszystkich $d \neq 0$ spełniających: egzamin pyt17 AMO main
Omówić metody rozwiązywania zadań liniowych i kwadratowych optymalizacji. <b>Programowanie liniowe (LP)</b>: <b>Złożoność:</b> O(2^n) worst-case, ale praktycznie bardzo szybki<br><br><b>Programowanie kwadratowe (QP)</b>: Gdzie Q jest macierzą symetryczną.<br><br><b>Metody rozwiązywania QP</b>: 1. Zgadnij zbiór aktywnych ograniczeń W<br><br><b>Przypadki szczególne</b>: <b>Rozwiązanie:</b> $(A^T A)x = A^T b$ (równanie normalne) egzamin pyt18 AMO main
Przedstawić metody wyznaczania cech (parametryzacji) sygnału mowy: MFCC (cechy mel-cepstralne) i LPC (cechy według liniowej predykcji). <b>Cel parametryzacji mowy</b>: Redukcja wymiarowości:: 16kHz × 16bit → ~13-40 cech/ramkę<br><br><b>MFCC (Mel-Frequency Cepstral Coefficients)</b>: mel(f) = 2595 · log₁₀(1 + f/700)<br><br><b>LPC (Linear Predictive Coding)</b>: Dźwięczne:: pobudzenie okresowe (struny głosowe) egzamin pyt19 EASAR main
Przedstawić klasyczną metodę rozpoznawania mowy opartą o HMM (Ukryte Modele Markowa). Porównać ją z metodami korzystającymi z głębokich sieci neuronowych. <b>HMM (Hidden Markov Model) - klasyczne podejście</b>: Każdy stan emituje obserwacje (MFCC) według rozkładu GMM:<br><br><b>Deep Learning w rozpoznawaniu mowy</b>: Attention-based (Seq2Seq):<br><br><b>Ewolucja wydajności</b>: Rok Model WER egzamin pyt20 EASAR main
Jak wykorzystuje się agenta upostaciowionego do specyfikacji sterowników robotów? <b>Agent upostaciowiony (Embodied Agent)</b>: Percepcji: poprzez sensory<br><br><b>Formalny model agenta</b>: Specyfikacja żywotności: egzamin pyt21 ERPM main
Omówić specjalizowane języki programowania robotów. Uwypuklić ich klasyfikację. <b>Języki producentów robotów przemysłowych</b>: ! MoveJ = ruch w przestrzeni złączy (Joint)<br><br><b>Języki uniwersalne i frameworki</b>: rospy.init_node('robot_controller') egzamin pyt22 ERPM main
Przedstawić koncepcję i przeznaczenie zegarów logicznych i wektorów stempli czasowych. <b>Problem czasu w systemach rozproszonych</b>: <b>Problem:</b> Nie możemy polegać na zegarach fizycznych - drift, opóźnienia sieciowe, brak atomowej synchronizacji.<br><br><b>Zegar Lamporta (Scalar Clock)</b>: 1. Przed każdym zdarzeniem lokalnym:<br><br><b>Zegary wektorowe (Vector Clocks)</b>: 1. Przed każdym zdarzeniem lokalnym: egzamin pyt23 ERSMS main
Omówić silne i słabe modele spójności danych w środowisku rozproszonym. <b>Silne modele spójności</b>: <b>Implementacja:</b> Consensus (Paxos, Raft), single leader<br><br><b>Słabe modele spójności</b>: <b>Implementacja:</b> DNS, Dynamo, Cassandra egzamin pyt24 ERSMS main
Gdzie znajdują zastosowania zadania programowania matematycznego całkowitoliczbowego i jak można je rozwiązywać? Omówić wybraną metodę dokładną, wyjaśnić dla jakich praktycznych problemów ma ona zastosowanie i co może wpływać na jej efektywność. <b>Definicja MIP (Mixed Integer Programming)</b>: Przypadki szczególne:<br><br><b>Branch and Bound (B&B) - metoda dokładna</b>: LP relaxation egzamin pyt25 MOD main
Scharakteryzować informatyczne narzędzia optymalizacji dyskretnej. Jakie są warunki i wymagania, jakie możliwości oraz trudności wiążą się ze stosowaniem gotowych narzędzi. <b>Porównanie wydajności (benchmark)</b>: CPLEX ████████████████████████████ 100% egzamin pyt26 MOD main
Omówić typowe fazy ewolucji modelu danych i pożądane cechy modelu w każdej z faz. <b>Model konceptualny (Conceptual Data Model)</b>: ┌──────────┐ ┌──────────┐<br><br><b>Model logiczny (Logical Data Model)</b>: ┌────────────────────────┐ ┌────────────────────────┐<br><br><b>Model fizyczny (Physical Data Model)</b>: CREATE INDEX idx_klient_email ON klient(email); egzamin pyt28 MODA main
Oszacować ilościowo przyśpieszenie wykonania programu sekwencyjnego z fragmentami równoległymi na maszynie wielordzeniowej. Co osłabia to ograniczenie? <b>Prawo Amdahla</b>: $$S(n) = \frac{1}{(1-p) + \frac{p}{n}}$$<br><br><b>Wizualizacja ograniczenia</b>: <b>Obserwacja:</b> Krzywe szybko się spłaszczają - dodawanie procesorów daje coraz mniejszy zysk.<br><br><b>Co osłabia ograniczenie Amdahla?</b>: S_scaled(n) = n - (1-p)(n-1) = 1 - p + p·n<br><br><b>Czynniki zmniejszające rzeczywiste przyśpieszenie</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Efektywność równoległa</b>: <b>Wniosek:</b> Efektywność spada z liczbą procesorów. Trzeba zwiększać problem (Gustafson) lub zmniejszać (1-p). egzamin pyt29 PORR main
Omówić metody oraz typowe problemy w modelowaniu matematycznym dla problemów decyzyjnych i optymalizacyjnych. <b>Typowe problemy w modelowaniu</b>: Przykład - planowanie produkcji:<br><br><b>Techniki modelowania</b>: Problem: |x| (wartość bezwzględna) egzamin pyt30 MOM main
Wyjaśnić główne zagadnienia modelowania matematycznego w systemach decyzyjnych z wykorzystaniem pojęć (nie)wypukłości i (nie)liniowości. <b>Definicje kluczowe</b>: $$S \text{ wypukły} \Leftrightarrow \forall x,y \in S, \forall \lambda \in [0,1]: \lambda x + (1-\lambda)y \in S$$<br><br><b>Liniowość vs nieliniowość</b>: $$\min c^T x \quad \text{s.t.} \quad Ax \leq b, \quad x \geq 0$$<br><br><b>Testowanie wypukłości</b>: 1. HESJAN: H = ∇²f(x) ≽ 0 (dodatnio półokreślony) dla wszystkich x egzamin pyt31 MOM main
Podać definicję komunikacji synchronicznej i asynchronicznej oraz blokującej i nieblokującej. Jak uniknąć zakleszczenia, gdy dwa symetryczne procesy (np. realizujące algorytm iteracyjny Jacobiego) mają w kodzie następujące po sobie wywołania funkcji wysyłającej komunikat do partnera i odbierającej komunikat wysłany przez niego? <b>Definicje podstawowe</b>: KOMUNIKACJA ASYNCHRONICZNA:<br><br><b>Problem zakleszczenia (Deadlock)</b>: // Proces 0: // Proces 1:<br><br><b>Rozwiązania problemu zakleszczenia</b>: MPI_Irecv(from=partner, data_in, &req_recv); // Nieblokujące recv egzamin pyt32 PORR main
Scharakteryzować model przesyłania komunikatów publikuj-subskrybuj oraz przykładowe rozwiązania techniczne wykorzystujące ten model. <b>Rozwiązania techniczne</b>: channel.queue_bind(exchange='logs', queue=queue_name) egzamin pyt33 PSD main
Scharakteryzować rozwiązania analityczne działające na danych o charakterze strumieniowym. <b>Modele przetwarzania</b>: Processing: ───●───────●──●──●───────→<br><br><b>Platformy Stream Processing</b>: KStream<String, String> source = builder.stream(&quot;input-topic&quot;);<br><br><b>Algorytmy strumieniowe</b>: Przykład: Redis PFADD, PFCOUNT egzamin pyt34 PSD main
Na czym polega specyfika modelowania matematycznego układów cyber-fizycznych? Podać przykłady współpracy agentów w sieci i problemów w osiąganiu pożądanego zachowania układu. <b>Współpraca agentów w sieci</b>: L = Laplacian grafu komunikacji<br><br><b>Warunki zbieżności consensus</b>: Szybkość zbieżności ~ λ₂(L) (algebraic connectivity) egzamin pyt35 SIU main
Omówić ogólny algorytm, elementy składowe oraz własności uczenia się ze wzmocnieniem. <b>Funkcje wartości</b>: $$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$<br><br><b>Algorytmy</b>: ┌─────────────────────────────────────────────────────────────────┐ egzamin pyt36 SIU main
Porównać metody projekcji grafów dwudzielnych. Przedstawić ich użyteczność w grupowaniu dokumentów tekstowych. <b>Metody projekcji</b>: P = B · Bᵀ (dla projekcji na U)<br><br><b>Zastosowanie w grupowaniu dokumentów</b>: Graf dwudzielny projekcja (cosine similarity): egzamin pyt38 TASS main
Scharakteryzować problem segmentacji obrazu. Przedstawić podstawowe strategie i algorytmy segmentacji przy użyciu metod klasycznych oraz sieci neuronowych. <b>Metody klasyczne</b>: Otsu (automatyczny próg): egzamin pyt39 TWM main
Opisać problem detekcji obiektów w obrazach. Przedstawić podstawowe strategie i algorytmy detekcji przy użyciu metod klasycznych oraz sieci neuronowych. Jak skonstruować detektor obiektów dysponując istniejącym klasyfikatorem tych obiektów? <b>Metody Deep Learning</b>: ┌─────────────────────────────────────────────────────────────────┐<br><br><b>Non-Maximum Suppression (NMS)</b>: Soft-NMS: Nie usuwa, tylko obniża confidence egzamin pyt40 TWM main
Przedstawić metody interaktywne wspomagania decyzji w warunkach ryzyka. <b>Metoda pewnego ekwiwalentu (Certainty Equivalent)</b>: Dla loterii L = (p₁: x₁, p₂: x₂, ...): egzamin pyt41 WDWR main
Scharakteryzować relacje dominacji stochastycznej pierwszego i drugiego rzędu. Jak mogą być użyte w modelach wyboru w warunkach ryzyka? <b>Dominacja stochastyczna pierwszego rzędu (FSD)</b>: $$A \succeq_{FSD} B \Leftrightarrow F_A(x) \leq F_B(x) \quad \forall x$$<br><br><b>Dominacja stochastyczna drugiego rzędu (SSD)</b>: $$A \succeq_{SSD} B \Leftrightarrow \int_{-\infty}^{x} F_A(t) dt \leq \int_{-\infty}^{x} F_B(t) dt \quad \forall x$$<br><br><b>Zastosowanie w modelach wyboru</b>: Dla rozkładów normalnych z E[A] > E[B] i σ[A] < σ[B]: egzamin pyt42 WDWR main
Jakie cechy zadań szeregowania wykorzystuje się do ich klasyfikacji? Omówić przykładową metodę dla wybranego problemu szeregowania. <b>Pole α - Środowisko maszynowe</b>: MASZYNY RÓWNOLEGŁE (Pm): egzamin pyt43 ZBOP main
Jakie problemy wiążą się z zarządzaniem zapasami w łańcuchu dostaw? Omówić przykładowy model zarządzania zapasami w łańcuchu dostaw. <b>Model EOQ (Economic Order Quantity)</b>: Ordering cost = K × (D/Q) (D/Q zamówień rocznie) egzamin pyt44 ZBOP main

118
pytania/anki_manual.txt Normal file
View File

@ -0,0 +1,118 @@
#separator:Tab
#html:true
#notetype:Basic
#deck:Egzamin Magisterski - Ręcznie
#tags column:3
Porównać 'siłę wyrazu' automatu skończonego, automatu ze stosem oraz maszyny Turinga. Jakie klasy języków rozpoznaje każdy z nich? <b>Automat Skończony (FA)</b> → <b>Języki regularne (Typ 3)</b><br>• Brak pamięci - tylko aktualny stan<br>• Równoważny wyrażeniom regularnym<br>• Przykład: identyfikatory, wzorce tekstu<br>• NIE rozpozna: aⁿbⁿ (wymaga liczenia)<br><br><b>Automat ze Stosem (PDA)</b> → <b>Języki bezkontekstowe (Typ 2)</b><br>• Pamięć: stos LIFO (nieskończony, ale ograniczony dostęp)<br>• Potrafi liczyć pary: aⁿbⁿ ✓<br>• NIE rozpozna: aⁿbⁿcⁿ (wymaga 3 liczników)<br>• UWAGA: DPDA ⊂ NPDA (niedeterministyczny silniejszy!)<br><br><b>Maszyna Turinga (TM)</b> → <b>Języki rekurencyjnie przeliczalne (Typ 0)</b><br>• Pamięć: nieskończona taśma R/W<br>• Rozpoznaje wszystko co obliczalne (teza Churcha-Turinga)<br>• DTM ≡ NTM pod względem mocy pyt01 AISDI automaty hierarchia_chomskiego
Dlaczego automat skończony nie może rozpoznać języka L = {aⁿbⁿ}? Automat skończony <b>nie ma pamięci</b> poza swoim stanem. Aby rozpoznać aⁿbⁿ, musiałby "zapamiętać" ile było liter 'a', żeby porównać z liczbą 'b'.<br><br>Skończona liczba stanów = skończona "pamięć" = nie może liczyć do dowolnie dużego n.<br><br><b>Dowód formalny:</b> Lemat o pompowaniu - dla słowa aᵖbᵖ (gdzie p = stała pompowania), pompując część y w xyz, dostaniemy nierówną liczbę a i b. pyt01 AISDI automaty pumping_lemma
Dlaczego DPDA jest słabszy niż NPDA, ale DFA = NFA? <b>DFA = NFA</b> (równoważne):<br>Każdy NFA można przekształcić w DFA przez konstrukcję podzbiorową (powerset construction). Stany DFA = podzbiory stanów NFA.<br><br><b>DPDA ⊂ NPDA</b> (DPDA słabszy):<br>Stos wymaga "odgadnięcia" kiedy skończyć odkładanie i zacząć zdejmowanie. Przykład: palindromy parzyste L = {wwᴿ} - NPDA "zgaduje" środek słowa, DPDA nie może.<br><br>Kluczowa różnica: przy stosie niedeterminizm daje realną przewagę, przy samych stanach - nie. pyt01 AISDI automaty dpda_npda
Omówić i porównać algorytmy najkrótszej ścieżki: Dijkstry, Bellmana-Forda, A*. <b>Dijkstra</b> (1959) - zachłanny, SSSP<br>• Wymóg: wagi ≥ 0<br>• Złożoność: O(V²) lub O((V+E)log V) z kopcem<br>• Idea: wybieraj wierzchołek o najmniejszej znanej odległości<br><br><b>Bellman-Ford</b> (1958) - programowanie dynamiczne<br>• Działa dla ujemnych wag (wykrywa ujemne cykle)<br>• Złożoność: O(V·E)<br>• Idea: V-1 iteracji relaksacji wszystkich krawędzi<br><br><b>A*</b> (1968) - heurystyczny, single-pair<br>• Wymóg: heurystyka dopuszczalna h(n) ≤ h*(n)<br>• f(n) = g(n) + h(n) (koszt dotarcia + szacowany koszt do celu)<br>• Znacznie szybszy od Dijkstry dla konkretnego celu pyt02 AISDI algorytmy_grafowe najkrotsza_sciezka
Dlaczego algorytm Dijkstry nie działa dla ujemnych wag? Dijkstra oznacza wierzchołki jako "zakończone" gdy je przetworzy - zakłada, że znaleziona odległość jest ostateczna.<br><br><b>Problem:</b> Ujemna krawędź może później "poprawić" już zakończony wierzchołek.<br><br><b>Przykład:</b><br>S→C = 2 (Dijkstra ustala jako finalne)<br>S→A→B→C = 1 + (-5) + 1 = -3 < 2<br><br>Bellman-Ford rozwiązuje to robiąc V-1 iteracji po WSZYSTKICH krawędziach. pyt02 AISDI dijkstra ujemne_wagi
Co to jest heurystyka dopuszczalna w A* i dlaczego jest ważna? <b>Heurystyka dopuszczalna (admissible):</b> h(n) ≤ h*(n)<br>czyli heurystyka nigdy nie przeszacowuje rzeczywistego kosztu do celu.<br><br><b>Dlaczego ważna:</b><br>• Gwarantuje optymalność - A* znajdzie najkrótszą ścieżkę<br>• Jeśli h(n) > h*(n), A* może pominąć optymalną ścieżkę<br><br><b>Przykłady:</b><br>• Odległość euklidesowa (linia prosta) - zawsze ≤ rzeczywistej trasy<br>• h(n) = 0 → A* = Dijkstra (bezpieczne, ale wolne)<br><br><b>Heurystyka spójna (consistent):</b> h(n) ≤ c(n,n') + h(n') - silniejsza, przyspiesza A* pyt02 AISDI a_star heurystyka
Czym jest redundancja w bazach danych i jakie anomalie powoduje? <b>Redundancja</b> = ta sama informacja przechowywana w wielu miejscach.<br><br><b>Trzy anomalie:</b><br><br>1. <b>Anomalia wstawiania</b><br>Nie można dodać danych bez innych danych.<br>Przykład: nowy kurs bez studentów<br><br>2. <b>Anomalia usuwania</b><br>Usunięcie danych powoduje utratę innych informacji.<br>Przykład: usunięcie ostatniego studenta kursu = utrata info o kursie<br><br>3. <b>Anomalia modyfikacji</b><br>Zmiana wymaga aktualizacji wielu wierszy.<br>Przykład: zmiana nazwiska prowadzącego = update wielu rekordów<br><br><b>Rozwiązanie:</b> Normalizacja - dekompozycja tabel pyt03 BD2 redundancja anomalie
Wyjaśnij postacie normalne 1NF, 2NF, 3NF. <b>1NF - Pierwsza Postać Normalna</b><br>• Atomowość wartości (brak list/tablic w komórkach)<br>• Istnieje klucz główny<br><br><b>2NF - Druga Postać Normalna</b><br>• Spełnia 1NF<br>• Brak częściowych zależności (atrybut zależy od CAŁEGO klucza złożonego, nie od części)<br>• Dotyczy tylko tabel z kluczem wielokolumnowym<br><br><b>3NF - Trzecia Postać Normalna</b><br>• Spełnia 2NF<br>• Brak przechodnich zależności (A→B→C, gdzie B nie jest kluczem)<br>• Atrybuty wtórne zależą TYLKO od klucza<br><br><b>Hierarchia:</b> 5NF ⊂ 4NF ⊂ BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF pyt03 BD2 normalizacja postacie_normalne
Co to jest BCNF i czym różni się od 3NF? <b>BCNF (Boyce-Codd Normal Form):</b><br>Dla każdej nietrywialnej zależności funkcyjnej X→Y, X musi być nadkluczem.<br><br><b>Różnica od 3NF:</b><br>3NF dopuszcza: X→A gdzie A jest atrybutem pierwszym (należy do klucza)<br>BCNF: NIE dopuszcza - zawsze X musi być nadkluczem<br><br><b>Przykład naruszenia 3NF ale spełnienia BCNF:</b><br>Relacja z kluczami kandydującymi {A,B} i {A,C}<br>Zależność B→C narusza BCNF (B nie jest nadkluczem)<br>ale spełnia 3NF (C jest atrybutem pierwszym)<br><br><b>Praktyka:</b> 3NF zwykle wystarcza, BCNF może utrudnić dekompozycję pyt03 BD2 bcnf normalizacja
Co oznacza ACID w kontekście transakcji bazodanowych? <b>A - Atomicity (Atomowość)</b><br>Transakcja wykonuje się w całości lub wcale. Brak częściowych zmian.<br><br><b>C - Consistency (Spójność)</b><br>Dane przechodzą z jednego spójnego stanu w drugi. Reguły biznesowe zawsze spełnione.<br><br><b>I - Isolation (Izolacja)</b><br>Równoległe transakcje nie widzą swoich pośrednich zmian. Brak efektów ubocznych.<br><br><b>D - Durability (Trwałość)</b><br>Zatwierdzone zmiany przetrwają awarie systemu.<br><br><b>Przykład - przelew bankowy:</b><br>Bez A: awaria po odjęciu = utrata pieniędzy<br>Bez C: saldo ujemne mimo ograniczenia<br>Bez I: inna transakcja widzi stan pośredni<br>Bez D: po COMMIT dane giną pyt04 BD2 acid transakcje
Dlaczego baza danych stanowi dobry fundament systemów informatycznych? <b>1. Transakcyjność (ACID)</b><br>Gwarancja spójności i niezawodności operacji<br><br><b>2. Niezależność danych</b><br>• Fizyczna: zmiana indeksów/partycjonowania bez zmiany aplikacji<br>• Logiczna: zmiana schematu z minimalnym wpływem (widoki)<br><br><b>3. Współbieżność</b><br>Wiele aplikacji jednocześnie: blokady, MVCC, poziomy izolacji<br><br><b>4. Integralność</b><br>• Ograniczenia: PK, FK, CHECK, NOT NULL<br>• Wyzwalacze i procedury składowane<br><br><b>5. Optymalizacja</b><br>Automatyczny optymalizator zapytań, indeksy, statystyki<br><br><b>6. Bezpieczeństwo</b><br>Kontrola dostępu, audyt, szyfrowanie pyt04 BD2 bazy_danych fundament
Jakie są główne kategorie elementów STL i jak są powiązane? <b>4 główne kategorie:</b><br><br>1. <b>KONTENERY</b> - struktury przechowujące dane<br>• Sekwencyjne: vector, list, deque<br>• Asocjacyjne: map, set (drzewo czerwono-czarne)<br>• Nieuporządkowane: unordered_map (hash table)<br><br>2. <b>ITERATORY</b> - abstrakcja wskaźnika<br>• input, output, forward, bidirectional, random access<br>• Łączą kontenery z algorytmami<br><br>3. <b>ALGORYTMY</b> - operacje na danych<br>• sort, find, transform, copy, accumulate<br>• Działają na iteratorach, nie na kontenerach bezpośrednio<br><br>4. <b>FUNKTORY</b> - obiekty wywoływalne<br>• less<T>, greater<T>, plus<T><br>• Lambdy od C++11<br><br><b>Powiązanie:</b> Algorytmy operują na kontenerach PRZEZ iteratory, parametryzowane funktorami pyt05 PROI stl cpp
Kiedy użyć vector, a kiedy list w STL? <b>std::vector</b> - tablica dynamiczna<br>• Dostęp O(1) przez indeks<br>• Wstawianie na końcu O(1) amortyzowane<br>• Wstawianie w środku O(n) - przesunięcie elementów<br>• Cache-friendly (ciągła pamięć)<br>→ <b>Użyj gdy:</b> częsty dostęp losowy, głównie dodajesz na koniec<br><br><b>std::list</b> - lista dwukierunkowa<br>• Dostęp O(n) - brak indeksowania<br>• Wstawianie/usuwanie O(1) w dowolnym miejscu (po znalezieniu)<br>• Nie invaliduje iteratorów przy modyfikacji<br>→ <b>Użyj gdy:</b> częste wstawianie/usuwanie w środku, iteratory muszą pozostać ważne<br><br><b>Praktyka:</b> vector w 95% przypadków (cache matters!) pyt05 PROI stl vector_list
Różnica między map a unordered_map w STL? <b>std::map</b> (drzewo czerwono-czarne)<br>• Operacje: O(log n)<br>• Elementy posortowane według klucza<br>• Wymaga operator< dla klucza<br>• Stabilna wydajność<br><br><b>std::unordered_map</b> (tablica haszująca)<br>• Operacje: O(1) średnio, O(n) pesymistycznie<br>• Elementy nieposortowane<br>• Wymaga std::hash dla klucza<br>• Szybsza dla dużych zbiorów z dobrą funkcją hash<br><br><b>Kiedy map:</b><br>• Potrzebujesz posortowanych kluczy<br>• Iterujesz po zakresach<br><br><b>Kiedy unordered_map:</b><br>• Tylko lookup/insert (brak iteracji po kolejności)<br>• Duże zbiory danych pyt05 PROI stl map_unordered
Jaki jest cel three-way handshake w TCP? <b>Cele:</b><br>1. <b>Nawiązanie połączenia</b> - obie strony zgadzają się komunikować<br>2. <b>Synchronizacja ISN</b> - wymiana początkowych numerów sekwencyjnych<br>3. <b>Uzgodnienie parametrów</b> - MSS, Window Scale, SACK<br><br><b>Przebieg:</b><br>1. <b>Klient → SYN</b>, seq=x (stan: SYN_SENT)<br>2. <b>Serwer → SYN+ACK</b>, seq=y, ack=x+1 (stan: SYN_RECEIVED)<br>3. <b>Klient → ACK</b>, seq=x+1, ack=y+1 (stan: ESTABLISHED)<br><br><b>Dlaczego 3 kroki?</b><br>• 2 kroki: serwer nie wie czy klient otrzymał jego ISN<br>• 3 kroki: obie strony potwierdziły swoje ISN pyt08 SKM tcp handshake
Co to jest numer sekwencyjny w TCP i jaka jest jego wartość początkowa? <b>Sequence Number (SEQ)</b> = numer pierwszego bajtu danych w segmencie.<br><br><b>Interpretacja:</b><br>• SEQ=1000, 500 bajtów danych → następny segment ma SEQ=1500<br>• Umożliwia składanie segmentów w kolejności<br>• Wykrywanie duplikatów i braków<br><br><b>Acknowledgment Number (ACK)</b> = numer NASTĘPNEGO oczekiwanego bajtu.<br>ACK=1500 oznacza: "otrzymałem wszystko do bajtu 1499"<br><br><b>Wartość początkowa (ISN):</b><br>• Losowa (nie 0!) ze względów bezpieczeństwa<br>• Zapobiega atakom typu session hijacking<br>• Historycznie: ISN = (timer * 250) mod 2³²<br>• Współcześnie: kryptograficznie losowy pyt08 SKM tcp seq_ack
Czym różni się proces od wątku? <b>PROCES</b><br>• Oddzielna przestrzeń adresowa (izolacja)<br>• Własny PCB (Process Control Block)<br>• Komunikacja: IPC (pipe, socket, shared memory)<br>• Przełączanie: kosztowne (zmiana kontekstu MMU)<br>• Awaria jednego nie wpływa na inne<br><br><b>WĄTEK</b><br>• Współdzieli przestrzeń adresową procesu<br>• Własny: stos, rejestry, PC<br>• Wspólne: kod, dane, heap, pliki<br>• Przełączanie: szybkie (bez zmiany tablic stron)<br>• Awaria jednego = awaria całego procesu<br><br><b>Analogia:</b><br>Proces = mieszkanie (własne zasoby)<br>Wątek = współlokator (wspólna kuchnia, łazienka) pyt09 SOI procesy_watki
Jakie są problemy synchronizacji wątków i jak je rozwiązać? <b>PROBLEMY:</b><br><br>1. <b>Wyścig (Race Condition)</b><br>Wynik zależy od kolejności wykonania<br>→ Rozwiązanie: sekcja krytyczna z mutexem<br><br>2. <b>Zakleszczenie (Deadlock)</b><br>Wątki czekają na siebie nawzajem<br>→ Rozwiązanie: kolejność blokad, timeout, wykrywanie<br><br>3. <b>Zagłodzenie (Starvation)</b><br>Wątek nigdy nie dostaje zasobu<br>→ Rozwiązanie: sprawiedliwe szeregowanie, kolejki<br><br>4. <b>Livelock</b><br>Wątki aktywne, ale nie robią postępu<br>→ Rozwiązanie: losowe opóźnienia<br><br><b>MECHANIZMY:</b><br>• Mutex, Semafor, Monitor<br>• Zmienna warunkowa (condition variable)<br>• Read-write lock<br>• Operacje atomowe pyt09 SOI synchronizacja watki
Warunki konieczne wystąpienia zakleszczenia (deadlock). <b>4 warunki Coffmana (wszystkie muszą być spełnione):</b><br><br>1. <b>Wzajemne wykluczanie (Mutual Exclusion)</b><br>Zasób może być używany tylko przez jeden proces<br><br>2. <b>Trzymaj i czekaj (Hold and Wait)</b><br>Proces trzyma zasoby czekając na kolejne<br><br>3. <b>Brak wywłaszczania (No Preemption)</b><br>Zasobów nie można odebrać siłą<br><br>4. <b>Cykliczne oczekiwanie (Circular Wait)</b><br>P1→P2→P3→P1 (cykl oczekiwań)<br><br><b>Zapobieganie:</b><br>Złam dowolny warunek:<br>• Ustal globalną kolejność zasobów (łamie 4)<br>• Żądaj wszystkich zasobów naraz (łamie 2)<br>• Pozwól na wywłaszczanie (łamie 3) pyt09 SOI deadlock warunki
Co to jest stronicowanie i segmentacja? Porównaj. <b>STRONICOWANIE (Paging)</b><br>• Pamięć dzielona na równe ramki (np. 4KB)<br>• Tablica stron: strona → ramka<br>• Fragmentacja wewnętrzna (ostatnia strona)<br>• Niewidoczne dla programisty<br>• Umożliwia pamięć wirtualną (swap)<br><br><b>SEGMENTACJA (Segmentation)</b><br>• Pamięć dzielona logicznie: kod, dane, stos<br>• Segmenty różnej wielkości<br>• Fragmentacja zewnętrzna<br>• Widoczna dla programisty (ochrona, współdzielenie)<br><br><b>PORÓWNANIE:</b><br>| Cecha | Stronic. | Segment. |<br>| Jednostka | Stała | Zmienna |<br>| Fragmentacja | Wewnętrzna | Zewnętrzna |<br>| Widoczność | Ukryta | Jawna |<br><br><b>Praktyka:</b> Często łączone (segmentacja + stronicowanie) pyt10 SOI zarzadzanie_pamiecia stronic_segment
Jakie standardy służą do modelowania procesów biznesowych? <b>BPMN 2.0</b> (Business Process Model and Notation)<br>• Główny standard dla procesów biznesowych<br>• Wykonywalne diagramy (silniki workflow)<br>• Elementy: zdarzenia (kółka), bramki (romby), czynności (prostokąty), przepływy<br>• Swimlanes = odpowiedzialności<br><br><b>UML</b> (Unified Modeling Language)<br>• Diagram aktywności ≈ flowchart<br>• Diagram przypadków użycia<br>• Głównie dla systemów IT, nie procesów biznesowych<br><br><b>EPC</b> (Event-driven Process Chain)<br>• Metodyka ARIS<br>• Zdarzenia → Funkcje → Zdarzenia<br>• Popularne w SAP<br><br><b>Praktyka:</b> BPMN dla biznesu, UML dla IT pyt11 ISA bpmn modelowanie_procesow
Czym różnią się bramki XOR, AND i OR w BPMN? <b>XOR (Exclusive Gateway) ◇</b><br>• Dokładnie JEDNA ścieżka wybrana<br>• Rozgałęzienie: warunki wzajemnie wykluczające<br>• Scalenie: czeka na pierwszą (nie synchronizuje)<br>• Przykład: Decyzja tak/nie<br><br><b>AND (Parallel Gateway) ◇+</b><br>• WSZYSTKIE ścieżki aktywowane/wymagane<br>• Rozgałęzienie: równoległe wykonanie<br>• Scalenie: synchronizacja (czeka na wszystkie)<br>• Przykład: Równoległa weryfikacja dokumentów<br><br><b>OR (Inclusive Gateway) ◇○</b><br>• JEDNA LUB WIĘCEJ ścieżek<br>• Rozgałęzienie: aktywuje te, których warunki spełnione<br>• Scalenie: czeka na wszystkie aktywowane<br>• Przykład: Opcjonalne kroki procesu pyt11 ISA bpmn bramki
Jakie są podstawowe sieciowe modele optymalizacji? <b>1. Najkrótsza ścieżka (Shortest Path)</b><br>min Σ cᵢⱼxᵢⱼ od s do t<br>Algorytmy: Dijkstra, Bellman-Ford, A*<br><br><b>2. Maksymalny przepływ (Max Flow)</b><br>max przepływ od źródła do ujścia<br>Ograniczenie: przepustowość krawędzi<br>Algorytmy: Ford-Fulkerson, Edmonds-Karp<br><br><b>3. Minimalny koszt przepływu (Min Cost Flow)</b><br>Połączenie: przepływ + koszt jednostkowy<br>Zastosowanie: transport, przydział zadań<br><br><b>4. Problem przydziału (Assignment)</b><br>n pracowników → n zadań, min koszt<br>Każdy pracownik = jedno zadanie<br>Algorytm: Metoda węgierska O(n³)<br><br><b>5. Problem komiwojażera (TSP)</b><br>Najkrótsza trasa przez wszystkie miasta<br>NP-trudny! pyt12 WSYZ optymalizacja sieciowa
Czym różni się system agentowy od systemu aktorów? <b>SYSTEM AGENTOWY</b><br>• Agent = autonomiczny, reaktywny, proaktywny, społeczny<br>• Architektura BDI (Beliefs-Desires-Intentions)<br>• Komunikacja: FIPA-ACL (semantyka, performatywy)<br>• Cel: symulacja, AI, negocjacje<br>• Przykład: JADE, Jason<br><br><b>SYSTEM AKTORÓW</b><br>• Aktor = lekka jednostka obliczeniowa<br>• Komunikacja: asynchroniczne wiadomości (fire-and-forget)<br>• Brak stanu współdzielonego (share nothing)<br>• Cel: współbieżność, skalowalność, fault-tolerance<br>• Przykład: Akka, Erlang/OTP<br><br><b>Kluczowa różnica:</b><br>Agent = inteligentny, autonomiczny, ma cele<br>Aktor = jednostka obliczeniowa, reaktywna, bez "inteligencji" pyt13 ISA agenty_aktorzy
Co to jest architektura BDI w systemach agentowych? <b>BDI = Beliefs-Desires-Intentions</b><br><br><b>Beliefs (Przekonania)</b><br>Co agent wie o świecie<br>Baza wiedzy, może być niepełna/błędna<br><br><b>Desires (Pragnienia)</b><br>Cele, które agent chce osiągnąć<br>Mogą być sprzeczne ze sobą<br><br><b>Intentions (Intencje)</b><br>Wybrane cele, do których agent się zobowiązał<br>Plany działania<br><br><b>Cykl decyzyjny:</b><br>1. Percepcja → aktualizuj Beliefs<br>2. Generuj opcje (desires)<br>3. Deliberacja → wybierz intentions<br>4. Wykonaj plan<br>5. Powtórz<br><br><b>Zastosowania:</b> robotyka, symulacja zachowań, gry pyt13 ISA bdi agenty
Jakie są algorytmy koordynacji w systemach wieloagentowych? <b>1. Contract Net Protocol (CNET)</b><br>Manager ogłasza zadanie → Agenty składają oferty → Wybór najlepszej<br>Zastosowanie: alokacja zadań<br><br><b>2. Aukcje wieloagentowe</b><br>• Angielska (rosnąca), holenderska (malejąca)<br>• Vickrey (druga cena) - zachęca do prawdziwych ofert<br>• Kombinatoryczne - pakiety zasobów<br><br><b>3. Protokoły konsensusu</b><br>Agenty uzgadniają wspólną wartość<br>ẋᵢ = Σⱼ aᵢⱼ(xⱼ - xᵢ) → zbieżność do średniej<br><br><b>4. Multi-Agent Reinforcement Learning</b><br>• Independent Q-learning<br>• Cooperative/Competitive<br>• Emergent behavior pyt14 ISA wieloagentowe koordynacja
Co to jest framework TOGAF w modelowaniu architektury? <b>TOGAF = The Open Group Architecture Framework</b><br><br><b>ADM (Architecture Development Method):</b><br>Cykliczny proces 8 faz:<br>1. Preliminary - przygotowanie<br>2. Vision - wizja architektury<br>3. Business Architecture - procesy biznesowe<br>4. IS Architecture - dane + aplikacje<br>5. Technology Architecture - infrastruktura<br>6. Opportunities & Solutions - planowanie migracji<br>7. Migration Planning - szczegółowy plan<br>8. Governance - zarządzanie zmianami<br><br><b>4 domeny architektury:</b><br>• Business, Data, Application, Technology (BDAT)<br><br><b>Praktyka:</b> Standard korporacyjny, duże organizacje pyt15 ISA togaf architektura
Porównaj wzorce architektoniczne: Layers, Microservices, Event-Driven. <b>LAYERS (Warstwowa)</b><br>Prezentacja → Logika → Dane<br>✓ Prostota, separacja<br>✗ Monolityczna, trudna skalowalność<br><br><b>MICROSERVICES</b><br>Małe, niezależne serwisy<br>✓ Skalowalność, niezależny deployment<br>✓ Różne technologie<br>✗ Złożoność operacyjna, distributed transactions<br>Wymaga: API Gateway, Service Discovery<br><br><b>EVENT-DRIVEN (EDA)</b><br>Komponenty komunikują się przez zdarzenia<br>✓ Luźne powiązania, reaktywność<br>✓ Skalowalność, CQRS/Event Sourcing<br>✗ Trudne debugowanie, eventual consistency<br>Wymaga: Message Broker (Kafka, RabbitMQ)<br><br><b>Praktyka:</b> Często łączone (microservices + events) pyt16 ISA wzorce_architektoniczne
Jakie są warunki KKT w optymalizacji nieliniowej? <b>KKT = Karush-Kuhn-Tucker</b><br><br>Dla problemu: min f(x), g(x) ≤ 0, h(x) = 0<br><br><b>Warunki konieczne optimum:</b><br><br>1. <b>Stacjonarność:</b><br>∇f(x*) + Σμᵢ∇gᵢ(x*) + Σλⱼ∇hⱼ(x*) = 0<br><br>2. <b>Dopuszczalność pierwotna:</b><br>g(x*) ≤ 0, h(x*) = 0<br><br>3. <b>Dopuszczalność dualna:</b><br>μᵢ ≥ 0 (dla ograniczeń nierównościowych)<br><br>4. <b>Complementary slackness:</b><br>μᵢ · gᵢ(x*) = 0 (aktywne lub μ=0)<br><br><b>Dla wypukłych:</b> KKT są wystarczające!<br><b>Dla niewypukłych:</b> tylko konieczne (lokalne opt.) pyt17 MOM kkt optymalizacja_nieliniowa
Czym różni się metoda simpleks od interior point? <b>METODA SIMPLEKS</b><br>• Porusza się po wierzchołkach wielościanu<br>• Iteracja: przejście do lepszego sąsiada<br>• Złożoność: O(2ⁿ) pesymistycznie<br>• W praktyce: bardzo szybka dla większości problemów<br>• Problemy zdegenerowane: cycling<br><br><b>INTERIOR POINT (bariery)</b><br>• Porusza się WEWNĄTRZ wielościanu<br>• Zbliża się do granicy przy optimum<br>• Złożoność: wielomianowa O(n³·L)<br>• Lepsza dla bardzo dużych problemów<br>• Wymaga więcej pamięci<br><br><b>Praktyka:</b><br>Simplex: małe/średnie LP, basis info<br>Interior Point: duże LP, QP, SDP pyt18 MOM simplex lp
Jak działa parametryzacja MFCC w rozpoznawaniu mowy? <b>MFCC = Mel-Frequency Cepstral Coefficients</b><br><br><b>Pipeline przetwarzania:</b><br>1. <b>Pre-emphasis:</b> y[n] = x[n] - αx[n-1] (wzmocnienie wysokich częstotliwości)<br>2. <b>Ramkowanie:</b> okna 20-40ms z overlap<br>3. <b>FFT:</b> spektrum częstotliwościowe<br>4. <b>Mel filterbank:</b> 26-40 filtrów w skali mel (nieliniowa, jak ucho)<br>5. <b>Log:</b> logarytm energii filtrów<br>6. <b>DCT:</b> 12-13 współczynników cepstralnych<br><br><b>Rozszerzenia:</b><br>• Δ (pierwsza pochodna) - dynamika<br>• ΔΔ (druga pochodna)<br>• Razem: 39 cech (13 + 13 + 13)<br><br><b>Dlaczego mel?</b> Ucho słyszy nieliniowo - różnice w niskich częstotliwościach ważniejsze pyt19 RUM mfcc parametryzacja_mowy
Porównaj HMM i Deep Learning w rozpoznawaniu mowy. <b>HMM (Hidden Markov Model)</b><br>• Stany ukryte → emisje (GMM)<br>• Algorytmy: Viterbi, Forward-Backward, Baum-Welch<br>• Zalety: interpretowalność, mało danych<br>• Wady: założenie Markowa, ręczne features<br><br><b>DNN-HMM (Hybrid)</b><br>• DNN zastępuje GMM do modelowania emisji<br>• HMM nadal modeluje sekwencję<br>• Breakthrough: 2012 (Hinton et al.)<br><br><b>End-to-End Deep Learning</b><br>• CTC (Connectionist Temporal Classification)<br>• Attention/Transformer (Seq2Seq)<br>• Brak alignmentu, brak HMM<br>• Przykłady: DeepSpeech, Whisper<br><br><b>Praktyka 2024:</b> Transformery dominują (Whisper, Wav2Vec) pyt20 RUM hmm deep_learning mowa
Co to jest agent upostaciowiony (embodied agent)? <b>Embodied Agent = agent z "ciałem" w fizycznym świecie</b><br><br>Różnica od agenta symulowanego:<br>• Interakcja z rzeczywistym środowiskiem<br>• Sensory: kamery, LIDAR, enkodery<br>• Efektory: silniki, chwytaki<br>• Niepewność: szum, opóźnienia, awarie<br><br><b>Architektura (typowa):</b><br>1. Percepcja: sensory → model świata<br>2. Planowanie: cel → sekwencja akcji<br>3. Wykonanie: akcje → efektory<br>4. Feedback: monitorowanie i korekta<br><br><b>Frameworki:</b><br>• ROS (Robot Operating System)<br>• BDI dla robotów (Jason + ROS)<br><br><b>Wyzwania:</b><br>• Real-time constraints<br>• Niepewność percepcji<br>• Bezpieczeństwo (safety-critical) pyt21 SIU embodied_agent roboty
Jakie są poziomy języków programowania robotów? <b>Hierarchia (od wysokiego do niskiego):</b><br><br>1. <b>Task Level</b> (najwyższy)<br>"Zmontuj produkt A" - planowanie zadań<br>AI, reasoning<br><br>2. <b>Robot Level</b><br>Ruchy w przestrzeni kartezjańskiej<br>Ścieżki, trajektorie end-effector<br><br>3. <b>Motion Level</b><br>Kinematyka, trajektorie stawów<br>Planowanie ruchu (RRT, A*)<br><br>4. <b>Servo Level</b> (najniższy)<br>Sterowanie silnikami<br>PID, kontrola pozycji/prędkości<br><br><b>Języki przemysłowe:</b><br>• RAPID (ABB)<br>• KRL (KUKA)<br>• Karel (FANUC)<br>• URScript (Universal Robots)<br><br><b>Standardy:</b> IEC 61131-3 (PLC), ROS (research) pyt22 SIU jezyki_robotow programowanie
Jak działają zegary logiczne Lamporta? <b>Problem:</b> Brak globalnego zegara w systemach rozproszonych<br><br><b>Algorytm:</b><br>Każdy proces Pᵢ ma licznik Cᵢ:<br>1. Przed zdarzeniem lokalnym: Cᵢ++<br>2. Wysyłanie msg: Cᵢ++, dołącz timestamp<br>3. Odbiór msg z timestamp t: Cᵢ = max(Cᵢ, t) + 1<br><br><b>Właściwości:</b><br>✓ a → b ⟹ C(a) < C(b) (porządek zachowany)<br>✗ C(a) < C(b) ⟹ a → b (NIE! mogą być współbieżne)<br><br><b>Zegary wektorowe:</b><br>Wektor V[1..N] dla N procesów<br>V[i] = wiedza procesu o wszystkich<br>a → b ⟺ V(a) < V(b) (obustronna implikacja!)<br><br><b>Zastosowanie:</b> Causal ordering, wykrywanie współbieżności pyt23 ERSMS zegary_logiczne lamport
Czym różni się linearizability od eventual consistency? <b>LINEARIZABILITY (najsilniejsza)</b><br>• Operacja wygląda jakby wykonała się atomowo<br>• "Globalny porządek czasu rzeczywistego"<br>• Wynik natychmiast widoczny wszędzie<br>• Kosztowna: wymaga koordynacji (Paxos, Raft)<br>• Przykład: transakcje bankowe<br><br><b>EVENTUAL CONSISTENCY (najsłabsza)</b><br>• "Ostatecznie wszystkie repliki się zsynchronizują"<br>• Brak gwarancji kiedy<br>• Możliwe stare odczyty<br>• Wysoka dostępność (AP w CAP)<br>• Przykład: DNS, caching, social media feeds<br><br><b>Pomiędzy:</b><br>• Sequential: globalny porządek, nie real-time<br>• Causal: porządek przyczynowy zachowany pyt24 ERSMS spojnosc consistency
Co to jest Branch and Bound i jak działa? <b>Branch and Bound = metoda dokładna dla MIP</b><br><br><b>Idea:</b><br>1. Relaksacja LP: rozwiąż bez ograniczeń całkowitoliczbowych<br>2. Jeśli rozwiązanie całkowite → STOP<br>3. BRANCH: wybierz zmienną ułamkową xᵢ<br>4. Utwórz 2 podproblemy: xᵢ ≤ ⌊x*ᵢ⌋ i xᵢ ≥ ⌈x*ᵢ⌉<br>5. BOUND: jeśli LP ≤ best known → prune<br><br><b>Przycinanie (pruning):</b><br>• Infeasible: brak rozwiązania LP<br>• Optimality: LP ≤ incumbent<br>• Integrality: znalezione całkowite<br><br><b>Strategie wyboru węzła:</b><br>• Best-first (najlepsze ograniczenie)<br>• Depth-first (mniej pamięci)<br>• Best-estimate (heurystyka) pyt25 MOD branch_and_bound mip
Jakie są główne narzędzia do optymalizacji dyskretnej? <b>SOLVERY MIP (komercyjne):</b><br>• CPLEX (IBM) - najszybszy<br>• Gurobi - bardzo szybki, dobre API<br><br><b>SOLVERY MIP (open source):</b><br>• SCIP - framework rozszerzalny<br>• CBC (COIN-OR) - dobry darmowy<br>• HiGHS - nowoczesny<br><br><b>CONSTRAINT PROGRAMMING:</b><br>• CP-SAT (Google OR-Tools) - bardzo szybki<br>• Gecode - akademicki<br>• MiniZinc - język modelowania<br><br><b>JĘZYKI MODELOWANIA:</b><br>• Pyomo (Python)<br>• JuMP (Julia)<br>• AMPL, GAMS (komercyjne)<br><br><b>Kiedy CP vs MIP?</b><br>CP: scheduling, alldifferent, kombinatoryczne<br>MIP: silna relaksacja LP, ciągłe zmienne pyt26 MOD solvery narzedzia
Dlaczego jakość modelu danych jest krytyczna? <b>Model danych = fundament systemu</b><br>Zmiana modelu → kaskadowe zmiany wszędzie<br><br><b>Konsekwencje złego modelu:</b><br><br>1. <b>Wydajność:</b><br>JOIN na stringach vs integer PK/FK<br>Brak indeksów, denormalizacja → full scans<br><br>2. <b>Spójność:</b><br>Redundancja → anomalie (insert, update, delete)<br>Brak constraints → nieprawidłowe dane<br><br>3. <b>Utrzymywalność:</b><br>Niezrozumiałe nazwy (col1, temp_field)<br>Brak dokumentacji ERD<br><br>4. <b>Koszty naprawy:</b><br>Analiza: tanie<br>Design: średnie<br>Implementacja: drogie<br>Produkcja: BARDZO drogie (migracje!) pyt27 MODA model_danych jakosc
Jakie są fazy ewolucji modelu danych? <b>1. KONCEPTUALNY (CDM)</b><br>• CO przechowujemy (biznes)<br>• Zrozumiały dla nietechnicznych<br>• Encje i relacje (brak atrybutów szczegółowych)<br>• ERD uproszczony<br><br><b>2. LOGICZNY (LDM)</b><br>• JAK strukturyzujemy<br>• Atrybuty, typy logiczne, klucze PK/FK<br>• Normalizacja (min 3NF)<br>• Niezależny od DBMS<br><br><b>3. FIZYCZNY (PDM)</b><br>• JAK implementujemy<br>• Typy danych specyficzne dla DBMS<br>• Indeksy, partycjonowanie, tablespaces<br>• Optymalizacja wydajności<br><br><b>Transformacja:</b><br>CDM → LDM: dodaj atrybuty, normalizuj<br>LDM → PDM: dostosuj do DBMS, zoptymalizuj pyt28 MODA fazy_modelu ewolucja
Co mówi prawo Amdahla o przyśpieszeniu równoległym? <b>Formuła Amdahla:</b><br>S(n) = 1 / [(1-p) + p/n]<br><br>Gdzie:<br>• p = część równoległa (0-1)<br>• n = liczba procesorów<br>• (1-p) = część sekwencyjna<br><br><b>Maksymalne przyśpieszenie (n→∞):</b><br>S_max = 1/(1-p)<br><br><b>Przykład:</b><br>90% równoległe (p=0.9):<br>S_max = 1/0.1 = 10x<br>Nawet z nieskończoną liczbą CPU!<br><br><b>Wniosek:</b> Część sekwencyjna LIMITUJE przyśpieszenie<br><br><b>Prawo Gustafsona:</b> Skaluj problem, nie przyśpieszenie<br>S_scaled = 1 - p + p·n (liniowe z n!) pyt29 PORR amdahl rownolegle
Jakie są etapy tworzenia modelu optymalizacyjnego? <b>1. ANALIZA PROBLEMU</b><br>• Zrozum dziedzinę biznesową<br>• Zidentyfikuj decyzje, cele, ograniczenia<br><br><b>2. ZMIENNE DECYZYJNE</b><br>• Co kontrolujemy? (x, y, z...)<br>• Typy: ciągłe, całkowite, binarne<br>• Zmienne muszą być mierzalne i kontrolowalne<br><br><b>3. FUNKCJA CELU</b><br>• min/max f(x)<br>• Co optymalizujemy? (koszt, zysk, czas)<br><br><b>4. OGRANICZENIA</b><br>• g(x) ≤ 0, h(x) = 0<br>• Zasoby, fizyka, logika biznesowa<br><br><b>5. WALIDACJA</b><br>• Extreme cases<br>• Known solutions<br>• Analiza wrażliwości<br><br><b>Problemy:</b> Big-M (słaba relaksacja), symetria pyt30 MOM modelowanie optymalizacja
Dlaczego wypukłość jest ważna w optymalizacji? <b>Problem wypukły:</b><br>• min f(x) gdzie f wypukła<br>• Ograniczenia definiują zbiór wypukły<br><br><b>Kluczowa właściwość:</b><br>LOKALNE optimum = GLOBALNE optimum<br><br><b>Konsekwencje:</b><br>1. Gwarancja znalezienia najlepszego rozwiązania<br>2. Algorytmy wielomianowe (interior point)<br>3. Silna dualność (zero gap)<br>4. KKT wystarczające (nie tylko konieczne)<br><br><b>Niewypukłe problemy:</b><br>• Wiele minimów lokalnych<br>• NP-trudne<br>• Tylko lokalne optimum (gradient, Newton)<br>• Metaheurystyki: SA, GA (bez gwarancji)<br><br><b>Praktyka:</b> Przekształć w wypukły jeśli możliwe! pyt31 MOM wypuklosc optymalizacja
Różnica między komunikacją blokującą a nieblokującą w MPI. <b>BLOKUJĄCA</b><br>• MPI_Send, MPI_Recv<br>• Zwraca gdy operacja "zakończona"<br>• Bufor można bezpiecznie użyć ponownie<br>• Ryzyko deadlocka przy złej kolejności<br><br><b>NIEBLOKUJĄCA</b><br>• MPI_Isend, MPI_Irecv<br>• Zwraca natychmiast (request handle)<br>• Operacja w tle<br>• MPI_Wait/MPI_Test do sprawdzenia<br>• Overlapping: obliczenia + komunikacja<br><br><b>Deadlock example:</b><br>P0: Send(to=1); Recv(from=1);<br>P1: Send(to=0); Recv(from=0);<br>→ Oba czekają na recv, nikt nie wysyła<br><br><b>Rozwiązanie:</b> MPI_Sendrecv lub nieblokujące pyt32 PORR mpi blokujace
Jak działa model Publish-Subscribe? <b>Architektura:</b><br>PUBLISHERS → BROKER → SUBSCRIBERS<br><br><b>Cechy:</b><br>• Luźne powiązanie (publisher nie zna subscriberów)<br>• Asynchroniczność<br>• Skalowalność 1:N, N:M<br><br><b>Typy subskrypcji:</b><br>• Topic-based: subscribe("orders")<br>• Content-based: price > 100<br>• Hierarchical: home/+/temperature (wildcards)<br><br><b>QoS (Quality of Service):</b><br>• QoS 0: at most once (fire-and-forget)<br>• QoS 1: at least once (możliwe duplikaty)<br>• QoS 2: exactly once (4-way handshake)<br><br><b>Implementacje:</b><br>• Apache Kafka (log-based, high throughput)<br>• RabbitMQ (AMQP, flexible routing)<br>• MQTT (IoT, lightweight) pyt33 PSD pub_sub messaging
Czym charakteryzuje się przetwarzanie danych strumieniowych? <b>Strumień vs Batch:</b><br>• Unbounded (nieskończony)<br>• Ciągłe napływanie danych<br>• Wymagana niska latencja<br>• Brak możliwości przechowania wszystkiego<br><br><b>Windowing (okna czasowe):</b><br>• Tumbling: rozłączne, stała wielkość<br>• Sliding: nakładające się<br>• Session: oparte na aktywności<br>• Global: jedno okno, trigger decyduje<br><br><b>Event Time vs Processing Time:</b><br>• Event time: kiedy zdarzenie nastąpiło<br>• Processing time: kiedy dotarło<br>• Watermark: znacznik postępu event time<br><br><b>Platformy:</b><br>• Apache Flink (stateful, exactly-once)<br>• Kafka Streams (library, Kafka ecosystem)<br>• Apache Spark Streaming (micro-batch) pyt34 PSD streaming analityka
Co to są systemy cyber-fizyczne (CPS)? <b>CPS = Cyber + Physical w pętli sprzężenia</b><br><br><b>Komponenty:</b><br>• Cyber: obliczenia, komunikacja, sterowanie<br>• Physical: dynamika, fizyka, środowisko<br>• Sensors + Actuators = połączenie<br><br><b>Specyfika modelowania:</b><br>• Hybrid systems: ciągłe ODE + dyskretne automaty<br>• Real-time constraints<br>• Niepewność, szum, opóźnienia<br><br><b>Przykład - termostat:</b><br>Mode OFF: Ṫ = -α(T-Tₑ)<br>Mode ON: Ṫ = β - α(T-Tₑ)<br>Przełączanie: T<Tₗ → ON, T>Tₕ → OFF<br><br><b>Consensus w sieci agentów:</b><br>ẋᵢ = Σⱼ aᵢⱼ(xⱼ - xᵢ) → zbieżność do średniej<br><br><b>Przykłady:</b> autonomiczne pojazdy, smart grid, Industry 4.0 pyt35 SIU cps cyber_fizyczne
Jakie są elementy uczenia ze wzmocnieniem? <b>Model RL:</b><br>Agent ↔ Environment<br>Agent: akcja aₜ → Environment<br>Environment: stan sₜ₊₁, nagroda rₜ → Agent<br><br><b>Elementy:</b><br>• State (s): obserwacja środowiska<br>• Action (a): decyzja agenta<br>• Reward (r): sygnał zwrotny<br>• Policy π(a|s): strategia<br>• Value V(s), Q(s,a): oczekiwana nagroda<br>• Discount γ: ważność przyszłych nagród<br><br><b>MDP (Markov Decision Process):</b><br>P(sₜ₊₁|sₜ,aₜ) - tylko obecny stan ma znaczenie<br><br><b>Algorytmy:</b><br>• Value-based: Q-learning, DQN<br>• Policy-based: REINFORCE, PPO<br>• Actor-Critic: A2C, A3C, SAC<br><br><b>Cel:</b> max E[Σ γᵗrₜ] pyt36 SIU rl uczenie_wzmocnienie
Porównaj modele sieci złożonych: ER, Watts-Strogatz, Barabási-Albert. <b>ERDŐS-RÉNYI (Random)</b><br>G(n,p) - krawędź z prawdop. p<br>• Rozkład stopni: Poisson<br>• Niski clustering C=p<br>• Krótka ścieżka L~log(n)<br>• Brak hubów<br><br><b>WATTS-STROGATZ (Small-World)</b><br>Regularna kratka + losowe przepinanie<br>• Wysoki clustering (zachowany)<br>• Krótka ścieżka (dodana)<br>• "6 degrees of separation"<br><br><b>BARABÁSI-ALBERT (Scale-Free)</b><br>Preferential attachment (rich-get-richer)<br>• Rozkład: power-law P(k)~k⁻ᵞ<br>• Huby (węzły o bardzo wysokim stopniu)<br>• Odporność na losowe awarie<br>• Wrażliwość na celowane ataki<br><br><b>Rzeczywiste sieci:</b> cechy BA + WS (huby + clustering) pyt37 TASS sieci_zlozone modele
Co to jest projekcja grafu dwudzielnego? <b>Graf dwudzielny:</b><br>Dwa rozłączne zbiory U, V<br>Krawędzie tylko między U i V<br>Przykład: dokumenty ↔ słowa<br><br><b>Projekcja:</b><br>Przekształcenie na graf jednomodowy<br>P = B·Bᵀ (projekcja na U)<br>Węzły U połączone jeśli mają wspólnego sąsiada w V<br><br><b>Metody ważenia krawędzi:</b><br>• Simple count: |N(i) ∩ N(j)|<br>• Jaccard: |∩| / ||<br>• Cosine: dot product / normy<br>• TF-IDF: rzadkie słowa ważniejsze<br><br><b>Zastosowanie - grupowanie dokumentów:</b><br>1. Graf: dokumenty ↔ słowa<br>2. TF-IDF weights<br>3. Projekcja na dokumenty<br>4. Clustering na projekcji pyt38 TASS projekcje grafy_dwudzielne
Jakie są metody segmentacji obrazu? <b>KLASYCZNE:</b><br><br>1. <b>Thresholding:</b> Otsu (automatyczny próg)<br>2. <b>Region Growing:</b> seed → ekspansja po podobnych<br>3. <b>Watershed:</b> obraz jako topografia, zalewanie<br>4. <b>Graph-based:</b> Normalized Cuts, Laplacian<br><br><b>DEEP LEARNING:</b><br><br>1. <b>FCN (Fully Convolutional):</b><br>Brak FC layers → dowolny rozmiar wejścia<br><br>2. <b>U-Net:</b><br>Encoder-decoder + skip connections<br>Świetne dla małych datasetów (medycyna)<br><br>3. <b>DeepLab:</b><br>Atrous/dilated convolutions<br>ASPP (multi-scale)<br><br><b>Typy segmentacji:</b><br>• Semantic: klasa dla piksela<br>• Instance: rozróżnia instancje<br>• Panoptic: unified (semantic + instance) pyt39 TWM segmentacja cv
Jak działa detekcja obiektów (klasyczne vs deep learning)? <b>KLASYCZNE:</b><br><br>1. <b>Sliding Window + HOG/SIFT:</b><br>Przesuwaj okno, klasyfikuj fragment<br>Problem: O(scales × positions) - WOLNE<br><br>2. <b>Viola-Jones (2001):</b><br>Haar features + AdaBoost cascade<br>Integral image → O(1) per feature<br>Real-time face detection<br><br><b>DEEP LEARNING:</b><br><br>1. <b>Two-stage (R-CNN family):</b><br>Region proposals → CNN → classify<br>Faster R-CNN: RPN (learned proposals)<br><br>2. <b>One-stage:</b><br>YOLO: grid cells, predict directly<br>SSD: multi-scale feature maps<br>Szybsze, mniej dokładne<br><br><b>Metryki:</b> mAP (mean Average Precision), IoU pyt40 TWM detekcja_obiektow cv
Co to jest dominacja stochastyczna pierwszego i drugiego rzędu? <b>FSD (First-order Stochastic Dominance):</b><br>A ≥_FSD B ⟺ F_A(x) ≤ F_B(x) dla wszystkich x<br><br>• A "zawsze lepsze" od B<br>• KAŻDY racjonalny decydent (U'≥0) wybierze A<br>• Najsilniejsza, rzadko występuje<br><br><b>SSD (Second-order):</b><br>A ≥_SSD B ⟺ ∫F_A(t)dt ≤ ∫F_B(t)dt dla wszystkich x<br><br>• Dla decydentów risk-averse (U'≥0, U''≤0)<br>• Słabsza niż FSD, częstsza<br>• CDF mogą się przecinać, ale skumulowane pole - nie<br><br><b>Zastosowanie:</b><br>Porównanie portfeli/loterii BEZ znajomości dokładnej funkcji użyteczności<br>FSD/SSD → eliminacja zdominowanych opcji pyt42 WDWR dominacja_stochastyczna
Jak klasyfikuje się zadania szeregowania (notacja Grahama)? <b>Notacja: α | β | γ</b><br><br><b>α - Środowisko maszynowe:</b><br>• 1: jedna maszyna<br>• Pm: m maszyn równoległych<br>• Fm: flow shop z m maszynami<br>• Jm: job shop z m maszynami<br><br><b>β - Charakterystyki zadań:</b><br>• rⱼ: release dates<br>• dⱼ: due dates<br>• prec: precedence constraints<br>• pmtn: preemption allowed<br>• pⱼ=1: unit processing times<br><br><b>γ - Kryterium:</b><br>• Cmax: makespan (max completion)<br>• ΣCⱼ: total completion time<br>• Lmax: max lateness<br>• ΣTⱼ: total tardiness<br><br><b>Przykład:</b> 1|rⱼ|Lmax - jedna maszyna, release dates, minimalizuj max spóźnienie pyt43 ZBOP szeregowanie scheduling
Co to jest efekt byczego bicza (bullwhip effect)? <b>Bullwhip Effect = amplifikacja wahań popytu w górę łańcucha dostaw</b><br><br><b>Mechanizm:</b><br>Mały popyt klienta → większe wahania detalisty → jeszcze większe dystrybutora → ogromne u producenta<br><br><b>Przyczyny:</b><br>1. Prognozowanie popytu (każdy poziom dodaje safety stock)<br>2. Batching zamówień (nie zamawiaj po 1 sztuce)<br>3. Wahania cen (promocje → stockpiling)<br>4. Rationing (przy niedoborze zawyżanie zamówień)<br><br><b>Konsekwencje:</b><br>• Nadmiar zapasów lub stockouts<br>• Nieefektywna produkcja<br>• Wysokie koszty<br><br><b>Rozwiązania:</b><br>• Współdzielenie informacji (VMI, CPFR)<br>• Everyday Low Price (brak promocji)<br>• Smaller batches pyt44 ZBOP bullwhip lancuch_dostaw
Co to jest model EOQ i jakie ma założenia? <b>EOQ = Economic Order Quantity</b><br><br><b>Formuła:</b><br>Q* = √(2KD/h)<br><br>Gdzie:<br>• K = koszt zamówienia (stały)<br>• D = roczny popyt<br>• h = koszt utrzymania jednostki/rok<br><br><b>Założenia:</b><br>• Popyt stały i znany<br>• Lead time stały i znany<br>• Natychmiastowa dostawa<br>• Brak braków (stockouts)<br>• Brak rabatów ilościowych<br><br><b>Całkowity koszt:</b><br>TC = (K × D/Q) + (h × Q/2)<br>Ordering cost + Holding cost<br><br><b>W praktyce:</b> Punkt bazowy, modyfikowany dla:<br>• Losowy popyt → safety stock<br>• Lead time → reorder point<br>• Rabaty → quantity discounts model pyt44 ZBOP eoq zapasy

185
pytania/generate_anki.py Normal file
View File

@ -0,0 +1,185 @@
#!/usr/bin/env python3
"""
Generate Anki flashcards from exam questions in odpowiedzi/ folder.
Creates a tab-separated file compatible with Anki import.
"""
import os
import re
from pathlib import Path
def extract_question_and_answer(filepath):
"""Extract main question and key answer points from a markdown file."""
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
cards = []
# Extract file number for tagging
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
if match:
num = match.group(1)
topic = match.group(2).replace('-', '_')
else:
num = "00"
topic = "unknown"
# Extract main title (usually contains the question)
title_match = re.search(r'^# (.+)$', content, re.MULTILINE)
title = title_match.group(1) if title_match else "Unknown"
# Extract the main question from ## Pytanie section
question_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
if question_match:
main_question = question_match.group(1).strip()
main_question = re.sub(r'\s+', ' ', main_question)
else:
main_question = title
# Extract subject/przedmiot
subject_match = re.search(r'Przedmiot:\s*(\w+)', content)
subject = subject_match.group(1) if subject_match else "Ogólne"
# Create main question card - extract key sections for answer
answer_parts = []
# Look for main answer section
main_answer = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## |\n---\s*\n## |\Z)', content, re.DOTALL)
if main_answer:
answer_text = main_answer.group(1)
# Extract key points, definitions, headers
headers = re.findall(r'### (.+)', answer_text)
for h in headers[:5]: # Limit to first 5 headers
answer_parts.append(f"{h}")
# Also extract key definitions if present
definitions = re.findall(r'\*\*([^*]+)\*\*\s*[-:]\s*([^*\n]+)', content)
for term, definition in definitions[:3]:
if len(definition) > 20 and len(definition) < 200:
answer_parts.append(f"{term}: {definition.strip()}")
# If we found answer parts, create main card
if answer_parts:
answer_html = "<br>".join(answer_parts[:8]) # Limit answer length
cards.append({
'question': main_question,
'answer': answer_html,
'tags': f"egzamin_magisterski pytanie_{num} {subject} {topic}"
})
# Extract sub-questions and key concepts as additional cards
# Look for ### headers with explanations
subsections = re.findall(r'### (\d+\.\s+)?(.+?)\n\n(.+?)(?=\n### |\n## |\n---|\Z)', content, re.DOTALL)
for _, header, body in subsections:
if len(header) < 5 or header.startswith('Przykład'):
continue
# Extract first substantive paragraph or key points
body_clean = body.strip()
# Skip very short or code-only sections
if len(body_clean) < 50:
continue
# Extract bullet points or first paragraph
bullets = re.findall(r'[-•]\s*\*\*(.+?)\*\*[:\s]*([^\n]+)?', body_clean)
if bullets:
answer_text = "<br>".join([f"{b[0]}: {b[1].strip()}" if b[1] else f"{b[0]}" for b in bullets[:5]])
else:
# Get first meaningful paragraph
paragraphs = [p.strip() for p in body_clean.split('\n\n') if p.strip() and not p.startswith('```') and not p.startswith('|')]
if paragraphs:
first_para = paragraphs[0]
# Clean markdown
first_para = re.sub(r'\*\*(.+?)\*\*', r'\1', first_para)
first_para = re.sub(r'\*(.+?)\*', r'\1', first_para)
answer_text = first_para[:400]
else:
continue
# Create sub-concept card
sub_question = f"Co to jest {header}?" if not header.endswith('?') else header
if "Charakterystyka" in header or "Definicja" in header or "Właściwości" in header:
# These are answer-type headers, reframe
parent_topic = title.replace("Pytanie", "").strip(": 0123456789")
sub_question = f"{header} - {parent_topic}"
cards.append({
'question': sub_question,
'answer': answer_text,
'tags': f"egzamin_magisterski pytanie_{num} {subject} {topic} szczegoly"
})
# Extract key formulas/definitions as separate cards
formulas = re.findall(r'\*\*([A-Za-z\s]+(?:formuła|wzór|twierdzenie|definicja|lemat))\*\*[:\s]*\n?(.+?)(?=\n\n|\n\*\*|\Z)', content, re.IGNORECASE | re.DOTALL)
for formula_name, formula_content in formulas:
if len(formula_content) > 20:
cards.append({
'question': f"Podaj {formula_name.strip()}",
'answer': formula_content.strip()[:300],
'tags': f"egzamin_magisterski pytanie_{num} {subject} formuly"
})
return cards
def clean_for_anki(text):
"""Clean text for Anki import - escape special characters."""
# Replace tabs with spaces
text = text.replace('\t', ' ')
# Convert markdown formatting to HTML
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'\*(.+?)\*', r'<i>\1</i>', text)
# Handle newlines - convert to <br> for Anki
text = text.replace('\n', '<br>')
# Remove multiple <br>
text = re.sub(r'(<br>)+', '<br>', text)
# Remove leading/trailing <br>
text = re.sub(r'^<br>|<br>$', '', text)
# Escape quotes in a way that works with tab-separated
text = text.replace('"', '&quot;')
return text.strip()
def main():
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
output_file = Path("/home/kuchy/praca_magisterska/pytania/anki_egzamin_magisterski.txt")
all_cards = []
# Process each file
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
print(f"Processing: {md_file.name}")
try:
cards = extract_question_and_answer(md_file)
all_cards.extend(cards)
print(f" -> Extracted {len(cards)} cards")
except Exception as e:
print(f" -> Error: {e}")
# Write Anki file with headers
with open(output_file, 'w', encoding='utf-8') as f:
# Anki file headers
f.write("#separator:tab\n")
f.write("#html:true\n")
f.write("#columns:Front\tBack\tTags\n")
f.write("#deck:Egzamin Magisterski ISY\n")
f.write("#notetype:Basic\n")
f.write("\n")
for card in all_cards:
front = clean_for_anki(card['question'])
back = clean_for_anki(card['answer'])
tags = card['tags']
f.write(f"{front}\t{back}\t{tags}\n")
print(f"\n✅ Created {len(all_cards)} flashcards")
print(f"📁 Output: {output_file}")
print("\nTo import into Anki:")
print("1. Open Anki → File → Import")
print("2. Select the .txt file")
print("3. Verify 'Allow HTML' is checked")
print("4. Click Import")
if __name__ == "__main__":
main()

View File

@ -0,0 +1,288 @@
#!/usr/bin/env python3
"""
Generate comprehensive Anki flashcards from exam questions.
Creates tab-separated file for Anki import with proper HTML formatting.
"""
import os
import re
from pathlib import Path
def clean_text(text):
"""Clean and format text for Anki."""
if not text:
return ""
# Convert markdown formatting to HTML
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'(?<!\*)\*([^*]+)\*(?!\*)', r'<i>\1</i>', text)
# Handle special characters
text = text.replace('\t', ' ')
text = text.replace('"', '&quot;')
# Clean up whitespace but preserve intentional line breaks
text = re.sub(r' +', ' ', text)
text = text.strip()
return text
def format_list(items, numbered=False):
"""Format a list of items as HTML."""
if not items:
return ""
tag = "ol" if numbered else "ul"
html = f"<{tag}>"
for item in items:
cleaned = clean_text(item)
if cleaned:
html += f"<li>{cleaned}</li>"
html += f"</{tag}>"
return html
def extract_from_file(filepath):
"""Extract flashcard data from a markdown file."""
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
cards = []
# Get file metadata
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
num = match.group(1) if match else "00"
topic_slug = match.group(2).replace('-', '_') if match else "unknown"
# Extract subject
subj_match = re.search(r'Przedmiot:\s*(\w+)', content)
subject = subj_match.group(1) if subj_match else "Ogólne"
# Base tags
base_tags = f"egzamin_magisterski pyt{num} {subject}"
# =====================================================
# CARD TYPE 1: Main Exam Question
# =====================================================
q_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
if q_match:
main_q = re.sub(r'\s+', ' ', q_match.group(1).strip())
# Extract key topics from main answer
answer_match = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## [<5B>🎯]|\n---\s*\n## |\Z)', content, re.DOTALL)
if answer_match:
answer_section = answer_match.group(1)
# Get main headers
headers = re.findall(r'^### (?:\d+\.\s*)?(.+)$', answer_section, re.MULTILINE)
headers = [h.strip() for h in headers if len(h.strip()) > 3][:6]
if headers:
answer_html = "<b>Kluczowe zagadnienia:</b>" + format_list(headers)
cards.append({
'front': clean_text(main_q),
'back': answer_html,
'tags': f"{base_tags} pytanie_glowne"
})
# =====================================================
# CARD TYPE 2: Subsection Cards (detailed concepts)
# =====================================================
# Find all ### sections
sections = re.findall(
r'^### (?:\d+\.\s*)?(.+?)\n((?:(?!^###).)+)',
content,
re.MULTILINE | re.DOTALL
)
for header, body in sections:
header = header.strip()
body = body.strip()
# Skip very short sections or example sections
if len(body) < 50 or header.lower().startswith('przykład'):
continue
# Extract key information from body
answer_parts = []
# Look for #### sub-headers
subheaders = re.findall(r'^#### (.+)$', body, re.MULTILINE)
if subheaders:
answer_parts.extend(subheaders[:4])
# Look for bullet points with bold terms
bullets = re.findall(r'[-•]\s*\*\*([^*]+)\*\*[:\s-]*([^\n]+)?', body)
for term, desc in bullets[:5]:
if desc:
answer_parts.append(f"<b>{term}</b>: {desc.strip()}")
else:
answer_parts.append(f"<b>{term}</b>")
# If no structured content, get first paragraph
if not answer_parts:
paras = [p.strip() for p in body.split('\n\n')
if p.strip() and not p.strip().startswith('```')
and not p.strip().startswith('|')]
if paras:
first = paras[0]
# Limit length
if len(first) > 300:
first = first[:300] + "..."
answer_parts.append(first)
if answer_parts:
# Determine card type
if "Definicja" in header or "Co to" in header:
q = f"Co to jest: {header.replace('Definicja', '').strip()}?"
elif "Charakterystyka" in header:
q = f"Scharakteryzuj: {header.replace('Charakterystyka', '').strip()}"
elif header.endswith('?'):
q = header
else:
q = f"Omów: {header}"
# Format answer
if len(answer_parts) > 1:
answer_html = format_list(answer_parts)
else:
answer_html = clean_text(answer_parts[0])
cards.append({
'front': clean_text(q),
'back': answer_html,
'tags': f"{base_tags} szczegoly"
})
# =====================================================
# CARD TYPE 3: Algorithms/Formulas
# =====================================================
algo_patterns = [
r'#### Złożoność(?:\s+czasowa)?\s*\n(.+?)(?=\n####|\n###|\Z)',
r'Złożoność:\s*\*\*([^*]+)\*\*',
]
for pattern in algo_patterns:
matches = re.findall(pattern, content, re.DOTALL)
for match in matches[:2]:
if len(match) > 10:
# Find context - which algorithm?
algo_context = re.search(r'### (\d+\.\s*)?(.+?)(?=\n)', content[:content.find(match)])
if algo_context:
algo_name = algo_context.group(2).strip()
cards.append({
'front': f"Jaka jest złożoność algorytmu/metody: {algo_name}?",
'back': clean_text(match.strip()[:200]),
'tags': f"{base_tags} zlozonosc"
})
break
# =====================================================
# CARD TYPE 4: Comparisons (when file contains comparisons)
# =====================================================
compare_match = re.search(r'## .*(Porównanie|Zestawienie|vs).*\n(.+?)(?=\n## |\Z)', content, re.DOTALL | re.IGNORECASE)
if compare_match:
compare_section = compare_match.group(2)
# Extract comparison items
items = re.findall(r'\|\s*\*\*([^|*]+)\*\*\s*\|([^|]+)\|', compare_section)
if items:
comparison_html = "<table><tr><th>Aspekt</th><th>Wartość</th></tr>"
for aspect, value in items[:6]:
comparison_html += f"<tr><td>{clean_text(aspect)}</td><td>{clean_text(value)}</td></tr>"
comparison_html += "</table>"
# Get comparison title
title_match = re.search(r'## .*(Porównanie|Zestawienie).*?(\w+.*?(?:vs|i|oraz).*?\w+)', compare_match.group(0), re.IGNORECASE)
if title_match:
cards.append({
'front': f"Porównaj kluczowe różnice w temacie: pytanie {num}",
'back': comparison_html,
'tags': f"{base_tags} porownanie"
})
# =====================================================
# CARD TYPE 5: Q&A from practice questions section
# =====================================================
qa_section = re.search(r'## 🎓 Pytania.*?\n(.+?)(?=\n## |\Z)', content, re.DOTALL)
if qa_section:
qa_content = qa_section.group(1)
# Find Q&A pairs
qas = re.findall(r'### Q\d+:?\s*["\']?(.+?)["\']?\s*\n.*?Odpowiedź:\s*\n?(.+?)(?=\n### |\Z)', qa_content, re.DOTALL)
for q, a in qas[:3]:
q = re.sub(r'\s+', ' ', q.strip())
a = a.strip()
if len(a) > 30:
# Limit answer length
a_lines = a.split('\n')
a_short = '\n'.join(a_lines[:5])
if len(a_short) > 400:
a_short = a_short[:400] + "..."
cards.append({
'front': clean_text(q),
'back': clean_text(a_short).replace('\n', '<br>'),
'tags': f"{base_tags} egzamin_praktyka"
})
return cards
def main():
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
output_file = Path("/home/kuchy/praca_magisterska/pytania/anki_egzamin_magisterski.txt")
all_cards = []
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
print(f"Processing: {md_file.name}", end=" ")
try:
cards = extract_from_file(md_file)
all_cards.extend(cards)
print(f"{len(cards)} cards")
except Exception as e:
print(f"→ ERROR: {e}")
# Remove potential duplicates (same front)
seen = set()
unique_cards = []
for card in all_cards:
if card['front'] not in seen:
seen.add(card['front'])
unique_cards.append(card)
# Write output file
with open(output_file, 'w', encoding='utf-8') as f:
# Anki headers
f.write("#separator:tab\n")
f.write("#html:true\n")
f.write("#tags column:3\n")
f.write("#deck:Egzamin Magisterski ISY\n")
f.write("#notetype:Basic\n")
f.write("\n")
for card in unique_cards:
# Ensure no tabs in content (would break parsing)
front = card['front'].replace('\t', ' ')
back = card['back'].replace('\t', ' ')
tags = card['tags']
f.write(f"{front}\t{back}\t{tags}\n")
print(f"\n{'='*50}")
print(f"✅ Generated {len(unique_cards)} unique flashcards")
print(f"📁 Saved to: {output_file}")
print(f"{'='*50}")
print("\n📋 IMPORT INSTRUCTIONS:")
print("" * 40)
print("Anki Desktop:")
print(" 1. File → Import")
print(" 2. Select: anki_egzamin_magisterski.txt")
print(" 3. Verify: Fields separated by Tab")
print(" 4. Check: Allow HTML in fields")
print(" 5. Click Import")
print()
print("AnkiWeb / AnkiDroid:")
print(" 1. First import on Anki Desktop")
print(" 2. Click Sync to upload to AnkiWeb")
print(" 3. Sync on mobile to download")
if __name__ == "__main__":
main()

183
pytania/generate_anki_v2.py Normal file
View File

@ -0,0 +1,183 @@
#!/usr/bin/env python3
"""
Generate Anki flashcards from exam questions in odpowiedzi/ folder.
Creates a tab-separated file compatible with Anki import.
"""
import os
import re
from pathlib import Path
def extract_main_question(content, filename):
"""Extract the main exam question from the file."""
# Extract the main question from ## Pytanie section
question_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
if question_match:
main_question = question_match.group(1).strip()
main_question = re.sub(r'\s+', ' ', main_question)
return main_question
# Fallback to title
title_match = re.search(r'^# (.+)$', content, re.MULTILINE)
return title_match.group(1) if title_match else filename
def extract_subject(content):
"""Extract the subject code."""
subject_match = re.search(r'Przedmiot:\s*(\w+)', content)
return subject_match.group(1) if subject_match else "Ogólne"
def extract_key_points(content):
"""Extract key points from the main answer section."""
points = []
# Look for main answer section
main_answer = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## [^<5E>]|\n---\s*\n## |\Z)', content, re.DOTALL)
if not main_answer:
return points
answer_text = main_answer.group(1)
# Extract ### headers as key points
headers = re.findall(r'^### (.+)$', answer_text, re.MULTILINE)
for h in headers[:6]:
# Clean header
h = re.sub(r'\d+\.\s*', '', h).strip()
if h and len(h) > 3:
points.append(h)
return points
def extract_definitions(content):
"""Extract key definitions from the content."""
definitions = []
# Pattern for **Term** - definition or **Term**: definition
pattern = r'\*\*([^*\n]+)\*\*\s*[-:]\s*([^*\n]{20,150})'
matches = re.findall(pattern, content)
for term, definition in matches:
term = term.strip()
definition = definition.strip()
# Filter out non-definition patterns
if term and definition and not term.startswith('Przykład') and not term.startswith('Uwaga'):
definitions.append((term, definition))
return definitions[:5]
def clean_html(text):
"""Convert markdown to HTML and clean for Anki."""
if not text:
return ""
# Replace markdown bold/italic with HTML
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'\*(.+?)\*', r'<i>\1</i>', text)
# Clean up special characters
text = text.replace('\t', ' ')
text = text.replace('"', '&quot;')
# Handle newlines - convert to <br>
text = text.replace('\n', ' ')
text = re.sub(r'\s+', ' ', text)
return text.strip()
def process_file(filepath):
"""Process a single file and return flashcards."""
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
cards = []
# Extract metadata
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
if match:
num = match.group(1)
topic = match.group(2).replace('-', '_')
else:
num = "00"
topic = "unknown"
subject = extract_subject(content)
main_question = extract_main_question(content, filename)
# Base tags for this question
base_tags = f"egzamin_magisterski pytanie_{num} {subject}"
# Card 1: Main question with key points
key_points = extract_key_points(content)
if key_points:
answer = "<ul>" + "".join([f"<li>{clean_html(p)}</li>" for p in key_points]) + "</ul>"
cards.append({
'front': clean_html(main_question),
'back': answer,
'tags': base_tags
})
# Card 2+: Key definitions as individual cards
definitions = extract_definitions(content)
for term, definition in definitions:
q = f"Definicja: {term}"
a = clean_html(definition)
cards.append({
'front': q,
'back': a,
'tags': f"{base_tags} definicje"
})
return cards
def main():
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
output_file = Path("/home/kuchy/praca_magisterska/pytania/anki_egzamin_magisterski.txt")
all_cards = []
# Process each file
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
print(f"Processing: {md_file.name}")
try:
cards = process_file(md_file)
all_cards.extend(cards)
print(f" -> {len(cards)} cards")
except Exception as e:
print(f" -> Error: {e}")
import traceback
traceback.print_exc()
# Write Anki-compatible file
with open(output_file, 'w', encoding='utf-8') as f:
# File headers for Anki
f.write("#separator:tab\n")
f.write("#html:true\n")
f.write("#tags column:3\n")
f.write("#deck:Egzamin Magisterski ISY\n")
f.write("#notetype:Basic\n")
f.write("\n")
for card in all_cards:
front = card['front']
back = card['back']
tags = card['tags']
# Ensure no tabs in content
front = front.replace('\t', ' ')
back = back.replace('\t', ' ')
f.write(f"{front}\t{back}\t{tags}\n")
print(f"\n✅ Created {len(all_cards)} flashcards")
print(f"📁 Output: {output_file}")
print("\n=== Import Instructions ===")
print("1. Open Anki desktop → File → Import")
print("2. Select: anki_egzamin_magisterski.txt")
print("3. Set 'Fields separated by: Tab'")
print("4. Check 'Allow HTML in fields'")
print("5. Map: Field 1 → Front, Field 2 → Back, Field 3 → Tags")
print("6. Click Import")
print("\nFor AnkiWeb/AnkiDroid: Sync after importing on desktop")
if __name__ == "__main__":
main()

257
pytania/generate_anki_v3.py Normal file
View File

@ -0,0 +1,257 @@
#!/usr/bin/env python3
"""
Generate Anki flashcards with ACTUAL substantive answers, not just headers.
"""
import os
import re
from pathlib import Path
def clean_text(text):
"""Clean text for Anki."""
if not text:
return ""
text = re.sub(r'\*\*(.+?)\*\*', r'<b>\1</b>', text)
text = re.sub(r'(?<!\*)\*([^*]+)\*(?!\*)', r'<i>\1</i>', text)
text = text.replace('\t', ' ')
text = text.replace('"', '&quot;')
text = re.sub(r' +', ' ', text)
return text.strip()
def extract_real_answer(content, section_name):
"""Extract actual content from a section, not just headers."""
# Find the section
pattern = rf'### (?:\d+\.\s*)?{re.escape(section_name)}\s*\n((?:(?!^### ).)+)'
match = re.search(pattern, content, re.MULTILINE | re.DOTALL)
if not match:
return None
body = match.group(1).strip()
# Extract meaningful content
lines = []
# Get subheaders with their first line of content
subheader_pattern = r'#### ([^\n]+)\n([^\n#]+)'
for sub_header, first_line in re.findall(subheader_pattern, body):
lines.append(f"<b>{sub_header.strip()}</b>: {first_line.strip()}")
# Get bullet points
bullet_pattern = r'[-•]\s*\*\*([^*]+)\*\*[:\s-]*([^\n]*)'
for term, desc in re.findall(bullet_pattern, body):
if desc.strip():
lines.append(f"• <b>{term.strip()}</b>: {desc.strip()}")
else:
lines.append(f"• <b>{term.strip()}</b>")
# If no structured content, get paragraphs
if not lines:
paras = [p.strip() for p in body.split('\n\n')
if p.strip() and not p.startswith('```') and not p.startswith('|')]
for p in paras[:2]:
if len(p) > 20 and len(p) < 400:
lines.append(p)
return '<br>'.join(lines[:6]) if lines else None
def extract_cards(filepath):
"""Extract flashcards from a file."""
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
cards = []
filename = os.path.basename(filepath)
match = re.match(r'(\d+)-(.+)\.md', filename)
num = match.group(1) if match else "00"
subj_match = re.search(r'Przedmiot:\s*(\w+)', content)
subject = subj_match.group(1) if subj_match else "Ogólne"
base_tags = f"egzamin_magisterski pyt{num} {subject}"
# Get main question
q_match = re.search(r'## Pytanie\s*\n\s*\*\*["\']?(.+?)["\']?\*\*', content, re.DOTALL)
main_question = re.sub(r'\s+', ' ', q_match.group(1).strip()) if q_match else None
# ===============================================
# MAIN CARD: Question with REAL answer summary
# ===============================================
if main_question:
# Build a real answer from the main sections
answer_parts = []
# For automata question - extract key facts about each automaton
if "automat" in main_question.lower() or "maszyn" in main_question.lower():
# FA
fa_match = re.search(r'Automat Skończony.*?Rozpoznawana klasa języków\s*\n\s*\*\*([^*]+)\*\*', content, re.DOTALL)
if fa_match:
answer_parts.append(f"<b>Automat Skończony (FA)</b>: {fa_match.group(1).strip()}")
# PDA
pda_match = re.search(r'Automat ze Stosem.*?Rozpoznawana klasa języków\s*\n\s*\*\*([^*]+)\*\*', content, re.DOTALL)
if pda_match:
answer_parts.append(f"<b>Automat ze Stosem (PDA)</b>: {pda_match.group(1).strip()}")
# TM
tm_match = re.search(r'Maszyna Turinga.*?Rozpoznawana klasa języków\s*\n\s*\*\*([^*]+)\*\*', content, re.DOTALL)
if tm_match:
answer_parts.append(f"<b>Maszyna Turinga (TM)</b>: {tm_match.group(1).strip()}")
# Generic extraction if specific didn't work
if not answer_parts:
# Look for key definitions/summaries
key_patterns = [
r'#### Definicja\s*\n([^\n#]+)',
r'#### Charakterystyka\s*\n([^\n#]+)',
r'\*\*Definicja[:\s]*\*\*\s*([^\n]+)',
]
for pattern in key_patterns:
for match in re.findall(pattern, content)[:3]:
if len(match) > 20:
answer_parts.append(match.strip())
# Still nothing? Get first substantive paragraph from main answer
if not answer_parts:
main_answer = re.search(r'## 📚 Odpowiedź główna\s*\n(.+?)(?=\n## |\Z)', content, re.DOTALL)
if main_answer:
# Skip headers, get actual content
text = main_answer.group(1)
paras = re.findall(r'\n\n([^#\n][^\n]{50,300})', text)
answer_parts = paras[:3]
if answer_parts:
answer = '<br><br>'.join([clean_text(p) for p in answer_parts])
cards.append({
'front': clean_text(main_question),
'back': answer,
'tags': f"{base_tags} pytanie_glowne"
})
# ===============================================
# CONCEPT CARDS: Specific topics with real content
# ===============================================
# Find all ### sections and extract their actual content
sections = re.findall(
r'^### (?:\d+\.\s*)?([^\n]+)\n((?:(?!^### ).)*)',
content,
re.MULTILINE | re.DOTALL
)
for header, body in sections:
header = header.strip()
body = body.strip()
# Skip short sections, mnemonics, examples
if len(body) < 80 or 'Przykład' in header or 'Mnemonic' in header or '"' in header:
continue
# Extract real content
answer_lines = []
# Get definition if present
def_match = re.search(r'#### Definicja[^\n]*\n([^\n#]+(?:\n[^\n#]+)?)', body)
if def_match:
answer_lines.append(def_match.group(1).strip())
# Get characterization
char_match = re.search(r'#### Charakterystyka\s*\n((?:[-•][^\n]+\n?)+)', body)
if char_match:
bullets = re.findall(r'[-•]\s*\*\*([^*]+)\*\*[:\s]*([^\n]*)', char_match.group(1))
for term, desc in bullets[:4]:
answer_lines.append(f"• <b>{term}</b>: {desc.strip()}" if desc else f"• <b>{term}</b>")
# Get bullet points if no structured content yet
if not answer_lines:
bullets = re.findall(r'[-•]\s*\*\*([^*]+)\*\*[:\s]*([^\n]*)', body)
for term, desc in bullets[:5]:
answer_lines.append(f"• <b>{term}</b>: {desc.strip()}" if desc else f"• <b>{term}</b>")
# Get first paragraph if still nothing
if not answer_lines:
first_para = re.search(r'^([^#\n\-•|`][^\n]{30,250})', body, re.MULTILINE)
if first_para:
answer_lines.append(first_para.group(1))
if answer_lines:
question = f"Wyjaśnij: {header}" if not header.endswith('?') else header
answer = '<br>'.join([clean_text(l) for l in answer_lines])
cards.append({
'front': clean_text(question),
'back': answer,
'tags': f"{base_tags} szczegoly"
})
# ===============================================
# Q&A CARDS: From practice questions section
# ===============================================
qa_matches = re.findall(
r'### Q\d+:\s*["\']?([^"\'?\n]+)\?*["\']?\s*\n.*?Odpowiedź:\s*\n(.+?)(?=\n### |\n## |\Z)',
content, re.DOTALL
)
for question, answer in qa_matches[:5]:
question = question.strip()
answer = answer.strip()
# Clean up answer - get first meaningful part
answer_lines = answer.split('\n')
clean_answer = []
for line in answer_lines[:6]:
line = line.strip()
if line and not line.startswith('```') and not line.startswith('|'):
clean_answer.append(line)
if clean_answer:
cards.append({
'front': clean_text(question + '?'),
'back': '<br>'.join([clean_text(l) for l in clean_answer]),
'tags': f"{base_tags} qa"
})
return cards
def main():
odpowiedzi_dir = Path("/home/kuchy/praca_magisterska/pytania/odpowiedzi")
output_file = Path("/home/kuchy/praca_magisterska/pytania/anki_egzamin_magisterski.txt")
all_cards = []
for md_file in sorted(odpowiedzi_dir.glob("*.md")):
print(f"Processing: {md_file.name}", end=" ")
try:
cards = extract_cards(md_file)
all_cards.extend(cards)
print(f"{len(cards)} cards")
except Exception as e:
print(f"→ ERROR: {e}")
# Remove duplicates
seen = set()
unique_cards = []
for card in all_cards:
key = card['front'][:100]
if key not in seen:
seen.add(key)
unique_cards.append(card)
# Write file
with open(output_file, 'w', encoding='utf-8') as f:
f.write("#separator:Tab\n")
f.write("#html:true\n")
f.write("#notetype:Basic\n")
f.write("#deck:Egzamin Magisterski ISY\n")
f.write("#columns:Front\tBack\tTags\n")
f.write("#tags column:3\n")
f.write("\n")
for card in unique_cards:
front = card['front'].replace('\t', ' ')
back = card['back'].replace('\t', ' ')
tags = card['tags']
f.write(f"{front}\t{back}\t{tags}\n")
print(f"\n✅ Generated {len(unique_cards)} flashcards")
print(f"📁 Output: {output_file}")
if __name__ == "__main__":
main()