Heurystyka (informatyka): Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Link prowadzi do ataku brute force a tu mowa o algorytmie brute force, który jest zupełnie czym innym.
przeglądanie zmian + dodatkowe szablony WP:NIEŁAD (czy trzy ostatnie sekcje są w ogóle adekwatne?), WP:WER + dr. int.
Linia 2:
'''Heurystyka''' ([[język grecki|gr.]] ''heuresis'' – odnaleźć, odkryć, ''heureka'' – znalazłem) – metoda znajdowania rozwiązań, dla której nie ma gwarancji znalezienia rozwiązania [[optymalizacja|optymalnego]], a często nawet prawidłowego. Rozwiązań tych używa się np. wtedy, gdy pełny [[algorytm]] jest z przyczyn technicznych zbyt kosztowny lub gdy jest nieznany (np. przy przewidywaniu [[pogoda|pogody]] lub przy wykrywaniu niektórych zagrożeń komputerowych, takich jak [[wirus komputerowy|wirusy]] lub [[robak komputerowy|robaki]]). Metody używa się też często do znajdowania rozwiązań przybliżonych, na podstawie których później wylicza się ostateczny rezultat pełnym [[algorytm]]em. To ostatnie zastosowanie szczególnie dotyczy przypadków, gdy heurystyka jest wykorzystywana do nakierowywania pełnego algorytmu ku optymalnemu rozwiązaniu, aby zmniejszyć czas działania programu w typowym przypadku bez poświęcania jakości rozwiązania (np. [[algorytm A*]]).
 
Wyszukiwaniem informacji nazywamy proces przeszukiwania określonego zbioru [[dokument]]ów odnoszących się do tematu czy przedmiotu wskazanego w zapytaniu lub zawierających konieczne dla użytkownika fakty. Proces ten nie został jednak precyzyjnie i skończenie określony przez wzory, normy czy algorytmy i w dużej mierze opiera się na heurystykach w tym wypadku definiowanych jako ''zbiór reguł oraz wskazówek, które mogą, lecz nie muszą, prowadzić do właściwego rozwiązania{{Fakt|data=2019-05}}''.
 
== Algorytm dokładny a heurystyka ==
Heurystyka to też algorytm. Wszystko co potrafi wykonać komputer jest jakimś algorytmem. Dlatego heurystyka jest szczególnym rodzajem algorytmu. Zasadnicza różnica między poszukiwaniem rozwiązań za pomocą algorytmów dokładnych a heurystycznych polega na tym, że pierwsze podejście zwraca optymalne rozwiązanie (choć czas oczekiwania na rozwiązanie może być dowolnie długi, lecz skończony), podczas gdy podejście heurystyczne pozwala znaleźć rozwiązanie przybliżone, a jedynie w szczególnym przypadku dokładne. Ze względu na to metody algorytmiczne stosowane są najczęściej w przypadku zbadanych, znanych już problemów, heurystyczne natomiast wszędzie tam, gdzie nie są znane algorytmy pozwalające na wystarczająco szybkie znalezienie rozwiązań dokładnych{{Fakt|data=2019-05}}.
Heurystyka to też algorytm.
Wszystko co potrafi wykonać komputer jest jakimś algorytmem.
Dlatego heurystyka jest szczególnym rodzajem algorytmu.
Zasadnicza różnica między poszukiwaniem rozwiązań za pomocą algorytmów dokładnych a heurystycznych polega na tym, że pierwsze podejście zwraca optymalne rozwiązanie (choć czas oczekiwania na rozwiązanie może być dowolnie długi, lecz skończony), podczas gdy podejście heurystyczne pozwala znaleźć rozwiązanie przybliżone, a jedynie w szczególnym przypadku dokładne. Ze względu na to metody algorytmiczne stosowane są najczęściej w przypadku zbadanych, znanych już problemów, heurystyczne natomiast wszędzie tam, gdzie nie są znane algorytmy pozwalające na wystarczająco szybkie znalezienie rozwiązań dokładnych.
 
[[Heurystyka informacyjna]] dotyczy tego, jak szybko i efektywnie wyszukać dokładnie tę informację, której użytkownik potrzebuje oraz tego, z jakich narzędzi, pamięci lub sprzętów służących do procesu poszukiwawczego będzie korzystał. Optymalne dotarcie do rozwiązania określa szybkość oraz cenę dostępu do właściwego wyniku, czyli odnalezienie dokumentów relewantnych przy minimalnej liczbie operacji w procesie wyszukiwania{{Fakt|data=2019-05}}.
 
Dwie '''naczelne zasady heurystyki''' informacyjnej to{{Fakt|data=2019-05}}:
 
Dwie '''naczelne zasady heurystyki''' informacyjnej to:
# zasada wyczerpania (kompletności)
# zasada właściwego doboru materiału (relewantności)
Pożądany stopień trafności i kompletności zależy w dużej mierze od przeznaczenia wykorzystania informacji, tzn. do czego [[informacja]] jest w rzeczywistości potrzebna. Nie zawsze użytkownikowi zależy w jednakowym stopniu na osiągnięciu dużej trafności i kompletności wyszukiwania, tym bardziej, że podniesienie jednego wskaźnika powoduje z reguły obniżenie drugiego, tj. zwiększenie trafności obniża kompletność i odwrotnie. Przy ustalaniu zdolności potrzeb informacyjnych pamiętać należy, że istotną cechą relewantności jest jej subiektywny charakter, jest to jednak podstawowa cecha każdej informacji, która nie może istnieć bez odbiorcy{{Fakt|data=2019-05}}.
 
=== Przykład ===
W szczególności metody heurystyczne są stosowane kiedy nie jest znany algorytm rozwiązujący ogólny problem, ale chcemy rozwiązać pewną mniejszą klasę problemów zawartych w ogólny, o pewnych specyficznych cechach. Przykładem może tu być, [[problem komiwojażera]] - znaleźć trasę pomiędzy miastami, przechodzącą przez wszystkie miasta i będąc przy tym najkrótszą możliwą taka trasą. Ogólnie postawiony problem jest [[Problem NP-trudny|NP-trudny]], i wydaje się że nie istnieje algorytm działający wiele szybciej niż algorytm typu [[Wyszukiwanie wyczerpujące|brute-force]], sprawdzający wszystkie możliwości, co limituje jego zastosowanie do grafów o małej wielkości (rzędu 15 miast). Jednakże pożytki jakie by dało znalezienie takiego algorytmu w praktyce powoduje że szuka się rozwiązań tego problemu wystarczająco blisko rozwiązania, co pozwala zwiększyć liczbę miast (miejsc) znacznie. Takimi heurezami może być na przykład użycie takich znanych faktów, jak:
 
# Miasta i drogi leżą na płaszczyźnie (w przypadku ogólnego problemu nie jest to prawda, nie każdy graf jest planarny),
Linia 26 ⟶ 24:
# Da się szybko oszacować odległość pomiędzy dowolnymi miastami, poprzez długość w linii prostej,
# Wydaje się że trasa nie powinna się krzyżować sama ze sobą,
# Na pewno niepożądane jest, aby trasa zawierała odcinki, które mają charakter jazdy "tam„tam i z powrotem"powrotem”, szczególnie na duże odległości,
# Powinniśmy zacząć podróż na brzegu obszaru i starać się go okrążać systematycznie, nie zaś przemieszczać się chaotycznie,
# Inne które być może w ogólności nie są prawdziwe, ale jedynie mamy przekonanie że pomogą rozwiązać problem,
# Często pomaga sprawdzenie kilku przypadkowych kombinacji i wybieranie ich najlepszych cech (zobacz [[algorytm genetyczny]])
 
Wiele z takich heurez można znaleźć poprzez obserwację jak ludzie rozwiązują problem (w sposób przybliżony) "ręcznie"„ręcznie” - wystarczy wydrukować wiele kopii różnych map i przeprowadzić eksperymenty na ludziach, obserwując sposób w jaki łączą oni miasta ołówkiem (czy poprawiają trasy), albo poruszają gałkami ocznymi.
Eksperymenty takie też pozwalają znaleźć przypadki kiedy heurezy nie działają, oraz pozwalają na oszacowanie czasu ile zajmuje znalezienie rozwiązania.
 
 
Innym przykładem, może być użycie heurezy w celu optymalizacji najczęstszych przypadków z jakimi będzie borykał się program (popartych najczęściej wcześniejszym profilowaniem). Umożliwia to na podstawie jakiegoś kryterium (np. rozmiar wejścia), rozwiązywanie kilkoma algorytmami do wyboru, i w razie niemożności rozwiązania algorytmem specyficznym, powrót do ogólnego algorytmem zapasowym, który wiadomo że zwróci poprawny wynik.
Linia 52 ⟶ 49:
 
== Potrzeby informacyjne użytkownika ==
Służenie pomocą [[Użytkownik komputera|użytkownikom]] w odnajdywaniu informacji jest celem działalności informacyjnej. W procesie przepływu informacji pełni ona funkcję pośrednika między źródłem a odbiorcą. Przekazuje informacje lub dokumenty z informacjami w nich zawartymi użytkownikom, a od nich przyjmują [[dezyderata|dezyderaty]] wyrażające ich potrzeby informacyjne. Użytkownikiem może być osoba lub instytucja. Może być nim student przystępujący do egzaminu, początkujący pracownik naukowy lub zaawansowany badacz, naukowiec lub praktyk. Każdy z nich będzie mieć inne zapotrzebowania informacyjne, gdyż każdy z nich potrzebuje informacji w innym celu i na innym poziomie{{Czy to ważne|data=2019-05}}.
 
Aby w pełni i skutecznie zaspokoić te zindywidualizowane zapotrzebowania informacyjne, centralnym punktem zainteresowania placówek i serwisów informacyjnych powinien być użytkownik ze swoimi wciąż zmieniającymi się potrzebami. Należy pamiętać, że nawet najlepiej, najpełniej, najtrafniej i najbardziej atrakcyjnie przygotowana informacja nie ma znaczenia, nim nie trafi do właściwego odbiorcy i zanim odbiorca nie przekształci się w użytkownika, wykorzystując otrzymane informacje. Potrzeby informacyjne są wielkościami dynamicznymi, zmieniającymi się oraz zróżnicowanymi, zależnymi od wielu czynników subiektywnych i obiektywnych{{Czy to ważne|data=2019-05}}.
 
* Czynniki subiektywne związane są z osobowością użytkownika, jego wiekiem, uzdolnieniami, poziomem i rodzajem wykształcenia, znajomością języków obcych, doświadczeniem, zainteresowaniami itp.{{Czy to ważne|data=2019-05}}
Aby w pełni i skutecznie zaspokoić te zindywidualizowane zapotrzebowania informacyjne, centralnym punktem zainteresowania placówek i serwisów informacyjnych powinien być użytkownik ze swoimi wciąż zmieniającymi się potrzebami. Należy pamiętać, że nawet najlepiej, najpełniej, najtrafniej i najbardziej atrakcyjnie przygotowana informacja nie ma znaczenia, nim nie trafi do właściwego odbiorcy i zanim odbiorca nie przekształci się w użytkownika, wykorzystując otrzymane informacje. Potrzeby informacyjne są wielkościami dynamicznymi, zmieniającymi się oraz zróżnicowanymi, zależnymi od wielu czynników subiektywnych i obiektywnych.
* Czynniki obiektywne to między innymi rodzaj i charakter pracy, pełnione funkcje, przeznaczenie wykorzystania informacji.{{Czy to ważne|data=2019-05}}.
* Czynniki subiektywne związane są z osobowością użytkownika, jego wiekiem, uzdolnieniami, poziomem i rodzajem wykształcenia, znajomością języków obcych, doświadczeniem, zainteresowaniami itp.
* Czynniki obiektywne to między innymi rodzaj i charakter pracy, pełnione funkcje, przeznaczenie wykorzystania informacji.
 
Użytkowników można podzielić według wielu kryteriów: według rodzajów wykształcenia, wykonywanego zawodu (zajęcia), zajmowanych stanowisk (pełnionych funkcji), przygotowania do samodzielnego prowadzenia wyszukiwań, wieku, poziomu wykształcenia itd. Tak więc znajomość potrzeb informacyjnych odbiorców ma istotne znaczenie dla efektywności działalności informacyjnej. Od trafnego określenia tych potrzeb zależy w dużej mierze znalezienie właściwych możliwości ich zaspokojenia{{Czy to ważne|data=2019-05}}.
 
== Skuteczność wyszukiwania informacji ==
Linia 69 ⟶ 67:
 
== Rodzaje poszukiwań ==
Dwie podstawowe{{Według kogo}} metody wyszukiwania to:
 
* ''wyszukiwanie [[faktografia|faktograficzne]]'' – gdy poszukujemy konkretnego dokumentu o znanym autorze lub tytule (tj. chcemy ustalić jego lokalizację lub przynajmniej dowiedzieć się, czy jest w danym zbiorze), czy też obiektem poszukiwania są informacje na określony temat w niezidentyfikowanych jeszcze dokumentach. W sytuacji pierwszej należy sięgnąć do zbioru wyszukiwawczego, np. do katalogu w bibliotece.